Подборка полезных команд на bash — 1

Внешний IP-адрес

Если на вашем компьютере установлен пакет dnsutils, то самым простым способом получить из bash внешний IP-адрес машины будет обратиться к OpenDNS:

myip() { dig +short myip.opendns.com @resolver1.opendns.com; }

Имя сетевого интерфейса

Чтобы получить имя сетевого интерфейса, через который осуществляется внешнее подключение, можно воспользоваться следующей командой:

eth() { route -n | awk '($1 == "0.0.0.0") { print $NF ; exit }'; }

К сожалению, данная команда не работает на Маке. В ситуации при нескольких сетевых соединениях тоже не проверял.

Права доступа в восьмеричном формате

Если по какой-то причине вы хотите посмотреть список файлов в директории, отображая так же права в восьмеричном формате, можно сделать это так (в виде функции):

lso() { ls -halG "$@" | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(" %0o ",k);print}'; }

Теперь, если вы вызываете lso, вы увидете стандартный вывод команды ls -halG с дополнительной колонкой.

Генератор паролей

Очень легко и быстро можно сгенерировать произвольный пароль заданной длинны таким способом:

randompass() { < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16}; echo; }

Вызываем:

$ randompass
EGcudXmuUv-lFejx

$ randompass 13
bqBqGVUsvZDK1

< Об электронной демократии | DigitalOcean vs. Scaleway >