Командний рядок Linux. Деякі команди.

linux logo
Набір корисних і дуже корисних команд, котрі в силу своєї довжини не завжди вміщаються в голові.

Вивід топ-5 директорій

На прикладі деректорії ~/:

du -h ~/ | sort -rh | head -5

Вивід топ-5 директорій включаючи піддиректорії:

du -hS ~/ | sort -rh | head -5

Вивід топ-5 файлів:

find ~/\* -type f -exec du -Sh {} + | sort -rh | head -n 5

Монтування ISO-образу

mount -o loop,iocharset=utf8 -t iso9660 /шлях/до/образу /куди/монтувати

Знайти всі mp3-файли й перекодувати теги в UTF8

find /де/шукати/ -name "\*.mp3" -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1

Виконати захват відео без звуку з екрану

ffmpeg -f x11grab -s 1920x1080 -r 25 -i :0.0 -vcodec qtrle -f mov ~/video.mov

Детальніше на ffmpeg.org.

Вимкнення ПК з Windows через Linux

net rpc shutdown -r -f -C "shutting down" -I 192.168.7.14 -U домен/\\логін%пароль

Порівняння директорій

diff -q dir-1/ dir-2/

Або використовуючи програму meld при наявності графічного оточення.

Копіювання файлів із відображенням прогресу

Використовується програма pv яка ставиться зі стандартних репозиторіїв. Приклад використання:

pv що_копіювати > куди_копіювати

Взято з www.tecmint.com. linux pv

Використання команд grep/egrep для перегляду файлів.

Команди grep/egrep можна використовувати для виводу вмісту файлу без певних визначених рядків. Наприклад можна виводити вміст файлів конфігурації без закоментованих рядків. Досить цікава штука так як розмір файлу може бути в кілька метрів довжиною, а на 99.99% це можуть бути коментарі та закоментовані параметри. При цьому основна відмінність команди egrep від grep в тому що для неї просто можна задавати не один фільтр, а декілька. Приклад використання:

egrep -v "^$|^#" /boot/grub/grub.cfg

Що тут маємо - ^X - показує який символ початку рядка ми хочемо додати у шаблон, де X - будь-який символ. | використовуємо для розділення при додаванні кількох символів у шаблон. У даному випадку ми виводимо вміст файлу /boot/grub/grub.cfg без порожніх(^$) та без закоментованих(^#) рядків. Без ключа -v виведуться лише порожні та закоментовані рядки.

sed

Знайти в директорії та у всіх вкладених директоріях файли txt й замінити в них один текст на інший:

find -name '_.txt' -exec sed -i -e 's/що замінити/на що замінити/i' "{}" \\;

У файлі test вставити слово ТЕКСТ на початку кожного рядка:

sed 's/^/текст/' test

У файлі test з’єднати рядки попарно(як варіант видалення порожніх рядків). Класичний приклад, зараз чомусь ще й видаляє перший символ кожного рядка:

sed '$!N;s/\\n/ /' test

У файлі test витерти порожні рядки. Класичний приклад, без \s_ перед $, що гуляє всіма інтернетами, зараз чомусь не спрацьовує.

sed '/^\\s_$/d' test

У файлі test в кінці рядка дописати КІНЕЦЬ РЯДКА. Класичний приклад, без \s_ перед $, що гуляє всіма інтернетами, зараз чомусь не спрацьовує.

sed 's/\\s_$/ кінець рядка/g' test

У файлі test через кожні 2 символи написати ВСТАВКА:

sed 's/(..)/\\1ВСТАВКА/g' test

У файлі test витерти пробіл перед комами чи витерти всі пробіли перед комами:

sed 's/ ,/,/g' test
sed 's/( )+,/,/g' test
sed 's/ _,/,/g' test

У файлі test додати в кінці рядків крапку якщо її немає.

sed 's/[^\.]$/./' test

Хитрий набір команд бере файл file_list що є файлом який містить список файлів та тек створеним у Total Commander і робить з нього список в один рядок:

sed -i 's/.$//' file_list
cat file_list | tr '\\n' ' ' > test
cat test | tr '[:upper:]' '[:lower:]' > file_list
sed -i 's/\\/,/g;s/( )+/ /g;s/, $//' file_list
rm test

У файлі test замінити 2+ пробілів одним, ( )+ можна заміняти на пробілпробіл_:

sed 's/( )+/ /g' test
sed 's/  _/ /g' test

У файлі test вставити пробіл після кожного символу:

sed 's/()+/ /g' test

У файлі test витерти пробіли в кінці рядків:

sed 's/ _$//' test

У файлі test витерти пробіл перед крапками чи витерти всі пробіли перед крапками:

sed 's/ ././g' test
sed 's/( )+././g' test

або ( )+ можна заміняти на пробіл_ :

sed 's/ \*././g' test

Визначення mac-адреси

  • Windows - getmac
  • Linux - arp-scan