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
» 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%