Home
Komendy Bash
Komendy Bash
May 2002
Pingwin ! .... aport !
Linux jest dostarczany z ogromną liczbą programów. Większość z nich można w jakiś sposób uruchomić z wiersza poleceń. Jeżeli chcecie się nauczyć linuxa to powłoka powinna stać się dla was podstawowym sposobem komunikacji z systemem.
W Linuxie komendy są wykonywane podobnie jak w DOSie. piszemy nazwę polecenia po czym podajemy parametry. Dodatkowo stosuje się bardzo często przekierowania strumieni i 'pajpsy' (pipes - też do strumieni). O tym jednak gdzie indziej.
Oto lista sporej części komend. Prawie wszystkie komendy linuxowe pisane są małymi literami (istotne). Jeżeli zaczynasz pracę z linuxem przeczytaj koniecznie. Jeśli już trochę wiesz zawsze możesz przejrzeć.
| Komenda | Opis | Przykład |
| apropos | Bardzo skuteczne w poszukiwaniu informacji. Jeżeli nie znamy jakiejś komendy a wiemy że np. kasuje pliki można szukać pomocy pisząc słowo kluczowe którego szukamy. | apropos delete |
| bash | Jeżeli jeszcze nie wiecie jest to powłoka systemu. Czyli takie coś co jest pomiędzy nami a systemem. Powłoka pozwala na wykonywanie pewnych wbudowanych poleceń (jak command.com). Wszelkie skrypty pisze się w różnych powłokach. | |
| cat | Listuje na ekran (lub inne wyjście) zawartość podanego pliku. Można też używać go jako filtra. | cat program4.cc |
| cd | Cd jak w DOSie pozwala zmieniać katalogi. Wpisanie bez nazwy katalogu przeniesie nas do katalogu domowego (~/). Wpisanie nazwy katalogu ze znakiem '/' na początku przeniesie nas do odpowiedniego katalogu ale zaczynając od szczytu drzewa katalogów a nie od miejsca w którym się znajdujemy. Oczywiście by przejść katalog wyżej używamy '..'. | cd ~/bin |
| cfv | Polecenie do wyliczania sum kontrolnych plików by zapewnić ich spójność. Wyliczamy sumę na jednym komputerze kopiujemy na inny i wyliczamy na nowo. Pomaga tak samo przy kontroli kompresji itd. Rezulatem jest plik svf z listą sum kontrolnych. | cfv -C distr_backup_200903171527.tar cfv distr_backup_200903171527.tar |
| chmod |
Program do zmiany uprawnień plików i katalogów. składnia: chmod augo+-rwx plik
|
chmod -R go+r public_html |
| cp | Kopiowanie pliku. Jak w DOSie, nazwa pliku kopiowanego nazwa kopii. | cp ~/plik1.cc ~/gcc/plik1.cc |
| crontab | Program do uruchamiania skryptów lub poleceń w określonym czasie. Nie ma dokładnego opisu bo wszystko jest w manualu. Ale można sporo. Ustalać dowolną ilość zadań. Można odpalać w określone dni roku, mies, tyg itd. Można na dokładną datę albo godzinę. Bardzo fajna zabawka. | crontab -l |
| curl | Bardzo przydatne narzędzie do pobierania stron WWW oraz plików z serwerów WWW. Przydatne nie dlatego że łatwo go używać do ściągania filmów i zdjęć ale dlatego że pozwala na testowanie połaczeń, poprawności skryptów na serwerze itd. Będziemy mogli zdefiniować protokół, nagłowki jak dozwolona kompresja czy cookies etc. Będziemy też widzieć wynik i łatwo napiszemy skrypt automatyzujący zadania z uzyciem curl. Pomoże nam to wykrycie przekierowań czy rotacyjny load balancing itd. | curl -L -v localhost |
| date | Program pozwala na uzyskanie aktualnej daty i czasu w zadanym formacie. Przydatny w skryptach logujących postęp czy backupach itd. Przykład 2002_05_26_20_31.txt | date +'log_%Y_%m_%d_%H_%M.txt' |
| e2fsck | Program do kontroli poprawności i naprawiania partycji. | e2fsck -f /dev/hdc1 |
| export | Polecenie to zmienia wartości zmiennych środowiskowych. Możemy np. zmienić nasz język albo ścieżkę przeszukiwania. | export ZMIENNA2='/home/konto/wartość' |
| fetchmail | Program do ściągania poczty z innych serwerów na lokalne konto. | fetchmail -k -p POP3 -u twoje_konto kki.net.pl |
| finger | Finger jest programem pokazującym informacje o podanym użytkowniku. Podajemy nazwę konta i dostajemy opis. | finger kowalski |
| ftp / ncftp |
|
ftp kolos.math.uni.lodz.pl |
| g++ / gcc | Kompilatory c i c++. Obowiązkowo :)) | g++ nazwa_programu.cc |
| grep | Program KONIECZNY do życia ! Pozwala na wyszukiwanie ciągów znaków w strumieniach które dostaje na wejście. Możemy np. wyszukać wiersze w których znajduje się dane słowo. Przeważnie stosowany jako filtr innych poleceń. | w | grep root |
| host | Zapytanie DNS o nazwe komputera. Jesli podamy jako następny parametr adres ip lub nomenowy serwera DNS to zapytanie bzie wysłane właśnie do niego. | host www.onet.pl testowy.dns.lodz.pl |
| iconv | Konwertowanie plikow między różnymi stronami kodowymi. | iconv -f LATIN2 -t UTF-8 plik.txt > plik.txt.utf |
| ifconfig / ifup / ifdown | Programy (skrypty) do konfigurowania i aktywowania interfejsów sieciowych. Ich znajomość jest absolutnie konieczna. Ifconfig jest uniwersalnym programem spotykanym w systemach unix, ifup oraz ifdown znajdują się tylko w niektórych dystrybucjach. | ifup eth0 |
| ipchains | Kontrola reguł firewalla i routingu w starszych jądrach 2.4. Musisz być root'em. Gdy jakieś usługi sieciowe nie działają warto upewnić się że to nie firewall blokuje nam dostęp. | ipchains -L |
| ipfwadm | Kontrola reguł routingu i firewall w starych jądrach typu 2.2. | |
| iptables | Kontrola reguł firewalla i routingu w jądrach 2.6 (i części 2.4). Musisz być root'em. Warto sprawdzić gdy sieć nie działa. | iptables -L |
| iptraf | Program do nadzorowania połączeń sieciowych. Musisz być rootem. | iptraf |
| joe | Niezły edytor tekstu, przeważnie dobrze radzi sobie z polskimi znakami bez względu na system. Jest też dość prosty w obsłudze. Ma raptem kilkanaście skrótów klawiszowych. | joe plik.txt |
| kill | Zabijanie procesów. Bardzo przydatne jeżeli nam się zwiesi jakaś konsola albo jakiś program. Można też podawać inne sygnały. Jako parametr trzeba podać numer pid procesu (znajdziesz go poleceniami top oraz ps)
|
kill -HUP NUMER_PID_PROCESU |
| less | Wyświetla swoje wejście po jednym ekranie na raz. Działa jak /p w DOSie. Spacja i PgDown przewijają w dół. Strzałki też działają. Najczęściej stosuje się go jako filtr dla innych poleceń. | cat program2.cc | less |
| lilo | Program konfiguracyjny loadera systemu. Pozwala też na instalację zaktualizowanego MBR. Ostrożnie!!! | lilo -q |
| ln | Komenda do tworzenia linkow w systemie plokow. parametr -s mowi aby tworzyl linki symboliczne. | ln -s /tmp ~/skrot_do_tmp |
| logout / exit | Pozwala na właściwe wylogowanie się i zamknięcie sesji. | exit |
| ls | Komenda ta służy do listowania zawartości katalogów. Jest bardzo często stosowana więc nie sposób jej pominąć. Najlepiej używać z parametrami -a (wszystko) lub -l (ze szczegółami). | ls -l |
| lsdev | Pokazuje jakie są wykryte urządzenia w systemie i czy są do nich przypisane jakieś zasoby. | lsdev |
| lynx | Tekstowa przeglądarka internetowa. Wątpliwa przyjemność ale nieraz trzeba więc warto umieć na wszelki wypadek. Bardzo popularna. | lynx kolos.math.uni.lodz.pl |
| man |
|
man man |
| mc | Uruchamia menadżera plików. Praktycznie identyczny do Norton Comandera. By mieć polskie znaki należy w opcjach-wyświetlanie wybrać pełne 8bit dla wpisywania i wyświetlania. Bardzo pomocne narzędzie ale może utrudniać nauczenie się czystego basha i sprawnego operowania komendami. Dlatego jeśli chcesz się nauczyć dobrze linuxa staraj się szybko ograniczyć korzystanie z tej aplikacji. | mc |
| md5sum | Polecenie do wyliczania sum kontrolnych plików by zapewnić ich spójność. Wyliczamy sumę na jednym komputerze kopiujemy na inny i wyliczamy na nowo. | md5 distr_backup_200903171527.tar |
| mesg | Pozwala na zablokowanie otrzymywania komunikatów od innych użytkowników. Jeżeli na wasze terminale zaczną wywalać się setki stron jakiegoś syfu może to komunikaty od innych userów ? wykonanie cat spakowany_plik_5MB| write nie_lubiany_user sprawia że terminal wariuje a użytkownik nie bardzo wie o co idzie. Może Ctrl+c albo Ctrl+l ale jeżeli mało co wie pomyśli że system nawala. | mesg n |
| mkdir | Tworzenie katalogów. Podaj nazwę nowego katalogu. | mkdir katalog2 |
| mount | Program do montowania systemów plików. W linuxie każda dyskietka, CD czy partycja dosowa to system plików i by można było z niego korzystać należy go zamontować gdzieś w drzewie katalogów /. Montować można tylko w pustym katalogu. By można było montować trzeba mieć przeważnie prawa roota. | mount /dev/cdrom /mnt/dir_cdromu |
| mysql | Klient bazy danych MySQL. Nie jest to może jakaś ekstrawagancka baza ale do pracy z PHP jest super ! Dla tego można ją polecać. Jest też wyjątkowo szybka i prosta w instalacji i obsłudze. | mysql -u moje_konto -h localhost -p |
| mv | Przenosi wybrany plik w określone miejsce. Może też zmieniać nazwę. | mv plik2.cc /gcc/plik3.cc |
| netstat | Pokazuje aktualne połączenia sieciowe i socketowe. Taka prostsza wersja iptrafa. Bardzo pomocne przy badaniu jakie programy łaczą się z jakimi serwerami i na jakich portach. | netstat -n |
| passwd | Pozwala zmieniać hasła użytkowników. Jeśli jesteś rootem możesz podać nazwę konta któremu chcesz zmienić hasło. Zwykli userzy mogą zmieniać hasła tylko sobie. | passwd |
| ping | Program wysyła komunikat Echo Request protokołem ICMP aby zbadać czy podany komputer jest dostępny. Jeżeli nie ma odpowiedzi może to oznaczać że komputer nie jest dostępny lub celowo zablokował odpowiadanie na takie żądania. | ping kolos.math.uni.lodz.pl |
| ps | Pokazuje listę działających procesów. Można wyświetlać wedle użytkowników albo tylko swoje. | ps -aux |grep user23 |
| psql | Klient bazy PostgreSQL. Bardzo fajna baza. Szersza od Mysql. Ma trochę inne zasady działania. Koniecznie trzeba poznać. | psql |
| pstree | Podobnie jak ps pokazuje procesy ale w postaci drzewka. Ukrywa rozwidlone programy i śmieci. Niestety nie instalowane domyślnie w wielu systemach. | pstree |
| pwd | Wyswietla sciezke do aktualnego katalogu. | pwd |
| rm | Bardzo niebezpieczne ! Kasuje pliki. | rm zbedny_plik.syf |
| rmdir | Kasowanie katalogów. Też niebezpieczne. | rmdir durny_katalog |
| screen |
|
screen |
| sed | Bardzo potężne narzędzie do przetwarzania strumieni (textu). Pozwala na wyszukiwanie, wycinanie, wyszukaj-zastąp itd. Przykład zastąpi wszystkie wystąpienia nazwy użytkownika jego numerem id. Składnia tego przykładu jest następująca s oraz g na końcach argumentu to operatory mówiące że chcemy zastąpić wszystkie wystąpienia. Teks pomiędzy pierwszą parą ukośników to wyrażenie regularne. Wszystko co zostanie dopasowane będzie usunięte i zastąpione ciągiem 3245. | cat plik | sed 's/jakieskonto/3245/g' | dalszepolecenia |
| seq | Wypisuje liczby z podanego zakresu. Każda liczba wypisana jest w osobnym wierszu. Przydatne do tworzenia pętli w bash i auto numerowania. | seq 10for x in `seq 10`; do echo "wiersz ${x}"; done; |
| sort | Sortuje wiersze które otrzyma na wejściu. Często stosuje się go jako filtr wyjścia innych programów. | cat /etc/password |sort |
| split | Dzieli pliki na mniejsze kawałki. Jeśli przesyłam 600MB warto nieraz podzielić to na 20-50MB kawałki na wypadek przerwania transmisji. To samo tyczy sie obrazow DVD ktore nie mieszcza sie w pojedynczy plik FAT16 itd. Sklejamy pliki komenda cat plik1 >> out etc. Pod Windows sklejic mozemy za pomoca Total Commanders | split -b 10000000 plik |
| ssh | Nawiązuje zdalną sesję korzystając z szyfrowanego połączenia. Koniecznie musisz go stosować. Są też wersje dla windows (putty, putty2, winssh). | ssh kolos.math.uni.lodz.pl |
| strace | Bardzo ciekawe narzędize, pozwala na podsłuchiwanie komunikacji pomiędzy programem a jądrem systemu linux. Program wysyłając pakiety siecią lub wczytujący dane z klawiatury czy dysku wykonuje wywołania systemowe. Te wywołania są miejscem styku systemu z programami użytkownika. Nasłuchując wywołan wykryjemy powody dla których program umiera (nieraz log nie wystarczy a strace powie nam od razu ze nie ma uprawnień do pliku konfiguracji itd). Strace pozwala tez na debugowanie oraz poprawe wydajności aplikacji. Widząc operacje wejścia wyjścia zaważa się nieraz nieefektywność algorytmów itd. | strace -p pid_dzialajacego_programu |
| su | Pozwala na chwilowe "przelogowanie" się na inne konto lub wykonanie pojedynczej komendy z prawami danego usera. | su kowalik |
| tail / head | Wybiera początkowe lub końcowe znaki/wiersze z podanego wejścia. Dobre do filtrowania. | top -n 1 |head -n 8 |
| talk | Talk pozwala na komunikowanie się userów. Gdy wpiszemy talk user3 user3 dostanie powiadomienie że zapraszamy go do talka (jeżeli nie ma mesg n). Jeśli odpisze talk nasza_nazwa zostanie nawiązane połączenie (coś jak tekstowy chat). Zamykamy Ctrl+c. | talk jurek |
| tar | Program pakuje (nie kompresuje) podane pliki i katalogi do jednego pliku. Jest to super gdy chcemy wiele plików połączyć by łatwiej transportować albo archiwizować. Standardowo przepuszcza się taki plik jeszcze przez zipa żeby go skompresować. Tar potrafi zapisywać też informacje o uprawnieniach. Trzeba uważać żeby sobie nie zamienić kolejnością nazw i nie skasować cennych plików. Raz o trzeciej rano tak sobie zrobiłem :(. | tar -kcf plik.tar katalog |
| telnet | Nawiązuje nie szyfrowane połączenie ze zdalnym komputerem. Można przez niego pracować zdalnie. | telnet kolos.math.uni.lodz.pl |
| top | Top pokazuje procesy o maksymalnej ilości pochłanianych zasobów. Można sortować wedle ramu, procesora itd. | top -n 1 |
| touch | Tworzy nowy plik o podanej nazwie. | touch program_3.cc |
| uniq | Usuwa z wejścia wszystkie powtarzające się wiersze. Wejście musi być posortowane tak aby powtarzające się wiersze następowały zaraz po sobie. | cat plik | sort | uniq |
| uuencode / uudecode | Programik kodujący i dekodujący pliki tak by można je przesyłać pocztą. Jeżeli popsuje wam się list z załącznikiem albo nie ma klienta pocztowego a trzeba sendmailem posłać list to można tak go zakodować. (pliki nie mogą być przesyłane pocztą normalnie bo poczta nie przesyła danych pełnym 8bitowym zapisem. Tak więc by zapisać np. kod binarny E4 musi on być przerobiony na litery). | uuencode wejściowy wyjściowy |
| vim / vi |
|
vim program2.cc |
| vlock | Blokuje dany terminal by nie dało się niczego zrobić nie znając hasła usera albo roota. Nawet gdy musimy wyjść na 3 minuty warto to zrobić. Wpisanie rm -R * nie zajmie złośliwemu "człowiekowi" zbyt dużo czasu. Widziałem też jak kolega pisząc list zostawił konsolę. Inny (i to administrator!!!!) wpisał na zostawionej konsoli rm -R * i zostawił ją. Wszystko by było ok ale user po powrocie nacisnął najpierw enter (nie zauważył że tamten przerwał pisanie listu i napisał komendę w bashu) i skasował sobie większość katalogu domowego. To bardzo ponury żart ale pilnujcie się !!!! | vlock |
| w | Wyświetla aktualnie zalogowanych użytkowników. | w |
| wget | Coś w rodzaju teleporta pro. Programik pozwala w zależności od wywołania ściągać całe serwisy internetowe, wraz z grafiką i wszystkimi linkami. Można określić ile linków zewnętrznych w głąb ma ściągać. Dobry do ściągania pojedynczych plików. Super ! | wget kolos.math.uni.lodz.pl |
| write | Wysyła komunikaty na konsole usera. Patrz na opis polecenia mesg. | cat plik_wiadomości | write user |
Main Blog Categories
About the author

Hi, my name is Artur Ejsmont,
welcome to my blog.
I am a passionate software engineer living in Sydney and working for Yahoo! Drop me a line or leave a comment.
Enjoy!
Comments
Post new comment