Linux

Как создавать псевдонимы и функции оболочки в Linux?

Содержание:

Зная подсказки команд & shell-сценарии по-прежнему необходимы, если вы хотите получить максимальную отдачу от системы GNU/Linux & чем больше человек работает в командной строке, тем больше он убеждается, что большинство используемых команд — это очень небольшое подмножество доступных команд. Большинство задач являются привычными & пользователь может выполнять их одинаково каждый день.

Linux System

Хотя создатели многих наиболее распространенных командных утилит попытались избавиться от лишнего набора текста, используя сокращенные названия e.g. вместо списка мы набираем «ls» & вместо change-directory мы набираем «cd«. Кроме того, многим пользователям Linux часто приходится использовать одну команду снова и снова. повторный ввод/копирование одной и той же команды & снова снизит производительность & отвлекает пользователя от реальной работы.

Было бы здорово, если бы мы тратили меньше времени на ввод этих длинных команд. У нас есть два мощных способа минимизировать время работы в командной строке — это псевдонимы оболочки и функции, Используя эти две функции, пользователь может приручить повторяющиеся задачи, сократить длительные процессы, & настраивают пользовательские команды с опциями, которые пользователь всегда использует & пытаться запомнить.

Вы можете определить свои команды в соответствии с вашими конкретными потребностями и для облегчения бремени повторяющихся задач.

Псевдонимы и сценарии оболочки i.e. функции выполняют однотипную работу. Они позволяют вам определить и назвать набор функций оболочки Bash, который затем можно вызвать по имени, которое вы ему дали. Набирать имя проще и удобнее, чем набирать все шаги или команды каждый раз, когда вы хотите их использовать.

Разница между псевдонимом и функцией заключается в сложности & масштабировать. Сценарии лучше подходят для хранения более длинных и сложных кусков кода. Псевдонимы идеально подходят для хранения более коротких и лаконичных наборов команд.

Псевдонимы оболочки

Псевдоним оболочки — это пользовательский ярлык для ссылки на команду или набор команд, выполняемых с или без пользовательских опций. Эти псевдонимы — альтернативные, легко запоминающиеся имена для длинных команд, которые вам приходится выполнять часто. Когда вы вводите команду в командной строке, оболочка сначала ищет то, что вы написали, в своем списке псевдонимов. Если найдено совпадение, оно будет заменено псевдонимом с соответствующим текстом; после этого снова просматривается вся полученная командная строка & выполняет.

Возможно, вы уже использовали команду псевдонимы в системе Linux, так как большинство дистрибутивов Linux добавляют по крайней мере некоторые из популярных псевдонимов по умолчанию в «.bashrc» файл учетной записи пользователя.

За пределами псевдонимов: Функции оболочки

Блоки схожего, но не идентичного кода не могут быть заменены псевдонимами. Они не могут обрабатывать ошибки, возвращать пользовательские коды выхода, управлять потоком или использовать переменные. Если вам нужно сделать что-то из этого, пришло время использовать функции оболочки.

Функции оболочки — это блоки кода, структурированные как полные подскрипты, написанные один раз и вызываемые из любого скрипта, которому они нужны.

Синтаксис псевдонимов:

Создание псевдонимов в bash является очень простой задачей. Синтаксис выглядит следующим образом:

alias alias_name=”command_to_run”

Создать новый псевдоним bash в текущем сеансе

  1. Введите команду «alias«
  2. Затем объявите имя псевдонима
  3. За ним следует знак равенства
  4. И команда, которая будет выполняться при вызове псевдонима.

Команда должна быть заключена в кавычки & без пробелов вокруг знака равенства. Пробелы здесь прервут команду. Каждый псевдоним должен быть объявлен на новой строке.

Давайте поясним это на примере. В командной строке Linux одной из наиболее используемых команд является «ls«. В основном команда «ls» используется вместе с командой «la» — переключатель, который выведет список всех файлов & каталоги со скрытыми файлами в формате длинного списка. Теперь мы создадим простой псевдоним bash «ll«, который будет ярлыком к ls -la команда.

  1. Открыть окно терминала
  2. Type:
    alias ll="ls -la"

    & нажмите enter

    Псевдоним ll
  3. Теперь в консоли введите «ll» и нажмем ввести
    Запуск псевдонима ll
  4. Вывод будет таким же, как при наборе команды ls -la.

Определенный выше псевдоним «ll» будет доступен только в текущем сеансе оболочки. Если вы закроете сеанс или новое окно сеанса, инициированное с другого терминала, вышеуказанный псевдоним «ll» будет недоступен.

Псевдоним команды ll не найден вне сессии

Позже мы обсудим, как сделать псевдоним постоянным. Приведенные здесь примеры относятся к оболочке bash, но все концепции и большая часть кода применимы и к другим оболочкам.

Предопределенные псевдонимы

Некоторые псевдонимы предопределены для вас. Чтобы узнать список всех псевдонимов, определенных в системе, воспользуемся командой «alias» без параметров:

псевдоним

Это псевдонимы на тестовой машине Ubuntu, на которой была написана эта статья. Также в этом списке будут отображаться любые пользовательские псевдонимы, определенные пользователем.

Существует множество различных псевдонимов для команды ls, и есть группа псевдонимов, которые обеспечивают цветной вывод для семейства команд grep e.g. с псевдонимами, определенными как указано выше, всякий раз, когда вы набираете текст:

grep

Это будет интерпретировано как:

grep --color=auto

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

Вот определение псевдонима grep.

alias grep='grep --color=auto'
  1. Команда alias используется для определения псевдонима.
  2. Имя псевдонима задается следующим образом. В данном примере это «grep».
  3. Знак равенства соединяет имя псевдонима с именем псевдонима body псевдонима. Для всех псевдонимов, кроме очень простых, тело псевдонима заключено в одинарные кавычки ‘.
  4. Тело псевдонима — это раздел, который выполняется при использовании псевдонима в командной строке.
  5. Тело этого псевдонима просто вызывает команду grep с опцией –color=auto.

Псевдоним оповещения

В верхней части списка есть сложный на вид псевдоним под названием alert. В качестве небольшого отступления, чтобы вы знали, что он делает, псевдоним alert используется, чтобы сообщить вам о завершении команды. Здесь также указывается, успешно или нет завершилась команда. Он обеспечивает графическое системное оповещение в верхней части экрана.

Вот простой пример. Команда sleep будет спать в течение пяти секунд., Псевдоним alert будет называться. Псевдоним проверяет ответ от предыдущей команды. Он извлекает последнюю команду из файла истории. Он определяет, успешно или нет завершилась команда. Затем он представляет результаты в системном оповещении.

Если команда завершилась, как ожидалось, значок в системном оповещении — это маленькое окно терминала. Если команда вернула код ошибки, значок в системном оповещении будет красным значком ошибки.

sleep 5; alert
Тревога для сна

Через пять секунд мы видим системное предупреждение:

Вывод Alert sleep

Иконка — это маленькое окно терминала, значит, все прошло успешно. Давайте попробуем повторить это с командой, которая, как мы знаем, не выполнится:

DoomedToFail; alert
Предупреждение о сбое

Наше системное оповещение теперь имеет значок ошибки.

Вывод предупреждения о сбое

Определение тривиального псевдонима

Как мы видели, чтобы определить псевдоним, мы используем команду alias.

Мы создадим псевдоним для команды clear. Наш псевдоним будет называться cls, и он будет вызывать команду clear.

Наше определение псевдонима настолько тривиально, что не заслуживает того, чтобы заключать его в одинарные кавычки. Если тело псевдонима сложнее, чем это, или если оно содержит пробелы, заключите его в одинарные кавычки. Мы определим псевдоним, используем ls, чтобы поместить некоторые данные в окно терминала, а затем используем наш новый псевдоним cls, чтобы очистить экран.

alias cls=clear

ls -l

cls
Псевдоним cls

Экран очищается. Успех, хотя и кратковременный. Псевдоним будет существовать только до тех пор, пока это окно терминала остается открытым. После закрытия окна псевдоним исчезнет.

Чтобы сделать псевдонимы постоянными, используйте файл «.bashrc» файл

Вам может быть интересно, где определены готовые псевдонимы. он находится в «.файл «bashrc» в вашей домашней папке. Этот файл считывается, а команды в нем выполняются всякий раз, когда вы запускаете интерактивную оболочку. Это происходит, когда вы открываете окно терминала.

Введите следующую команду в вашей домашней папке, чтобы увидеть содержимое файла «.Файл «bashrc» с подсветкой синтаксиса.

gedit .bashrc
Редактирование .bashrc

Это приведет к запуску gedit редактора с «.bashrc», загруженным в него файлом.

.содержимое файла bashrc с указанием псевдонима

Выделенные области показывают две области, в которых определяются псевдонимы.

Прокручивая документ, вы обнаружите еще два раздела, связанных с псевдонимами:

оператор if .bash_alias in .файл bashrc

Первый из них — это определение псевдонима alert. Второе — это оператор if. Это переводится как «если файл «.bash_aliases» существует, прочитайте его.»

Если у вас есть только несколько псевдонимов, которые вы хотите определить, вы можете поместить их в ваш «.bashrc» файл. Поместите их ниже раздела, содержащего псевдонимы ls.

Если вы собираетесь создать много псевдонимов, или вам просто нравится идея инкапсуляции псевдонимов в собственный файл, вы можете определить их в ваших «.файл «bash_aliases. Одно из преимуществ создания их в вашем «.bash_aliases», вы не можете случайно изменить какие-либо настройки в файле «.файл bashrc». Еще одно преимущество — ваши псевдонимы легко копируются на новые системы, потому что они отделены от «.bashrc».

Псевдоним должен быть назван так, чтобы его было легко запомнить. Рекомендуется также добавить комментарий для дальнейшего использования.

Хранение псевдонимов в .bash_aliases File

The «.файл «bash_aliases» по умолчанию не существует, вам придется его создать. Вы можете создать файл с помощью этой команды:

touch .bash_aliases
создание файла bash_aliases

Давайте отредактируем этот файл и добавим в него несколько псевдонимов. Эта команда откроет файл «.bash_aliases» файл в редакторе gedit.

gedit .bash_aliases
Определение псевдонима в .файл bash_aliases

Мы добавили три псевдонима. Первый — наш cls псевдоним, который мы использовали ранее. Следующая команда называется h. и — это сокращенный способ вызова команды истории.

Третий псевдоним называется ftc. Это означает «подсчет типов файлов.»

Этот псевдоним более сложный, поэтому он заключен в одинарные кавычки. Используется цепочка команд, связанных между собой трубками. Он выдает отсортированный список различных расширений файлов и имен каталогов, с подсчетом для каждого элемента списка.

Когда мы сохраним файл «.файл bash_aliases», мы можем ожидать, что наши псевдонимы будут живыми и доступными. Это не тот случай. Файл должен быть прочитан оболочкой Bash, прежде чем определения псевдонимов станут активными. Это делается всякий раз, когда открывается интерактивная оболочка.

Мы также можем использовать встроенную оболочку Bash . для чтения и выполнения команд в файле. Поскольку наш «.Файл «bash_alias» считывается, когда «.bashrc» обрабатывается, мы должны выполнить наш тест, вызвав «.bashrc». Таким образом, мы сможем проверить, что файл «.Файл «bash_alias» вызывается из «.bashrc» и что наши псевдонимы живы и здоровы.

Мы использовали следующие команды:

gedit .bash_aliases

Для редактирования файла «.файл «bash_aliases.

. .bashrc

Это приведет к считыванию и выполнению команд в «.bashrc», который будет вызывать «.bash_aliases».

ftc

Это вызовет псевдоним ftc.

Псевдоним ftc

Наш псевдоним отвечает, что означает, что Bash прочитал и «.bashrc» и «.bash_aliases», и наши новые псевдонимы теперь работают.

Теперь вы можете продолжить и добавить новые псевдонимы в файл «.файл «bash_aliases» по мере того, как они приходят вам в голову. Если вы делаете что-то более одного-двух раз, подумайте о создании псевдонима для этого.

Удаление псевдонимов

Существует команда для удаления псевдонимов, чтобы Bash не распознавал их и не реагировал на них. Освежающе откровенная команда называется unalias.

Чтобы использовать его, укажите имя псевдонима, который вы хотите, чтобы Bash забыл. Чтобы заставить Bash забыть наш псевдоним ftc, используйте unalias e.g. ранее используемых «ll» команда:

unalias ll
Команда unalias

Вы можете использовать unalias для удаления определенных вами псевдонимов и любых предопределенных псевдонимов.

Чтобы удалить все псевдонимы из вашей системы, используйте опцию -a (all):

unalias -a

Потеря памяти Bash не будет постоянной, хотя. В следующий раз, когда вы откроете окно терминала, «забытые» псевдонимы вернутся обратно. Чтобы действительно удалить их, вам нужно удалить их из вашего «.bashrc» и «.файлы «bash_alias.

Если вы думаете, что когда-нибудь захотите вернуть их, не удаляйте их из «.bashrc» файл. Вместо этого закомментируйте их, добавив хэш # в начало каждой строки псевдонима. Чтобы сделать ваш «.bash_alias» файл неэффективен, переименуем его. Если ваш «.bashrc» файл не видит его, он не будет читать его в. Отмена этих шагов для восстановления псевдонимов является простым делом.

Чтобы временно обойти псевдоним (скажем, мы сделали псевдоним ls на ls -a), мы можем набрать:

\ls

В результате будет вызвана обычная команда, а не ее алиасированная версия.

Временное удаление псевдонима

Справка для команды Alias:

  • опция -help: Она выводит справочную информацию.

Синтаксис:

псевдоним --help
Псевдоним help

Функции оболочки

Иногда требуется псевдоним, который может принимать один или несколько аргументов, тогда используются функции bash.

Синтаксис

Создать функцию bash не очень сложно. Они могут быть объявлены в любом из следующих двух различных форматов:

function_name () {

[commands]

}

или

function имя_функции {

[команды]

}

Мы можем сжать эту вторую форму в одну строку и разделить команды точкой с запятой. Точка с запятой must идти после последней команды:

function_name () { command1; command2; }

Лика псевдонимов, функции оболочки Bash могут быть определены в «.bashrc», но часто удобнее поместить их в собственный файл определений. Мы будем называть его «.bash_functions», следуя соглашению, используемому для «.файл «bash_aliases.

Это означает, что нам нужно сказать «.bashrc», чтобы прочитать наши определения. Мы можем скопировать и изменить фрагмент кода, который читается в «.bash_aliases». Запустите gedit и загрузите файл «.bashrc» файла с этой командой:

gedit .bashrc
gedit .файл bashrc

Вам нужно добавить выделенную секцию, показанную ниже.

Вы можете выделить раздел псевдонимов и нажать Ctrl+C, затем переместиться в то место, где вы хотите разместить новый раздел, и нажать Ctrl+V, чтобы вставить копию текста. Тогда все, что вам нужно сделать, это изменить два места, где написано «.bash_aliases» в «.bash_functions.»

Добавление функций bash_functions в .файл bashrc

Мы можем сохранить эти изменения и закрыть gedit.

Теперь мы собираемся создать и отредактировать файл «.bash_functions» файл, и поместит в него определение функции.

touch .bash_functions

gedit .bash_functions
Создание и редактирование .bash_functions

Это откроет пустое окно «.файл «bash_functions» в gedit.

Мы собираемся добавить простую функцию под названием up. вверх будет принимать один параметр командной строки, который является цифрой. up будет вызывать команду cd .. столько-то раз. Итак, если вы использовали команду

вверх 2

up будет вызывать cd .. дважды и переместится на два уровня вверх в дереве каталогов.

Существуют различные способы определения функции. Вот одна из них:

function up() {

Слово function является необязательным. Если вы приверженец традиций, используйте их, если вас не беспокоит их ввод, оставьте их без внимания.

Вот вся наша функция в gedit:

Редактирование .файл bash_functions
function up() {

Это обозначает начало определения нашей функции и называет функцию up.

уровни=$1

Это создаст переменную с именем levels и устанавливает его в значение первого параметра. Этот параметр будет цифрой, предоставляемой пользователем при вызове функции. $1 означает «первый параметр командной строки.»

while [ "$levels" -gt "0" ]; do

Затем мы вводим цикл, который затем переводится как «когда «значение» «уровни» положительна или больше нуля, сделайте то, что содержится в теле цикла.»

Внутри тела цикла у нас есть две команды. Это так:

cd ..

Переместиться на один уровень вверх в дереве каталогов.

levels=$(($levels - 1))

Устанавливает уровень в новое значение, которое на единицу меньше его текущего значения.

Затем мы возвращаемся в верхнюю часть цикла, снова выполняется сравнение между значением уровней и нулем. Если “levels” больше нуля, тело цикла выполняется снова. Если значение не положительное или больше нуля, цикл завершается, & мы переходим к оператору done, и функция завершается.

Сохранить эти изменения и закрыть gedit.

Мы будем читать и выполнять команды в «.bashrc», который должен прочитать и выполнить команды в нашем «.файл «bash_functions.

. .bashrc
Вызов ..bashrc

Мы можем протестировать функцию, переместившись в некоторое место в дереве каталогов и используя up для перемещения обратно в «более высокую» точку в дереве каталогов.

cd ./work/backup/

вверх 2
Функция вверх

Функция работает. Мы переместились на два уровня каталога выше в дереве.

Отслеживание типа

По мере создания набора псевдонимов и библиотеки функций может стать трудно вспомнить, является ли та или иная команда псевдонимом или функцией. Вы можете использовать символ “type” команда напомнить. Самое интересное здесь то, что вы также можете увидеть определение.

Давайте используем тип ftc псевдоним и наша функция «вверх.

тип ftc

тип up
Использование типа

Мы получаем очень полезное напоминание о том, к какому типу команд относится каждая из них, а также их определения.

Начать сбор

Псевдонимы и функции могут значительно ускорить работу с командной строкой. Они могут сократить последовательность команд, а также позволяют добавить опции, которые вы всегда используете в стандартных командах. Каждый раз, когда вы видите интересную однострочную фразу или полезную функцию, вы можете адаптировать и персонализировать ее, а затем добавить в свой «.bash_aliases» или «.файлы «bash_functions. Широкое использование этих функций может помочь сделать ваше пребывание в оболочке более приятным и менее сложным.

Помните, что следует остерегаться переопределения существующих команд с потенциально разрушительным поведением. Даже если сделать наоборот и переименовать команду в более безопасный вариант (например, всегда запрашивать подтверждение перед рекурсивным удалением), она может укусить вас в первый же раз, когда вы окажетесь в системе без нее, после того как вы привыкли полагаться на нее. Чтобы найти кандидатов, для которых можно было бы создать псевдонимы, неплохо было бы поискать в истории наиболее часто используемые команды.

Добавить комментарий