Здарова! У меня на машине имеется пачка всяких alias’ов для продуктивной работы. К примеру есть такой alias cat='batcat’.



Я привязал команду cat к нужной мне утилите. В данном случае это batcat. Про нее я рассказывал в предыдущих постах.



Все работает отлично, но что мне делать когда требуется деактивировать этот alias и воспользоваться чистой командой cat?



Ты скажешь - дак залезь в файл ~/.bashrc/.zshrc да закомментируй всю эту срамоту. Справедливо! Но это какое-то топоровое решение.



Есть несколько вариантов как это осуществить нативно и красиво. Ща покажу.



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



Первый вариант



Перед командой ставим символ «\»:



# \cat /tmp/test.txt



И всё! Теперь в моем случае alias с batcat проигнорирован и сработала нативная утилита cat. Красота!



Второй вариант



Помещаем команду в кавычки, хоть в двойные хоть в одинарные:



# 'cat' /tmp/test.txt

# "cat" /tmp/test.txt



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



Третий вариант



Капитанский вариант с указанием полного пути к команде:



# /usr/bin/cat /tmp/test.txt



Ну тут всё логично, я четко указал что и откуда запускать. Алиасы в пролете. Нативочка в профите.



Чтобы узнать полный путь к команде, воспользуйся одним из этих способов, они очень часто встречаются в bash скриптах, я приводил пример в этом посте.



whereis cat

which cat

type -a cat



Четвертый вариант



С помощью команды command



# command cat /tmp/test.txt



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



Пятый вариант



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



# unalias cat



Хаба-хаба и всё! Теперь у нас в текущей сессии чистый cat, без хвостатых мышек сюси.



А чтобы вообще дропнуть все алиасы в текущей сессии, запускай такое:



# unalias -a



Ну вот и все, теперь вообще никаких alias’ов нет, голый король. Ну а чтобы не перезапускать сессию и восстановить как было, делаем так:



source ~/.bashrc

source ~/.zshrc



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



Я использую первый вариант, он достаточно быстрый и менее трудозатратный. Ну а если что-то дебажу, то применяют пятый вариант. Для чистоты экспериментов, чтобы на грабли не наступить там где не нужно.



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



Спасибо всем проголосовавшим в этом посте, большинство ЗА, так что в ближайшее время прикручу комменты. Но терзают меня пока сомнения, в общем решим этот вопрос. Увидимся!



tags:
#bash #linux



💩 @bashdays