http://www.szkolnylug.pl/content/najciekawsze-polecenia-systemu-linuxunix
Najciekawsze polecenia systemu Linux/Unix
Użytkownicy/konta/grupy
- last
- pokazuje kiedy, na jakie konto i skąd miały miejsce logowania do systemu, jak również restarty maszyny
- last reboot
- czasy ostatnich restartów systemu
- lastb
- informacje o ostatnich nieudanych próbach logowań do systemu
- w
- kto jest aktualnie zalogowany w systemie, skąd się łączy i jakie polecenie shella aktualnie wykonuje
- groups
- wyświetla grupy do których należy bieżący użytkownik
- id misio
- wyświetla gid i uid użytkownika
misio
- chage -l misio
- informacje o ważności hasła do konta
misio
- passwd -l piotrek
- blokuje UNIXowe konto
piotrek
- passwd -S piotrek
- status konta
piotrek
(czy zablokowane, kiedy ostatnio zmienione hasło, minimalny i maksymalny wiek hasła w dniach, itp.) - passwd -u piotrek
- odblokowuje konto
piotrek
- passwd -e login
- zmienia hasło użytkownikowi i nakazuje mu zmienić je przy pierwszym logowaniu
- passwd -x 180 -w 5 -i 1 login
- powoduje wygaśnięcie hasła wskazanego użytkownika po sześciu miesiącach z ostrzeżeniem 5 dni przed terminem
- userdel -r login
- usuwa konto wraz z katalogiem domowym użytkownika (opcja
-r
); o pliki użytkownika umieszczone gdzie indziej trzeba się zatroszczyć samemu - groupdel nazwa_grupy
- usuwa grupę z pliku
/etc/group
- groupadd qtss
- tworzy nową UNIXową grupę użytkowników; opcja -g dodaje nową grupę o podanym id (konieczne przy tworzeniu grupy systemowej)
- groups
- do jakich grup należy zalogowany użytkownik
- pwck
- program do analizy poprawności plików
/etc/passwd
,/etc/shadow
- grpck
- program do analizy poprawności pliki
/etc/gshadow
i/etc/group
- finger login
- wyświetlony w sposób przystępny dla człowieka skrót informacji zawartej w pliku
/etc/passwd
- useradd -c "Imie Nazwisko" -d /home/login -m -s /bin/bash login
- tworzy nowe konto UNIXa o podanym loginie, katalogu domowym i shellu (hasło trzeba potem ustawić oddzielnie poleceniem
passwd
) - adduser gucio
- tworzy nowe konto UNIXowe o loginie
gucio
- repquota -as
- raport na temat limitów dyskowych dla poszczególnych użytkowników
- sudo -l
- pozwala bieżącemu użytkownikowi poznać zestaw poleceń jakie może wykonać za pomocą sudo
- chsh login
- pozwala zmienić domyślną powłokę użytkownika o podanym loginie
Programowanie
- ldd /bin/ls
- jakie biblioteki
*.so
są wykorzystywane przez programls
- statifier /bin/ls staticls
- wykrywa biblioteki
*.so
wykorzystywane przez program i tworzy jeden plik binarny (staticls
) ze statycznie linkowanymi bibliotekami - strace -c ls >/dev/null
- wywołania systemowe wywołane i otrzymane przez proces
- strace -f -e open ls >/dev/null
- wywołania biblioteczne wykonane przez proces
Administracja
- pwgen 10 3
- generuje i wyświetla na stdout 3 hasła o długości 10 znaków
- cat /etc/issue
- informacje o używanej dystrybucji
- cat /proc/meminfo
- szczegółowy raport o wykorzystaniu pamięci
- cat /proc/cpuinfo
- szczegółowe informacje o procesorach maszyny
- uname -a
- nazwa komputera, wersja jądra, rodzaj procesora, używany system operacyjny
- lspci -vv
- informacje o urządzeniach na magistrali PCI (karta sieciowa, graficzna, itp.)
- lspci -k
- jakie moduły jądra są związane z poszczególnymi urządzeniami na magistrali PCI
- lsusb
- informacje o urządzeniach podłączonych do USB
- free
- bieżące zużycie pamięci RAM i swap
- vmstat
- statystyki pamięci wirtualnej
- lsmod
- aktualne użycie modułów jądra
- dmesg
- zapis wszystkiego na temat sprzętu, co zostało wykryte przez jądro; podaje zawsze aktualne informacje, nawet jeśli zmieniamy konfigurację sprzętu podłączając/odłączając urządzenia USB
- less /var/log/messages
- podgląd logów dziennika systemowego
- uptime
- czas działania systemu, średnie obciążenie z ostatnich 1, 5 i 15 minut
- shutdown now
- zamyka system (opcja
-r
restartowałaby system) - locale
- wyświetla ustawienia narodowe dla systemu (porządek sortowania, formatowanie waluty, rozmiar papieru, kodowanie znaków itp.)
- lsb_release -a
- informacje o dystrybucji Linuksa (Linux Standard Base)
- modprobe -l bluetooth
- pełna ścieżka pliku modułu jądra
- modprobe suni option1=value
- instalowanie modułu jądra suni
- modprobe -r suni
- usuwanie modułu suni z jądra (można też użyć
rmmod
) - modinfo nazwa_modulu
- informacje o module jądra
- cat /proc/interrupts
- jak przerwania są dystrybuowane pomiędzy procesami (przydatne przy diagnostyce konfliktów sprzętowych)
- reboot -f
- restart maszyny
- watch -d iostat
- wyświetla na pełnym ekranie wyniki polecenia
iostat
, powtarza operację co 2 sekundy a opcja-d
pokazuje kolorem różnice wyników między kolejnymi wywołaniami - iwconfig
- informacje o bezprzewodowych interfejsach sieciowych (WLAN)
- dhclient eth0
- ręczne wymuszenie przydzielenia adresu IP przez DHCP
- iwlist scanning
- informacje o sieciach bezprzewodowych dostępnych w pobliżu
- who -r
- bieżący poziom działania systemu i czas uruchomienia maszyny
- echo "DISPLAY=:0 xclock" | at now + 15 minutes
- kolejkuje wykonanie programu
xclock
za 15 minut - atq
- lista zadań zaplanowanych poleceniem
at
- atrm 1
- usuwa wskazane zadanie zaplanowane poleceniem
at
- sysctl -a
- wyświetla bieżące ustawienia jądra
- sysctl -w kernel.threads-max=16000
- zmiana wartości parametru jądra (rozważ też edycję pliku
/etc/sysctl.conf
) - ipcs
- w jaki sposób procesy używają pamięci współdzielonej
- lshal
- wypisuje zawartość bazy Hardware Abstraction Layer (HAL); żeby obejrzeć te same dane w okienku GUI można użyć
hal-device-manager
lubgnome-device-manager
) - lshw -html > hardware.html
- raport na temat sprzętu w formacie HTML
- dmidecode -t bios
- informacje o BIOSie
- script mojelogi.log
- od tej pory wszystko co jest wyświetlane na terminalu ląduje dodatkowo w pliku
mojelogi.log
(aż do użycia polecenia Ctrl+D,exit
itp.) - swapon -s
- informacje o bieżącej przestrzeni wymiany i stopniu jej użycia
- gphoto2 --auto-detect
- wyświetla listę aparatów cyfrowych podłączonych do USB
- gphoto2 --abilities
- informacje o możliwościach podłączonych do USB aparatów cyfrowych
- hdparm -i /dev/hda
- informacje o dysku twardym
- hdparm -tT /dev/sda
- test wydajności dysku (odczyt i zapis 1GB)
- cdrecord --atip dev=/dev/hdc
- wyświetla informację o możliwościach napędu CDROM
- telinit q
- zmusza proces init do ponownego wczytania pliku /etc/inittab
- eject
- wysuwa CD-ROM
- mpstat -P ALL
- statystyki rdzeni procesora
- setleds -D +caps
- włącza diodę CapsLock na klawiaturze
- chsh
- pozwala zmienić domyślną powłokę dla bieżącego konta; chsh --list-shells zwraca listę dostępnych powłok
Sieć
- whois www.example.com
- sprawdza domenę w bazie Whois (właściciel domeny i jego dane teleadresowe)
- ethtool --change eth0 autoneg off speed 100 duplex full
- Ręcznie ustawia prędkość urządzenia sieciowego
- iwconfig eth1 rate 1Mb/s fixed
- Ręcznie ustawia prędkość urządzenia bezprzewodowego
- netstat -tanp
- wyświetla informację o otwartych połączeniach TCP jak również portach na których serwery oczekują na połączenia od klientów
- /sbin/ip addr
- informacje o interfejsach, np. adres IP, adres fizyczny (MAC) (ew. można użyć
/sbin/ifconfig
) - /sbin/ip route
- IP, maska sieci, domyślna brama
- route
- tabela rutingu
- ping szatan
- sprawdza czy host szatan w ogóle działa i jest podłączony do sieci
- telnet szatan 1521
- sprawdza czy na porcie 1521 szatana nasłuchuje jakiś proces (zapewne Oracle)
- mtr merlin.pl
- wyświetla hosty po drodze od lokalnego Linuxa do komputera
merlin.pl
(można też użyćtraceroute merlin.pl
) - nslookup 10.115.115.217
- nazwa hosta dla wskazanego IP (zamiast
nslookup
można użyćdig
) - dig tiger.com.pl xafr
- wyciąga z serwera DNS całą listę znanych nazw i ich adresów
- hping3 -S mojhost -c 2 -p 80
- wysyła na port 80 komputera
myhost
2 pakiety SYN protokołu TCP - hping3 -a 10.0.44.45 -S james -c 2 -p 80
- jak wyżej, ale sfałszowany źródłowy IP
- hostname
- nazwa lokalnej maszyny
- ip addr show dev eth0
- szczegóły interfejsu eth0
- ip link set up dev eth1
- włącza (podnosi) interfejs eth1
- ip route add 192.168.42.0/24 via 192.168.1.99
- to samo co
route add -net 192.168.42.0/24 gw 192.168.1.99
(konfiguracja bramy głównej rutingu) - ip neigh
- nowszy odpowiednik polecenia
arp
(wyświetla tablicę ARP) - ss -a
- informacje o wszystkich otworzonych gniazdach
- nmap -sS -sV -0 -p 0-65535 hostname
- skanowanie SYN (opcja
-sS
) wszystkich portów hostahostname
, próba wykrycia systemu operacyjnego (opcja-0
), profilu usług (nazwa i wersja serwera) działających na wykrytych portach (opcja-sV
) - nmap -sTUR -F -P0 -O
- dość drobiazgowo skanuje komputer o podanym IP
- whois merlin.pl
- Informacje adresowe organizacji lub indywidualnej osoby, która zarejestrowała daną domenę internetową
- mail -s "Pliczek" paradox@tiger.com.pl < file.txt
- Wysyła plik tekstowy pod wskazany adres
- watch netstat -i inet
- natężenie ruchu na każdym interfejsie sieciowym
- telnet towel.blinkenlights.nl
- obejrzyj film Gwiezdne Wojny w trybie tekstowym
- sudo python -m smtpd -n -c DebuggingServer localhost:25
- stawia prosty serwer pocztowy na lokalnym hoście
XWindow
- Xephyr -ac -screen 1200×675 -query 127.0.0.1 :1
- uruchamia w okienku serwer X łącząc się przez XDMCP ze wskazanym hostem
- X -broadcast
- stawia serwer X komunikując się z dowolnym (pierwszym który się zgłosi) hostem przez XDMCP
- X -query nazwa_hosta
- stawia serwer X komunikując się przez XDMCP ze wskazanym hostem
- xhost +
- pozwala dowolnemu klientowi z dowolnego hosta połączyć się z serwerem X
- ddcprobe -?
- informacje o obsługiwanej rozdzielczości, karcie graficznej i monitorze
- xrandr -q
- informacja o dostępnych ekranach, w tym nazwa i rozdzielczości ekranu obsługiwane przez sterownik graficzny
- xrandr -s 1024×768
- ustawia rozdzielczość ekranu
- xrandr --output VGA --mode 1024×768 --same-as LVDS --output LVDS --mode 1024×768
- ustawia porty VGA (projektor) i LVDS (ekran laptopa) w trybie klonowania; nazwy ekranów trzeba podać zgodnie z wynikami polecenia
xrandr -q
- xrandr --output LVDS --auto --left-of VGA --output VGA --auto
- łączy dwa ekrany z których każdy wyświetla optymalną dla siebie rozdzielczość, tworząc jeden duży wirtualny ekran; nazwy ekranów trzeba podać zgodnie z wynikami polecenia
xrandr -q
- showrgb
- wyświetla nazwy kolorów rozpoznawane przez X Window
- glxinfo
- informacje o bieżącym stanie akceleracji sprzętowej; w szczególności najważniejszy jest komunikat direct rendering:
- glxgears
- klasyczny programik do testowania DRI
- xlsfonts
- lista czcionek zainstalowanych w systemie
- xev
- program wyświetlający szczegółowe informacje o zdarzeniach generowanych przez użytkownika (naciśnięcie/puszczenie klawisza, ruch myszką itp.)
- notify-send 'Tytul' 'komunikat'
- wyświetla GNOME'owy popup z komunikatem
Terminal
- tty
- nazwa bieżącego terminala
- write paradox
- wyświetla tekstową informację na terminalu wskazanego użytkownika
- wall < fileToSend.txt
- wyświetla tekstową informację na terminalu wszystkich użytkowników danego systemu
- mesg n
- nie pozwala na wyświetlanie informacji na konsoli
- writevt --term=/dev/pts/3 --text=foo
- wypisuje tekst na innej konsoli
Sztuczki Basha
- cp filename{,.bak}
- to samo co
cp filename filename.bak
- (cd /tmp && ls)
- przejdź do katalogu, wykonaj polecenie i powróć do poprzedniego katalogu
- echo {0..1}{0..1}{0..1}{0..1}
- wypisuje wszystkie binarne liczby 4-cyfrowe
- disown -a && exit
- zamyka shella bez zabijania procesów potomnych
- sudo !!
- uruchom ostatnie polecenie jako root
- export CDPATH=.:..:../..:~/:~/katalog_dowiazan
- Zmienna $CDPATH przechowuje listę rozdzielanych znakami dwukropka nazw katalogów, które są przeszukiwane przez wbudowane polecenie cd. Pełni ona taką samą funkcję dla instrukcji cd, jak zmienna $PATH dla uruchamianych skryptów. W przykładzie często używane nazwy katalogów w wartości zmiennej; katalog_dowiązań oznacza katalog przechowujący jedynie dowiązania symboliczne do innych często wykonywanych katalogów
- cd
- przejście do katalogu domowego
- cd ~piotrek
- przechodzi do katalogu domowego użytkownika piotrek
- cd -
- przejście do poprzedniego katalogu (sprzed poprzedniego wykonania cd)
- pushd nowy_katalog
- zapisanie dotychczasowego katalogu na stosie i przejście do nowego katalogu
- dirs -v
- wyświetla aktualny stos katalogów
- pushd +2
- przeniesienie na szczyt stosu wpisu o numerze 2 i jednoczesna zmiana bieżącego katalogu na odpowiadający temu wpisowi
- !-4
- powtórz czwarte polecenie od końca
- !string
- powtórz najświeższe polecenie rozpoczynające się łańcuchem string
- !?string?
- powtórz najświeższe polecenie zawierające (gdziekolwiek) łańcuch string
- ^napis1^napis2^
- powtórz ostatnie polecenie z podmienionym napis1 na napis2
- !20:p
- tylko wyświetla polecenie o nrze 20, bez wykonywania go
- history -c
- czyści całą historię
- shopt -s histappend
- wymusza dopisywanie historii użytych poleceń na końcu pliku historii przy kończeniu pracy interaktywnej sesji Basha
- export HISTTIMEFORMAT='%Y-%m-%d_%H:%M:%S '
- (od Basha 3.0) powoduje że wraz z poleceniem w historii będzie pamiętany (i zapisywany do pliku historii) czas jego wykonania; polecenie history wyświetli czas wydania każdego polecenia w podanym formacie
- { pwd; ls; cd ../gdzies; pwd; ls; } > /tmp/wszystko.txt
- Nawiasy klamrowe muszą być otoczone znakami spacji, a na końcu ostatniego grupowanego polecenia musi być średnik. Opcjonalnie można wykorzystać znaki nawiasu okrągłego, nakazując interpreterowi wykonanie poleceń w podpowłoce.
- echo opcja $OPTSTR >&5
- wypisanie wyniku na 5ty deskryptor
- skrypt 3>&1 1>&2 2>&3-
- zamienia deskryptory 1 i 2 przy użyciu pomocniczego deskryptora 3 (usuwanego potem)
- skrypt 3>&1 1>dziennik.stdout 2>&3- | tee -a dziennik.stderr
- zamienia stderr i stdout tak aby można było kierować dane ze strumienia stdout do pliku dziennika, a informacje ze strumienia stderr zarówno na ekran jak i do pliku
- diff <(ls /etc/rc2.d) <(ls /etc/rc3.d)
- przykład na wstawienie wyników poleceń tam gdzie program oczekuje nazw plików; sprawdź z ciekawości wynik polecenia echo <(/bin/true)
- type identyfikator
- określa czy identyfikator jest poleceniem wbudowanym, funkcją, aliasem, czy zewnętrznym programem; pokazuje również czy polecenie jest zhaszowane (bash najpierw sięga do hasza, a dopiero w następnej kolejności szuka w katalogach określonych w zmiennej PATH)
- builtin echo
- uruchamia polecenie wbudowane (bez względu na to czy istnieje funkcja, alias lub polecenie zewnętrzne o tej samej nazwie)
- command echo
- uruchamia polecenie zewnętrzne ignorując aliasy i funkcje o tej samej nazwie
- \echo
- uruchamia na pewno nie alias
- shopt -s dirspell
- tabulacja przy wprowadzaniu ścieżki do katalogu próbuje poprawiać pisownię katalogu jeśli użytkownik zrobił literówkę
- shopt -q -s cdspell
- automatyczna korekta prostych błędów w użyciu polecenia cd
- shopt -s nocaseglob
- podczas podmiany wartości ścieżek dostępu ignorowana jest wielkość liter
- shopt -s globstar
- od tej pory ** oznacza pełną listę plików i ścieżek poniżej bieżącego katalogu (począwszy od Bash 4)
- set -e
- kończy pracę powłoki po zwróceniu przez jakiekolwiek zwykłe polecenie niezerowego kodu zakończenia
- set -o vi
- edycja poleceń w trybie Vi (zamiast domyślnego trybu Emacs)
- set +h
- powoduje że polecenia shella nie będą haszowane
- set -u
- powoduje traktowanie odwołań do nieistniejących zmiennych jako błąd
- set -v
- powoduje wypisywanie poleceń na stdout w miarę ich wykonywania
- \unalias -a
- usuwa wszystkie aliasy (nawet jeśli jakiś chitrusek zrobił alias dla polecenia unalias)
- hash -r
- usuwa wszystkie wpisy w tablicy odwzorowań plików wykonywalnych (aby przyspieszyć kolejne wywołania poleceń, powłoka zapamiętuje położenia plików wykonywalnych najczęściej wykonywanych instrukcji; jeden ze sposobów oszukania użytkowników polega na zatruciu tablicy)
- ulimit -H -c 0 --
- uniemożliwia tworzenie plików core'a (w których mogą być np. hasła)
- stty/reset/tset
- przywraca poprawne ustawienia terminala (po np. próbie wyświetlenia pliku binarnego); reset i tset mogą być zbyt drastyczne, zwykle stty działa poprawnie
- chsh /bin/bash
- powoduje że domyślną powłoką na bieżącym koncie UNIXowym będzie Bash; lista dopuszczalnych powłok jest podana w pliku /etc/shells
- getopts
- polecenie wbudowane shella do użycia przez skrypty do parsowania parametrów wywołania skryptu
- mkdir -p ~/misio/pysio/{old,new,dist,bugs}
- tworzy od razu wiele katalogów, opcja -p powoduje tworzenie katalogów misio i pysio jeśli jeszcze nie istnieją
- getconf -a
- wyświetla wartości różnych ograniczeń, np. max. długość polecenia w wierszu wprowadzania (ARG_MAX), max. długość loginu (LOGIN_NAME_MAX), itp.
- find katalog -name '*z*' -print0 | xargs -0 program
- rozwiązanie problemu ograniczenia długości wiersza wprowadzania; poszczególne argumenty będą rozdzielone znakiem NULL (nie może występować w nazwie pliku), polecenie program będzie wykonane raz lub więcej razy w zależności od ilości parametrów wygenerowanych przez find
- logger -p local0.notice „moj komunikat”
- pozwala zalogować komunikat do logu systemowego
- nc
- program NetCat pozwala logować komunikaty przez sieć
- (cat tresc_wiadomosci; uuencode /plik_zalacznika nazwa_zalacznika) | mail -s „Temat” odbiorca1@host.plodbiorca2@host.pl
- wysyła maila z treścią i załącznikiem (działanie zależne dość mocno od konfiguracji)
- date -d '+4 days' '+%a %Y-%m-%d %H:%M:%S %z'
- wyświetla wskazaną datę w podanym formacie
- nohup skrypt &
- demonizowanie skryptu tak aby działał po wylogowaniu się użytkownika (patrz też screen)
- source skrypt
- wykonuje w tej samej powłoce polecenia zawarte we wskazanym skrypcie (zwykłe wywołanie skryptu uruchomiłoby go w podpowłoce)
- time polecenie
- wykonuje polecenie i dodatkowo wypisuje informacje o czasie jego wykonania
- ulimit
- pozwala odczytywać i ustawiać ograniczenia dla zasobów dostępnych dla procesów uruchamianych z Basha (np. max. rozmiar stosu, max. ilość czasu procesora, wątków, otwartych plików itp.); twardy limit po ustawieniu może być modyfikowany wyłącznie przez administratora; limit miękki może być co najwyżej tak wysoki jak twardy limit
Data i czas
- cal -m
- kalendarz na bieżący miesiąc (
-m
żeby tydzień zaczynał się od poniedziałku) - cal -y
- kalendarz na bieżący rok
- date
- bieżąca data i czas
- date -d '+5 days -2 hours'
- pokaż czas przesunięty o określony przedział
- date +%d_%m_%Y
- wyświetla datę w formacie 15_07_2010
- ntpdate tempus1.gum.gov.pl
- korekcja bieżącego czasu systemowego w oparciu o wskazany serwer NTP (tutaj: atomowy zegar z Głównego Urzędu Miar)
System plików
- rename .cxx .cpp *.cxx
- zamienia nazwy plików z .cxx na cpp
- rename 'y/A-Z/a-z/' *
- konwersja nazw plików w bieżącym katalogu na małe litery
- mkdir -p work/{d1,d2}/{src,bin,bak}
- tworzy całe drzewo katalogów
- tar –exclude-vcs -cfz src.tgz src/
- pakuje katalog
src
ale bez katalogów systemów kontroli wersji (.svn
,.git
itp.) - stat file
- wyświetla metadane wskazanego pliku
- stat -f /
- informacje o systemie plików wskazanego pliku (typ, max. długość nazwy pliku, liczba bloków/inode'ów, itp.)
- fdisk -l
- wyświetla informację o dyskach i ich partycjach
- chown -R user.grupa katalog
- ustawia właściciela (użytkownika i grupę) dla wszystkich katalogów i plików we wskazanym drzewie katalogów
- chmod g+rw,o-rwx file
- do pliku
file
dodaje uprawnienia odczytu i zapisu dla grupy oraz zabiera uprawnienia odczytu/zapisu/wykonania dla pozostałych użytkowników - chmod go= file
- usuwa uprawnienia dla grupy i świata
- chmod g=u file
- nadaje grupie takie same uprawnienia jakie ma właściciel
- chgrp group file
- przypisuje plik
file
do grupygroup
- df -HT
- pokazuje ilość miejsca wolnego na każdej podmontowanej partycji oraz typy systemów plików (opcja
-T
) - mount | column -t
- wyświetla ładnie sformatowaną w kolumny listę podmontowanych partycji (urządzenie, katalog podmontowania itp.)
- ls -altr
- wyświetla szczegółową zawartość katalogu sortując pliki tak aby ostatnio modyfikowane znalazły się na końcu
- mc
- Midnight Commander – manager plików, tekstowy odpowiednik znanego z Windows Norton Commandera
- chown -R user.grupa katalog
- ustawia nazwę użytkownika i grupy dla wszystkich plików i katalogów w drzewie katalogów zakorzenionym w
katalog
- grep -ri wzorzec katalog
- przeszukuje pliki drzewa katalogów o korzeniu w katalog w poszukiwaniu wzorca (wyrażenie regularne); opcja
i
ignoruje wielkość liter - find katalog -name '*z*' -print0 | xargs -0 grep wzorzec
- podobnie jak poprzednio, ale polecenie
find
pozwala dużo bardziej selektywnie wybierać pliki do przeszukania (np. pliki o nazwach pasujących do określonego wzorca, pliki modyfikowane nie później niż itp.) - locate fragment_nazwy_pliku
- wyszukuje pliki zawierające w nazwach podaną frazę; działa ZNACZNIE szybciej niż
find
, ale nie ma takich możliwości i tylu opcji - shred -n -2 -z -v /dev/hda1
- skutecznie zamazuje dysk lub partycję (w 2 przebiegach) tak aby nie dało się jej odczytać nawet przy użyciu specjalistycznych narzędzi
- grave-robber -c /mnt/hda1 -o LINUX2 -d /mnt/hdb1/dane -v
- analizuje linuxową partycję hda1 umieszczając wyniki analizy (baza danych o wszystkich plikach, wyjście poleceń
df
,dpkg
,rpm
,lsof
itp.), kopia wrażliwych plików systemowych, historie poleceń powłok użytkowników, klucze SSH użytkowników itp.) we wskazanym katalogu - gpart /dev/hda
- skanuje cały dysk w poszukiwaniu sygnatur systemów plików i w ten sposób wykrywając położenia początków i końców systemów plików, co pozwala odtworzyć tablicę partycji; najlepiej radzi sobie z partycjami podstawowymi, a mniej z rozszerzonymi; czasem trzeba ręcznie poprawić wykryte ustawienia; można użyć opcji:
-f
wymusza dokładniejsze skanowanie,-i
interaktywne pytanie użytkownika czy się zgadza z ustaleniem programu - gpart -b file -W /dev/hda /dev/hda
- zapisuje zrekonstruowaną tablicę partycji na wskazanym urządzeniu, archiwizując poprzednią zawartość tablicy partycji w pliku file
- testdisk /dev/sda
- skanuje i naprawia partycje dyskowe (
testdisk
pozwala odzyskać utracone partycje, np. gdy tablica partycji uległa zniszczeniu) - ntfsfix /dev/sda1
- naprawia system plików NTFS (tylko podstawowe czynności naprawcze)
- foremost -a -o /media/disk -i /dev/sda2
- skanuje partycję
/dev/sda2
pod kątem znanych typów plików (obrazki, video, niektóre typy dokumentów ale NIE pliki tekstowe) i odtwarza je na partycji/media/disk
; opcja-a
powoduje poszukiwanie częściowo zachowanych plików i próbuje odtworzyć co tylko się da - growisofs -Z /dev/scd0 DVD-image.iso
- wypala obraz płyty na płytce DVD
- cdrecord dev=/dev/hdc blank=fast mini.iso
- wypala na płytce CD plik
mini.iso
- mkdosfs -F 16 /dev/sda1
- formatowanie napędu w FAT16
- mount /dev/sda1 /mnt/sda1
- ręczne montowanie partycji
/dev/sda1
w katalogu/mnt/sda1
(aby montować automatycznie, trzeba dodać wpis w pliku/etc/fstab
) - mount -a
- montuje wszystkie systemy plików wymienione w /etc/fstab
- fuser -km /mnt/hda2
- wymusza umount na zajętym urządzeniu
- umount /dev/sda1
- odmontowuje partycję
/dev/sda1
- genisoimage -J -R -m *.html -x tmp -V "Backup" -o myfile.iso /directory/data
- Tworzy plik
myfile.iso
z etykietą „Backup” zawierający drzewo katalogów/directory/data
, z wyjątkiem plików*.html
i katalogutmp
; włączony jest styl Joliet (opcja-J
, bardziej UNIXowy Rockridge osiągamy opcją-r
) z zachowaniem uprawnień i właścicieli plików (opcja-R
);genisoimage
z powodów licencyjnych zastępuje stary programmkisofs
- mkfs -t ext3 /dev/sda1
- tworzy system plików ext3 na partycji
/dev/sda1
- fsck /dev/sda1
- sprawdzanie integralności systemu plików na wskazanej partycji
- mount -o remount,ro /media/usb
- odmontowuje dany system plików i podmontowuje ponownie, ale ze zmienionymi parametrami (np. żeby zmienić
rw
naro
) - mount -o loop myfile.iso /mnt/tmp
- pozwala przetestować obraz ISO podłączając go jako system plików (odmontowujemy poleceniem
umount /mnt/tmp
) - du -sk /usr
- ilość pamięci dyskowej w KB zajmowanych przez poddrzewo plików o korzeniu /usr
- du -s * | sort -rn | head
- wyświetl 10 największych podkatalogów bieżącego katalogu
- whereis program
- pełna ścieżka do programu
- dnotify -C $HOME/dokumenty -e mojprogram '{}'
- uruchamia
mojprogram
z odpowiednim argumentem gdy w katalogu$HOME/dokumenty
pojawi się jakiś plik - savelog plik.log
- rotacja pliku z logami (przeniesienie plik.log do plik.log.0, plik.log.0 do plik.log.1.gz itd.)
- dd if=/dev/hdc of=myimage.iso bs=1M
- kopia płytki CD (nie trzeba jej montować, opcja
bs=1M
przyspiesza operację) - dd if=/dev/hda of=bootsector bs=512 count=1
- kopiuje bootsector dysku do pliku
- dd bs=512 conv=noerror,sync if=/dev/hda of=/dev/hdb
- tworzy kopię zapasową uszkodzonego dysku; ignoruje błędne sektory (w kopii wypełnia je zerami)
- rsync -a --exclude=*.wav --delete -z from/dir/ szatan.tiger.com.pl:/home/gucio/backup
- za pomocą SSH tworzy w katalogu
/home/gucio/backup
komputeraszatan.tiger.com.pl
kopię lokalnego drzewa katalogówfrom/dir/
, ew. aktualizuje tą kopię uzupełniając różnice; opcja-a
nakazuje zachowanie łączy symbolicznych i uprawnień do plików,--delete
nakazuje usuwać w kopii docelowej pliki nieistniejące już na lokalnym komputerze; opcja-z
wymusza kompresję przesyłanych danych aby oszczędzać łącze (grsync
jest graficzną nakładką do rsync'a) - file nazwa_pliku
- informacje o pliku (jakiego jest typu)
- file – < /dev/hda1
- wyświetla informacje o typie systemu plików na wskazanej partycji/urządzeniu
- mkdir -m 755 dir
- tworzy nowy katalog nadając mu jednocześnie uprawnienia
- mkdir -p photos/scanned/jpgs/thumbs
- tworzy katalog wraz z podkatalogami
- rm -r katalog
- usuwa drzewo katalogów
- cp -r fromdir todir
- kopiuje całe drzewo katalogów
- mount -t tmpfs -osize=64m tmpfs /memdisk
- tworzy wirtualny dysk w pamięci RAM
- lsattr myfile
- atrybuty specjalne pliku
- chattr +a file1
- pozwala na otwarcie pliku do zapisu tylko w trybie „append”
- chattr +c file1
- pozwala na automatyczną kompresję/dekompresję pliku przez jądro systemu
- chattr +d file1
- pozwala ignorować plik podczas wykonywania backupu
- chattr +i file1
- uniemożliwia modyfikację/usunięcie/zmianę nazwy pliku
- chattr +S file1
- wymusza natychmiastową synchronizację pliku przy każdym zapisie
- chattr +u file1
- pozwala odtworzyć zawartość pliku
- sync; sync
- opróżnienie wszystkich buforów wejścia/wyjścia; dopiero zakończenie drugiego polecenia
sync
gwarantuje że wszystkie zbuforowane dane znajdują się już na dyskach
Potoki i przekierowania
- polecenie | less
- pozwala przeglądać tekst wypisany przez polecenie na stdout (np. klawiszami pgup/pgdown); klawisz Q powraca do wiersza poleceń
- polecenie | tee plik.txt | polecenie2
- program
tee
kopiuje tekst otrzymany na standardowym wejściu na standardowe wyjście oraz do wskazanego pliku (opcja-a
powoduje dopisywanie do pliku zamiast tworzenia nowego za każdym razem) - script out.txt
- powoduje że od tej pory wszystko co idzie na ekran będzie również zapisywane do wskazanego pliku – aż do czasu użycia kombinacji klawiszy Ctrl+D
Operacje na zawartości plików
- comm -3 a.txt b.txt
- wypisuje zmerge'owaną i posortowaną wierszami zawartość obu plików z pominięciem tych wierszy które występują w obydwu plikach; pliki muszą być posortowane wierszami
- recode ..HTML < page.txt > page.html
- konwertuje plik tekstowy do formatu HTML (znaki poza ASCII zostaną zakodowane jako encje)
- xmlwf file.xml
- czy plik XML jest poprawny (ang. well formed)
- zcat/zless/zgrep
- odpowiedniki
cat
,less
igrep
działające na zawartości plików *.gz - > file.txt
- tworzy nowy pusty plik (to samo co
touch file.txt
) lub czyści go jeśli istnieje - bzcat plik.bz2, bzless plik.bz2
- wersje poleceń cat i less dla plików spakowanych algorytmem Burrowsa-Wheelera
- expand myfile.txt
- przekształca znaki tabulatora w spacje
- unexpand myfile.txt
- przekształca znaki spacji w tabulatory
- tac myfile.txt
- odwraca wiersze tekstu
- rev myfile.txt
- odwraca kolejność znaków w wierszu
- nl myfile.txt
- numeruje wiersze tekstu
- pr -o 5 -w 85 -l 66 -f myfile.txt
- dodaje margines 5 znaków, formatuje do szpalty o szerokości 80 znaków, dzieli na strony, dodaje nagłówki i stopki, wysokość strony 66 wierszy
- od -Ax -tx1z /usr/bin/who
- wyświetla zawartość wskazanego pliku szesnastkowo i ASCII
- xxd /usr/bin/who, xxd -b /usr/bin/who
- wyświetla zawartość wskazanego pliku szesnastkowo/binarnie i ASCII
- xxd -i /usr/bin/who
- wyświetla zawartość wskazanego pliku jako struktura danych (tablica danych typu unsigned char) języka C
- tr 'a-z' 'A-Z' < test.txt
- zamiana wszystkich małych liter na duże w wypisanej na stdout zawartości pliku
test.txt
- tr -d '0-9' < test.txt
- usuwanie wszystkich cyfr w wypisanej na stdout zawartości pliku
test.txt
- tr -c -d 'A-Z a-z' < test.txt
- usuwanie wszystkich znaków z wyjątkiem liter i spacji w wypisanej na stdout zawartości pliku
test.txt
- tr -d '\r' < wintext.txt
- konwersja końców wiersza Windows na Linux w wypisanej na stdout zawartości pliku
wintext.txt
- tr 0 \\n < /proc/self/environ
- dane w systemie
/proc
sa rozdzielane zwykle znakiem ASCII o kodzie 0; warto je zamienić na EOLe przy wyświetlaniu na terminalu - dos2unix wintext.txt
- konwersja końców wiersza Windows -> Linux w pliku
wintext.txt
- unix2dos linuxtext.txt
- konwersja końców wiersza Linux -> Windows w pliku
linuxtext.txt
- paste imiona.txt nazwiska.txt
- skleja wiersze pierwszego pliku z wierszami drugiego
- join -t, -1 2 -2 1 imiona.txt nazwiska.txt
- skleja wiersze plików według wspólnych wartości kolumny (nr 2 w pierwszym pliku i nr 1 w drugim pliku); kolumny rozdzielamy przecinkiem
- split -d -l 1000 dictionary.txt dictionary.
- rozbija plik tekstowy na mniejsze pliki po 1000 wierszy (z wyj. być może ostatniego), nazwom kolejnych plików po podziale nadając sufiksy 00, 01, itd. (opcja
-d
) - antiword plik.doc > text.txt
- konwersja MSWord -> ASCII
- dd if=/dev/sda bs=1M | gzip -1c > /media/sdc1/sda1.img.gz
- archiwizuje dysk; później można odtworzyć poleceniem
gzip -dc /media/sdc1/sda1.img.gz > /dev/sda
- base64 plik
- konwersja zawartości pliku do BASE64
- catdoc -a file.doc
- konwersja pliku MS Windows na ASCII
- diff -u file1.txt file2.txt > patch
- zapisuje różnice pomiędzy plikami tekstowymi do pliku tekstowego w formacie diff
- bsdiff oldfile newfile patchfile
- porównuje dwa pliki binarne i zapisuje różnice w pliku
patchfile
, tak aby można było zaaplikować je do poleceniabspatch
- patch -b -p0 < patch
- w kontekście poprzedniego polecenia, wprowadza do pliku
file2.txt
zmiany dokonane w plikufile1.txt
; opcja-b
tworzy kopię oryginalnego pliku, a opcja-p0
oznacza że poprawki mają być wprowadzane w aktualnym katalogu - file plik
- wyświetla informacje o pliku na podstawie jego zawartości (typ pliku, rozmiar w pikselach dla obrazków, częstotliwość próbkowania dla plików muzycznych itp.)
- tail +2 plik
- wyświetla cały plik z pominięciem pierwszej linijki
- ls -l | tail +2 | tr -s ' ' | cut -d ' ' -f 6-8
- wyświetla kolumny 6-8 wyniku polecenia
ls -l
; polecenietr
zamienia ciągi spacji na pojedyncze spacje; opcja-d
powoduje że separatorem kolumn jest spacja (zamiast domyślnej tabulacji) - strings binary-file
- wyświetla łańcuchy (min. 4 występujące obok siebie znaki drukowalne) zawarte wewnątrz pliku binarnego; przydatne żeby np. poznać nazwy plików konfiguracyjnych z jakich korzysta program;
strings /dev/mem
przeczesuje pamięć RAM - sort -u -k 3 -t';' -n -r /etc/passwd
- sortuje plik
/etc/passwd
numerycznie (opcja-n
) według 3ej kolumny (id użytkownika), w odwrotnej kolejności (opcja-r
), traktując znak dwukropka jako separator kolumn i pomijając powtarzające się wiersze (opcja-u
) - sort -c file.txt
- zwraca kod błędu 0 gdy plik jest posortowany i większy od zera w przeciwnym wypadku
- md5sum file
- oblicza skrót MD5 dla zawartości pliku; do skrótu SHA-1 jest polecenie
sha1sum
- grep -winr gucio katalog
- przeszukuje wszystkie pliki w drzewie katalogów o korzeniu w katalog (opcja
-r
) w poszukiwaniu słowa „gucio” niezawartego w innym słowie (opcja-w
) ignorując wielkość liter (opcja-i
) i dodatkowo podaje numery wierszy (opcja-n
) - grep -c gucio pliki…
- wypisuje liczbę wierszy we wskazanych plikach, które zawierają podciąg „gucio”
- grep -v gucio plik
- wypisuje te wiersze pliku, które nie zawierają podciągu „gucio”
- grep -F napis plik
- wzorzec traktowany jest jak zwykły napis a nie wyrażenie regularne, przez co polecenie działa szybciej
- grep -P regexp plik
- wyrażenie regularne może być wyrażeniem Perla (eksperymentalne, ale daje najszerszą znaną klasę wyrażeń regularnych)
- zgrep regexp plik.gz
- wyszukuje w pliku skompresowanym programem
gzip
, dekompresując go w locie na użytek przeszukiwania - bzgrep regexp plik.bz2
- wyszukuje w pliku skompresowanym programem
gzip
, dekompresując go w locie na użytek przeszukiwania - steghide --embed -ef sekretny-plik.txt -cf niewinny.jpg -p haslo123 -e rijndael-256 -sf wynik.jpg
- używa steganografii do zakodowania w obrazku (może być JPG, BMP, WAV, AU) zaszyfrowanej hasłem wiadomości z pliku tekstowego; program SteGUI jest nakładką GUI na
steghide
- steghide --extract -sf wynik.jpg
- wyciąga zaszyfrowaną wiadomość utworzoną poprzednim poleceniem
- shuf -n 20 plik.txt
- wybiera losowych 20 wierszy z pliku
- iconv -f ISO8859-2 -t UTF-8 plik.txt
- konwersja kodowania znaków w pliku tekstowym; polecenie
iconv --list
wyświetla obsługiwane kodowania - indent -kr hello.c
- sformatuj plik źródłowy C według zaleceń Kernighana i Ritchiego
- grep –color=always | less -R
- kolorowany
grep
wless
- tidy -xml -i -m file.xml
- wypisuje na stdout ladnie polamany/sformatowany XML
- pdfinfo plik.pdf
- informacje o pliku PDF (tytuł, data utworzenia, rozmiar strony, wersja PDF itp.)
- pdfinfo -opw mojehaslo plik
- zabezpiecza dokument hasłem właściciela (opcja
-upw
zakłada hasło użytkownika) - pdffonts plik.pdf
- lista czcionek wykorzystywanych w dokumencie i informacja czy są zagnieżdżone
- pdfimages -j plik.pdf katalog_docelowy
- wydobywa z pliku PDF obrazy i zapisuje je w formacie JPG w podanym katalogu
- pdfjam mydoc.pdf –a4paper –outfile myA4doc.pdf
- zmiana formatu strony dokumentu na A4 (np. z US letter)
- pdftk form.pdf attach_files form.tex new.pdf
- tworzy
new.pdf
poprzez dodanie załącznikaform.pdf
doform.pdf
- pdftk new.pdf unpack_files output Source
- wyodrębnia załączniki z PDFa i zapisuje je w katalogu
Source
- pdftk example.pdf burst output Pages/Page03%d.pdf
- rozbija PDFa na osobne dokumenty po 1 stronie na dokument i zapisuje je w katalogu
Pages
; pliki będą miały nazwyPage000.pdf
,Page001.pdf
itd. - pdftk example.pdf form.pdf attachment.pdf cat output concat.pdf
- scala wskazane pliki w jeden plik
concat.pdf
- pdftk file.pdf output new.pdf user_pw haslo allow printing copycontents
- szyfruje i zabezpiecza dokument hasłem użytkownika nadając mu uprawnienia do drukowania dokumentu i kopiowania do schowka zawartości dokumentu
- convert *.jpeg images.pdf
- Tworzy prosty PDF ze wszystkimi obrazkami
PostScript
- psselect -p2,4-10 newsletter.ps selection.ps
- wybiera z pliku newsletter.ps wskazane strony (odpowiednio 2,4-10) i zapisuje je w pliku
selection.ps
; opcja-o
oznacza nieparzyste,-e
parzyste - psnup -8 -d single.ps octo.ps
- umieszcza 8 stron na jednej, dodaje obramowanie i umieszcza wynik w
octo.ps
- psresize -pa5 myps.ps newps.ps
- zmienia rozmiar strony na A5
- psmerge -oslideshow.ps slide1.ps slide2.ps slide3.ps
- łączy pliki
slideX.ps
w plikslideshow.ps
- ps2ascii file.ps file.txt
- konwersja PostScript -> ASCII
- enscript -f Courier7 -Ecpp -G -j connection_state.h > temp.ps
- elegancka konwersja kodu źródłowego do PostScripta (z podświetlaniem składni):
- man -t psbook > psbook.ps
- konwersja strony manuala do PostScriptu
- gv --watch file.ps
- wyświetla plik PostScriptu reagując na zmianę pliku z zewnątrz
Sed
Edytor strumieniowysed
przetwarza pliki podane na wejściu i generuje wynik na stdout.- sed -n '2p' file.txt
- wyświetla drugi wiersz pliku
- sed '5,7d' file.txt
- wyświetla wszystkie wiersze pliku z wyjątkiem wierszy 5-7
- sed -e '/^#.*/d' -e 's/misio/pysio/g' file.txt
- pomija wiersze zaczynające się od '#' a w pozostałych podmienia słowo „misio” na „pysio” (flaga
g
oznacza zamianę wszystkich wystąpień słowa w wierszu) - sed '3r extras.txt' file.txt
- dołącza zawartość pliku
extras.txt
po 3cim wierszu plikufile.txt
- sed '5,$w out.txt' file.txt
- zapisuje wszystkie wiersze pliku
out.txt
począwszy od 5 do końca, do plikuout.txt
Archiwa
- tar cfz plik.tgz katalog
- pakuje drzewo katalogów o korzeniu w katalog do pliku plik.tgz
- tar xfz plik.tgz
- rozpakowuje plik archiwum
*.tgz
w bieżącym katalogu - zip -r plik.zip katalog
- pakuje drzewo katalogów o korzeniu w katalog do pliku plik.zip
- unzip plik.zip
- rozpakowuje plik archiwum
*.zip
w bieżącym katalogu - unzip -a plik.zip
- podczas rozpakowywania wstawia linuksowe znaki powrotu karetki we wszystkich plikach tekstowych
- unzip -l plik.zip
- listuje zawartość archiwum
- rar a file1.rar mydir
- pakowanie katalogu do pliku *.rar
- rar x file1.rar
- rozpakowanie archiwum *.rar (to samo robi polecenie unrar file1.rar)
Procesy
- ps ax
- wyświetla listę wszystkich procesów systemu; jeśli używasz KDE, spróbuj [Ctrl+Esc])
- ps axfww
- widok leśny (jeszcze ładniej wygląda wynik polecenia
pstree
) - ps U 1007
- wyświetla wszystkie procesy użytkownika o podanym id
- ps -C someprogram || { someprogram & }
- sprawdza czy program o podanej nazwie działa i jeśli nie, to uruchamia go w tle (przydatne jako polecenie crona w przypadku demona który zawsze powinien chodzić)
- fuser -v /dev/dsp
- wyświetla listę procesów korzystających ze wskazanego pliku/urządzenia/gniazda
- top
- monitorowanie na bieżąco zużycia zasobów przez procesy ([h] – opcje)
- atop
- jak
top
, ale śledzi trendy w czasie i ostrzega z wyprzedzeniem o możliwości przekroczenia zasobów, - htop
- jak
top
, ale pozwala przewijać wszystkie procesy ([F5] – drzewko procesów, [F3] – szukaj) - iotop
- pokazuje statystyki I/O z rozbiciem na procesy
- pstree -apu
- pokazuje dziedziczenie procesów i parametry wywołania (opcja
-a
), PID (opcja-p
) i właściciela procesu (opcja-u
) - renice -n 10 3494
- zmienia priorytet działającego procesu o podanym PIDzie (tylko administrator może podnieść priorytet)
- pgrep -lf gnome
- to samo co
ps ax | grep gnome
- pkill gnome
- kończy pracę wszystkich procesów które w nazwie mają słowo „gnome”
- pkill -u user
- kończy pracę wszystkich procesów wskazanego użytkownika
- killall -r 'evolution.*'
- kończy wszystkie procesy aplikacji Evolution
- kill -9 -1
- ubicie wszystkich procesów do których użytkownik ma prawa dostępu
- kill -9 `lsof -t file`
- zabija wszystkie procesy korzystające aktualnie z pliku
file
- kill -l
- pełna lista sygnałów
- lsof /
- jakie procesy korzystają z pliku/katalogu
- lsof -i -n
- który proces używa sieci w jaki sposób (na jakim porcie itp.); zamiennie można użyć
socklist
- lsof /dev/hdc
- jakie procesy korzystają z dysku
- pidof emacs21
- wyświetla PIDy procesów o podanej nazwie
- nice
- domyślny priorytet procesów w systemie
- taskset -cp 0 PID
- zmienia przydział rdzenia procesora dla działającego procesu
- taskset -c 0 polecenie
- uruchom polecenie na wskazanym rdzeniu procesora
- lsof -c dhcpd
- pliki otwarte przez podane polecenie
- pwdx PID
- katalog domowy wskazanego procesu
- strace -ff -e trace=write -e write=1,2 -p JAKIS_PID
- przechwytuje stout i stderr wskazanego procesu
- ss -p | grep STA | cut -f2 -d\"
- nazwy procesów używających aktualnie sieci
Harmonogram zadań
- crontab -e
- edycja pliku crontab zalogowanego użytkownika
- crontab -l
- lista zdefiniowanych zadań użytkownika
- at now +5 hours
- pozwala na wprowadzenie poleceń shella do wykonania (kończymy Ctrl+D); polecenie wykona je po określonym czasie w tym samym katalogu roboczym, z tymi samymi zmiennymi środowiskowymi i tej samej powłoce w których wykonano polecenie
at
- batch now +5 hours
- jak
at
, ale polecenie zostanie uruchomione tylko wtedy, gdy system nie będzie zanadto obciążony (domyślnie 0.8)
WWW
- wget -nv --spider --force-html -i bookmarks.html
- Sprawdza linki w pliku
- wget --mirror http://www.example.com/
- Efektywnie uaktualnia lokalna kopię strony
- wget -i uniqURLs.txt
- pobiera z sieci wszystkie URLe wymienione w pliku tekstowym
- curl -L -e ';auto' merlin.pl
- ściąga stronę HTML i wyrzuca ją na stdout; w razie przekierowań podąża za nimi
- curl -k -o witryna.html https://mojawitryna.pl
- wyciąga stronę po HTTPSie (ignorując być może nieprawidłowy certyfikat – opcja
-k
) i zapisuje ją w plikuwitryna.html
- curl -o '#1-#2-#2-#4.html' "http://www.example.com/cgi-bin/item.cgi?prod=[0001-9999]&cat=[0-9]&color={red,yellow,blue,green}&size={s,m,l,xl}"
- pobiera strony dla wszystkich możliwych kombinacji parametrów (1599840 możliwości).
- curl -A 'Mozilla 5.0' -I merlin.pl
- wypisuje same nagłówki odpowiedzi HTTP (opcja
-I
; opcja-i
wyświetla stronę razem z nagłówkami, opcja-D file
zapisuje nagłówki w pliku), opcja-A
pozwala ustawić nagłówek User-Agent - curl -d "userid=root" -d @passwd.txt http://www.example.com/servlet/login.do
- wykonuje zapytanie POST i przesyła wskazane parametry, np. żeby się zalogować do serwisu (trzeba samemu zadbać o kodowanie niedozwolonych znaków takich jak spacja); plik
passwd.txt
ma zawartośćpasswd=fluffy
- curl -b cookies.txt -c cookies.txt http://www.example.com/servlets/login.do
- pobieranie URLa w kontekście sesji (opcja
-b
określa skąd będą czytane pliki cookie na początku, opcja-c
gdzie będą zapisywane pliki coookie odebrane w wyniku wykonania zlecenia) - curl -b session-id-time=-1 http://www.amazon.com
- ustawia pojedyncze ciasteczko na czas wykonania zlecenia
- curl -F file='photo1.jpg;filetype=image/jpeg' -F param=value http://www.example.com/photos/upload.do
- wysyła zleceniem POST multipart/form-data plik i jeden parametr; określanie
filetype
zwykle nie jest potrzebne
SVN
- svn checkout https
- //svn.tiger.com.pl/paradox/coralreef : wyciąga z SVNa z repozytorium
paradox
drzewo katalogów o korzeniu wcoralreef
- svn up
- update'uje z repozytorium drzewo katalogów wyznaczonym przez bieżący katalog
- svn commit -m"Komentarz"
- commituje (z komentarzem) do repozytorium zmiany w drzewie katalogów wyznaczone przez bieżący katalog
- svn status
- wyświetla status poszczególnych plików drzewa katalogów wyznaczonych przez bieżący katalog, np. „M” oznacza że plik jest lokalnie zmodyfikowany i czeka na commit, „A” że został utworzony ale jeszcze nie wrzucony do repozytorium itp.
- svn add plik
- dodaje plik do systemu zarządzania wersjami (ale nie umieszcza go jeszcze w repozytorium, zrobi to najbliższy commit)
- svn log plik
- wyświetla historię pliku (kto commitował, kiedy, z jakim komentarzem)
Grafika
- identify -verbose image_file
- szczegółowe informacje o obrazku (m.in. adnotacje)
- mogrify -border 2×4 -comment "Moj komentarz" file.jpg
- dodaje obramowanie oraz adnotację do pliku JPEG
- convert start.png -colorspace Gray -resize 800×600 start.jpg
- konwersja obrazka do innego formatu (można przekonwertować m.in. do PDF), a przy okazji zamiana kolorów na odcienie szarości i zmiana rozmiaru z zachowaniem proporcji (wykrzyknik po „600″ kazałby zignorować proporcje)
- montage *.jpg mojeobrazki.png
- tworzy jeden obrazek z miniaturkami wszystkich plików JPEG w bieżącym katalogu
- display image_file
- wyświetla obrazek w osobnym okienku
- convert image.jpg -gravity Southwest -fill red -draw "text 0,0 'Nad morzem'" result.jpg
- dodaje podpis do obrazka czerwoną czcionką w lewym dolnym rogu
Wideo i dźwięk
- ffmpeg2theora --videoquality 5 --audioquality 1 --max_size 320×240 pr6.dv
- konwersja plików wideo do kontenera Ogg (plik
*.ogv
) - HandBrakeCLI --preset "iPhone & iPod Touch" --width 320 --vb 600 --two-pass --turbo --input pr6.dv --output pr6.mp4
- konwersja pliku
*.dv
na*.mp4
; opcjavb
oznacza średnią prędkość transmisji - mpg321 file.mp3
- wyświetla informacje o utworze ze znaczników ID3 i odtwarza utwór
- mpg321 -w file.wav file.mp3
- konwertuje plik MP3 do WAV (żeby np. zapisać utwór na zwykłej płycie audio)
- oggdec sunrise.ogg
- konwersja pliku OGG do WAV
- vorbis-tools
- pakiet z poleceniami wiersza poleceń do obróbki plików w formacie OGG (odtwarzacz, konwerter, edycja znaczników, dzielenie plików itp.)
- sox plik.mp3 plik.wav
- konwersja plików dźwiękowych
- lame plik.wav plik.mp3
- konwersja plików dźwiękowych do mp3
- play plik.wav
- odtwarzanie pliku dźwiękowego
- echo "Incoming mail from" | festival --tts -
- wypowiada wskazany tekst za pomocą syntezatora mowy
- dd if=/dev/dsp | ssh username@host dd of=/dev/dsp
- lokalny mikrofon rejestruje dźwięk odgrywany na zdalnym komputerze
Inne
- python -m SimpleHTTPServer 8080
- udostępnia bieżący katalog w sieci WWW na porcie 8080 (brak numeru portu oznacza 8000)
- factor 1234
- Rozkłada liczbę 1234 na czynniki pierwsze
- seq 2 6
- Wypisuje sekwencję liczb od 2 do 6
- :(){ :|:& };:
- zabija maszynę (ang. bash fork bomb)
- groff -man -Tascii printf.1 > wynik.txt
- konwertuje stronę man na plik tekstowy (opcja
-T
może również przyjmować wartośćhtml
orazps
) - perl -MCPAN -e 'install Bundle::LWP'
- instaluje pakiet Perla o nazwie
Bundle::LWP
- pydoc -p 8888
- stawia na porcie 8888 serwer udostępniający dokumentację Pythona
- easy_install nazwa_pakietu
- instalacja pakietu Pythona; inny sposób to ściągnięcie i rozpakowanie archiwum, po czym
sudo python setup.py install
- man ascii
- tabela ASCII
- man hier
- objaśnienie hierarchii systemu plików
- rlwrap polecenie
- dodaje funkcjonalność biblioteki Readline (w tym historia poleceń pod klawiszami strzałek) do wskazanego polecenia które jest typu shell, tzn. w pętli oczekuje na polecenia z stdin,
- vim scp://username@host//sciezka/do/pliku
- edycja zdalnego pliku
- wtf imho
- wyjaśnia (rozwija) wskazany akronim, spotkany np. w rozmowie IRCa lub na grupie dyskusyjnej
- Zaloguj się lub utwórz konto, by odpowiadać