Это не так уж и плохо, если вы принимаете меры предосторожности. В качестве примера вы можете установить CSF (Настроить брандмауэр сервера) и установить количество разрешенных попыток сбоя, поэтому, если кто-то попробует, скажем, более 5 попыток сбоя ?, то они автоматически заблокируются. Так что вся первая часть лучшего ответчика вообще не будет проблемой. Это случалось со мной много раз, и, к счастью, все участники были заблокированы навсегда. Я думаю, для сервера это не большая проблема, если вы единственный человек, который управляет сервером, но, конечно, если есть много системных администраторов или если вы работаете в организации, тогда, очевидно, не используйте корень. Также для настольного ПК, я думаю, лучше использовать другую учетную запись, поскольку существует риск безопасности, поскольку вы используете много программного обеспечения, но на сервере вы не выбираете случайное программное обеспечение, которому вы не доверяете, вы убедитесь чтобы держать их как можно ниже. Итак, вывод такой: нет, это не вредно, если вы знаете, как правильно управлять сервером.
Измените команду так:
alias search="find . -name "
Чтобы она всегда искала только в текущем каталоге, т.е. в текущем рабочем каталоге
. псевдоним
определяется один раз вызывается. Нет возможности вызвать команду при вызове псевдонима. Вам нужно написать функцию bash, в которой вы можете запускать подкоманды или, лучше, использовать .
(поиск в текущем каталоге) вместо pwd.
Используйте одинарные кавычки, чтобы избежать расширения оболочки во время определения
alias search='find `pwd` -name '
подстановка команд заключена в двойные кавычки в (t) csh (который вы, кажется, используете), как в оболочках типа Борна.
Итак, в:
alias search "find `pwd` -name "
Вы фактически делаете что-то вроде:
alias search 'find /some/dir -name '
Где / some / dir
был текущим каталогом на момент выполнения команды alias
.
Здесь вы хотите:
alias search 'find $cwd:q -name'
$ cwd
автоматически устанавливается tcsh
(как и $ PWD
в современных версиях, например, в оболочках POSIX), поэтому вы можно использовать его вместо менее эффективного и менее надежного `pwd`
.
Мы используем одинарные (строгие) кавычки, чтобы $ cwd
не раскрывались внутри.
$ cwd: q
- передать значение переменной как один аргумент, а не позволить ему разделиться.
Также обратите внимание, что вам не нужен пробел после -name
выше.
Если вы хотите использовать pwd
(например, чтобы получить канонический (без символических ссылок) путь к текущему рабочему каталогу, как в некоторых реализациях pwd
, таких как GNU) когда POSIXLY_CORRECT
не находится в среде), вы должны использовать:
alias search 'find "`pwd`" -name'
Хотя это не сработает, если путь к текущему каталогу содержит символы новой строки.
Обратите внимание, что вы не можете использовать sudo search
, поскольку псевдонимы раскрываются только в позиции команды в (t) csh. В оболочках POSIX вы можете:
alias sudo='sudo '
Сообщать оболочке, что слово, следующее за sudo
, также должно подвергаться расширению псевдонима, но этот трюк не работает в (t) csh.
POSIX sh
(или bash
/ zsh
/ ksh
...) эквивалент будет:
alias search='find "$PWD" -name'