Поиск по сайту:

Различные способы создания и использования псевдонимов Bash в Linux


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

Проверьте псевдонимы Bash в Linux

Псевдоним — это встроенная команда оболочки, и вы можете подтвердить ее, выполнив:

type -a alias

alias is a shell builtin

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

Вызовите свою оболочку и просто введите «alias», чтобы увидеть список определенных псевдонимов.

alias

Псевдонимы уровня пользователя можно определить либо в файле .bashrc, либо в файле .bash_aliases. Файл .bash_aliases предназначен для группировки всех ваших псевдонимов в отдельный файл вместо помещения их в файл .bashrc вместе с другими параметрами. Изначально .bash_aliases будет недоступен, и нам придется его создать.

ls -la ~ | grep -i .bash_aliases       # Check if file is available
touch ~/.bash_aliases                  # Create empty alias file

Откройте файл .bashrc и найдите следующий раздел. Этот раздел кода отвечает за проверку наличия файла .bash_aliases в домашнем каталоге пользователя и его загрузку при каждом запуске нового сеанса терминала.

Alias definitions.
You may want to put all your additions into a separate file like
~/.bash_aliases, instead of adding them here directly.
See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Вы также можете создать собственный файл псевдонимов в любом каталоге и добавить определение в .bashrc или .profile для его загрузки. Но я не хочу этого и предпочитаю группировать все свои псевдонимы в .bash_aliases.

Вы также можете добавить псевдонимы в файл .bashrc. Обратите внимание на раздел alias в файле .bashrc, где содержатся некоторые предопределенные псевдонимы.

enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

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

colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

Add an "alert" alias for long running commands.  Use like so:
  sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

Создание псевдонима в Linux

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

Синтаксис создания псевдонима в Linux.

alias <name-of-the-command>="command to run"

Например, в реальном сценарии.

alias Hello="echo welcome to Tecmint"

Откройте терминал и создайте любую команду псевдоним по вашему желанию. Если вы откроете другой сеанс, вновь созданный псевдоним будет недоступен.

alias Hello"echo welcome to Tecmint"
alias
Hello

Чтобы сделать псевдоним постоянным, добавьте его в файл .bash_aliases. Вы можете использовать свой любимый текстовый редактор или использовать команду cat или echo, чтобы добавить псевдоним.

echo alias nf="neofetch" >> ~/.bash_aliases
cat >> ~/.bash_aliases
cat ~/.bash_aliases

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

source ~/.bash_aliases

Теперь, если я запущу nf , который является псевдонимом слова «neofetch», запустится программа neofetch.

nf

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

uptime
cat >> ~/.bash_aliases alias uptime="echo 'I am running uptime command now'"
source ~/.bash_aliases
uptime

Из этого примера вы можете сделать вывод, что приоритет падает на псевдонимы bash перед проверкой и вызовом фактической команды.

cat ~/.bash_aliases
source ~/.bash_aliases
uptime

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

Теперь удалите запись uptime из файла .bash_aliases и перезагрузите файл .bash_aliases, который по-прежнему будет печатать uptime. с определением псевдонима. Это связано с тем, что определение alias загружается в текущий сеанс оболочки, и нам нужно либо начать новый сеанс, либо отменить определение псевдонима, выполнив команду unalias, как показано на рисунке. изображение ниже.

unalias uptime

Добавление общесистемных псевдонимов

До этого момента мы видели, как настроить псевдоним на уровне пользователя. Чтобы установить псевдоним глобально, вы можете изменить файл “/etc/bash.bashrc” и добавить псевдонимы, которые будут действовать глобально. Для изменения файла bash.bashrc вам необходимы повышенные привилегии.

Альтернативно создайте скрипт в “/etc/profile.d/”. Когда вы входите в оболочку, “/etc/profile ” запускает любой скрипт в profile.d перед фактическим запуском ~/.profile. Этот метод снизит риск испорченного файла /etc/profile или /etc/bash.bashrc.

sudo cat >> /etc/profile.d/alias.sh
alias ls=”ls -ltra”

Ниже приведен код, взятый из /etc/profile, который отвечает за запуск любых сценариев, которые мы помещаем в /etc/profiles.d/. Он будет искать любые файлы с расширением .sh и запускать исходную команду.

tail /etc/profile

Вот и все, что касается этой статьи. Мы увидели, что такое псевдоним, файлы конфигурации, связанные с псевдонимом, и различные способы настройки псевдонима локально и глобально.