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

bashComodines de larga duración en el entorno operativo

Símbolo Significado
* Representa [0 al infinito] cualquier caracter
? Representa [debe tener uno] cualquier carácter
[] Significa que debe haber un personaje entre paréntesis
[-] Cuando este carácter tiene un signo menos, en nombre de [cualquier carácter en la secuencia de codificación], por ejemplo, [0-9] representa 0los 9todos los números entre
[^] Si el primer carácter entre paréntesis es un símbolo exponente [^], la selección se invierte durante la tabla. Por ejemplo, [^abc]representativo, debe haber un carácter, siempre que a,b,clos otros caracteres

bashSímbolos especiales en el medio ambiente

Símbolo Contenido
# Símbolo de comentario
\ Caracteres escapados: restaurar [caracteres especiales o comodines] a caracteres normales
| Tubería: separe dos comandos de tubería
; Separador de ejecución de comando continuo: la definición de comandos continuos (no es lo mismo que los comandos de canalización)
~ Directorio de inicio del usuario
$ Use la variable líder para agregar un valor de sustitución de variable antes de la variable
& Gestión de trabajos (control de trabajos): convierta los comandos en tareas en segundo plano
! [NO]
/ Símbolo de directorio: separador de ruta
>、>> Redirección de flujo de datos: orientación de salida, reemplazo y acumulación respectivamente
'' Comillas simples, sin la función de sustitución de variables.
"" Comillas dobles, con la función de sustitución de variables.
() En el medio está el inicio y el final de la subshell
{} En el medio hay una combinación de bloques de comando

1. redirección de flujo de datos

La redirección de flujo de datos (redirección) se refiere a los datos que deberían aparecer en la pantalla después de ejecutar un comando y los guarda en otros lugares. Por ejemplo, archivos o dispositivos (impresoras, etc.)

1. ¿Qué es la redirección de flujo de datos?

Después de ejecutar el comando, la salida estándar (STDOUT) y la salida de error estándar (STDERR) se generarán en la pantalla de forma predeterminada.

  • La salida estándar (STDOUT) se
    refiere a la información correcta devuelta por la ejecución del comando
  • Salida de error estándar (STDERR)
    La salida de error estándar puede entenderse después de que la ejecución del comando falla, el
    flujo de datos de información de error devuelto puede redirigir la salida estándar (stdout) y la salida de error estándar (stderr) a otros archivos o dispositivos, respectivamente. , Los caracteres especiales utilizados para la transmisión son los siguientes:
  • Entrada estándar (stdin): el código es 0, use <o<<
  • Salida estándar (stdout): el código es 1, use >o>>
  • Salida de error estándar (stderr): el código es 2, use 2>o2>>

2. ¿Cuándo usar la redirección de flujo de datos?

  • La información en la pantalla es importante, y cuando necesitamos guardarla
  • Programa que se ejecuta en segundo plano, no quiero que interfiera con la salida normal de la pantalla
  • Algunos comandos de ejecución pueden [2>null]descartarse cuando se conoce el mensaje de error
  • Cuando la información de error y la información correcta deben enviarse por separado

3. Base de juicio para la ejecución del comando:;, &&, ||

  • cmd;cmd(Ejecución continua de comandos independientemente de la correlación de comandos)
  • $?(命令返回值)Con &&o||
Ejecución del comando Explicación
cmd1&&cmd2 Si la cmd1ejecución se completa y se ejecuta correctamente ($? = 0), la ejecución comenzará cmd2, de lo contrario cmd2no se ejecutará
cmd1||cmd2 Si la cmd1ejecución se completa y es correcta e incorrecta ($? ≠ 0), la ejecución comienzacmd2

En segundo lugar, el comando de canalización (tubería)

La tubería de comando de canalización no es lo mismo que el comando continuo. Debe prestar atención a los siguientes dos puntos:

  • Los comandos de canalización solo procesan la salida estándar e ignoran los errores estándar
  • Los comandos de canalización deben poder aceptar datos del comando anterior como entrada estándar para continuar el procesamiento

1. Seleccione el comando: cortar , grep

Aquí hay dos comandos de selección de información de uso común

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

Ejemplo 1:
[Error en la transferencia de la imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-xZ1fHR1p-1586780751510) (C: \ Users \ lee \ AppData \ Roaming \ Typora \ typora-user -images \ 1586761690172.png)]
Ejemplo 2 (solo se muestran los datos después del 12º carácter):

[Falló la transferencia de la imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-iaQ8fUye-1586780751512) (C: \ Users \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586761804497.png)]
cutEl objetivo principal es descomponer los datos en la misma fila, pero será más difícil cuando se procesen datos conectados por múltiples espacios.

  • grep
    grepes analizar una línea de información, si se necesita información, retire la línea
  `grep` [-acinv] [--color=auto] `查找字符` filename
#选项与参数
  `-a`:将二进制文件以文本文件的方式查找数据
  `-c`:计算找到`查找字符`的次数
  `-i`:忽略大小写
  `-n`:顺便输出行号
  `-v`:反向选择,显示出没有`查找字符`内容的那一行

Ejemplos:

[Falló la transferencia de imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-DQmwe2tU-1586780751513) (C: \ Users \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586770518712.png)]

[Falló la transferencia de imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-uLsXvJl7-1586780751514) (C: \ Users \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586770638578.png)]

2. Comandos de clasificación: 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
    wcse puede usar para calcular los datos generales de la información de salida
  wc [-lwm]
#选项与参数
`-l`: 仅列出行
`-w`:仅列出多少字(英文字母)
`-m`:多少字符

[Falló la transferencia de la imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-iQPHYVHD-1586780751515) (C: \ Users \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586775173306.png)]

3. Doble redirección: tee

teeEl flujo de datos se puede enviar al archivo y la pantalla, y la función de salida a la pantalla es stdoutsimilar

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

4. Comandos de conversión de caracteres: tr, col, join, paste, expand

Como se mencionó anteriormente, el carácter de DOSnueva línea UNIXes diferente del carácter de nueva línea. Puede usar dos2unixy unix2dospara completar la conversión. A continuación se describen los comandos que se reemplazan por otros caracteres de uso común.

  • tr se
    trusa para eliminar el texto del mensaje o para reemplazar el mensaje de texto
  tr [-ds] SET1
`-d`:删除信息当中的 SET1字符
`-s`:替换掉重复的字符
  • columna
#选项与参数
`-x`:将tab键转换成对等的空格键
  • join
    joinse usa para procesar datos entre dos archivos,
  join [-ti12] file1 file2
#选项与参数
`-t`:join默认以空格字符分割数据,并且比对[第一个栏位]的数据,若相同,则将两条数据连城一行
`-i`:忽略大小写差异
`-1`:代表[第一个文件要用哪个栏位来分析]
`-2`:代表[第二个文件要用哪个栏位来分析]
  • pegar
  paste [-d] file1 file2
#选项与参数
`-d`:后面可以分割字符,默认以[tab]来分割
`-`:file部分可以写成-,表示来自标准输入
  • expandir
#将[tab]键转成空格
  • expandir espacios de conversión a [tab]

5. Comando dividir: dividir

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

6. Sustitución de parámetros: xargs

xargs

xargs
#这个参数不明白

7. Uso del signo menos

Cuando algunos comandos necesitan utilizar un nombre de archivo para ser procesado, stdiny stdoutpuede -ser reemplazado, por ejemplo

[Falló la transferencia de la imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-WVxvrQ0i-1586780751517) (C: \ Users \ lee \ AppData \ Roaming \ Typora \ typora-user-images \ 1586779304393.png)]

3. Revisión clave

  • shellRazones para aprender : Linuxmuchos de los sistemas de gestión de comandos están shellescritos en
  • bashLas funciones principales: comando de historial, función de finalización de comando y archivo, función de configuración de alias de comando, gestión de tareas, control de primer plano y fondo, script programático, comodín
  • envCon exportvariables de entorno observables, exportpuede convertir variables personalizadas en variables de entorno
  • setPuede observar bashtodas las variables en el entorno actual.
  • $?, Que representa el valor de retorno del comando anterior y que Linuxdevuelve 0 representa una ejecución exitosa
  • Los comodines son: *,?, [], Etc.
  • La redirección del flujo de datos utiliza símbolos como>, 2>, <para transferir la información de salida a otros dispositivos
  • comando de tubería cutson: grep, sort, wc, uniq, tee, tr,, splitetc.
  • El punto principal del comando de canalización es que el comando de canalización solo procesará la salida estándar e ignorará los errores estándar.

Variable

  • $?, Que representa el valor de retorno del comando anterior y que Linuxdevuelve 0 representa una ejecución exitosa
  • Los comodines son: *,?, [], Etc.
  • La redirección del flujo de datos utiliza símbolos como>, 2>, <para transferir la información de salida a otros dispositivos
  • comando de tubería cutson: grep, sort, wc, uniq, tee, tr,, splitetc.
  • El punto principal del comando de canalización es que el comando de canalización solo procesará la salida estándar e ignorará los errores estándar.
33 artículos originales publicados · elogiados 4 · 30,000+ vistas

Supongo que te gusta

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