
В Windows, когда я запускаю "tasklist", командная строка возвращает список процессов, я думал, что это встроенная функция, но это был просто исполняемый файл в каталоге System32. Теперь я хочу спросить, является ли команда 'ps' в Linux также исполняемым файлом или встроенной командой самого терминала Bash.
еще один вопрос: SSH — это всего лишь терминал Bash? (Но, конечно, с некоторыми расширенными функциями, например, через сеть)
решение1
Чтобы вывести список всех встроенных команд:
compgen -b
Чтобы получить информацию об одной команде, вы можете использовать type
команду. Например:
type -a cd
cd is a shell builtin
или (проверьте):
compgen -b | grep cd
cd
Пример 2:
compgen -b | grep ssh
Ничего не возвращает, ssh — внешняя команда.
Больше информации :
- Bash (оболочка Unix)
- Введите
man bash
с терминала (Подробная документация).
решение2
Я отвечу на первую часть. Сначала встроенная оболочка:
$ help command
command: command [-pVv] command [arg ...]
Execute a simple command or display information about commands.
Runs COMMAND with ARGS suppressing shell function lookup, or display
information about the specified COMMANDs. Can be used to invoke commands
on disk when a function with the same name exists.
Options:
-p use a default value for PATH that is guaranteed to find all of
the standard utilities
-v print a description of COMMAND similar to the `type' builtin
-V print a more verbose description of each COMMAND
Exit Status:
Returns exit status of COMMAND, or failure if COMMAND is not found.
Далее воспользуйтесь command
встроенной функцией для проверки ps
.
$ command -V ps
ps is hashed (/bin/ps)
Таким образом, ps
это его собственный двоичный файл.
решение3
Ну, ps
это автономный бинарный файл. Попробуйте which cmd
или , whereis cmd
чтобы найти его в любом 'cmd'. Вы также можете найти .exe-порты для таких команд unix/linux для windows.
SSH открывает текстовый канал связи (виртуальный терминал) между вами и удаленной машиной. «bash» — одна из наиболее используемых оболочек, но есть и другие, такие как tcsh
, csh
, ksh
, и т. д. Так что, говоря простыми словами, SSH — это не просто терминал bash.