posts projects about

Полезные советы 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 + \