Como começar com o bash? [fechadas]

2

Eu preciso de uma maneira de executar um script que automatize os comandos do terminal, um após o outro. Pelo que entendi, é exatamente isso que o bash faz. (Eu estou certo, mesmo nessa conta?)

Onde posso aprender, basicamente, como configurá-los?

Além disso, como posso fazer uma corrida na inicialização?

PS O shell e o terminal / linha de comando são os mesmos?

    
por evamvid 31.01.2014 / 05:38

4 respostas

4

Where can I learn, basically, how to set them up?

Para configurar um script que executa comandos, basta criar um arquivo (por exemplo, MyCmds.sh ) com seu editor e escrever alguns comandos que você deseja executar. Por exemplo:

#!/bin/bash
# This is a quote, the next line will output "Hello World"
echo "Hello World"

Agora você precisa tornar este arquivo executável definindo o x flag (use seu terminal para isso):

$ chmod +x MyCmds.sh

Agora você pode executá-lo assim no seu terminal (não se esqueça do líder ./ ):

$ ./MyCmds.sh

Você deve ver Hello World .

Also, how can I make one run at startup?

Para executar este script na inicialização, você precisa colocar os comandos, ou seu script com o caminho absoluto (por exemplo, /path/to/my/script/MyCmds.sh ), no textfile /etc/rc.local (às vezes há um exit 0 no final, seu comandos estão acima dessa linha).

PS Are the shell and the terminal/command line the same?

Sim (e talvez não). Eu suponho que você quer dizer a linha de comando normal, onde você digita os seus comandos e com os shell sripts, estou certo? Isso sempre depende da sua configuração. Se você executar um script com #!/bin/bash (os dois primeiros sinais são chamados shebang ) no primeira linha, cada linha seguinte será passada para o programa shell localizado em /bin/bash . O que você vê como sua linha de comando é talvez /bin/bash ou /bin/shell ou ... (Eles diferem por seus recursos). Você pode verificar isso observando o arquivo /etc/passwd . Após o seu nome de usuário do Linux, deve estar o programa para a sua linha de comando.

    
por 31.01.2014 / 09:10
4

Eu gostaria de recomendar: link

Ele orienta você desde qualquer coisa, desde o básico (vai do exemplo hello world) até construções mais avançadas, e faz parte do The Linux Documentation Project.

    
por 31.01.2014 / 09:08
3

bash é um interpretador de shell ou de linha de comando. Um shell script é um arquivo de texto que contém uma lista de comandos a serem executados por um determinado shell (comparável a um arquivo em lotes, se você estiver familiarizado com essa linguagem).

Um script de shell pode usar qualquer interpretador de linha de comando (ou shell) que seu autor deseje usar especificando-o na primeira linha. Por exemplo, se um determinado script usa bash , sua primeira linha normalmente se parece com isso:

#!/bin/bash

Isso seria seguido por uma lista de comandos (geralmente falando) da mesma forma que você os digita, em ordem, em um shell interativo.

Com relação ao seu post scriptum: não bastante . O shell (ou intérprete de linha de comando) é o programa que lida com a análise de linhas de comando, que são as coisas que você insere, seja de forma interativa ou em um script, conforme descrito acima.

    
por 31.01.2014 / 05:42
3

Existem várias maneiras de começar, mas eis o que recomendo que você faça:

  1. Crie um diretório para armazenar seus scripts:

    mkdir ~/bin
    
  2. Edite seu ~ / .bashrc (suponho que você saiba como lidar com um editor) e adicione na parte inferior:

    if [ -d ~/bin ] ; then
       export PATH=~/bin:"${PATH}"
    fi
    
  3. Efetue logout e login novamente (ou inicie um novo terminal) e verifique se ~/bin está em seu caminho:

    echo $PATH
    
  4. Crie seu primeiro programa ~/bin/echo_on_boot e coloque em

    #! /bin/bash
    echo "Started" > /var/tmp/written_on_startup
    
  5. altere as permissões no programa para que ele seja executado:

    chmod 750 ~/bin/echo_on_boot
    
  6. experimente o programa:

    echo_on_boot
    
  7. verifique se /var/tmp/written_on_startup foi criado e exclua:

    cat /var/tmp/written_on_startup
    rm -f /var/tmp/written_on_startup
    
  8. edite seu crontab com crontab -e , adicione uma linha (perto do final normalmente), assumindo que ~ é /home/vamvid (você não pode usar ~ no arquivo crontab):

     @reboot /home/vamvid/bin/echo_on_boot
    
  9. reinicialize o sistema e veja se o arquivo foi criado em / var / tmp.

@reboot não funcionará se o diretório inicial for, por exemplo, em uma unidade criptografada, pois o diretório ~/bin não estará disponível após a reinicialização (somente quando você fizer login).

    
por 31.01.2014 / 09:09