Curingas e símbolos especiais
- 1. Redirecionamento de fluxo de dados
- 1. O que é redirecionamento de fluxo de dados
- 2. Quando usar o redirecionamento de fluxo de dados?
- 3. Base de julgamento para a execução do comando:;, &&, ||
- Segundo, o comando pipeline (pipe)
- 1. Selecione os comandos: ** cut **, ** grep **
- 2. Comandos de classificação: ** sort **, ** wc **, ** uniq **
- 3. Redirecionamento duplo: tee
- 4. Comandos de conversão de caracteres: tr, col, ingressar, colar, expandir
- 5. Comando de divisão: divisão
- 6. Substituição de parâmetro: xargs
- 7. Uso do sinal de menos
- 3. Revisão chave
bash
Curingas 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 0 os 9 todos 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,c os outros caracteres |
bash
Sí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 cmd1 execução for concluída e executada corretamente ($? = 0), a execução será iniciada cmd2 , caso contrário, cmd2 não será executada |
cmd1||cmd2 |
Se a cmd1 execuçã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)]
cut
O 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
wc
pode 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
tee
O fluxo de dados pode ser enviado para arquivo e tela, e a função de saída para tela é stdout
semelhante
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 DOS
nova linha UNIX
é diferente do caractere de nova linha.Você pode usar dos2unix
e unix2dos
concluir a conversão.O seguinte descreve os comandos que são substituídos por outros caracteres comumente usados.
- tr é
tr
usado 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, stdin
e stdout
pode -
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
shell
Razões para aprender :Linux
Muitos dos sistemas de gerenciamento de comandos estãoshell
escritos embash
As 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, curingaenv
Comexport
variáveis de ambiente observáveis,export
você pode converter variáveis personalizadas em variáveis de ambienteset
Pode observarbash
todas as variáveis no ambiente atual$?
, Representando o valor de retorno do comando anterior eLinux
retornar 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
cut
são:grep
,sort
,wc
,uniq
,tee
,tr
,,split
etc. - 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 eLinux
retornar 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
cut
são:grep
,sort
,wc
,uniq
,tee
,tr
,,split
etc. - O ponto principal do comando pipeline é que o comando pipeline processará apenas a saída padrão e ignorará os erros padrão.