Obrazek użytkownika cytrynek

Podstawowe polecenia powłoki w Linuksie

Treść: 

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
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)
useradd 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

 

Administracja
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 | more
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)

lsb_release -a
informacje o dystrybucji Linuksa (Linux Standard Base)
modprobe -l bluetooth
pełna ścieżka pliku modułu jądra
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

 

SPRZĘT


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Ć

ifconfig (podobne do ip addr)

Informacje na temat interfejsów sieciowych

ifconfig eth0 192.168.18.4

przydzielenie adresu IP interfejsowi eth0

route add default gw 192.168.18.1

przydzielenie domyślnej bramy


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
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 hosta hostname, 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
sudo python -m smtpd -n -c DebuggingServer localhost:25
stawia prosty serwer pocztowy na lokalnym hoście

 

XWindow (tryb graficzny)

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

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

history -c
czyści całą historię

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ą
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

date -d '+4 days' '+%a %Y-%m-%d %H:%M:%S %z'
wyświetla wskazaną datę w podanym formacie

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
Więcej na temat Basha (skróty klawiaturowe, pisanie skryptów) w osobnym artykule.
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 grupy group
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 wkatalog
grep -ri wzorzec katalog
przeszukuje pliki drzewa katalogów o korzeniu w katalog w poszukiwaniu wzorca (wyrażenie regularne); opcja iignoruje 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 katalogu tmp; 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 program mkisofs
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 na ro)
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 komputera szatan.tiger.com.pl kopię lokalnego drzewa katalogów from/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

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

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

patch -b -p0 < patch
w kontekście poprzedniego polecenia, wprowadza do pliku file2.txt zmiany dokonane w pliku file1.txt; opcja -btworzy kopię oryginalnego pliku, a opcja -p0 oznacza że poprawki mają być wprowadzane w aktualnym katalogu

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; polecenie tr zamienia ciągi spacji na pojedyncze spacje; opcja -dpowoduje że separatorem kolumn jest spacja (zamiast domyślnej tabulacji)
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)

PDF
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łącznika form.pdf do form.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

Edytor strumieniowy sed 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 pliku file.txt
sed '5,$w out.txt' file.txt
zapisuje wszystkie wiersze pliku out.txt począwszy od 5 do końca, do pliku out.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 filezapisuje 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

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; opcja vb 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

groff -man -Tascii printf.1 > wynik.txt
konwertuje stronę man na plik tekstowy (opcja -T może również przyjmować wartość html oraz ps)
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

Kategoria wpisu: