Ćwiczenie — korzystanie z powłoki Bash
Na własnym komputerze z systemem Linux możesz uruchamiać polecenia powłoki Bash lokalnie. Jeśli masz dostęp do serwerów Linux, możesz z nimi połączyć zdalnie i tam uruchamiać polecenia Bash. Ale nikt nie chce eksperymentować z systemem produkcji na żywo, szczególnie w pierwszym dniu w Northwind.
W tej lekcji będziesz używać usługi Azure Cloud Shell po prawej stronie jako swojego terminalu systemu Linux. Usługa Azure Cloud Shell to powłoka, do której można uzyskać dostęp za pośrednictwem witryny Azure Portal lub pod adresem https://shell.azure.com. Nie musisz nic instalować na swoim komputerze czy laptopie, aby z niej korzystać.
Zapoznanie z usługą Cloud Shell
Najpierw zbadajmy, co znajduje się w usłudze Cloud Shell, korzystając z poznanych poleceń Bash.
Użyj polecenia
ls
, aby wyświetlić listę wszystkich plików i podkatalogów w bieżącym katalogu:ls
Wyświetlone dane wyjściowe powinny wyglądać mniej więcej tak:
yourname@Azure:~$ ls clouddrive
clouddrive to podkatalog bieżącego katalogu. Jest to zainstalowany udział plików, który pozostaje, jeśli używasz usługi Cloud Shell na własnym koncie. W tej chwili używasz go w piaskownicy usługi Microsoft Learn.
Ale zaraz, jaki jest bieżący katalog? Użyjmy
pwd
polecenia , aby dowiedzieć się.pwd
Oznacza to "drukowanie katalogu roboczego". Wyświetla długą ścieżkę do katalogu, w którym jesteś teraz.pwd
Powinny pojawić się następujące dane wyjściowe:
yourname@Azure:~$ pwd /home/yourname
Te dane wyjściowe oznaczają, że jesteś w katalogu o nazwie yourname znajdującym się w katalogu o nazwie home w katalogu głównym systemu plików Linux.
Wygląda na to, że w naszym bieżącym katalogu jest niewiele. Użyjmy flagi powłoki Bash w celu wyświetlenia wszystkich ukrytych plików i katalogów, aby sprawdzić, czy rzeczywiście tak jest.
ls -a
Te dane wyjściowe pokazały nam, że w tym katalogu jest o wiele więcej elementów, niż początkowo sądziliśmy.
yourname@Azure:~$ ls -a . .. .azure .bash_history .bash_logout .bashrc clouddrive .profile .tmux.conf .viminfo
Czym są te wszystkie pliki i podkatalogi? Niektóre to pliki w tle umożliwiające działanie usługi Cloud Shell. Pomówmy o kilku pozostałych.
-
.
odnosi się do bieżącego katalogu, a..
odnosi się do katalogu nadrzędnego. Wszędzie tam, gdzie jesteś, jeśli drukujesz wszystkie ukryte pliki i katalogi, zobaczysz.
i..
wydrukowasz. -
.bash_history
to specjalny plik powłoki Bash, w którym przechowywane są wszystkie polecenia wprowadzane do powłoki. Powłoka Bash zapamiętuje historię poleceń, która, jak widać później, jest przydatna. -
.bash_logout
to inny specjalny plik powłoki Bash, który jest odczytywany i uruchamiany za każdym razem, gdy istnieje powłoka logowania. Superużytkownicy systemu Linux mogą go modyfikować, aby dostosować środowisko. -
.bashrc
to ważny plik konfiguracji powłoki Bash, który jest uruchamiany za każdym razem, gdy uruchamiasz nową powłokę. Jeśli zdecydujesz się otworzyć ten plik, aby go obejrzeć, uważaj na wprowadzanie zmian, ponieważ mogą one mieć niezamierzone konsekwencje.
-
Przywoływanie historii i autouzupełnianie poleceń
Podczas wprowadzania skomplikowanych poleceń, takich jak to, łatwo jest popełnić błąd:
ls -a .azure/commands/202?*.log
Na szczęście powłoka Bash oferuje kilka funkcji, które mogą Ci pomóc.
Przywoływanie poprzednich poleceń
Spróbuj wpisać to polecenie, które zawiera literówkę (
203?
zamiast202?
):ls -a .azure/commands/203?*.log
Powinny zostać wyświetlone następujące dane wyjściowe informujące o tym, że nie ma żadnych plików pasujących do tego wzorca:
ls: cannot access '.azure/commands/203?*.log': No such file or directory
Zamiast ponownie wprowadzać całe polecenie w celu poprawienia błędu, możesz przywołać wcześniej wprowadzone polecenia przy użyciu klawiszy Strzałka w górę i Strzałka w dół. Spróbuj użyć klawisza Strzałka w górę, aby przywołać nieprawidłowe polecenie. Następnie użyj klawisza Strzałka w lewo, aby rozwiązać ten problem, zastępując końcową cyfrę
3
cyfrą2
. Wybierz ponownie klawisz Enter, aby przesłać poprawione polecenie.Użycie strzałki w górę wiele razy w wierszu powoduje przywrócenie wielu poleceń. Za pomocą klawisza Strzałka w dół możesz przejść do późniejszych poleceń.
Teraz powinny zostać wyświetlone dane wyjściowe podobne do następujących. Ten wynik informuje, że polecenie zadziałało poprawnie, aby wyświetlić listę plików pasujących do podanego wzorca.
.azure/commands/2020-01-29.21-56-35.login.103.log .azure/commands/2020-01-29.21-56-38.account_set.112.log
Autouzupełnianie
Załóżmy, że chcesz przeczytać zawartość jednego z właśnie znalezionych plików. Możesz użyć polecenia cat
(skrót od „catenate” — „połącz”), aby wyświetlić zawartość pliku na ekranie.
Aby użyć tego polecenia, możesz użyć pełnej nazwy pliku, na przykład:
cat .azure/commands/2020-01-29.21-56-35.login.103.log
Jednak to dużo tekstu do wpisania i łatwo popełnić błąd. Zamiast tego możesz użyć podstawowej funkcji autouzupełniania powłoki Bash, która wykona większość pracy za Ciebie. Spróbuj wpisać to:
cat .a
Następnie naciśnij klawisz Tab. Co się stanie?
W poleceniu powinna pojawić się reszta słowa „azure/”:
cat .azure/
Kontynuuj wpisywanie początków wyrazów i używaj klawisza Tab do autouzupełniania. Pamiętaj, że jeśli istnieje niejednoznaczność, powłoka Bash nie wypełni niczego. Możesz wybrać dwukrotnie kartę, aby powłoka Bash wydrukowała wszystkie pliki i katalogi w danej ścieżce zgodnej z wpisanymi literami.
Odtwórz, aż do rzeczywistego pliku .log w katalogu poleceń. Następnie wybierz klawisz Enter, aby użyć polecenia
cat
do wydrukowania jego zawartości na ekranie. Może to wyglądać mniej więcej tak:CMD-LOG-LINE-BEGIN 103 | 2020-01-29 21:56:35,426 | INFO | az_command_data_logger | command args: login --identity CMD-LOG-LINE-BEGIN 103 | 2020-01-29 21:56:37,604 | INFO | az_command_data_logger | exit code: 0
Pamiętaj, że jeśli wpisał już nieprawidłową literę, powłoka Bash nie będzie mogła poprawnie odgadnąć, jakiej litery chcesz wpisać.
Korzystanie z polecenia man
Właśnie użyliśmy polecenia cat
, ale wciąż jeszcze niewiele o nim wiesz. Użyj polecenia man
, aby uzyskać więcej informacji o poleceniu cat
.
Wpisz następujące polecenie, aby dowiedzieć się więcej o tym, czym jest polecenie
cat
i jak go używać:man cat
Właśnie tak. Polecenia powłoki Bash mogą być zarówno tajemnicze, jak i zabawne!
Powinny pojawić się następujące dane wyjściowe:
CAT(1) User Commands CAT(1) NAME cat - concatenate files and print on the standard output SYNOPSIS cat [OPTION]... [FILE]... DESCRIPTION Concatenate FILE(s) to standard output. With no FILE, or when FILE is -, read standard input. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines, overrides -n -e equivalent to -vE ...
Użyj strzałek w górę i w dół, aby przewinąć stronę podręcznika i wprowadź polecenie
q
, aby wyjść.
Zmiana katalogów
Przećwiczmy jeszcze jedno podstawowe polecenie powłoki Bash: cd
.
Podczas używania powłoki zawsze jesteś wewnątrz katalogu — tak jak w folderze na komputerze PC lub Mac. Aby zmienić foldery, użyj polecenia cd
(zmień katalog).
To proste, ale poćwiczmy trochę.
Najpierw wpisz to polecenie, aby upewnić się, że jesteś we właściwym miejscu:
cd ~
To polecenie przenosi Cię z powrotem do Twojego specjalnego katalogu home w powłoce, jeśli jeszcze tam nie jesteś.
Sprawdź to, jeszcze raz używając polecenia
pwd
:pwd
Powinny pojawić się następujące dane wyjściowe:
/home/yourname
~
to kolejny znak specjalny w powłoce Bash, który odnosi się do tego katalogu macierzystego. Możesz użyć znaku~
, aby odwołać się do lokalizacji /home/yourname bez względu na to, gdzie jesteś w powłoce.Przejdźmy do katalogu zawierającego pliki dziennika (gdzie byliśmy już wcześniej):
cd .azure/commands/
Możesz wpisać pełne polecenie samodzielnie lub użyć klawisza Tab do autouzupełniania.
Teraz wiersz, w którym wprowadzasz polecenia, powinien wyglądać inaczej i pokazywać, gdzie jesteś w powłoce:
yourname@Azure:~/.azure/commands$
Spróbuj użyć specjalnej składni
..
, aby przejść o jeden katalog w górę:cd ..
Powinno to spowodować przejście o jeden poziom wyżej w strukturze katalogów, a wiersz polecenia powinien wyglądać następująco:
yourname@Azure:~/.azure$
Dobra robota! Za Tobą pierwsze kroki na drodze do stania się ekspertem w zakresie powłoki Bash. Uczmy się dalej.