Главная >> Команды >> Полезные alias Linux

Полезные alias Linux

Alias Linux - это, по сути, ярлыки команд Linux. Команда alias позволяет пользователю запускать любую команду или даже группу команд, в том числе с опциями, параметрами и файлами, вводом одного слова или даже символа. Это очень удобно во многих ситуациях, например чтобы не вводить полностью команду при обновлении или же очень быстро перемещаться по каталогам.

В этой инструкции будет рассмотрена команда alias linux, а также полезные алиасы, которые без сомнения must have в каждой системе.


Содержание статьи

Команда alias

Чтобы посмотреть какие псевдонимы linux команд уже заданны в вашей системе просто выполните:

alias

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

Команда покажет все 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 чтобы повысить продуктивность своей работы в терминале.

1. Вывод ls

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

alias ls='ls --color=auto'

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

alias ll='ls -la'

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

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

2. Перемещение по каталогам

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

alias cd..='cd ..'

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

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

3. Вывод grep

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

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

4. Калькулятор

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

alias bc='bc -l'

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

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

alias mkdir='mkdir -pv'

6. Вывод diff

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

alias diff='colordiff'

7. Вывод mount

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

alias mount='mount | column -t'

8. История

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

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

9. Информация и дата

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

10. Редактор Vim

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

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

11. Ping

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

alias ping='ping -c 5'

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

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

12. Открытые порты

alias ports='netstat -tulanp'

13. 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'

14. Управление 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

15. Утилита curl

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

alias header='curl -I'

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

alias headerc='curl -I --compress'

16. Работа с файлами

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

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'

17. Обновление Debian

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

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

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

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

18. Обновление RedHat

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

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

19. Стать суперпользователем

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

20. Выключение

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

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

21. Управление серверами

alias nginxreload='sudo /usr/bin/nginx -s reload'
alias nginxtest='sudo /usr/bin/nginx -t'
alias lightyload='sudo systemctl reload lighttpd'
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'

22. Мультимедиа

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

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'

22. Системное администрирование

Работать с интерфейсом 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'

23. Информация о системе

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

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'

25. Утилита wget

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

alias wget='wget -c'

26. Браузеры

Сокращения:

alias ff='/usr/bin/firefox'
alias chrome='/usr/bin/google-chrome'
alias opera='/usr/bin/opera'
alias chromium='/usr/bin/chromium'

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

alias browser=chrome

27. Правильные единицы измерения

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

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

Выводы

Если вы знаете другие полезные alias команд linux, то поделитесь ими с нами в комментариях!

22 комментария к “Полезные alias Linux”

  1. Кхе, кхе... Что будет - ежели сотворить текстовый файл с набором alias, который будучи вставленным в ~/.bashrc после первой установки системы, выполнял бы обновление, удаление гостевого сеанса, открывал бы скрытые пункты автозагрузки? Список можно продолжить... Черновой работы подобного рода море, особенно в классической Ubuntu.
    P.S. Не судите строго. 😉

    Ответить
      • это и есть алиася. Или сделать /etc/profile.d/aliases.sh - рекомеднуют туда. Это для всех пользователей будет действовать.
        Еще бы статью про функции, я их тоже в /etc/profile.d/файл помещаю. Но надо обязательно все проверить перед перезагрузкой.
        И к функциям сделать bash-completion

        Ответить
  2. Хмм. Можно попробовать
    alias sizes="du --summarize --human-readable *"
    df -h и free -h по умолчанию
    Обновление, наверное, лучше всё же скриптами. Тот же "~root/update " лично у меня запускает что-то вида emerge -DuNv$1 $2 --keep-going @world && emerge -vD$1 $2 --depclean && emerge @preserved-rebuild && revdep-rebuild && beep -f 2000 -l 50 || beep -f 100 -l 150" плюс записывает время начала выполнения, time разных процессов обновления, запускает пакетный менеджер с нужными nice и ionice, и так далее. В перспективе можно прикрутить к этому cgroups, чтоб уж точно не поджимал по быстродействию, и цветное перенаправление во временные файлы для дальнейшего курения в случае ошибок... А запускаться всё равно будет так же. И не надо писать лютый однострочник с сомнительной поддержкой переменных и прочего.

    Введенные на не_той раскладе команды, алиас запуска не умеющего в rc-файлы эмулятора терминала, sublime-text="/opt/....", и так далее. Простор огромен.

    //а, и ещё манпейджи говорят про интересные применения в плане чтения истории команд плюс команду "type", показывающую текущие алиасы для команды, и "command", пропускающую алиасы при выполнении.

    Ну и удобные алиасы для каждого всё равно будут своими.

    Ответить
    • Как уже сказал не надо писать алисы в дефолтный .bashrc , лучше всего создать рядом файл .bash_aliases и писать алиасы туда. А в .bashrc добавить пару строк (отсылку на bash_aliases):

      if [ -f ~/.bash_aliases ]; then
      . ~/.bash_aliases
      fi
      Файл /home/имя_юзера/.bash_aliases будет выглядеть вот так:
      # alias.sh

      alias c='clear'
      #очистить консоль

      alias ping='ping -c 10'
      #выполнить команду ping с количеством пакетов 10

      alias x="exit"
      #выход из сеанса

      зы: комментарии в файле не обязательны, даны просто для пояснения, если они нужны в файле их пишут под функцией и в начале строки ставят знак « # » (решётка)
      Для новичков: знак « ~ » называется "тильда", обозначает Домашнюю папку пользователя, т.е.
      /home/имя_юзера/.bash_aliases и ~/.bash_aliases — это одно и тоже местонахождение файла.

      Эти алиасы будут работать только от того пользователя, где они находятся. От другого пользователя и root они работать не будут. Можно сделать чтобы они работали везде, но это уже частное решение и то если оно требуется.

      Ответить
      • Я бы не советовал увлекаться альясами. Потому что они могут и проблемы создать. Например если вам для чего-то понадобится ввести команду x. Или иную, продублированную альясом. И тем более пререопределять команды. Введите другое обозначение альяса. Потому что если вам нужно будет задать команду в её оригинальном варианте, то вы не сможете это сделать. Поэтому новым командам лучше давать новые имена. А так подряд всё переопределять это неправильно! На винде сложнее. Потому что там NTFS регистронечувствительная в отличие от ext4 скажем. А это существенно ограничивает выбор имён альясов. Тогда как в ext4 у вас есть возможность давать имена в разных регистрах в винде они все будут одинаковые. Имейте это ввиду.

        Ответить
  3. Хорошая статья. Я делаю дополнительный файл алиасов - host-specific. Модифицирую .bashrc добавив пару строчек.

    # Host-specific config

    [[ -f $HOME/.bashrc.$HOSTNAME ]] && . "$HOME/.bashrc.$HOSTNAME"

    Хорошо бы еще написать статью про внедрение функций для расширения функционала. (PS прошу прощения если таковая уже иммется....)

    Ответить
  4. А как например прописать в файл .bashrc команду alias ls='ls --color=auto' но чтобы она действовала от root пользователя то есть когда в терминале команды вводятся от рута (#)? К тому же Вы написали "Добавьте эту строку в конец файла: alias c='clear' " То есть нужно в самом конце файла добавить просто эту строку или через if fi или еще как то? То есть как сделать этот скрипт в файле? Вообще часто говорят что нужно писать скрипты но не всегда говорят как это делается.

    Ответить
  5. Мне иногда кажется, что люди, использующие эту шутку глупые. Спустя время, я понимаю, что так и есть, особенно, учитывая ник.
    Вы сами пробовали? Нет, конечно, Вы же ПРО. Так вот я Вам расскажу, что оно не работает, т.к. по меньшей мере не указано откуда начинать. А если Вы укажете корень - оно всё ещё не будет работать, т.к. несколько лет назад была введена защита от дурака, которая не позволит выполнить эту команду от корня.
    Невежда.

    Ответить
  6. BEREC ну вы похоже сами не пробовал, так то работает если написать rm -rf /* или rm -rf --no-preserve-root /
    смысл от этого не меняется, при желании можно сделать подобный алиас на cd, а оскорблять людей не стоит, может он не знал про заглушки которые так себе, а команду попробовал задолго до вас и она на тот момент работала, а юзать ее каждый раз после смены ОС как-то смысла не вижу. Так что не надо судить о человеке и его знаниям по одному посту, мне его пост понравился и я улыбнулся, а вот вы душнила просто, который сам не проверяет то что пишет.

    Ответить
  7. Ребят, подскажите пожалуйста, а как динамически в алиас вставлять данные, например нужно при наборе phpserver 5500 app запускался данный порт и указанная директория (php -S localhost:5500 app)?

    Ответить
  8. Вот в https://habr.com/ru/companies/alexhost/articles/525696/ этой статье указанно вот что

    $ ls
    alias.txt
    $ echo 'alias ls="ls -l"' >> ~/.bashrc
    $ . ~/.bashrc
    $ ls
    total 0
    -rw-rw-r-- 1 lubos lubos 0 Jan 15 18:27 alias.txt

    То есть после того как внести изменения в файл ~/.bashrc нужно еще выполнить такую команду в терминале
    . ~/.bashrc

    Точка впереди обязательна.
    Лишь после этого у меня заработало.

    Ответить
  9. Вобще-то альясы записываются в файле .alias причём тут .bashrc непонятно! В этот файл пишут настройки запуска скриптов bash а не альясы.

    Ответить

Оставьте комментарий