Przydatne polecenia Linux

Lista tych przydatnych poleceń linuksowych, z których korzystam na tyle rzadko, że nie mam ich w głowie lub które są mało popularne.

Zarządzanie pakietami w Debianie/Ubuntu

  • dpkg-query -W – wyświetla listę zainstalowanych pakietów wraz z ich wersjami – przydatne przy backupie systemu,
  • wajig sizes – lista pakietów wraz z rozmiarami – idealne do porządków w systemie,
  • wajig clean – czyści cache pobranych pakietów – szybka metoda na brakujące miejsce w systemie,
  • wajig toupgrade – lista pakietów do aktualizacji, z wersjami,

Transfer danych

  • rsync -r –partial –progress –bwlimit=20 user@host:/plik . – kopiuje plik ze zdalnego hosta z pokazywaniem postępu, ograniczeniem prędkości do 20 KB i zachowaniem częściowo pobranych plików – dobre do kopiowania dużych plików na wolnych łączach,
  • rsync –progress -vre 'ssh -p 10300′ user@host:/plik . – kopiuje plik ze zdalnego hosta, na którym ssh słucha na porcie 10300,

Dyski, filesystemy, backup

  • du -h * | sort -n – pokazuje, który z podkatalogów w danym katalogu zjada miejsce (i ile, bajty)
  • find . -mtime +180 -exec rm {} \; – usuwa pliki o mtime ponad 180 dni
  • mdadm –create /dev/md0 –level=1 –raid-disks=2 /dev/sda1 /dev/sdb1 – stworzenie software RAID1 z dwóch dysków z partycji sda1 i sdb1.
  • cat /proc/mdstat – status software RAID
  • tune2fs -m 1 /dev/sda1 – odzyskiwanie miejsca – zmienia ilość zarezerwowanego miejsca roota na 1% pojemności dla sda1. Działa dla ext3 i ext4
  • badblocks -nsv /dev/sdb – niedestrukcyjne sprawdzenie badblocków testem read-write na urządzenieu /dev/sdb
  • fsck -vcck /dev/sdb1 – niedestrukcyjne sprawdzenie i oznaczenie uszkodzonych sektorów przez fsck, -k dla zachowania poprzednich sektorów na partycji /dev/sdb1
  • tune2fs -O ^has_journal /dev/sdb1 – zdjęcie journala z partycji /dev/sdb1
  • fdisk -l hdd.img; modprobe loop; losetup -o `echo $[512 * START]`  /dev/loop0 hdd.img; mount /dev/loop0 /mnt/dst – montowanie pojedynczej partycji z obrazu dysku, START to początek montowanej partycji w wyniku fdisk
  • kill  -USR1 `pidof dd` – pokazuje (w konsoli gdzie działa dd) postęp (i prędkość, i czas działania) aktualnie wykonującego się procesu dd
  • gpg -c –cipher-algo=AES256 –compress-algo=NONE – szyfruje plik (bez straty czasu na kompresję) kluczem symetrycznym z użyciem algorytmu AES 256
  • tar cf – /home/ | pv -s $(du -sb /home/ | awk '{print $1}’) | gzip > home.tar.gzjeden ze sposobów na kompresowany backup katalogu /home wykonywany z pokazaniem postępu

Multimedia

  • youtube-dl -x -o „%(title)s.%(ext)s” –audio-format mp3 –audio-quality 0 -f „bestaudio/best” URL– zgranie samego audio w najlepszej jakości, z konwersją do mp3 z podanego URLa YouTube
  • ffmpeg -i {} -b:a 320K -vn „$base_name”-mp3/{}.mp3 – wycięcie ścieżki audio z webm i zapisanie do mp3
  • jpegtran -copy none -progressive -optimize file.jpg > file_reduced.jpg – bezstratna optymalizacja pliku JPEG pod WWW (usunięcie metadanych, progresywny, optymalizacja)

Sieć

  • ip link add link eth0 name eth0.100 type vlan id 100 – dodanie vlanu 100 na iface eth0 bez użycia vconfig (deprecated we Wheezy).
  • curl -I -H 'Accept-Encoding: gzip,deflate’ http://rozie.blox.pl/ – sprawdzenie, czy strona jest kompresowana (gzip/deflate)
  • whois -h whois.radb.net -i origin AS5617 | grep ^route – pobranie wszystkich prefiksów rozgłaszanych z danego ASN (tu AS5617; bez agregacji)
  • echo | openssl s_client -servername zakr.es -connect zakr.es:443 2>/dev/null | openssl x509 -noout -dates – sprawdzenie dat ważności certyfikatu SSL

Inne

  • date -d '1 days ago’ – przekazanie do programu date, ile ma się cofnąć w czasie. Z nieznanych przyczyn pominięte w polskim manie.
  • ./mprime -t -B4 – szybki i skuteczny sposób na wykonanie testu pamięci i CPU (ogólnie stress testu) pod obciążeniem na czterech rdzeniach. Przydatne tam, gdzie niekoniecznie memtest chcemy/możemy odpalić.
  • dh-make-perl –build –cpan NAZWA::MODUŁU – buduje perlową paczkę .deb z modułem pobranym z CPAN
  • checkrestart – pokazuje serwisy do restartu po upgrade (przydatne zwł. przy / RO, gdy nie daje się przemontować; pakiet debian-goodies)
  • cpulimit -p `pidof PROCES` -l 50 -v – limituje czas procesora dla danego procesu do 50%. Przydatne na laptopach, żeby się nie grzały (i nie włączały wiatraki).
  • dstat -lcpymsgdn 5 – statystyki systemu Linux odświeżane co 5 sekund
  • mysqldump –all-databases | gzip -9 > mysql_dump_`date +%F`.sql.gz – dump wszystkich baz MySQL do pliku z datą, z kompresją
  • grub-reboot N – jednorazowe uruchomienie systemu z kernelem o numerze wpisu N w /boot/grub/menu.lst lub /boot/grub/grub.cfg
  • xset dpms force off – całkowite wyłączenie monitora (poświetlania) w laptopie
  • cpufreq-set -g powersave -c 0 – ustawienie trybu powersave dla CPU 0 (wykonać dla wszystkich rdzeni)
  • rtcwake -s 3600 -m mem – uśpienie (suspend to RAM) komputera na 1h, więcej w tym wpisie
  • xinput list – wyświetla urządzenia wejściowe Xów
  • xinput –disable N – wyłącza urządzenie o id=N
  • stty rows 40 columns 140 – zmienia ustawienie terminala na 40 wierszy, 140 kolumn
  • find . -type f -print0 | xargs -0 sed -i 's/subdomainA\.example\.com/subdomainB.example.com/g’ – zamiana jednej subdomeny na inną we wszystkich plikach, rekursywnie
  • export TERM=xterm – ustawienie typu terminala tu więcej
  • lxc-create -n test -t download — -d debian -r stretch -a amd64 – tworzy kontener o nazwie test z Debianem Stretch i arch amd64
  • lxc-create -n test -t download — -d centos -r 7 -a amd64 – tworzy kontener LXC o nazwie test z Centos w wersji 7, arch amd64
  • journalctl –vacuum-size=200M – doraźne usunięcie plików z logami, aby zajmowały nie więcej niż 200 MB

Inne przydatne polecenia Linux dostępne są na stronie z linuksowymi tips’n’tricks.

Android zone, czyli ADB

  • adb devices – wyświetla podłączone urządzenia
  • adb shell – powłoka adb
  • adb pull storage . – kopiuje rekursywnie zawartość katalogu storage na telefonie do bieżącego katalogu

Przydatne komendy irssi

  • /completion -auto ;0 😉 – poprawi każde ;0 na ;). Dla tych, co ;0 nie używają, a często shifta niedocisną.
  • /recode add #debian.pl utf8 – ustawia utf8 dla danego kanału (lub nicka). Oczywiście musi być poprawna konfiguracja wcześniej.
  • /window move – ustawia bieżące okno na pozycji o podanym numerze