Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Shell: definição/carregando a shell

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Shell: definição/carregando a shell

    Definição

    Os comandos digitados pelo usuário são interpretados pelo shell. Esses comandos podem ser comandos embutidos do shell, mas na maioria das vezes eles são programas externos.

    * A lista dos comandos embutidos pode ser obtida com o comando help. Para ver estes comandos, digite

    help

    * Os comandos não embutidos são programas que se iniciam invocando-se um arquivo executável em algum lugar no sistema de arquivos do Linux (o shell pesquisa em todos os diretórios listados na variável de ambiente PATH).

    O shell analisa sintaticamente a linha de comando depois que ela é lida. A variável de ambiente IFS determina como isso é feito. Normalmente, IFS é configurada de tal forma que espaços em branco separam os diferentes argumentos de linha de comando.

    Existem vários shells para Linux, onde cada shell tem seus próprios recursos, capacidades e limitações. Por exemplo, o shell padrão para a distribuição Conectiva é o bash.

    Na realidade, o shell é apenas um arquivo executável armazenado em /bin. No modo gráfico, um shell é executado em cada terminal aberto.

    Para ver qual é o seu shell padrão, basta digitar o comando

    printenv SHELL

    O comando acima exibe o conteúdo da variável ambiente SHELL que contém o caminho completo do shell. Outra forma de saber qual é o shell padrão, é verificar o último parâmetro definido para o usuário no arquivo /etc/passwd. Por exemplo,

    Flood:x:501:501::/home/flood:/bin/bash

    mostra que o usuário Flood usa o shell bash.

    Carregando o shell

    Suponha que o shell padrão do sistema seja o bash. Então, quando o usuário acessa o sistema, o bash carrega os seguintes arquivos do diretório home do usuário (estes arquivos são criados automaticamente pelo comando adduser, veja o diretório /etc/skel para saber quais são os arquivos padrão no seu sistema):

    1. .bashrc : contém funções e nomes alternativos definidos pelo usuário.
    2. .bash_history : contém a lista dos últimos (o padrão é 1000) comandos digitados pelo usuário.
    3. .bash_logout : contém os comandos executados pelo sistema no fechamento da sessão pelo usuário.
    4. .bash_profile : contém as variáveis de ambiente do usuário.

    e os seguintes arquivos do diretório /etc:

    1. bashrc : contém funções e nomes alternativos (aliases) do sistema.
    2. profile : contém as variáveis de ambiente do sistema.

    Os arquivos no diretório home são exclusivos do usuário e portanto, uma alteração nestes arquivos afeta apenas o usuário em questão. Os arquivos do /etc são comuns a todos os usuários e portanto, uma alteração nestes arquivos afeta todos os usuários do sistema.

    Os arquivos carregados pelo shell definem as variáveis de ambiente, que nada mais são que definições e valores que o shell e os outros programas do sistema reconhecem. Para ver quais as variáveis de ambiente no seu sistema você pode digitar printenv, env ou set. Por exemplo, são algumas das variáveis de ambiente do bash:

    * $ : número do processo do comando em execução.
    * CDPATH : mostra o caminho de busca para o comando cd (por exemplo, CDPATH=.:~:/etc faz com que o sistema utilize a seguinte ordem de busca do diretório especificado: 1) a partir do diretório atual; 2) a partir do diretório raiz do usuário; 3) a partir do diretório /etc).
    * HISTFILE : mostra o nome do arquivo que armazena as linhas de comando digitadas pelo usuário (no shell bash o arquivo padrão é o .bash_history).
    * HISTSIZE : mostra o número de linhas de comando digitadas pelo usuário que são memorizadas pelo sistema.
    * HOME : mostra o diretório home do usuário.
    * IFS : separador de campos usado para definir como dividir as linhas em palavras para serem processadas separadamente. O valor padrão de IFS é <space><tab><new-line>.
    * LOGNAME : mostra o nome de acesso do usuário.
    * MAIL : mostra o diretório que contém as mensagens de correio eletrônicas recebidas pelo usuário.
    * OLDPWD : mostra o diretório anterior de trabalho do usuário.
    * OSTYPE : mostra o sistema operacional em uso.
    * PATH : mostra caminho de busca dos comandos digitados pelo usuário.
    * PPID : mostra o número de identificação do processo que inicializou o shell do usuário. Existe um diretório em /proc com este número e que contém informações sobre o processo em questão.
    * PS1 : mostra a definição do prompt da linha de comando.
    * PS2 : mostra a definição do prompt secundário da linha de comando.
    * PWD : mostra o diretório atual de trabalho do usuário.
    * SHELL : mostra o nome do shell atualmente em uso.
    * SHLVL : mostra o número de shells atualmente em execução na conta do usuário.
    * TERM : mostra o tipo de terminal em uso.
    * TZ : define o fuso horário a ser usado pelo sistema.
    * UID : mostra o número de identificação do usuário.
    * USER : mostra o nome do usuário atual.

    É possível criar novas variáveis, excluir variáveis existentes ou apenas alterar o conteúdo de uma variável de ambiente.

    Para criar uma nova variável de ambiente, basta definir o nome e o valor da nova variável de ambiente e usar o comando export para permitir que a variável seja visualizada pelos aplicativos (por exemplo, um novo shell ou um novo terminal) inicializados no mesmo terminal (neste caso a variável existirá enquanto a sessão estiver aberta). Por exemplo,

    TESTE=10; export TESTE

    ou

    export TESTE=10

    cria a variável de ambiente TESTE com valor inicial 10. O comando export faz com que a nova variável seja conhecida por todos os processos a partir deste shell. Os nomes das variáveis de ambiente são, tradicionamente, definidas usando apenas letras maiúsculas. Entretanto, isto não é obrigatório. Você pode também usar letras minúsculas. Mas, CUIDADO! O Linux é case sensitive. Isto significa que o sistema diferencia letras maiúsculas de letras minúsculas. Portanto, o comando

    teste=10; export teste

    cria uma nova variável de ambiente chamada teste e que é diferente da variável TESTE criada anteriormente.

    É importante observar que as variáveis de ambiente definidas a partir da linha de comando são temporárias. Para criar uma variável permanente, deve-se acrescentar a definição e o comando export no arquivo .bash_profile (no caso de shell bash).

    Para excluir uma variável de ambiente, deve-se usar o comando unset. Por exemplo, o comando

    unset teste

    exclui a variável de ambiente teste criada no exemplo anterior.

    Para alterar o valor de uma variável de ambiente, basta fornecer o nome da variável e o novo valor a ser atribuido a variável. Para a variável de ambiente TESTE definida anteriormente nesta seção, podemos digitar

    TESTE=200

    e a variável TESTE passa a ter valor 200. Neste caso, o conteúdo da variável é completamente alterado. Pode ser que ao invés de alterar o conteúdo, você queira apenas acrescentar mais alguma informação ao conteúdo armazenado em uma variável. Por exemplo, suponha que você queira acrescentar o diretório /teste/bin no caminho de busca, ou seja, no PATH. Devemos, então digitar

    PATH=$PATH:/teste/bin

    O símbolo $ usado acima antes de PATH informa ao shell para usar o conteúdo da variável de ambiente PATH.

    Suponha agora que temos USER=flood e que queremos USER=flood linux. Então podemos definir

    USER="$USER Linux"

    As aspas acima são necessárias devido ao espaço em branco existente no novo conteúdo da variável USER. Note que novamente usamos $ para indicar ao shell que se deve substituir o nome USER pelo conteúdo da variável ambiente USER.

    Os exemplos mostrados acima são alterações temporárias no ambiente do usuário. Para tornar uma alteração efetiva, deve-se alterar o arquivo profile do usuário (.bash_profile no shell bash). Por exemplo, suponha que queremos personalizar o prompt das linhas de comando. Podemos então incluir no arquivo de profile

    PS1="[\W]\$"

    e

    export PS1

    onde o novo prompt apenas exibe o nome do diretório atual de trabalho do usuário (\W) e o símbolo $ ( \$ ).

    Bem facilitado
    Objetivos no GH:
    [x]fazer parte
    [ ]100 posts
    [ ]200 posts
    [ ]500 posts
    [ ]1.000 posts
    [ ]Agradecer 500x
    [ ]Ser agradecido 300x
    [ ] Ser um membro pop
    Ajudar no que for preciso (:

    sigpic

    Gostou? Fui Útil? AGRADEÇA não dói nada, e motiva a mim querer ajudar mais

  • Font Size
    #2
    Excelente tutorial,continue contribuindo.

    Comment


    • Font Size
      #3
      parabéns pelo tuto mano


      vlw
      sigpic


      Comment


      • Font Size
        #4
        [b] Lindo tutorial manoo

        Esta de Parabéns.
        sigpic
        Milorde - Conhecimento não é crime
        Fui útil ? Clique em OBRIGADO


        Milorde & Marissa


        [/CENTER]

        Comment


        • Font Size
          #5
          Milorde toma cuidado com o double post , e bom topico man .

          Comment


          • Font Size
            #6
            Muito bom. Continue assim rapaz. está de parabens.

            Comment


            • Font Size
              #7
              Um pouco complicado , mas nada muito dificil de entender nao.
              Tópico util Fato.
              abraço
              Nao Participa ainda ?
              * Comunidade Elite Defacer


              Elite Defacer
              Hackeralp - 5ubZer0 - $cr34m()

              Comment


              • Font Size
                #8
                Thank's ...

                Comment

                X
                Working...
                X