Artigo original: Bash Commands: Bash ls, Bash head, Bash mv, and Bash cat Explained with Examples

ls

O ls é um comando dos sistemas operacionais do tipo Unix (como o Linux e o MacOS) para lista os conteúdos de um diretório, como , por exemplo, nomes de pastas e de arquivos.

Uso

cat [opções] [nomes_dos_arquivos]

Opções mais usadas:

  • -a, todos os arquivos e pastas, incluindo os ocultos e que começam com .
  • -l, lista todos os arquivos em formato longo (estendido)
  • -G, habilita resultados em cores

Exemplo:

Lista de arquivos em freeCodeCamp/guide/

Após clonar o repositório principal do freeCodeCamp, aqui temos o resultado do retorno de ls no diretório freeCodeCamp:

api-server                 docker-compose.yml  public
change_volumes_owner.sh    Dockerfile.tests    README.md
client                     docs                sample.env
CODE_OF_CONDUCT.md         HoF.md              search-indexing
config                     lerna.json          SECURITY.md
CONTRIBUTING.md            LICENSE.md          server
curriculum                 node_modules        tools
docker-compose-shared.yml  package.json        utils
docker-compose.tests.yml   package-lock.json

Mais comandos do bash

head é usado para imprimir as dez primeiras linhas (por padrão) ou qualquer quantidade de linhas especificadas de um arquivo ou arquivos. cat, por outro lado, é usado para ler um arquivo sequencialmente e imprimi-lo na saída padrão (ou seja, o conteúdo inteiro do arquivo é impresso ou exibido em tela).

Isso, porém, nem sempre é necessário – talvez você queira apenas conferir o conteúdo de um arquivo para ver se é o correto ou conferir se ele não está, de fato, vazio. O comando head permite que você veja as N primeiras linhas de um arquivo.

Se mais de um arquivo for chamado, as primeiras 10 linhas de cada arquivo serão exibidas, a menos que outro número determinado de linhas seja especificado. Também é possível selecionar o cabeçalho do arquivo. Confira as opções abaixo.

Uso

head [opções] [nomes_dos_arquivos]

Opções mais usadas:

  • -n N, imprime as primeiras N linhas dos arquivos
  • -q, não imprime os cabeçalhos dos arquivos
  • -v, sempre imprime os cabeçalhos dos arquivos

Exemplo

head arquivo.txt

Imprime as 10 primeiras linhas de arquivo.txt (padrão)

head -n 7 arquivo.txt

Imprime as 7 primeiras linhas de arquivo.txt

head -q -n 5 arquivo1.txt arquivo2.txt

Imprime as 5 primeiras linhas de arquivo1.txt e as 5 primeiras linhas de arquivo2.txt

mv

Este comando do bash move arquivos ou pastas.

mv origem destino
mv origem ... diretório

O primeiro argumento é o arquivo que você deseja mover. O segundo é o local para onde movê-lo.

Opções comumente usadas:

  • -f para forçar o ato de mover e sobrescrever os arquivos sem conferir com o usuário.
  • -i para solicitar confirmação antes de sobrescrever arquivos.

cat

cat é um dos comandos mais frequentemente usados nos sistemas operacionais baseados em Unix.

O cat é usado para ler um arquivo em sequência e imprimi-lo na saída padrão. O nome vem da maneira como ele concatena arquivos.

Uso

cat [opções] [nomes_dos_arquivos]

Opções mais usadas:

  • -b, numera as linhas do resultado que não estejam em branco
  • -n, numera todas as linhas do resultado
  • -s, reduz para uma as várias linhas em brancos adjacentes umas às outras
  • -v, exibe caracteres que não são imprimíveis, exceto tabulações e o caractere de final de linha

Exemplo

Imprime o conteúdo de arquivo.txt:

cat arquivo.txt

Concatena o conteúdo de dois arquivos e exibe o resultado no terminal:

cat arquivo1.txt arquivo2.txt

Mais informações sobre o bash:

O que é o bash?

Bash (nome que é a versão reduzida de Bourne Again SHell) é um shell do Unix, além de um interpretador de linguagem de comandos. Um shell é simplesmente um macroprocessador que executa comandos. Ele é o shell mais usado, sendo integrado por padrão na maioria das distribuições do Linux, sendo um sucessor do Korn shell (ksh) e do C shell (csh).

Muitas coisas que podem ser feitas na GUI (interface gráfica) de um sistema operacional Linux também podem ser realizadas na linha de comando. Alguns exemplos:

  • Editar arquivos
  • Ajustar o volume do sistema operacional
  • Obter páginas da web na internet
  • Automatizar o trabalho diário

Você pode ler mais sobre o bash aqui, na documentação da GNU e no guia do tldp (textos em inglês).

Uso do bash na linha de comando (Linux, OS X)

Você pode começar a usar o bash na maioria dos sistemas operacionais Linux e OS X ao abrir um terminal. Vamos considerar um exemplo simples de hello world. Abra seu terminal e escreva a primeira linha abaixo (o que vem após o sinal $):

zach@marigold:~$ echo "Hello world!"
Hello world!

Como você pode ver, usamos o comando echo para imprimir a string "Hello world!" no terminal.

Escrevendo um script no bash

Também é possível colocar todos os comandos do bash em um arquivo .sh, executando o arquivo a partir da linha de comando. Digamos que você tenha um script do bash com o conteúdo abaixo:

#!/bin/bash
echo "Hello world!"

O script tem apenas duas linhas. A primeira indica qual interpretador usar para executar o arquivo (nesse caso, o bash). A segunda linha é o comando que queremos usar, echo, seguido do que queremos imprimir, "Hello world!".

Vale a pena observar que a primeira linha do script começa com #!. Essa é uma diretiva especial que o Unix trata de maneira diferente.

Por que usamos #!/bin/bash no começo do arquivo de script?

Isso ocorre porque é uma convenção informar ao shell interativo que tipo de interpretador executar para o programa que segue.

A primeira linha informa o sistema operacional que o arquivo deve ser executado pelo programa que fica em /bin/bash, o local padrão do shell Bourne (do bash) em quase todos os sistemas Unix ou similares. Ao adicionar #!/bin/bash no começo do script, isso informa ao sistema operacional que ele deve usar o shell daquele caminho específico para executar todos os comandos a seguir no arquivo de script.

#! tem diversos nomes em inglês, como "hash-bang", "she-bang", "sha-bang" ou "crunch-bang". Observe que a primeira linha somente é considerada se o script for um arquivo executável.

Por exemplo, se myBashScript.sh é executável, o comando ./myBashScript.sh fará com que o sistema operacional examine a primeira linha para saber qual interpretador utilizar. Nesse caso, a linha seria #!/bin/bash.

Por outro lado, ao executar bash myBashScript.sh, a primeira linha é ignorada, pois o sistema operacional já sabe que deve usar o bash.

Para tornar o arquivo myBashScript.sh um executável, basta executar o comando sudo chmod +x myBashScript.sh. Em seguida, execute o comando abaixo para executar o script:

zach@marigold:~$ ./myBashScript.sh
Hello world!

Às vezes, o script não será executado e o comando acima retornará um erro. Isso ocorre em função das permissões definidas no arquivo. Para evitar que isso aconteça, use:

zach@marigold:~$ chmod u+x myBashScript.sh

Aí, então, você conseguirá executar o script.