04 Feb 2014, 15:31

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

Смотрите также:

comments powered by Disqus