Linux - praktyczne komendy
Strona zawiera tłumaczenie z http://www.pixelbeat.org/cmdline.html, jej autorem jest Pádraig Brady.
Wersja tłumaczenia alfa, zresztą po co tłumaczyć komendy
Ten spis zawiera polecenia wykonywane z linii komend w Linuksie, które są użyteczne w codziennej pracy. Przykłady zaznaczone gwiazdką są poprawne/bezpiecznie, zatem można je od razu wykonać w terminalu. Jeśli chcesz możesz je równocześnie czytać i wklejać je w oknie linii komend aby zobaczyć ich działanie. Wszystkie komendy zostały przetestowane zarówno na Fedorze i jaki Ubuntu.
•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 domowego
(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 comp/ 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 (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
Forward connections to $HOSTNAME:8080 out to $HOST:80
ssh -R 1434:imap:143 root@$HOST
Przekazuje połączenie z $HOST:1413 na imap:143
wget
(multi purpose download tool)
•(cd cmdline && 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
Lookup DNS ip address for name or vice versa
•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
Remove trailing spaces from lines
sed ’s/\([\\`\\”$\\\\]\)/\\\1/g’
Opuszcza metaznaki powłoki aktywne wewnątrz cudzysłowia
Escape shell metacharacters active within double quotes
•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 plików (linie są nieposortowane wg. plików)
sort file1 file2 | uniq -d
Część wspólna plików (linie są nieposortowane wg. plików)
sort file1 file1 file2 | uniq -u
Różnica plików (linie są nieposortowane wg. plików)
sort file1 file2 | uniq -u
Symetryczna różnica plików (linie są nieposortowane wg. plików)
join -a1 -a2 file1 file2
Połączenie plików (linie są posortowane wg. plików)
join file1 file2
Połączenie linii (linie są posortowane wg. plików)
join -v2 file1 file2
Różnica plików (linie są posortowane wg. plików)
join -v1 -v2 file1 file2
Symetryczna różnica plików (linie są posortowane wg. plików)
Matematyka
•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
Plot FastE packet rate vs packet size
•echo ‘obase=16; ibase=10; 64206′ | bc
Konwertuje liczby dziesiętne do szesnastkowych
•echo $((0×2dec))
Konwertuje liczby szesnastkowe do dziesiętnych (arytmetyczne rozszerzenie powłoki )
•units -t ‘100m/9.74s’ ‘miles/hour’
Konwersja jednostek (dziesiętne do calowych)
•units -t ‘500GB’ ‘GiB’
Konwersja jednostek (z SI do IEC )
•units -t ‘1 googol’
Definiuje jednostkę
Definition lookup
•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ę
Convert number of seconds since the epoch to a date
•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
Show what a code represents in latin-9 charmap•
echo -n 0×20AC | recode ucs-2/x2..latin-9/x
Pokazuje kodowanie latin-9
•echo -n 0×20AC | recode ucs-2/x2..utf-8/x
Pokazuje kodowanie utf-8
CD-ROM
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 rpm według wielkości (KBytes) w dystrybucjach używających rpm
•dpkg-query -W -f=’${Installed-Size;10}\t${Package}\n’ | sort -k1,1n
Pokazuje wszystkie zainstalowane pakiety rpm 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
Summarise/profile system calls made by command
•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 które 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 -n1 ‘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
How long has this disk (system) been powered on in total
•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, …
Line editor used by 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’
Canonicalize path. (usage e.g.: • realpath ~/../$USER)
•set | grep $USER
Przeszukuje aktualne ustawienia środowiska
touch -c -t 0304050607 file
Zmienia datę pliku (YYMMDDhhmm)
