Полезные советы bash
4 февраля 2014 г. bash
Здесь собраны несколько полезных советов при работе с bash в коммандной строке. Также их можно применять при написании скриптов. Данные комманды были собраны из различных источников и опробованы.
Вставить аргумент из предыдущей команды (в терминале работает сочетание клавиш Alt + .; очень удобная штука) :
#!$
Запустить последнюю команду, например, если при выполнении команды не хватило прав и нужно добавить sudo, то чтобы не печатать команду заново удобно пользоваться:
#sudo !!
Проверить открыт ли порт без telnet/nc:
#echo >/dev/tcp/8.8.8.8/53 && echo "open"
Выполнить команды из файла в текущем шелле:
#source /etc/profile.d/rvm
Подсктрока из переменной(первые 5 символов):
#${my_variable:0:5}
Создать несколько папок:
#mkdir -p /tmp/{folder1,folder2,folder3}
Посмотреть дерево процессов (с форками):
#ps axwef
Проверить скорость записи диска. Данная команда пишет 512 МБ на диск и потом показывает скорость. Важным ключом является conv=fdatasync. Она заставляет dd сделать sync и убедится что все данные действительно записаны на диск. Если не использовать этот ключ, то dd будет писать в память и бенчмарк получится неверный:
#dd if=/dev/zero of=/tmp/speedtest bs=1M count=512 conv=fdatasync; rm -f /tmp/speedtest
- на обычных дисках (VMWare VM) - ~60 MB/sec - 150 MB/sec (в зависимости от RAID-level)
- на SSD (DigitalOcean VPS) - ~250 MB/sec
Скорость чтения с диска:
#hdparm -Tt /dev/sda
- обычные диски (VMware VM): cached read = 5200-6000 MB/sec; buffered disk read = 100-350 MB/sec
- SSD (DigitalOcean SSD): cached read = 5900-6500 MB/sec; buffered disk read = 460-560 MB/sec
Разархивировать в новую директорию:
#tar zxvf archive.tar.gz -C new_dir
Быстро создать бэкап файла:
#cp nginx.conf{,.bak}
Доступ на расшареный ресурс Windows. После авторизации доступна команда ls. Чтобы скачать файл - get somefilename.jpg:
#smbclient -U "DOMAIN\user" //192.168.1.1/shared
Unzip в директорию:
#unzip package.zip -d some_dir
Переодически запускать команду и показывать вывод (по умолчанию раз в 2 секунды, менять интервал ключом -n):
#watch ps aux
Создать RAM-диск:
#mount -t tmpfs tmpfs /tmpram -o size=512m
Конвертация табуляций в пробелы:
#expand tabsfile.txt > spacefile.txt
Вернуться в предыдущую директорию:
#cd -
Когда Ctrl + c не работает:
Ctrl + \