Guia rápido do BASH
Este guia rápido contém dicas e truques essenciais para aproveitar ao máximo o BASH, desde atalhos de teclado até automação de tarefas. Exploraremos como o domínio do terminal não apenas impulsiona a eficiência, mas também fortalece as defesas digitais no fascinante mundo da segurança cibernética.
Nosso Guia rápido do BASH ajudará você a navegar e controlar seu sistema com eficiência a partir da linha de comando. Da compreensão dos tipos de arquivos e permissões à depuração, do controle de tarefas à compreensão das expressões regulares, este guia cobre tudo.
As informações contidas no Guia rápido do BASH são valiosas para usuários casuais do Linux, administradores de sistema, profissionais de segurança da informação e estudantes que se preparam para uma ampla variedade de exames, de LPIC a OSCP e muito mais.
Independentemente de como você decidir usá-lo, esperamos que você o considere um recurso útil para ter em mãos.
Gostaria de saber quando lançaremos descontos máximos ou novos cursos?
O que é Bash?
Bash (Bourne Again Shell) é uma linguagem shell construída sobre o Bourne Shell original, que foi distribuída com o V7 Unix em 1979 e se tornou o padrão para escrever scripts shell.
Hoje é o principal para a maioria das distribuições Linux (veja nossa folha de dicas de linha de comando do Linux) , MacOS e recentemente foi habilitado para rodar no Windows por meio de algo chamado WSL (Windows Subsystem for Linux).
Operadores de teste de arquivo
Testar arquivos em scripts é fácil e direto. É aqui que os shell scripts começam a mostrar sua glória! No Bash, você pode testar permissões de arquivo , tamanho, data, tipo de arquivo ou existência.
BANDEIRA | DESCRIÇÃO |
---|---|
-e | o arquivo existe |
-para | O arquivo existe (idêntico a -e, mas está obsoleto e desatualizado) |
-F | O arquivo é um arquivo normal (não um diretório ou arquivo de dispositivo) |
-s | o arquivo não tem tamanho zero |
-d | o arquivo é um diretório |
-b | O arquivo é um dispositivo de bloco. |
-C | O arquivo é um dispositivo de caractere. |
-p | o arquivo é um cano |
-h | O arquivo é um link simbólico. |
-eu | O arquivo é um link simbólico. |
-S | o arquivo é um soquete |
-t | o arquivo (descritor) está associado a um dispositivo terminal; Esta opção de teste pode ser usada para verificar se stdin [ -t 0 ] ou stdout [ -t 1 ] em um determinado script é um terminal |
-r | O arquivo tem permissão de leitura (para o usuário que executa o teste). |
-c | o arquivo tem permissão de gravação (para o usuário que está executando o teste) |
-X | o arquivo tem permissão de execução (para o usuário que está executando o teste) |
-g | sinalizador set-group-id (sgid) definido em um arquivo ou diretório |
-ou | Sinalizador set-user-id (suid) definido no arquivo. |
-k | conjunto de pontas adesivas. |
-QUALQUER | você possui o arquivo |
-G | ID do grupo de arquivos igual ao seu |
-N | arquivo modificado desde a última leitura |
f1 -nt f2 | o arquivo f1 é mais recente que f2 |
f1 -ot f2 | o arquivo f1 é mais antigo que f2 |
f1-ef f2 | Os arquivos f1 e f2 são links físicos para o mesmo arquivo. |
! | Not - invierte el sentido de las pruebas anteriores (devuelve verdadero si la condición está ausente). |
Operadores de comparação inteira
Como comparar números inteiros ou expressões aritméticas em scripts de shell.
BANDEIRA | DESCRIÇÃO |
---|---|
-eq | É igual a |
-ne | não é igual a |
-gt | é maior que |
-ge | é maior que ou igual a |
-lt | é menos do que |
-você | es menor ou igual a |
< | es menor que - colocar entre paréntesis dobles |
<= | é menor ou igual a (mesma regra da linha anterior) |
> | es mayor que (misma regla que la fila anterior) |
>= | é maior ou igual a (mesma regra da linha anterior) |
Operadores de comparação de strings
Comparação de strings no Bash.
BANDEIRA | DESCRIÇÃO |
---|---|
= | É igual a |
== | É igual a |
!= | não é igual a |
< | é maior que a ordem alfabética ASCII |
> | é maior que a ordem alfabética ASCII |
-z | a string é nula (ou seja, de comprimento zero) |
-norte | a string não é nula (ou seja, de comprimento zero) |
Operadores compostos
Útil para expressões booleanas e é semelhante a && e ||. Os operadores compostos funcionam com o comando test ou podem aparecer entre colchetes simples [<expr>].
BANDEIRA | DESCRIÇÃO |
---|---|
-para | lógico e |
-qualquer | lógico ou |
Identificadores de trabalho
O controle de trabalho permite interromper (suspender) seletivamente a execução de processos e continuar sua execução posteriormente.
NOTAÇÃO | DESCRIÇÃO |
---|---|
%N | Número do trabalho [N] |
%S | A invocação (linha de comando) do trabalho começa com a string S |
%?S | Invocation (command-line) of job contains within it string S |
%% | Trabalho “atual” (último trabalho interrompido em primeiro plano ou iniciado em segundo plano) |
%+ | Trabalho “atual” (último trabalho interrompido em primeiro plano ou iniciado em segundo plano) |
%- | Último emprego |
%! | Último processo em segundo plano |
Lista de construção
Fornece um meio de processar comandos consecutivamente e é de fato capaz de substituir estruturas complexas se/então/de acordo
CONSTRUIR | DESCRIÇÃO |
---|---|
&& | e |
|| | o |
Códigos de saída reservados
Útil para depurar um script. A saída aceita argumentos inteiros no intervalo de 0 a 255.
CÓDIGO DE SAÍDA Nº. | DESCRIÇÃO |
---|---|
1 | Catchall para erros gerais |
2 | Uso indevido de funções internas do shell |
126 | El comando invocado no puede ejecutarse |
127 | Comando não encontrado |
128 | Argumento inválido para sair |
128+n | Sinal de erro fatal "n" |
130 | Script finalizado por Control-C |
Sinais
Sinais do sistema UNIX V.
NOME | NÚMERO | AÇÃO | DESCRIÇÃO |
---|---|---|---|
SIGHUP | 1 | saída | Pendurado |
SIGINT | 2 | saída | Interrupções. |
SIGQUIT | 3 | despejo de memória | Em paz. |
SIGILO | 4 | despejo de memória | Instrução ilegal. |
SIGTRAP | 5 | despejo de memória | Armadilha de trilha. |
SIGIOT | 6 | despejo de memória | Instrução IOT. |
SIGEMT | 7 | despejo de memória | Instrução MT. |
SIGFPE | 8 | despejo de memória | Exceção de ponto flutuante. |
SIGKILL | 9 | exit | Mortes (não podem ser capturadas ou ignoradas). |
SIGBUS | 10 | core dump | Erro de ônibus. |
SIGSEGV | onze | core dump | Violação de segmentação. |
SIGSYS | 12 | core dump | Argumento ruim para a chamada do sistema. |
SIGPIPE | 13 | saída | Ele escreve em um cachimbo sem que ninguém consiga ler. |
SIGALRM | 14 | saída | Despertador. |
SIGTERM | quinze | saída | Sinal de terminação de software. |
Enviando sinais de controle
Você pode usar essas combinações de teclas para enviar sinais.
COMBINAÇÃO DE CHAVES | DESCRIÇÃO |
---|---|
Ctrl+C | O sinal de interrupção envia SIGINT para o trabalho em execução em primeiro plano. |
Ctrl+Y | A natureza da suspensão tardia. Faz com que um processo em execução pare quando tenta ler a entrada do terminal. O controle é retornado ao shell, o usuário pode colocar em primeiro plano, em segundo plano ou encerrar o processo. A suspensão atrasada está disponível apenas em sistemas operacionais que oferecem suporte a esse recurso. |
Ctrl+Z | O sinal sleep envia um SIGTSTP para um programa em execução, parando-o e devolvendo o controle ao shell. |
Verifique suas configurações de styt. Suspender e retomar a saída geralmente são desativados se você usar emulações de terminal "modernas". O xterm padrão suporta Ctrl+S e Ctrl+Q por padrão.
Tipos de arquivo
Isso é muito diferente do Windows, mas é simples quando você entende. Expandirei esta seção em breve com mais contexto.
SÍMBOLO | SIGNIFICADO |
---|---|
– | arquivo normal |
d | diretório |
EU | Link (simbólico) |
c | Dispositivo de personagem |
sim | Plugue |
p | Tubo nomeado |
b | bloqueo dedispositivo |
Permissões
Agora você pode dizer o que é aquela string de aparência misteriosa rwxrwxrwx quando invoca ls -l
CÓDIGO | DESCRIÇÃO |
---|---|
sim | setuid quando na coluna do usuário |
sim | setgid quando na coluna do grupo |
t | pedaço pegajoso |
0—— | O direito de acesso que este local deveria ter não é concedido. |
4—–r | O acesso de leitura é concedido à categoria de usuário definida aqui. |
2—–w | A permissão de gravação é concedida à categoria de usuário definida aqui. |
1—–x | A permissão de execução é concedida à categoria de usuário definida aqui. |
ou | Autorizações de usuário |
g | permissões de grupo |
oh | outras permissões |
Arquivos especiais
Arquivos que são lidos pelo shell. Listado por ordem de execução.
ARQUIVO | INFORMAÇÃO |
---|---|
/etc/perfil | Executado automaticamente no login |
~.bash_profile ——————— ~/.bash_login ——————— ~.profile | O que for encontrado primeiro será executado no login. |
~/.bashrc | Ele é lido por todos os shells que não são de login. |
Manipulação de cordas
Bash suporta um número surpreendentemente grande de operações de string! Infelizmente, essas ferramentas carecem de uma abordagem unificada. Alguns são um subconjunto de substituição de parâmetros e outros se enquadram na funcionalidade do comando expr do UNIX. Isso resulta em sintaxe de comando inconsistente e sobreposição de recursos. O bash integrado do MacOS é de 2007 e não oferece suporte a muitos deles.
Tabela de manipulação de strings
PADRÃO | DESCRIÇÃO |
---|---|
${#var} | Encontre o comprimento da corda. |
${var%padrão} | Remover do padrão final mais curto |
${var%%padrão} | Remover do padrão final mais longo |
${var:posição} | Extraia a substring de $var para $position |
${var:num1:num2} | Substring |
${var#padrão} | Remover do padrão frontal mais curto |
${var##padrão} | Remover do padrão frontal mais longo |
${var/padrão/string} | Localizar e substituir (substituir apenas a primeira ocorrência) |
${var//padrão/string} | Encontre e substitua todas as ocorrências |
${!prefixo*} | Expande para nomes de variáveis cujos nomes começam com um prefixo. |
${var,}${var,padrão} | Converte o primeiro caractere em minúsculo. |
${var,,}${var,,padrão} | Converte todos os caracteres em letras minúsculas. |
${var^}${var^padrão} | Converte o primeiro caractere em maiúsculo. |
${var^^}${var^^padrão} | Converte todos os caracteres em letras maiúsculas. |
${string/substring/substituição} | Substitua a primeira correspondência de $substring por $replacement |
${string//substring/substituição} | Substitua todas as correspondências de $substring por $replacement |
${string/#substring/substituição} | Se $substring corresponder ao front end de $string, substitua $replacement por $substring |
${string/%substring/substituição} | Se $substring corresponder ao final de $string, substitua $replacement por $substring |
expr corresponde a “$string” '$substring' | Comprimento correspondente de $substring* no início de $string |
expr “$string”: '$substring' | Comprimento correspondente de $substring* no início de $string |
expr índice “$string” $substring | Posição numérica em $string do primeiro caractere em $substring* que corresponde a [0 se não houver correspondência, o primeiro caractere conta como posição 1] |
expr substr $string $posição $comprimento | Extraia $length caracteres de $string começando em $position [0 se não houver correspondência, o primeiro caractere conta como posição 1] |
expr corresponde a “$string” '($substring)' | Extraia $substring*, pesquisando desde o início de $string |
expr “$string”: '($substring)' | Extraia $substring*, pesquisando desde o início de $string |
expr corresponde a “$string” '.*($substring)' | Extraia $substring*, pesquisando a partir do final de $string |
expr “$string”: '.*($substring)' | Extraia $substring*, pesquisando a partir do final de $string |
Citando
O texto a seguir mostra caracteres que devem ser citados se você quiser usar seus símbolos literais e não seu significado especial.
SÍMBOLO | SIGNIFICADO LITERAL |
---|---|
; | Separador de comando |
& | Correndo em segundo plano |
() | Agrupamento de Comando |
| | Tubo |
< > & | Redirecionar símbolos |
? [ ] ~ + – @ ! | Metacaracteres de nome de arquivo |
«' | Usado para citar caracteres. |
$ | Substituição de variável, comando ou aritmética |
# | Iniciar um comando que termine com uma quebra de linha |
nova linha da tabulação de espaço | separadores de palavras |
Tudo entre "..." é interpretado literalmente, exceto $(dollar)` (aspas crases) e » (aspas duplas).
Tudo entre '…' é interpretado literalmente, exceto '(aspas simples).
Os itens a seguir são interpretados literalmente. Use-o para escapar de qualquer coisa em "..." ou '..."
Usar $ antes de '…' ou '…' causa um comportamento especial. $»…» é o mesmo que «…» exceto que a tradução local é realizada. Da mesma forma, $'…' é semelhante a $'…' exceto que a string entre aspas é processada para sequências de escape.
Parâmetros de comando
Parâmetros de comando, também conhecidos como argumentos, são usados ao invocar um script Bash.
DOMÍNIO | DESCRIÇÃO |
---|---|
US$ 0 | Nome do próprio script. |
US$ 1… US$ 9 | Parâmetro 1…9 |
${10} | Parâmetro posicional 10 |
$* | Ele se expande para parâmetros posicionais, começando em um. Quando a expansão ocorre entre aspas duplas, ela se expande para uma única palavra com o valor de cada parâmetro separado pelo primeiro da variável de ambiente IFS. |
$- | Opções atuais |
$_ | A variável de sublinhado é definida quando o shell é iniciado e contém o nome absoluto do arquivo do shell ou script que está sendo executado conforme passado na lista de argumentos. Em seguida, é expandido para o último argumento do comando anterior, após a expansão. Também é definido o caminho completo de cada comando executado e colocado no ambiente exportado para esse comando. Ao verificar mensagens, este parâmetro contém o nome do arquivo de mensagens. |
$$ | ID do processo shell |
$? | Status de saída do comando executado mais recentemente |
$@ | Todos os argumentos como palavras separadas. |
$# | Número de argumentos |
$! | PID do processo em segundo plano mais recente |
Expansão da história
Permite o uso e manipulação de comandos anteriores.
DOMÍNIO | DESCRIÇÃO |
---|---|
! | Uma substituição histórica começa. |
!! | Refere-se ao último comando. |
!n | Refere-se à <n>-ésima linha de comando. |
!-n | Refere-se à linha de comando atual menos <n>. |
!corda | Refere-se ao comando mais recente começando com <string> |
!?corda? | Refere-se ao comando mais recente contendo <string> (a terminação ? é opcional) |
^string1^string2^ | Substituição rápida. Repita o último comando, substituindo <string1> por <string2>. |
!# | Refere-se a toda a linha de comando escrita até agora. |
Operações variáveis
Execute operações em variáveis.
EXPRESSÃO |
---|
${parameter:-defaultValue} Obtenha o valor padrão das variáveis do shell |
${parameter:=defaultValue} Defina o valor padrão das variáveis do shell |
${parameter:?”Error Message”} Exibe uma mensagem de erro se o parâmetro não estiver definido |
Bash Globing
Bash não consegue reconhecer RegEx, mas entende globbing. O shell realiza a globalização de nomes de arquivos, enquanto RegEx é usado para pesquisar texto.
Símbolo | DESCRIÇÃO |
---|---|
* | Corresponde a zero ou mais ocorrências de um determinado padrão |
? | Corresponde a zero ou uma ocorrência de um determinado padrão |
+ | Corresponde a uma ou mais ocorrências de um determinado padrão |
! | Negates any pattern matches — reverses the pattern so to speak |
Expressões regulares
Sempre use aspas em seu RegEx para evitar globbing
OPERADOR | EFEITO |
---|---|
. | Corresponde a qualquer caractere individual. |
? | O item anterior é opcional e será correspondido, no máximo, uma vez. |
* | O elemento anterior corresponderá zero ou mais vezes. |
+ | O elemento anterior corresponderá uma ou mais vezes |
{N} | O elemento anterior corresponde exatamente N vezes. |
{N,} | O elemento anterior corresponde N ou mais vezes. |
{N, M} | O elemento anterior corresponde pelo menos N vezes, mas não mais do que M vezes. |
– | Representa o intervalo se não for o primeiro ou o último em uma lista ou o ponto final de um intervalo em uma lista. |
^ | Corresponde à string vazia no início de uma linha; também representa caracteres que não estão no intervalo de uma lista. |
$ | Corresponde à string vazia no final de uma linha. |
[aoeiAOEI] | Corresponde a qualquer caractere da lista. |
[^AOEIaoei] | Corresponde a qualquer caractere que não esteja na lista! |
[af] | Corresponde a qualquer caractere no intervalo af |
Em expressões regulares básicas, os metacaracteres «?», «+», «{«, «|», «(» e «)» perdem seu significado especial; em vez disso, use a barra invertida "?" … «)». Verifique a documentação do sistema se os comandos que usam expressões regulares suportam expressões estendidas.
Classes de personagens em BRE
Uma classe de caracteres [:CharClass:] é um conjunto de padrões predefinidos e consiste no seguinte:
CLASSE DE PERSONAGEM | EQUIVALENTE | EXPLICAÇÃO |
---|---|---|
[:mais baixo:] | [az] | Letras minúsculas. |
[:superior:] | [AZ] | Letras maiúsculas |
[:alfa:] | [A-Za-z] | Letras alfabéticas, maiúsculas e minúsculas. |
[:dígito:] | [0-9] | Números 0-9. |
[:alnum:] | [a-zA-Z0-9] | Alfanumérico: letras (maiúsculas + minúsculas) e dígitos. |
[:xdígito:] | [0-9A-Fa-f] | Dígitos hexadecimais. |
[:espaço:] | [\t\n\r\f\v] | Espaço em branco. Espaços, tabulações, novas linhas e assim por diante. |
[:ponto:] | Símbolos (menos dígitos e letras). | |
[:imprimir:] | [[:gráfico] ] | Caracteres imprimíveis (espaços incluídos). |
[:em branco:] | [\ t] | Somente caracteres de espaço e tabulação. |
[:gráfico:] | [^ [:cntrl:]] | Caracteres imprimíveis graficamente sem incluir espaços. |
[:cntrl:] | Personagens de controle. Caracteres não imprimíveis |
Adições de casca
As compilações de shell integradas do Bash são normalmente muito (se não extremamente) rápidas em comparação com programas externos. Algumas das funções integradas são herdadas do Bourne Shell (sh); Esses comandos legados também funcionarão no Bourne Shell original.
CONSTRUÍDAS EM | DESCRIÇÃO |
: | Equivalente a verdadeiro. |
. | Lê e executa comandos de um arquivo designado no shell atual. |
[ | É sinônimo de prova, mas requer um argumento final de ]. |
apelido | Define um alias para o comando especificado. |
b.g. | Retome um trabalho em modo de segundo plano. |
vincular | Vincula uma sequência de teclado a uma função ou macro de linha de leitura. |
quebrar | Sai de um loop for, while, select ou Until. |
construídas em | Executa o comando integrado para o shell especificado. |
chamador | Retorna o contexto de quaisquer chamadas de sub-rotina ativas. |
caso | |
CD | Altera o diretório atual para o diretório especificado. |
comando | Executa o comando especificado sem a pesquisa normal do shell. |
compgen | Gera possíveis correspondências finais para a palavra especificada. |
completo | Mostra como as palavras especificadas seriam completadas. |
comopt | |
continuar | Retomar a próxima iteração de um loop for, while, select ou Until. |
declarar | Declare uma variável ou tipo de variável. |
você dirá | Exibe uma lista de diretórios atualmente lembrados. |
renegar | Exclui os trabalhos especificados da tabela de trabalhos do processo. |
jogou fora | Exibe a string especificada em STDOUT. |
habilitar | Ativa ou desativa o comando shell integrado especificado. |
avaliação | Concatena os argumentos especificados em um único comando e executa o comando. |
executivo | Substitui o processo shell pelo comando especificado. |
saída | Força a saída do shell com o status de saída especificado. |
exportar | Define as variáveis especificadas para estarem disponíveis para processos shell filho. |
FC | Selecione uma lista de comandos na lista do histórico. |
fg | Retome um trabalho no modo close-up. |
obter opções | Analisa os parâmetros posicionais especificados. |
cerquilha | Encontra e lembra o caminho completo do comando especificado. |
ajuda | Exibe um arquivo de ajuda. |
história | Mostra o histórico de comandos. |
se | Usado para ramificação. |
empregos | Lista trabalhos ativos. |
matar | Envia um sinal do sistema para o ID de processo (PID) especificado. |
deixar | Avalie cada argumento em uma expressão matemática. |
local | Crie uma variável de escopo limitado em uma função. |
sair | Sai de um shell de login. |
arquivo de mapa | |
popd | Remove entradas da pilha de diretórios. |
imprimir | Exibe texto usando strings formatadas. |
empurrado | Adiciona um diretório à pilha de diretórios. |
senha | Exibe o nome do caminho do diretório de trabalho atual. |
ler | Lê uma linha de dados de STDIN e a atribui a uma variável. |
somente leitura | Lê uma linha de dados de STDIN e a atribui a uma variável que não pode ser alterada. |
retornar | Força a saída de uma função com um valor que pode ser recuperado pelo script de chamada. |
definir | Define e exibe valores de variáveis de ambiente e atributos de shell. |
mudança | Abaixe os parâmetros posicionais uma posição. |
comprar | Alterna os valores das variáveis que controlam o comportamento opcional do shell. |
fonte | Lê e executa comandos de um arquivo designado no shell atual. |
suspender | Suspende a execução do shell até que um sinal SIGCONT seja recebido. |
teste | Retorna um status de saída 0 ou 1 dependendo da condição especificada. |
vezes | Mostra o tempo acumulado do sistema e do shell do usuário. |
armadilha | Executa o comando especificado se o sinal do sistema especificado for recebido. |
tipo | Mostra como as palavras especificadas seriam interpretadas se usadas como um comando. |
formatado | Declare uma variável ou tipo de variável. |
limite | Define um limite no recurso específico para usuários do sistema. |
umask | Defina permissões padrão para arquivos e diretórios recém-criados. |
unalias | Exclua o alias especificado. |
um conjunto | Exclui a variável de ambiente ou atributo shell especificado. |
até | Loop que é muito semelhante ao loop while, exceto que é executado até que o comando de teste seja executado com sucesso. Enquanto o comando de teste falhar, o loop até continuará. |
espere | Faça o shell esperar que um trabalho termine. |
enquanto | Aguarda a conclusão do processo especificado e retorna o status de saída. |
Visão geral dos símbolos Bash
Aqui reunimos uma coleção de toda a sintaxe misteriosa junto com uma breve descrição. Muitos desses símbolos são repetidos anteriormente, mas muitos são novos; Este é um bom ponto de partida se você for novo no idioma.
SÍMBOLO | REFERÊNCIA RÁPIDA |
---|---|
# | usado para comentários |
$ | É usado para parâmetros e variáveis. Tem muitos casos extremos. |
() | É usado para executar comandos em um subshell. |
$ | é usado para salvar a saída de comandos que são enviados para serem executados em um subshell. |
(( )) | É usado para aritmética. |
$() | é usado para recuperar a saída de expressões aritméticas, seja para uso com um comando ou para salvar a saída em uma variável. |
$[ ] | construção de expansão inteira obsoleta substituída por $(( )). Avalia números inteiros entre colchetes |
[ ] | Ele é usado para testes e é integrado. É útil em alguns casos para expansão de nomes de arquivos e manipulação de strings. |
[[ ]] | É usado para testes. Este é o que você deve usar, a menos que consiga pensar em um motivo para não fazê-lo. |
<( ) | É utilizado para substituição de processos e é semelhante a um tubo. Pode ser usado sempre que um comando espera um arquivo e pode usar vários de uma vez. |
{ } | É usado para expansão de sequência. |
${ } | É usado para interpolação de variáveis e manipulação de strings. |
| | é um canal usado para encadear comandos. |
< | usado para alimentar comandos de um arquivo |
> | é usado para enviar resultados para um arquivo e excluir qualquer conteúdo anterior desse arquivo. |
| | | lógico ou |
&& | lógico e |
– | usado para prefixos de opções |
- | usado para prefixos de opções longos |
& | usado para enviar um trabalho para segundo plano |
<<PALAVRA<<-PALAVRA | usado para heredocs |
<<'PALAVRA'<<-'PALAVRA' | strings são usadas aqui |
<<< | usado para adicionar saída a um arquivo. |
>> | Aspas simples são usadas para preservar o valor literal. |
' ' | Aspas duplas são usadas para preservar o valor literal de todos os caracteres, exceto $, `` e |
» « | A barra invertida é usada para escapar de símbolos/caracteres interpretados de outra forma que tenham um significado especial. |
\ | usado para separar os componentes de um nome de arquivo |
/ | semelhante a um NOP: uma operação sem fazer nada. É um shell integrado com um status de saída verdadeiro. |
: | Usado para separar comandos destinados a serem executados sequencialmente. |
; | É usado para vincular operações aritméticas. Todos são avaliados, mas apenas o último é retornado. |
, | representa o diretório atual. |
. | representa o diretório principal. |
.. | expande para o diretório inicial. |
~ | Está obsoleto e não deve ser usado. Leia mais em sua respectiva seção. |
`` | Está obsoleto e não deve ser usado. Leia mais em sua respectiva seção. |
Controle de fluxo
As estruturas de fluxo de controle no Bash são simples, embora o Bash seja implacável se você errar na sintaxe.
Veja exemplos de como usar o fluxo de controle no bash.
ESTRUTURA DE SINTAXE | PALAVRAS- CHAVE OU SÍMBOLOS | DESCRIÇÃO |
---|---|---|
Se | sim, então fi | Teste uma condição. |
Se-outro | sim então sim não fi | Teste uma condição e use um substituto se o teste falhar. |
if-elif-else | se então elif se não fi | Fornece testes adicionais e um substituto se todos os testes falharem. Você pode omitir as condições elif ou adicionar quantas condições intermediárias desejar. Da mesma forma, você pode pular o recurso else. |
Para | para fazer | Itere sobre uma sequência, uma lista ou qualquer coisa, tanto quanto a imaginação permitir. |
Enquanto | enquanto faz | Enquanto uma condição for verdadeira, repita até que essa condição não seja mais verdadeira. |
Até | até terminar | O inverso do loop while: enquanto o comando de teste falhar, o loop até continua. |
Selecione | selecione o que fazer | É usado para gerar menus facilmente. Qualquer declaração dentro dela pode ser outra construção de seleção, permitindo assim a criação de submenus. |
caso | caso ) ;; que C | Alternativa se filial. Cada caso é uma expressão que corresponde a um determinado padrão (ou seja, um caso). |
Perguntas frequentes
O que $1 e $2 significam no Bash?
Estes seriam "parâmetros posicionais" em um script bash. Neste contexto, eles se refeririam ao primeiro e ao segundo argumentos passados ao script. Por exemplo, se você escreveu um script chamado “myTestScript.sh” com dois argumentos, como:
./myTestScript.sh arg1 arg2
$1 se referiria ao primeiro argumento e $2 se referiria ao segundo.
O que é $ no Bash?
$ representa uma variável, que pode ser usada para armazenar valores como números, strings ou arrays. Você usa $ para chamar essa variável em um script.
Por exemplo, se você definir uma variável como esta: fav_color=blue
Você pode invocá-lo em um script com a linha: echo “Minha cor favorita é $fav_color” para a resposta “Minha cor favorita é azul”
O Bash é mais fácil do que o Python?
Embora as duas linguagens sejam semelhantes em muitos aspectos, diríamos que o Bash provavelmente seria mais fácil de aprender.
Dizemos isso não porque haja uma curva de aprendizado acentuada para Python, pois você pode aprender o básico de qualquer um deles aproximadamente no mesmo tempo. Python é simplesmente capaz de realizar operações mais complexas; portanto, à medida que você avança em seu aprendizado, há mais para abordar em Python.
Como executar o comando Bash no Windows Powershell?
Para executar o Bash em um sistema Windows, você precisa instalar o Windows Subsystem for Linux . Conforme descrito no site da Microsoft,
“O subsistema Windows para Linux permite que os desenvolvedores executem um ambiente GNU/Linux (incluindo a maioria das ferramentas, utilitários e aplicativos de linha de comando) diretamente no Windows, sem modificação, sem a sobrecarga de uma máquina virtual tradicional ou configuração de inicialização dupla. «
Conclusão
Ao fecharmos este Guia rápido do BASH, detalhamos os segredos para otimizar a experiência do terminal. Desde a personalização da interface até a execução eficiente de comandos, essas dicas e truques não apenas economizam tempo, mas também aumentam as habilidades de segurança cibernética. O terminal BASH, quando dominado, torna-se uma ferramenta poderosa para profissionais que buscam aprimorar sua arte em defesa digital.
Esperamos que você tenha achado esta folha de dicas útil. O terminal bash é uma ferramenta poderosa para automatizar tarefas e gerenciar configurações. É útil para todos, desde administradores de sistema, desenvolvedores e pessoal de segurança cibernética até o usuário médio que escolhe o Linux como driver diário.
Recomendamos que você dê uma olhada em nossa folha de referências da linha de comando do Linux para desenvolver totalmente sua base de conhecimento e aproveitar ao máximo a linha de comando.
Aprenda Linux do zero e prepare-se para a Certificação LPIC-1.
Este curso começa do início, ensinando o mais básico, acompanhando você em cada passo e dúvida que você tiver até atingir o conhecimento necessário para que, se quiser, possa trabalhar com Linux e tirar a certificação LPIC-1.
Sou conhecido por ter muita prática em meus cursos, e este não é exceção. Além do mais, forneço Modelos de Exames de Certificação para que você possa praticar e ver o que o espera quando fizer o exame.
Meu nome é Álvaro Chirou , tenho mais de 20 anos de experiência trabalhando em Tecnologia , já fiz apresentações em eventos internacionais como OWASP, tenho mais de 500 mil alunos na Udemy e 100 cursos de formação profissional ministrados lá.
Comece a aprender agora mesmo e junte-se a mim neste curso incrível.
O que você aprenderá:
- Automatize processos no Linux com Bash
- Comandos Linux do básico ao avançado.
- Faça conexões seguras com SSH do Linux e Windows
- Obtenha a certificação em LPIC 1 para ter uma maior oportunidade de trabalho
- Você praticará com modelos de exames REAIS da certificação LPIC 1
- Segurança informática em Linux
- Rede no Linux
- Como realizar tarefas administrativas
Comece do 0 no Linux. Prepare a Certificação LPIC-1 com todo o conteúdo teórico, prática e modelos de exames: https://achirou.com/certificacion-lpic-linux
Comentários
Postar um comentário