08.05.2013 Views

O termo "Shell" é usado para designar o programa que ... - CAFW

O termo "Shell" é usado para designar o programa que ... - CAFW

O termo "Shell" é usado para designar o programa que ... - CAFW

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Shell<br />

O <strong>termo</strong> "Shell" <strong>é</strong> <strong>usado</strong> <strong>para</strong> <strong>designar</strong> o <strong>programa</strong> <strong>que</strong> serve como o interpretador de comandos, e<br />

tamb<strong>é</strong>m, interpretador de linguagem de <strong>programa</strong>ção na forma de scripts (Shell-Scripts) <strong>que</strong> podem<br />

ser interpretados em sistemas Unix.<br />

Ele tamb<strong>é</strong>m pode ser utilizado como meio de interação entre o usuário e o computador, funcionando<br />

como uma interface entre o usuário e o Kernel do sistema operacional, aparecendo na tela como<br />

uma linha de comandos, representada por um prompt, <strong>que</strong> aguarda na tela os comandos do usuário.<br />

Os principais shells são: bash, sh, csh, tcsh, ksh e zsh, sendo o bash, o shell padrão da maioria das<br />

distribuições Linux.<br />

Para visualizar os shells, execute o comando:<br />

$ cat /etc/shells<br />

Para visualizar o shell corrente do usuário, execute o comando:<br />

$ echo $SHELL<br />

O Shell, quando executado carrega as variáveis de ambiente controlam o prórprio Shell e os<br />

<strong>programa</strong>s <strong>que</strong> as utilizam <strong>para</strong> configurações, quando o usuário efetua o login. As variáveis de<br />

ambiente são valores armazenados em memória e executadas no ambiente Shell, e sua configuração<br />

varia de acordo com o Shell em uso. Existem dois tipos de variáveis de ambiente: global e local.<br />

Variáveis de ambiente local: são as variáveis disponíveis somente pelo shell corrente, e <strong>que</strong> não<br />

estão sendo acessadas por subprocessos do sistema.<br />

Para visualizar as variáveis de ambientes locais, execute:<br />

$ set | more<br />

Variáveis de ambiente global: são as variáveis disponíveis tanto <strong>para</strong> o shell corrente como <strong>para</strong> os<br />

subprocessos <strong>que</strong> tamb<strong>é</strong>m as utilizam.<br />

Para visualizar as variáveis ambientes globais, execute:<br />

$ env<br />

ou<br />

$ printenv


Comandos <strong>para</strong> manipular as variáveis ambientes<br />

echo - Exibe o valor de uma variável ambiente.<br />

echo [$variavel ambiente]<br />

Exemplo:<br />

$ echo $USER<br />

sleep - Especifica um intervalo de tempo antes de executar o próximo comando.<br />

Exemplo:<br />

$ sleep 5<br />

export - Torna global o valor de uma variável ambiente.<br />

export [variavel ambiente]=[valor]<br />

Exemplo:<br />

$ VALOR=10<br />

$ export VALOR<br />

$ echo $VALOR<br />

source - Executa e exporta comandos contidos em um arquivo no shell corrente.<br />

Exemplo:<br />

$ vi /home/usuario/.bashrc<br />

alias cor='ls --color' # acrescente essa linha no final do arquivo<br />

$ source /home/usuario/.bashrc<br />

$ cor<br />

unset - Exclui o valor de uma variável ambiente.<br />

unset [variavel ambiente]<br />

Exemplo:<br />

$ unset VALOR


Variáveis ambientes do bash<br />

printenv ou env - Exibe as variáveis ambientes, geralmente encontradas em letras maiúsculas.<br />

Exemplo:<br />

$ printenv<br />

ou<br />

$ env<br />

MANPATH - Exibe os diretórios onde o comando man encontra páginas de manual.<br />

Exemplo:<br />

$ echo $MANPATH<br />

DISPLAY - Exibe o terminal do ambiente gráfico atualmente <strong>usado</strong>.<br />

Exemplo:<br />

$ echo $DISPLAY<br />

HOME - Exibe o diretório home do usuário.<br />

Exemplo:<br />

$ echo $HOME<br />

TERM - Exibe o terminal atualmente <strong>usado</strong>.<br />

Exemplo:<br />

$ echo $TERM<br />

LOGNAME - Exibe o login do usuário.<br />

Exemplo:<br />

$ echo $LOGNAME<br />

USER - Exibe o nome do usuário.<br />

Exemplo:


$ echo $USER<br />

LANG - Exibe o idioma do sistema.<br />

Exemplo:<br />

$ echo $LANG<br />

HISTSIZE - Define o valor máximo de comandos do comando history.<br />

Exemplo:<br />

$ echo $HISTSIZE<br />

OSTYPE - Exibe a arquitetura do sistema.<br />

Exemplo:<br />

$ echo $OSTYPE<br />

SHELL - Exibe o Shell atualmente <strong>usado</strong>, caso <strong>que</strong>ira alterar o Shell use chsh.<br />

Exemplo:<br />

$ echo $SHELL<br />

chsh - Altera o Shell do usuário. (importante)<br />

chsh [opções] [usuário]<br />

opção explicação<br />

-s [ Shell ] Especifica o nome do Shell no próximo login.<br />

Exemplo:<br />

$ echo $SHELL<br />

$ chsh -s /bin/sh<br />

# chsh -s /bin/sh usuario<br />

PATH - Exibe o caminho onde o Shell localiza os <strong>programa</strong>s executáveis.<br />

Exemplo:<br />

$ mkdir pasta


$ PATH=$PATH:/pasta<br />

$ echo $PATH<br />

Esse exemplo acima somente <strong>é</strong> válido <strong>para</strong> o login atual, e não <strong>é</strong> permanente, <strong>para</strong> <strong>que</strong> as<br />

configurações fi<strong>que</strong>m permanentes, edite e acrescente os comandos acima no arquivo de<br />

configurações local do usuário /home/usuario/.bash_profile, ou globalmente <strong>para</strong> todos os usuários<br />

do arquivo.<br />

PS1 - Altera e especifica o prompt de comandos bash.<br />

\] Termina<br />

\t Exibe a hora<br />

\h Exibe o host (nome da máquina)<br />

\s Exibe o Shell<br />

\u Especifica o nome do usuário<br />

\w Especifica o diretório corrente<br />

Exemplo:<br />

$ PS1="\d \t \u@\h \w:"


Histórico de Comandos<br />

O Shell mantem um histórico dos últimos comandos digitados pelo usuário, podendo serem<br />

visualizados pelo símbolo de ! de 4 formas diferentes, e pelos comandos history e fc.<br />

Comando Explicação<br />

!! Útimo comando digitado.<br />

!n Onde n <strong>é</strong> o número do comando no histórico.<br />

!string Comandos <strong>que</strong> iniciam com a string especificada.<br />

!-n Onde n <strong>é</strong> o número apartir do último comando no histórico.<br />

Exemplo:<br />

$ !!<br />

$ history<br />

$ !499<br />

$ !hist<br />

history - Exibe histórico de comandos.<br />

history [opções]<br />

Opções Explicação<br />

-r Usa como histórico o arquivo /home/usuario/.bash_history ao inv<strong>é</strong>s de<br />

usar o histórico de comandos.<br />

-w Reescreve o arquivo /home/usuario/.bash_history.<br />

-c Limpa histórico de comandos.<br />

Exemplo:<br />

$ history<br />

fc - Vizualiza ou edita o histórico de comandos.<br />

fc [opções]<br />

Opção Explicação<br />

-e [editor] Edita usando um editor de texto especificado.<br />

-l [primeiro] Vizualiza um intervalo comandos no histórico dos últimos 16<br />

[último] comandos.<br />

Exemplo:<br />

$ fc 3<br />

$ fc -l 1 10


Aliases (apelidos de comandos)<br />

Alias são apelidos dados <strong>para</strong> comandos no Linux e Unix, <strong>é</strong> um atalho <strong>para</strong> facilitar a digitação dos<br />

comandos. O seu arquivo de configuração fica localizado no arquivo /home/usuario/.bashrc.<br />

alias - Define um apelido <strong>para</strong> comandos no Linux e Unix.<br />

alias [apelido=comando]<br />

Exemplo:<br />

$ alias cor="ls --color"<br />

$ cor<br />

unalias - Apaga um apelido de comandos no Linux e Unix.<br />

unalias [apelido]<br />

Exemplo:<br />

$ unalias cor


Redirecionamento de pipes<br />

Um pipeline <strong>é</strong> um mecanismo <strong>que</strong> permite dados de entrada e saída serem visualizados,<br />

armazenados ou resgatados de arquivos. De tal forma <strong>que</strong> a saída de um processo <strong>é</strong> utilizada como<br />

entrada do processo seguinte.<br />

Pipes ou redirecionadores Descrição<br />

Comando > arquivo Redireciona saída.<br />

comando < arquivo Redireciona entrada.<br />

comando >> arquivo Une (concatena) a saída.<br />

comando arquivo Redireciona a saída de erro.<br />

comando 2>> arquivo Une (concatena) a saída de erro.<br />

comando1 | comando2 Pipe (une dois ou mais comandos).<br />

Exemplos:<br />

$ ls /etc/teste 2> saida.log (redireciona a saída de erro <strong>para</strong> o arquivo saida.log)<br />

$ cat saida.log<br />

ls: /etc/teste: Arquivo ou diretório não encontrado<br />

$ ls /etc/teste 2>> saida.log (concatena(acrescenta) a saída de erro <strong>para</strong> o arquivo saida.log)<br />

$ cat saida.log<br />

ls: /etc/teste: Arquivo ou diretório não encontrado<br />

ls: /etc/teste: Arquivo ou diretório não encontrado<br />

$ cat > test<br />

Seja livre use o Linux !!!<br />

aperte [ ENTER ]<br />

aperte CTRL + D<br />

$ cat < teste > saida.txt<br />

$ ls /etc/ | grep hosts

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!