Consultando
manul:
man “nome
do comando”
Ex: man tar
ou: Finaliza a consulta ao manual e retorna ao Shell.
Variaveis
de ambiente:
PATH – Especifica
os commandos disponiveis para um determinado usuário.
HOME – Contém o
nome do diretório de trabalho original do usuário e sua posição no /home/.
LOGNAME – Nome e
identificação do usuário no processo de autenticação de login.
TERM – Qual tipo
de terminal utilizado pelo usuário.
Finalizando
Sessão:
Crtl + d (se
estiver habilitado);
Exit
;
Logout
;
Ambientes
de usuários:
Os dados de login do usuário são armazenados em arquivos no
diretório /etc, nos arquivos:
/etc/passwd:
Informações referentes aos usuários. Dependendo da variação do Linux, poderá
estar em /etc/shadown.
/etc/group:
Informações referentes aos grupos de usuários e seus membros ativos.
O usuário uid 0 é chamado de root o “superusuário”
, e os gid 0 fazem parte do
grupo de Administradores.
Cada usuário possui cadastrado no sistema possui um diretório
especifico ou diretório pessoal, localizado no diretório /home. Apenas o
usuário root tem seu diretório pessoal criado na raiz do disco.
Comando who:
Exibe informações sobre os usuários que estão logados no sistema.
$who am i – Exibe o
usuário logado e a hora que efetou o login e de qual máquina esta logado.
$whoami – Exibe
apenas o usuário logado.
Comando
write: Envia mensagens remotas para usuários logados ao sistema.
$write root
Oi root, como vai?
Crtl + d
$
Comando
date: exibe data e hora.
$date
Seg 09 Jun 12:35:20
Para
alterar a data:
mm: mês
dd: dia
hh: hora
mm: minuto
yyyy: ano
$ date mmddhhmmyyyy
Comando
passdw: tem como função alterar senhas de usuários. Cada usuário só
poderá alterar sua própria senha.
$passwd
Comando lp: Comando para impressão de arquivos.
$ lp manual.pdf
Comando
tty: Informa qual a porta de comunicação do terminal conectado.
$tty
Comando
uname: Informa sobre o sistema logado.
Parâmetros:
-s: Nome do sistema.
-r: Data.
-v: Versão.
-a: Todas versões acima.
$ uname –a
Comando
cal: Semelhante ao date, mas exibe apenas calendário do mês
corrente.
$cal
Comando cp: Copiar
arquivos de um lugar para o outro.
$co fotos.gzip /home/usuário/manual
$cp ../docs.zip
Comando
mount: Utilizado para montar dispositivos como Cd-Rom, disquetes,
Cd-RW, partições do Windows.
Sintax: mount [local de montagem] [dispositivos a ser montado]
$mount /mnt/hda1 (monta a
partição do Windows)
$mount –t vfta /dev/fd0
/mnt/floppy
Comando ln:
Comando usado para criar atalhos ou links simbólicos.
$ln –s /mnt/hda1 windows
Esta criação criará um link simbólico (atalho) para o ponto
de montagem da partição windows.
Arquivos e
Diretorios:
Arquivos
especiais – São arquivos associados aos dispositivos físicos, tais como
terminais, impressoras, drivers e recursos de rede. Eles ficam armazenado no
diretório /dev e não devem ser removidos se você não souber o que está fazendo
Comando pwd
– Informa o caminho absoluto do diretório de trabalho atual.
$pwd
Comando cd
– Utilizado para mover de um diretório para o outro.
$cd /mnt
Comando ls –
Exibe uma lista com o conteúdo de um diretório.
$ls –F (usado para acrescentar / em arquivos-diretorios e *
em arquivos executáveis).
$ls –a (usado para listar inclusive os arquivos ocultos).
$ls –l (usado para listar com detalhes as posições dos
arquivos e diretórios).
Comando
mkdir – Usado para criar diretórios.
$ mkdir “nome do diretório”
Comando
rmdir – usado para remover diretórios vazios.
$rmdir “nome do diretório”
Os
principais diretórios do sistema operacional Linux são:
/roo – Contém os arquivos de configuração do superusuário.
/bin – Normalmente é um link simbólico para /urs/bin. Contém
a maioria dos comando do Linux ou links para comando Linux.
/lib – Em algumas distribuições pode ser apenas um link
simbólico para /usr/lib. Ë onde ficam as bibliotecas do sistema.
/usr – Contém a maioria dos arquivos e diretórios de trabalho
do Linux e outros comandos de sistema, bem como configurações pessoais.
/usr/bin – É onde é arquivada a maioria dos comando de seção
1 linux: ls, cp, mv, ln, date, mail..
/usr/lib – Local onde são armazenados arquivos de bibliotecas
utilizados pelo sistema para suportar linguagens e aplicações especificas.
/var/spool/mail – A caixa postal do Linux. Contém um arquivo
para cada usuário que possui correspondência. A depender da distribuição, pode
ser um link simbólico de /usr/var/spool/mail ou /usr/spool/mail.
/user/man ou /usr/share/man
As páginas do manul on-line para as aplicações e comandos.
/usr/local/bin – armazena comandos executáveis desenvolvidos
pelo usuários do padrão Linux.
/etc – contém a maioria dos arquivos e comando de administração
relativos ao computador local.
/home ou /user ou /usr/users – Normalmente contem os
diretórios de login do sistema, ou seja, arquivos de diretórios pessoais de
todos os usuários.
/dev – armazena arquivos especiais (devices file) para
comunicação de periféricos ( como discos, placas, impressora, etc.).
/tmp e /var/tmp -
Utilizado pelo sistema, processos, de downloads e instalações de
aplicações para criação de arquivos temporários.
Manipulação
de Arquivos
Tipo de
arquivos
D: Diretório – localisa-se no início da linha de descrição do
arquivo.
drw------Pasta1
-: Ausência de permissão no arquivo ou diretório.
-ewx-r-----------x
l: arquivo de link simbólico.
n: arquivo especial de rede.
c: arquivo device caracter.
b: arquivo device bloco.
Permissões:
R: Read – Permissão para leitura.
w: Write – permissão para escrita.
X: eXecute – permissão para executar(arquivo, pasta ou
programa).
Ex: -rw-rw-rw
Onde o primeiro grupo de rw- são as permissões para
propietario do arquivo. O segundo grupo de rw- (da esquerda para direita)
pertence aos usuários do mesmo grupo do arquivo. Finalmente as permissões para
todos os usuários, no terceiro e ultimo grupo de rw-.
Verificar o
conteúdo de um arquivo com o comando a seguir:
head
more
pcat
cat
tail
pg
zcat
Copiar um
arquivo:
cp
ln
Alterar
nome de arquivo e/ ou mover para outro diretório com:
mv
Remover um
arquivo ou pasta:
rm (usar o argumento –rf para forçar a remoção)
Operação
minuciosa com arquivos, usando alguns comandos:
cut
split
od
paste
Realizar
comparação, diferenciação e identificação do conteudo de um arquivo atraves dos
commandos:
cmp
file
diff
Compactar e
descompactar arquivos:
gzip e gzip –d
pack e unpack
zip e unzip
Comando
cat: Cria, concatena ou lista o conteúdo de um arquivo.
$ cat > arqteste
Linha1 do arquivo
Linha2 do arquivo
Crtl + d
$
$cat capitulo1 capitulo2 capitulo3 > monografia4
(concatena os arquivos)
Comando
more: Exibe o conteúdo de um arquivo, paginando a visualização.
$ more relatório
...
More (20%)
Q ou q finaliza
< Enter > Muda de linha
< Space > muda de pagina
$
Comando pg:
semelhante ao anterior, mostra o conteúdo de um arquivo, porem de forma
paginada, utilizando recursos de movimentação.
$pg relatório
< conteúdo do relatório>
...
Opções de parâmetros:
+n : Indica a listagem a partir de n ( onde n é o número de linha).
:n Mostra a pagina n.
:+n Mostra a página referente à solicitação (+n) após a
pagina corrente.
:-n Exibe a pagina –n anterior a corrente.
:+nl Avança a página n linhas à frente da linha corrente.
:-nl Retorna a pagina n linhas antes da linha corrente.
:$ Vai para ultima pagina.
:q Encerra o comando.
Comando
head: Exibe as primeiras linhas de um arquivo.
$head Projeto_fac
< 10 primeiras linhas do arquivo projeto_fac>
Comando
tail: Visualiza as últimas linhas de um determinado arquivo.
Visualiza as ultimas linhas de um determinado arquivo.
$tail /var/squid/log/acess.log
< 10 ultimas linhas do arquivo access.log >
Comando
pcat e zcat: Esses comandos mostram o conteúdo de um arquivo que está
compactado pro pack e compress.
$pcat backup
Comando cp:
Utilizado para copiar arquivo de um local para outro.
Sintax:
cp [-i] arquivo [arquivo ..] destino
cp [-ir] diretório [diretório ... ] destino
Opções de parâmetros:
-i : O comando verifica e pede confirmação se o arquivo
destino já existe.
-r : Realiza cópia recursivamente no caso de a origem ser um
diretório.
$ cp relatório relatório_final
No exemplo acima, foi gerada uma cópia de relatório com o
nome de relatório_final. Se o relatório final não existe, o comando irá
cria-lo. Se o relatório_final já existir, o arquivo é sobescrito, sem prévio
aviso. Para que o sistema lhe confirme a ação, é necessário usar a opção –i.
No caso da origem ser múltiplos arquivos o destino tem que
ser obrigatoriamente um diretório.
Comando ln:
comando usado para criar atalhos ou links simbólicos ( como são
conhecidos no mundo Linux/Unix).
Sintaxe:
Ln [ -s] arquivo [arquivo ..]destino
$ ln pasta1 pasta2
No exemplo acima realizamos a criação do lnk da pasta1 com o
nome pasta2. Se a pasta2 já existir no sistema, o conteúdo anterior é perdido,
sem prévio aviso. A partir do momento da criação do link simbólico, o arquivo
pode ser acessado com qualquer um dos dois nomes.
A diferença entre um link comum e um link simbólico é que, no
comum, mesmo se o arquivo for removido, o outro continua existindo, e no
simbólico, o link esta vinculado a existência do original se o exemplo for
apagado, o link aponto para lugar nenhum.
Exemplo usando comando cp, mv e ln.
Comando mv:
Sua função é mover arquivos e diretórios.
Sintaxe:
mv [parâmetros] arquivo [destino]
root@bt:# mv [ -i] arquivo1 [arquivo2 ..] diretório1
[diretório2..] destino
O parâmetro –i solicita do comando confirmação se o arquivo
ou diretório destino já existe.
O comando possui duas funções, renomeia arquivos e move um ou
mais arquivos e/ou diretórios para um destino.
$mv flash.tar.gz /cursos
No exemplo movemos o arquivo flash.tar.gz para o diretório
cursos. Se a pasta não existir, uma mensagem de erro é apresentada na console;
usando o incremento –i, o comando irá informa-lo da existência ou não do
diretório. Assim como no comando cp, é necessário a opção –i para a notificação
(normalmente isso já é feito pelo administrador em um alias).
Comando rm:
para remover arquivos e diretórios.
Opções:
-i : Confirmação se o arquivo destino já existir.
-r : Remove progressivamente entre os subdiretórios.
-f : Força a remoção de uma arquivo ou diretório que não
tenha permissão de escrita. Evita mensagem de erro se o arquivo ou diretório
for inexistente.
$rm cartão.pdf
$rm –i plugin.tar
O diretório que esta sendo removido deve ter a permissão de
escrita (w).
Comando
past: Concatenação horizontal de arquivos. Esse comando faz com que
a saída em colunas, cada uma com o conteúdo de um dos arquivos.
$past nome.txt
$ past nome.txt telefone.txt
Comando
cut: recorta áreas selecionadas de um arquivo.
Opções:
-c x-y : determina intervalos x e y em caracteres.
-dx.
-f x,y : Determina quais são os campos x e y do arquivo.
$cut –c 1-28 Introducao
Selecionamos a posição 1 até a posição 28.
$cut –d: -f1,3 Bibliografia
Selecionamos a partir do campo 1 até o campo 3.
$cut –d: -f1-3 Dedicatoria
Selecionamos a seleção dos campo 1 e 3.
Comando
file:
Identifica o tipo de arquivo solicitado.
$file serial
Serial: ascii text
Comando
cmp: Compara arquivos.
$ cmp arquivo1 arquivo2
Se os arquivos são iguais, nada é mostrado, mas se eles
diferem, o programa mostra em que caractere ( se for um arquivo em ASCII) ou em
que byte (se for binário) está a diferença.
Comando
diff: Informa a diferença entre arquivos.
$diff cadastro1 cadastro2
Comando
pack: Comprime o conteúdo de um arquivo.
$pack cadastro
Após compactado recebe a extensão z.
Comando
unpack: Expande o conteúdo de um arquivo comprimido por pack.
$ unpack cadastro.z
Comando
compress: comprime o conteúdo de um arquivo.
$ compress
folha_pgto.tar
Arquivos compactados pro compress recebem a extensão .z.
Para descompactar uncompress.
$ uncompress folha_pgto.tar.z
Comando
zip: Comprime o conteúdo de um arquivo da emsma forma que o pkzip
do DOS, portanto e 100% compatível com estes, diferindo apenas algumas opções.
Opções:
-l : Exibe o conteúdo de um arquivo zip.
-r : Atua recursivamente pelo subdiretório.
-v : Exibe uma lista longa do conteúdo de um arquivo zip.
$ zip –r dir1
Comando
unzip: Descompacta o conteúdo de um arquivo compactado por zip.
Opções:
-l : Exibe o conteúdo de um arquivo zip.
-r : Atua recursivamente pelo subdiretório.
-v : Exibe uma lista longa do conteúdo de um arquivo zip.
$unzip dir1
Estes utilitários de compactação e descompactação (exceto o
compress) não estão disponíveis em qualquer Linux, sendo geralmente encontrados
no Unix.
Comando
gzip: Esse comando compacta e descompacta arquivos zipados que
geralmente estão prontos para pré-instalação.
Essa opção, acrescida do –d descompacta arquivos no formato
gzip.
$gzip –d programa.tar.gz
Para compactar, usa-se, de modo prático, a seguinte linha:
$gzip programa.gz
Permissões
de arquivos
Para cada arquivo, existem três classes de usuários:
Usuário: O dono do
arquivo.
Grupo: O Grupo ao
qual o arquivo pertence.
Outros: Outros
usuários do sistema.
Somente o dono do arquivo (ou o superusuario) pode alterar
essas informações. Para alterar o dono do arquivo, deve ser utilizado o comando
chown.
Para alterar o grupo de acesso a um arquivo, utiliza-se o comando chgrp.
Para cada nível de usuário, podem ser habilitados ou
desabilitados os seguintes níveis de acesso:
r : leitura
w : Gravação
x : Execução
Para alterar as permissões de arquivos, utiliza-se o comando chmod.
Comando
chown: Altera o dono do arquivo.
$chown root [nome do arquivo]
Somente o usuário dono do arquivo ou o superusuário podem
alterar quem o possui. No exemplo acima alteramos o dono do arquivo para root.
Comando
chgrp: Altera o grupo de acesso ao arquivo.
$chgpr [nome do grupo] [nome arquivo]
Comando
chmod: Altera as permissões nos arquivos.
$chmod 754 [nome_arquivo]
Modo
|
Usuário
|
Grupo
|
Outros
|
Rwxr-r--
|
rwx
|
r-x
|
r--
|
111
|
101
|
100
|
|
7
|
5
|
4
|
Usando representação simbólica
Classe:
u : Dono.
g : Grupo.
o : Outros.
a : Todos.
Operadores:
+ : Adiciona permissão.
- : Retira permissão.
= : Atribui permissão.
Permissões:
r : leitura
w : Gravação
x : Execução
Sintaxe:
$ chmod [u,g,o,a] [+,-,=] [r,w,x] arquivo
$chmod go-rw clientes
$chmod o+r clientes
Diretório
/etc
Configuração geral, os principais arquivos que compõem o /etc
são:
adjtime : Fator de correção
para o real time clock do seu computador.
confissue :
Contém a tela inicial que é mostrada durante o login em Modo Texto.
Algumas distribuições utilizam os arquivos issue
e issue.net.
csh.login :
Arquivo de configuração do interpretador de comandos tcsh.
disktab : Arquivo
descritor de mídias.
fdrpm : Floppy disk parameter table. Tabela que
descreve os formatos de disco a serem lidos pelo drive. Utilizado para ler os
antigos disquetes.
fstab : Descritor
de todos os sistemas de arquivos que podem ser motnados. Define os pontos de
montagem, modos de montagem e permissões.
gettydefs :
Esses arquivos contém definições de inicialização e finalização para cada
saída seriais utilizadas pelos terminais burros conectados a sua maquina Linux.
group : Arquivo que
abriga as definições de grupo.
inittab : Chama os
scripts de inicialização durante o boot do Linux. Ë o primeiro arquivo lido
pelo sistema.
id.so.conf
: Lista os caminhos para as bibliotecas compartilhadas (share
libraries) do sistema.
motd : A sigla mot
message of the day (mensagem do dia). Seu conteúdo é exibido após o login. Esse
arquivo é utilizado para mandar mensagens a todos usuários.
mtab : É um
arquivo de controle no qual o sistema grava as as informações sobre os sistemas
de arquivos atualmente montados.
passwd : Arquivos de
senhas e informações de login de cada usuário. Caso se use shadow password em seu sistema, as senhas
criptografadas estão no arquivos shadown.
profile : Arquivo que
inicializa as variáveis de ambiente de programas durante o login. Esses
arquivos abriga as configurações para todos os usuários.
securetty :
Lista os terminais (ttys) nos quais o root pode acessar o sistema.
shadown : contem as
senhas criptografadas relacionadas no arquivo passwd.
shells : Contém os
caminhso completos dos shells de login válido. Alguns programas consultam este
arquivo para saber se o usuário existe.
syslog.conf
: Principal arquivo de configuração do syslogd, que é o daemon
que armazena as mensagens do sistema.
ttytype : Dispositivo
de terminal para mapeamento-padrão do tipo de terminal. Configura os tipos de
terminal utilizados em cada linha serial.
Configuração
de rede – Arquivos normalizados pelo FHS
exports : esse
arquivo é usado para informar os diretórios que serão compartilhados na rede.
ftpusers : Lista os usuários autorizados a
fazer ftp em sua máquina caso algum servidor ftp esteja rodando.
gateways : Arquivo
utilizado pelo daemon routed para definição de roteamento.
host.conf :
Configura a ordem de procura dos nomes de maquinas. Normalmente ‘e
configurado para procurar no DNS e no BIND e no arquivo hosts.
hosts : Arquivo que
lista os hosts (maquinas conhecidas na rede). E usado como substituto mesmo em
paralelo com um servidor DNS.
hosts.allow
: Define os nomes das maquinas que podem se utilizar dos
servidores de rede servidos por esta maquina.
hosts.deny
: Contrapondo-se ao hosts.allow, esse arquivo lista todos os
computadores que estao bloqueados para os serviços dessa maquina.
hosts.equiv
: Listagem de maquinas e usuários que são confiáveis para rodar
r-comandos. O arquivo hosts.equiv permite ou proíbe maquinas e usuários de usar
os r-comandos (por exemplo, rlogin ou rcp) sem fornecer uma senha.
hosts.lpd :
Nome de maquinas que podem acessar o deamon de impressão lpd.
inetd.conf
: Descreve e configura os serviços que serão mantidos pelo
servidor INETD. São estes mesmos serviços que são permitidos ou bloqueados por
hosts.allow e hosts.deny.
networks : Lista nomes
de endereços de redes conhecidos e utilizados pelo comando routed.
printcap : Arquivo de
configuração de serviços de impressão. Sua impressora é configurada aqui.
protocols :
Esse arquivo é um arquivo ASCII, descrevendo os vários protocolos
Internet DARPA que estão disponíveis para o subsistema TCP/IP.
resolv.conf
: Arquivo que aponta para um ou mais servidores DNS.
rpc : Os serviços
RPC (Remote Procedure Calls) são a implementação de serviços no modelo
cliente-servidor para UNIX desenvolvidos pela Sun Microsystems. Os serviços RPC
são identificados por números, e o arquivo /rtc/rpc mapeia os nomes dos
servidores com os números dos programas.
services : Lista as
portas dos serviços de rede.
Interpretadores
de Comandos Shell
O sistema operacional Linux possui o Bourne Shell (sh), o
Korn Shell ( ksh) , o C-Shell (csh), o Bash e outros.
Variaveis Shell
Um nome que define um valor;
São inicializadas com NULL;
Algumas variáveis podem ser setadas pelo usuário.
São similares a uma variável algébrica, um nome com um valor
associado,
Setando variáveis no Shell
Ao criar variáveis, não utilize espaço em branco antes ou
depois do sinal de =. Ao utilizar espaços em branco, o Shell vai
interpretara-las como ativação de um comando.
Deve-se obedecer as seguintes regras para criação de
variáveis:
O nome da variável deve ser iniciado com letra.
O nome deve conter preferencialmente letras, dígitos
underscores ( _ ).
Exemplos:
#echo $meu_nome
#echo $outrodir /etc
#ls $outrodir
lista o conteúdo do diretório /etc.
Cada Shell possui duas áeras de dados:
Area local de dados – é a area utilizada por programas em sua
execução. Em um ambiente shell script, são as variaveis declaradas dentro do
programa.
Ambiente – outra area de memoria utilizada para armazenar
variaveis shell e seus respectivos valores.
Podemos utilizar os seguintes comando para alterar estas
areas:
set
unset
env
export (sh, ksh, kish)
setenv (csh, tcsh)
source (csh, tcsh0
Comando set - Born Shell
e Korn Shell
Informa nomes valores de todas as variaveis da area local de
dados e do ambiente.
$set meu_nome=’usuario1’
Comando
unset – Remove o valor de uma variavel e adiciona null. Existe tanto
no ksh quanto no csh.
$unset meu_nome
Comando env
– Informa nomes e valores de toas as variaveis Shell do
ambiente. Disponivel em todos os shells.
$env
Comando
export – Movimenta variaveis da area local de dados para o ambiente.
Disponivel apenas nos shells ksh e sh.
$export meu_nome
Comando
setenv - Permiti
visualizar valores e variaveis de area local de dados ou ambiente (normalmente
maiusculas).Multiplos valores são separados pelo “:“ (dois pontos).
$setenv LIBPATH /lib:/usr/local/lib:/usr/lib
Sem argumentos o comando se comporta equivalente ao env.
Comando
source – Salva no ambiente os dados que seriam apenas da area local de
dados de um script.
Para saber qual é o shel default do sistema que esta
utilizando:
$ cd bin/bash
$ cd bin/ksh
$ cd bin/sh
Para criar um arquivo com o comando cat digite o seguinte:
cat> teste.txt
Agora digite algum texto, qualquer texto; quando terminar,
pressione Ctrl-d numa linha vazia para finalizar a entrada. Veja como fica:
[usuario@spaceghost usuario]$ cat> teste.txt
isto é um simples teste de criação de arquivo
[usuario@spaceghost usuario]$
isto é um simples teste de criação de arquivo
[usuario@spaceghost usuario]$
[usuario@spaceghost usuario]$ cat> teste.txt
isto é um simples teste de criação de arquivo
[usuario@spaceghost usuario]$
isto é um simples teste de criação de arquivo
[usuario@spaceghost usuario]$
Programação
em Shell Script
O ash é um Shell mínimo, compatível com o bash, e por isso é
o mais simples e ao mesmo tempo o mais útil.
Hello World
Todo o Script Shell começa com uma primeira linha indicando
seu interpretador.
#!/bin/sh
Onde /bin/sh é o interpretador de comandos. O arquivo precisa
ter permissão +x para poder ser executado.
Após a primeira linha se quiser acrescentar comentários,
utilize #.
# Este é um comentário
Você pode implementar comandos que digitados no seu Shell,
tal como cd, ls ou o echo.
#!/bin/sh
# Este é um
comentário.
# Mais outro
comentário.
Cd /
ls
echo “OLA
MUNDO”
echo “Posso
também passar parâmetros \
em várias
linhas, se eu quiser que ele \
apareça em
várias linhas na console.”
# comando
termina aqui
Parâmetros Posicionais
Quando você
passa parâmetros na execução do Shell Script, como, por exemplo.
. teste.sh 4
O dobro de 4 e 8
O &&
executa o primeiro comando e executa o segundo se e somente se o retorno do
primeiro for 0 (ou seja, se ocorreu sem erros). O || é similar, mas executa o
segundo comando se e somente o retorno do primeiro foi não-zero (ou seja, se
houver erros). Ambos && e ||têm a mesma prioridade.
Exemplo:
[ -d /fd ] || mkdir /fd
O comando
acima verifica a existência do diretório /fd
com o comando [-d /fd], caso o
comando não exista o segundo comando o criará.
O comando if,
utilizado para controle de fluxo, tem a seguinte sintaxe:
Exemplo:
If [-d /fd]; then # se o diretório existe…
echo “Diretório /fd existe”
else
echo “Diretório /fd não existe”
fi # Termina a condição if.
While
O while,
condição de loop, tem a seguinte sintaxe:
Exemplo:
#!/bin/sh
MYCOUNTER=0
while
[ -d /fd ]; do
MYCOUNTER=’expr
$MYCOUNTER +1’
echo “Entrei no loop MYCOUNTER “
done
FOR
Existe também
o commando for (estilo foreach), que percorre uma lista executando certo
commando.
#!/bin/sh
for
a in 1 2 3; do # 2º for mais interno
for b in 1 2 3; do # 1o for mais interno
echo “$b”
done
done
Breack e Continue
Usados para
interromper o cursos normal de um for ou while.
Break [n]
Continue[n]
Exemplo:
For a in 1 2 3; do # 2o for mais interno
For a in 1 2 3; do # 1o for mais interno
Break 2 # sai do 2o mais interno
Done
Done
Case
Existe também
o case em Shell Script.
#!/bin/sh
case
$1 in
y|Y)
echo “Yes”;;
n|N) echo “No”;;
esac
Executando;
./teste.sh y
Funções
Você pode
também definir funções em Shell Script.
#!/bin/sh
dobro() {
return ‘expr $1 \2’
}
X=2dobro $x
y=$? # Aqui, $? E a saída de dobroEsta
Lendo a Entrada do Usuário
Read – este comando lê a entrada do usuário após execução
do shell.
Este comando
no meio de um Shell Script permitira um campo de texto para o usuário digitar
qualquer texto, que será salvo na variável $LINE.
read LINE
echo $Line
Execução de Comandos
Comandos intrínsecos do Shell versus Comandos do
Unix/Linux
cd,pwd,echo,ls,lp,pg
Comandos
Intrísecos, esses comandos não existem em arquivos do sistema operacional Unix
/ Linux; são sub-rotinas do programa Shell.
Comando whereis
Pesquisa a
lista de diretórios procurando por comandos.
$whereis vi
$whereis –b ls
Comando find
Pesquisa o
sistema de arquivos procurando arquivos que satisfaçam uma condição.
Ele é muito
lento, requer muita utilização de CPU e deve ter uma utilização criteriosa.
$find / -print
Opções uteis
do comando find:
-name arquivo: Especifica o nome do arquivo.
-user nome: Especifica o dono dos arquivos.
-group nome: Especifica o
grupo dos arquivos.
-size nome: Especifica o tamanho em blocos (512 bytes).
-type nome: Especifica o tipo do arquivo (f,d,c,b...).
-exec cmd{}: Especifica o comando a executar nos arquivos
localizados.
find
/ -name “* .bak” –exec rm{} \;
find
/ -name “*.old”-exec mv{} /bkp \;
Comando id
Informa a
identificação do usuario (user-id e group id)
$id
Ele informa o
número da identificação e nome do usuário, além do numero e nome do grupo do
usuário logado corretamente.
A variável
LOGNAME e o cmando whoami informando
a identificação inicial de login, enquanto que os comando do id e who ami informam a identificação do usuário corrente.
Comando su
Altera a
identificação do usuário (user-id)
$su usuario3
Quando o comando
e executado sem parâmetros, significa altarar a identificação para o usuário
root.
Comando newgrp
Altera a
identificação do grupo (group-id)
$newgrp desenv
Quando o
processo filho morre, mas o pai ainda não comunicou esse fato, o processo e chamado de zumbi. O processo-filho cujo pai
morre antes de sua conclusão e chamado de processo órfão.
Comando os
Apresenta
informações (status) sobre os processos.
$ps [ -e | -f | -l]
$ps
$ps –ef
Algumas opções
são:
-e: Apresenta informações sobre todos os processos do
sistema.
-f: Apresenta mais informações sobre os processos.
-l: Apresenta a lista mais completa de informações
sobre os processos.
Manipulação de Arquivos
A geração de
nomes de arquivos é uma característica do shell.
?: Iguala um único caractere exceto o primeiro
ponto.
[]: Define uma
classe de caracteres.
-: Utilizado parar definir um intervalo.
!: Utilizado para negar uma classe.
*: Iguala zero
ou mais caracteres, exceto o primeiro ponto.
Caractere ?
$echo ???
Iguala todos
os nomes de arquivos com três caracteres.
$echo abc?
Iguala todos
os nomes de arquivos com quatro caracteres iniciados com abc.
$echo ??a?
Iguala todos
os nomes de arquivos com cinco caracteres, com a letra a na terceira posição.
Redirecionamento de Entrada e Saida
Os arquivos
dispositivos de E/S considerados padrão de um sistema Unix são stdin, stdout e
stderr. Cada um deles tem um número associado como seu descritor.
Dispositivo (Saída Padrão, Entrada Padrão, Saída de
erros)
Arquivo (stdin, stdout, stderr)
Descritor (0,1,2)
Sempre que o
shell é startado, três arquivos são abertos automaticamente para o usuário.
Esses arquivos são chamados stdin, stdout, stderr.
O arquivo
stdin é o arquivo que o shell utiliza para ler entrada.
O arquivo
stdin é usualmente chamado de entrada padrão, possui o descritor 0 e usualmente
é associado ao teclado. Assim quando o shell necessita de uma entrada, ela e
digitada no teclado.
O arquivo
stdout é onde o shell realiza sua saída normal.
Redirecionamento de Entrada-Caractere <
$mail receba < arquivo
Redirecionamento de Saída-Caractere > e >>
$ls > arquivo
$date > >arquivo
Acrescenta a
saída do comando date a um arquivo.
Se uma linha
de comando contém um redirecionamento de saída (>) seguido de um nome de
arquivo, a saída padrão do comando será realizada nesse arquivo. Se o arquivo
não existir quando comando for ativado, o arquivo é automaticamente criado. Se
o arquivo já existir antes da ativação do comando, o conteúdo desse arquivo
será sobreposto.
Se o usuário
necessitar adicionar do comando a um arquivo já existente, deve utilizar o
simbolo >>. Esse símbolo também cria o arquivo se esta não existir. Não
deve haver espaço em branco entre os símbolos de >.
Redirecionamento de Saída de Erros – caracteres
2> e 2>>
Redirecionam a
saída padrão de erros (stdout) para outro arquivo.
$cp arquivo arq2 2> erros.log
Redireciona a
saída de erros do comando cp para o arquivo erros.log
$ pg arqx 2> > erros.log
Redireciona a
saída de erros do comando pg, adicionando os erros encontrados ao arquivo
erros.log.
$cat arqx 2> /dev/null
Redireciona a
saída de erros do comando cat ara o arquivo /dev/null (nulo).
Filtros
Comando CAT
Cria,
concatena e apresenta o conteúdo de um arquivo.
$cat arq1
arq2 > arq3
Concatena o
conteúdo de arq1 e arq2 e cria o arquivo arq3.
$cat arq4
+
Cria um arquivo com dados digitados no teclado.
Comando SORT
Este comando é
poderoso e flexível. As linhas de um arquivo ou campos do arquivo podem ser classificadas
de diversas maneiras.
Algumas opções
do comando SORT:
-r: Inverte o sentido da classificação.
-f: Iguala letras maiúsculas e minúsculas na
comparação.
-n: Indica que a comparação deve ser de valor numérico.
-u: Elimina as linhas com chaves duplicadas.
-tX: Indica que o caractere X é o delimitador de campos.
-m: Executa a intercalação de arquivos já
classificados.
+posi –posf: Indica a chave de classificação; posi é a posição
inicial e posf a posição inicial.
-o arq: Indica que arq será a saída do comando.
Classificação
crescente do campo código:
$sort +0.0 -0.5 cadastro
Classificação
inversa do campo nome:
$sort –r +0.5 -0.15 cadastro
Classificação
crescente do campo cep e também do campo nome:
$sort +0.20 -0.28 +0.5 -0.15 cadastro
Comando GREP
Pesquisa
padrão especifica em arquivo:
Exemplos:
$grep moshe /etc/passwd
$grep –v moshe /etc/passwd
$grep –n moshe /etc/passwd
Principais
opções:
-c: Imprime o número de linhas que possuem o padrão.
-n: imprime cada linhas com o seu número.
-v: Imprime todas as linhas que não possuem o padrão.
-i: Iguala maiúscula e minúscula na comparação com
padrão.
Comando WC
Conta
caracteres, palavras e linhas em arquivos.
Exemplos:
$wc –c <
cadastro
$wc –w texto1
$wc –l /ect/passwd
Opções
-c: Conta o número de caracteres.
-w: Conta o número de palavras.
-l: Conta o número de linhas.
Por default, o
comando sem opção apresenta a saída com as três opções.