14 KiB
title | localeTitle |
---|---|
The Command Prompt | O prompt de comando |
O prompt de comando
Como uma das Interfaces de usuário (UI) mais antigas, o prompt de comando (também conhecido como shell , terminal , console , tty ) foi implementado de várias maneiras.
Isso levou algumas palavras a serem usadas de forma intercambiável em conversas modernas que na verdade têm significados ligeiramente diferentes.
Índice
- Uma história muito curta
- Hoje
- A concha
- BATER
- Conseguindo ajuda
- O prompt
- Obtendo Raiz
- entrar
- sudo
- su
- Caminhos Relativos e Absolutos
- Relativo
- Absoluto
- Opções de Comando
- Comandos de Encadeamento
- Trabalhos em segundo plano
Uma história muito curta
No século 19 foi o telégrafo . Isso permitiu que duas pessoas trocassem mensagens codificadas por longas distâncias. Mais tarde, os avanços tecnológicos levaram à máquina de teletipo (tty), onde a pessoa que recebeu a mensagem foi substituída por uma espécie de impressora.
Ao mesmo tempo, os primeiros computadores, como o ENIAC, eram programados com algum tipo de hardware, como switches, dials ou patch cables. À medida que os computadores avançavam, era necessário um melhor Input / Output (IO), e assim as máquinas de teletipo comumente disponíveis eram convertidas para uso.
Porque os tty's eram grandes peças de mobília por conta própria, e ganharam o nome console por suas semelhanças com outros móveis de chão, como televisores de console. Como um ponto final eletrônico para um mainframe, esses dispositivos também eram chamados de terminais .
As impressoras TTY foram eventualmente substituídas por telas CRT (Cathode Ray Tube), que também eram usadas em televisores antes que o LCD e o plasma estivessem disponíveis. Curiosamente, os computadores Linux modernos ainda podem ser controlados usando uma máquina tty!
Clique na imagem abaixo para ir para um pequeno vídeo do Youtube.
Hoje
Hoje, os usuários de Linux e Unix ainda usam os mesmos termos, mas com pequenas diferenças. Terminais reais e virtuais estão disponíveis, e terminais virtuais podem ser acessados usando Alt + Ctrl + [F1-F12] .
Em Graphical User Environments (GUI), os usuários podem acessar o prompt de comando usando um emulador de terminal , que fornece os recursos de um tty, mas dentro de uma janela. Existem muitos emuladores de terminal disponíveis para usuários do Linux, como xterm , kterm e rxvt .
Os disponíveis dependerão de qual distribuição do Linux (distro, para abreviar) você está usando e seus padrões. Verifique seu gerenciador de pacotes para instalar outros. Usuários do Windows podem usar o PuTTY ou outros utilitários para se conectarem a um sistema Linux.
A concha
Shell s são programas que interpretam comandos.
Há um número deles, como B ourne A, ganho SH ell (BASH), C Shell (csh / tcsh) e Z SHell (zsh).
BATER
O shell padrão mais comum no Linux é o BASH, mas cada usuário pode alternar temporária ou permanentemente para qualquer outro shell disponível. O shell é totalmente programável por script, o que significa que conceitos de programação podem ser combinados com utilitários de shell e de sistema para criar funções mais complicadas.
Os comandos inseridos em um prompt de comando podem ser incorporados ao shell, como cd , exit ou export .
Eles também podem vir de programas externos e, no caso da maioria das distribuições Linux, são fornecidos pelas ferramentas do Gnu .
Veja abaixo os comandos mais comuns.
| Comando | Uso | | -------- | ----------------------------------------- | | cd
| mudar o diretório atual | | ls
| lista de arquivos no diretório atual | | mv
| mover arquivos e diretórios | | man
| documentação de comando aberto | | mkdir
| faça um diretório | | rmdir
| excluir um diretor | | touch
| crie um arquivo vazio | | rm
| remova arquivos | | ln
| criar links para arquivos e diretórios | | chown
| alterar a propriedade de arquivos e diretórios | | chmod
| alterar permissões | | find
| localizar arquivos | | cat
| grava arquivos na saída padrão | | less
| permite rolagem de entrada padrão | | grep
| busca por correspondências em texto simples | | diff
| mostre diferenças entre arquivos | | passwd
| mude sua senha |
Conseguindo ajuda
A ajuda imediata está disponível para comandos em um ou mais lugares.
Adicione --help
após o comando.
Isso imprime informações de uso para o comando.
Sua saída é semelhante ao comando man
, mas man
é usado antes do comando para o qual você deseja o manual.
O comando info
é a terceira opção de ajuda e é usado como o man
.
ls --help
man ls
info ls
O prompt
O prompt, que é o bit de texto no shell à esquerda do cursor, pode ser alterado para mostrar seu status atual, como o diretório em que você está atualmente, em qual usuário você está logado, o nome do seu computador e o que privilégios que você tem .
Esse último é importante reconhecer. Geralmente o último caractere no prompt, você verá um $
, que indica os privilégios normais do usuário.
Se você tiver privilégios de root , que pertencem ao administrador do sistema, normalmente verá um #
como último caractere. Ao navegar em fóruns e obter ajuda on-line, os comandos que você deve digitar geralmente serão exibidos com esse caractere.
Você não precisa digitar!
Por exemplo:
$ ls -l
significa que você digita ls -l
em um prompt normal.
# apt-get install node
significa que você digita o apt-get install node
usando privilégios de administrador. Como você eleva seus privilégios depende da sua distribuição Linux.
Obtendo Raiz
entrar
Fazer o login como root é uma péssima ideia . É por isso que algumas versões do Linux desabilitam a capacidade dos usuários de fazer o log dessa maneira. Esses usuários são encorajados a usar o próximo método, sudo
, dentro de sua própria conta de usuário.
Se você precisar usar um console raiz, esteja ciente de seu poder. Você não será avisado ou solicitado a confirmar a maioria das tarefas, mesmo que um erro de digitação simples signifique excluir algo importante.
sudo
Adicione "sudo" antes de um comando para mudar para S uper U ser e DO (SUDO). É assim que o Ubuntu e seus derivados são configurados para permitir acesso de administrador, e é dado por comando.
Você não recebe um shell de root e o próximo comando que você digitar não terá privilégios elevados, a menos que você use o sudo
novamente.
sudo apt-get update
Exceto pelo primeiro usuário criado em certas distros, os usuários precisam ser adicionados a uma lista especial (encontrada em /etc/sudoers
) para usar o sudo.
Isso é feito com o comando visudo
.
Você nunca deve editar o arquivo sudoers
com um editor de texto regular!
visudo
garante que você não se tranque do seu próprio sistema.
su
su
, como o sudo
, permite que você mude para outro usuário, exceto que, por padrão, você receberá outro prompt como o usuário para o qual você alternou.
Por si próprio, o su
levará para um prompt root, mas com as variáveis de ambiente do usuário atual, como $HOME
para sua pasta pessoal, e $PATH
para o caminho do sistema.
Isso pode levar a resultados inesperados e, se você quiser usar su
para alternar para outro usuário, adicione um hífen após o comando:
su -
Isso mudará você totalmente para um prompt de root.
Um nome de usuário pode ser adicionado ao comando para alternar para esse usuário, mas exigirá a senha desse usuário.
sudo
pode ser usado em combinação com su
para permitir que um administrador mude para qualquer usuário.
myUser@linux $ su - otherUsername
Password: (typed my password)
su: Authentication failure
myUser@linux $ sudo su - otherUsername
Password: (typed my password)
otherUsername@Linux $
Caminhos Relativos e Absolutos
Ao usar um comando em um arquivo, como copiar ou excluir, você pode consultar o arquivo de duas maneiras.
Relativo
Localização do arquivo em relação ao diretório atual.
Existem dois operadores de caminho relativos no shell .
e ..
O primeiro .
significa o diretório atual, então cat file.txt
e cat ./file.txt
são a mesma coisa se file.txt estiver no diretório atual.
O outro é ..
e significa um diretório para cima na árvore.
Então, se você está em /home/user/projects/project-a
e emite o comando cd ..
você mudará para /home/user/projects
.
Se o diretório de projetos tiver subdiretórios chamados project-a
, project-b
, project-c
e você estivesse no diretório project-a
, você poderia alternar para project-b
usando cd ../project-b
.
Há também uma environment variable
no shell chamada $HOME
que aponta para o seu diretório pessoal.
Você pode usar isso no BASH usando um caractere til ~
.
O shell substitui o til para você quando você aperta enter, então, por exemplo, você pode mudar para sua própria pasta pessoal usando cd ~
.
Absoluto
As localizações dos arquivos são o caminho completo da raiz do sistema de arquivos e sempre têm uma barra inicial.
Por exemplo, cd /home/quincy/Desktop
irá para o diretório desktop do Quincy, independentemente do caminho atual ou do usuário logado.
Opções de Comando
A maioria dos comandos shell segue a mesma sintaxe, que é o arquivo de opções de comando .
ls -l *.txt
Onde
ls
fornece uma lista de arquivos e diretórios,-l
muda a saída dels
para uma lista longa,- e
*.txt
restringe a lista a arquivos terminados em.txt
.
Cada comando tem opções diferentes e várias opções podem ser listadas juntas, como no exemplo tar -cvf
na próxima seção.
Comandos individuais podem ser conectados juntos em uma cadeia, onde a saída de um comando se torna a entrada para outro comando.
Isso é feito com o |
personagem, muitas vezes chamado de pipe ou bar . Este não é um I maiúsculo ou minúsculo L, nem é o número 1. Nos teclados dos EUA, ele é encontrado em uma das teclas perto de Enter .
No exemplo a seguir, usarei 2 comandos.
O primeiro, cat
, é curto para concatenar, e pode ser usado para colocar o conteúdo de um arquivo no final de outro (concatenação!). Ao usá-lo com apenas um arquivo, ele grava o conteúdo no terminal.
O segundo comando, grep
, é um programa que produz texto encontrado com base em alguma entrada e um padrão de busca. O padrão de pesquisa pode ser um texto simples ou uma expressão regular (regex) para pesquisas mais avançadas.
cat index.html | grep img
Existem várias maneiras de fazer isso, mas isso gerará todas as linhas em index.html que contenham img
no terminal. Este exemplo usa apenas um |
, mas você não está limitado a isso.
Comandos de Encadeamento
Enquanto o operador de &
comercial único &
é um operador de controle de trabalho na BASH (próxima seção), o duplo comercial tem outro significado. É lógico AND , e você o usa entre dois comandos para que o segundo comando seja executado somente se o primeiro sair com êxito (sem erro).
O exemplo a seguir mostra quantos usuários Debian e Ubuntu atualizam sua lista de softwares e, em seguida, executam uma atualização do sistema.
sudo apt-get update && sudo apt-get dist-upgrade
Outra opção é o tubo duplo ||
, o que significa OR lógica. Você o usaria quando quiser executar um comando somente quando o primeiro sair com um erro.
A seguir, você criará um arquivo chamado project.tar
na área de trabalho do usuário a partir dos arquivos em um diretório de projeto e, se isso falhar, ecoará uma mensagem.
tar -cvf /home/user/Desktop/project.tar /home/user/project/* || echo "archive failed"
Trabalhos em segundo plano
Quando você executa um comando em um terminal, o terminal fica ocupado até que o comando seja concluído e nenhum outro comando possa ser executado. Existe um sistema de controle de tarefas no Linux que permite suspender os comandos em execução, retomar os comandos suspensos em segundo plano e retomar os comandos suspensos no primeiro plano.
Isso é útil para scripts de execução longa ou quando você precisa enviar algo para o segundo plano para que o terminal possa ser usado para outras coisas.
o suspender um programa que está sendo executado no terminal use a combinação de teclas Ctrl + Z.
Você retornará ao seu prompt normal e o comando parecerá ter parado. Não tem, mas só foi suspenso. Ainda é visível na lista de jobs
usando o comando jobs
para listar todos os jobs atualmente rastreados. Eu fiz o man ls
para obter uma página de manual e, em seguida, suspendi-lo.
Quando digito jobs
, recebo a seguinte saída:
$ jobs
[1] + suspended man ls
A partir daqui, posso deixá-lo retomar em segundo plano, digitando bg %1
onde o 1
é o número do trabalho encontrado nos colchetes.
Eu posso trazê-lo de volta para o primeiro plano digitando fg %1
.