Например, общий псевдоним, который я видел в ~/.bashrc
файле (или его эквивалентах):
alias rm='rm -i'
Тем не менее, я видел, что люди рекомендуют против этого, потому что
- псевдоним может не существовать в другой системе, и поскольку вы стали небрежны
rm
, вы случайно удалили что-то важное. [1] - используя этот псевдоним, вы фактически обучаетесь набирать текст
y
илиyes
после каждойrm
команды, которая побеждает всю цель.
Есть ли другие причины, чтобы рекомендовать против этого? Могут ли некоторые программы просто делать вызовы rm
вместо \rm
, и наложение на них может вызвать проблемы для них?
Я использую rm
просто в качестве примера, но я видел и другие команды, такие как cp
или mv
покрытые псевдонимами. Лично я медленно тренирую себя, чтобы использовать псевдоним, подобный этому, вместо rm -i
:
alias trash=`mv -v -t $HOME/.Trash`
shell
command-line
alias
Рикардо Альтамирано
источник
источник
rm -i
, он обучает меня немного больше автоматически добавлять-f
флаг.rm -i
для всего, что вы хотите. Такие , какdel
,irm
и т.д. Вам не нужно , чтобы это псевдоним кrm
. Это обходит пункт 1, и, выборочно используяdel
или вrm
зависимости от того, что вы хотите, вы также в некоторой степени обходите пункт 2.Ответы:
Предполагая, что вы используете bash, это не должно вызывать проблем для сценариев, поскольку неинтерактивные оболочки bash не являются источником
~/.bashrc
или~/.bash_profile
(что, скорее всего, либо в том месте, где размещены ваши псевдонимы, либо в качестве первого шага для поиска ваших псевдонимов в другом сценарии) , Однако это может вызвать проблемы, если вы используете сценарии:Ваш вопрос охватывает большую часть общей проблемы, связанной с наложением псевдонимов на существующие команды, основной из которых является то, что незнакомые среды, которые на первый взгляд кажутся одинаковыми, могут потенциально привести к совершенно разным результатам. Например, сглаживание
rm
наrm -i
хорошие намерения, но плохо на практике по причинам , вы заявляете.источник
Конечно:
(3) Потому что однажды я надеюсь добавить к основам, созданным [-----------], параноиков, которые наказывают других за наложение псевдонимов на стандартные команды, хотя наложение псевдонимов на стандартные команды, ну, в общем, стандартно ,
Если серьезно, это всего лишь предостережения. Если вы доверяете себе, чтобы не попасть в любую из этих ям гибели, тогда просто остерегайтесь и продолжайте.
Лично у меня псевдоним очень мало стандартных команд; Я использую небольшие вариации, потому что я немного параноик и сохраняю анал. Но одно хорошее применение, которое я нашел для этого, касается систем, где я часто вхожу в систему как root или другой пользователь, и есть некоторые вещи, которые я не хочу случайно / лениво запускать как root:
или
источник
В качестве крайнего примера, позвольте мне дать псевдоним стандартной команды, чтобы проиллюстрировать, почему псевдоним стандартных команд может быть вредным:
Очевидно, это плохо, потому что однажды это вызовет неприятный сюрприз. Аналогично, замена стандартных команд псевдонимами в конечном итоге приведет к неприятному сюрпризу, когда вы меньше всего этого ожидаете.
Но позвольте мне представить общий сценарий, который случится почти с каждым администратором Unix по мере продвижения в их карьере:
Когда-нибудь в будущем вы начнете новую работу и будете работать над новой системой, созданной другими. В субботу будет три часа ночи, и вы не думаете прямо и склонны делать ошибки. Ваша стандартная среда не будет доступна. На самом деле, вы root.
Учитывая это, вы собираетесь помнить, что
rm
не псевдонимrm -i
? Собираетесь ли вы проверять ваши специальные псевдонимы каждый раз, когда вы входите в окно? Если вы измените среду root, будут ли ваши коллеги довольны вашим изменением?Я честно говоря об этом. В своей карьере я работал над тысячами систем, и если бы я действительно изменил среду на всех этих системах, трудно было бы увидеть ценность.
Псевдоним
rm
дляrm -i
очень распространен, и я видел, что он предотвращает много проблем, но он также вызвал много неожиданностей и часов дополнительной работы по восстановлению случайно удаленных файлов.Так что теперь я стараюсь избегать наложения общих системных команд. Вместо этого я использую псевдонимы и функции для выполнения действий, которые оболочка не может легко выполнить. Теперь я обычно прикрепляю к псевдониму дополнительное письмо, например:
И, возможно, я действительно должен избавиться от своего окончательного псевдонима, потому что адаптация к новым практикам требует времени:
источник
ls
может быть более удобным, чем запоминание десяти псевдонимов.rm
->rm -i
пример намного лучше. Другим хорошим~/.trash
Есть больше опасностей для этого.
Например, если вы используете
shell-command
в Emacs, вы можете подумать, что получаете «свою» команду (или псевдоним , но вам не нужноls
многократно использовать псевдоним в терминале, прежде чем вы забудете все о настройке псевдонима, подумав о это как любая другая команда ...) - фактически (обратно в Emacs) вы получаете (unaliased) команду. Emacs выполнит это без проблем, так что вы можете даже не замечать того, что только что произошло!Что касается разных компьютеров и / или систем, если вы считаете слишком утомительным настраивать отдельные
.rc
файлы для них всех, у вас может быть только один такой файл, но сif
предложениями для адаптации.Например, вместо того, чтобы оценивать каждую функцию при ее написании, просто, когда у вас возникают проблемы с любой из них, добавьте их в «черный список», последний:
источник
Переименование стандартных команд с помощью псевдонимов (т.
rm=rm -i
Е.) Может определенно привести к тому, что псевдоним недоступен. Я предпочитаю не использовать такие, и (в несколько горьких, горький опыт ;-) Я стал acustomed читать каждую команду дважды, и если этоrm
илиmv
или что - нибудь еще потенциально разрушительными трижды. И такие псевдонимы приводят к автоматическому "rm foo" ENTER "y" Ой !! в любом случае (и каждый раз стоит дополнительное нажатие).Но это только я. Если вы не планируете работать в чужой среде (на других машинах, других пользователях ...) и вы можете устанавливать свои любимые псевдонимы, где бы вы ни находились, просто сходите с ума. Известно, что Unix дает пользователям более чем достаточно веревки, чтобы стрелять в ноги.
источник
Другие ответы хороши, но все они смотрят только на то, как это влияет на вас.
Позвольте мне немного перевернуть ответ @Stephan Laswieski.
Предполагая, что вы не всезнающий, вам может потребоваться, чтобы кто-то еще работал над вашей учетной записью пользователя или посоветовал вам, как что-то сделать.
Затем, когда они что-то делают или говорят вам, это может работать не так, как ожидалось.
В лучшем случае вам придется тратить время на объяснение им того, что произошло (если вы здесь и можете вспомнить или выяснить, что именно псевдоним является причиной проблемы).
В худшем случае посмотрите на пример в одном из ответов: alias ls = 'rm -rf'.
источник