Zmienne Środowiskowe, Aliasy i Podstawy Shell

Witaj ponownie.
W poprzedniej lekcji nauczyłeś się pakować i rozpakowywać pliki za pomocą archiwów.
Teraz wchodzimy do świata shell.
To tutaj terminal zaczyna pamiętać rzeczy.
Zmienne. Ścieżki. Aliasy. Pliki konfiguracyjne.
W skrócie: uczymy terminal kilku nawyków.
Oby dobrych.
Czego Się Nauczysz
W tej lekcji nauczysz się:
- wypisywać tekst za pomocą
echo; - rozumieć zmienne shell;
- czytać zmienne środowiskowe takie jak
$HOMEi$PATH; - tworzyć zmienne tymczasowe;
- eksportować zmienne;
- tworzyć aliasy;
- zapisywać aliasy w
.bashrcalbo.zshrc; - rozumieć, dlaczego
$PATHjest ważny.
Misja
Twoja misja jest prosta:
Zrozumieć, jak shell przechowuje informacje i jak tworzyć skróty dla komend, których używasz często.
Bo wpisywanie długich komend ciągle od nowa to nie dyscyplina.
To cierpienie z dodatkowymi krokami.
Wypisywanie Tekstu za Pomocą echo
Komenda echo wypisuje tekst.
Spróbuj:
echo "Cześć, terminalu!"
Powinieneś zobaczyć:
Cześć, terminalu!
Proste.
Użyteczne.
Bardzo uprzejme.
echo jest często używane do wypisywania wartości, testowania zmiennych albo tworzenia małych plików tekstowych.
Czym Jest Zmienna?
Zmienna to nazwa, która przechowuje wartość.
Stwórz jedną:
name="Viktor"
Teraz ją wypisz:
echo $name
Powinieneś zobaczyć:
Viktor
Ważne: nie używaj spacji wokół =.
To jest poprawne:
name="Viktor"
To jest błędne:
name = "Viktor"
Shell widzi spacje i się gubi.
Bardzo potężny.
Bardzo wrażliwy.
Jak genialny kot.
Wbudowane Zmienne Środowiskowe
Linux ma już wiele zmiennych środowiskowych.
Spróbuj:
echo $HOME
Możesz zobaczyć:
/home/viktor
HOME przechowuje ścieżkę do katalogu domowego.
Spróbuj:
echo $USER
Możesz zobaczyć swoją nazwę użytkownika.
Spróbuj:
echo $SHELL
Możesz zobaczyć coś takiego:
/bin/bash
albo:
/usr/bin/zsh
To pokazuje, jakiej shell używasz.
Zmienna PATH
Jedną z najważniejszych zmiennych jest PATH.
Spróbuj:
echo $PATH
Możesz zobaczyć coś takiego:
/usr/local/bin:/usr/bin:/bin:/home/viktor/.local/bin
PATH mówi shell, gdzie szukać komend.
Kiedy wpisujesz:
ls
shell przeszukuje katalogi z PATH, aż znajdzie program ls.
Bez PATH musiałbyś wpisywać pełne lokalizacje komend jak bardzo zmęczony robot.
Sprawdzenie, Gdzie Jest Komenda
Użyj:
command -v ls
Możesz zobaczyć:
/usr/bin/ls
Spróbuj:
command -v bash
command -v zsh
command -v python
command -v node
Niektóre mogą istnieć.
Niektóre nie.
Terminal jest szczery.
Czasem brutalnie.
Zmienne Tymczasowe
Zmienne utworzone w shell zwykle są tymczasowe.
Spróbuj:
course="Terminal Linux"
echo $course
Powinieneś zobaczyć:
Terminal Linux
Teraz zamknij terminal i otwórz go ponownie.
Spróbuj:
echo $course
Prawdopodobnie będzie pusto.
Shell zapomniał.
Nie dlatego, że jest niegrzeczny.
Po prostu tego nie zapisałeś.
Eksportowanie Zmiennej
Aby zmienna była dostępna dla procesów potomnych, użyj export.
Przykład:
export COURSE_NAME="Terminal Linux"
Teraz uruchom:
echo $COURSE_NAME
Powinieneś zobaczyć:
Terminal Linux
Zmienne środowiskowe są często używane do konfiguracji.
Na przykład:
export API_URL="http://localhost:8080"
export NODE_ENV="development"
Programiści używają tego cały czas.
Bo zapisywanie sekretów bezpośrednio w kodzie to sposób, w jaki projekty stają się miejscem zbrodni.
Pokazanie Zmiennych Środowiskowych
Aby zobaczyć wiele zmiennych środowiskowych, użyj:
env
To może wypisać dużo tekstu.
Możesz w tym szukać:
env | grep HOME
Albo:
env | grep PATH
Symbol | przekazuje wynik env do grep.
To nazywa się pipe.
Pipe to jeden z powodów, dla których terminal jest potężny.
I jeden z powodów, dla których ludzie zaczynają dziwnie się uśmiechać podczas używania Linuxa.
Czym Jest Alias?
Alias to skrót do komendy.
Przykład:
alias ll="ls -la"
Teraz uruchom:
ll
Działa jak:
ls -la
To przydatne, bo niektóre komendy są długie, a życie jest krótkie.
Przydatne Aliasy
Oto kilka przydatnych przykładów:
alias ll="ls -la"
alias gs="git status"
alias c="clear"
alias ..="cd .."
Teraz:
..
działa jak:
cd ..
Wygląda jak oszustwo.
Ale jest dozwolone.
Linux nie jest przeciwko skrótom.
Linux jest przeciwko głupotom.
Przeważnie.
Sprawdzenie Istniejących Aliasów
Aby zobaczyć istniejące aliasy:
alias
Możesz już mieć kilka.
Wiele systemów definiuje aliasy dla bezpieczeństwa lub wygody.
Na przykład:
alias rm="rm -i"
To pyta przed usunięciem.
Bardzo ostrożne.
Bardzo rodzicielskie.
Usunięcie Aliasu
Aby usunąć alias:
unalias ll
Teraz spróbuj:
ll
Może już nie działać.
To normalne.
Usunąłeś skrót.
Terminal nie chowa urazy.
Zwykle.
Trwałe Zapisanie Aliasów
Aliasy utworzone w terminalu znikają po jego zamknięciu.
Aby je zapisać, dodaj je do pliku konfiguracyjnego shell.
Jeśli używasz Bash:
nano ~/.bashrc
Jeśli używasz Zsh:
nano ~/.zshrc
Dodaj:
alias ll="ls -la"
alias c="clear"
alias ..="cd .."
Zapisz plik.
Potem przeładuj go.
Dla Bash:
source ~/.bashrc
Dla Zsh:
source ~/.zshrc
Teraz aliasy zostają.
Terminal się nauczył.
Dumny moment.
Prawie wzruszający.
Sprawdzenie, Jakiej Shell Używasz
Uruchom:
echo $SHELL
Jeśli widzisz Bash:
/bin/bash
użyj .bashrc.
Jeśli widzisz Zsh:
/usr/bin/zsh
użyj .zshrc.
Jeśli używasz Arch Linux z Zsh, tak, prawdopodobnie jesteś dokładnie taką osobą, która będzie za bardzo lubić aliasy.
Częste Błędy
Spacje wokół =
Źle:
name = "Viktor"
Dobrze:
name="Viktor"
Shell jest tutaj surowy.
Bez spacji.
Nie ma negocjacji.
Zapomnienie $
To wypisuje słowo name:
echo name
To wypisuje wartość zmiennej:
echo $name
$ oznacza:
Daj mi wartość zapisaną w tej zmiennej.
Bez $ shell myśli, że po prostu lubisz mówić imiona.
Zapisywanie aliasów w złym pliku
Jeśli używasz Zsh i edytujesz .bashrc, może nic się nie stać.
Jeśli używasz Bash i edytujesz .zshrc, może nic się nie stać.
Najpierw sprawdź shell:
echo $SHELL
Potem edytuj właściwy plik.
Mierz dwa razy.
Edytuj raz.
Praktyka
Spróbuj:
echo "Praktyka shell"
echo $HOME
echo $USER
echo $SHELL
echo $PATH
course="Terminal Linux"
echo $course
alias ll="ls -la"
ll
unalias ll
Potem odpowiedz:
- Co robi
echo? - Co pokazuje
$HOME? - Co robi
$PATH? - Co tworzy
alias? - Dlaczego aliasy znikają po zamknięciu terminala?
Mini Wyzwanie
Stwórz trzy aliasy:
alias ll="ls -la"
alias home="cd ~"
alias ports="ss -tuln"
Potem:
- Uruchom
ll. - Uruchom
home. - Uruchom
ports. - Zapisz te aliasy w
.bashrcalbo.zshrc. - Przeładuj plik przez
source.
Bez myszy.
Mysz patrzy teraz z emerytury.
Podsumowanie
Dzisiaj nauczyłeś się, że:
echowypisuje tekst i wartości zmiennych;- zmienne przechowują wartości;
$HOMEprzechowuje katalog domowy;$USERprzechowuje nazwę użytkownika;$SHELLpokazuje twoją shell;$PATHmówi shell, gdzie szukać komend;exportudostępnia zmienne procesom potomnym;aliastworzy skróty komend;.bashrci.zshrcmogą trwale zapisywać aliasy;sourceprzeładowuje plik konfiguracyjny shell.
Shell to nie tylko miejsce, gdzie wpisujesz komendy.
To środowisko, które możesz dostosować.
Ostrożnie.
Z mocą.
I najlepiej bez zamieniania terminala w cyrk.
Następna Lekcja
W następnej lekcji napiszemy nasz pierwszy skrypt Bash.
To moment, w którym komendy przestają być pojedynczymi akcjami i zaczynają być automatyzacją.
Terminal zaraz zacznie robić nudną pracę za ciebie.
Wreszcie.