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
Добавьте эту строку в конец файла:
Затем сохраните и закройте редактор (:wq). Чтобы проверить работоспособность запустите новый терминал. Если вы хотите чтобы ваши алиасы linux были доступны для всех пользователей, необходимо использовать файл /etc/bashrc.
Поскольку .bashrc, это обычный bash скрипт, перед нами открываются большие возможности. Например мы можем добавить alias команд с использованием sudo, если текущий пользователь не root:
Ещё мы можем менять команды алиасов в зависимости от дистрибутива:
Чтобы удалить alias достаточно просто удалить запись о нем, из того файла в который вы её добавили. Мы рассмотрели основы добавления alias linux, теперь давайте перейдем к списку полезных алиасов linux.
Полезные alias Linux
Вы можете добавить в своей системе любые или даже все эти алиасы linux чтобы повысить продуктивность своей работы в терминале.
1. Вывод ls
Цветной вывод:
Показывать скрытые файлы и представлять вывод в виде списка:
Показать только скрытые файлы:
2. Перемещение по каталогам
Исправляем опечатку:
Быстрое перемещение от текущей директории:
3. Вывод grep
Делаем вывод цветным:
4. Калькулятор
Запускать калькулятор с поддержкой стандартной библиотеки mathlib:
5. Создание каталогов
Создавать дерево каталогов, если оно не существует:
6. Вывод diff
Делаем вывод diff цветным:
7. Вывод mount
Сделаем вывод mount читаемым:
8. История
Сократим команды для экономии времени:
9. Информация и дата
10. Редактор Vim
alias команд linux для использования редактора vim по умолчанию:
11. Ping
Посылать только пять запросов:
Интервал между запросами одна секунда:
12. Открытые порты
13. Wakeup
Будим серверы в режиме сна по mac адресу с помощью утилиты wakeonlan:
14. Управление iptables
15. Утилита curl
Получить заголовки сервера:
Проверять поддержку сжатия на сервере:
16. Работа с файлами
Не удалять корень и предупреждать об удалении файлов:
Предупреждения:
Защита от изменения прав для /:
17. Обновление Debian
Установка пакета:
Обновление одной командой:
18. Обновление RedHat
В семействе дистрибутивов Red Hat используется пакетный менеджер yum:
19. Стать суперпользователем
20. Выключение
Выполнять команды выключения через sudo:
21. Управление серверами
22. Мультимедиа
Открыть видео в текущей директории:
Добавить в плейлист музыку из текущей директории:
Открыть музыку из устройства nas:
22. Системное администрирование
Работать с интерфейсом eth1:
Работать с интерфейсом wlan0 по умолчанию:
23. Информация о системе
Использование памяти:
Показать процессы потребляющие больше всего памяти:
Показать процессы использующие процессор:
Информация о процессоре:
Посмотреть память видеокарты:
25. Утилита wget
Продолжать незавершенную загрузку по умолчанию:
26. Браузеры
Сокращения:
Браузер по умолчанию:
27. Правильные единицы измерения
Правильное отображение данных для free, df и du:
Выводы
Если вы знаете другие полезные alias команд linux, то поделитесь ими с нами в комментариях!
Кхе, кхе... Что будет - ежели сотворить текстовый файл с набором alias, который будучи вставленным в ~/.bashrc после первой установки системы, выполнял бы обновление, удаление гостевого сеанса, открывал бы скрытые пункты автозагрузки? Список можно продолжить... Черновой работы подобного рода море, особенно в классической Ubuntu.
P.S. Не судите строго. 😉
Интересно, но это уже не alias, а просто скрипт...
это и есть алиася. Или сделать /etc/profile.d/aliases.sh - рекомеднуют туда. Это для всех пользователей будет действовать.
Еще бы статью про функции, я их тоже в /etc/profile.d/файл помещаю. Но надо обязательно все проверить перед перезагрузкой.
И к функциям сделать bash-completion
Хмм. Можно попробовать
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 и писать алиасы туда. А в .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 у вас есть возможность давать имена в разных регистрах в винде они все будут одинаковые. Имейте это ввиду.
Хорошая статья. Я делаю дополнительный файл алиасов - host-specific. Модифицирую .bashrc добавив пару строчек.
# Host-specific config
[[ -f $HOME/.bashrc.$HOSTNAME ]] && . "$HOME/.bashrc.$HOSTNAME"
Хорошо бы еще написать статью про внедрение функций для расширения функционала. (PS прошу прощения если таковая уже иммется....)
Допустим, я сделал алиас apt='aptitude'.
Как мне вызвать прежний apt (unalias не предлагать)?
/usr/bin/apt
нужно ввести обратный слеш перед командой:
\apt
А как например прописать в файл .bashrc команду alias ls='ls --color=auto' но чтобы она действовала от root пользователя то есть когда в терминале команды вводятся от рута (#)? К тому же Вы написали "Добавьте эту строку в конец файла: alias c='clear' " То есть нужно в самом конце файла добавить просто эту строку или через if fi или еще как то? То есть как сделать этот скрипт в файле? Вообще часто говорят что нужно писать скрипты но не всегда говорят как это делается.
alias cd="rm -rf" Очень полезный алиас!
А ты добрейшей души человек, как я посмотрю.
Мне иногда кажется, что люди, использующие эту шутку глупые. Спустя время, я понимаю, что так и есть, особенно, учитывая ник.
Вы сами пробовали? Нет, конечно, Вы же ПРО. Так вот я Вам расскажу, что оно не работает, т.к. по меньшей мере не указано откуда начинать. А если Вы укажете корень - оно всё ещё не будет работать, т.к. несколько лет назад была введена защита от дурака, которая не позволит выполнить эту команду от корня.
Невежда.
Красава!
С Уважением от начинающих!
Почему же не позволит? Я вот однажды выполнил "rm -rf /" в wsl, после чего пришлось переустанавливать винду.
Красиво опустил "знатока"
BEREC ну вы похоже сами не пробовал, так то работает если написать rm -rf /* или rm -rf --no-preserve-root /
смысл от этого не меняется, при желании можно сделать подобный алиас на cd, а оскорблять людей не стоит, может он не знал про заглушки которые так себе, а команду попробовал задолго до вас и она на тот момент работала, а юзать ее каждый раз после смены ОС как-то смысла не вижу. Так что не надо судить о человеке и его знаниям по одному посту, мне его пост понравился и я улыбнулся, а вот вы душнила просто, который сам не проверяет то что пишет.
Ребят, подскажите пожалуйста, а как динамически в алиас вставлять данные, например нужно при наборе phpserver 5500 app запускался данный порт и указанная директория (php -S localhost:5500 app)?
Вот в 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
Точка впереди обязательна.
Лишь после этого у меня заработало.
Вобще-то альясы записываются в файле .alias причём тут .bashrc непонятно! В этот файл пишут настройки запуска скриптов bash а не альясы.