Полезные alias для linux

alias — встроенная команда Bash и других оболочек для сокращения команд и их последовательностей. Также возможно переопределение команд и подстановка в них параметров. Обычно назначенные имена сохраняются только в течение сессии.

Особенности

В UNIX-системах в домашнем каталоге и в каталоге /etc имеется скрипт инициализации командного интерпретатора. Конкретное имя зависит от используемого интерпретатора — для bash это /etc/bashrc и $HOME/.bashrc соответственно. Можно установить постоянные имена командам на уровне целой системы или отдельного пользователя, добавляя их в соответствующий скрипт.

Чтобы посмотреть какие псевдонимы linux команд уже заданны в вашей системе просто выполните (в некоторых системах используется опция -p):

alias

В выводе вы увидите что-то подобное:

alias beep='echo -en "\007"'
alias cd..='cd ..'
alias dir='ls -l'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'

Команда покажет все alias команд linux определенные для текущего пользователя. Вывод очень сильно зависит от вашего дистрибутива. Общий синтаксис команды выглядит следующим образом:

$ alias имя="значение"

$ alias имя="команда аргумент1 аргумент2"

$ alias имя="/путь/к/исполняемому/файлу"

Вы можете создавать новые псевдонимы, просто выполняя эту команду в терминале. Но созданные таким образом алиасы linux будут работать только в этом терминале и только до его закрытия.

Давайте для примера создадим alias linux для такой часто используемой команды, как clear (очистить вывод терминала):

alias c='clear'

Теперь, чтобы очистить терминал достаточно выполнить:

с
.

Удалить созданный alias можно с помощью команды unalias:

unalias c

Но как я уже сказал, такие alias команд linux сохраняются только до закрытия терминала. Поэтому их необходимо создавать в начале каждой терминальной сессии. Для этого можно записать все нужные команды в ~/.bashrc. При запуске терминала, каждый раз выполняется этот скрипт, чтобы установить переменные окружения и подготовить оболочку. Таким образом добавив нужные строки в конец файла мы получим работающие alias linux в каждом терминале.

Продолжим создание alias для команды clear:

vi ~/.bashrc

Добавьте эту строку в конец файла:

alias c='clear'

Затем сохраните и закройте редактор (:wq). Чтобы проверить работоспособность запустите новый терминал. Если вы хотите чтобы ваши алиасы linux были доступны для всех пользователей, необходимо использовать файл /etc/bashrc.

Поскольку .bashrc, это обычный bash скрипт, перед нами открываются большие возможности. Например мы можем добавить alias команд с использованием sudo, если текущий пользователь не root:

if [ $UID -ne 0 ]; then
alias reboot='sudo reboot'
alias update='sudo apt-get upgrade'
fi

Так же, мы можем менять команды алиасов в зависимости от дистрибутива:

_myos="$(uname)"

case $_myos in
Linux) alias foo='/path/to/linux/bin/foo';;
FreeBSD|OpenBSD) alias foo='/path/to/bsd/bin/foo' ;;
SunOS) alias foo='/path/to/sunos/bin/foo' ;;
*) ;;
esac

Чтобы удалить alias достаточно просто удалить запись о нем, из того файла в который вы ее добавили. Мы рассмотрели основы добавления alias linux, теперь давайте перейдем к списку полезных алиасов linux.

ПОЛЕЗНЫЕ ALIAS LINUX

Вы можете добавить в своей системе любые или даже все эти алиасы linux чтобы повысить продуктивность своей работы в терминале.

ВЫВОД LS

Цветной вывод:

alias ls='ls --color=auto'

P.S. также вы можете установить colorls

Показывать скрытые файлы и представлять вывод в виде списка:

alias ll='ls -la'

Показать только скрытые файлы:

alias l.='ls -d .* --color=auto'

ПЕРЕМЕЩЕНИЕ ПО КАТАЛОГАМ

Исправляем опечатку:

alias cd..='cd ..'

Быстрое перемещение от текущей директории:

alias ..='cd ..'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias .....='cd ../../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../..'

ВЫВОД GREP

Делаем вывод цветным:

alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'

Поиск по истории команд (запускается, например, так hs ssh):

alias hs="history | grep"

КАЛЬКУЛЯТОР

Запускать калькулятор с поддержкой стандартной библиотеки mathlib:

alias bc='bc -l'

СОЗДАНИЕ ХЕША

Создать хеш sha1:

alias sha1='openssl sha1'

Создание каталогов

Создавать дерево каталогов, если оно не существует:

alias mkdir='mkdir -pv'

ВЫВОД DIFF

Делаем вывод diff цветным:

alias diff='colordiff'

ВЫВОД MOUNT

Сделаем вывод mount читаемым:

alias mount='mount |column -t'

ЯРЛЫКИ

Сократим команды для экономии времени:

alias h='history'
alias j='jobs -l'

ИНФОРМАЦИЯ И ДАТА

alias path='echo -e ${PATH//:/\\n}'
alias now='date +"%T"'
alias nowtime=now
alias nowdate='date +"%d-%m-%Y"'

РЕДАКТОР VIM

alias команд linux для использования редактора vim по умолчанию:

alias vi=vim
alias svi='sudo vi'
alias vis='vim "+set si"'
alias edit='vim'

PING

Посылать только пять запросов:

alias ping='ping -c 5'

Интервал между запросами одна секунда:

alias fastping='ping -c 100 -s.2'

ОТКРЫТЫЕ ПОРТЫ

alias ports='netstat -tulanp'

WAKEUP

Будим серверы в режиме сна по mac адресу с помощью утилиты wakeonlan:

alias wakeupnas01='/usr/bin/wakeonlan 00:11:32:11:15:FC'
alias wakeupnas02='/usr/bin/wakeonlan 00:11:32:11:15:FD'
alias wakeupnas03='/usr/bin/wakeonlan 00:11:32:11:15:FE'

УПРАВЛЕНИЕ IPTABLES

alias iptlist='sudo /sbin/iptables -L -n -v --line-numbers'
alias iptlistin='sudo /sbin/iptables -L INPUT -n -v --line-numbers'
alias iptlistout='sudo /sbin/iptables -L OUTPUT -n -v --line-numbers'
alias iptlistfw='sudo /sbin/iptables -L FORWARD -n -v --line-numbers'
alias firewall=iptlist

CURL

Получить заголовки сервера:

alias header='curl -I''

Проверять поддержку сжатия на сервере:

alias headerc='curl -I --compress'

РАБОТА С ФАЙЛАМИ

Не удалять корень и предупреждать об удалении файлов:

alias rm='rm -I --preserve-root'

Предупреждения:

alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'

Защита от изменения прав для /:

alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'

ОБНОВЛЕНИЕ DEBIAN

Установка пакета:

alias apt-get="sudo apt-get"
alias updatey="sudo apt-get --yes"

Обновление одной командой:

alias update='sudo apt-get update && sudo apt-get upgrade'

ОБНОВЛЕНИЕ REDHAT

В семействе дистрибутивов Red Hat используется пакетный менеджер yum:

alias update='yum update'
alias updatey='yum -y update'

СТАТЬ СУПЕРПОЛЬЗОВАТЕЛЕМ

alias root='sudo -i'
alias su='sudo -i'

ВЫКЛЮЧЕНИЕ

Выполнять команды выключения через sudo:

alias reboot='sudo /sbin/reboot'
alias poweroff='sudo /sbin/poweroff'
alias halt='sudo /sbin/halt'
alias shutdown='sudo /sbin/shutdown'

УПРАВЛЕНИЕ СЕРВЕРАМИ

alias nginxreload='sudo /usr/local/nginx/sbin/nginx -s reload'
alias nginxtest='sudo /usr/local/nginx/sbin/nginx -t'
alias lightyload='sudo /etc/init.d/lighttpd reload'
alias lightytest='sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -t'
alias httpdreload='sudo /usr/sbin/apachectl -k graceful'
alias httpdtest='sudo /usr/sbin/apachectl -t && /usr/sbin/apachectl -t -D DUMP_VHOSTS'

РЕЗЕРВНОЕ КОПИРОВАНИЕ

alias backup='sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type local --taget /raid1/backups'

МУЛЬТИМЕДИА

Открыть видео в текущей директории:

alias playavi='mplayer *.avi'
alias vlc='vlc *.avi'

Добавить в плейлист музыку из текущей директории:

alias playwave='for i in *.wav; do mplayer "$i"; done'
alias playogg='for i in *.ogg; do mplayer "$i"; done'
alias playmp3='for i in *.mp3; do mplayer "$i"; done'

Открыть музыку из устройства nas:

alias nplaywave='for i in /nas/multimedia/wave/*.wav; do mplayer "$i"; done'
alias nplayogg='for i in /nas/multimedia/ogg/*.ogg; do mplayer "$i"; done'
alias nplaymp3='for i in /nas/multimedia/mp3/*.mp3; do mplayer "$i"; done'

СИСТЕМНОЕ АДМИНИСТРИРОВАНИЕ

Работать с интерфейсом eth1:

alias dnstop='dnstop -l 5 eth1'
alias vnstat='vnstat -i eth1'
alias iftop='iftop -i eth1'
alias tcpdump='tcpdump -i eth1'
alias ethtool='ethtool eth1'

Работать с интерфейсом wlan0 по умолчанию:

alias iwconfig='iwconfig wlan0'

Узнать свой внешний IP-адрес:

alias ipe="curl ipinfo.io/ip"

ИНФОРМАЦИЯ О СИСТЕМЕ

Использование памяти:

alias meminfo='free -m -l -t'

Показать процессы потребляющие больше всего памяти:

alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'

Показать процессы использующие процессор:

alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'

Информация о процессоре:

alias cpuinfo='lscpu'

Посмотреть память видеокарты:

alias gpumeminfo='grep -i --color memory /var/log/Xorg.0.log'

УПРАВЛЕНИЕ РОУТЕРОМ

Перезагрузить роутер:

alias rebootlinksys="curl -u 'admin:my-super-password' 'http://192.168.1.2/setup.cgi?todo=reboot'"

Или так:

alias reboottomato="ssh admin@192.168.1.1 /sbin/reboot"

WGET

Продолжать незавершенную загрузку по умолчанию:

alias wget='wget -c'

БРАУЗЕРЫ

Сокращения

alias ff4='/opt/firefox4/firefox'
alias ff13='/opt/firefox13/firefox'
alias chrome='/opt/google/chrome/chrome'
alias opera='/opt/opera/opera'

Браузер по умолчанию:

alias browser=chrome

АЛИАСЫ ДЛЯ SSH

Вы можете создавать псевдонимы Linux команд для подключений по ssh с помощью конфигурационного файла OpenSSL — ~/.ssh/config. Не нужно этого делать с помощью обычных алиасов, здесь функционал шире. Например:

Host server10
Hostname 1.2.3.4
IdentityFile ~/backups/.ssh/id_dsa
user foobar
Port 30000
ForwardX11Trusted yes
TCPKeepAlive yes

Теперь подключаемся:

ssh server10

ДРУГИЕ

Правильное отображение для df и du:

alias df='df -H'
alias du='du -ch'

atop по умолчанию:

alias top='atop'

Запуск nfs:

alias nfsrestart='sync && sleep 2 && /etc/init.d/httpd stop && umount netapp2:/exports/http && sleep 2 && mount -o rw,sync,rsize=32768,wsize=32768,intr,hard,proto=tcp,fsc natapp2:/exports /http/var/www/html && /etc/init.d/httpd start'

Состояние кеширующего сервера:

alias mcdstats='/usr/bin/memcached-tool 10.10.27.11:11211 stats'
alias mcdshow='/usr/bin/memcached-tool 10.10.27.11:11211 display'