
No windows quando executo a "lista de tarefas", o prompt de comando retorna a lista de processos, pensei que fosse uma função embutida, mas era apenas um executável no diretório System32. Agora quero perguntar se o comando 'ps' no Linux também é um executável ou um comando integrado do próprio terminal Bash.
outra pergunta: o SSH é apenas um terminal Bash? (Mas é claro com algum recurso avançado, como pela rede)
Responder1
Para listar todos os comandos integrados:
compgen -b
Para obter informações sobre um único comando, você pode usar type
command. por exemplo:
type -a cd
cd is a shell builtin
ou (confira):
compgen -b | grep cd
cd
Exemplo 2:
compgen -b | grep ssh
Não retorne nada, ssh é um comando externo.
Mais Informações :
- Bash (shell Unix)
- Digite
man bash
no terminal (uma documentação detalhada).
Responder2
Vou responder a primeira parte. Primeiro, um shell integrado:
$ 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.
Em seguida, use o command
builtin para fazer check-out ps
.
$ command -V ps
ps is hashed (/bin/ps)
Portanto, ps
é seu próprio binário.
Responder3
Bem, ps
é um binário independente. Tente which cmd
ou whereis cmd
descubra isso em qualquer 'cmd'. Você também pode encontrar portas .exe para esses comandos unix/linux para Windows.
SSH abre um canal de comunicação baseado em texto (terminal virtual) entre você e uma máquina remota. 'bash' é um dos shells mais usados, mas também existem outros como tcsh
, csh
, ksh
, etc. Então, em palavras simples, SSH não é apenas um terminal bash.