В каком файле есть основные функции команд, такие как rm, cd и т. Д.? [дубликат]

На этот вопрос уже есть ответ здесь:

У меня проблема с поиском файла имеет основные команды, такие как 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 . Приветствуются любые предложения или документация.

0
задан 18 September 2019 в 15:31

2 ответа

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] / мусорное ведро .

2
ответ дан 23 October 2019 в 11:35

Если бы я хотел знать, где команда 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 (т.е. исполняемая программа или команда оболочки).

0
ответ дан 23 October 2019 в 11:35

Другие вопросы по тегам:

Похожие вопросы: