sudo
, но может быть плохо для базы данных или демона ведения журнала )ioctl
или глючный аудиоинтерфейс, который ненужный всем мир -читаемый файл дает им достаточно пальцев -для лазания Чего следует избегать:
w
(отображать активность зарегистрированных пользователей ),X
(сервер системы X Window ),R
(интерпретатор языка программирования R ),[
(аналогично кtest
)[
, .
, :
, -
,r
{
, }
,!
?
и *
подстановочные знаки `"$&();'#~|\<>
, (также ^
, %
в некоторых оболочках ), SPC, TAB, NL (и другие пробелы с некоторыми оболочками)zsh
позволит вам определить и использовать псевдоним для символа NUL.bash
позволяет вам определить псевдоним для^A
(управляющего символа со значением байта 1 ), но явно не использовать его. Для поиска команд с односимвольными именами:
bash
:compgen -c | grep -x. | sort -u
(также включает ключевые слова, предполагается, что имена команд не содержат символов новой строки)
zsh
:type -m '?'
(или type -pm '?'
, если вам не нужны функции/псевдонимы/встроенные модули/ключевые слова ).
Debian или его производные :для поиска любой команды в любом пакете с односимвольным именем:
$ apt-file find -x '/s?bin/.$'
coreutils: /usr/bin/[
e-wrapper: /usr/bin/e
python3-q-text-as-data: /usr/bin/q
r-base-core: /usr/bin/R
r-base-core: /usr/lib/R/bin/R
r-cran-littler: /usr/bin/r
r-cran-littler: /usr/lib/R/site-library/littler/bin/r
wims: /var/lib/wims/public_html/bin/c
xserver-xorg-core: /usr/bin/X
I'm curious if this should be avoided. I do not know of any conflicts.
Это не имеет большого значения для конфликтов, о которых вы еще не знаете.
Псевдонимы — это интерактивная конфигурация оболочки. Они не активны в сценариях. Если вы определяете псевдоним с тем же именем, что и у существующей программы, все это означает, что когда вы лично набираете его в оболочке, вы по умолчанию вызываете свой псевдоним, а не другую программу. Другие программы не увидят ваш псевдоним, так что конфликта нет.
Например, если вы не знаете команду X
или никогда не планируете вызывать ее непосредственно из оболочки, это не проблема, если вы определите псевдоним X
. Когда другая программа, такая как startx
/ xinit
, вызывает X
, они не увидят ваш псевдоним, поэтому конфликта не будет.
Обращение :«Мне любопытно, следует ли этого избегать».
Как описано в других ответах, не должно быть технических проблем, если команда, которую вы переопределяете с помощью псевдонима, не является чем-то, что вы собираетесь использовать.
Основное разочарование от использования подобных псевдонимов возникает, когда вы помогаете другу или подключаетесь по ssh к компьютеру, на который вы еще не скопировали свой.bashrc. Вся мышечная память, которую вы развили, заставляет вас чувствовать себя как рыба в воде. Я нахожу это настолько дезориентирующим, что стараюсь свести свои псевдонимы к минимуму.
Это зависит от того, для каких псевдонимов вы используете (, например. насколько велика проблема, если вы по ошибке запустите неправильный псевдоним ), и как часто вы делаете ошибки.
Например:
r='rm -rf *'
и t='ls -l *tar*'
, вероятно, очень плохая идея, даже если вы редко нажимаете не ту клавишу. r='file *.png | grep RGB'
и t='ls -l *tar*'
, вероятно, не проблема. В более позднем случае, если вы наберете r
вместо (рядом с клавиатурой и, таким образом, легко ошибиться набрав )t
, вы просто получите вывод, который вам не нужен, и вы можете легко ввести правильный псевдоним. Однако в первом случае, если вы наберете r
вместо t
, вы нанесете нежелательный урон.
Таким образом, смысл в том, :если вы делаете однобуквенные псевдонимы -, используйте их только для чтения -только вещей (, а не для вещей, которые могут изменить данные таким образом, что это вызовет у вас проблемы, если бежать непреднамеренно)