fbpx

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.