[marcado] Bash para principiantes: 21 comandos útiles

O material, cuxa tradución hoxe publicamos, está pensado para aqueles que queiran dominar a liña de comandos de Linux. A capacidade de usar esta ferramenta de forma eficaz pode aforrar moito tempo. En particular, aquí falaremos sobre o shell Bash e 21 comandos útiles. Tamén falaremos de como usar as marcas de comandos e os alias de Bash para acelerar a escritura de instrucións longas.

[marcado] Bash para principiantes: 21 comandos útiles

Lea tamén no noso blog unha serie de publicacións sobre scripts bash

Condicións

A medida que aprendes a traballar coa liña de comandos de Linux, atoparás moitos conceptos que son útiles para navegar. Algúns deles, como "Linux" e "Unix", ou "shell" e "terminal", ás veces son confusos. Falemos destes e outros termos importantes.

Unix é un sistema operativo popular que foi desenvolvido por Bell Labs na década de 1970. O seu código foi pechado.

Linux é o sistema operativo tipo Unix máis popular. Agora úsase en moitos dispositivos, incluíndo ordenadores.

Terminal (terminal) ou emulador de terminal é un programa que dá acceso ao sistema operativo. Pode ter varias fiestras de terminal abertas ao mesmo tempo.

Concha (shell) é un programa que permite enviar comandos escritos nunha linguaxe especial ao sistema operativo.

Bater é a sigla de Bourne Again Shell. É a linguaxe de shell máis común empregada para interactuar co sistema operativo. Ademais, o shell Bash é o predeterminado en macOS.

Interface de liña de comandos (Command Line Interface, CLI) é un método de interacción entre unha persoa e un ordenador, mediante o cal o usuario introduce comandos desde o teclado e o ordenador, ao executar estes comandos, mostra mensaxes en forma de texto para o usuario. O uso principal da CLI é obter información actualizada sobre determinadas entidades, como ficheiros, e traballar con ficheiros. A interface da liña de comandos debe distinguirse da interface gráfica de usuario (GUI), que usa principalmente o rato. A interface de liña de comandos adoita referirse simplemente como liña de comandos.

Guión (script) é un pequeno programa que contén unha secuencia de comandos de shell. Os scripts escríbense en ficheiros, pódense usar repetidamente. Ao escribir scripts, pode usar variables, condicionais, bucles, funcións e outras funcións.

Agora que cubrimos os termos importantes, quero sinalar que usarei aquí os termos "Bash", "shell" e "liña de comandos" indistintamente, así como os termos "directorio" e "cartafol".

Estándar regatos, que usaremos aquí é a entrada estándar (entrada estándar, stdin), saída estándar (saída estándar, stdout) e saída de erro estándar (erro estándar, stderr).

Se nos comandos de exemplo que se darán a continuación, atoparás algo así my_whatever - isto significa que este fragmento debe ser substituído por algo teu. Por exemplo, o nome dun ficheiro.

Agora, antes de proceder á análise dos comandos aos que se dedica este material, vexamos a súa lista e as súas breves descricións.

21 comandos Bash

▍Obtención de información

  • man: Mostra a guía de usuario (axuda) para o comando.
  • pwd: mostra información sobre o directorio de traballo.
  • ls: mostra o contido dun directorio.
  • ps: Permítelle ver información sobre os procesos en execución.

▍Manipulación do sistema de ficheiros

  • cd: cambiar o directorio de traballo.
  • touch: crea un ficheiro.
  • mkdir: crea un directorio.
  • cp: Copiar un ficheiro.
  • mv: move ou elimina un ficheiro.
  • ln: crea unha ligazón.

▍Redirección de E/S e canalizacións

  • <: redirección stdin.
  • >: redirección stdout.
  • |: canalizou a saída dun comando á entrada doutro comando.

▍Lectura de ficheiros

  • head: le o inicio do ficheiro.
  • tail: ler o final do ficheiro.
  • cat: le un ficheiro e imprime o seu contido na pantalla ou concatena ficheiros.

▍Eliminar ficheiros, deter procesos

  • rm: Eliminar un ficheiro.
  • kill: deter o proceso.

▍Buscar

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

▍Arquivo

  • tar: crear arquivos e traballar con eles.

Falemos destes comandos con máis detalle.

Detalles do equipo

Para comezar, imos tratar os comandos, cuxos resultados se emiten no formulario stdout. Normalmente estes resultados aparecen nunha xanela de terminal.

▍Obtención de información

man command_name: mostra a guía de comandos, é dicir, información de axuda.

pwd: mostra o camiño ao directorio de traballo actual. Durante o traballo coa liña de comandos, o usuario adoita ter que descubrir exactamente onde se atopa no sistema.

ls: mostra o contido dun directorio. Este comando tamén se usa con bastante frecuencia.

ls -a: mostrar ficheiros ocultos. bandeira aplicada aquí -a ordes ls. O uso de bandeiras axuda a personalizar o comportamento dos comandos.

ls -l: Mostra información detallada sobre ficheiros.

Teña en conta que as bandeiras pódense combinar. Por exemplo, así: ls -al.

ps: ver os procesos en execución.

ps -e: Mostra información sobre todos os procesos en execución, non só os asociados co shell do usuario actual. Este comando úsase a miúdo neste formulario.

▍Manipulación do sistema de ficheiros

cd my_directory: cambia o directorio de traballo a my_directory. Para subir un nivel na árbore de directorios, use my_directory camiño relativo ../.

[marcado] Bash para principiantes: 21 comandos útiles
comando cd

touch my_file: creación de ficheiros my_file polo camiño indicado.

mkdir my_directory: crea un cartafol my_directory polo camiño indicado.

mv my_file target_directory: mover o ficheiro my_file á carpeta target_directory. Ao especificar o directorio de destino, cómpre usar a ruta absoluta a el (e non unha construción como ../).

equipo mvtamén se pode usar para renomear ficheiros ou cartafoles. Por exemplo, pode verse así:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: crea unha copia dun ficheiro my_source_file e poñelo nun cartafol target_directory.

ln -s my_source_file my_target_file: crea unha ligazón simbólica my_target_file por ficheiro my_source_file. Se cambias a ligazón, o ficheiro orixinal tamén cambiará.

Se o ficheiro my_source_file eliminarase, entón my_target_file permanecerá. Bandeira -s ordes ln permítelle crear ligazóns para directorios.

Agora imos falar sobre a redirección de E/S e as canalizacións.

▍Redirección de E/S e canalizacións

my_command < my_file: substitúe o descritor estándar do ficheiro de entrada (stdin) por ficheiro my_file. Isto pode ser útil se o comando está agardando algunha entrada do teclado e estes datos xa están gardados nun ficheiro.

my_command > my_file: redirixe os resultados do comando, é dicir, o que normalmente entraría stdout e saída á pantalla, nun ficheiro my_file. Se o ficheiro my_file non existe - créase. Se o ficheiro existe, sobrescríbese.

Por exemplo, despois de executar o comando ls > my_folder_contents.txt crearase un ficheiro de texto que conteña unha lista do que hai no directorio de traballo actual.

Se en lugar do símbolo > utilizar a construción >>, entón, sempre que exista o ficheiro ao que se redirixe a saída do comando, este ficheiro non se sobrescribirá. Os datos engadiranse ao final deste ficheiro.

Agora vexamos o procesamento da canalización de datos.

[marcado] Bash para principiantes: 21 comandos útiles
A saída dun comando introdúcese na entrada doutro comando. É como conectar un tubo a outro

first_command | second_command: símbolo do transportador, |, úsase para enviar a saída dun comando a outro comando. A que envía o comando do lado esquerdo da estrutura descrita stdout, Caer en stdin comando á dereita do símbolo da canalización.

En Linux, os datos pódense canalizar usando case calquera comando ben formado. Adoita dicirse que todo en Linux é unha canalización.

Podes encadear varios comandos usando o símbolo de canalización. Parece así:

first_command | second_command | third_command

[marcado] Bash para principiantes: 21 comandos útiles
Unha canalización de varios comandos pódese comparar cunha canalización

Teña en conta que cando o comando á esquerda do símbolo |, saca algo para stdout, o que ela saca está dispoñible inmediatamente como stdin segundo equipo. É dicir, resulta que, usando o pipeline, estamos a tratar de execución paralela de comandos. Ás veces, isto pode levar a resultados inesperados. Pódense ler detalles sobre isto aquí.

Agora imos falar de ler datos dos ficheiros e mostralos na pantalla.

▍Lectura de ficheiros

head my_file: le liñas desde o inicio dun ficheiro e imprímaas na pantalla. Podes ler non só o contido dos ficheiros, senón tamén o que saen os comandos stdinusando este comando como parte da canalización.

tail my_file: le liñas desde o final do ficheiro. Este comando tamén se pode usar nunha canalización.

[marcado] Bash para principiantes: 21 comandos útiles
A cabeza (cabeza) está diante e a cola (cola) está detrás

Se está a traballar con datos usando a biblioteca pandas, entón os comandos head и tail debería serlle familiar. Se non é o caso, bótalle un ollo á figura anterior e recordaras facilmente.

Considere outras formas de ler ficheiros, imos falar sobre o comando cat.

Equipo cat ou imprime o contido dun ficheiro na pantalla ou concatena varios ficheiros. Depende de cantos ficheiros se pasen a este comando cando se chama.

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

cat my_one_file.txt: cando se pasa un só ficheiro a este comando, envíao a stdout.

Se lle dás dous ou máis ficheiros, comportarase de forma diferente.

cat my_file1.txt my_file2.txt: ao recibir varios ficheiros como entrada, este comando concatena o seu contido e mostra o que pasou en stdout.

Se o resultado da concatenación de ficheiros debe gardarse como un ficheiro novo, pode usar o operador >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Agora imos falar sobre como eliminar ficheiros e deter procesos.

▍Eliminar ficheiros, deter procesos

rm my_file: eliminar ficheiro my_file.

rm -r my_folder: elimina un cartafol my_folder e todos os ficheiros e cartafoles que contén. Bandeira -r indica que o comando executarase en modo recursivo.

Para evitar que o sistema solicite confirmación cada vez que se elimina un ficheiro ou cartafol, use a marca -f.

kill 012345: Detén o proceso en execución especificado, dándolle tempo para que se apague con gracia.

kill -9 012345: Pecha á forza o proceso en execución especificado. Ver bandeira -s SIGKILL significa o mesmo que a bandeira -9.

▍Buscar

Podes usar diferentes comandos para buscar datos. En particular - grep, ag и ack. Comecemos a familiarizarnos con estes comandos grep. Este é un comando fiable e probado no tempo, que, con todo, é máis lento que outros e non é tan cómodo de usar como eles.

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

grep my_regex my_file: buscas my_regex в my_file. Se se atopa unha coincidencia, devólvese a cadea completa, para cada coincidencia. Por defecto my_regex tratada como expresión regular.

grep -i my_regex my_file: a busca realízase sen distinguir entre maiúsculas e minúsculas.

grep -v my_regex my_file: devolve todas as filas que non conteñan my_regex. Bandeira -v significa inversión, aseméllase ao operador NOT, que se atopa en moitas linguaxes de programación.

grep -c my_regex my_file: devolve información sobre o número de coincidencias para o patrón buscado atopado no ficheiro.

grep -R my_regex my_folder: realiza unha busca recursiva en todos os ficheiros situados no cartafol especificado e nos cartafoles aniñados nel.

Agora imos falar do equipo ag. Ela veu máis tarde grep, é máis rápido, é máis cómodo traballar con el.

[marcado] Bash para principiantes: 21 comandos útiles
comando ag

ag my_regex my_file: devolve información sobre os números de liña e as propias liñas nas que se atoparon coincidencias my_regex.

ag -i my_regex my_file: a busca realízase sen distinguir entre maiúsculas e minúsculas.

Equipo ag procesar automaticamente o ficheiro .gitignore e exclúe da saída o que se atopa nos cartafoles ou ficheiros enumerados nese ficheiro. É moi cómodo.

ag my_regex my_file -- skip-vcs-ignores: contido dos ficheiros de control automático de versións (como .gitignore) non se ten en conta na busca.

Ademais, para contarllo ao equipo ag en que camiños de ficheiros queres excluír da busca, podes crear un ficheiro .agignore.

Ao comezo desta sección, mencionamos o comando ack. Equipos ack и ag moi semellantes, podemos dicir que son 99% intercambiables. Con todo, o equipo ag funciona máis rápido, por iso o describín.

Agora imos falar de traballar con arquivos.

▍Arquivo

tar my_source_directory: concatena ficheiros dun cartafol my_source_directory nun único ficheiro tarball. Estes ficheiros son útiles para transferir grandes conxuntos de ficheiros a alguén.

[marcado] Bash para principiantes: 21 comandos útiles
comando tar

Os ficheiros tarball xerados por este comando son ficheiros coa extensión .tar (Arquivo en cinta). O feito de que a palabra "tape" (cinta) estea oculta no nome do comando e na extensión dos nomes dos ficheiros que crea indica canto tempo existe este comando.

tar -cf my_file.tar my_source_directory: crea un ficheiro tarball chamado my_file.tar co contido do cartafol my_source_directory. Bandeira -c significa "crear" (creación) e a bandeira -f como "ficheiro" (ficheiro).

Para extraer ficheiros de .tar-file, use o comando tar con bandeiras -x ("extraer", extracción) e -f ("ficheiro", arquivo).

tar -xf my_file.tar: extrae ficheiros de my_file.tar ao directorio de traballo actual.

Agora imos falar sobre como comprimir e descomprimir .tar-arquivos.

tar -cfz my_file.tar.gz my_source_directory: aquí usando a bandeira -z ("zip", algoritmo de compresión) indica que o algoritmo debe usarse para comprimir ficheiros gzip (GNUzip). A compresión de ficheiros aforra espazo no disco ao almacenar estes ficheiros. Se os ficheiros están previstos, por exemplo, para ser transferidos a outros usuarios, isto contribúe a unha descarga máis rápida destes ficheiros.

Descomprimir o ficheiro .tar.gz podes engadir unha bandeira -z ao comando extraer contido .tar-arquivos, que comentamos anteriormente. Parece así:

tar -xfz my_file.tar.gz
Hai que ter en conta que o equipo tar Hai moitas máis bandeiras útiles.

Alias ​​de Bash

Os alias de Bash (tamén chamados alias ou abreviaturas) están deseñados para crear nomes abreviados de comandos ou as súas secuencias, cuxo uso en lugar de comandos habituais acelera o traballo. Se tes un alias bu, que oculta o comando python setup.py sdist bdist_wheel, entón para chamar a este comando, abonda con usar este alias.

Para crear tal alias, só tes que engadir o seguinte comando ao ficheiro ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Se o seu sistema non ten o ficheiro ~/.bash_profile, entón podes crealo vostede mesmo usando o comando touch. Despois de crear o alias, reinicie o terminal, despois de que pode usar este alias. Neste caso, a entrada de dous caracteres substitúe a entrada de máis de tres ducias de caracteres do comando, que está destinado a asembleas Paquetes Python.

В ~/.bash_profile pode engadir alias para calquera comando de uso frecuente.

▍Resultados

Nesta publicación, cubrimos 21 comandos populares de Bash e falamos sobre a creación de alias de comandos. Se estás interesado neste tema - velaquí unha serie de publicacións dedicadas a Bash. Aquí Podes atopar unha versión en pdf destas publicacións. Ademais, se queres aprender Bash, lembra que, como con calquera outro sistema de programación, a práctica é fundamental.

Queridos lectores! Que comandos son útiles para principiantes engadirías aos que se comentaron neste artigo?

Lea tamén no noso blog unha serie de publicacións sobre scripts bash

[marcado] Bash para principiantes: 21 comandos útiles

Fonte: www.habr.com

Engadir un comentario