Как известно, в Линуксе можно всё — главное, знать как :) В этой статье хотелось бы рассказать начинающим линуксоидам о такой интересной возможности, как использование алиасов. В повседневной работе нам приходится использовать различные команды. Как правило, большинство из этих команд повторяется в различных комбинациях. Простейший пример – создание каталога с последующим переходом в него.
$ mkdir something
$ cd something
Казалось бы мелочь, но когда вы десятки раз в день выполняете эти команды, то само собой возникает желание как-то автоматизировать этот процесс. Первое, что может прийти в голову это написание bash скриптов, содержащих набор необходимых команд. В принципе, это тоже рабочий вариант, но более элегантным решение было бы создать необходимые алиасы
Алиасы — это удобный способ расширить возможности командной строки, а также увеличить скорость работы с терминалом Linux и, следовательно, повысить продуктивность работы над проектами. По сути, это просто способ заменить часто используемые команды Linux на более быстрые и простые, чтобы вы могли применять их быстрее и интуитивно понятнее (особенно если они содержат опции и параметры). Таким образом, вы можете вводить меньше команд для запроса тех же длинных инструкций.
Для того, чтобы начать создавать свои алиасы просто перейдите в папку /home/user и отредактируйте файл .bashrc. Так, чтобы добавить новый алиас нам нужно добавить в файл запись, начинающуюся с ключевого слова alias, например для создания алиаса la, выполняющего команду ls –A необходимо написать :
alias la='ls -A'
Затем перезагрузите файл bashrc, и вам станут доступны новые псевдонимы.
Вы также можете добавить новые псевдонимы в новый файл, используя файл с именем .bash_aliases, а затем загрузить новый файл из исходного файла .bashrc, просто добавив ссылку для установки псевдонимов:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Больше полезного
Разобравшись с тем как создавать алиасы давайте посмотрим наиболее полезные команды, которые обычно добавляют в алиасы.
Например, если вы можете подготовить несколько алиасов для работы с обновлениями и пакетами:
alias upd='sudo apt update'
alias upg='sudo apt upgrade'
alias yep='sudo apt install $1'
alias nop='sudo apt remove $1'
Здесь первые два алиаса будут обновлять список пакетов и уже установленные пакеты соответственно. А вторые два будут добавлять и удалять тот пакет, который вы передадите алиасу в качестве параметра. Согласитесь, удобно!
И теперь вы можете тратить меньше времени на ввод нужных команд, используя новые алиасы:
$ yep nmap
$ nop nmap
Разнообразные операции с содержимым различных каталогов можно тоже существенно упростить с использованием алиасов. Так, в некоторых дистрибутивах уже есть алиасы ll, lf, la и другие. Но там же где их нет, мы можем их создать
alias ll='ls -la'
alias lf='ls -alF'
alias la='ls -A'
alias ls='ls -CF'
Эти алисы могут упростить вывод содержимого каталогов в различных форматах, но при этом здесь команды достаточно короткие. Посмотрим пример посложнее:
alias lt='ls --human-readable --size -1 -S --classify'
Эта команда форматирует размеры файлов в «человекочитаемом» виде. Вводить такую длинную команду каждый раз не слишком удобно, в отличии от двухбуквенного алиаса.
Если нам нужно также посчитать размер каталогов, то можно воспользоваться следующим алиасом:
alias lu='du -sh $1 | sort -h'
Еще один полезный алиас можно создать с помощью ls для получения упорядоченного списка файлов и папок по изменениям во времени:
alias lt='ls -t -1 -long'
Иногда нам бывает необходимо узнать какое количество файлов без папок содержится в каталоге и его подкаталогах. Алиас, представленный ниже рекурсивно найдет все файлы в каталоге и посчитает их количество.
alias lc='find . -type f | wc -l'
Для поиска каталогов в текущей папке пригодится следующий алиас:
alias ld='ls -d */'
Боремся с конфигами
Современные приложения могут содержать большое количество различных конфигурационных файлов. Для работы с ними могут потребоваться многострочные наборы команд. Например, нам может потребоваться узнать количество тех или иных конфигурационных файлов. При этом нам не очень хочется запоминать полные пути к этим файлам. В таком случае нам проще всего создать алиасы, в которых уже будут прописаны полные пути к нужным файлам и каталогам. Например, что-то подобное:
alias lsc='ls -lah config/sync/ | wc -l'
alias lsn='ls -lah config/sync/node.type.* | wc -l'
alias lsp='ls -lah config/sync/paragraphs.paragraphs_type.* | wc -l
Ну и в целом о навигации по каталогам. Если вы как настоящий линуксоид испо��ьзуете только командную строку для работы с файлами, не прибегая к помощи файловых менеджеров по типу Midninght Commander или оконного интерфейса, то вам наверняка приходится много времени тратить на навигацию между каталогами. Можно заранее “заготовить” подобный набор алиасов, который поможет вам быстро перемещаться сразу на несколько уровней.
alias 1d="cd .."
alias 2d="cd ..;cd .."
alias 3d="cd ..;cd ..;cd .."
alias 4d="cd ..;cd ..;cd ..;cd .."
alias 5d="cd ..;cd ..;cd ..;cd ..;cd .."
Для того, чтобы не запоминать ключи команды tar при работе с упакованными файлами можно написать вот такой несложный алиас:
alias untar='tar -zxvf $1'
Для операции сжатия:
alias tar='tar -czvf $1'
Для DevOps
Те, кто много работает с системой контроля версий Git тоже могут найти много полезного при работе с алиасами. Например, если нам ужен построчный вывод git log
alias gl='git log --oneline'
Более сложный пример: получим список файлов, которые чаще всего менялись за последние 12 месяцев
alias glc="git log --format=format: --name-only --since=12.month | egrep -v '^$' | sort | uniq -c | sort -nr | head -50"
Кстати, файлы содержащие описание алиасов тоже можно хранить в git и в случае, если вам нужно переехать на другую машину, вы можете без труда выгрузить нужные алиасы и использовать их на другом узле.
Заключение
В этой небольшой статье мы рассмотрели такой простой, но полезный инструмент администрирования Linux как алиасы. На просторах сети вы можете найти большое количество различных примеров на все случаи жизни. С помощью алиасов вы можете существенно упростить себе выполнение задач в командной строке.
Если работа с алиасами — ваш первый шаг к осознанному владению Linux, дальше логично собрать целостную картину. На курсе «Administrator Linux. Basic» вы системно разберёте файловую систему, сети, инфраструктуру, сервисы, мониторинг и научитесь уверенно администрировать реальные серверы, а не только свой терминал.
Если хотите понять формат обучения — записывайтесь на бесплатные демо-уроки от преподавателей курса:
15 декабря: Docker Compose: многоконтейнерные приложения и инфраструктура. Записаться
22 декабря: Пользователи и права в Linux: первые шаги администратора. Записаться