Operaciones comunes en la línea de comando de Linux Shell

El shell es un programa en el sistema Linux, que se utiliza para recibir comandos de teclado y puede considerarse como la interfaz CLI entre el usuario y el sistema operativo.

directorio de directorios

pwd : Abreviatura de Imprimir directorio de trabajo, este comando mostrará su directorio actual.

cd : Abreviatura de Change Directory, este comando le permite cambiar a un directorio diferente.

~ : directorio raíz,

.: representa el directorio actual.

..: representa el directorio principal, es decir, el directorio por encima del directorio actual.

/: representa el directorio raíz, que es el directorio de nivel superior del sistema de archivos y no tiene un directorio principal.

Los comandos y nombres de directorio anteriores son aplicables en el entorno de shell de sistemas similares a Unix (como Linux, macOS).

Manipulación y movimiento de archivos.

En ámbito nativo:

ls [path]: lista de archivos. Si no se especifica [path], se enumeran todos los archivos y directorios del directorio actual. Tenga en cuenta que en los sistemas Unix y Linux, los archivos cuyos nombres de archivo comienzan con un punto (.) se consideran archivos ocultos . Estos archivos se utilizan a menudo para almacenar configuraciones del sistema o configuraciones de aplicaciones. Por ejemplo, la configuración del shell bash de un usuario se almacena en .bashrcun archivo oculto llamado . lsEstos archivos ocultos no se muestran de forma predeterminada en el comando, a menos que use la opción -ao --all, como: . ls -a

tree [path]: Listar archivos recursivamente. Si no se especifica [path], se enumeran todos los archivos del directorio actual y los archivos del directorio y sus subdirectorios.

cp <source> <destination>: Copie un archivo o directorio. copiar <source>a<destination>。

mv <source> <destination>: Mueva o cambie el nombre de un archivo o directorio.

rm <filename>: eliminar permanentemente el archivo.

mkdir <directory>:Crear un directorio. rmdir <directory>: eliminar permanentemente los directorios vacíos.

touch <file>: Crea un archivo vacío.

Transferencia entre diferentes hosts:

Hay bastantes métodos de transmisión directa para diferentes hosts Aquí solo escribimos un comando scp de uso común, que puede copiar archivos de forma segura entre diferentes sistemas.

Copie archivos de la máquina remota a la máquina local:

​​​​​​​$ scp username@from_host:file.txt /local/directory/ 

Copie archivos de la máquina local a la máquina remota:

$ scp file.txt username@to_host:/remote/directory/


Copie archivos de una máquina remota a otra:

​​​​​​​$ scp username@from_host:/remote/file.txt username@to_host:/remote/directory/

scpEl comando también admite algunas banderas (Flags) para cambiar su comportamiento:

  • -r: copia recursiva, utilizada para copiar un directorio y todos los archivos y subdirectorios que se encuentran debajo de él.

  • -v: En el modo detallado, se mostrará el proceso de ejecución detallado del comando, lo cual es útil para la depuración.

  • -q: Modo silencioso, no muestra el proceso de ejecución ni los resultados del comando, y solo muestra un mensaje cuando ocurre un error.

empaquetado de archivos tar

tarEs una herramienta de empaquetado de archivos de uso común en los sistemas Unix y Linux, y a menudo se usa para crear y desempaquetar archivos. En muchos casos también se utiliza para la copia de seguridad y distribución de datos. Aquí hay algunas tarbanderas de comando comunes (banderas) y sus significados:

  • -c: Crear un nuevo archivo. Esta bandera se usa para empaquetar algunos archivos y directorios en un archivo.

  • -x: Extraiga archivos del archivo. Esta bandera se utiliza para descomprimir un archivo.

  • -z: Use gzippara comprimir o descomprimir el archivo. Para archivos grandes, esta bandera puede reducir drásticamente su tamaño. Si se usa la opción -z, por ejemplo tar -czf archive.tar.gz directory/, tarel comando primero crea un archivo tar y luego gziplo comprime usando . El archivo comprimido resultante generalmente tiene una extensión de .tar.gzo .tgz, lo que indica que es un archivo tar comprimido con gzip.

  • -v: Muestra el proceso de ejecución del comando. Este indicador es útil al depurar o ver la ejecución del comando tar.

  • -f: especifica el nombre del archivo de almacenamiento.

 Aquí hay unos ejemplos:

tar -cf name-of-archive.tar /path/to/dir/:
这个命令创建一个包含指定目录中所有文件的归档文件。

tar -cf name-of-archive.tar /path/to/filename:
这个命令创建一个只包含指定文件的归档文件。

tar -cf name-of-archive.tar dir1 dir2 dir3:
这个命令创建一个包含多个目录的归档文件。

tar -xf name-of-archive.tar:
这个命令在当前目录中解包一个归档文件。

Tenga en cuenta que para el parámetro -z, si no -zse usa ninguna opción, por ejemplo tar -cf archive.tar directory/, tarel comando solo creará un archivo tar, pero no lo comprimirá, así que no confunda tar con rar . La extensión de archivo resultante suele ser .tar, lo que indica que se trata de un archivo tar sin comprimir. También es fácil de entender al desempaquetar: si usa -c, use -x; si usa -cz, use -xz.


procesamiento de texto

Controlar

Generalmente, algunos comandos para procesar archivos son muy útiles cuando se procesan archivos de registro o archivos de datos grandes en sistemas Linux. Por ejemplo, puede usar sortel uniqcomando y para encontrar líneas duplicadas en un archivo, o usar headel tailcomando y para ver rápidamente el principio o el final de un archivo.

  • cat: Este comando se utiliza para conectar e imprimir el contenido del archivo en la pantalla. Generalmente se usa para mostrar todo el contenido del archivo, pero también se puede usar para conectar varios archivos, como:

cat file1.txt file2.txt file3.txt > combined.txt

catPrimero lea el contenido de file1.txt, file2.txt y file3.txt, y luego envíe el contenido de estos tres archivos juntos (es decir, conéctelos). Finalmente, el operador > redirige esta salida al archivo combine.txt. Acerca de > Llegaremos a eso en breve a continuación.

  • uniq: Este comando se puede utilizar para informar o eliminar líneas duplicadas.

  • head/tail : Estos dos comandos se utilizan para imprimir la primera (cabeza) o la línea final (tail) del archivo. También tienen algunas opciones como -bxpueden imprimir los primeros x bytes, -nxpueden imprimir las primeras x líneas. Por ejemplo, el siguiente comando mostrará las primeras 10 líneas:

head -n 10 file.txt
  • sort: Este comando ordena las líneas de entrada. Tiene muchas opciones como -d(ordenar lexicográficamente), -f(ignorar mayúsculas y minúsculas), -n(ordenar numéricamente) y -r(ordenar al revés).

buscar

Grep (Global Regular Expression Print) es una herramienta de línea de comandos en Unix y sistemas similares a Unix (como Linux) que se utiliza para buscar patrones específicos en el texto.

# -c:统计匹配行的数量。
# 这个命令会输出 file.txt 文件中包含字符串 "test" 的行的数量。
grep -c "test" file.txt

# -h:显示匹配项,但不显示文件名。
# 这个命令会从 file1.txt 和 file2.txt 中查找字符串 "test",但在输出结果中不会显示文件名。
grep -h "test" file1.txt file2.txt

# -i:忽略大小写。
# 这个命令会在 file.txt 文件中查找字符串 "test",不区分大小写。
grep -i "test" file.txt

# -l:只显示文件名列表。
# 这个命令会输出包含字符串 "test" 的文件名,不会输出匹配的行。
grep -l "test" file1.txt file2.txt

# -n:显示匹配项和行号。
# 这个命令会在 file.txt 文件中查找字符串 "test",并显示每个匹配行的行号。
grep -n "test" file.txt

# -e exp:使用此选项指定表达式。
# 这个命令会在 file.txt 文件中查找字符串 "test" 或 "example"。
grep -e "test" -e "example" file.txt

# -f file:从文件中获取模式。
# 这个命令会从 patterns.txt 文件中读取模式,然后在 file.txt 文件中查找这些模式。
grep -f patterns.txt file.txt

# -o:只打印匹配的行部分。
# 这个命令会在 file.txt 文件中查找字符串 "test",并只输出匹配的部分,而不是整行。
grep -o "test" file.txt

# -r:递归读取每个目录下的所有文件。
# 这个命令会递归地在 directory/ 目录及其所有子目录中的文件中查找字符串 "test"。
grep -r "test" directory/

Redirección, entrada/salida estándar

Entrada estándar (stdin) : esta es la forma principal en que los programas leen los datos de entrada. De forma predeterminada, la entrada estándar proviene de la entrada del teclado del usuario en el terminal, pero también se puede obtener de archivos u otros programas a través de la redirección de archivos y canalizaciones.

Salida estándar (stdout) : esta es la principal forma en que los programas generan datos. De forma predeterminada, la salida estándar se envía a la pantalla del terminal. Sin embargo, también se puede enviar a un archivo oa otro programa a través de la redirección de archivos y la canalización.

La redirección de archivos es una técnica en el shell de Linux para cambiar la dirección del flujo de entrada/salida de un comando.

  • command < file.txt: Esto significa tomar file.txtel contenido de como commandla entrada estándar del . Es decir, los datos commandse leen del file.txtmismo modo que se leen del teclado. Digamos que tenemos un archivo llamado números.txt que contiene algunos números. Nosotros podemos usar:

sort < numbers.txt

Este comando toma numbers.txtel contenido del archivo como sortentrada para el comando. sortEl comando ordena la entrada numéricamente e imprime el resultado ordenado en la salida estándar. Este es <un caso de uso práctico para la redirección de archivos.

  • command > file.txt: Esto significa commandredirigir la salida estándar del to file.txt. Es decir, commandla salida de no se mostrará en la terminal, sino que se escribirá en su lugar file.txt. Si file.txtya existe, su contenido original será commandsobrescrito por la salida de .

  • command >> file.txt: Esto también commandredirige la salida estándar de file.txt, pero a diferencia de command > file.txt, si file.txtya existe, commandla salida de se agregará al file.txtfinal de , sin sobrescribir file.txtel contenido original de .

Tuberías (|)

Una "tubería" es un método en el entorno Linux/Unix que le permite usar la salida de un comando como entrada para otro comando. Las tuberías generalmente se indican con el símbolo '|', y si ejecuta command1 | command2, command1la salida de se convertirá command2en la entrada de .

grep "compute" /usr/share/dict/words | wc -l

En el ejemplo anterior, primero usamos grepel comando /usr/share/dict/wordspara buscar líneas en este archivo que contengan la cadena "compute". Luego canalizamos la salida de al |comando , que cuenta el número de líneas en la entrada. En resumen, las canalizaciones nos permiten encadenar varios comandos para que podamos realizar algunas tareas complejas con una sola línea de código.grepwc -l

EMPUJE

VIM es un editor de texto muy popular que se ejecuta en casi cualquier terminal. En Linux, vim generalmente se usa para editar texto, y puede $ vim ~/.vimrceditar su archivo de configuración de Vim a través del comando.

Cuando editamos un archivo con vim, hay tres modos principales:

  • Modo normal: Pulse la tecla "esc" para entrar.
  • Modo de inserción: Pulse la tecla "i" para entrar en el modo Normal. En este modo, puede ingresar texto en el búfer de texto.
  • Modo Visual: Pulse la tecla "v" para entrar en el modo Normal. En este modo, puede utilizar las teclas de flecha para seleccionar un fragmento de texto.

Después de editar, presione la tecla esc e ingrese: wq para guardar y salir de Vim. Si desea abandonar la modificación, puede usar q! forzar el abandono.

Algunos otros comandos de Vim no se escribirán primero, no son muy prácticos.

Pero vale la pena escribir que Vim crea un archivo de intercambio (archivo .swp) cuando edita un archivo, que puede usar para restaurar los cambios no guardados si Vim se apaga inesperadamente (como un corte de energía). Sin embargo, si Vim encuentra que un archivo ya tiene un archivo de intercambio asociado, le pedirá que elija una acción.

  • "Abrir solo lectura" : esta opción solo ve el contenido del archivo sin realizar ningún cambio.

  • "Editar de todos modos" : esta opción ignora la existencia de un archivo de intercambio e intenta abrir el archivo para editarlo. Tenga cuidado, porque si el archivo se está editando en otra sesión de Vim, terminará guardando dos versiones del archivo.

  • "Recuperar" : esta opción intentará recuperar el contenido del archivo de intercambio, permitiéndole continuar editando.

  • "Eliminarlo" : esta opción eliminará el archivo de intercambio. Puede comenzar de nuevo y editar el archivo original.

  • "Salir" : esta opción cerrará su sesión actual de Vim, pero mantendrá abiertas otras sesiones de Vim. Esto es útil cuando desea cerrar el archivo actual, pero no todas las demás sesiones de Vim.

  • "Cancelar" : esta opción cierra todas las sesiones abiertas de Vim, posiblemente perdiendo la información no guardada. "Cancelar" se usa principalmente para cerrar rápidamente la sesión actual de Vim, no resolverá el problema del intercambio de archivos.

comodines

Podemos usar * para hacer coincidir todos los caracteres, ? para hacer coincidir un solo carácter, etc. Estos son algunos ejemplos del uso de comodines:

# 删除所有以"g"开头的文件或目录
rm g*

# 列出所有以“b”开头并以“.txt”结尾的文件
ls b*.txt

# 显示名字为“Data”后面跟着正好三个任意字符的文件的内容
cat Data???

# 匹配所有以大写字母开头的文件和目录
ls [[:upper:]]*

# 匹配所有不以小写字母结尾的文件和目录
ls *[![:lower:]] 

# 递归地列出所有以字母"a"、"b"或"c"开头的文件和目录的结构
tree [abc]*

Para otros tipos de comodines, puede consultar: Comodines

proceso

# 列出所有当前正在运行的进程的信息
ps aux

# 显示实时的进程状态
top

Los procesos se pueden categorizar como trabajos en primer plano y trabajos en segundo plano. Los trabajos en primer plano son trabajos que se ejecutan en el terminal y no liberan el terminal hasta que se completan. Mientras se ejecuta un trabajo, no puede ejecutar otros comandos en el mismo terminal a menos que primero detenga o mueva el trabajo al fondo. Los trabajos en segundo plano se ejecutan en segundo plano, lo que significa que puede ejecutar otros comandos inmediatamente después de iniciar un trabajo en segundo plano en el mismo terminal.

# 列出所有当前作业的状态
jobs

# 将当前作业或指定作业带到前台;其中 n 是作业ID(JID)
fg %n

# 将当前作业或指定作业置于后台;其中 n 是作业ID
bg %n

# 停止前台作业并将其放置在后台作为已停止的作业。这个作业稍后可以被重新启动
# 按 Ctrl + Z 实现

# 向前台作业发送SIGINT信号,通常会导致其退出。这个作业不能被重新启动
# 按 Ctrl + C 实现

Algunas otras adiciones:

eco

echoes un comando de Unix/Linux que imprime sus argumentos en la salida estándar (generalmente una terminal o pantalla).

# echo 用于显示作为参数传递的文本/字符串行
echo "Hello, World!"

# 将 "echo ls -l" 的输出传递给 shell,结果与简单的 ls -l 相同
echo ls -l | sh

sed

sedCommand es un editor de secuencias que se puede utilizar para realizar transformaciones de texto. Aquí hay un ejemplo de reemplazo de contenido de texto usando sed:

# sed 可以进行插入、删除、搜索和替换(替换)
# 在 file.txt 中用 'new_word' 替换 'old_word'
sed 's/old_word/new_word/' file.txt

hombre

manEl comando es muy importante en los sistemas Unix o similares a Unix, se utiliza para acceder a las páginas man del sistema. Estas páginas man contienen descripciones detalladas y el uso de casi todos los comandos y funciones. Para ver la página de manual de un comando o programa en particular, simplemente escriba man, seguido del nombre del comando que desea encontrar, por ejemplo man ls, . Abra la página de manual y encontrará que el contenido está organizado en varias secciones, incluidas descripciones de comandos, listas de opciones, ejemplos de uso y más.

Puede usar las teclas arriba y abajo del teclado para desplazarse o usar /la tecla para buscar un texto específico. Cuando usa /el comando para buscar una palabra o expresión específica, el sistema moverá el cursor a la primera posición coincidente. Si desea ver el próximo partido, puede presionar nla tecla . De esta manera, cada vez que nse presiona la tecla, el cursor se mueve hacia abajo a la siguiente coincidencia.

Además, muchos comandos tienen una opción -ho --help, que también puede mostrar la información básica y el uso del comando. Por ejemplo, escribir ls --helpmuestra lsel uso básico y la lista de opciones para el comando.

$ man <command>
$ <command> --help or -h

resumen

Este artículo clasifica algunos comandos de uso común en el shell del sistema Linux.La mayoría de los comandos que enumeré se usan básicamente en la práctica. 

Supongo que te gusta

Origin blog.csdn.net/weixin_44492824/article/details/130859021
Recomendado
Clasificación