Comandos são ordens que passamos ao sistema operacional para executar uma
determinada tarefa.
Cada comando tem uma função específica, devemos saber a função de cada comando
e escolher o mais adequado para fazer o que desejamos, por exemplo:
-
ls
- Mostra arquivos de diretórios
-
cd
- Para mudar de diretório
Este guia tem uma lista de vários comandos organizados por categoria com a
explicação sobre o seu funcionamento e as opções aceitas (incluindo alguns
exemplos).
É sempre usado um espaço depois do comando para separá-lo de uma opção ou
parâmetro que será passado para o processamento. Um comando pode receber
opções e parâmetros:
- opções
- As opções são usadas para controlar como o comando será executado, por
exemplo, para fazer uma listagem mostrando o dono, grupo, tamanho dos
arquivos você deve digitar ls -l.
Opções podem ser passadas ao comando através de um "-" ou
"--":
- -
- Opção identificada por uma letra. Podem ser usadas mais de uma opção com um
único hífen. O comando ls -l -a é a mesma coisa de ls
-la
- --
- Opção identificada por um nome. Também chamado de opção extensa. O comando
ls --all é equivalente a ls -a.
Pode ser usado tanto "-" como "--", mas há casos em que
somente "-" ou "--" esta disponível.
- parâmetros
- Um parâmetro identifica o caminho, origem, destino, entrada padrão ou
saída padrão que será passada ao comando.
Se você digitar: ls /usr/share/doc/copyright,
/usr/share/doc/copyright
será o parâmetro passado ao comando
ls
, neste caso queremos que ele liste os arquivos do diretório
/usr/share/doc/copyright.
É normal errar o nome de comandos, mas não se preocupe, quando isto acontecer o
sistema mostrará a mensagem command not found (comando não
encontrado) e voltará ao aviso de comando. As mensagens de erro não fazem
nenhum mal ao seu sistema, somente dizem que algo deu errado para que você
possa corrigir e entender o que aconteceu. No GNU/Linux
, você tem
a possibilidade de criar comandos personalizados usando outros comandos mais
simples (isto será visto mais adiante). Os comandos se encaixam em duas
categorias: Comandos Internos e Comandos Externos.
Por exemplo:
"ls -la /usr/share/doc",
ls é
o comando,
-la é a opção passada ao comando, e
/usr/share/doc
é o diretório passado como parâmetro
ao comando
ls.
2.5.1 Comandos Internos
São comandos que estão localizados dentro do interpretador de comandos
(normalmente o
Bash
) e não no disco. Eles são carregados na
memória RAM do computador junto com o interpretador de comandos.
Quando executa um comando, o interpretador de comandos verifica primeiro se ele
é um
Comando Interno caso não seja é verificado se é um
Comando
Externo.
Exemplos de comandos internos são:
cd, exit, echo, bg, fg, source,
help
2.6 Comandos Externos
São comandos que estão localizados no disco. Os comandos são procurados no
disco usando o ordem do
PATH e executados assim que encontrados.
2.7 Aviso de comando (Prompt)
Aviso de comando (ou Prompt), é a linha mostrada na tela para
digitação de
comandos que serão passados ao
interpretador de comandos para
sua execução.
A posição onde o comando será digitado é marcado um "traço" piscante
na tela chamado de
cursor. Tanto em shells texto como em gráficos é
necessário o uso do cursor para sabermos onde iniciar a digitação de textos e
nos orientarmos quanto a posição na tela.
O aviso de comando do usuário
root é identificado por uma
"#" (tralha), e o aviso de comando de usuários é identificado pelo
símbolo "$". Isto é padrão em sistemas
UNIX
.
Você pode retornar comandos já digitados pressionando as teclas
Seta para
cima /
Seta para baixo.
A tela pode ser rolada para baixo ou para cima segurando a tecla
SHIFT e pressionando
PGUP ou
PGDOWN.
Isto é útil para ver textos que rolaram rapidamente para cima.
Abaixo algumas dicas sobre a edição da linha de comandos (não é necessário se
preocupar em decora-los):
-
Pressione a tecla Back Space ("<--")
para apagar um caracter à esquerda do cursor.
-
Pressione a tecla Del para apagar o caracter acima do cursor.
-
Pressione CTRL+A para mover o cursor para o inicio da
linha de comandos.
-
Pressione CTRL+E para mover o cursor para o fim da
linha de comandos.
-
Pressione CTRL+U para apagar o que estiver à esquerda
do cursor. O conteúdo apagado é copiado para uso com
CTRL+y.
-
Pressione CTRL+K para apagar o que estiver à direita
do cursor. O conteúdo apagado é copiado para uso com
CTRL+y.
-
Pressione CTRL+L para limpar a tela e manter o texto
que estiver sendo digitado na linha de comando (parecido com o comando
clear
).
-
Pressione CTRL+Y para colocar o texto que foi apagado
na posição atual do cursor.
2.8 Interpretador de comandos
Também conhecido como "shell". É o programa responsável em
interpretar as instruções enviadas pelo usuário e seus programas ao sistema
operacional (o kernel). Ele que executa comandos lidos do dispositivo de
entrada padrão (teclado) ou de um arquivo executável. É a principal ligação
entre o usuário, os programas e o kernel. O
GNU/Linux
possui
diversos tipos de interpretadores de comandos, entre eles posso destacar o
bash, ash, csh, tcsh, sh,
etc. Entre eles o mais usado é o
bash
. O interpretador de comandos do DOS, por exemplo, é o
command.com
.
Os comandos podem ser enviados de duas maneiras para o interpretador:
interativa e
não-interativa:
- Interativa
- Os comandos são digitados no aviso de comando e passados ao interpretador de
comandos um a um. Neste modo, o computador depende do usuário para executar
uma tarefa, ou próximo comando.
- Não-interativa
- São usados arquivos de comandos criados pelo usuário (scripts) para o
computador executar os comandos na ordem encontrada no arquivo. Neste modo, o
computador executa os comandos do arquivo um por um e dependendo do término do
comando, o script pode checar qual será o próximo comando que será executado e
dar continuidade ao processamento.
Este sistema é útil quando temos que digitar por várias vezes seguidas um mesmo
comando ou para compilar algum programa complexo.
O shell
Bash
possui ainda outra característica interessante: A
completação dos nomes. Isto é feito pressionando-se a tecla
TAB.
Por exemplo, se digitar "ls tes" e pressionar <tab>, o
Bash
localizará todos os arquivos que iniciam com "tes"
e completará o restante do nome. Caso a completação de nomes encontre mais do
que uma expressão que satisfaça a pesquisa, ou nenhuma, é emitido um beep. Se
você apertar novamente a tecla TAB imediatamente depois do beep, o
interpretador de comandos irá listar as diversas possibilidades que satisfazem
a pesquisa, para que você possa escolher a que lhe interessa. A completação de
nomes funciona sem problemas para comandos internos.
Exemplo:
ech (pressione
TAB).
ls
/vm(pressione
TAB)
2.9 Terminal Virtual (console)
Terminal (ou console) é o teclado e tela conectados em seu computador. O
GNU/Linux
faz uso de sua característica
multi-usuária
usando os "terminais virtuais". Um terminal virtual é uma segunda
seção de trabalho completamente independente de outras, que pode ser acessada
no computador local ou remotamente via
telnet, rsh, rlogin,
etc.
No
GNU/Linux
, em modo texto, você pode acessar outros terminais
virtuais segurando a tecla
ALT e pressionando
F1 a
F6. Cada tecla de função corresponde a um número de terminal do 1 ao 6
(o sétimo é usado por padrão pelo ambiente gráfico X). O
GNU/Linux
possui mais de 63 terminais virtuais, mas apenas 6 estão
disponíveis inicialmente por motivos de economia de memória RAM .
Se estiver usando o modo gráfico, você deve segurar
CTRL+
ALT enquanto pressiona uma tela de <F1> a <F6>. Para
voltar ao modo gráfico, pressione
CTRL+
ALT+
<F7>.
Um exemplo prático: Se você estiver usando o sistema no Terminal 1 com o nome
"joao" e desejar entrar como "root" para instalar algum
programa, segure
ALT enquanto pressiona <F2> para abrir o
segundo terminal virtual e faça o login como "root". Será aberta uma
nova seção para o usuário "root" e você poderá retornar a hora que
quiser para o primeiro terminal pressionando
ALT+<F1>.
2.10 Login
Login é a entrada no sistema quando você digita seu
nome e
senha.
2.11 Logout
Logout é a saída do sistema. A saída do sistema é feita pelos comandos
logout
,
exit
,
CTRL+
D, ou
quando o sistema é reiniciado ou desligado.
2.12 Curingas
Curingas (ou referência global) é um recurso usado para especificar um ou mais
arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que
você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4
tipos de curingas no
GNU/Linux
:
-
"*" - Faz referência a um nome completo/restante de um
arquivo/diretório.
-
"?" - Faz referência a uma letra naquela posição.
-
[padrão] - Faz referência a uma faixa de caracteres de um
arquivo/diretório. Padrão pode ser:
-
[a-z][0-9] - Faz referência a caracteres de a até
z seguido de um caracter de 0 até 9.
-
[a,z][1,0] - Faz a referência aos caracteres a e
z seguido de um caracter 1 ou 0 naquela
posição.
-
[a-z,1,0] - Faz referência a intervalo de caracteres de
a até z ou 1 ou 0 naquela
posição.
A procura de caracteres é "Case Sensitive" assim se você deseja que
sejam localizados todos os caracteres alfabéticos você deve usar
[a-zA-Z].
Caso a expressão seja precedida por um ^, faz referência a
qualquer caracter exceto o da expressão. Por exemplo [^abc] faz
referência a qualquer caracter exceto a, b e
c.
-
{padrões} - Expande e gera strings para pesquisa de padrões de um
arquivo/diretório.
-
X{ab,01} - Faz referência a seqüencia de caracteres
Xab ou X01
-
X{a-z,10} Faz referencia a seqüencia de caracteres
Xa-z e X10.
O que diferencia este método de expansão dos demais é que a existência do
arquivo/diretório é opcional para geração do resultado. Isto é útil para a
criação de diretórios. Lembrando que os 4 tipos de curingas ("*",
"?", "[]", "{}") podem ser usados juntos. Para
entender melhor vamos a prática:
Vamos dizer que tenha 5 arquivo no diretório
/usr/teste
:
teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new
.
Caso deseje listar
todos os arquivos do diretório
/usr/teste
você pode usar o coringa "*" para especificar
todos os arquivos do diretório:
cd /usr/teste e
ls * ou
ls /usr/teste/*.
Não tem muito sentido usar o comando
ls
com "*" porque
todos os arquivos serão listados se o
ls
for usado sem nenhum
Coringa.
Agora para listar todos os arquivos
teste1.txt, teste2.txt,
teste3.txt
com excessão de
teste4.new
,
teste5.new
, podemos usar inicialmente 3 métodos:
Usando o comando ls *.txt que pega todos os arquivos que começam
com qualquer nome e terminam com .txt
.
Agora para listar somente
teste4.new
e
teste5.new
podemos usar os seguintes métodos:
Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto
de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um
arquivo de uma só vez. O uso de curingas será útil ao copiar arquivos, apagar,
mover, renomear, e nas mais diversas partes do sistema. Alias esta é uma
característica do
GNU/Linux
: permitir que a mesma coisa possa ser
feita com liberdade de várias maneiras diferentes.
Usando o comando ls teste?.txt, que pega todos os arquivos que
começam com o nome teste
, tenham qualquer caracter no lugar do
coringa ? e terminem com .txt
. Com o exemplo acima
teste*.txt também faria a mesma coisa, mas se também tivéssemos um
arquivo chamado teste10.txt
este também seria listado.
Usando o comando ls teste[1-3].txt, que pega todos os arquivos que
começam com o nome teste
, tenham qualquer caracter entre o número
1-3 no lugar da 6a letra e terminem com .txt
. Neste caso se obtém
uma filtragem mais exata, pois o coringa ? especifica qualquer
caracter naquela posição e [] especifica números, letras ou intervalo que será
usado.
ls *.new que lista todos os arquivos que terminam com
.new
ls teste?.new que lista todos os arquivos que começam com
teste
, contenham qualquer caracter na posição do coringa
? e terminem com .new
.
ls teste[4,5].* que lista todos os arquivos que começam com
teste
contenham números de 4 e 5 naquela posição e terminem com
qualquer extensão.
Fonte: Foca GNU/Linux