На этот вопрос уже есть ответ здесь:
У меня проблема с поиском файла имеет основные команды, такие как rm, ls, cd и т. д. Мне нужен путь к файлу в Ubuntu, чтобы их отредактировать. Я проверил в Интернете, но только что нашел расположение файлов UNIX (/ usr / bin).
Итак, вот что я имею в виду:
# cd /usr/bin
# ls -lh rm
-r-xr-xr-x 1 root bin 14K May 1 2007 rm
# chmod 4555 rm
# ls -lh rm
-r-sr-xr-x 1 root bin 14K May 1 2007 rm
# chmod 2555 rm
-r-xr-sr-x 1 root bin 14K May 1 2007 rm
Я хочу изменить привилегии rm
. Приветствуются любые предложения или документация.
whereis
команда говорит Вам, где двоичный файл и вся документация расположены команды. Но не все команды имеют некоторый двоичный файл, который вызывается каждый раз, когда они выполняются. Некоторые команды являются встроенной оболочкой. Начиная с удара использования Ubuntu как его оболочка по умолчанию, они Bash Builtins присутствуют.
самым легким способом определить, является ли команда псевдонимом или вызывает некоторый двоичный файл или является команда, обеспеченная оболочкой, использует type
(который самой является также оболочкой встроенная команда) с -a
опция.
, Например, если Вы используете
whereis cd
, Вы заметите, что нет никакого вывода, который может убедить Вас, который cd
некоторая волшебная вещь, которая не присутствует в [1 136]/usr/bin. Но cd
оболочка встроенная команда. И если Вы будете работать
type -a cd
, то Вы доберетесь
cd is a shell builtin
при попытке его сами Вы найдете, что rm
действительно имеет двоичный файл в [1 137] / мусорное ведро .
, Но существуют некоторые исключения. echo
пример.
, Если Вы работаете
type -a echo
, Вы доберетесь
echo is a shell builtin
echo is /bin/echo
, Который означает, что существует и echo
оболочка встроенная команда и внешняя команда в [1 139]/bin/echo. Причина описана в [1 120] ответ Eliah Kagan и ответ muru .
ls
другое исключение. Значением по умолчанию ls
псевдоним к [1 116] также. Вывод [1 117] будет похож:
ls is aliased to `ls --color=auto'
ls is /bin/ls
Этот псевдоним определяется в [1 123] ~/.bashrc. Если бы этот псевдоним "не искажается", ls
вызвал бы двоичный файл, расположенный в [1 140] / мусорное ведро .
Если бы я хотел знать, где команда ls
, я спросил бы систему с помощью
whereis ls
guiverc@d960-ubu2:/de2900/buster$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
, и она говорит, то, где двоичный файл расположен (/bin/ls
) плюс руководство (ссылка) также (/usr/share/man/man1/ls.1.gz)
к вашему сведению: используйте man ls
для просматривания страницы руководства.1.gz в конце человека (руководство), которое страница просто говорит Вам, это - тип страницы 1 (т.е. исполняемая программа или команда оболочки).