PDF de programación - El arte de la linea de comandos

Imágen de pdf El arte de la linea de comandos

El arte de la linea de comandosgráfica de visualizaciones

Actualizado el 10 de Mayo del 2019 (Publicado el 31 de Octubre del 2017)
3.203 visualizaciones desde el 31 de Octubre del 2017
352,9 KB
17 paginas
Creado hace 8a (06/07/2015)
Traducido por

Lyx

Drymer
Maxxcan

Zorro
Fanta
Suggie

y Frangor

de El Binario

2

´Indice general

0.1. El arte de la l´ınea de comandos . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.1. Meta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.2. Fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.3. De uso diario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.4. Procesamiento de archivos y datos . . . . . . . . . . . . . . . . . . .
0.1.5. Depuraci´on del sistema . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.6. Comandos concatenados . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.7. Oscuro pero ´util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.8. Solo MacOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.9. M´as recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.10. Advertencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1.11. Licencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
4
5
6
8
10
11
13
15
16
16
16

3

4
0.1. El arte de la l´ınea de comandos

´INDICE GENERAL

La soltura del uso de la consola es una destreza a menudo abandonada y considerada
arcaica, pero mejorar´a tu flexibilidad y productividad como si fueras un i ngeniero de
una forma obvia y sutil. Esta es una selecci´on de notas y consejos de como usar la l´ınea
de comandos de consola que encontr´e ´util cuando trabajaba en Linux. Algunos consejos
son b´asicos, y otros bastante espec´ıficos, sofiscitados, u .oscuros”. Esta p´agina no es larga,
pero si usas y recuerdas todos los puntos, sabr´as lo suficiente.

Figura
line/master/README.md’q | egrep -o ‘\w+’ | tr -d “’ | cowsay -W50

‘https://raw.githubusercontent.com/jlevy/the-art-of-command-

1:

curl

-s

0.1.1. Meta

Objetivo:

Esta gu´ıa es tanto para el principiante como para el experimentado. Los objeti-
vos son amplitud (todo importa), especificidad (dar ejemplos concretos del uso m´as
com ´un), y brevedad (evitar lo que no sea esencial o que se puedan encontrar f´acil-
mente en otro lugar). Cada consejo es esencial en alguna situaci´on o ahorra tiempo
significativamente en comparaci´on con las alternativas.
Esta escrito para Linux, con excepci´on de la secci´on “S´olo para MacOS(#macos-
only)”. Muchos de los otros puntos aplican o pueden ser instalados en otros siste-
mas UNIX o MacOS (o incluso Cygwin).
Se hace especial hincapi´e en Bash interactivo. Aunque muchos de los consejos se
pueden aplicar para otras consolas y a la programaci´on general en Bash.
Incluye tanto comandos “est´andar” Unix como aquellos que requieran la instala-
ci´on de paquetes – siempre que sean lo suficientemente importantes como para
incluirlos.

Notas:

Para mantener el texto en una p´agina, el contenido est´a expuesto como referencia.
Se asume que el lector es suficientemente inteligente como para investigar en de-
talle una vez que se tenga la idea general. Se utiliza apt-get/ yum/ emerge/ dnf
/pacman/ pip/ brew (seg ´un proceda) para instalar los nuevos programas.
Usar http://explainshell.com/Explainshell para obtener informaci´on detallada so-
bre usos y funciones de comandos, opciones, tuber´ıas, etc.O

0.1. EL ARTE DE LA L´INEA DE COMANDOS

5

0.1.2. Fundamentos

Aprenda los conocimiento b´asicos sobre Bash. De hecho, escriba man bash y al me-
nos ´echele un vistazo a todo; es bastante f´acil de seguir y no es tan largo. Alternar
entre shells puede ser agradable, pero Bash es poderoso y siempre est´a disponible
(aprender solo zsh, fish, etc., aunque resulte tentador usarlo en tu propio port´atil,
le restringe en muchas situaciones, tales como el uso de servidores).

Aprenda a usar correctamente al menos un editor de texto. Idealmente Vim (vi),
ya que realmente no tiene competencia para la edci´on aleatoria en una terminal
(incluso si usted usa Emacs, un gran IDE, o un editor moderno, hipster y alterna-
tivo la mayor parte del tiempo).

Conozca como leer la documentation con man (para los curiosos, man man mues-
tra las secciones enumeradas, ej. 1 es para comandos “regulares”, 5 es para archi-
vos/convenciones, y 8 es para administraci´on). Busca p´aginas de man con apropos.
Sepa que alguno de los comandos no son ejecutables, son ´ordenes embebidas en
Bash, y que puede acceder a la ayuda con help y help -d.
Aprenda sobre redirecci´on de salida y entrada > y < y tuberias utilizando |. Sepa
que > sobreescribe el archivo de salida y >> a ˜nade. Aprenda que es el stdout y el
stderr.
Aprenda sobre expansi´on de archivos glob con * (y tal vez ? y {. . .}) y las citas y la
diferencia entre los ap´ostrofes doble " y simple . (Para ver m´as sobre expansi´on de
variable mire m´as abajo.)

Familiarizate con la administraci´on de trabajos en Bash: &, ctrl-z, ctrl-c, jobs,
fg, bg, kill, etc.

Conoce ssh, y lo b´asico sobre autenticaci´on sin contrase ˜na, via ssh-agent, ssh-add,
etc.

Adminisraci´on de archivos b´asica: ls y ls -l (en particular, aprenda el significado
de cada columna que aparece en ls -l), less, head, tail y tail -f (o incluso
mejor, less +F), ln y ln -s (aprenda las diferencias y ventajas entre los enlaces
duros y los blandos), chown, chmod, du (para un r´apido resumen del uso del disco:
du -hk *). Para administraci´on del sistema de archivos, df, mount, fdisk, mkfs,
lsblk.

Administraci´on de redes b´asico: ip o ifconfig, dig.

Conozca bien las expresiones regulares, y varias etiquetas (flags) para grep/egrep.
El -i, -o, -A, y -B son opciones dignas de ser conocidas.

Aprenda a usar de apt-get, yum, dnf o pacman (dependiendo de la distribuci´on
(distro)) para buscar e instalar paquetes. Y asegurate de que tienes pip para ins-
talar herramientas de linea de comando basadas en Python (unas cuantas de las
que vienen m´as abajo son m´as f´aciles de instalar v´ıa pip).

6

0.1.3. De uso diario

´INDICE GENERAL

En Bash, se usa Tab para completar los argumentos y ctrl-r para buscar, a trav´es,
del historial de comandos.
En Bash, se usa ctrl-w para borrar la ´ultima palabra, y ctrl-u para borrar todo
hasta el inicio de la l´ınea. Se usa alt-b y alt-f para moverse entre letras, ctrl-k
para eliminar hasta el final de la l´ınea, ctrl-l para limpiar la pantalla. Ver man
readline para todos los atajos de teclado por defecto en Bash. Hay una gran can-
tidad de ellos. Por ejemplo alt-. cambia, a trav´es, de los comandos previos, y alt-*
expande los comandos.

Alternativamente, si tu amas los atajos de teclado al estilo de vi, usa set -o vi.

Para ver los ´ultimos comandos, history. Tambi´en existen abreviaciones, tales co-
mo, !$ ( ´ultimo argumento) y !! ´ultimo comando, aunque sin f´acilmente remplaza-
dos con ctrl-r y alt-..

Para volver al directorio de trabajo previo: cd -

Si estas a mitad de camino de la escritura de un comando pero cambias de opini´on,
presiona alt-# para agregar un # al principio y lo agregas como comentario (o usar
ctrl-a, #, enter). Para que puedas entonces regresar a ´este luego con el comando
history.

Se usa xargs ( o parallel). Este es muy poderoso. Nota que tu puedes controlar
muchos ´ıtems ejecutados por l´ınea (-L) al igual que parallelism (-P). Si tu no est´as
seguro si esto lo hace correctamente, usa xargs echo primero. Tambi´en -l es ´util.
Como ejemplo:

bash
find -name ’*.py* | xargs grep alguna_funcion
cat hosts | xargs -l{} ssh root@hostname

pstree -p es ´util para mostrar el ´arbol de procesos.

Se usa pgrep y pkill para encontrar o se ˜nalar procesos por su nombre (-f es de
mucha ayuda).

Conocer varias se ˜nales que puedes enviar a los procesos. Por ejemplo, para suspen-
der un proceso, usa kill -STOP [pid]. Para obtener la lista completa consulta
man 7 signal

Usa nohup o disown si quieres mantener un proceso de fondo corriendo para siem-
pre.

Verifica que procesos est´an escuchando v´ıa netstat -lntp o ss -plat (para
TCP; agrega -u para UDP).

Consulta tambi´en lsof para abrir sockets y archivos.

Usar alias para crear atajos para comandos com ´unmente usados. Por ejemplo,
alias ll="las -latr" crea un nuevo alias ll

0.1. EL ARTE DE LA L´INEA DE COMANDOS

7

En Bash scripts, usa set -x para depurar la salida. Utiliza el modo estricto cuan-
do se posible. Utiliza set -e para abortar en errores. Utiliza set -o pipefail
tambi´en, para ser estrictos sobre los errores (aunque este tema es un poco delica-
do). Para scripts m´as complejos, tambi´en se puede utilizar trap.

En Bash scripts, subshells (escritos con par´entesis) son maneras convenientes para
agrupar los comandos. Un ejemplo com ´un es para moverse temporalmente hacia
un directorio diferente de trabajo, Ej:

[] do something in current dir (cd /some/other/dir other-command) continue in ori-

ginal dir

En Bash, considere que hay muchas formas de expansi´on de variables. Verificar la
existencia de una variable: ${name:?error message}. Por ejemplo, si un script
Bash requiere un ´unico argumento, solo escriba input file=${1:?usage: $0
input file}. Expansi´on aritm´etica: i=$(( (i + 1) % 5 )). Secuencias: {1..10}.
Reducci´on de strings: ${var %suffix} y ${var#prefix}. Por ejemplo:
Si var=foo.pdf, entonces echo ${var %.pdf}.txt imprime foo.txt.

La salida de un comando puede ser tratado como un archivo, via <(commando).
Por ejemplo, compare local /etc/hosts con uno remoto:

diff /etc/hosts <(ssh somehost cat /etc/hosts)

Conocer acerca “here documents” en Bash, as´ı tambi´en cat <<EOF ....

En Bash, redireccionar ambas salida est´andar y error est´andar, v´ıa: comando >
logfile 2>&1. Frecuentemente, para garantizar que un comando no haya de-
jado abierto un archivo para controlar la entrada est´andar, vinculado al termi-
nal en el que te encuentras, esta tambi´en como buena practica puedes agregar
</dev/null.

Usa man ascii para una buena tabla ASCII, con valores hexadecimal y decima-
les. Para informaci´on de codificaci´on general, man unicode, man utf-8, y man
latin1 son de utilidad.

Usa screen o https://tmux.
  • Links de descarga
http://lwp-l.com/pdf7338

Comentarios de: El arte de la linea de comandos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad