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
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