UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

512 lines (327 loc) 25.3 kB
Related articles * [Bash](/index.php/Bash_(Espa%C3%B1ol) "Bash (Español)") * [Zsh](/index.php/Zsh_(Espa%C3%B1ol) "Zsh (Español)") * [Recomendaciones generales](/index.php/General_recommendations_(Espa%C3%B1ol) "General recommendations (Español)") * [Proyecto GNU](/index.php/GNU_Project_(Espa%C3%B1ol) "GNU Project (Español)") * [sudo](/index.php/Sudo_(Espa%C3%B1ol) "Sudo (Español)") * [cron](/index.php/Cron "Cron") * [File system search](/index.php/File_system_search "File system search") * [man page (Español)](/index.php/Man_page_(Espa%C3%B1ol) "Man page (Español)") * [Securely wipe disk#shred](/index.php/Securely_wipe_disk#shred "Securely wipe disk") * [File permissions and attributes](/index.php/File_permissions_and_attributes "File permissions and attributes") Este artículo trata sobre las utilidades de los sistemas GNU/Linux denominadas *core*, tales como *less*, *ls*, y *grep*. El ámbito de este artículo incluye (pero no está limitado) a las utilidades del paquete [coreutils](https://www.archlinux.org/packages/?name=coreutils) de GNU. Los siguientes son trucos, consejos e información relacionada con dichas utilidades. ## Contents * [1 Comandos básicos](#Comandos_b.C3.A1sicos) * [2 cat](#cat) * [3 dd](#dd) * [3.1 Comprobar el progreso de dd en ejecución](#Comprobar_el_progreso_de_dd_en_ejecuci.C3.B3n) * [3.1.1 Usando el visor de tubería (pv)](#Usando_el_visor_de_tuber.C3.ADa_.28pv.29) * [3.2 derivados de dd](#derivados_de_dd) * [4 grep](#grep) * [4.1 Salida con colores](#Salida_con_colores) * [4.2 Salida de error estándar](#Salida_de_error_est.C3.A1ndar) * [5 iconv](#iconv) * [5.1 Convertir el fichero reemplazándolo](#Convertir_el_fichero_reemplaz.C3.A1ndolo) * [6 ip](#ip) * [7 less](#less) * [7.1 Salida en color mediante variables de entorno](#Salida_en_color_mediante_variables_de_entorno) * [7.2 Salida en color mediante wrappers](#Salida_en_color_mediante_wrappers) * [7.3 Vim como visualizador alternativo](#Vim_como_visualizador_alternativo) * [7.4 Salida coloreada cuando lee de entrada estándar](#Salida_coloreada_cuando_lee_de_entrada_est.C3.A1ndar) * [8 ls](#ls) * [9 lsblk](#lsblk) * [10 mkdir](#mkdir) * [11 mv](#mv) * [12 rm](#rm) * [13 sed](#sed) * [14 seq](#seq) * [15 Véase también](#V.C3.A9ase_tambi.C3.A9n) ## Comandos básicos La siguiente tabla lista los comandos básicos de consola que todo usuario linux debería conocer. Comandos en **negrita** son parte de la línea de comandos, los otros son programas separados llamados desde la consola. Véase las siguientes secciones y *Artículos relacionados* para más detalles. | Comando | Descripción | Ejemplo | | man | Muestra la página del manual para ese comando | man ed | | **cd** | Cambia de directorio | cd /etc/pacman.d | | mkdir | Crea un directorio | mkdir ~/newfolder | | rmdir | Elimina un directorio vacío | rmdir ~/emptyfolder | | rm | Elimina un fichero | rm -r ~/file.txt | | rm -r | Elimina directorios y sus contenidos | rm -r ~/.cache | | ls | Lista archivos | ls *.avi | | ls -a | Lista archivos ocultos | ls -a /home/archie | | ls -al | Lista archivos ocultos y propiedades de los archivos | | mv | Mueve un fichero | mv ~/compressed.zip ~/archive/compressed2.zip | | cp | Copia un fichero | cp ~/.bashrc ~/.bashrc.bak | | chmod +x | Da permisos de ejecución a un fichero | chmod +x ~/.local/bin/myscript.sh | | cat | Muestra el contenido de un archivo | cat /etc/hostname | | strings | Muestra caracteres imprimibles en un fichero binario | strings /usr/bin/free | | find | Busca un archivo | find ~ -name myfile | | mount | Monta una partición | mount /dev/sdc1 /media/usb | | df -h | Muestra el espacio disponible en todas las particiones | | ps -A | Muestra todos los procesos en ejecución | | killall | Mata todas las instancias de un proceso en ejecución | ## cat [cat](https://en.wikipedia.org/wiki/cat_(Unix) (*concatenate*) es una utilidad estándar de unix que concatena y lista ficheros. * Dado que *cat* no es un comando integrado en la consola, en bastantes ocasiones encontrará más conveniente usar una [redirección (English)](https://en.wikipedia.org/wiki/Redirection_(computing) "wikipedia:Redirection (computing)"), por ejemplo en scripts, o si le preocupa el rendimiento. De hecho `< *file*` hace lo mismo que `cat *file*`. * *cat* es capaz de trabajar con múltiples líneas, aunque esto se ve a veces como una mala práctica. ``` $ cat << EOF >> *ruta/al/fichero* *primera linea* ... *últimalinea* EOF ``` Una alternativa mejor es el comando *echo*: ``` $ echo "\ *primera línea* ... *última línea*" \ >> *ruta/al/fichero* ``` * Si necesita lista las líneas del fichero en orden inverso, existe una utilidad llamada tac [tac](https://en.wikipedia.org/wiki/tac_(Unix) (*cat* invertido). ## dd [dd](https://en.wikipedia.org/wiki/dd_(Unix) es un comando de sistemas operativos Unix y tipo-Unix cuyo propósito principal es convertir y copiar un fichero. **Note:** *cp* hace lo mismo que *dd* sin pasarle argumentos pero no está diseñado para procedimientos de borrado de discos más versátiles. ### Comprobar el progreso de dd en ejecución **Tip:** Esta tarea ha sido facilitada en versiones recientes (desde la version 8.24 del paquete [coreutils](https://www.archlinux.org/packages/?name=coreutils)) de *dd*. Para monitorear el progreso de *dd* simplemente adjunte el parámetro `status=progress` al comando. Por defecto, no hay salida para *dd* hasta que la tarea ha terminado. Con *kill* y la señal `USR1` puede forzar a imprimir el estatus sin matar al programa. Habra una segunda terminal como root e introduzca el siguiente comando: ``` # killall -USR1 dd ``` **Note:** Esto afectará de igual manera a todas las instancias en ejecución de *dd*. O: ``` # kill -USR1 *pid_del_comando_dd* ``` Por ejemplo: ``` # kill -USR1 $(pidof dd) ``` Esto provoca que *dd* imprima de forma inmediata el progreso en la terminal. Por ejemplo: ``` 605+0 records in 605+0 records out 634388480 bytes (634 MB) copied, 8.17097 s, 77.6 MB/s ``` #### Usando el visor de tubería (pv) Como alternativa puede usar [pv](https://www.archlinux.org/packages/?name=pv) para monitorizar el pipeline de dd: ``` # dd if=*/origen/de/flujo_de_archivo* | pv -*opciones_de_monitorización* -s *tamaño_del_archivo* | dd of=*/destino/de/flujo_de_archivo* ``` Para usar el visor de tuberías con mayor facilidad puede añadir esto a bashrc o a zshrc: ``` copy() { size=$(stat -c%s $1) dd if=$1 &> /dev/null | pv -petrb -s $size | dd of=$2 } ``` Y usarlo con: ``` # copy */fichero/de/origen* */fichero/de/destino* ``` ### derivados de dd Otros programas por el estilo de *dd* muestra un estatus de salida periódico, p.ej: una simple barra de progreso. dcfldd  [dcfldd](https://www.archlinux.org/packages/?name=dcfldd) es una versión mejorada de dd con características utiles para análisis forense y seguridad. Acepta la mayoría de los parámetros de dd e incluye salida de estatus. La última versión estable de dcfldd fue el 19 de diciembre de 2006. ddrescue  GNU [ddrescue](https://www.archlinux.org/packages/?name=ddrescue) es una herramienta de recuperación de datos. Es capaz de ignorar errores de lectura, lo que es una característica útil en situaciones de borrado de disco en casi cualquier caso. Véase [official manual](http://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html) para más detalles. ## grep [grep](https://en.wikipedia.org/wiki/grep "wikipedia:grep") (de [ed](https://en.wikipedia.org/wiki/ed "wikipedia:ed") *g/re/p*, *global/regular expression/print*) es una utilidad para búsqueda de texto en línea de comandos escrito originalmente para Unix. El comando *grep* busca ficheros o en la entrada estándar de manera global líneas que coincidan con una expresión regular dada y las imprime en la salida estándar del programa. * Recuerde que *grep* maneja ficheros files, por lo que un comando como `cat *archivo* | grep *patrón*` es remplazable por `grep *patrón* *archivo*` * Alternativas a *grep* optimizadas para código fuente existen, como, [the_silver_searcher](https://www.archlinux.org/packages/?name=the_silver_searcher) y [ack](https://www.archlinux.org/packages/?name=ack). ### Salida con colores La salida con colores de `grep` puede ser muy útil para aprender [expresiones regulares](https://en.wikipedia.org/wiki/regexp "wikipedia:regexp") y características adicionales de `grep`. Para habilitar el coloreado de *grep* agregue la siguiente entrada en el archivo de configuración de su terminal (p.ej:. si usa [Bash](/index.php/Bash "Bash")): `~/.bashrc` `alias grep='grep --color=auto'` Para incluir numeración de las líneas en la salida, incluya `-n` en la entrada anterior. La variable de entorno `GREP_COLOR` puede usarse para definir el color de resaltado por defecto (por defecto es rojo). Para cambiar el color busque en [secuencia de escape ANSI](http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html) para el color que desee y añádalo con: ``` export GREP_COLOR="1;32" ``` `GREP_COLORS` puede usarse para definir búsquedas específicas. ### Salida de error estándar Algunos comandos envían sus resultados a la salida de error estándar, por lo que grep no parece tener efecto aparente. En este caso redirija la salida de error a la salida estándar con: ``` $ *comando* 2>&1 | grep *argumentos* ``` o usando el método abreviado de Bash 4: ``` $ *comando* |& grep *argumentos* ``` Véase también [I/O Redirection](http://www.tldp.org/LDP/abs/html/io-redirection.html). ## iconv `iconv` convierte la codificación de caracteres de una codificación a otra. El siguiente comando convertirá el fichero `foo` de ISO-8859-15 a UTF-8 guardándolo en `foo.utf`: ``` $ iconv -f ISO-8859-15 -t UTF-8 foo >foo.utf ``` Vea [iconv(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/iconv.1) para más detalles. ### Convertir el fichero reemplazándolo **Tip:** puede usar [recode](https://www.archlinux.org/packages/?name=recode) en lugar de iconv si no quiere tocar el mtime. Al contrario que [sed](#sed), *iconv* no provee una opción para convertir remplazando el propio fichero. Sin embargo, `sponge` puede usarse para tal fin, esta incluido en [moreutils](https://www.archlinux.org/packages/?name=moreutils). ``` $ iconv -f WINDOWS-1251 -t UTF-8 foobar.txt | sponge foobar.txt ``` Vea [sponge(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/sponge.1) para más detalles. ## ip [ip](https://en.wikipedia.org/wiki/Iproute2 "wikipedia:Iproute2") permite mostrar información sobre los dispositivos de red, direcciones IP, tablas de enrutamiento y otros objetos en la pila de procotolos [IP](https://en.wikipedia.org/wiki/Internet_Protocol "wikipedia:Internet Protocol") de Linux. Añadiendo varios comandos, puede manipular y configurar la mayoría de estos objetos. **Note:** La utilidad *ip* la provee el paquete [iproute2](https://www.archlinux.org/packages/?name=iproute2), que está incluido en el grupo [base](https://www.archlinux.org/groups/x86_64/base/). | Objecto | Propósito | Nombre de página en el manual | | ip addr | manejo de dirección de protocolo | ip-address | | ip addrlabel | manejo etiquetado protocolo | ip-addrlabel | | ip l2tp | Tunel ethernet sobre IP (L2TPv3) | ip-l2tp | | ip link | configuración dispositivo de red | ip-link | | ip maddr | manejo direcciones multicast | ip-maddress | | ip monitor | monitorizado de mensajes netlink | ip-monitor | | ip mroute | manejo de cache de enrutado multicast | ip-mroute | | ip mrule | manejo la base de datos de politicas de enrutado multicast | | ip neigh | manejo de tablas ARP/Vecinos | ip-neighbour | | ip netns | manejo de proceso del espacio de nombres en red | ip-netns | | ip ntable | configuración tabla de vecinos | ip-ntable | | ip route | manejo de la tabla de enrutamiento | ip-route | | ip rule | manejo de la base de datos de políticas de enrutamiento | ip-rule | | ip tcp_metrics | manejo de metricas TCP | ip-tcp_metrics | | ip tunnel | configuración de tunel | ip-tunnel | | ip tuntap | manejo de dispositivos TUN/TAP | | ip xfrm | manejo de políticas IPsec | ip-xfrm | El comando `help` está disponible para todos los objetos. Por ejemplo, escribiendo `ip addr help` se mostrará la sintaxis del comando disponible para el objeto address. Para un uso avanzado véase [documentación iproute2](http://www.policyrouting.org/iproute2.doc.html). El artículo [Configuración de Red](/index.php/Network_configuration_(Espa%C3%B1ol) "Network configuration (Español)") muestra como el comando *ip* es usado en la práctica para varias tareas típicas. **Nota:** Puede que esté familiarizado con el comando [ifconfig](https://en.wikipedia.org/wiki/ifconfig "wikipedia:ifconfig"), que era usado en versiones anteriores de Linux para la configuración de interfaces. Ahora está obsoleto en Arch Linux; debería usar *ip* en su lugar. ## less [less](https://en.wikipedia.org/wiki/less_(Unix) es un visualizador de archivos de texto en consola. Al contrario que otros visualizadores similares como [more](https://en.wikipedia.org/wiki/more_(command) y [pg](https://en.wikipedia.org/wiki/pg_(Unix) "wikipedia:pg (Unix)"), *less* ofrece una interfaz mucho más avanzada y completa [feature-set](http://www.greenwoodsoftware.com/less/faq.html). Véase [List of applications#Terminal pagers](/index.php/List_of_applications#Terminal_pagers "List of applications") para más alternativas. ### Salida en color mediante variables de entorno Añada las siguientes líneas a su archivo de configuración de la terminal: `~/.bashrc` ``` export LESS=-R export LESS_TERMCAP_me=$(printf '\e[0m') export LESS_TERMCAP_se=$(printf '\e[0m') export LESS_TERMCAP_ue=$(printf '\e[0m') export LESS_TERMCAP_mb=$(printf '\e[1;32m') export LESS_TERMCAP_md=$(printf '\e[1;34m') export LESS_TERMCAP_us=$(printf '\e[1;32m') export LESS_TERMCAP_so=$(printf '\e[1;44;1m') ``` Cambie los valores a su gusto. Referencias: [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors "wikipedia:ANSI escape code"). ### Salida en color mediante wrappers Puede habilitar el resaltado de sintaxis en *less*. Primero, instale [source-highlight](https://www.archlinux.org/packages/?name=source-highlight), y a continuación añada estás lineas a su archivo de configuración de la terminal: `~/.bashrc` ``` export LESSOPEN="| /usr/bin/source-highlight-esc.sh %s" export LESS='-R ' ``` Usuarios asíduos de la línea de comandos pueden querar instalar [lesspipe](https://www.archlinux.org/packages/?name=lesspipe). Los usarios puede listar archivos comprimidos dentro de un archivador usando su visualizador: `$ less *compressed_file*.tar.gz` ``` ==> usa archivo_tar:fichero_contenido para ver un fichero en el archivador -rw------- *usuario*/*grupo* 695 2008-01-04 19:24 *archivo_comprimido*/*contenido1* -rw------- *usuario*/*grupo* 43 2007-11-07 11:17 *archivo_comprimido*/*contenido2* *archivo_comprimido*.tar.gz (END) ``` *lesspipe* también concede a *less* la capacidad para interactuar con ficheros que no sean archivadores, sirviendo como alternativa para el comando específico asociado a según el tipo de archivo en concreto (como ver HTML mediante [python-html2text](https://www.archlinux.org/packages/?name=python-html2text)). Vuelva a loguearse tras instalar *lesspipe* para activarlo, o usando source `/etc/profile.d/lesspipe.sh`. ### Vim como visualizador alternativo [Vim](/index.php/Vim "Vim") (*visual editor improved*) tiene un script para ver el contenido de fichero de texto, binarios, directorios. Añada la siguiente línea a su archivo de configuración de la terminal para usarlo como visualizador: `~/.bashrc` `alias less='/usr/share/vim/vim74/macros/less.sh'` Existe una alternativa a la macro *less.sh*, que puede funcionar como la variable de entorno `PAGER`. Instale [vimpager](https://www.archlinux.org/packages/?name=vimpager) añada lo siguiente a su archivo de configuración de la terminal: `~/.bashrc` ``` export PAGER='vimpager' alias less=$PAGER ``` Ahora los programas que usen la variable de entorno `PAGER`, como [git](/index.php/Git "Git"), usarán *vim* como un visualizador. ### Salida coloreada cuando lee de entrada estándar **Nota:** Se recomienda añadir [#Salida en color mediante variables de entorno](#Salida_en_color_mediante_variables_de_entorno) a su `~/.bashrc` o `~/.zshrc`, ya que lo siguiente esta basado en `export LESS=R` Cuando ejecuta un comando y redirige su [salida estándar](https://en.wikipedia.org/wiki/Standard_output "wikipedia:Standard output") (*stdout*) a *less* para visualizarla (p.ej: `pacman -Qe | less`), puede encontrarse con que la salida ya no sale coloreada. Esto suele pasar porque el programa intentar detectar si su *salida estándar* es un terminal interactivo, en cuyo caso imprime el texto coloreado, en caso contrario no. Esto es un buen comportamiento cuando quiere redirigir la *salida estándar* a un fichero, p.ej: `pacman -Qe > pkglst-backup.txt`, pero menos indicado cuando quiere visualizar la salid con `less`. Algunos programas proveen una opción para deshabilitar la detección de tty interactiva: ``` # dmesg --color=always | less ``` En el caso de que el programa no proporcione una opción similar, es posible engañarlo para que crea que la *salida estándar* es un terminal interactivo con las siguientes utilidades: * **stdoutisatty** — Un pequeño programa que captura la llamada a la función `isatty` . [https://github.com/lilydjwg/stdoutisatty](https://github.com/lilydjwg/stdoutisatty). || [stdoutisatty-git](https://aur.archlinux.org/packages/stdoutisatty-git/) Ejemplo: `stdoutisatty *program* | less` * **socat** — Un relevo para transferencia de datos bidireccional entre dos canales de datos independientes. Esta basado en el programa de GNU [readline](https://www.archlinux.org/packages/?name=readline). [http://www.dest-unreach.org/socat/](http://www.dest-unreach.org/socat/) || [socat](https://www.archlinux.org/packages/?name=socat) Ejemplo: `socat EXEC:"*program*",pty STDIO | less` * **[script](https://en.wikipedia.org/wiki/Script_(Unix) "wikipedia:Script (Unix)")** — Una utilidad que hace typescript de una sesión de terminal. || [util-linux](https://www.archlinux.org/packages/?name=util-linux) Ejemplo: `script -fqc "*program*" | less` or [[2]](http://stackoverflow.com/questions/1401002/trick-an-application-into-thinking-its-stdin-is-interactive-not-a-pipe/20401674#20401674) * **unbuffer** — Un script basado en *sh* y [Tcl](http://tcl.tk/). [http://expect.sourceforge.net/example/unbuffer.man.html](http://expect.sourceforge.net/example/unbuffer.man.html) || [expect](https://www.archlinux.org/packages/?name=expect) Ejemplo: `unbuffer *program* | less` De forma alternativa, usando el módulo [zpty](http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fzpty-Module) de [zsh](/index.php/Zsh "Zsh"): [[3]](http://lilydjwg.is-programmer.com/2011/6/29/using-zpty-module-of-zsh.27677.html) `~/.zshrc` ``` zmodload zsh/zpty pty() { zpty pty-${UID} ${1+$@} if [[ ! -t 1 ]];then setopt local_traps trap '' INT fi zpty -r pty-${UID} zpty -d pty-${UID} } ptyless() { pty $@ | less } ``` Uso: ``` $ ptyless *program* ``` Para redirigirlo a un visualizador (less en este ejemplo): ``` $ pty *program* | less ``` ## ls [ls](https://en.wikipedia.org/wiki/ls "wikipedia:ls") (*list*) es un comando para lista fichero en sistemas operativos Unix y similares. * *ls* puede listar [permisos de ficheros](/index.php/File_permissions_and_attributes#Viewing_permissions "File permissions and attributes"). * Salida coloreada puede ser habilitada con un simple alias. El fichero `~/.bashrc` debería tener la siguiente entrada copiada de `/etc/skel/.bashrc`: `alias ls='ls --color=auto'` El siguiente paso mejorará aún más la salida coloreada de *ls*; por ejemplo, enlaces simbólicos rotos (huérfanos) se mostrarán en un tono rojo. Añada la siguiente línea a su archivo de configuración de la terminal: `eval $(dircolors -b)` ## lsblk [lsblk(8)](https://jlk.fjfi.cvut.cz/arch/manpages/man/lsblk.8) mostrará todos los [dispositivos de bloque](https://en.wikipedia.org/wiki/es:Archivo_de_dispositivo#Dispositivos_orientados_a_bloques "w:es:Archivo de dispositivo") disponibles, con una descripcion de su esquema de particion, por ejemplo: `$ lsblk -f` ``` NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat C4DA-2C4D /boot ├─sda2 swap 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 [SWAP] └─sda3 ext4 56adc99b-a61e-46af-aab7-a6d07e504652 / ``` El comienzo del nombre del dispositivo especifica el tipo de bloque. La mayoria de dispositivos de almacenamiento modernos (v.g. discos duros, [SSDs](/index.php/SSD "SSD") o memorias de USB) son reconocidos como discos de SCSI (`sd`). El tipo es seguido por una letra minúscula comenzando por la letra `a` para el primer dispositivo (`sda`), `b` para el segundo dispositivo y así consecutivamente. Particiones *existentes* en cada disco duro serán enumeradas comenzando con el numero `1` para la primera partición (`sda1`), `2` para la segunda y así consecutivamente. En el ejemplo anterior solo hay un dispositivo disponible (`sda`), y tiene tres particiones (`sda1` hasta `sda3`), cada una con un [sistema de archivos](/index.php/File_systems_(Espa%C3%B1ol) "File systems (Español)") diferente. Otros tipos de dispositivos comunes son por ejemplo `mmcblk` para memorias en tarjetas y `nvme` para dispositivos [NVMe](/index.php/NVMe "NVMe"). ## mkdir [mkdir](https://en.wikipedia.org/wiki/mkdir "wikipedia:mkdir") (*make directory*) es un comando para crear directorios. * Para crear un directorio y toda su jerarquía, es usado el argumento `-p`, de otra forma se monstraría un error. Como se supone que los usuario saben lo que quieren, el argumento `-p` puede usarse por defecto: `alias mkdir='mkdir -p -v'` El argumento `-v` hace que la salida sea más detallada. * Cambiar los permisos con *chmod* tras crear el directorio no es necesario pues la opción `-m` permite definir los permisos de acceso. **Sugerencia:** Si tan solo quiere un directorio temporal, una mejor alternativa es [mktemp](https://en.wikipedia.org/wiki/Temporary_file "wikipedia:Temporary file") (*make termporary*): `mktemp -p`. ## mv [mv](https://en.wikipedia.org/wiki/mv "wikipedia:mv") (*move*) es un comando para renombrar y mover ficheros y directorios. * Puede ser muy peligroso, por lo que se recomiendo limitar su ámbito: `alias mv=' timeout 8 mv -iv'` Este alias suspende *mv* tras ocho segundos, pide confirmación para borrar tres o más ficheros, lista las operaciones en curso y no almacena en el historial de la terminal si la terminal esta configurada para no almacenar aquellos comandos que empiezen por un espacio. ## rm [rm](https://en.wikipedia.org/wiki/rm_(Unix) (*remove*) es un comando que sirve para eliminar ficheros y directorios. * Puede ser muy peligroso, por lo que se recomiendo limitar su ámbito: `alias rm=' timeout 3 rm -Iv --one-file-system'` Este alias suspende *rm* tras 3 segundos, pide confirmación para borrar tres o más ficheros, lista las operaciones en curso, no involucra mñas de un sistema de ficheros y no almacena en el historial de la terminal si la terminal esta configurada para no almacenar aquellos comandos que empiezen por un espacio. Sustituya `-I` por `-i` si prefiere confirmación por cada fichero. Usuarios de Zsh pueden querer poner `noglob` antes de `timeout` para evitar expansiones implicitas. * Para eliminar directorios vacíos, use *rmdir*, si el objetivo contiene ficheros fallará. ## sed [sed](https://en.wikipedia.org/wiki/sed "wikipedia:sed") (*stream editor*) es una utilidad de Unix que parsea y transforma texto Aquí hay un puñado [list](http://sed.sourceforge.net/sed1line.txt) de ejemplo de una línea de como usar sed muy útiles. **Sugerencia:** Alternativas más potentes son [AWK](https://en.wikipedia.org/wiki/AWK "wikipedia:AWK") e incluso el lenguaje [Perl](https://en.wikipedia.org/wiki/Perl "wikipedia:Perl"). ## seq **seq** (*sequence*) es una utilidad para generar secuencias de números. Hay alternativas integradas en la shell disponibles, por lo que es una buena práctica usarlas como se explica en [Wikipedia](https://en.wikipedia.org/wiki/Seq_(Unix) "wikipedia:Seq (Unix)"). ## Véase también * [A sampling of coreutils](http://www.reddit.com/r/commandline/comments/19garq/a_sampling_of_coreutils_120/) [, part 2](http://www.reddit.com/r/commandline/comments/19ge6v/a_sampling_of_coreutils_2040/) [, part 3](http://www.reddit.com/r/commandline/comments/19j1w3/a_sampling_of_coreutils_4060/) - Overview of commands in coreutils * [GNU Coreutils Manpage](http://www.gnu.org/software/coreutils/manual/coreutils.html) * [Learn the DD command](http://www.linuxquestions.org/questions/linux-newbie-8/learn-the-dd-command-362506/)