[marcado como favorito] Bash para principiantes: 21 comandos útiles

El material, cuya traducción publicamos hoy, está destinado a quienes quieran dominar la línea de comandos de Linux. La capacidad de utilizar esta herramienta de forma eficaz puede ahorrar mucho tiempo. En particular, aquí hablaremos sobre el shell Bash y 21 comandos útiles. También hablaremos sobre cómo usar indicadores de comando y alias de Bash para acelerar la escritura de instrucciones largas.

[marcado como favorito] Bash para principiantes: 21 comandos útiles

Lea también en nuestro blog una serie de publicaciones sobre scripts bash.

Condiciones

A medida que aprenda a trabajar con la línea de comandos de Linux, encontrará muchos conceptos que le resultarán útiles para navegar. Algunos de ellos, como "Linux" y "Unix", o "shell" y "terminal", a veces se confunden. Hablemos de estos y otros términos importantes.

Unix es un sistema operativo popular desarrollado por Bell Labs en la década de 1970. Su código estaba cerrado.

Linux es el sistema operativo tipo Unix más popular. Ahora se utiliza en muchos dispositivos, incluidas las computadoras.

Terminal (terminal), o emulador de terminal es un programa que da acceso al sistema operativo. Puede tener varias ventanas de terminal abiertas al mismo tiempo.

concha (shell) es un programa que le permite enviar comandos escritos en un lenguaje especial al sistema operativo.

Comandos de Bash significa Bourne Again Shell. Es el lenguaje shell más común utilizado para interactuar con el sistema operativo. Además, el shell Bash es el predeterminado en macOS.

Interfaz de línea de comandos (Interfaz de línea de comando, CLI) es un método de interacción entre una persona y una computadora, mediante el cual el usuario ingresa comandos desde el teclado y la computadora, al ejecutar estos comandos, muestra mensajes en forma de texto para el usuario. El uso principal de la CLI es obtener información actualizada sobre determinadas entidades, como archivos, y trabajar con archivos. La interfaz de línea de comandos debe distinguirse de la interfaz gráfica de usuario (GUI), que utiliza principalmente el mouse. La interfaz de línea de comando a menudo se denomina simplemente línea de comando.

Guión (script) es un pequeño programa que contiene una secuencia de comandos de shell. Los scripts se escriben en archivos y se pueden utilizar repetidamente. Al escribir scripts, puede utilizar variables, condicionales, bucles, funciones y otras funciones.

Ahora que hemos cubierto los términos importantes, quiero señalar que aquí usaré los términos "Bash", "shell" y "línea de comando" indistintamente, así como los términos "directorio" y "carpeta".

Estándar arroyos, que usaremos aquí es la entrada estándar (entrada estándar, stdin), salida estándar (salida estándar, stdout) y salida de error estándar (error estándar, stderr).

Si en los comandos de ejemplo que se darán a continuación, encontrará algo como my_whatever - Esto significa que este fragmento necesita ser reemplazado por algo tuyo. Por ejemplo, el nombre de un archivo.

Ahora bien, antes de continuar con el análisis de los comandos a los que está dedicado este material, echemos un vistazo a su lista y a sus breves descripciones.

21 comandos bash

▍Obtener información

  • man: muestra la guía del usuario (ayuda) para el comando.
  • pwd: muestra información sobre el directorio de trabajo.
  • ls: muestra el contenido de un directorio.
  • ps: Le permite ver información sobre los procesos en ejecución.

▍Manipulación del sistema de archivos

  • cd: cambiar el directorio de trabajo.
  • touch: crear un archivo.
  • mkdir: crea un directorio.
  • cp: Copia un archivo.
  • mv: mueve o elimina un archivo.
  • ln: crear un enlace.

▍Redirección de E/S y canalizaciones

  • <: redirigir stdin.
  • >: redirigir stdout.
  • |: canaliza la salida de un comando a la entrada de otro comando.

▍Leer archivos

  • head: lee el comienzo del archivo.
  • tail: leer el final del archivo.
  • cat: Lee un archivo e imprime su contenido en la pantalla, o concatena archivos.

▍Eliminar archivos, detener procesos

  • rm: Eliminar un archivo.
  • kill: detener el proceso.

▍Buscar

  • grep: buscar información.
  • ag: comando avanzado para buscar.

▍Archivar

  • tar: crear archivos y trabajar con ellos.

Hablemos de estos comandos con más detalle.

Detalles del equipo

Para empezar, analicemos los comandos cuyos resultados se emiten en el formulario. stdout. Normalmente estos resultados aparecen en una ventana de terminal.

▍Obtener información

man command_name: muestra la guía de comandos, es decir, información de ayuda.

pwd: muestra la ruta al directorio de trabajo actual. Mientras trabaja con la línea de comando, el usuario a menudo necesita saber exactamente en qué parte del sistema se encuentra.

ls: muestra el contenido de un directorio. Este comando también se utiliza con bastante frecuencia.

ls -a: mostrar archivos ocultos. bandera aplicada aquí -a команды ls. El uso de banderas ayuda a personalizar el comportamiento de los comandos.

ls -l: muestra información detallada sobre los archivos.

Tenga en cuenta que las banderas se pueden combinar. Por ejemplo, así: ls -al.

ps: Ver procesos en ejecución.

ps -e: muestra información sobre todos los procesos en ejecución, no solo los asociados con el shell del usuario actual. Este comando se utiliza a menudo de esta forma.

▍Manipulación del sistema de archivos

cd my_directory: cambiar el directorio de trabajo a my_directory. Para subir un nivel en el árbol de directorios, utilice my_directory camino relativo ../.

[marcado como favorito] Bash para principiantes: 21 comandos útiles
comando de disco compacto

touch my_file: creación de archivos my_file por el camino indicado.

mkdir my_directory: crear una carpeta my_directory por el camino indicado.

mv my_file target_directory: mover archivo my_file a la carpeta target_directory. Al especificar el directorio de destino, debe utilizar la ruta absoluta (y no una construcción como ../).

El equipo mvTambién se puede utilizar para cambiar el nombre de archivos o carpetas. Por ejemplo, podría verse así:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: crear una copia de un archivo my_source_file y ponerlo en una carpeta target_directory.

ln -s my_source_file my_target_file: crear un enlace simbólico my_target_file por archivo my_source_file. Si cambia el enlace, el archivo original también cambiará.

Si el archivo my_source_file será eliminado, entonces my_target_file permanecerá. Bandera -s команды ln le permite crear enlaces para directorios.

Ahora hablemos de la redirección de E/S y de las canalizaciones.

▍Redirección de E/S y canalizaciones

my_command < my_file: reemplaza el descriptor de archivo de entrada estándar (stdin) por archivo my_file. Esto puede resultar útil si el comando está esperando alguna entrada del teclado y estos datos ya están guardados en un archivo.

my_command > my_file: redirige los resultados del comando, es decir, lo que normalmente entraría stdout y salida a la pantalla, a un archivo my_file. Si el archivo my_file no existe, se crea. Si el archivo existe, se sobrescribe.

Por ejemplo, después de ejecutar el comando ls > my_folder_contents.txt Se creará un archivo de texto que contiene una lista de lo que hay en el directorio de trabajo actual.

Si en lugar del símbolo > utilizar la construcción >>, entonces, siempre que exista el archivo al que se redirige la salida del comando, este archivo no se sobrescribirá. Los datos se agregarán al final de este archivo.

Ahora echemos un vistazo al procesamiento de canalización de datos.

[marcado como favorito] Bash para principiantes: 21 comandos útiles
La salida de un comando se introduce en la entrada de otro comando. Es como conectar un tubo con otro.

first_command | second_command: símbolo del transportador, |, se utiliza para enviar la salida de un comando a otro comando. A qué envía el comando en el lado izquierdo de la estructura descrita stdout, Caer en stdin comando a la derecha del símbolo de la tubería.

En Linux, los datos se pueden canalizar utilizando prácticamente cualquier comando bien formado. Se suele decir que todo en Linux es un pipeline.

Puede encadenar varios comandos utilizando el símbolo de canalización. Se parece a esto:

first_command | second_command | third_command

[marcado como favorito] Bash para principiantes: 21 comandos útiles
Una canalización de varios comandos se puede comparar con una canalización

Tenga en cuenta que cuando el comando a la izquierda del símbolo |, genera algo a stdout, lo que ella produce está inmediatamente disponible como stdin segundo equipo. Es decir, resulta que, utilizando la canalización, estamos ante la ejecución paralela de comandos. A veces esto puede conducir a resultados inesperados. Los detalles sobre esto se pueden leer. aquí.

Ahora hablemos de leer datos de archivos y mostrarlos en la pantalla.

▍Leer archivos

head my_file: lee líneas desde el principio de un archivo y las imprime en la pantalla. Puede leer no sólo el contenido de los archivos, sino también lo que generan los comandos en stdinusando este comando como parte de la canalización.

tail my_file: lee líneas desde el final del archivo. Este comando también se puede utilizar en una canalización.

[marcado como favorito] Bash para principiantes: 21 comandos útiles
La cabeza (cabeza) está al frente y la cola (cola) está detrás

Si está trabajando con datos usando la biblioteca pandas, entonces los comandos head и tail debería resultarle familiar. Si este no es el caso, eche un vistazo a la figura anterior y los recordará fácilmente.

Considere otras formas de leer archivos, hablemos del comando cat.

Equipo cat imprime el contenido de un archivo en la pantalla o concatena varios archivos. Depende de cuántos archivos se pasen a este comando cuando se llame.

[marcado como favorito] Bash para principiantes: 21 comandos útiles
comando gato

cat my_one_file.txt: cuando se pasa un solo archivo a este comando, lo envía a stdout.

Si le proporciona dos archivos o más, se comporta de manera diferente.

cat my_file1.txt my_file2.txt: habiendo recibido varios archivos como entrada, este comando concatena sus contenidos y muestra lo que sucedió en stdout.

Si el resultado de la concatenación de archivos necesita guardarse como un archivo nuevo, puede utilizar el operador >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Ahora hablemos de cómo eliminar archivos y detener procesos.

▍Eliminar archivos, detener procesos

rm my_file: borrar archivo my_file.

rm -r my_folder: elimina una carpeta my_folder y todos los archivos y carpetas que contiene. Bandera -r indica que el comando se ejecutará en modo recursivo.

Para evitar que el sistema solicite confirmación cada vez que se elimina un archivo o carpeta, use la bandera -f.

kill 012345: detiene el proceso en ejecución especificado, dándole tiempo para cerrarse correctamente.

kill -9 012345: finaliza por la fuerza el proceso en ejecución especificado. Ver bandera -s SIGKILL significa lo mismo que la bandera -9.

▍Buscar

Puede utilizar diferentes comandos para buscar datos. En particular - grep, ag и ack. Comencemos a familiarizarnos con estos comandos con grep. Este es un comando confiable y probado en el tiempo, que, sin embargo, es más lento que otros y no es tan conveniente de usar como ellos.

[marcado como favorito] Bash para principiantes: 21 comandos útiles
comando grep

grep my_regex my_file: búsquedas my_regex в my_file. Si se encuentra una coincidencia, se devuelve la cadena completa para cada coincidencia. Por defecto my_regex tratada como una expresión regular.

grep -i my_regex my_file: La búsqueda se realiza sin distinguir entre mayúsculas y minúsculas.

grep -v my_regex my_file: devuelve todas las filas que no contienen my_regex. Bandera -v significa inversión, se parece al operador NOT, que se encuentra en muchos lenguajes de programación.

grep -c my_regex my_file: Devuelve información sobre el número de coincidencias para el patrón buscado que se encuentra en el archivo.

grep -R my_regex my_folder: realiza una búsqueda recursiva en todos los archivos ubicados en la carpeta especificada y en las carpetas anidadas en ella.

Ahora hablemos del equipo. ag. ella vino mas tarde grep, es más rápido, es más conveniente trabajar con él.

[marcado como favorito] Bash para principiantes: 21 comandos útiles
comando agrícola

ag my_regex my_file: devuelve información sobre los números de línea y las líneas mismas en las que se encontraron coincidencias con my_regex.

ag -i my_regex my_file: La búsqueda se realiza sin distinguir entre mayúsculas y minúsculas.

Equipo ag procesar automáticamente el archivo .gitignore y excluye de la salida lo que se encuentra en las carpetas o archivos enumerados en ese archivo. Es muy cómodo.

ag my_regex my_file -- skip-vcs-ignores: contenido de archivos de control automático de versiones (como .gitignore) no se tiene en cuenta en la búsqueda.

Además, para decirle al equipo ag en qué rutas de archivos desea excluir de la búsqueda, puede crear un archivo .agignore.

Al comienzo de esta sección, mencionamos el comando ack. equipos ack и ag muy similares, podemos decir que son 99% intercambiables. Sin embargo, el equipo ag Funciona más rápido, por eso lo describí.

Ahora hablemos de trabajar con archivos.

▍Archivar

tar my_source_directory: concatena archivos de una carpeta my_source_directory en un único archivo tarball. Estos archivos son útiles para transferir grandes conjuntos de archivos a alguien.

[marcado como favorito] Bash para principiantes: 21 comandos útiles
comando alquitrán

Los archivos tarball generados por este comando son archivos con la extensión .tar (Archivo de cintas). El hecho de que la palabra "tape" (cinta) esté oculta en el nombre del comando y en la extensión de los nombres de los archivos que crea indica cuánto tiempo existe este comando.

tar -cf my_file.tar my_source_directory: crea un archivo tarball llamado my_file.tar con el contenido de la carpeta my_source_directory. Bandera -c significa "crear" (creación), y la bandera -f como "archivo" (archivo).

Para extraer archivos de .tar-archivo, usa el comando tar con banderas -x ("extracto", extracción) y -f ("archivo", archivo).

tar -xf my_file.tar: extrae archivos de my_file.tar al directorio de trabajo actual.

Ahora hablemos de cómo comprimir y descomprimir. .tar-archivos.

tar -cfz my_file.tar.gz my_source_directory: aquí usando la bandera -z ("zip", algoritmo de compresión) indica que el algoritmo debe usarse para comprimir archivos gzip (GNUzip). La compresión de archivos ahorra espacio en disco al almacenar dichos archivos. Si, por ejemplo, se planea transferir los archivos a otros usuarios, esto contribuye a una descarga más rápida de dichos archivos.

Descomprimir archivo .tar.gz puedes agregar una bandera -z al comando extraer contenido .tar-files, que discutimos anteriormente. Se parece a esto:

tar -xfz my_file.tar.gz
Cabe señalar que el equipo tar Hay muchas más banderas útiles.

Alias ​​de bash

Los alias de Bash (también llamados alias o abreviaturas) están diseñados para crear nombres abreviados de comandos o sus secuencias, cuyo uso en lugar de comandos normales acelera el trabajo. Si tienes un alias bu, que oculta el comando python setup.py sdist bdist_wheel, entonces para llamar a este comando, basta con usar este alias.

Para crear dicho alias, simplemente agregue el siguiente comando al archivo ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Si su sistema no tiene el archivo ~/.bash_profile, luego puedes crearlo tú mismo usando el comando touch. Después de crear el alias, reinicie el terminal, después de lo cual podrá usar este alias. En este caso, la entrada de dos caracteres reemplaza la entrada de más de tres docenas de caracteres del comando, que está destinado a asambleas Paquetes de Python.

В ~/.bash_profile puede agregar alias para cualquier comando utilizado con frecuencia.

▍Resultados

En esta publicación, cubrimos 21 comandos Bash populares y hablamos sobre la creación de alias de comandos. Si está interesado en este tema - aquí una serie de publicaciones dedicadas a Bash. es Puede encontrar una versión en pdf de estas publicaciones. Además, si quieres aprender Bash, recuerda que, como con cualquier otro sistema de programación, la práctica es clave.

Estimados lectores! ¿Qué comandos útiles para principiantes agregaría a los discutidos en este artículo?

Lea también en nuestro blog una serie de publicaciones sobre scripts bash.

[marcado como favorito] Bash para principiantes: 21 comandos útiles

Fuente: habr.com

Añadir un comentario