Ostatnia aktualizacja: 14.07.2011r
Na KPL – czyli kąciku porad linuxowych będziemy wrzucać i aktualizować garść przydatnych rad oraz komend linuxowych.
Warto zaznaczyć, iż będą one w znacznej mierze dotyczyć różnych dystrybucji, pomimo wspólnych korzeni na niektórych dystrybucjach część komend może nie działać prawidłowo lub w ogóle mogą one nie działać.
Wszystkie komendy zostały przetestowane zarówno na Fedora i jak i Ubuntu
Jednak na pewno będą przydatnym drogowskazem w gąszczu problemów.
| Komenda | Opis | |
| » | apropos whatis | Pokazuje komendy odpowiadające danemu wyrazowi. Zobacz też threadsafe |
| » | man -t man | ps2pdf – > man.pdf |
Tworzy dokument .pdf z podręcznika man |
| which command | Pokazuje pełną ścieżkę dla komendy | |
| time command | Pokazuje czas trwania komendy | |
| » | time cat | Uruchamia stoper. Nacisnięcie CTRL-d przerywa wykonywanie. Zobacz też sw |
| » | nice info |
Uruchamia komendę z niższym priorytetem (W tym wypadku czytnik “info”) |
| » | renice 19 -p $$ | Uruchamia shell (skrypt) z niższym priorytetem. Używane przy automatycznych zadaniach |
| Katalogi | ||
| » | cd - | Wraca do poprzedniego katalogu |
| » | cd | Przechodzi do katalogu $HOME |
| » | (cd dir && command) | Przechodzi do katalogu, wykonuje komendę i wraca z powrotem |
| » | pushd . | Put current dir on stack so you can popd back to it |
| Szukanie plików | ||
| » | alias l=’ls -l –color=auto’ | Pokazuje zawartość katalogu |
| » | ls -lrt | Pokazuje zawartość katalogu według daty. Zobacz też newest oraz find_mm_yyyy |
| » | ls /usr/bin | pr -T9 -W$COLUMNS | Pokazuje zawartość katalogu w dziewięciu kolumnach |
| » | find -name ‘*.[ch]‘ | xargs grep -E ‘expr’ | Szuka wyrazu ‘expr’ w obecnym katalogu i poniżej. Zobacz też findrepo |
| » | find -type f -print0 | xargs -r0 grep -F ‘example’ | Szuka danego wyrazu tylko w nazwie pliku w obecnym katalogu i poniżej |
| » | find -maxdepth 1 -type f | xargs grep -F ‘example’ | Szuka danego wyrazu tylko w nazwie pliku w obecnym katalogu |
| » | find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done |
Wykonuje (w pętli) wiele komend dla każdego znalezionego wiersza |
| » | find -type f ! -perm -444 | Znajduje pliki nie mogące zostać odczytane przez nikogo (pożyteczne na serwerach www) |
| » | find -type d ! -perm -111 | Znajduje katalogi niedostępne dla żadnego użytkownika (pożyteczne na serwerach www) |
| » | locate -r ‘file[^/]*\.txt’ | Search cached index for names. This re is like glob *file*.txt |
| » | look reference | Sprawdza (wg. Kolejności) wyraz w słowniku |
| » | grep –color reference /usr/share/dict/words | Podkreśla trafienia dla danego wyrażenia znalezione w słowniku |
| Kopie zapasowe i kompresja | ||
| » | gpg -c file | Szyfruje plik |
| » | gpg file.gpg | Odszyfrowuje plik |
| » | tar -c dir/ | bzip2 > dir.tar.bz2 | Tworzy skompresowaną kopię katalogu dir/ |
| » | bzip2 -dc dir.tar.bz2 | tar -x | Odtwarza zawartość kopii (dla plików tar.gz użyj gzip zamiast bzip2) |
| » | tar -c dir/ | gzip | gpg -c | ssh user@remote ‘dd of=dir.tar.gz.gpg’ | Tworzy skompresowaną i zaszyfrowana kopię katalogu /dir a następnie kopiuje go na inny komputer |
| » | find dir/ -name ‘*.txt’ | tar -c –files-from=- | bzip2 > dir_txt.tar.bz2 |
Tworzy kopię z części plików zawartych w katalogu dir/ oraz innych w nim zawartych |
| » | find dir/ -name ‘*.txt’ | xargs cp -a –target-directory=dir_txt/ –parents |
Kopiuje część plików zawartych w katalogu dir/ oraz innych w nim zawartych do katalogu dir_txt |
| » | ( tar -c /dir/to/copy ) | ( cd /where/to/ && tar -x -p ) | Kopiuje (wraz z prawami) katalog copy/ do katalogu /where/to |
| » | ( cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x -p ) |
Kopiuje (wraz z prawami) zawartość katalogu copy/ do katalogu /where/to |
| » | ( tar -c /dir/to/copy ) | ssh -C user@remote ‘cd /where/to/ && tar -x -p’ | Kopije (wraz z prawami) katalog copy/ na inny komputer remote:/where/to/ |
| » | dd bs=1M if=/dev/sda | gzip | ssh user@remote ‘dd of=sda.gz’ | Tworzy kopię dysku na innym komputerze |
| rsync (Network efficient file copier: do testów służy opcja –dry-run) | ||
| » | rsync -P rsync://rsync.server.com/path/to/file file | Pobiera tylko różnice. W razie problemów z połączeniem można używać wielokrotnie |
| » | rsync –bwlimit=1000 fromfile tofile | Kopiuje lokalnie z ograniczeniem maksymalnej prędkością. Rodzaj nice dla operacji WE/WY |
| » | rsync -az -e ssh –delete ~/public_html/ remote.com:’~/public_html’ |
Tworzy mirror strony (wraz kompresją i szyfrowaniem danych) |
| » | rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ |
Synchronizuje aktualny katalog z katalogiem na serwerze |
| ssh (Secure SHell) | ||
| » | ssh $USER@$HOST command | Wykonuje command na $HOST jako $USER (standardowo commend to shell) |
| » | ssh -f -Y $USER@$HOSTNAME xeyes | Wykonuj GUI command na $HOST jako $USER |
| » | scp -p -r $USER@$HOST: file dir/ | Kopiuje wraz z prawami na $HOST do katalogu domowego użytkownika $USER |
| » | ssh -g -L 8080:localhost:80 root@$HOST | Przekazuje połączenia do $HOSTNAME:8080 na $HOST:80 |
| » | ssh -R 1434:imap:143 root@$HOST | Przekazuje połączenie z $HOST:1413 na imap:143 |
| wget (multi purpose download tool) | ||
| » | (cd cli && wget -nd -pHEKk
http://www.pixelbeat.org/cmdline.html) |
Tworzy kopię strony internetowej w lokalnym katalogu |
| » | wget -c http://www.example.com/large.file | Kontynuuje pobieranie częściowo ściągniętego pliku |
| » | wget -r -nd -np -l1 -A ‘*.jpg’
http://www.example.com/dir/ |
Kopiuje zbiór plików do lokalnego katalogu |
| » | wget ftp://remote/file[1-9].iso/ | FTP wspiera bezpośrednio wyrażenia regularne (globbing) |
| » | wget -q -O- http://www.pixelbeat.org/timeline.html | grep ‘a href’ | head |
Natychmiast przeszukuje dane |
| » | echo ‘wget url’ | at 01:00 | Pobiera dany URL o 1 w nocy do obecnego katalogu |
| » | wget –limit-rate=20k url | Pobiera z małym priorytetem (w tym wypadku limit to 20KB/s) |
| » | wget -nv –spider –force-html -i bookmarks.html |
Sprawdza linki w pliku |
| » | wget –mirror http://www.example.com/ | Efektywnie uaktualnia lokalna kopię strony (można użyć w programie cron) |
| sieć (Uwaga komendy ifconfig, route, mii-tool, nslookup są przestarzałe) | ||
| » | ethtool eth0 | Pokazuje status urządzenia sieciowego eth0 |
| » | ethtool –change eth0 autoneg off speed 100 duplex full | Ręcznie ustawia prędkość urządzenia sieciowego |
| » | iwconfig eth1 | Pokazuje status urządzenia bezprzewodowego eth1 |
| » | iwconfig eth1 rate 1Mb/s fixed | Ręcznie ustawia prędkość urządzenia bezprzewodowego |
| » | iwlist scan | Pokazuje dostępne sieci bezprzewodowe |
| » | ip link show | Pokazuje urządzenia sieciowe |
| » | ip link set dev eth0 name wan | Zmienia nazwę urządzenia eth0 na wan |
| » | ip link set dev eth0 up | Włącza (lub wyłacza) urządzenie sieciowe eth0 |
| » | ip addr show | Pokazuje adresy urządzeń |
| » | ip addr add 1.2.3.4/24 brd + dev eth0 | Dodaje (lub kasuje) adres IP i maskę sieciową (255.255.255.0) |
| » | ip route show | Pokazuje ruting |
| » | ip route add default via 1.2.3.254 | Ustawia standardową bramkę wyjścia na 1.2.3.254 |
| » | tc qdisc add dev lo root handle 1:0 netem delay 20msec | Dodaje opóźnienie 20ms do sterownika urządzenia (przydatne w czasie testów) |
| » | tc qdisc del dev lo root | Usuwa opóźnienie dodane powyżej |
| » | host pixelbeat.org | Pokazuje informacje IP dla nazwy DNS albo na odwrót |
| » | hostname -i | Pokazuje lokalny adres ip (równoważne z host `hostname`) |
| » | whois pixelbeat.org | Pokazuje informacje whois dla nazwy lub adresu IP |
| » | netstat -tupl | Pokazuje usługi internetowe |
| » | netstat -tup | Pokazuje aktywne usługi internetowe z i do komputera |
| sieć w systemie Windows (uwaga: pakiet samba udostępnia w całości narzędzia związane z usługami sieciowymi systemu Windows) | ||
| » | smbtree | Pokaż komputery z Windowsem. Zobacz też polecenie findsmb |
| » | nmblookup -A 1.2.3.4 | Pokaż windowsową nazwę (netbios) dla danego adresu ip |
| » | smbclient -L windows_box | Pokaz katalogi współdzielone na komputerze z Windowsem lub serwerze samby |
| » | mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share |
Podłącz katalog współdzielony |
| » | echo ‘message’ | smbclient -M windows_box | Wyślij wiadomość popup do komputera z windowsem (w XP SP2 standardowo wyłączone) |
| text manipulation (uwaga: sed używa stdin i stdout, zatem jeśli chcesz zmienić plik dodaj <oldfile >newfile) | ||
| » | sed ‘s/string1/string2/g’ | Zastępuje wyraz1 na wyraz2 |
| » | sed ‘s/\(.*\)1/\12/g’ | Zmienia dowonywyraz1 na dowolnywyraz2 |
| » | sed ‘/ *#/d; /^ *$/d’ | Usuwa komentarze i puste linie |
| » | sed ‘:a; /\\$/N; s/\\\n//; ta’ | Łączy wszystkie linie oddzielając je znakiem \ |
| » | sed ‘s/[ \t]*$//’ | Usuwa puste znaki z linii |
| » | sed ‘s/\([\\`\\"$\\\\]\)/\\\1/g’ | Opuszcza metaznaki powłoki aktywne wewnątrz cudzysłowia |
| » | seq 10 | sed „s/^/ /; s/ *\(.\{7,\}\)/\1/” |
Justuje numery do prawej |
| » | sed -n ’1000p;1000q’ | Pokazuje tysięczną linię |
| sed -n ’10,20p;20q’ | Pokazuje linie od 10 do 20 | |
| » | sed -n ‘s/.*<title>\(.*\)<\/title>.*/\1/ip;T;q’ | Pokazuje tytuł stron internetowej napisanej w HTML |
| » | sort -t. -k1,1n -k2,2n -k3,3n -k4,4n | Sortuje adresy IPV4 ip |
| » | echo ‘Test’ | tr ‘[:lower:]‘ ‘[:upper:]‘ | Zmienia wielkość znaków |
| » | tr -dc ‘[:print:]‘ < /dev/urandom | Filtruje znaki nie dające się wydrukować |
| » | history | wc -l | Liczy linie |
| operacje na zbiorach (uwaga: Aby przyśpieszyć działanie można ustawić następującą zmienną export LANG=C. Tym samym zakłada się brak identycznych linii w pliku) | ||
| » | sort file1 file2 | uniq | Połączenie nieposortowane plików |
| » | sort file1 file2 | uniq -d | Część wspólna nieposortowane plików |
| » | sort file1 file1 file2 | uniq -u | Różnica nieposortowane plików |
| » | sort file1 file2 | uniq -u | Symetryczna różnica nieposortowane plików |
| » | join -t’\0′ -a1 -a2 file1 file2 | Połączenie posortowane plików |
| » | join -t’\0′ file1 file2 | Część wspólna posortowane plików |
| » | join -t’\0′ -v2 file1 file2 | Różnica posortowane plików |
| » | join -t’\0′ -v1 -v2 file1 file2 | Symetryczna różnica posortowane plików |
| metematyka | ||
| » | echo ‘(1 + sqrt(5))/2′ | bc -l | Proste obliczenia (obliczenie ?). Zobacz też bc |
| » | echo ‘pad=20; min=64; (100*10^6)/((pad+min)*8)’ | bc |
Bardziej skomplikowane obliczenia (int). To pokazuje maksymalne prędkość FastEthernet |
| » | echo ‘pad=20; min=64; print (100E6)/((pad+min)*8)’ | python |
Python potrafi obsłużyć notacje naukową |
| » | echo ‘pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)’ | gnuplot -persist |
Prędkość FastE w relacji do wielkości pakietu |
| » | echo ‘obase=16; ibase=10; 64206′ | bc | Konwertuje liczby dziesiętne do szesnastkowych |
| » | echo $((0x2dec)) | Konwertuje liczby szesnastkowe do dziesiętnych ((arytmetyczne rozszerzenie powłoki)) |
| » | units -t ’100m/9.58s’ ‘miles/hour’ | Konwersja jednostek (dziesiętne do calowych) |
| » | units -t ’500GB’ ‘GiB’ | Konwersja jednostek (z SI do IEC) |
| » | units -t ’1 googol’ | Definiuje jednostkę |
| » | seq 100 | (tr ‘\n’ +; echo 0) | bc | Dodaje kolumne z cyframi. Zobacz też add i funcpy |
| kalendarz | ||
| » | cal -3 | Pokazuje kalendarz |
| » | cal 9 1752 | Pokazuje kalendarz dla danego miesiąca i roku |
| » | date -d fri | Pokazuję datę najbliższego piątku. Zobacz też day |
| » | date –date=’25 Dec’ +%A | W jaki dzień wypada w tym roku Boże Narodzenie |
| » | date –date ’1970-01-01 UTC 2147483647 seconds’ | Konwertuje sekundy, które upłynęły od początku epoki uniksa w datę |
| » | TZ=’:America/Los_Angeles’ date | Pokazuję godzinę na zachodnim wybrzeżu USA (użyj tzselect aby wybrać daną strefę czasową) |
| » | echo „mail -s ‘get the train’ P@draigBrady.com < /dev/null” | at 17:45 |
Wysyła email z przypomnieniem |
| » | echo „DISPLAY=$DISPLAY xmessage cooker” | at „NOW + 30 minutes” | Pokazuje okienko z przypomnieniem |
| ustawienia lokalne | ||
| » | printf „%’d\n” 1234 | Pokazuje liczbę z grupowaniem tysięcznym zgodnym z ustawieniami lokalnymi |
| » | BLOCK_SIZE=\’1 ls -l | Pokazuje grupowanie tysięczne podczas użycia komendy ls |
| » | echo „I live in `locale territory`” | Pokazuje informacje o ustawieniach lokalnych |
| » | LANG=en_IE.utf8 locale int_prefix | Pokazuje lokalne informacje dla danego kraju. Zobacz też ccodes |
| » | locale | cut -d= -f1 | xargs locale -kc | less |
Pokazuje pola dostępne w lokalnej bazie |
| recode (Polecenia iconv, dos2unix, unix2dos są przestarzałe) | ||
| » | recode -l | less | Pokazuje dostępne konwersje (aliasy na każdej linii) |
| » | recode windows-1252.. file_to_change.txt | Windows „ansi” do lokalnego kodowania (automatyczna konwersja CRLF ) |
| » | recode utf-8/CRLF.. file_to_change.txt | Windows utf8 do lokalnego kodowania |
| » | recode iso-8859-15..utf8 file_to_change.txt | Latin9 (europa zachodnia) to utf8 |
| » | recode ../b64 < file.txt > file.b64 | Kodowanie Base64 |
| » | recode /qp.. < file.txt > file.qp | Quoted printable decode |
| » | recode ..HTML < file.txt > file.html | Tekst to HTML |
| » | recode -lf windows-1252 | grep euro | Pokazuje informacje o danym znaku |
| » | echo -n 0×80 | recode latin-9/x1..dump | Pokazuje informacje o znaku w kodowaniu latin-9 |
| » | echo -n 0x20AC | recode ucs-2/x2..latin-9/x | Pokazuje kodowanie latin-9 |
| » | echo -n 0x20AC | recode ucs-2/x2..utf-8/x | Pokazuje kodowanie utf-8 |
| CDs | ||
| » | gzip < /dev/cdrom > cdrom.iso.gz | Tworzy skompresowaną kopię CD |
| » | mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz | Tworzy skompresowaną kopię CD z zawartości danego katalogu |
| » | mount -o loop cdrom.iso /mnt/dir | Podłącza (tylko odczyt) kopię CD do katalogu /mnt/dir |
| » | cdrecord -v dev=/dev/cdrom blank=fast | Kasuje dysk CDRW |
| » | gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom - |
Wypala CD z pliku (użyj dev=ATAPI -scanbus aby upewnić się co do urządzenia) |
| » | cdparanoia -B | Kopiuje ścieżki audio z CD jako pliki wav do bieżącego katalogu |
| » | cdrecord -v dev=/dev/cdrom -audio *.wav | Tworzy audio CD ze wszystkich plików wav z bieżącego katalogu (Zobacz też cdrdao) |
| » | oggenc –tracknum=’track’ track.cdda.wav -o ‘track.ogg’ | Tworzy pliki ogg z plików wav |
| disk space (Zobacz też FSlint) | ||
| » | ls -lSr | Pokazuje pliki według wielkości, największe na końcu |
| » | du -s * | sort -k1,1rn | head | Pokazuje katalogii zajmujących największą ilość miejsca w bieżącym katalogu. Zobacz też dutop |
| » | df -h | Pokazuje wolne miejsce na podłączonych systemach plików |
| » | df -i | Pokazuje wolne inodes na podłączonych systemach plików |
| » | fdisk -l | Pokazuje wielkość dysków i typ partycji (jako root) |
| » | rpm -q -a –qf ‘%10{SIZE}\t%{NAME}\n’ | sort -k1,1n | Pokazuje wszystkie zainstalowane pakiety według wielkości (Bytes) w dystrybucjach używających rpm |
| » | dpkg-query -W -f=’${Installed-Size;10}\t${Package}\n’ | sort -k1,1n | Pokazuje wszystkie zainstalowane pakiety według wielkości (KBytes) w dystrybucjach używających deb |
| » | dd bs=1 seek=2TB if=/dev/null of=ext3.test | Tworzy duży plik testowy (nie zajmując w ogóle miejsca). Zobacz też truncate |
| monitorownie/debugowanie | ||
| » | tail -f /var/log/messages | Monitoruje informacje w logu |
| » | strace -c ls >/dev/null | Pokazuje podsumowanie/profil wywołań systemowych danej komendy |
| » | strace -f -e open ls >/dev/null | Pokazuje wywołania systemowe danej komendy |
| » | ltrace -f -e getenv ls >/dev/null | Pokazuje wywołania biblioteczne danej komendy |
| » | lsof -p $$ |
Pokazuje ścieżki otwarte przez ten proces |
| » | lsof ~ | Pokazuje procesy ktore mają otwartą daną ścieżkę |
| » | tcpdump not port 22 | Pokazuje aktywność sieciową za wyjątkiem ssh. Zobacz też tcpdump_not_me |
| » | ps -e -o pid,args –forest | Pokazuje procesy wg hierarchii |
| » | ps -e -o pcpu,cpu,nice,state,cputime,args –sort pcpu | sed ‘/^ 0.0 /d’ |
Pokazuje procesy wg % użycia procesora |
| » | ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS |
Pokazuje procesy wg użycia pamięci. Zobacz też ps_mem.py |
| » | ps -C firefox-bin -L -o pid,tid,pcpu,state | Pokazuje wszystkie wątki danego procesu |
| » | ps -p 1,2 | Pokazuje informacje dla procesu o danym id |
| » | last reboot | Pokazuje historię ostatnich uruchomień |
| » | free -m | Pokazuje ilość wolnej pamięci RAM (-m w MB) |
| » | watch -n.1 ‘cat /proc/interrupts’ | Pokazuje zmiany danych aktualnie się zmieniających |
| informacje o systemie (zobacz też sysinfo) (‘#’znaczy, że musi być wykonane z prawami root) | ||
| » | uname -a | Pokazuje wersje jądra i architekturę systemu |
| » | head -n1 /etc/issue | Pokazuje nazwę i wersję linuksa |
| » | cat /proc/partitions | Pokazuje partycje zarejestrowane w systemie |
| » | grep MemTotal /proc/meminfo | Pokazuje informacje o pamięci RAM |
| » | grep „model name” /proc/cpuinfo | Pokazuje informacje o procesorze |
| » | lspci -tv | Pokazuje informacje o PCI |
| » | lsusb -tv | Pokazuje informacje o USB |
| » | mount | column -t | Pokazuje systemy plików podłączone do kuputera (informacje są wyjustowane) |
| # | dmidecode -q | less | Pokazuje informacje SMBIOS/DMI |
| # | smartctl -A /dev/sda | grep Power_On_Hours | Pokazuję całościowy czas pracy dysku |
| # | hdparm -i /dev/sda | Pokazuje informacje o dysku sda |
| # | hdparm -tT /dev/sda | Testuję prędkość odczytu dysku sda |
| # | badblocks -s /dev/sda | Szuka popsutych bloków na dysku sda |
| interactive (zobacz też linux keyboard shortcuts) | ||
| » | readline | Edytor linowy używany przez bash, python, bc, gnuplot, … |
| » | screen | Wirtualne terminale z możliwością odłączania oi podłączania |
| » | mc | Manager plików który może przeglądać rpm, tar, ftp, ssh, … |
| » | gnuplot | Interaktywny i obsługujący skrypty program do rysowania |
| » | links | Przeglądarka internetowa |
| różne | ||
| » | alias hd=’od -Ax -tx1z -v’ | Podręczna zmiana hexdump. (zastosowanie np: » hd /proc/self/cmdline | less) |
| » | alias realpath=’readlink -f’ | Pokazuje ścieżkę w postaci kanonicznej. (usage e.g.: » realpath ~/../$USER) |
| » | set | grep $USER | Przeszukuje aktualne ustawienia środowiska |
| » | touch -c -t 0304050607 file | Zmienia datę pliku (YYMMDDhhmm) |
| » | python -m SimpleHTTPServer | Uruchamia prosty serwer HTTP i tworzy drzewo plików w aktualnym katalogu na http://$HOSTNAME:8000 |
Popularity: 1%


