Comodines y símbolos especiales
- 1. redirección de flujo de datos
- 1. ¿Qué es la redirección de flujo de datos?
- 2. ¿Cuándo usar la redirección de flujo de datos?
- 3. Base de juicio para la ejecución del comando:;, &&, ||
- En segundo lugar, el comando de canalización (tubería)
- 1. Seleccionar comandos: ** cortar **, ** grep **
- 2. Comandos de clasificación: ** sort **, ** wc **, ** uniq **
- 3. Doble redirección: tee
- 4. Comandos de conversión de caracteres: tr, col, join, paste, expand
- 5. Comando dividir: dividir
- 6. Sustitución de parámetros: xargs
- 7. Uso del signo menos
- 3. Revisión clave
bash
Comodines 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 0 los 9 todos 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,c los otros caracteres |
bash
Sí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 cmd1 ejecución se completa y se ejecuta correctamente ($? = 0), la ejecución comenzará cmd2 , de lo contrario cmd2 no se ejecutará |
cmd1||cmd2 |
Si la cmd1 ejecució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)]
cut
El 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
grep
es 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
wc
se 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
tee
El flujo de datos se puede enviar al archivo y la pantalla, y la función de salida a la pantalla es stdout
similar
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 DOS
nueva línea UNIX
es diferente del carácter de nueva línea. Puede usar dos2unix
y unix2dos
para completar la conversión. A continuación se describen los comandos que se reemplazan por otros caracteres de uso común.
- tr se
tr
usa para eliminar el texto del mensaje o para reemplazar el mensaje de texto
tr [-ds] SET1
`-d`:删除信息当中的 SET1字符
`-s`:替换掉重复的字符
- columna
#选项与参数
`-x`:将tab键转换成对等的空格键
- join
join
se 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, stdin
y stdout
puede -
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
shell
Razones para aprender :Linux
muchos de los sistemas de gestión de comandos estánshell
escritos enbash
Las 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ínenv
Conexport
variables de entorno observables,export
puede convertir variables personalizadas en variables de entornoset
Puede observarbash
todas las variables en el entorno actual.$?
, Que representa el valor de retorno del comando anterior y queLinux
devuelve 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
cut
son:grep
,sort
,wc
,uniq
,tee
,tr
,,split
etc. - 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 queLinux
devuelve 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
cut
son:grep
,sort
,wc
,uniq
,tee
,tr
,,split
etc. - 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.