From a5c41ed44595306d493d1151f10bd7ef172d05a1 Mon Sep 17 00:00:00 2001 From: Mayra Cabrera Date: Sat, 18 Jul 2015 18:39:15 -0500 Subject: [PATCH 1/9] Changes 'es' file to get a more accurate translation by only using a second-person point of view to address the reader. Also fixes some notes & tips that didn't have a clear meaning. --- README-es.md | 184 +++++++++++++++++++++++++-------------------------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/README-es.md b/README-es.md index ecc9599..d958d8c 100644 --- a/README-es.md +++ b/README-es.md @@ -19,70 +19,70 @@ ![curl -s 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md' | egrep -o '`\w+`' | tr -d '`' | cowsay -W50](cowsay.png) -La fluidez en el terminal es una destreza a menudo abandonada y considerada arcaica, pero esta mejora su flexibilidad y productividad como ingeniero en formas obvia y sutil. Esta es una selección de notas y consejos al usar el terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y algunos bastante específicos, sofisticados u oscuros. Esta página no es larga, pero sí usa y recuerda todos los puntos aquí mostrados, ustedes sabrán un montón. +La fluidez en la terminal es una destreza a menudo abandonada y considerada arcaica, pero ésta ayuda a mejorar tu flexibilidad y productividad como ingeniero en formas obvias y sutiles. Esta guía es una selección de notas y consejos para usar la terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y otros bastante específicos, sofisticados u oscuros. Esta guía no es larga, pero si usas y recuerdas todos los puntos aquí mostrados, aprenderás un montón. Gran parte está en [originally](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands) [appeared](http://www.quora.com/What-are-the-most-useful-Swiss-army-knife-one-liners-on-Unix) en [Quora](http://www.quora.com/What-are-some-time-saving-tips-that-every-Linux-user-should-know), -pero debido al interés mostrado, parece que vale la pena usar Github, donde existen personas más talentosas, que fácilmente pueden sugerir mejoras. Si ve un error o algo que podría ser mejor, por favor, cree un issue o PR! (Por supuesto revise la sección meta de PRs/issues primero.) +pero debido al interés mostrado, parece que vale la pena usar Github, donde existen personas más talentosas, que fácilmente pueden sugerir mejoras. Si ves un error o algo que podría ser mejor, por favor, crea un issue o PR (Por supuesto primero revisa la sección meta de PRs/issues.) ## Meta Alcance: -- Esta guía es tanto para el principiante como para el experimentado. Los objetivos son *diversidad* (todo importa), *especificidad* (dar ejemplos concretos del caso más común), y *concisión* (evitar cosas que no son esenciales o insignificantes que puedas buscar fácilmente en otro lugar). Cada consejo es esencial en alguna situación o significativamente ahorra tiempo comparada con otras alternativas. +- Esta guía está enfocada tanto para principiantes como para experimentados. Los objetivos son *diversidad* (todo importa), *especificidad* (dar ejemplos concretos del caso más común), y *concisión* (evitar cosas que no son esenciales o insignificantes que puedas buscar fácilmente en otro lugar). Cada tip es esencial en alguna situación o puede ayudarte a ahorrar tiempo significativo comparado con otras alternativas - Esta escrito para Linux, con excepción de la sección "[Solo para MacOS X](#macos-x-only)". Muchos de los otros puntos aplican o pueden ser instalados en otros Unices o MacOS (o incluso Cygwin). - Se enfoca en Bash interactivo, aunque muchos de los consejos se aplican para otros shells y al Bash scripting por lo general. -- Esta incluye ambos comandos "estándar" Unix, así como aquellos que requieren la instalación especial de un paquete -- siempre que sea suficientemente importante para ameritar su inclusión. +- Incluye comandos "estándar" Unix, así como aquellos que requieren la instalación especial de un paquete (siempre que sea suficientemente importante para ameritar su inclusión). Notas: -- Para mantener esto en una página, el contenido está incluido implícitamente por referencia. Usted es suficientemente inteligente para ver profundamente los detalles en otros lugares, cuando conoces la idea o comando en Google. Usar `apt-get`/`yum`/`dnf`/`pacman`/`pip`/`brew` (según proceda) para instalar los nuevos programas. -- Usar [Explainshell](http://explainshell.com/) para obtener detalles de ayuda sobre que comandos, opciones, pipes, etc. +- Para mantener esto en una página, el contenido está organizado por referencia. Una vez que conozcas la idea básica, puedes verificar o buscar más información en otros lugares (como Google). Usa `apt-get`/`yum`/`dnf`/`pacman`/`pip`/`brew` (según proceda) para instalar nuevos programas. +- Usa [Explainshell](http://explainshell.com/) para obtener ayuda acerca de un comando, opción o pipes. ## Fundamentos -- Aprenda conocimientos básicos de Bash, de hecho, escriba `man bash` y al menos échele un vistazo a toda la cosa. Es bastante fácil de seguir y no es tan largo. Alternar entre shells puede ser agradable, pero Bash es poderoso y siempre está disponible (conocer *solo* zsh, fish, etc., aunque resulte tentador en tu propia laptop, los restringe en muchas situaciones, tales como el uso de servidores existentes). +- Aprende conocimientos básicos de Bash, de hecho escribe `man bash` y verifica el contenido, es bastante fácil de seguir y no es tan largo. Alternar entre shells puede ser agradable, pero Bash es poderoso y siempre está disponible (conocer *solo* zsh, fish, etc., aunque resulte tentador en tu propia laptop, te restringe en muchas situaciones, tales como el uso de servidores existentes). -- Aprenda bien al menos un editor de texto, idealmente Vim (`vi`), como no hay realmente una competencia para la edición aleatoria en un terminal (incluso si usa Emacs, un gran IDE, o un editor alternativo (hipster) moderno la mayor parte del tiempo). +- Aprende bien al menos un editor de texto. Idealmente Vim (`vi`), pues realmente no tiene competencia cuando de editar en una termianal se trata (incluso si usas Emacs, un IDE, o un editor alternativo (hipster) moderno la mayor parte del tiempo). -- Conozca como leer la documentación con `man` (Para curiosos, `man man` lista las secciones enumeradas, ej. 1 es comandos "regulares", 5 son archivos/convenciones, y 8 para administración). En en las páginas de man `apropos`. Conozca que alguno de los comandos no son ejecutables, pero son Bash builtins, y que puede obtener ayuda sobre ellos con `help` y `help -d`. +- Conoce como leer la documentación con `man` (Para curiosos, `man man` lista las secciones enumeradas, ej. 1 es comandos "regulares", 5 son archivos/convenciones, y 8 para administración). Encuentra las páginas de man con `apropos`. Fíjate que alguno de los comandos no son ejecutables, pero son "Bash builtins", y puedes aprender de ellos con `help` y `help -d`. -- Aprenda sobre redirección de salida >, entrada < y pipes utilizando `|`. Conozca que `>` sobrescribe el archivo de salida y `>>` añade. Aprenda sobre stdout y stderr. +- Aprende sobre redirección de salida `>`, entrada `<` y pipes utilizando `|`. `>` sobrescribe el archivo de salida y `>>` añade. Aprenda sobre stdout y stderr. -- Aprenda sobre expansión de archivos glob con `*` (y tal vez `?` y `{`...`}`) y quoting y la diferencia entre doble `"` y simple `'` quotes. (Ver más en expansión de variables más abajo.) +- Aprende sobre expansión de archivos glob con `*` (y tal vez `?` y `{`...`}`) y "quoting" y la diferencia entre comillas dobles `"` y simples `'`. (Ver más sobre expansión de variables en las siguientes secciones.) - Familiarízate con la administración de trabajo en Bash: `&`, **ctrl-z**, **ctrl-c**, `jobs`, `fg`, `bg`, `kill`, etc. - Conoce `ssh` y lo básico de autenticación sin contraseña, vía `ssh-agent`, `ssh-add`, etc. -- Administración de archivos básica: `ls` y `ls -l` (en particular, aprenda el significado de cada columna en `ls -l`), `less`, `head`, `tail` y `tail -f` (o incluso mejor, `less +F`), `ln` y `ln -s` (aprenda las diferencias y ventajas entre enlaces hard y soft), `chown`, `chmod`, `du` (para un resumen rápido del uso del disco: `du -hs *`). Para administración de archivos de sistema, `df`, `mount`, `fdisk`, `mkfs`, `lsblk`. +- Administración de archivos básica: `ls` y `ls -l` (en particular, aprende el significado de cada columna en `ls -l`), `less`, `head`, `tail` y `tail -f` (o incluso mejor, `less +F`), `ln` y `ln -s` (aprende las diferencias y ventajas entre enlaces hard y soft), `chown`, `chmod`, `du` (para un resumen rápido del uso del disco: `du -hs *`). Para administración de archivos de sistema, `df`, `mount`, `fdisk`, `mkfs`, `lsblk`. - Administración básica de redes: `ip` o `ifconfig`, `dig`. -- Conozca bien las expresiones regulares y varias opciones (flags) para `grep`/`egrep`. Las opciones `-i`, `-o`, `-v`, `-A`, y `-B` son dignas de ser recordadas. +- Conoce bien las expresiones regulares y varias opciones (flags) para `grep`/`egrep`. Las opciones `-i`, `-o`, `-v`, `-A`, y `-B` son dignas de ser recordadas. -- Aprenda el uso de `apt-get`, `yum`, `dnf` o `pacman` (dependiendo de la distribución "distro") para buscar e instalar paquetes. Y asegúrate que tienes `pip` para instalar la herramienta de línea de comando basada en Python (un poco más abajo esta explicado como instalar vía `pip`). +- Aprende el uso de `apt-get`, `yum`, `dnf` o `pacman` (dependiendo del "distro" que uses) para buscar e instalar paquetes. Y asegúrate que tienes `pip` para instalar la herramienta de línea de comando basada en Python (abajo se explica cómo instalar vía `pip`). ## De uso diario -- En Bash, se usa **Tab** para completar los argumentos y **ctrl-r** para buscar, a través del historial de comandos. +- En Bash, se usa **Tab** para completar los argumentos y **ctrl-r** para buscar a través del historial de comandos. -- En Bash, se usa **ctrl-w** para borrar la última palabra, y **ctrl-u** para borrar todo el camino hasta el inicio de la línea. Se usa **alt-b** y **alt-f** para moverse entre letras, **ctrl-a** para mover el cursor al principio de la línea, **ctrl-e** para mover el cursor al final de la línea, **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. Son una gran cantidad. Por ejemplo **alt-.** realiza un ciclo a través de los comandos previos, y **alt-*** expande un glob. +- En Bash, se usa **ctrl-w** para borrar la última palabra, y **ctrl-u** para borrar todo hasta el inicio de una línea. Se usa **alt-b** y **alt-f** para moverse una palabra, **ctrl-a** para mover el cursor al principio de la línea, **ctrl-e** para mover el cursor al final de la línea, **ctrl-k** para eliminar hasta el final de la línea, **ctrl-l** para limpiar la pantalla. `man readline` muestra todos los atajos del teclado que Bash trae integrado por default, son una gran cantidad. Por ejemplo **alt-.** realiza un ciclo a través de los comandos previos, y **alt-*** expande un glob. -- Alternativamente, si amas los atajos de teclado vi-style, usa `set -o vi`. +- Alternativamente si amas los atajos de teclado "vi-style", usa `set -o vi`. -- Para ver los últimos comandos, `history`. También existen abreviaciones, tales como, `!$` (último argumento) y `!!` último comando, aunque son fácilmente remplazados con **ctrl-r** y **alt-.**. +- `history` muestra los últimos comandos. También existen abreviaciones, tales como, `!$` (último argumento) y `!!` último comando, aunque son fácilmente remplazados con **ctrl-r** y **alt-.**. - Para volver al directorio de trabajo previo: `cd -` -- Si estás a mitad de camino de escritura de un comando pero cambias de opinión, presiona **alt-#** para agregar un `#` al principio y lo agrega como comentario (o usar **ctrl-a**, **#**, **enter**). Para que puedas entonces regresar a este luego vía comando `history`. +- Si estás a mitad de camino de escribir un comando pero cambias de opinión, presiona **alt-#** para agregar un `#` al principio, agregándolo como comentario al historial(o usar **ctrl-a**, **#**, **enter**). Luego puedes regresar a este comando vía `history`. -- Se usa `xargs` (or `parallel`). Esto es muy poderoso. Nota: puedes controlar muchos elementos ejecutados por línea (`-L`), también es conocido como paralelismo (`-P`). Si no estas seguro, este puede ser el camino correcto, usa `xargs echo` primero. También, `-I{}` es cómodo. Ejemplos: +- Usa `xargs` (or `parallel`), son muy poderosos. Nota: puedes controlar cuantos elementos son ejecutados por línea (`-L`), e incluso el paralelismo (`-P`). Si no estás seguro de que estás haciendo las cosas correctamente, primero usa `xargs echo`, (`-I{}` también es práctico). Ejemplos: ```bash find . -name '*.py' | xargs grep some_function cat hosts | xargs -I{} ssh root@{} hostname @@ -90,45 +90,45 @@ Notas: - `pstree -p` es útil para mostrar el árbol de procesos. -- Se usa `pgrep` y `pkill` para encontrar o señalar procesos por su nombre (`-f` es de mucha ayuda). +- Usa `pgrep` y `pkill` para encontrar o señalar procesos por su nombre (`-f` es de mucha ayuda). -- Conocer varias señales que puedes enviar a los procesos. Por ejemplo, para suspender un proceso, usa `kill -STOP [pid]`. Para la lista completa, consultar `man 7 signal` +- Conoce las señales que puedes enviar a los procesos. Por ejemplo, para suspender un proceso usa `kill -STOP [pid]`. Con `man 7 signal` puedes ver la lista completa -- Usa `nohup` o `disown` si quieres mantener un proceso de fondo corriendo para siempre. +- Usa `nohup` o `disown` para mantener un proceso corriendo en "background" -- Verifica que procesos están escuchando vía `netstat -lntp` o `ss -plat` (para TCP; agrega `-u` para UDP). +- Verifica que procesos están escuchando con `netstat -lntp` o `ss -plat` (para TCP; para UDP agrega `-u`). - Consulta también `lsof` para abrir sockets y archivos. -- Usar `alias` para crear atajos para comandos comúnmente usados. Por ejemplo, `alias ll="las -latr"` crea un nuevo alias `ll` +- Usa `alias` para crear atajos para comandos comúnmente usados. Por ejemplo, `alias ll="las -latr"` crea el alias `ll` -- En scripts Bash, usa `set -x` para depurar la salida. Utiliza el modo estricto cuando se posible. Utiliza `set -e` para abortar en errores. Utiliza `set -o pipefail` también, para ser estrictos sobre los errores (aunque este tema es un poco delicado). Para scripts más complejos, también se puede utilizar `trap`. +- En scripts Bash, usa `set -x` para depurar la salida. Utiliza el modo estricto cuando se posible. Utiliza `set -e` para abortar en errores. Para ser estrictos sobre los errores utiliza `set -o pipefail` también, (aunque este tema es un poco delicado). Para scripts más complejos, también se puede utilizar `trap`. -- En scripts Bash, subshells (escritos con paréntesis) son maneras convenientes para agrupar los comandos. Un ejemplo común es para moverse temporalmente hacia un directorio diferente del de trabajo, Ej. +- En scripts Bash, subshells (escritos con paréntesis) son maneras convenientes de agrupar comandos. Un ejemplo común es moverse temporalmente hacia un directorio diferente, ejemplo: ```bash # do something in current dir (cd /some/other/dir && other-command) # continue in original dir ``` -- En Bash, considere que hay muchas formas de expansión de variables. Verificar la existencia de una variable: `${name:?error message}`. Por ejemplo, si un script Bash requiere un único argumento, solo escriba `input_file=${1:?usage: $0 input_file}`. Expansión aritmética: `i=$(( (i + 1) % 5 ))`. Secuencias: `{1..10}`. Reducción de strings: `${var%suffix}` y `${var#prefix}`. Por ejemplo si `var=foo.pdf`, entonces `echo ${var%.pdf}.txt` imprime `foo.txt`. +- En Bash, nota que hay muchas formas de expansión de variables. Para verificar la existencia de una variable: `${name:?error message}`. Por ejemplo, si un script Bash requiere un único argumento, solo escribe `input_file=${1:?usage: $0 input_file}`. Expansión aritmética: `i=$(( (i + 1) % 5 ))`. Secuencias: `{1..10}`. Reducción 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, vía `<(some command)`. Por ejemplo, compare local `/etc/hosts` con uno remoto: +- La salida de un comando puede ser tratado como un archivo con `<(some command)`. Por ejemplo, comparar local `/etc/hosts` con uno remoto: ```sh diff /etc/hosts <(ssh somehost cat /etc/hosts) ``` -- Conocer acerca "here documents" en Bash, así también `cat <logfile 2>&1`. Frecuentemente, para garantizar que un comando no haya dejado abierto un archivo para controlar la entrada estándar vinculada al terminal en el que te encuentras y también como buena práctica puedes agregar `logfile 2>&1`. Frecuentemente, para garantizar que un comando no haya dejado abierto un archivo para controlar la entrada estándar vinculada a la terminal en que te encuentras, es una buena práctica puedes agregar ` foo: rename 's/\.bak$//' *.bak @@ -199,94 +199,94 @@ Notas: repren --full --preserve-case --from foo --to bar . ``` -- Usar `shuf` para mezclar o seleccionar líneas aleatorias desde un archivo. +- Usa `shuf` para mezclar o seleccionar líneas aleatorias de un archivo. -- Conozca las opciones de `sort`. Para números, use `-n`, o `-h` para manipulación de números humanamente leíbles (Ej. desde `du -h`). Conozca el trabajo principal de (`-t` y `-k`). En particular, este atento que lo necesitará para escribir`-k1,1` para ordenar por solo el primer campo; `-k1` significa ordenar de acuerdo a toda la línea. Orden estable (`sort -s`) puede ser útil. Por ejemplo, para organizar el primer por el campo 2, entonces secundariamente hacerlo por el campo 1, Puedes usar `sort -k1,1 | sort -s -k2,2`. +- Conoce las opciones de `sort`. Para números usa `-n`, o `-h` para manipulación de números humanamente leíbles (Ej. desde `du -h`). Conoce el trabajo principal de (`-t` y `-k`). En particular, verifica que necesitas escribir `-k1,1` para ordenar solo por el primer campo; `-k1` significa ordenar de acuerdo a toda la línea. Orden estable (`sort -s`) puede ser útil. Por ejemplo, para ordenar primero por el campo 2, y luego secundariamente por el campo 1, puedes usar `sort -k1,1 | sort -s -k2,2`. -- Si necesitas siempre escribir un tab literal en una línea de comandos en Bash (Ej. para el argumento -t de ordenar), presione **ctrl-v** **[Tab]** o escriba `$'\t'` (El último es mejor porque puedes copiarlo/pegarlo). +- Si alguna vez necesitas escribir un tab literal en una línea de comandos en Bash (por ejemplo para el argumento -t de ordenar), presiona **ctrl-v** **[Tab]** o escribe `$'\t'` (El último es mejor porque puedes copiarlo/pegarlo). -- Las herramientas estándar para reparar el código fuente son `diff` y `patch`. Ver también `diffstat` para resumen estadístico de una diff. Nota `diff -r` trabaja con directorios por completo. Usar`diff -r tree1 tree2 | diffstat` para el resumen de cambios. +- Las herramientas estándar para reparar el código fuente son `diff` y `patch`. Checa también `diffstat` para un resumen estadístico de un diff. Nota que `diff -r` trabaja con directorios por completo. Usa `diff -r tree1 tree2 | diffstat` para el resumen de cambios. -- Para archivos binarios, usar `hd` para sencillos "hex dumps" y `bvi` para edición de binario. +- Para archivos binarios usa `hd` para sencillos "hex dumps" y `bvi` para edición de binario. -- También para archivos binarios, `strings` (además de `grep`, etc.) permite encontrar en el texto bits. +- También para archivos binarios, `strings` (además de `grep`, etc.) te permite encontrar "bits" de texto. -- Para diffs binaria (delta compression), usar `xdelta3`. +- Para diffs binarios (delta compression), usa `xdelta3`. -- Para convertir la codificación del texto, probar `iconv`. O `uconv` para el uso avanzado; este soporta este soporta algunos elementos Unicode avanzados. Por ejemplo, este coloca en minúsculas y remueve todos los acentos (por expanción y colocándolos a ellos): +- Para convertir la codificación del texto, prueba con `iconv` o `uconv` para un uso avanzado, éste soporta algunas cosas de Unicode avanzadas. Por ejemplo, coloca minúsculas y remueve todos los acentos (por expansión y colocándolos a ellos): ```sh uconv -f utf-8 -t utf-8 -x '::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] >; ::Any-NFC; ' < input.txt > output.txt ``` -- Para dividir archivos en múltiples partes, consultar `split` (para dividir por tamaño) y `csplit` (para dividir por un patrón). +- Para dividir archivos en múltiples partes, consulta `split` (para dividir por tamaño) y `csplit` (para dividir por un patrón). -- Usar `zless`, `zmore`, `zcat`, y `zgrep` para operar sobre archivos comprimidos. +- Usa `zless`, `zmore`, `zcat`, y `zgrep` para operar sobre archivos comprimidos. ## Depuración del sistema - Para depuración web, `curl` y `curl -I` son prácticos, o sus equivalentes `wget`, o el más moderno [`httpie`](https://github.com/jakubroztocil/httpie). -- Para el estado del disco/cpu/red, usar `iostat`, `netstat`, `top` (o el mejor `htop`), y (especialmente) `dstat`. Bueno para recibir una idea rápida de lo que está pasando en tu sistema. +- Para el estado del disco/cpu/red, usa `iostat`, `netstat`, `top` (o el mejor `htop`), y (especialmente) `dstat`. Es bueno para dar un vistazo rápido de lo que está pasando en tu sistema. -- Para una resumen en mayor profundidad, usar [`glances`](https://github.com/nicolargo/glances). Este se presenta con varios niveles de estadística en un solo terminal. Muy útil para una verificación rápida de varios subsistemas. +- Para una resumen más profundo usa [`glances`](https://github.com/nicolargo/glances). Éste presenta varios niveles de estadística en un solo terminal. Muy útil para una verificación rápida de varios subsistemas. -- Para conocer el estado de la memoria, ejecutar y entender la salida de `free` y `vmstat`. En particular, tener en cuenta el valor "cached" es memoria mantenida por el kernel Linux como un archivo de cache, entonces efectivamente cuenta como valor para "free". +- Para conocer el estado de la memoria, ejecuta y entiende la salida de `free` y `vmstat`. En particular, ten en cuenta que el valor "cached" es memoria mantenida por el kernel Linux como un archivo de cache, entonces efectivamente cuenta como valor para "free". - El sistema de depuración de Java es harina de otro costal, pero un truco simple en las JSM de Oracle y de otros consta en que puedes ejecutar `kill -3 ` y una traza completa y un resumen del montículo "heap summary" (incluyendo del detalle de la colección de basura generacional, la cual puede ser altamente informativa) serán descargados al stderr/logs. Las herramientas `jps`, `jstat`, `jstack`, `jmap` del JDK son útiles. [SJK tools](https://github.com/aragozin/jvm-tools) son más avanzadas. -- Usar `mtr` como un mejor traceroute, para identificar los problemas en la red. +- Usa `mtr` como un mejor traceroute para identificar los problemas en la red. -- Para mirara porque el disco está lleno, `ncdu` ahorra tiempo sobre los comandos usual como `du -sh *`. +- Para mirar porque el disco está lleno, `ncdu` ahorra tiempo en comparación con los comandos usuales como `du -sh *`. - Para encontrar cual socket o proceso está utilizando el ancho de banda, prueba `iftop` o `nethogs`. -- La herramienta `ab` (viene con Apache) es útil para una verificación rápida y sucia del rendimiento del servidor web. Para pruebas de carga más complejas, prueba `siege`. +- La herramienta `ab` (viene con Apache) es útil para una verificación rápida del rendimiento de un servidor web. Para pruebas de carga más complejas prueba `siege`. - Para depuración de redes más serias, `wireshark`, `tshark`, o `ngrep`. -- Conozca acerca `strace` y `ltrace`. Estas son de utilidad si un programa está fallando, guindando, o estrellando, y no conoces por qué?, o si quieres tener una idea general del rendimiento. Note la opción de elaboración de perfiles (`-c`), y la habilidad de adjuntar a un proceso en ejecución (`-p`). +- Conoce acerca `strace` y `ltrace`. Estas son de utilidad si un programa está fallando, se queda colgado y no conoces por qué, o si quieres tener una idea general acerca del rendimiento. Nota la opción de elaboración de perfiles (`-c`), y la habilidad de adjuntar a un proceso en ejecución (`-p`). -- Conozca acerca `ldd` para verificar librerías compartidas etc. +- Conoce acerca `ldd` para verificar librerías compartidas etc. -- Conozca como conectarse a un proceso en ejecución con `gdb` y obtener su traza de pilas. +- Conoce como conectarse a un proceso en ejecución con `gdb` y obtener su traza de pilas. -- Usar `/proc`. Este es extraordinariamente útil algunas veces cuando hay problemas de depuración en vivo. Ejemplos: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps`. +- Usa `/proc`. Este es extraordinariamente útil para depurar problemas "en vivo". Ejemplos: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps`. -- Cuando se depura porque algo salió más en el pasado, `sar` puede ser muy útil. Este muestra la estadística histórica en CPU, memoria, red, etc. +- Cuando se depura porque algo salió mal en el pasado, `sar` puede ser muy útil. Éste muestra la estadística histórica en CPU, memoria, red, etc. -- Para sistemas y análisis de rendimiento de mayor profundidad, ver `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)), y [`sysdig`](https://github.com/draios/sysdig). +- Para sistemas y análisis de rendimiento de mayor profundidad, checa `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)), y [`sysdig`](https://github.com/draios/sysdig). -- Confirmar que OS te encuentras con `uname` o `uname -a` (información general Unix/kernel) o `lsb_release -a` (Linux distro info). +- Verifica que OS te encuentras con `uname` o `uname -a` (información general Unix/kernel) o `lsb_release -a` (Linux distro info). -- Usar `dmesg` siempre que algo actúe raro (esto podría ser problemas con el hardware o driver). +- Usa `dmesg` siempre que algo actúe raro (esto podría ser problemas con el hardware o driver). ## One-liners Algunos ejemplos de comandos reunidos: -- Este es notablemente útil en ocasiones que hay que realizar intersección, unión, y diferencia de archivos de texto vía `sort`/`uniq`. Considere `a` y `b` como archivos de texto que son únicos. Esto es rápido, y trabaja con archivos de tamaño arbitrario, hasta varios gigabytes. (Sort no está limitado por la memoria, aunque quizás necesites utilizar la opción `-T` si `/tmp` está en una pequeña partición raíz.) Ver también la nota acerca `LC_ALL` y las opciones de `sort`, `-u` (dejado de lado para clarificar más abajo). +- Es bastante útil que en ocasiones realices intersecciones, unión, y diferencies el texto de los archivos con `sort`/`uniq`. Supon que `a` y `b` son archivos de texto únicos. Es rápido y se puede trabajar con archivos de tamaño arbitrario hasta varios gigabytes. (Sort no está limitado por memoria, aunque quizás necesites utilizar la opción `-T` si `/tmp` está en una pequeña partición raíz.) Ver también la nota acerca `LC_ALL` y las opciones de `sort`, `-u` (dejado de lado para clarificar más abajo). ```sh cat a b | sort | uniq > c # c is a union b cat a b | sort | uniq -d > c # c is a intersect b cat a b b | sort | uniq -u > c # c is set difference a - b ``` -- Usar `grep . *` para visualmente examinar todo el contenido de todos los archivos de un directorio, Ej. para directorios llenos con parámetros de configuración, como `/sys`, `/proc`, `/etc`. +- Usa `grep . *` para visualizar el contenido de todos los archivos en un directorio, por ejemplo para directorios llenos de parámetros con configuración, como `/sys`, `/proc`, `/etc`. -- Sumar todos los números en la tercera columna de un archivo de texto (esto es probablemente 3X más rápido 3X menor código que el equivalente en Python): +- Sumar todos los números en la tercera columna de un archivo de texto (esto es probablemente 3 veces más rápido y 3 veces menor código que la equivalencia en Python): ```sh awk '{ x += $3 } END { print x }' myfile ``` -- Si quiere ver tamaños/fechas en un árbol de archivos, esto es como hacer recursivo `ls -l` pero es más fácil de leer que `ls -lR`: +- Si quieres ver tamaños/fechas en un árbol de archivos, el siguiente comando es como hacer un `ls -l` recursivo, pero es más fácil de leer que `ls -lR`: ```sh find . -type f -ls ``` -- Digamos que tiene un archivo de texto, como un log de un servidor web, y un cierto valor comienza a aparecer en algunas líneas, tales como un parámetro `acct_id` que está presente en el URL. Si quieres un recuento de cuantas peticiones ""request hay por cada `acct_id`: +- Digamos que tienes un archivo de texto, como un log de un servidor web, y un cierto valor comienza a aparecer en algunas líneas, tales como un parámetro `acct_id` que está presente en el URL. Si quieres un recuento de cuantas peticiones existen por cada `acct_id`: ```sh cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn ``` @@ -321,13 +321,13 @@ Algunos ejemplos de comandos reunidos: - `cut`, `paste` y `join`: manipulación de datos -- `fmt`: formato de texto de párrafo +- `fmt`: Formatea párrafos de texto -- `pr`: formato de texto en páginas/columnas +- `pr`: Formatea texto en páginas/columnas -- `fold`: envolturas de líneas de texto +- `fold`: Ajusta de líneas de texto -- `column`: formato de texto en columnas o tablas +- `column`: Formatea texto en columnas o tablas - `expand` y `unexpand`: convertidor entre tabuladores y espacios @@ -339,7 +339,7 @@ Algunos ejemplos de comandos reunidos: - `factor`: factorización de enteros -- [`gpg`](https://gnupg.org/): cifrado y firmas digitales +- [`gpg`](https://gnupg.org/): encripta y firma archivos - `toe`: tabla de información de términos @@ -359,7 +359,7 @@ Algunos ejemplos de comandos reunidos: - `tac`: imprime archivos en forma inversa -- `shuf`: selección de líneas de un archivo de forma aleatoria +- `shuf`: selecciona líneas de forma aleatoria en un archivo - `comm`: compara archivos ordenados línea por línea @@ -405,7 +405,7 @@ Algunos ejemplos de comandos reunidos: - `dstat`: sistema de estadísticas útil -- [`glances`](https://github.com/nicolargo/glances):vistazo de multi-subsistemas, de alto nivel +- [`glances`](https://github.com/nicolargo/glances):vistazo de multi-subsistemas de alto nivel - `iostat`: estadísticas del CPU y uso del disco @@ -413,7 +413,7 @@ Algunos ejemplos de comandos reunidos: - `last`: historial de login -- `w`: quien está autenticado? +- `w`: Muestra quien está autenticado - `id`: información de identidad de usuario/grupo @@ -438,7 +438,7 @@ Algunos ejemplos de comandos reunidos: ## Solo para MacOS X -Estos son puntos relevantes *solo* en MacOS. +Estos son puntos relevantes *únicamente* para MacOS. - Administración de paquetes con `brew` (Homebrew) y/o `port` (MacPorts). Estos pueden ser utilizados para instalar en MacOS muchos de los comandos de arriba. @@ -448,18 +448,18 @@ Estos son puntos relevantes *solo* en MacOS. - Spotlight: Busca archivos con `mdfind` y listar metadata (como información de foto EXIF) con `mdls`. -- Tenga en cuenta que MacOS está basado en BSD Unix, y cualquier comando (por ejemplo `ps`, `ls`, `tail`, `awk`, `sed`) tiene variaciones discretas variaciones por cada Linux, que está en gran parte influenciado por el sistema Unix V-style y herramientas GNU. Puedes frecuentemente decirme la diferencia por señalar unas páginas man que tienen el encabezado "BSD General Commands Manual." En algunos casos versiones GNU pueden ser instalados, también (tales como `gawk` y `gsed` para awk y sed del GNU). Si escribe cross-platform scripts Bash, evita tales comandos (por ejemplo, considerando Python o `perl`) o probar con mucho cuidado. +- Ten en cuenta que MacOS está basado en BSD Unix y cualquier comando (por ejemplo `ps`, `ls`, `tail`, `awk`, `sed`) tiene sutiles variaciones en comparación con Linux, que está en gran parte influenciado por el sistema Unix V-style y herramientas GNU. Puedes notar la diferencia en las páginas man que tienen el encabezado "BSD General Commands Manual." En algunos casos versiones GNU también pueden ser instaladas, (tales como `gawk` y `gsed` para awk y sed del GNU). Si escribe cross-platform scripts Bash, evita tales comandos (por ejemplo, considera Python o `perl`) o prueba con mucho cuidado. ## Más recursos -- [awesome-shell](https://github.com/alebcay/awesome-shell): Una lista curada de herramientas shell y recursos. +- [awesome-shell](https://github.com/alebcay/awesome-shell): Una amplia lista de herramientas shell y recursos. - [Strict mode](http://redsymbol.net/articles/unofficial-bash-strict-mode/) para escribir mejores script shell. ## Advertencia -Con excepción de pequeñas tareas, el código está escrito para que otros puedan leerlo. Con el poder llega la responsabilidad. El hecho de que tú *puedes* hacer algo en Bash no necesariamente significa que debas hacerlo! ;) +Con excepción de pequeñas tareas, el código está escrito para que otros puedan leerlo. Con el poder llega la responsabilidad. El hecho de que *puedes* hacer algo en Bash no necesariamente significa que debas hacerlo! ;) ## Licencia From 41c49be28f52fc4f61337f78008cd66976a09958 Mon Sep 17 00:00:00 2001 From: Antonio Ossa Date: Tue, 21 Jul 2015 16:25:45 -0300 Subject: [PATCH 2/9] =?UTF-8?q?Mejoras=20de=20redacci=C3=B3n=20y=20traducc?= =?UTF-8?q?i=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Observaciones hechas hasta la línea 156. En adelante no ha sido revisado. --- README-es.md | 82 ++++++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/README-es.md b/README-es.md index ecc9599..120bba3 100644 --- a/README-es.md +++ b/README-es.md @@ -1,4 +1,4 @@ -[ Languages: [English](README.md), [Español](README-es.md), [한국어](README-ko.md), [Português](README-pt.md), [Русский](README-ru.md), [Slovenščina](README-sl.md), [中文](README-zh.md) ] +[ Idiomas: [English](README.md), [Español](README-es.md), [한국어](README-ko.md), [Português](README-pt.md), [Русский](README-ru.md), [Slovenščina](README-sl.md), [中文](README-zh.md) ] # El Arte del Terminal @@ -7,8 +7,8 @@ - [Meta](#meta) - [Fundamentos](#basics) -- [De uso diario](#everyday-use) -- [Procesamiento de archivos y datos](#processing-files-and-data) +- [Uso diario](#everyday-use) +- [Procesando archivos y datos](#processing-files-and-data) - [Depuración del sistema](#system-debugging) - [One-liners](#one-liners) - [Obscuro pero útil](#obscure-but-useful) @@ -19,70 +19,70 @@ ![curl -s 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md' | egrep -o '`\w+`' | tr -d '`' | cowsay -W50](cowsay.png) -La fluidez en el terminal es una destreza a menudo abandonada y considerada arcaica, pero esta mejora su flexibilidad y productividad como ingeniero en formas obvia y sutil. Esta es una selección de notas y consejos al usar el terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y algunos bastante específicos, sofisticados u oscuros. Esta página no es larga, pero sí usa y recuerda todos los puntos aquí mostrados, ustedes sabrán un montón. +La fluidez en el terminal es una destreza a menudo abandonada y considerada arcaica, pero esta mejora su flexibilidad y productividad como ingeniero en forma obvia y sutil. Esta es una selección de notas y consejos al usar el terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y algunos bastante específicos, sofisticados u oscuros. Esta página no es larga, pero sí usa y recuerda todos los puntos aquí mostrados, sabrá un montón. -Gran parte está en -[originally](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands) -[appeared](http://www.quora.com/What-are-the-most-useful-Swiss-army-knife-one-liners-on-Unix) +La mayor parte +[originalmente](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands) +[apareció](http://www.quora.com/What-are-the-most-useful-Swiss-army-knife-one-liners-on-Unix) en [Quora](http://www.quora.com/What-are-some-time-saving-tips-that-every-Linux-user-should-know), -pero debido al interés mostrado, parece que vale la pena usar Github, donde existen personas más talentosas, que fácilmente pueden sugerir mejoras. Si ve un error o algo que podría ser mejor, por favor, cree un issue o PR! (Por supuesto revise la sección meta de PRs/issues primero.) +pero debido al interés mostrado, parece que vale la pena usar Github, donde existen personas más talentosas que fácilmente pueden sugerir mejoras. Si ve un error o algo que podría ser mejor, por favor, cree un issue o PR! (Por supuesto revise la sección meta de PRs/issues primero.) ## Meta Alcance: -- Esta guía es tanto para el principiante como para el experimentado. Los objetivos son *diversidad* (todo importa), *especificidad* (dar ejemplos concretos del caso más común), y *concisión* (evitar cosas que no son esenciales o insignificantes que puedas buscar fácilmente en otro lugar). Cada consejo es esencial en alguna situación o significativamente ahorra tiempo comparada con otras alternativas. +- Esta guía es tanto para el principiante como para el experimentado. Los objetivos son *diversidad* (todo importa), *especificidad* (dar ejemplos concretos del caso más común), y *concisión* (evitar cosas que no son esenciales o insignificantes que pueda buscar fácilmente en otro lugar). Cada consejo es esencial en alguna situación o significativamente ahorra tiempo comparada con otras alternativas. - Esta escrito para Linux, con excepción de la sección "[Solo para MacOS X](#macos-x-only)". Muchos de los otros puntos aplican o pueden ser instalados en otros Unices o MacOS (o incluso Cygwin). -- Se enfoca en Bash interactivo, aunque muchos de los consejos se aplican para otros shells y al Bash scripting por lo general. -- Esta incluye ambos comandos "estándar" Unix, así como aquellos que requieren la instalación especial de un paquete -- siempre que sea suficientemente importante para ameritar su inclusión. +- El foco está en Bash interactivo, aunque muchos de los consejos se aplican para otros shells y al Bash scripting en general. +- Esta incluye tanto comandos "estándar" Unix así como aquellos que requieren la instalación especial de un paquete -- siempre que sea suficientemente importante para ameritar su inclusión. Notas: -- Para mantener esto en una página, el contenido está incluido implícitamente por referencia. Usted es suficientemente inteligente para ver profundamente los detalles en otros lugares, cuando conoces la idea o comando en Google. Usar `apt-get`/`yum`/`dnf`/`pacman`/`pip`/`brew` (según proceda) para instalar los nuevos programas. +- Para mantener esto en una página, el contenido está incluido implícitamente por referencia. Usted es suficientemente inteligente para ver profundamente los detalles en otros lugares, cuando conoce la idea o comando en Google. Usar `apt-get`/`yum`/`dnf`/`pacman`/`pip`/`brew` (según proceda) para instalar los nuevos programas. - Usar [Explainshell](http://explainshell.com/) para obtener detalles de ayuda sobre que comandos, opciones, pipes, etc. ## Fundamentos -- Aprenda conocimientos básicos de Bash, de hecho, escriba `man bash` y al menos échele un vistazo a toda la cosa. Es bastante fácil de seguir y no es tan largo. Alternar entre shells puede ser agradable, pero Bash es poderoso y siempre está disponible (conocer *solo* zsh, fish, etc., aunque resulte tentador en tu propia laptop, los restringe en muchas situaciones, tales como el uso de servidores existentes). +- Aprenda conocimientos básicos de Bash, de hecho, escriba `man bash` y al menos échele un vistazo a toda la cosa. Es bastante fácil de seguir y no es tan largo. Alternar entre shells puede ser agradable, pero Bash es poderoso y siempre está disponible (conocer *solo* zsh, fish, etc., aunque resulte tentador en tu propia laptop, le restringe en muchas situaciones, tales como el uso de servidores existentes). - Aprenda bien al menos un editor de texto, idealmente Vim (`vi`), como no hay realmente una competencia para la edición aleatoria en un terminal (incluso si usa Emacs, un gran IDE, o un editor alternativo (hipster) moderno la mayor parte del tiempo). -- Conozca como leer la documentación con `man` (Para curiosos, `man man` lista las secciones enumeradas, ej. 1 es comandos "regulares", 5 son archivos/convenciones, y 8 para administración). En en las páginas de man `apropos`. Conozca que alguno de los comandos no son ejecutables, pero son Bash builtins, y que puede obtener ayuda sobre ellos con `help` y `help -d`. +- Conozca como leer la documentación con `man` (Para curiosos, `man man` lista las secciones enumeradas, ej. 1 es comandos "regulares", 5 son archivos/convenciones, y 8 para administración). Encuentra páginas de man con `apropos`. Sepa que alguno de los comandos no son ejecutables, sino Bash builtins, y que puede obtener ayuda sobre ellos con `help` y `help -d`. -- Aprenda sobre redirección de salida >, entrada < y pipes utilizando `|`. Conozca que `>` sobrescribe el archivo de salida y `>>` añade. Aprenda sobre stdout y stderr. +- Aprenda sobre redirección de salida `>`, entrada `<` y pipes `|`. Sepa que `>` sobrescribe el archivo de salida y `>>` añade. Aprenda sobre stdout y stderr. -- Aprenda sobre expansión de archivos glob con `*` (y tal vez `?` y `{`...`}`) y quoting y la diferencia entre doble `"` y simple `'` quotes. (Ver más en expansión de variables más abajo.) +- Aprenda sobre expansión de archivos glob con `*` (y tal vez `?` y `{`...`}`) y quoting y la diferencia entre dobles `"` y simples `'` quotes. (Ver más en expansión de variables más abajo.) -- Familiarízate con la administración de trabajo en Bash: `&`, **ctrl-z**, **ctrl-c**, `jobs`, `fg`, `bg`, `kill`, etc. +- Familiarícese con la administración de trabajo en Bash: `&`, **ctrl-z**, **ctrl-c**, `jobs`, `fg`, `bg`, `kill`, etc. -- Conoce `ssh` y lo básico de autenticación sin contraseña, vía `ssh-agent`, `ssh-add`, etc. +- Conozca `ssh` y lo básico de autenticación sin contraseña, vía `ssh-agent`, `ssh-add`, etc. -- Administración de archivos básica: `ls` y `ls -l` (en particular, aprenda el significado de cada columna en `ls -l`), `less`, `head`, `tail` y `tail -f` (o incluso mejor, `less +F`), `ln` y `ln -s` (aprenda las diferencias y ventajas entre enlaces hard y soft), `chown`, `chmod`, `du` (para un resumen rápido del uso del disco: `du -hs *`). Para administración de archivos de sistema, `df`, `mount`, `fdisk`, `mkfs`, `lsblk`. +- Administración de archivos básica: `ls` y `ls -l` (en particular, aprenda el significado de cada columna en `ls -l`), `less`, `head`, `tail` y `tail -f` (o mejor aun, `less +F`), `ln` y `ln -s` (aprenda las diferencias y ventajas entre enlaces hard y soft), `chown`, `chmod`, `du` (para un resumen rápido del uso del disco: `du -hs *`). Para administración de archivos de sistema, `df`, `mount`, `fdisk`, `mkfs`, `lsblk`. - Administración básica de redes: `ip` o `ifconfig`, `dig`. - Conozca bien las expresiones regulares y varias opciones (flags) para `grep`/`egrep`. Las opciones `-i`, `-o`, `-v`, `-A`, y `-B` son dignas de ser recordadas. -- Aprenda el uso de `apt-get`, `yum`, `dnf` o `pacman` (dependiendo de la distribución "distro") para buscar e instalar paquetes. Y asegúrate que tienes `pip` para instalar la herramienta de línea de comando basada en Python (un poco más abajo esta explicado como instalar vía `pip`). +- Aprenda el uso de `apt-get`, `yum`, `dnf` o `pacman` (dependiendo de la distribución "distro") para buscar e instalar paquetes. Y asegúrate que tienes `pip` para instalar herramientas para la línea de comandos basadas en Python (un poco más abajo esta explicado como instalar vía `pip`). ## De uso diario - En Bash, se usa **Tab** para completar los argumentos y **ctrl-r** para buscar, a través del historial de comandos. -- En Bash, se usa **ctrl-w** para borrar la última palabra, y **ctrl-u** para borrar todo el camino hasta el inicio de la línea. Se usa **alt-b** y **alt-f** para moverse entre letras, **ctrl-a** para mover el cursor al principio de la línea, **ctrl-e** para mover el cursor al final de la línea, **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. Son una gran cantidad. Por ejemplo **alt-.** realiza un ciclo a través de los comandos previos, y **alt-*** expande un glob. +- En Bash, se usa **ctrl-w** para borrar la última palabra, y **ctrl-u** para borrar todo el camino hasta el inicio de la línea. Se usa **alt-b** y **alt-f** para moverse entre letras, **ctrl-a** para mover el cursor al principio de la línea, **ctrl-e** para mover el cursor al final de la línea, **ctrl-k** para eliminar hasta el final de la línea, **ctrl-l** para limpiar la pantalla. Vea `man readline` para todos los atajos de teclado por defecto en Bash. Son una gran cantidad. Por ejemplo **alt-.** realiza un ciclo a través de los comandos previos, y **alt-*** expande un glob. -- Alternativamente, si amas los atajos de teclado vi-style, usa `set -o vi`. +- Alternativamente, si ama los atajos de teclado vi-style, use `set -o vi`. - Para ver los últimos comandos, `history`. También existen abreviaciones, tales como, `!$` (último argumento) y `!!` último comando, aunque son fácilmente remplazados con **ctrl-r** y **alt-.**. - Para volver al directorio de trabajo previo: `cd -` -- Si estás a mitad de camino de escritura de un comando pero cambias de opinión, presiona **alt-#** para agregar un `#` al principio y lo agrega como comentario (o usar **ctrl-a**, **#**, **enter**). Para que puedas entonces regresar a este luego vía comando `history`. +- Si está a mitad de camino de escribir un comando pero cambias de opinión, presiona **alt-#** para agregar un `#` al principio y lo agrega como comentario (o use **ctrl-a**, **#**, **enter**). Asi despues puede regresar al comando vía comando `history`. -- Se usa `xargs` (or `parallel`). Esto es muy poderoso. Nota: puedes controlar muchos elementos ejecutados por línea (`-L`), también es conocido como paralelismo (`-P`). Si no estas seguro, este puede ser el camino correcto, usa `xargs echo` primero. También, `-I{}` es cómodo. Ejemplos: +- Se usa `xargs` (or `parallel`). Esto es muy poderoso. Nota: puede controlar muchos elementos ejecutados por línea (`-L`), también es conocido como paralelismo (`-P`). Si no está seguro de que este sea el camino correcto, use `xargs echo` primero. También, `-I{}` es cómodo. Ejemplos: ```bash find . -name '*.py' | xargs grep some_function cat hosts | xargs -I{} ssh root@{} hostname @@ -92,19 +92,19 @@ Notas: - Se usa `pgrep` y `pkill` para encontrar o señalar procesos por su nombre (`-f` es de mucha ayuda). -- Conocer varias señales que puedes enviar a los procesos. Por ejemplo, para suspender un proceso, usa `kill -STOP [pid]`. Para la lista completa, consultar `man 7 signal` +- Conozca varias señales que pueda enviar a los procesos. Por ejemplo, para suspender un proceso, use `kill -STOP [pid]`. Para la lista completa, consultar `man 7 signal`. -- Usa `nohup` o `disown` si quieres mantener un proceso de fondo corriendo para siempre. +- Use `nohup` o `disown` si quiere mantener un proceso de fondo corriendo para siempre. -- Verifica que procesos están escuchando vía `netstat -lntp` o `ss -plat` (para TCP; agrega `-u` para UDP). +- Verifique que procesos están escuchando vía `netstat -lntp` o `ss -plat` (para TCP; agrega `-u` para UDP). -- Consulta también `lsof` para abrir sockets y archivos. +- Consulte también `lsof` para abrir sockets y archivos. -- Usar `alias` para crear atajos para comandos comúnmente usados. Por ejemplo, `alias ll="las -latr"` crea un nuevo alias `ll` +- Usar `alias` para crear atajos para comandos comúnmente usados. Por ejemplo, `alias ll="las -latr"` crea un nuevo alias `ll`. -- En scripts Bash, usa `set -x` para depurar la salida. Utiliza el modo estricto cuando se posible. Utiliza `set -e` para abortar en errores. Utiliza `set -o pipefail` también, para ser estrictos sobre los errores (aunque este tema es un poco delicado). Para scripts más complejos, también se puede utilizar `trap`. +- En scripts Bash, use `set -x` para depurar la salida. Use el modo estricto cuando se posible. Use `set -e` para abortar en caso de errores. Use `set -o pipefail` también, para ser estrictos sobre los errores (aunque este tema es un poco delicado). Para scripts más complejos, también se puede utilizar `trap`. -- En scripts Bash, subshells (escritos con paréntesis) son maneras convenientes para agrupar los comandos. Un ejemplo común es para moverse temporalmente hacia un directorio diferente del de trabajo, Ej. +- En scripts Bash, subshells (escritos con paréntesis) son maneras convenientes de agrupar los comandos. Un ejemplo común es para moverse temporalmente hacia un directorio diferente del de trabajo, Ej. ```bash # do something in current dir (cd /some/other/dir && other-command) @@ -113,22 +113,22 @@ Notas: - En Bash, considere que hay muchas formas de expansión de variables. Verificar la existencia de una variable: `${name:?error message}`. Por ejemplo, si un script Bash requiere un único argumento, solo escriba `input_file=${1:?usage: $0 input_file}`. Expansión aritmética: `i=$(( (i + 1) % 5 ))`. Secuencias: `{1..10}`. Reducción 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, vía `<(some command)`. Por ejemplo, compare local `/etc/hosts` con uno remoto: +- La salida de un comando puede ser tratada como un archivo, vía `<(some command)`. Por ejemplo, comparar local `/etc/hosts` con uno remoto: ```sh diff /etc/hosts <(ssh somehost cat /etc/hosts) ``` -- Conocer acerca "here documents" en Bash, así también `cat <logfile 2>&1`. Frecuentemente, para garantizar que un comando no haya dejado abierto un archivo para controlar la entrada estándar vinculada al terminal en el que te encuentras y también como buena práctica puedes agregar `logfile 2>&1`. Frecuentemente, para garantizar que un comando no haya dejado abierto un archivo para controlar la entrada estándar, vinculada al terminal en el que te encuentras, también es una buena práctica agregar ` Date: Tue, 21 Jul 2015 16:31:02 -0300 Subject: [PATCH 3/9] typo In "TOC" --- README-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README-es.md b/README-es.md index 120bba3..e40fd60 100644 --- a/README-es.md +++ b/README-es.md @@ -8,7 +8,7 @@ - [Meta](#meta) - [Fundamentos](#basics) - [Uso diario](#everyday-use) -- [Procesando archivos y datos](#processing-files-and-data) +- [Procesamiento archivos y datos](#processing-files-and-data) - [Depuración del sistema](#system-debugging) - [One-liners](#one-liners) - [Obscuro pero útil](#obscure-but-useful) From 54265756e21460194859a1431cf65b7af3ecc7bb Mon Sep 17 00:00:00 2001 From: Antonio Ossa Date: Wed, 22 Jul 2015 04:53:44 -0300 Subject: [PATCH 4/9] Added @ceoaliongroo observations. --- README-es.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README-es.md b/README-es.md index e40fd60..dd9e766 100644 --- a/README-es.md +++ b/README-es.md @@ -19,7 +19,7 @@ ![curl -s 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md' | egrep -o '`\w+`' | tr -d '`' | cowsay -W50](cowsay.png) -La fluidez en el terminal es una destreza a menudo abandonada y considerada arcaica, pero esta mejora su flexibilidad y productividad como ingeniero en forma obvia y sutil. Esta es una selección de notas y consejos al usar el terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y algunos bastante específicos, sofisticados u oscuros. Esta página no es larga, pero sí usa y recuerda todos los puntos aquí mostrados, sabrá un montón. +La fluidez en el terminal es una destreza a menudo abandonada y considerada arcaica, pero esta mejora su flexibilidad y productividad como ingeniero en formas obvia y sutil. Esta es una selección de notas y consejos al usar el terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y algunos bastante específicos, sofisticados u oscuros. Esta página no es larga, pero si usa y recuerda todos los puntos aquí mostrados, usted sabrá un montón. La mayor parte [originalmente](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands) @@ -32,9 +32,9 @@ pero debido al interés mostrado, parece que vale la pena usar Github, donde exi Alcance: -- Esta guía es tanto para el principiante como para el experimentado. Los objetivos son *diversidad* (todo importa), *especificidad* (dar ejemplos concretos del caso más común), y *concisión* (evitar cosas que no son esenciales o insignificantes que pueda buscar fácilmente en otro lugar). Cada consejo es esencial en alguna situación o significativamente ahorra tiempo comparada con otras alternativas. +- Esta guía es tanto para el principiante como para el experimentado. Los objetivos son *diversidad* (todo importa), *especificidad* (dar ejemplos concretos del caso más común), y *concisión* (evitar cosas que no son esenciales o insignificantes que pueda buscar en otro lugar fácilmente). Cada consejo es esencial en alguna situación o significativamente ahorra tiempo comparada con otras alternativas. - Esta escrito para Linux, con excepción de la sección "[Solo para MacOS X](#macos-x-only)". Muchos de los otros puntos aplican o pueden ser instalados en otros Unices o MacOS (o incluso Cygwin). -- El foco está en Bash interactivo, aunque muchos de los consejos se aplican para otros shells y al Bash scripting en general. +- Se enfoca en Bash interactivo, aunque muchos de los consejos se aplican para otros shells y al Bash scripting por lo general. - Esta incluye tanto comandos "estándar" Unix así como aquellos que requieren la instalación especial de un paquete -- siempre que sea suficientemente importante para ameritar su inclusión. Notas: @@ -128,7 +128,7 @@ Notas: - En ssh, saber cómo hacer un port tunnel con `-L` o `-D` (y de vez en cuando `-R`) es útil, Ej. para acceder sitio web desde un servidor remoto. -- Puede ser útil hacer algunas optimizaciones a su configuración ssh; por ejemplo, esto: `~/.ssh/config`, contiene la configuración para evitar desconexiones en ciertos entornos de red, utiliza compresión (cual es útil con scp sobre conexiones con un ancho de banda pequeño), y la multiplexión de canales para el mismo servidor con un archivo de control local: +- Puede ser útil hacer algunas optimizaciones a su configuración ssh; por ejemplo, `~/.ssh/config`, contiene la configuración para evitar desconexiones en ciertos entornos de red, utiliza compresión (cual es útil con scp sobre conexiones con un ancho de banda pequeño), y la multiplexión de canales para el mismo servidor con un archivo de control local: ``` TCPKeepAlive=yes ServerAliveInterval=15 From d591935a2f4d54a65854409b117cfd52a0e6938f Mon Sep 17 00:00:00 2001 From: aaossa Date: Wed, 22 Jul 2015 22:54:24 -0300 Subject: [PATCH 5/9] Full translation, since line 156 --- README-es.md | 160 +++++++++++++++++++++++++-------------------------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/README-es.md b/README-es.md index dd9e766..91e4c55 100644 --- a/README-es.md +++ b/README-es.md @@ -158,62 +158,62 @@ Notas: ## Procesamiento de archivos y datos -- Para localizar un archivo por nombre en el directorio actual, `find . -iname '*something*'` (o similar). Para encontrar un archivo en cualquier lado por nombre, usar `locate something` (pero tenga en mente `updatedb` quizás no haya indexado recientemente los archivos creados). +- Para localizar un archivo por nombre en el directorio actual, `find . -iname '*something*'` (o similar). Para encontrar un archivo en cualquier lado por nombre, use `locate something` (pero tenga en mente que `updatedb` quizás no haya indexado recientemente los archivos creados). -- Por lo general buscar por la fuente o archivos de datos (más avanzado que `grep -r`), usar [`ag`](https://github.com/ggreer/the_silver_searcher). +- Para busqueda general sobre la fuente o archivos de datos (más avanzado que `grep -r`), use [`ag`](https://github.com/ggreer/the_silver_searcher). -- Para convertir HTML a texto: `lynx -dump -stdin` +- Para convertir HTML a texto: `lynx -dump -stdin`. -- Para Markdown, HTML, y todos los tipos de conversión de documentos, probar [`pandoc`](http://pandoc.org/). +- Para Markdown, HTML, y todos los tipos de conversión de documentos, pruebe [`pandoc`](http://pandoc.org/). -- Si debes manipular XML, `xmlstarlet` es viejo pero bueno. +- Si debe manipular XML, `xmlstarlet` es viejo pero bueno. -- Para JSON, usa [`jq`](http://stedolan.github.io/jq/). +- Para JSON, use [`jq`](http://stedolan.github.io/jq/). - Para archivos Excel o CSV, [csvkit](https://github.com/onyxfish/csvkit) provee `in2csv`, `csvcut`, `csvjoin`, `csvgrep`, etc. - Para Amazon S3, [`s3cmd`](https://github.com/s3tools/s3cmd) es conveniente y [`s4cmd`](https://github.com/bloomreach/s4cmd) es el mas rápido. Hecho por Amazon [`aws`](https://github.com/aws/aws-cli) es esencial para otras tareas relacionadas al AWS. -- Conocer acerca `sort` y `uniq`, incluyendo opciones de uniq `-u` y `-d` -- ver unas líneas más abajo. +- Conocer acerca de `sort` y `uniq`, incluyendo las opciones de uniq `-u` y `-d` -- ver one-liners más abajo. -- Conocer acerca `cut`, `paste` y `join` para manipular archivos de texto. Muchas personas usan `cut` pero se olvidan acerca de `join`. +- Conocer acerca de `cut`, `paste` y `join` para manipular archivos de texto. Muchas personas usan `cut` pero se olvidan acerca de `join`. -- Conocer acerca `wc` para contar nuevas líneas (`-l`), caracteres (`-m`), palabras (`-w`) y bytes (`-c`). +- Conocer acerca de `wc` para contar saltos de línea (`-l`), caracteres (`-m`), palabras (`-w`) y bytes (`-c`). -- Conocer acerca `tee` para copiar desde el stdin hacia un archivo y también hacia el stdout, así `ls -al | tee file.txt`. +- Conocer acerca de `tee` para copiar desde el stdin hacia un archivo y también hacia el stdout, así `ls -al | tee file.txt`. -- Conocer que `locale` afecta muchas herramientas de línea de comando en forma delicada, incluyendo el orden del ordenamiento (compaginación) y rendimiento. La mayoría de las instalaciones de Linux configuran `LANG` u otras variables de localización para la configuración local como US English. Pero esté alerta, el ordenamiento puede cambiar si cambia la localización. Y también las rutinas i18n pueden hacer que `sort` u otros comandos se ejecuten **muchas veces** más lentos. En algunas situaciones (tales como la realización de operaciones u operaciones singulares debajo) puede de forma segura ignorar las rutinas lentas i18n por completo y utilizar el sort tradicional basado en byte, usando `export LC_ALL=C`. +- Sepa que `locale` afecta muchas herramientas de la línea de comandos en forma delicada, incluyendo el orden del ordenamiento (compaginación) y rendimiento. La mayoría de las instalaciones de Linux configuran `LANG` u otras variables de localización para la configuración local como US English. Pero tenga en cuenta que el ordenamiento va a cambiar si cambia `locale`. Y también las rutinas i18n pueden hacer que `sort` u otros comandos se ejecuten *muchas veces* más lentos. En algunas situaciones (tales como la realización de operaciones u operaciones singulares debajo) puede de forma segura ignorar las lentas rutinas i18n por completo y utilizar el sort tradicional basado en byte, usando `export LC_ALL=C`. -- Conozca aspectos básicos de `awk` y `sed` para manejo de datos. Por ejemplo, sumar todos lo números en la tercera columna de un archivo de texto: `awk '{ x += $3 } END { print x }'`. Esto es probablemente 3X más rápido y 3X más corto que su equivalente en Python. +- Conozca aspectos básicos de `awk` y `sed` para manejo de datos. Por ejemplo, sumar todos lo números en la tercera columna de un archivo de texto: `awk '{ x += $3 } END { print x }'`. Esto es probablemente 3 veces más rápido y 3 veces más corto que su equivalente en Python. - Para reemplazar todas las ocurrencias de un string en su lugar, en uno o más archivos: ```sh perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt ``` -- Para renombrar varios archivos a la vez de acuerdo a un patrón, usar `rename`. Para renombramientos complejos, [`repren`](https://github.com/jlevy/repren) may help. +- Para renombrar varios archivos a la vez de acuerdo a un patrón, usar `rename`. Para renombramientos complejos, [`repren`](https://github.com/jlevy/repren) puede ayudar. ```sh - # Recover backup files foo.bak -> foo: + # Recuperar archivos de respaldo foo.bak -> foo: rename 's/\.bak$//' *.bak - # Full rename of filenames, directories, and contents foo -> bar: + # Renombramiento completo de archivos, carpetas y contenidos foo -> bar: repren --full --preserve-case --from foo --to bar . ``` - Usar `shuf` para mezclar o seleccionar líneas aleatorias desde un archivo. -- Conozca las opciones de `sort`. Para números, use `-n`, o `-h` para manipulación de números humanamente leíbles (Ej. desde `du -h`). Conozca el trabajo principal de (`-t` y `-k`). En particular, este atento que lo necesitará para escribir`-k1,1` para ordenar por solo el primer campo; `-k1` significa ordenar de acuerdo a toda la línea. Orden estable (`sort -s`) puede ser útil. Por ejemplo, para organizar el primer por el campo 2, entonces secundariamente hacerlo por el campo 1, Puedes usar `sort -k1,1 | sort -s -k2,2`. +- Conozca las opciones de `sort`. Para números, use `-n`, o `-h` para manipulación de números humanamente leíbles (Ej. desde `du -h`). Conozca ecomo trabajan `-t` y `-k`. En particular, este atento a que necesitará escribir `-k1,1` para ordenar por solo el primer campo; `-k1` significa ordenar de acuerdo a toda la línea. Orden estable (`sort -s`) puede ser útil. Por ejemplo, para ordenar primero por el campo 2, luego secundariamente hacerlo por el campo 1, Puedes usar `sort -k1,1 | sort -s -k2,2`. -- Si necesitas siempre escribir un tab literal en una línea de comandos en Bash (Ej. para el argumento -t de ordenar), presione **ctrl-v** **[Tab]** o escriba `$'\t'` (El último es mejor porque puedes copiarlo/pegarlo). +- Si alguna vez necesita escribir un tab literal en una línea de comandos en Bash (Ej. para el argumento -t para 'sort'), presione **ctrl-v** **[Tab]** o escriba `$'\t'` (el último es mejor porque puede copiarlo/pegarlo). -- Las herramientas estándar para reparar el código fuente son `diff` y `patch`. Ver también `diffstat` para resumen estadístico de una diff. Nota `diff -r` trabaja con directorios por completo. Usar`diff -r tree1 tree2 | diffstat` para el resumen de cambios. +- Las herramientas estándar para reparar el código fuente son `diff` y `patch`. Ver también `diffstat` para resumen estadístico de una diff. Note que `diff -r` trabaja completamente con directorios. Usar`diff -r tree1 tree2 | diffstat` para un resumen de cambios. - Para archivos binarios, usar `hd` para sencillos "hex dumps" y `bvi` para edición de binario. -- También para archivos binarios, `strings` (además de `grep`, etc.) permite encontrar en el texto bits. +- También para archivos binarios, `strings` (además de `grep`, etc.) permite encontrar fragmentos de texto. -- Para diffs binaria (delta compression), usar `xdelta3`. +- Para diffs binarias (delta compression), usar `xdelta3`. -- Para convertir la codificación del texto, probar `iconv`. O `uconv` para el uso avanzado; este soporta este soporta algunos elementos Unicode avanzados. Por ejemplo, este coloca en minúsculas y remueve todos los acentos (por expanción y colocándolos a ellos): +- Para convertir la codificación del texto, probar `iconv`. O `uconv` para uso más avanzado; este soporta algunos elementos Unicode avanzados. Por ejemplo, este comando coloca en minúsculas y remueve todas los acentos (expandiéndolos y colocándolos): ```sh uconv -f utf-8 -t utf-8 -x '::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] >; ::Any-NFC; ' < input.txt > output.txt ``` @@ -225,39 +225,39 @@ Notas: ## Depuración del sistema -- Para depuración web, `curl` y `curl -I` son prácticos, o sus equivalentes `wget`, o el más moderno [`httpie`](https://github.com/jakubroztocil/httpie). +- Para depuración web, `curl` y `curl -I` son prácticos, o sus equivalentes en `wget`, o el más moderno [`httpie`](https://github.com/jakubroztocil/httpie). -- Para el estado del disco/cpu/red, usar `iostat`, `netstat`, `top` (o el mejor `htop`), y (especialmente) `dstat`. Bueno para recibir una idea rápida de lo que está pasando en tu sistema. +- Para conocer el estado del disco/cpu/red, usar `iostat`, `netstat`, `top` (o el mejor `htop`), y (especialmente) `dstat`. Bueno para recibir una idea rápida de qué está pasando en un sistema. -- Para una resumen en mayor profundidad, usar [`glances`](https://github.com/nicolargo/glances). Este se presenta con varios niveles de estadística en un solo terminal. Muy útil para una verificación rápida de varios subsistemas. +- Para una visión general en mayor profundidad, usar [`glances`](https://github.com/nicolargo/glances). Este se presenta con varios niveles de estadística en un solo terminal. Muy útil para una verificación rápida de varios subsistemas. -- Para conocer el estado de la memoria, ejecutar y entender la salida de `free` y `vmstat`. En particular, tener en cuenta el valor "cached" es memoria mantenida por el kernel Linux como un archivo de cache, entonces efectivamente cuenta como valor para "free". +- Para conocer el estado de la memoria, ejecutar y entender la salida de `free` y `vmstat`. En particular, tener en cuenta el valor "en caché" es mantenido en memoria por el kernel Linux como un archivo de cache, por lo que efectivamente cuenta como valor para "free". -- El sistema de depuración de Java es harina de otro costal, pero un truco simple en las JSM de Oracle y de otros consta en que puedes ejecutar `kill -3 ` y una traza completa y un resumen del montículo "heap summary" (incluyendo del detalle de la colección de basura generacional, la cual puede ser altamente informativa) serán descargados al stderr/logs. Las herramientas `jps`, `jstat`, `jstack`, `jmap` del JDK son útiles. [SJK tools](https://github.com/aragozin/jvm-tools) son más avanzadas. +- El sistema de depuración de Java es harina de otro costal, pero un truco simple en las JSM de Oracle y otros consta en que puedes ejecutar `kill -3 ` y una traza completa y un resumen del montículo "heap summary" (incluyendo del detalle de la colección de basura generacional, la cual puede ser altamente informativa) serán descargados al stderr/logs. Las herramientas `jps`, `jstat`, `jstack`, `jmap` del JDK son útiles. [SJK tools](https://github.com/aragozin/jvm-tools) son más avanzadas. - Usar `mtr` como un mejor traceroute, para identificar los problemas en la red. -- Para mirara porque el disco está lleno, `ncdu` ahorra tiempo sobre los comandos usual como `du -sh *`. +- Para buscar por qué el disco está lleno, `ncdu` ahorra tiempo sobre los comandos usuales como `du -sh *`. -- Para encontrar cual socket o proceso está utilizando el ancho de banda, prueba `iftop` o `nethogs`. +- Para encontrar cual socket o proceso está utilizando ancho de banda, pruebe `iftop` o `nethogs`. -- La herramienta `ab` (viene con Apache) es útil para una verificación rápida y sucia del rendimiento del servidor web. Para pruebas de carga más complejas, prueba `siege`. +- La herramienta `ab` (viene con Apache) es útil para una verificación "rápida y sucia" del rendimiento del servidor web. Para pruebas de carga más complejas, pruebe `siege`. -- Para depuración de redes más serias, `wireshark`, `tshark`, o `ngrep`. +- Para depuración mas seria de redes, `wireshark`, `tshark`, o `ngrep`. -- Conozca acerca `strace` y `ltrace`. Estas son de utilidad si un programa está fallando, guindando, o estrellando, y no conoces por qué?, o si quieres tener una idea general del rendimiento. Note la opción de elaboración de perfiles (`-c`), y la habilidad de adjuntar a un proceso en ejecución (`-p`). +- Conozca acerca de `strace` y `ltrace`. Estas puede ser de utilidad si un programa está fallando, está suspendido, o está "congelado/colgado/crasheado", y no sabe por qué, o si quieres tener una idea general del rendimiento. Note la opción de elaboración de perfiles, o "profiling", (`-c`), y la habilidad de adjuntar a un proceso en ejecución (`-p`). -- Conozca acerca `ldd` para verificar librerías compartidas etc. +- Conozca acerca de `ldd` para verificar librerías compartidas etc. - Conozca como conectarse a un proceso en ejecución con `gdb` y obtener su traza de pilas. -- Usar `/proc`. Este es extraordinariamente útil algunas veces cuando hay problemas de depuración en vivo. Ejemplos: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps`. +- Usar `/proc`. Es extraordinariamente útil algunas veces cuando se depuran problemas en vivo. Ejemplos: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps`. -- Cuando se depura porque algo salió más en el pasado, `sar` puede ser muy útil. Este muestra la estadística histórica en CPU, memoria, red, etc. +- Cuando se depura porque algo salió mal en el pasado, `sar` puede ser muy útil. Este muestra la estadística histórica en CPU, memoria, red, etc. -- Para sistemas y análisis de rendimiento de mayor profundidad, ver `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)), y [`sysdig`](https://github.com/draios/sysdig). +- Para analisis de sistemas y de rendimiento mas profundos, vea `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)), y [`sysdig`](https://github.com/draios/sysdig). -- Confirmar que OS te encuentras con `uname` o `uname -a` (información general Unix/kernel) o `lsb_release -a` (Linux distro info). +- Confirme en que OS se encuentra con `uname` o `uname -a` (información general en Unix/kernel) o `lsb_release -a` (información en Linux distro). - Usar `dmesg` siempre que algo actúe raro (esto podría ser problemas con el hardware o driver). @@ -266,17 +266,17 @@ Notas: Algunos ejemplos de comandos reunidos: -- Este es notablemente útil en ocasiones que hay que realizar intersección, unión, y diferencia de archivos de texto vía `sort`/`uniq`. Considere `a` y `b` como archivos de texto que son únicos. Esto es rápido, y trabaja con archivos de tamaño arbitrario, hasta varios gigabytes. (Sort no está limitado por la memoria, aunque quizás necesites utilizar la opción `-T` si `/tmp` está en una pequeña partición raíz.) Ver también la nota acerca `LC_ALL` y las opciones de `sort`, `-u` (dejado de lado para clarificar más abajo). +- Es notablemente útil en ocasiones que pueda realizar intersección, unión, y diferencia de conjuntos de archivos de texto vía `sort`/`uniq`. Suponga `a` y `b` como archivos de texto que son únicos. Esto es rápido, y trabaja con archivos de tamaño arbitrario, hasta varios gigabytes. (Sort no está limitado por la memoria, aunque quizás necesite utilizar la opción `-T` si `/tmp` está en una pequeña partición de raíz.) Vea también la nota acerca de `LC_ALL` y las opciones de `sort`, `-u` (dejado de lado para clarificar más abajo). ```sh - cat a b | sort | uniq > c # c is a union b - cat a b | sort | uniq -d > c # c is a intersect b - cat a b b | sort | uniq -u > c # c is set difference a - b + cat a b | sort | uniq > c # c es a union b + cat a b | sort | uniq -d > c # c es a intersectado con b + cat a b b | sort | uniq -u > c # c es el conjunto diferencia a - b ``` -- Usar `grep . *` para visualmente examinar todo el contenido de todos los archivos de un directorio, Ej. para directorios llenos con parámetros de configuración, como `/sys`, `/proc`, `/etc`. +- Usar `grep . *` para examinar visualmente todos los contenidos de todos los archivos en un directorio, por ejemplo, para directorios llenos con parámetros de configuración, como `/sys`, `/proc`, `/etc`. -- Sumar todos los números en la tercera columna de un archivo de texto (esto es probablemente 3X más rápido 3X menor código que el equivalente en Python): +- Sumar todos los números en la tercera columna de un archivo de texto (esto es probablemente 3 veces más rápido y 3 veces menos código que el equivalente en Python): ```sh awk '{ x += $3 } END { print x }' myfile ``` @@ -286,7 +286,7 @@ Algunos ejemplos de comandos reunidos: find . -type f -ls ``` -- Digamos que tiene un archivo de texto, como un log de un servidor web, y un cierto valor comienza a aparecer en algunas líneas, tales como un parámetro `acct_id` que está presente en el URL. Si quieres un recuento de cuantas peticiones ""request hay por cada `acct_id`: +- Digamos que tiene un archivo de texto, como un log de un servidor web, y un cierto valor comienza a aparecer en algunas líneas, tales como un parámetro `acct_id` que está presente en la URL. Si quieres un recuento de cuantas peticiones ("request") hay por cada `acct_id`: ```sh cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn ``` @@ -305,7 +305,7 @@ Algunos ejemplos de comandos reunidos: ## Oscuro pero útil -- `expr`: ejecuta operaciones aritméticas o booleanas o evalúa expresiones regulares +- `expr`: ejecuta operaciones aritméticas o booleanas, o evalúa expresiones regulares - `m4`: procesador de macro sencillo @@ -315,21 +315,21 @@ Algunos ejemplos de comandos reunidos: - `env`: ejecuta un comando (útil en scripts) -- `printenv`: imprime las variables del ambiente (útil en depuración y scripts) +- `printenv`: imprime las variables del entorno (útil en depuración y scripts) - `look`: buscar palabras en inglés (o líneas en un archivo) comenzando con un string - `cut`, `paste` y `join`: manipulación de datos -- `fmt`: formato de texto de párrafo +- `fmt`: da formato a párrafos de texto -- `pr`: formato de texto en páginas/columnas +- `pr`: da formato al texto en páginas/columnas -- `fold`: envolturas de líneas de texto +- `fold`: envuelve líneas de texto -- `column`: formato de texto en columnas o tablas +- `column`: da formato al texto en columnas o tablas -- `expand` y `unexpand`: convertidor entre tabuladores y espacios +- `expand` y `unexpand`: conversión entre tabuladores y espacios - `nl`: agrega números de línea @@ -343,15 +343,15 @@ Algunos ejemplos de comandos reunidos: - `toe`: tabla de información de términos -- `nc`: depuración del entorno de red y transferencia de datos +- `nc`: depuración de la red y transferencia de datos - `socat`: socket relay y redireccionador de puerto tcp (similar a `netcat`) - [`slurm`](https://github.com/mattthias/slurm): visualización del tráfico de red -- `dd`: moviliza data entre archivos y dispositivos +- `dd`: moviliza data entre archivos o dispositivos -- `file`: identifica el tipo de archivo +- `file`: identifica el tipo de un archivo - `tree`: muestra directorios y subdirectorios como un árbol anidado; parecido a `ls` pero recursivo @@ -359,31 +359,31 @@ Algunos ejemplos de comandos reunidos: - `tac`: imprime archivos en forma inversa -- `shuf`: selección de líneas de un archivo de forma aleatoria +- `shuf`: selección aleatoria de líneas de un archivo - `comm`: compara archivos ordenados línea por línea -- `pv`: monitor del progreso de datos, a través, de un tubo +- `pv`: monitorea el progreso de datos a través de un tubo - `hd` y `bvi`: descarga o edita archivos binarios -- `strings`: extrae textos de archivos binarios +- `strings`: extrae texto de archivos binarios -- `tr`: traducción y manipulación de caracteres +- `tr`: traducción o manipulación de caracteres - `iconv` o `uconv`: conversión de codificaciones de texto - `split` y `csplit`: división de archivos -- `sponge`: lee todas las entradas antes de escribirlo, útil para vista previa y posterior escritura hacia el mismo archivo, Ej., `grep -v something some-file | sponge some-file` +- `sponge`: lee todas las entradas antes de escribirlo, útil para vista previa y posterior escritura sobre el mismo archivo, Ej., `grep -v something some-file | sponge some-file` -- `units`: unidades de conversión y calculaciones; convierte furlongs por fortnight para twips por blink (ver también `/usr/share/units/definitions.units`) +- `units`: unidades de conversión y cálculos; convierte furlongs por fortnight a twips por blink (ver también `/usr/share/units/definitions.units`) - `7z`: compresión de archivos de alto nivel - `ldd`: información de librería dinámica -- `nm`: archivo de objeto de símbolos +- `nm`: símbolos de archvios objeto - `ab`: benchmarking de servidores web @@ -391,49 +391,49 @@ Algunos ejemplos de comandos reunidos: - `mtr`: mejor traceroute para la depuración de la red -- `cssh`: shell concurrent visual +- `cssh`: shell concurrente visual -- `rsync`: sincronización de archivos y carpetas sobre SSH o en sistemas de archivos locales +- `rsync`: sincronización de archivos y carpetas sobre SSH o en sistema de archivos locales - `wireshark` y `tshark`: captura de paquetes y depuración de la red - `ngrep`: grep para la capa de la red -- `host` y `dig`: consulta DNS +- `host` y `dig`: consultas DNS -- `lsof`: descriptor de archivo de procesos y información de socket +- `lsof`: descriptor de archivo de procesos e información de socket - `dstat`: sistema de estadísticas útil -- [`glances`](https://github.com/nicolargo/glances):vistazo de multi-subsistemas, de alto nivel +- [`glances`](https://github.com/nicolargo/glances): visión general de multi-subsistemas, de alto nivel -- `iostat`: estadísticas del CPU y uso del disco +- `iostat`: estadísticas de la CPU y uso del disco - `htop`: versión mejorada de top - `last`: historial de login -- `w`: quien está autenticado? +- `w`: quién está autenticado - `id`: información de identidad de usuario/grupo -- `sar`: sistema de estadísticas histórico +- `sar`: estadísticas históricas del sistema -- `iftop` o `nethogs`: utilización de la red por un socket o process +- `iftop` o `nethogs`: utilización de la red por un socket o proceso - `ss`: estadísticas de socket -- `dmesg`: arranque y sistema de mensajes de error +- `dmesg`: mensajes de error del arranque y del sistema - `hdparm`: manipulación/rendimiento de discos SATA/ATA - `lsb_release`: información de la distribución de Linux -- `lsblk`: lista de bloques de dispositivos: un árbol de vista de sus discos y particiones de disco +- `lsblk`: lista dispositivos de bloque: una vista de arbol de sus discos y particiones de disco - `lshw`, `lscpu`, `lspci`, `lsusb`, `dmidecode`: información de hardware, incluyendo CPU, BIOS, RAID, gráficos, dispositivos, etc. -- `fortune`, `ddate`, y `sl`: um, bien, este depende si tiene la consideración de locomotoras de vapor y citas Zippy "práctico" +- `fortune`, `ddate`, y `sl`: um, bien, depende de si considera las locomotoras de vapor y citas Zippy "útiles" ## Solo para MacOS X @@ -442,28 +442,28 @@ Estos son puntos relevantes *solo* en MacOS. - Administración de paquetes con `brew` (Homebrew) y/o `port` (MacPorts). Estos pueden ser utilizados para instalar en MacOS muchos de los comandos de arriba. -- Copiar la salida de cualquier comando para una aplicación desktop con `pbcopy` y pegar desde una entrada con `pbpaste`. +- Copie la salida de cualquier comando en una aplicación de escritorio con `pbcopy` y pegue una entrada desde una con `pbpaste`. -- Para abrir un archivo con una aplicación desktop, usar `open` o `open -a /Applications/Whatever.app`. +- Para abrir un archivo con una aplicación de escritorio, use `open` o `open -a /Applications/Whatever.app`. -- Spotlight: Busca archivos con `mdfind` y listar metadata (como información de foto EXIF) con `mdls`. +- Spotlight: Busque archivos con `mdfind` y liste metadata (tal como información de foto EXIF) con `mdls`. -- Tenga en cuenta que MacOS está basado en BSD Unix, y cualquier comando (por ejemplo `ps`, `ls`, `tail`, `awk`, `sed`) tiene variaciones discretas variaciones por cada Linux, que está en gran parte influenciado por el sistema Unix V-style y herramientas GNU. Puedes frecuentemente decirme la diferencia por señalar unas páginas man que tienen el encabezado "BSD General Commands Manual." En algunos casos versiones GNU pueden ser instalados, también (tales como `gawk` y `gsed` para awk y sed del GNU). Si escribe cross-platform scripts Bash, evita tales comandos (por ejemplo, considerando Python o `perl`) o probar con mucho cuidado. +- Tenga en cuenta que MacOS está basado en BSD Unix, y muchos comandos (por ejemplo `ps`, `ls`, `tail`, `awk`, `sed`) tienen muchas variaciones discretas respecto de Linux, que está en gran parte influenciado por el sistema Unix V-style y herramientas GNU. Comunmente puede diferenciar al notar que una página man tienen el encabezado "BSD General Commands Manual." En algunos casos versiones GNU pueden ser instaladas también (tales como `gawk` y `gsed` para GNU awk y sed). Si escribe scripts Bash multiplataforma, evite tales comandos (por ejemplo, considere Python o `perl`) o probar cuidadosamente. ## Más recursos -- [awesome-shell](https://github.com/alebcay/awesome-shell): Una lista curada de herramientas shell y recursos. -- [Strict mode](http://redsymbol.net/articles/unofficial-bash-strict-mode/) para escribir mejores script shell. +- [awesome-shell](https://github.com/alebcay/awesome-shell): Una lista curada de herramientas y recursos para la shell. +- [Strict mode](http://redsymbol.net/articles/unofficial-bash-strict-mode/) para escribir mejores scripts shell. ## Advertencia -Con excepción de pequeñas tareas, el código está escrito para que otros puedan leerlo. Con el poder llega la responsabilidad. El hecho de que tú *puedes* hacer algo en Bash no necesariamente significa que debas hacerlo! ;) +Con la excepción de tareas muy pequeñas, el código está escrito para que otros puedan leerlo. Con el poder llega la responsabilidad. El hecho de que usted *puede* hacer algo en Bash no necesariamente significa que deba hacerlo! ;) ## Licencia [![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/) -Este trabajo esta licenciado bajo [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/). +Este trabajo está licenciado bajo [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/). From 28dbb9a83eb3a3e59593e0160c15e28ea29734c1 Mon Sep 17 00:00:00 2001 From: aaossa Date: Thu, 23 Jul 2015 19:23:30 -0300 Subject: [PATCH 6/9] Added suggestions --- README-es.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README-es.md b/README-es.md index 91e4c55..1e5754e 100644 --- a/README-es.md +++ b/README-es.md @@ -174,7 +174,7 @@ Notas: - Para Amazon S3, [`s3cmd`](https://github.com/s3tools/s3cmd) es conveniente y [`s4cmd`](https://github.com/bloomreach/s4cmd) es el mas rápido. Hecho por Amazon [`aws`](https://github.com/aws/aws-cli) es esencial para otras tareas relacionadas al AWS. -- Conocer acerca de `sort` y `uniq`, incluyendo las opciones de uniq `-u` y `-d` -- ver one-liners más abajo. +- Conocer acerca de `sort` y `uniq`, incluyendo las opciones de uniq `-u` y `-d` -- ver [one-liners](https://github.com/jlevy/the-art-of-command-line/blob/master/README-es.md#one-liners) más abajo. - Conocer acerca de `cut`, `paste` y `join` para manipular archivos de texto. Muchas personas usan `cut` pero se olvidan acerca de `join`. @@ -184,7 +184,7 @@ Notas: - Sepa que `locale` afecta muchas herramientas de la línea de comandos en forma delicada, incluyendo el orden del ordenamiento (compaginación) y rendimiento. La mayoría de las instalaciones de Linux configuran `LANG` u otras variables de localización para la configuración local como US English. Pero tenga en cuenta que el ordenamiento va a cambiar si cambia `locale`. Y también las rutinas i18n pueden hacer que `sort` u otros comandos se ejecuten *muchas veces* más lentos. En algunas situaciones (tales como la realización de operaciones u operaciones singulares debajo) puede de forma segura ignorar las lentas rutinas i18n por completo y utilizar el sort tradicional basado en byte, usando `export LC_ALL=C`. -- Conozca aspectos básicos de `awk` y `sed` para manejo de datos. Por ejemplo, sumar todos lo números en la tercera columna de un archivo de texto: `awk '{ x += $3 } END { print x }'`. Esto es probablemente 3 veces más rápido y 3 veces más corto que su equivalente en Python. +- Conozca los aspectos básicos de `awk` y `sed` para manejo de datos. Por ejemplo, sumar todos lo números en la tercera columna de un archivo de texto: `awk '{ x += $3 } END { print x }'`. Esto es probablemente 3 veces más rápido y 3 veces más corto que su equivalente en Python. - Para reemplazar todas las ocurrencias de un string en su lugar, en uno o más archivos: ```sh @@ -225,25 +225,25 @@ Notas: ## Depuración del sistema -- Para depuración web, `curl` y `curl -I` son prácticos, o sus equivalentes en `wget`, o el más moderno [`httpie`](https://github.com/jakubroztocil/httpie). +- Para depuración web, `curl` y `curl -I` son prácticos, o como sus equivalentes `wget`, o el más moderno [`httpie`](https://github.com/jakubroztocil/httpie). - Para conocer el estado del disco/cpu/red, usar `iostat`, `netstat`, `top` (o el mejor `htop`), y (especialmente) `dstat`. Bueno para recibir una idea rápida de qué está pasando en un sistema. - Para una visión general en mayor profundidad, usar [`glances`](https://github.com/nicolargo/glances). Este se presenta con varios niveles de estadística en un solo terminal. Muy útil para una verificación rápida de varios subsistemas. -- Para conocer el estado de la memoria, ejecutar y entender la salida de `free` y `vmstat`. En particular, tener en cuenta el valor "en caché" es mantenido en memoria por el kernel Linux como un archivo de cache, por lo que efectivamente cuenta como valor para "free". +- Para conocer el estado de la memoria, ejecutar y entender la salida de `free` y `vmstat`. En particular, tener en cuenta el valor "cached" es mantenido en memoria por el kernel Linux como un archivo de cache, por lo que efectivamente cuenta como valor para "free". - El sistema de depuración de Java es harina de otro costal, pero un truco simple en las JSM de Oracle y otros consta en que puedes ejecutar `kill -3 ` y una traza completa y un resumen del montículo "heap summary" (incluyendo del detalle de la colección de basura generacional, la cual puede ser altamente informativa) serán descargados al stderr/logs. Las herramientas `jps`, `jstat`, `jstack`, `jmap` del JDK son útiles. [SJK tools](https://github.com/aragozin/jvm-tools) son más avanzadas. - Usar `mtr` como un mejor traceroute, para identificar los problemas en la red. -- Para buscar por qué el disco está lleno, `ncdu` ahorra tiempo sobre los comandos usuales como `du -sh *`. +- Para examinar por qué el disco está lleno, `ncdu` ahorra tiempo sobre los comandos usuales como `du -sh *`. -- Para encontrar cual socket o proceso está utilizando ancho de banda, pruebe `iftop` o `nethogs`. +- Para encontrar cual socket o proceso está utilizando el ancho de banda, pruebe `iftop` o `nethogs`. - La herramienta `ab` (viene con Apache) es útil para una verificación "rápida y sucia" del rendimiento del servidor web. Para pruebas de carga más complejas, pruebe `siege`. -- Para depuración mas seria de redes, `wireshark`, `tshark`, o `ngrep`. +- Para una depuración mas seria de redes, `wireshark`, `tshark`, o `ngrep`. - Conozca acerca de `strace` y `ltrace`. Estas puede ser de utilidad si un programa está fallando, está suspendido, o está "congelado/colgado/crasheado", y no sabe por qué, o si quieres tener una idea general del rendimiento. Note la opción de elaboración de perfiles, o "profiling", (`-c`), y la habilidad de adjuntar a un proceso en ejecución (`-p`). @@ -255,7 +255,7 @@ Notas: - Cuando se depura porque algo salió mal en el pasado, `sar` puede ser muy útil. Este muestra la estadística histórica en CPU, memoria, red, etc. -- Para analisis de sistemas y de rendimiento mas profundos, vea `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)), y [`sysdig`](https://github.com/draios/sysdig). +- Para análisis de sistemas y de rendimiento más profundos, vea `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)), y [`sysdig`](https://github.com/draios/sysdig). - Confirme en que OS se encuentra con `uname` o `uname -a` (información general en Unix/kernel) o `lsb_release -a` (información en Linux distro). @@ -268,7 +268,7 @@ Algunos ejemplos de comandos reunidos: - Es notablemente útil en ocasiones que pueda realizar intersección, unión, y diferencia de conjuntos de archivos de texto vía `sort`/`uniq`. Suponga `a` y `b` como archivos de texto que son únicos. Esto es rápido, y trabaja con archivos de tamaño arbitrario, hasta varios gigabytes. (Sort no está limitado por la memoria, aunque quizás necesite utilizar la opción `-T` si `/tmp` está en una pequeña partición de raíz.) Vea también la nota acerca de `LC_ALL` y las opciones de `sort`, `-u` (dejado de lado para clarificar más abajo). ```sh - cat a b | sort | uniq > c # c es a union b + cat a b | sort | uniq > c # c es a unido con b cat a b | sort | uniq -d > c # c es a intersectado con b cat a b b | sort | uniq -u > c # c es el conjunto diferencia a - b ``` @@ -351,7 +351,7 @@ Algunos ejemplos de comandos reunidos: - `dd`: moviliza data entre archivos o dispositivos -- `file`: identifica el tipo de un archivo +- `file`: identifica el tipo de archivo - `tree`: muestra directorios y subdirectorios como un árbol anidado; parecido a `ls` pero recursivo @@ -367,7 +367,7 @@ Algunos ejemplos de comandos reunidos: - `hd` y `bvi`: descarga o edita archivos binarios -- `strings`: extrae texto de archivos binarios +- `strings`: extrae texto desde archivos binarios - `tr`: traducción o manipulación de caracteres @@ -429,7 +429,7 @@ Algunos ejemplos de comandos reunidos: - `lsb_release`: información de la distribución de Linux -- `lsblk`: lista dispositivos de bloque: una vista de arbol de sus discos y particiones de disco +- `lsblk`: lista de dispositivos de bloque: una vista tipo arbol de sus discos y particiones de disco - `lshw`, `lscpu`, `lspci`, `lsusb`, `dmidecode`: información de hardware, incluyendo CPU, BIOS, RAID, gráficos, dispositivos, etc. @@ -442,7 +442,7 @@ Estos son puntos relevantes *solo* en MacOS. - Administración de paquetes con `brew` (Homebrew) y/o `port` (MacPorts). Estos pueden ser utilizados para instalar en MacOS muchos de los comandos de arriba. -- Copie la salida de cualquier comando en una aplicación de escritorio con `pbcopy` y pegue una entrada desde una con `pbpaste`. +- Copie la salida de cualquier comando en una aplicación de escritorio con `pbcopy` y pegue una entrada con `pbpaste`. - Para abrir un archivo con una aplicación de escritorio, use `open` o `open -a /Applications/Whatever.app`. From e507c9bf1ca3d7f99de80a44492271bd286a5334 Mon Sep 17 00:00:00 2001 From: Carlos Mantilla Date: Fri, 24 Jul 2015 17:23:03 +0000 Subject: [PATCH 7/9] es: update translation from 18/07/2015 to 24/07/2015 --- README-es.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README-es.md b/README-es.md index ecc9599..7c27601 100644 --- a/README-es.md +++ b/README-es.md @@ -63,7 +63,7 @@ Notas: - Administración básica de redes: `ip` o `ifconfig`, `dig`. -- Conozca bien las expresiones regulares y varias opciones (flags) para `grep`/`egrep`. Las opciones `-i`, `-o`, `-v`, `-A`, y `-B` son dignas de ser recordadas. +- Conozca bien las expresiones regulares y varias opciones (flags) para `grep`/`egrep`. Las opciones `-i`, `-o`, `-v`, `-A`, `-B` y `-C` son dignas de ser recordadas. - Aprenda el uso de `apt-get`, `yum`, `dnf` o `pacman` (dependiendo de la distribución "distro") para buscar e instalar paquetes. Y asegúrate que tienes `pip` para instalar la herramienta de línea de comando basada en Python (un poco más abajo esta explicado como instalar vía `pip`). @@ -100,6 +100,8 @@ Notas: - Consulta también `lsof` para abrir sockets y archivos. +- Consulta `uptime` o `w` para conocer cuánto tiempo el sistema ha estado corriendo. + - Usar `alias` para crear atajos para comandos comúnmente usados. Por ejemplo, `alias ll="las -latr"` crea un nuevo alias `ll` - En scripts Bash, usa `set -x` para depurar la salida. Utiliza el modo estricto cuando se posible. Utiliza `set -e` para abortar en errores. Utiliza `set -o pipefail` también, para ser estrictos sobre los errores (aunque este tema es un poco delicado). Para scripts más complejos, también se puede utilizar `trap`. @@ -251,7 +253,7 @@ Notas: - Conozca como conectarse a un proceso en ejecución con `gdb` y obtener su traza de pilas. -- Usar `/proc`. Este es extraordinariamente útil algunas veces cuando hay problemas de depuración en vivo. Ejemplos: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps`. +- Usar `/proc`. Este es extraordinariamente útil algunas veces cuando hay problemas de depuración en vivo. Ejemplos: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/meminfo`, `/proc/cmdline`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps` (donde `xxx` es el id o pid del proceso). - Cuando se depura porque algo salió más en el pasado, `sar` puede ser muy útil. Este muestra la estadística histórica en CPU, memoria, red, etc. @@ -357,6 +359,8 @@ Algunos ejemplos de comandos reunidos: - `stat`: información del archivo +- `time`: ejecuta y calcula el tiempo de ejecución de un comando + - `tac`: imprime archivos en forma inversa - `shuf`: selección de líneas de un archivo de forma aleatoria @@ -407,7 +411,11 @@ Algunos ejemplos de comandos reunidos: - [`glances`](https://github.com/nicolargo/glances):vistazo de multi-subsistemas, de alto nivel -- `iostat`: estadísticas del CPU y uso del disco +- `iostat`: estadísticas del uso del disco duro + +- `mpstat`: estadísticas del uso del CPU + +- `vmstat`: estadísticas del uso de la memoria - `htop`: versión mejorada de top @@ -431,7 +439,9 @@ Algunos ejemplos de comandos reunidos: - `lsblk`: lista de bloques de dispositivos: un árbol de vista de sus discos y particiones de disco -- `lshw`, `lscpu`, `lspci`, `lsusb`, `dmidecode`: información de hardware, incluyendo CPU, BIOS, RAID, gráficos, dispositivos, etc. +- `lshw`, `lscpu`, `lspci`, `lsusb`, `dmidecode`: información de hardware, incluyendo CPU, BIOS, RAID, gráficos, dispositivos, etc + +- `lsmod` y `modifno`: lista y muestra detalles de los módulos del kernel - `fortune`, `ddate`, y `sl`: um, bien, este depende si tiene la consideración de locomotoras de vapor y citas Zippy "práctico" From d0d211ff7408d0765acdd7d5f203c14e0e29fed2 Mon Sep 17 00:00:00 2001 From: Carlos Mantilla Date: Tue, 28 Jul 2015 01:42:09 +0300 Subject: [PATCH 8/9] es: update translation from 28-07-2015 --- README-es.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README-es.md b/README-es.md index 1ec4dbe..a596aaa 100644 --- a/README-es.md +++ b/README-es.md @@ -433,6 +433,8 @@ Algunos ejemplos de comandos reunidos: - `dmesg`: mensajes de error del arranque y del sistema +- `sysctl`: examina y configura los parámetros de kernel de Linux en tiempo de ejecución + - `hdparm`: manipulación/rendimiento de discos SATA/ATA - `lsb_release`: información de la distribución de Linux From 63bb36247675ba2e39683c2bf55d9e1bb48ccd20 Mon Sep 17 00:00:00 2001 From: Carlos Mantilla Date: Tue, 28 Jul 2015 08:30:43 +0300 Subject: [PATCH 9/9] es: correction of typos and plurals. thanks @mayra-cabrera --- README-es.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README-es.md b/README-es.md index a596aaa..e212b80 100644 --- a/README-es.md +++ b/README-es.md @@ -19,7 +19,7 @@ ![curl -s 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md' | egrep -o '`\w+`' | tr -d '`' | cowsay -W50](cowsay.png) -La fluidez en el terminal es una destreza a menudo abandonada y considerada arcaica, pero esta mejora su flexibilidad y productividad como ingeniero en formas obvia y sutil. Esta es una selección de notas y consejos al usar el terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y algunos bastante específicos, sofisticados u oscuros. Esta página no es larga, pero sí puedes usar y reordar todos los puntos aquí mostrados, sabrás un montón. +La fluidez en el terminal es una destreza a menudo abandonada y considerada arcaica, pero esta mejora su flexibilidad y productividad como ingeniero en formas obvia y sutil. Esta es una selección de notas y consejos al usar el terminal que encontré útiles al trabajar en Linux. Algunos consejos son elementales y algunos bastante específicos, sofisticados u oscuros. Esta página no es larga, pero si puedes usar y recordar todos los puntos aquí mostrados, sabrás un montón. La mayor parte [originalmente](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands) @@ -53,7 +53,7 @@ Notas: - Aprende sobre redirección de salida `>`, entrada `<` y pipes utilizando `|`. Conozca que `>` sobrescribe el archivo de salida y `>>` añade. Aprende sobre stdout y stderr. -- Aprende sobre expansión de archivos glob con `*` (y tal vez `?` y `{`...`}`) y quoting y la diferencia entre comillas doble `"` y simple `'`. (Ver más en expansión de variables más abajo.) +- Aprende sobre expansión de archivos glob con `*` (y tal vez `?` y `{`...`}`) y quoting y la diferencia entre comillas dobles `"` y simples `'`. (Ver más en expansión de variables más abajo.) - Familiarízate con la administración de trabajo en Bash: `&`, **ctrl-z**, **ctrl-c**, `jobs`, `fg`, `bg`, `kill`, etc.