Linux Learning-Bird Brother-Capítulo 10-Bash Aprendizado

bashCuringas de longa duração no ambiente operacional

Símbolo Significado
* Representa [0 ao infinito] qualquer caractere
? Representa [deve ter um] qualquer caractere
[] Significa que deve haver um caractere entre parênteses
[-] Quando esse personagem tem um sinal de menos, em nome de [qualquer caractere na seqüência de codificação], por exemplo, [0-9] representa 0os 9todos os números entre
[^] Se o primeiro caractere entre colchetes for um símbolo de expoente [^], a seleção será revertida durante a tabela. Por exemplo, [^abc]representativo, deve haver um caractere, desde que a,b,cos outros caracteres

bashSímbolos especiais no meio ambiente

Símbolo Conteúdo
# Símbolo de comentário
\ Caracteres escapados: restaura [caracteres especiais ou curingas] para caracteres normais
| Tubo: Separe dois comandos de tubo
; Separador de execução de comando contínuo: a definição de comandos contínuos (não iguais aos comandos de pipeline)
~ Diretório inicial do usuário
$ Use líder de variável para adicionar valor de substituição variável antes da variável
& Gerenciamento de tarefas (controle de tarefas): transforme comandos em tarefas em segundo plano
! [NÃO]
/ Símbolo do diretório: separador de caminho
>、>> Redirecionamento de fluxo de dados: orientação da saída, respectivamente substituição e acumulação
'' Aspas simples, sem a função de substituição de variável
"" Aspas duplas, com a função de substituição de variável
() No meio está o começo e o fim do subshell
{} No meio é uma combinação de blocos de comando

1. Redirecionamento de fluxo de dados

O redirecionamento de fluxo de dados (redirecionamento) refere-se aos dados que devem aparecer na tela após a execução de um comando e os salva em outros locais. Por exemplo, arquivos ou dispositivos (impressoras, etc.)

1. O que é redirecionamento de fluxo de dados

Após a execução do comando, a saída padrão (STDOUT) e a saída de erro padrão (STDERR) serão geradas na tela por padrão.

  • Saída padrão (STDOUT)
    refere-se às informações corretas retornadas pela execução do comando
  • Saída de erro padrão (STDERR)
    A saída de erro padrão pode ser entendida como após a execução do comando falhar, o
    fluxo de dados de informações de erro retornado pode redirecionar a saída padrão (stdout) e a saída de erro padrão (stderr) para outros arquivos ou dispositivos, respectivamente. , Os caracteres especiais usados ​​para transmissão são os seguintes:
  • Entrada padrão (stdin): o código é 0, use <ou<<
  • Saída padrão (stdout): o código é 1, use >ou>>
  • Saída de erro padrão (stderr): o código é 2, use 2>ou2>>

2. Quando usar o redirecionamento de fluxo de dados?

  • As informações na tela são importantes e quando precisamos salvá-las
  • Programa em execução em segundo plano, não deseja que ele interfira na saída normal da tela
  • Alguns comandos de execução podem [2>null]ser descartados quando a mensagem de erro é conhecida
  • Quando as informações de erro e as informações corretas precisam ser exibidas separadamente

3. Base de julgamento para a execução do comando:;, &&, ||

  • cmd;cmd(Execução contínua de comandos, independentemente da correlação de comandos)
  • $?(命令返回值)Com &&ou||
Execução de comando Explicação
cmd1&&cmd2 Se a cmd1execução for concluída e executada corretamente ($? = 0), a execução será iniciada cmd2, caso contrário, cmd2não será executada
cmd1||cmd2 Se a cmd1execução estiver concluída e correta e incorreta ($? ≠ 0), a execução começarácmd2

Segundo, o comando pipeline (pipe)

O canal de comando do pipeline não é o mesmo que o comando contínuo.Você precisa prestar atenção aos dois pontos a seguir:

  • Os comandos de pipeline processam apenas a saída padrão e ignoram erros padrão
  • Os comandos de pipeline devem poder aceitar dados do comando anterior como entrada padrão para continuar processando

1. Selecione o comando: cut , grep

Aqui estão dois comandos de seleção de informações comumente usados

  • cortar
  cut -d'分割字符' -f fields <==用于有特定分隔字符
  cut -c 字符区间 			 <==用于排列整齐的信息
#选项与参数
  `-d`:后面接分割字符,与`f`一起使用
  `-f`:根据`-d`的分割字符将一段信息划分为数段,用`-f`取出第几段
  `-c`:以字符的单位取出固定字符区间

Exemplo 1:
[Falha na transferência de imagem da cadeia externa, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-xZ1fHR1p-1586780751510) (C: \ Usuários \ lee \ AppData \ Roaming \ Typora \ typora-user -images \ 1586761690172.png)]
Exemplo 2 (somente dados após o 12º caractere são exibidos):

[Falha na transferência da imagem da cadeia externa, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-iaQ8fUye-1586780751512) (C: \ Usuários \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586761804497.png)]
cutO objetivo principal é decompor os dados na mesma linha, mas será mais difícil ao processar dados conectados por vários espaços.

  • grep
    grepé analisar uma linha de informação, se houver informação necessária, retire a linha
  `grep` [-acinv] [--color=auto] `查找字符` filename
#选项与参数
  `-a`:将二进制文件以文本文件的方式查找数据
  `-c`:计算找到`查找字符`的次数
  `-i`:忽略大小写
  `-n`:顺便输出行号
  `-v`:反向选择,显示出没有`查找字符`内容的那一行

Exemplos:

[Falha na transferência de imagem da cadeia externa, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-DQmwe2tU-1586780751513) (C: \ Usuários \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586770518712.png)]

[A transferência de imagem em cadeia externa falhou, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-uLsXvJl7-1586780751514) (C: \ Usuários \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586770638578.png)]

2. Comandos de classificação: sort , wc , uniq

  • ordenar
  sort [-fbMnrtuk] [file or stdin]
#选项与参数
`-f`:忽略大小写差异
`-b`:忽略最前面的空格字符部分
`-M`:以月份的名字来排序
`-n`:使用[纯数字]进行排序(默认是以文字的形式进行排序)
`-r`:反向排序
`-u`:uniq,相同的数据中,仅出现一行代表
`-t`:分隔符号,默认用[tab]来分割
`-k`:以哪个区间(field)进行排序。
  • uniq
#可以用来对排序好的数据进行去重处理
uniq [-ic]
`-i`:忽略大小写字符的不同
`-c`:进行计数
  • wc
    wcpode ser usado para calcular os dados gerais das informações de saída
  wc [-lwm]
#选项与参数
`-l`: 仅列出行
`-w`:仅列出多少字(英文字母)
`-m`:多少字符

[Falha na transferência da imagem da cadeia externa, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-iQPHYVHD-1586780751515) (C: \ Usuários \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586775173306.png)]

3. Redirecionamento duplo: tee

teeO fluxo de dados pode ser enviado para arquivo e tela, e a função de saída para tela é stdoutsemelhante

  tee [-a] file
#选项与参数
-a: 以累加的方式,将数据加入到file中
last | tee last.list | cut -d " " -f1

4. Comandos de conversão de caracteres: tr, col, ingressar, colar, expandir

Como mencionado anteriormente, o caractere de DOSnova linha UNIXé diferente do caractere de nova linha.Você pode usar dos2unixe unix2dosconcluir a conversão.O seguinte descreve os comandos que são substituídos por outros caracteres comumente usados.

  • tr é
    trusado para excluir o texto da mensagem ou substituir a mensagem de texto
  tr [-ds] SET1
`-d`:删除信息当中的 SET1字符
`-s`:替换掉重复的字符
  • col
#选项与参数
`-x`:将tab键转换成对等的空格键
  • join
    joiné usado para processar dados entre dois arquivos,
  join [-ti12] file1 file2
#选项与参数
`-t`:join默认以空格字符分割数据,并且比对[第一个栏位]的数据,若相同,则将两条数据连城一行
`-i`:忽略大小写差异
`-1`:代表[第一个文件要用哪个栏位来分析]
`-2`:代表[第二个文件要用哪个栏位来分析]
  • colar
  paste [-d] file1 file2
#选项与参数
`-d`:后面可以分割字符,默认以[tab]来分割
`-`:file部分可以写成-,表示来自标准输入
  • expandir
#将[tab]键转成空格
  • desdobrar converter espaços em [tab]

5. Comando de divisão: divisão

  split [-bl] file PREF
#选项与参数
`-b`:后面接想要划分成的文件大小,可以加单位
`-l`:以行数来进行划分

6. Substituição de parâmetro: xargs

xargs

xargs
#这个参数不明白

7. Uso do sinal de menos

Quando alguns comandos precisam usar um nome de arquivo para ser processado, stdine stdoutpode -ser substituído, por exemplo

[A transferência de imagem em cadeia externa falhou, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-WVxvrQ0i-1586780751517) (C: \ Usuários \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586779304393.png)]

3. Revisão chave

  • shellRazões para aprender : LinuxMuitos dos sistemas de gerenciamento de comandos estão shellescritos em
  • bashAs principais funções: comando de histórico, comando e função de conclusão de arquivo, função de configuração de apelido de comando, gerenciamento de tarefas, controle de primeiro plano e plano de fundo, script programático, curinga
  • envCom exportvariáveis ​​de ambiente observáveis, exportvocê pode converter variáveis ​​personalizadas em variáveis ​​de ambiente
  • setPode observar bashtodas as variáveis ​​no ambiente atual
  • $?, Representando o valor de retorno do comando anterior e Linuxretornar 0 representa a execução bem-sucedida
  • Os curingas são: *,?, [], Etc.
  • O redirecionamento de fluxo de dados usa símbolos como>, 2>, <para transferir as informações de saída para outros dispositivos
  • comando tubo cutsão: grep, sort, wc, uniq, tee, tr,, splitetc.
  • O ponto principal do comando pipeline é que o comando pipeline processará apenas a saída padrão e ignorará os erros padrão.

Variável

  • $?, Representando o valor de retorno do comando anterior e Linuxretornar 0 representa a execução bem-sucedida
  • Os curingas são: *,?, [], Etc.
  • O redirecionamento de fluxo de dados usa símbolos como>, 2>, <para transferir as informações de saída para outros dispositivos
  • comando tubo cutsão: grep, sort, wc, uniq, tee, tr,, splitetc.
  • O ponto principal do comando pipeline é que o comando pipeline processará apenas a saída padrão e ignorará os erros padrão.
Publicado 33 artigos originais · elogiado 4 · 30.000+ visualizações

Acho que você gosta

Origin blog.csdn.net/leaeason/article/details/105496665
Recomendado
Clasificación