Każdemu, kto pracuje z Linuxem zależy na tym, aby praca przebiegała sprawnie i przyjemnie. Często jest tak, że wiele „smaczków” dotyczących samego poruszania się po nim poznajemy przy okazji. Od współpracowników albo na stackoverflow. Mimo to udostępniam Tobie kilka pomocnych komend, które możesz wykorzystać podczas pracy z Linuxem. Każdą z nich możesz przetestować na swoim systemie.
Dopełnienie komend – bash-completion
To jedna z tych komend, która przyśpiesza i odciąża głowę osoby korzystającej z Linuxa. Nikt nie zamierza zapamiętywać wszystkich komend oraz parametrów. Do tego mamy takie cudo jak bash-completion. Domyślnie w większości systemów taka paczka powinna być zainstalowana. Aby skorzystać z dopełnienia komendy, którą wpisujemy wystarczy rozpocząć jej wpisywanie i dwukrotnie nacisnąć Tab na klawiaturze. Auto podpowiedz dotyczy samych poleceń jak i plików, które chcemy wywołać. Zobacz przykład poniżej.
# Poniżej dopełnienie do nazwy pliku marcin@ip-hosta:~/pliki_testowe$ cat plik_ilovedatapl_ plik_ilovedatapl_1 plik_ilovedatapl_2 plik_ilovedatapl_3 plik_ilovedatapl_4
# Poniżej dopełnienie do nazwy komendy, którą chcemy wywołać marcin@ip-hosta:~/pliki_testowe$ lv lvchange lvextend lvmconfig lvmpolld lvremove lvscan lvconvert lvm lvmdiskscan lvmsadc lvrename lvcreate lvmchange lvmdump lvmsar lvresize lvdisplay lvmconf lvmetad lvreduce lvs
Powrót do ostatnio odwiedzonego katalogu
To jest bardzo prosta komenda, która nie zmusza nas do wpisywania pełnej ścieżki do poprzedniego katalogu. Jeżeli w danym momencie chcemy poprostu wrócić do poprzedniej ścieżki wystarczy, że wywołamy komendę cd –
marcin@ip-hosta:/etc/security/limits.d$ pwd /etc/security/limits.d # Nasza komenda, która pozwala na powrót do ostatnio odwiedzonego katalogu marcin@ ip-hosta :/etc/security/limits.d$ cd - /home/bitnami
Tutaj warto zwrócić uwagę, że jeżeli chcesz przejść do katalogu domowego użytkownika to komenda jest bardzo podobna. Wystarczy wykonać cd ~
Uruchamianie wielu komend w jednej linii
Powiedzmy, że chcesz uruchomić kilka komend jedna po drugiej, ale nie chcesz czekać na zakończenie każdej z nich. Do tego celu użyj separatora „;”. W ten sposób uruchomisz kilka komend „od razu”.
marcin@ip-hosta:~$ date; uptime; echo "Hello World"; Mon May 25 08:29:30 UTC 2020 08:29:30 up 61 days, 17:24, 1 user, load average: 0.00, 0.02, 0.00 Hello World
Wykonanie komend, tylko wtedy kiedy poprzedni wykona się poprawnie
W poprzedniej sytuacji mieliśmy wykonanie komendy jedna po drugiej. Wyobraź sobie sytuację, w której wykonujesz drugą komendę tylko w momencie, kiedy pierwsza wykona się poprawnie. Do tego posłuży nam separator &&
Dobrym przykładem tutaj jest wykonanie komend sudo apt update && sudo apt upgrade
Przesuwanie się na początek i koniec linii
Wyobraź sobie, że piszesz długą komendę i napotykasz na jakiś błąd. Masz go na początku i chcesz sprawnie przesunąć się, żeby go poprawić. Do tego możesz wykorzystać dwa skróty klawiaturowe:
- Ctrl + A – do przesunięcia się na początek linii
- Ctrl + E – do przesunięcia się na koniec linii
Jest to o tyle istotne, że nie musisz bawić się w klikanie strzałka w lewo lub strzałka w prawo 🙂
Odczyt pliku z logami w czasie rzeczywistym – tail -f
Dla wielu osób jest to znana komenda, ale postanowiłem ją tutaj umieścić. Dla mniej doświadczonych osób koniecznie do zapamiętania. Komenda szczególnie przydatna podczas analizy logów, w ramach działającej usługi/aplikacji.
marcin@ip-hosta:/var/log$ tail -f gonit.log time="2020-05-25T14:05:31Z" level=info msg="Performing process check apache" time="2020-05-25T14:05:31Z" level=info msg="Performing process check mysql" time="2020-05-25T14:07:31Z" level=info msg="Performing checks" time="2020-05-25T14:07:31Z" level=info msg="Performing process check php-fpm" time="2020-05-25T14:07:31Z" level=info msg="Performing process check apache" time="2020-05-25T14:07:31Z" level=info msg="Performing process check mysql"
Możesz również użyć komendy grep, aby odfiltrować interesujący Ciebie fragment lub usługę.
marcin@ip-hosta:/var/log$ tail -f gonit.log | grep "mysql" time="2020-05-26T07:21:31Z" level=info msg="Performing process check mysql" time="2020-05-26T07:23:31Z" level=info msg="Performing process check mysql" time="2020-05-26T07:25:31Z" level=info msg="Performing process check mysql"
Powtórzenie polecenia z użyciem !!
Te wykrzykniki to nie przypadek. Powtórne użycie komendy jest możliwe poprzez wpisanie dwukrotnie wykrzykników (!!). Owszem jest jeszcze druga opcja poprzez kliknięcie strzałki w górę. Dwa wykrzykniki przydają się, np. kiedy brakuje nam sudo na początku komendy. Może to wyglądać tak:
marcin@ip-hosta:~$ apt-get check E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denie d) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you r oot? marcin@ip-host~$ sudo !! sudo apt-get check Reading package lists… Done Building dependency tree Reading state information… Done
Czytanie plików z komendą less
Mało wygodny sposób to użycie komendy cat nazwa_pliku. Powiedziałbym nawet, że to nawyk amatora. Jeżeli plik ma 10-40 linii to w porządku, ale 300? Lepiej używać less do przeglądania zawartości pliku. Innym nawykiem, u niektórych administratorów widziałem podglądanie pliku z użyciem vi lub vim. Nie mówię nie, ale less jakby przyjemniejszy 😉
marcin@ip-hosta:~$ less sciezka_do_pliku
Korzystanie z pliku pomocy
Na koniec jedna z oczywistych komend, korzystanie z pliku pomocy. Prawie wszystkie komendy posiadają informacje, jak użyć narzędzia, jakie są dostępny opcje. W wielu przypadkach możesz również zobaczyć przykładowe użycie polecenia.
Uruchomienie pomocy nie jest niczym szczególnym i wygląda tak:
marcin@ip-hosta:/var/log$ nazwa_komendy --help marcin@ip-hosta:/var/log$ mkdir --help Usage: mkdir [OPTION]… DIRECTORY… Create the DIRECTORY(ies), if they do not already exist. Mandatory arguments to long options are mandatory for short options too. -m, --mode=MODE set file mode (as in chmod), not a=rwx - umask -p, --parents no error if existing, make parent directories as needed -v, --verbose print a message for each created directory -Z set SELinux security context of each created directory to the default type --context[=CTX] like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX --help display this help and exit --version output version information and exit GNU coreutils online help: http://www.gnu.org/software/coreutils/ Full documentation at: http://www.gnu.org/software/coreutils/mkdir or available locally via: info '(coreutils) mkdir invocation'
Zobacz również inny wpis z listą 85 pomocnych komend, które możesz użyć pracując z Linuxem.