sábado, 28 de abril de 2012

103.1 Trabalhando em linha de comando

Tópico - 103 GNU/Linux e comandos

Bem pessoal estamos entrando agora no Tópico 103

Mais precisamente no 103.1 Trabalhando em linha de comando


Segundo a lpi.org será cobrado na prova o seguinte conteúdo:


Terms and Utilities

    bash  -  echo  -  env  -  exec  -  export  -  pwd  -  set  -  unset
    man  -  uname  -  history





bash

Certo o primeiro é o bash, o nosso interpretador de comandos, é ele quem vai interpretar os comandos que estaremos digitando para executar um serviço, reiniciar, startar, é apartir dele que conseguimos se comunicar com o núcleo do ssitema, o Kernel.

echo e variável

O comando echo resumidamente falando serve para mostrar o conteúdo de uma variável, ou imprimir uma frase na tela.


Certo, mas o que seria uma variável?

Um exemplo simples:

# nome=jose

Aqui eu criei uma variável chamada nome, que está recebendo um valor, no caso um nome, chamado joão, então se rodarmos o comando echo $nome o echo vai mostrar o valor (nome) que essa variável recebeu, no caso joão.

Existem dois tipos de variáveis , local e exportada, a local so vai funcionar no bash em que você estiver no momento, já a exportada vai funcionar na atual e em outros bash que forem iniciados a partir do bash atual.

Exemplo, a variável que eu criei nome=jose, não é possível verificar em outro bash, a não ser que eu a exporte.

#nome=jose

# export nome=$nome

# xterm       # abrindo um outro terminal

# echo $nome

Agora é possível verificar o conteúdo da variável "nome" depois de exportada, e aberto um novo terminal, a partir do terminal onde foi criado a variável.






Variáveis importantes do Sistema

bash -> contém informações sobre o bash que você está utilizando



HISTFILE -> indica o endereço, o histórico dos seus comando, na maioria das distribuições vai estar em:

/home/seu-ususario/.bash_history

HOME -> A variável HOME serve, vamos dizer de direção, para quando vc digitar o comando cd, sem nenhuma opção, você vai cair dentro do home do usuário logado no momento.




Podemos ver acima, que eu estava dentro de /etc e após rodar o comando "cd" fui para meu diretório HOME (/root)

PATH -> Essa variável armazena vários diretórios, que são os diretórios usados para encontrar os comando que você digitar no shell.




Na imagem podemos ver os diversos diretórios, como /usr/local/sbin todos separados com ":" entre eles.

LOGNAME -> Mostra o usuário que está logado no sistema.




$! PID do último processo
$$ PID do shel que esta sendo executado
$? mostra 0 ou 1, caso você tenha executado um comando, ou rodando um comando para instalação de algum pacote, e o mesmo não te retornou nada, você pode rodar esse comando que o mesmo vai te mostrar 0 ou 1, 0 é igual a falha e 1 igual a sucesso.

~joao -> mostra vai direto para o diretório home do usuário joao.
~  -> você direto para o home do usuário que estiver logado, igual ao comando "cd".


pwd

O comando pwd vai mostrar em qual diretório você está, caso você esteja meio perdido, de qual diretório você esteja, você pode rodar o comando pwd, que ele vai te informar.


Como pode ser visto acima, eu rodei o comando pwd, e ele me retornou que eu estava dentro de /tmp


Existe também a variável PWD,  onde você pode rodar o echo $PWD  que ele vai te retornar onde você está.





history

O comando history vai pegar todos os comando digitados e imprimir na tela, ele busca dentro do seu diretório /home/usuario/.bash_history 
Você pode apagar usando o comando history-c, ou simplesmente apagar o arquivo oculto .bash_history dentro do seu diretório /home


Aqui abaixo podemos ver os comandos que eu digitei, caso você queira executar algum comando que esteja ai dentro do history, você pode execitar o seguinte comando:



# !156

Ele vai executar no meu caso o comando ps aux



Alias

O comando alias serve para vocẽ apelidar um comando extenso, por exemplo, quando precisamos digitar um comando por diversas vezes, e o mesmo é muito extenso, podemos criar um alias desse comando.
Se você digitar alias no seu terminal, ele vai te mostrar que já existe alguns comando com alias no sistema.



Vou criar agora um alias para o comando ls -la.

Exemplo: alias lsa='ls -la'

Aqui está dizendo que quando eu digitar lsa, o comando a ser executado, será o ls -la



# alias




Como podemos ver na imagem acima, na última linha do alias, contém o alias que eu criei.

alias lsa='ls -la'



Env

O comando env sem nenhuma opção ou parâmetro mostra as variáveis de ambiente atuais. É possível usá-lo também para executar um script que contenha variáveis locais, que não funcionariam executando somente  ./nome_script.sh

Exemplo:

# nomes="testando_o_comando_env_script"

# echo $nomes
estando_o_comando_env_script

# vim script_env.sh

Dentro do script vai conter o seguinte conteúdo:

#!/bin/bash

echo $nomes

O Script quando executado deverá mostrar o conteúdo da variável nomes.


Vamos dar permissão de execução ao nosso script:

# chmod +x script_env.sh

Como a variável que criamos é local, então ao rodar o comando ./script_env.sh  não será mostrado o valor da variável "nomes", como está no script.

Ai que entra o comando env, é ele quem precisamos usar para que o conteúdo da variável seja seja impresso na tela.

# env nomes="testando_o_comando_env_script" /home/usuario/script_env.sh

No caso, precisamos dizer ao comando env, o valor da variável e o caminho  onde se encontra o script.

Testando:




exec


O comando exec funciona da seguinte forma, ao roda-lo, ele vai fechar o shell executado no momento, porém vai executar o comando em um outro shell.

# exec vim /etc/passwd

Rodei o comando como root, e o comando será executado em um shell de um usuário comun.

Exemplo:




# exec cat /etc/passwd 


Como podemos ver na imagem acima, quando eu executei o comando eu estava logado como root # e ao final do comando podemos ver que estou logado como um usuário comum do sistema.




set

O comando set serve para mostrar todas as variáveis que estão definidas no sistema.

Rodando o comando set :





unset

O comando unset serve para remover uma variável do sistema.

No exemplo abaixo, vou criar uma variável, exibi-la no terminal, e depois removê-la com o comando unset.

Exemplo:




Export

O comando export, como já vimos um pouco mais acima, serve para exportamos uma variável criada local, para que possamos ver em um shell aberto a partir do shell onde foi criado  a variável.

Na imagem abaixo eu criei uma variável, exibi no terminal com o comando echo, depois a exportei com o comando export, abri um outro terminal com o comando xterm, e exibir a variável exportada no aberto mais abaixo.

Testando:




Man

o comando man serve para verificarmos como funciona um determinado comando, podemos verificar suas opções de uso, nome, descrição, sinopse, opções, etc.



Apropos

O comando apropos, serve para nos ajudar a lembrar de um comando, ele funciona da segiunte forma.
Quando não nos lembramos de um determinado comando, porém sabemos para que ele serve, qual sua função, algo do tipo, podemos usar o comando apropos para nos ajudar da seguinte forma:

#  apropos grupo

Ele vai procurar por comandos relacionados a grupo, como criar ou modificar um grupo.



uname

O comando uname, é muito útil, por que com ele podemos saber qual a versão do kernel, nome da nossa máquina, arquitetura da máquina, e muitas outras coisas. 

# uname -a 



Para mais opções use o comando man para auxilio.

# man uname



Bem pessoal este Tópico foi bastante extenso, agora é praticar para não esquecermos estes comando e suas funções.

Bons estudos!!






Um comentário:

  1. Show de bola meu caro... Me faz voltar as origens. Parabéns. E boa sorte com a prova.

    ResponderExcluir