Aprender sobre Linux é uma jornada fascinante, e também o mundo incrível do Shell Scripting. O Shell Scripting é uma habilidade valiosa que permite automatizar tarefas, criar scripts poderosos e interagir com o sistema operacional de uma maneira mais eficiente.
Shell scripts são, de fato, texto ASCII (ou UTF-8, que é uma extensão do ASCII) que é lido e interpretado por um interpretador de shell. A linguagem de script utilizada em shells, como o Bash, é basicamente um conjunto de comandos e estruturas de controle de fluxo que são interpretados e executados pelo shell. Quando você escreve um script shell, está criando um arquivo de texto que contém uma sequência de comandos que você deseja executar. Este arquivo é então passado para o interpretador de shell correspondente (por exemplo, o Bash), que lê o texto linha por linha e executa os comandos descritos no script.
- Variáveis e Operadores: Entenda como armazenar dados e realizar operações com variáveis.
- Estruturas de Controle: Aprenda sobre estruturas condicionais (if-else) e loops para controlar o fluxo do seu script.
- Funções: Organize seu código em funções reutilizáveis para tornar seus scripts mais modulares.
- Trabalhando com Arquivos: Manipule arquivos e diretórios, realizando tarefas como leitura, escrita e exclusão.
- Comandos do Sistema: Explore como executar comandos do sistema a partir do seu script, interagindo diretamente com o terminal.
- Debugging: Familiarize-se com técnicas de debugging para identificar e corrigir erros em seus scripts.
- cat: "concatenate", usado para exibir arquivos ou concatenar arquivos.
- cd: "change directory", usado para mover entre diretórios.
- chmod: "change mode", permite que você altere as permissões de arquivos.
- chown: "change owner", permite que você altere as permissões de propriedade de arquivos.
- compress: usado para compactar arquivos (este é um comando mais antigo; consulte gzip ou bzip2 para abordagens mais modernas).
- cp: usado para copiar arquivos e diretórios.
- file: usado para determinar o "tipo" de um arquivo.
- ls: "list", lista arquivos e diretórios.
- mkdir: "make directory", usado para criar novos diretórios.
- more: usado para controlar a exibição de saída, permitindo que você percorra os resultados.
- mv: "move", usado para mover arquivos e diretórios.
- pwd: "print working directory", mostra o diretório em que você está atualmente.
- rm: "remove", usado para remover arquivos e diretórios.
- wc: "word count", usado para contar caracteres, palavras e linhas em arquivos de texto e/ou entrada padrão.
- type: "type", usado para descobrir o tipo de comando do shell, sendo interno ou externo a este.
- diff: Faz comparação entre dois arquivos. Ponha um lado do outro
< Esta é uma linha no arquivo teste.sh --- > Esta é uma linha no arquivo teste1.sh
Compara dois arquivos lado a lado de forma mais organizada e visual (deixe o terminal em tela cheia).
Para achar arquivos e tipos (which $SHELL)
Um comando poderoso usado para encontrar arquivos e diretórios com uma variedade de critérios de pesquisa.
"General Regular Expression Parser", também conhecido como "search" ou "textsearch".
Usado para encontrar rapidamente nomes de arquivos em todo o sistema de arquivos.
- df: "disk free", usado para mostrar informações sobre o espaço livre em sistemas de arquivos.
- du: "disk usage", mais frequentemente usado para determinar o tamanho de diretórios.
- lsof: lista arquivos abertos, geralmente usado por administradores de sistema para solucionar problemas.
- ps: "process statistics", usado para exibir os processos em execução no sistema.
-
ps -f # Processos do usuário que estão em execução ps -ef # Todos os processos menos os do kernel ps -A # Todos, até do kernel ps -Kf # Todos os processos do kernel ps auxw # Porcentagem de uso da CPU
- top: uma utilidade para mostrar processos em execução, uso da CPU e uso de memória.
- who: mostra quem está atualmente logado.
- w: mostra quem está logado.
- last: histórico de quem fez login no sistema
- cut: usado para recortar campos e colunas da saída de texto e arquivos.
- grep: "general regular expression parser", também conhecido como "search" ou "textsearch".
- sort: usado para classificar informações fornecidas na entrada padrão.
- vi/vim: vi/vim, o editor de texto padrão do Unix/Linux.
- sed: um "editor de fluxo" que permite editar arquivos com comandos, sem a necessidade de um editor de texto.
- wc Conta o número de linhas, palavras e caracteres em um arquivo.
- curl: usado para baixar páginas da web e outros recursos da internet a partir da linha de comando (consulte também wget).
- ping: permite "pingar" outro computador para ver se ele está ativo.
- wget: usado para baixar páginas da web e outros recursos da internet a partir da linha de comando (consulte também curl).
- compress: usado para compactar arquivos (mais antigo).
- tar: "tape archive", usado para criar arquivos de arquivamento e ler/escrever de fitas e disquetes.
- gzip: usado para compactar arquivos e arquivos de arquivamento (use gunzip para descompactá-los).
- bzip2: também usado para compactar arquivos.
- cancel: usado para cancelar solicitações de impressão.
- lp: "line printer", usado para enviar trabalhos de impressão.
- lpstat: "line printer statistics", usado para exibir informações sobre filas de impressão.
- alias: usado para criar novos comandos a partir de comandos existentes.
- crontab: usado para agendar tarefas no Unix/Linux para serem executadas em horários específicos.
Quando você executa um comando seguido pelo símbolo &
, o comando é executado em segundo plano, e o controle retorna imediatamente ao prompt do shell. Isso é conhecido como "background execution".
Exemplo:
comando &
Em contextos de redirecionamento, o &
pode ser usado para redirecionar descritores de arquivo específicos. Por exemplo, 2>&1
redireciona a saída de erro padrão (stderr) para o mesmo local que a saída padrão (stdout).
Exemplo:
comando 2>&1
O &&
é um operador utilizado para concatenar comandos no shell, permitindo que o segundo comando seja executado apenas se o primeiro for bem-sucedido.
Exemplo:
comando1 && comando2
O comando xxd
é usado para criar uma representação hexadecimal de um arquivo ou para converter uma representação hexadecimal de volta para o formato binário original.
xxd arquivo
O comando hexdump
é utilizado para exibir o conteúdo de um arquivo em formato hexadecimal.
Exemplo:
hexdump -C arquivo.bin
O comando base64
é usado para codificar ou decodificar dados em base64.
Exemplo (Codificação):
base64 -e arquivo.txt (codificação)
base64 -d arquivo.txt (decodificação)
O comando strings
é utilizado para extrair sequências de caracteres legíveis de um arquivo binário.
Exemplo:
strings arquivo.bin