Los comandos de Linux más importantes
Como la mayoría de sistemas operativos modernos, Linux también le ofrece al usuario dos posibilidades de interacción: todos los ajustes que se realizan en la interfaz gráfica (GUI) se pueden llevar a cabo con líneas de comandos en el denominado shell.
Un shell es un programa que actúa de interfaz de acceso entre el sistema y el usuario e incluye un intérprete de líneas de comandos que recibe las entradas que realiza el usuario con el teclado, las examina, inicia un programa si es necesario y devuelve la salida (output) al usuario como texto. Además, cada shell posee un lenguaje propio de órdenes que permite escribir guiones (scripts) de shell para, por ejemplo, enlazar órdenes y facilitar tareas administrativas.
Cada shell se ejecuta en un terminal o consola. Al principio de la era informática se utilizaban máquinas autónomas, las denominadas terminales hardcopy (impresora o monitor con teclado) que en los ordenadores modernos se sustituyeron por los llamados emuladores de terminal, programas que ponen a disposición de los usuarios un cuadro gráfico con el que interactuar con el shell.
Cuando se abre la consola de un sistema operativo, esta inicia el shell configurado como estándar en los ajustes (en la imagen, el Bourne Again Shell o Bash) y recibe las entradas en el denominado prompt del terminal.
con el paso del tiempo se han ido desarrollando diversos shells para sistemas operativos Unix-like, muy diferentes entre sí en cuanto a funcionalidad y usabilidad, de forma que el usuario de Linux cuenta con la posibilidad de escoger el intérprete de líneas de comandos que se quiere utilizar. La mayoría de sistemas operativos ya cuentan incluso con varios shells instalados por defecto. Cambiar de uno a otro es muy sencillo y se realiza en el mismo terminal (ver chsh en el capítulo sobre gestión de cuentas de usuario). Además de los programas estándar Bash y Dash, entre los shells más conocidos se incluyen también Fish, Z-Shell, Korn-Shell, (t)csh y Mksh.
- Comandos básicos de Linux
- Páginas de ayuda
- Operaciones en el directorio
- Operaciones en archivos
- Gestión de los permisos
- Opciones de búsqueda
- Información sobre los usuarios
- Gestión de cuentas de usuario
- Gestión del sistema
- Información del sistema
- Información acerca del hardware
- Gestión de procesos
- Pager
- Editores
- Gestión de redes
- Archivar y comprimir
- Gestión de particiones
- Miscelánea
Dominios web baratos
Dominios tan originales como tus ideas.
Registra tu dominio con IONOS y disfruta de las funciones integrales que tenemos para ofrecerte.
Para interactuar con el shell se utilizan comandos con los que se inician los programas de líneas de comandos. Para cualquier acción que se quiera ejecutar en el terminal se escribe una orden con el siguiente esquema básico:
BEFEHL [OPTIONEN] [ARGUMENTE]
Para iniciar un programa en el terminal se necesita su nombre (comando) y la posibilidad de invocar ciertas funciones a través de las “opciones”. Por último, si un programa espera “argumentos” (en forma de archivos o rutas de directorio, p. ej.), estos suelen introducirse tras las opciones elegidas.
A continuación, te mostramos cuáles son los comandos de Linux más habituales y los programas que se inician con ellos.
Comandos básicos de Linux
En esta categoría se incluyen todas las órdenes fundamentales que se utilizan para administrar el terminal, con las que se puede limpiar la ventana de la consola, recuperar comandos anteriores desde la historia o finalizar la sesión.
Comando | Descripción |
clear | Limpia la ventana del terminal Con el comando clear se borran todos los comandos de la sesión. clear El usuario recibe un terminal vacío con el prompt a la espera de órdenes. Los comandos introducidos anteriormente se guardan en el scrollback buffer. También se puede limpiar la ventana de la consola con el atajo de teclado [CTRL] + [L] |
exit | Finaliza la sesión en el terminal Con el programa exit finaliza la sesión actual y se cierra la consola. exit También se puede utilizar el atajo de teclado [CTRL] + [D]. |
help | Muestra la lista de todos los comandos El comando help se utiliza para mostrar una lista de todas las órdenes del sistema. help Si introduces help en combinación con un comando shell obtienes una breve descripción del comando en cuestión. help COMANDO |
history | Muestra las entradas del historial En Bash, los últimos 500 comandos introducidos en el terminal se guardan en el historial. Esta función sirve de ayuda al introducir órdenes en la consola y permite ejecutar de nuevo un comando introducido con anterioridad seleccionándolo con ayuda de las flechas del teclado y confirmándolo con la tecla Enter. También se puede examinar el historial en función de palabras clave con el atajo de teclado [CTRL] + [R]. Utilizando la orden sin opciones ni argumentos se obtiene la lista completa de comandos numerada. history Para filtrar la salida se combina history con el programa grep (ver opciones de búsqueda) y una palabra clave utilizando la barra vertical. history | grep PALABRA CLAVE |
Páginas de ayuda
¿No sabes cuáles son los pasos siguientes? A este respecto, Linux ofrece en el terminal páginas de ayuda y de documentación como las Unix Man Pages (Manual de Unix) y las páginas de información de GNU, las cuales contienen una exhaustiva descripción de todos los programas, comandos, archivos de configuración, formatos de archivo y funciones del kernel. Con whatis y apropos en la categoría de páginas de ayuda, cuentas con programas de líneas de comando que permiten examinar las páginas del manual del sistema operativo por palabras clave.
Comando | Descripción | |
apropos | Examina el manual Con apropos se examinan los títulos y las descripciones de las páginas del manual de tu sistema operativo por palabras clave. El programa de líneas de comandos muestra en el terminal todas las correspondencias incluyendo una breve descripción. Sigue el siguiente esquema: apropos [OPCIONES] PALABRA CLAVE Este comando soporta diferentes opciones. Con la opción -e (--exact) delimitas la búsqueda a correspondencias exactas, pero también puedes utilizar comodines (-w '*TÉRMINO DE BÚSQUEDA') y expresiones habituales (-r). | |
info | Abre la documentación en línea de GNU El comando info abre las páginas die información de GNU sobre un tema determinado. Normalmente equivalen al manual que se puede invocar con man, aunque a diferencia de este, contienen enlaces que facilitan la navegación en el manual. Para abrir la documentación de lectura de GNU utiliza esta sintaxis: info [OPCIÓN] TEMA Si no indicas una opción ni un tema accedes al menú principal del manual de GNU. | |
man | Abre el manual Con man se abren las páginas del manual (man pages) de tu distribución de Linux en la consola. Para ello se sigue el siguiente esquema: man [OPCIÓN] TEMA Las man pages de Linux se distribuyen en 10 secciones temáticas: (1) Comandos de usuario (2) Llamadas al sistema (3) Biblioteca de funciones del lenguaje de programación C (4) Formatos de archivo (5) Archivos de configuración (6) Juegos (7) Miscelánea (8) Comandos para administrar el sistema (9) Funciones del kernel (n) Comandos nuevos Si, por ejemplo, quieres abrir el manual para un comando específico, se combina man con el nombre del comando: man clear O se concreta la búsqueda con el número de la sección correspondiente: man 1 clear En ambos casos se abre la página del manual por el comando clear. Para cerrarlo y volver a la consola utiliza la tecla [Q]. Si quieres explorar las páginas del manual de Linux por palabras clave dispones del comando apropos. | |
pinfo | Abre la documentación en línea al estilo Lynx Con pinfo cuentas con una versión del programa info que sigue el modelo del explorador de líneas de comandos Lynx y muestra las páginas de información con los enlaces destacados con colores. Para utilizar pinfo se sigue el mismo esquema sintáctico que con info: pinfo [OPCIONES] TEMA | |
whatis | Busca en el manual por palabras clave El programa whatis permite buscar por palabras clave en el manual. Para examinar el manual del sistema operativo en busca de una equivalencia exacta se llama al programa con el término de búsqueda. Si se encuentra una correspondencia, whatis responde con una breve descripción en el terminal. whatis [OPCIONES] PALABRA CLAVE whatis (-w '*PALABRA CLAVE') también soporta comodines y expresiones regulares (-r). |
Operaciones en el directorio
Algunos comandos básicos de Linux permiten llevar a cabo operaciones en los directorios del sistema, como puede ser crear ficheros, borrarlos y gestionarlos, así como navegar por el árbol del directorio. Entre los comandos más importantes de esta categoría se incluyen cd, ls, mkdir o rmdir.
Comando | Descripción |
cd | Navega por el árbol de ficheros El comando cd es la abreviatura de change directory y se utiliza para navegar por el directorio. La sintaxis de esta orden sigue el esquema: cd [OPCIÓN] DIRECTORIO Si no se indica ningún directorio concreto, cd cambia automáticamente al directorio principal del usuario. Si se acompaña de un guion (-), cd abre el directorio precedente. |
chroot | Ejecuta el programa en un nuevo directorio raíz La orden chroot (abreviatura de change root) se utiliza para ejecutar un comando en un directorio raíz diferente para, por ejemplo, aislar programas peligrosos del sistema de archivos restante, lo que se denomina chroot jail. Este comando requiere derechos raíz y se orienta por este esquema: chroot DIRECTORIO COMANDO |
ls | Muestra el contenido del directorio como una lista La orden ls equivale a list y se utiliza para mostrar el contenido de un fichero (los nombres de todos sus archivos y carpetas). Esta es la sintaxis de la orden: ls [OPCIONES] DIRECTORIO Si no se añade a ls ningún directorio, el comando enumera el contenido del directorio en curso. Con ayuda de diferentes opciones se puede definir qué información se ha de mostrar y cómo. |
mkdir | Crea un directorio El comando mkdir corresponde a make directory y permite a los usuarios de Linux crear directorios desde cero. Para crear un directorio en el fichero en curso escribe la siguiente sintaxis: mkdir [OPCIÓN] DIRECTORIO Si lo que se necesita es crear varios ficheros a la vez, se escribe uno detrás de otro sin signos de puntuación y con espacio intermedio: mkdir [OPCIÓN] DIRECTORIO1 DIRECTORIO2 Si se quiere crear un directorio nuevo en otro fichero diferente al actual se ha de indicar la ruta absoluta o relativa al fichero: mkdir /home/user/Desktop/test mkdir/Desktop/test En ambos ejemplos se crea el directorio test en el directorio Desktop. |
mkdirhier | Crea una jerarquía en el directorio Con mkdirhier puedes crear jerarquías completas con un único comando: mkdirhier [OPCIÓN] /home/user/directorio1/directorio2/directorio3 Si directorio1 y directorio2 ya existieran, entonces mkdirhier solo crearía directorio3. En caso contrario, se crean los tres. |
pwd | Muestra el nombre del directorio Con pwd (abreviatura de print working directory) la consola muestra el nombre del directorio de trabajo (en curso). La sintaxis del comando es: pwd [OPCIONES] |
rmdir | Borra el directorio Si hiciera falta borrar un determinado directorio, se utiliza el comando rmdir (remove directory) según la siguiente sintaxis: rmdir [OPCIÓN] DIRECTORIO Con rmdir, sin embargo, solo se pueden borrar directorios vacíos. Si se quiere eliminar un fichero con todas sus carpetas y subcarpetas se utiliza el comando rm (remove) con la opción -r. Cuidado: rmdir no solicita confirmar el borrado. Los directorios seleccionados con el comando se borran definitivamente. |
tree | Presenta los directorios en forma de árbol Mientras que ls muestra el contenido de los directorios como lista, el comando tree, siguiendo este esquema sintáctico, muestra la jerarquía completa del directorio en forma de árbol: tree [OPCIONES] [DIRECTORIO] |
Operaciones en archivos
Los comandos Linux de esta categoría permiten llevar a cabo diversas operaciones desde el terminal que atañen a los archivos y, utilizando comandos básicos como cp, mv y rm, se pueden copiar, desplazar, renombrar o borrar archivos del sistema.
Comando | Descripción |
basename | Muestra el nombre del archivo Al comando basename se le indica una ruta a un archivo y devuelve su nombre sin la ruta. La sintaxis del comando se compone de: basename [OPCIONES] Ruta/al/archivo [SUFIJO] Si en el terminal escribes, por ejemplo, $ basename /home/user/imagen.jpg, obtienes la siguiente respuesta: imagen.jpg Si se añade el sufijo de nuevo, el terminal no lo devuelve, como vemos aquí: Entrada: $ basename /home/user/imagen.jpg .jpg Salida: imagen El comando puede ser ampliado a varios archivos con diferentes opciones. |
cat | Agrupa contenido de varios archivos El comando cat (de concatenate) nace como herramienta para enlazar archivos y puede emplearse como pager para mostrar el contenido de los archivos en el terminal. Escribe cat con la siguiente sintaxis para leer y mostrar un archivo en la salida estándar: cat OPCIONES ARCHIVOS Si incluyes varios archivos, sepáralos mediantes espacios: cat OPCIONES ARCHIVO1 ARCHIVO2 Para concatenar el contenido de varios archivos se utilizan los operadores de redirección >, < y |. Si utilizas el operador “mayor que“ (>), se aúna el contenido de dos archivos en un tercero: cat archivo_1.txt archivo_2.txt > archivo_3.txt |
cmp | Compara archivos a nivel de byte cmp forma parte del paquete diff y, como este, también se utiliza para comparar el contenido de varios archivos aunque, a diferencia de como sucede en diff, aquí el cotejo tiene lugar byte por byte, lo que lo hace especialmente idóneo para archivos binarios. Invoca a cmp según la siguiente sintaxis: cmp [OPCIONES] ARCHIVO1 ARCHIVO2 Si cmp encuentra diferencias, entrega el número de bytes y el de la línea del primer archivo que difiera. |
comm | Compara archivos clasificados por líneas Utiliza el comando comm para comparar por líneas archivos previamente ordenados (con sort, p. ej.). La invocación de este comando se fundamenta en la siguiente estructura sintáctica: comm [OPCIONES] ARCHIVO1 ARCHIVO2 Sin opciones adicionales, el programa genera una salida en tres columnas: la primera contiene todas las líneas que solo aparecen en ARCHIVO1; la segunda, todas las líneas que solo aparecen en ARCHIVO2, y la tercera, todas las líneas que aparecen en ambos archivos. El comando comm soporta tres opciones: -1 = ocultar líneas únicas del ARCHIVO1 -2 = ocultar líneas únicas del ARCHIVO2 -3 = ocultar todas las líneas que aparecen en ambos archivos |
cp | Copia archivos o directorios La orden cp (de copy) se utiliza para copiar archivos o ficheros y sigue la siguiente sintaxis: cp [OPCIONES] ORIGEN DESTINO El elemento ORIGEN es el que se ha de copiar y DESTINO se define a un archivo o un directorio donde se ha de alojar el elemento copiado. Si se define como destino a un archivo que ya existe, el archivo origen reescribe su contenido. También se puede crear un archivo de destino nuevo. Si se han de copiar varios archivos, entonces el destino ha de ser un directorio, del mismo modo que si se copia un directorio. Copiar un archivo de origen en un archivo de destino en el directorio actual: cp [OPCIONES] ORIGEN DESTINO Ejemplo: cp archivo.txt archivo_copia.txt Copiar un archivo del directorio actual en un directorio de destino: cp [OPCIONES] ARCHIVO_ORIGEN DIRECTORIO_DESTINO Ejemplo: cp archivo.txt home/user/documentos/2017 Copiar varios archivos en un directorio: cp [OPCIONES] ARCHIVO_ORIGEN1 ARCHIVO_ORIGEN2 DIRECTORIO_DESTINO Ejemplo: cp archivo.txt archivo.odt home/user/documentos/2017 Copiar un directorio desde el directorio actual en otro directorio diferente: cp DIRECTORIO_ORIGEN DIRECTORIO_DESTINO Ejemplo: cp directorio1 home/user/documentos/2017 Si se tienen que copiar todos los directorios con el contenido completo se deben incluir en el copiado todos los subdirectorios con la opción -R. |
cut | Extrae el contenido de los archivos La orden cut permite extraer el contenido de las líneas de texto de un archivo (log o CSV) por columnas. La sintaxis de este comando es: cut [OPCIONES] ARCHIVO Para indicar la posición exacta del fragmento que se tiene que extraer se utilizan las opciones -b (posición de byte), -c (posición del carácter), -d (carácter de separación) y -f (campo). |
diff | Compara archivos o directorios Con el programa diff se cotejan dos archivos. También permite averiguar si dos directorios contienen los mismos archivos. Se le invoca con esta estructura: diff [OPCIONES] ARCHIVO1 ARCHIVO2 |
dirname | Muestra la ruta al archivo dirname es lo contrario que basename: el comando permite extraer la parte de la ruta a un fichero sin mostrar su nombre. Su sintaxis es: dirname [OPCIONES] Introduce $ dirname /home/user/imagen.jpg en el terminal para obtener la siguiente salida: /home/user |
file | Muestra el tipo de archivo Con file se puede obtener información sobre el tipo o formato de un archivo. Sigue el siguiente esquema: file [OPCIONES] ARCHIVO |
ln | Crea un enlace a un archivo o un directorio El programa ln (link) crea un vínculo (un archivo especial) que lleva a un archivo o un directorio. Con ello se genera otra entrada a este archivo que permite acceder a él a través de una ruta diferente. Para invocar ln el comando ha de incluir, como mínimo, la ruta al archivo de origen. ln [OPCIONES] ruta/al/archivo de origen En este caso, el enlace se crea en el directorio actual de trabajo sin cambiar de nombre. Otra alternativa consiste en indicar una ruta de destino y dar un nombre diferente al vínculo: ln [OPCIONES] ruta/al/archivo de origen ruta/al/enlace ln crea por defecto los llamados enlaces duros o hardlinks, que no son adecuados para crear vínculos a los directorios y tampoco se pueden utilizar más allá de las fronteras de partición. Es por esto que el comando suele usarse en combinación con la opción -s (--symbolic), con la cual se pueden generar enlaces simbólicos, incluso más allá de los límites del sistema de archivos. Los enlaces simbólicos se refieren siempre a la ruta “real” a un archivo y dependen de esta. |
lsof | Muestra los archivos abiertos en el terminal lsof equivale a list open files (muestra los archivos abiertos), un programa de apoyo que muestra en el terminal información sobre los archivos abiertos ordenados en función del PID (ID de proceso). Para invocarlo se sigue el siguiente esquema: lsof [OPCIONES] Dado que todos los sistemas tipo UNIX como Linux lo gestionan todo en archivos («Everything is a file»), la lista que devuelve lsof es muy larga. Por eso suelen usarse opciones que concretan el resultado. |
md5sum | Calcula sumas de control Con ayuda del comando md5sum se pueden calcular y comprobar sumas de control MD5. |
mv | Mueve archivos o directorios El programa mv (move) copia un archivo o un directorio y borra el original. Si esto tiene lugar dentro del mismo directorio, mv puede utilizarse también para cambiar el nombre de los archivos. Para ello se sigue el siguiente esquema: mv [OPCIÓN] ORIGEN DESTINO Ejemplos de su aplicación: Trasladar un archivo a otro directorio: mv [OPCIONES] ARCHIVO_ORIGEN DIRECTORIO_DESTINO Ejemplo: mv archivo1.txt home/user/documentos/2017 Trasladar varios archivos de origen a un directorio de destino: mv [OPCIONES] ARCHIVO_ORIGEN1 ARCHIVO_ORIGEN2 DIRECTORIO_DESTINO Ejemplo: mv archivo1.txt archivo2.txt home/user/documentos/2017 Trasladar un subdirectorio del fichero actual a un directorio de destino: mv [OPCIONES] DIRECTORIO_ANTIGUO DIRECTORIO_NUEVO Ejemplo: mv directorio1 home/user/documentos/2017 Cambiar el nombre de un archivo en el directorio de trabajo: mv [OPCIONES] ARCHIVO_ANTIGUO ARCHIVO_NUEVO Ejemplo: mv archivo1.txt archivo2.txt Cambiar el nombre de un subdirectorio en el directorio actual: mv [OPCIONES] DIRECTORIO_ANTIGUO DIRECTORIO_NUEVO Ejemplo: mv directorio1 directorio2 |
paste | Agrupa el contenido de archivos en columnas De forma parecida a cat, el programa paste también muestra el contenido de los archivos en la salida estándar, pero mientras que cat los muestra de forma encadenada, paste los agrupa en columnas. El esquema básico de esta función es: paste [OPCIONES] ARCHIVO1 ARCHIVO2 En el modo estándar, los archivos indicados se agrupan de tal forma que todas las líneas cuyo número coincide se emiten en una misma línea en la salida. Así, cada línea de la salida contiene el contenido de todos los archivos de entrada. Con la opción -d se puede configurar individualmente el tipo de separador que se usa. Por defecto suele utilizarse la tabulación. Con la opción -s (de serial) se activa otro modo diferente en el cual todas las líneas del primer archivo de entrada se pegan en la primera línea de la salida. Los datos del resto de archivos de entrada se pegan a continuación en líneas de salida separadas. De esta forma, cada línea de la salida contiene únicamente el contenido de un archivo de entrada. |
rename | Cambia el nombre de archivos rename permite cambiar el nombre de archivos y carpetas con ayuda de expresiones regulares compatibles con perl (Regex). Al contrario de mv, rename se presta así para modificar los nombres de varios archivos parcial o totalmente. La invocación de rename se realiza siguiendo el siguiente esquema: rename [OPCIONES] 'EXPRESIÓN_REGULAR' ARCHIVOS En el caso de las sustituciones, las expresiones regulares siguen la siguiente sintaxis: s/PATRONDEBUSQUEDA/SUSTITUCIÓN/MODIFICADOR En el siguiente ejemplo todas las terminaciones .html se sustituyen por .xhtml: rename 's/\.html$/.xhtml/' *.html |
rm | Borra archivo o directorio El programa rm (remove) borra archivos o directorios de forma irreversible. Para ello se sigue la siguiente estructura: rm [OPCIONES] ARCHIVO o rm [OPCIONES] DIRECTORIO Para eliminar un directorio junto a todos sus subdirectorios se utiliza rm con la opción -R (--recursive): rm -R DIRECTORIO Cuando se ordena eliminar varios archivos o ficheros, estos se separan por espacios: rm [OPCIONES] ARCHIVO1 ARCHIVO2 |
shred | “Tritura” archivos shred es un comando que permite borrar archivos de forma permanente porque los reescribe de modo que, incluso contando con los mejores medios forenses, no se pueden restablecer. Este comando se invoca siguiendo este esquema básico: shred [OPCIONES] ARCHIVO Utilizándolo con las siguientes opciones se eliminan archivos concretos: shred -fuz ARCHIVO La opción -f impulsa el proceso de eliminación, -z reescribe el contenido del archivo con ceros (la configuración estándar son datos aleatorios) y -u elimina el archivo triturado del sistema de forma similar al comando rm. |
sort | Ordena listas de archivos y salidas de programa Con el comando sort se ordenan las listas de archivos y las salidas de programa en líneas numérica y alfabéticamente. Se invoca a sort siguiendo este esquema: sort [OPCIONES] ARCHIVO Este método se puede complementar con opciones como -n (ordenar numéricamente), -R (ordenar de forma aleatoria) o -r (ordenar en orden inverso). |
split | Divide archivos El comando split se utiliza para subdividir archivos. Sigue el siguiente esquema sintáctico: split [OPCIONES] [INPUT [PREFIJO]] INPUT equivale al archivo que se ha de subdividir y PREFIJO hace las veces de prefijo del nombre del nuevo subarchivo. A la hora de cambiar su nombre se sigue el siguiente esquema: PREFIJOaa, PREFIJOab, PREFIJOac … Si no se define ningún prefijo, split recurre al estándar x. Con la opción -b (bytes) se puede definir el tamaño de las partes en que se divide el archivo. Esto puede hacerse en bytes (b), kilobytes (k) o megabytes (m). Ejemplo: split -b 95m archivo.tgz split-archivo.tgz. Aquí split divide el archivo archivo.tgz en archivos de 95 megabytes y los nombra como sigue: split-archivo.tar.aa split-archivo.tar.ab split-archivo.tar.ac Los archivos que se han subdividido utilizando split pueden reunirse de nuevo con el comando cat. cat split-archivo.tar.* > archivo.tar |
stat | Muestra fecha y hora Con ayuda del comando stat (status) se puede obtener la fecha y la hora de los accesos y los cambios relativos a determinados archivos o directorios. Este comando sigue esta sintaxis: stat [OPCIONES] ARCHIVO El formato de salida se puede configurar con opciones. |
touch | Cambia fecha y hora Para modificar la fecha y la hora de los accesos o los cambios que han tenido lugar en un archivo se utiliza el comando touch. Si se utiliza en un archivo que no existe, este se crea automáticamente, lo que hace que este comando también se utilice para generar archivos vacíos. Para invocar a touch se tiene que seguir este esquema: touch [OPCIONES] ARCHIVO Si de lo que se trata es de cambiar la fecha y la hora de un archivo por una fecha determinada se utiliza la opción -t incluyendo la fecha en el formato [AA]MMDDhhmm[.ss]. Ejemplo: touch -t 1703231037 archivo.txt La fecha y la hora del acceso y los cambios respecto a este archivo se han fijado en el 23 de marzo de 2017 a las 10:37 horas. Si se prefiere, el cambio se puede limitar a la fecha de acceso o de modificación con las opciones -a y -m. Si se utiliza sin la opción -t se sella automáticamente con la fecha y la hora actual. |
uniq | Elimina duplicados en listas de archivos y salidas de programa El comando uniq suele usarse junto con sort para limpiar líneas dobles en los archivos ordenados. En el siguiente ejemplo se enlaza el comando sort con el comando uniq con la barra vertical para seleccionar en primer lugar un archivo y a continuación para emitirlo sin líneas duplicadas: sort archivo.txt | uniq |
Gestión de los permisos
Con Linux se pueden definir los derechos de acceso y de posesión de archivos y ficheros por parte de los usuarios fácilmente. Los comandos más importantes en cuanto a la gestión de permisos son chown y chmod. Los grupos se administran con la orden chgrp.
Comando | Descripción |
chattr | Gestiona los atributos de los archivos Con el programa chattr (abreviatura de change attribute) puedes asignar atributos a archivos o directorios. Diversos sistemas de archivos nativos de Linux (ext2, ext3, ext4, XFS, ReiserFS, JFS y OCFS2) soportan la configuración de atributos. Utiliza chattr según la siguiente sintaxis para asignar un atributo: chattr [OPCIONES] +ATRIBUTO ARCHIVO Con el siguiente esquema se pueden eliminar los atributos asignados: chattr [OPCIONES] -ATRIBUTO ARCHIVO Añadiendo el atributo -i (de inmutable) se blinda un archivo o un directorio frente a cambios: chattr +i archivo.txt En la página del manual dedicada a chattr encuentras otros atributos y posibles opciones. |
chgrp | Administra los grupos de archivos y directorios El comando chgrp significa change group y se usa para cambiar el grupo de un archivo o un directorio, aunque se necesita estar en posesión de permisos de administrador para poder aplicarlo a un archivo o un fichero determinado. Además, solo se puede trabajar con los grupos a los cuales se pertenece. chgrp se utiliza siguiendo la siguiente estructura: chgrp [OPCIONES] GRUPO ARCHIVO o chgrp [OPCIONES] GRUPO DIRECTORIO La opción -R incluye en la operación a las subcarpetas y los archivos contenidos en un directorio. |
chmod | Gestiona los permisos de acceso La llamada al sistema chmod (change mode) sirve para administrar los permisos en sistemas de archivos unixoides (ext2, ext3, ext4, reiser, xfs). La sintaxis general de chmod es: chmod [OPCIONES] MODO ARCHIVO o chmod [OPCIONES] MODO DIRECTORIO MODO corresponde a la forma de asignar los permisos que se aplica. Para saber cómo se crean y qué hay que tener en cuenta, lee nuestro artículo sobre el reparto de permisos de acceso con chmod. Con ayuda de la opción -R se pueden ampliar los derechos de forma recursiva a las subcarpetas y a los archivos contenidos en un fichero. |
chown | Administra derechos de propietario Normalmente, el creador de un archivo o un directorio se convierte automáticamente en su propietario (owner). La orden chown se deriva de change owner y permite configurar la propiedad de archivos y directorios. Este comando se utiliza basándose en la siguiente composición: chown [OPCIONES] [USUARIO][:[GRUPO]] ARCHIVO o chown [OPCIONES] [USUARIO][:[ GRUPO]] DIRECTORIO Con objeto de definir derechos de propietario para usuarios o grupos se dispone de cuatro combinaciones posibles: 1) El propietario y el grupo de un fichero se definen según las indicaciones: chown [OPCIONES] nombre_propietario:grupos_archivos.txt 2) El grupo se modifica en función de las indicaciones pero el usuario permanece invariable: chown [OPCIONES] :grupos_archivos.txt 3) Se define al propietario pero el grupo permanece invariable: chown [OPCIONES] propietario_archivos.txt 4) Se vuelve a definir al propietario y el grupo se define por el grupo estándar del usuario activo: chown [OPCIONES] nombre_propietario: archivo.txt Los cambios se pueden extender a los subdirectorios con ayuda de la opción -R. |
lsattr | Muestra los atributos del archivo Si quieres ver qué atributos se definieron para un archivo o un directorio, puedes usar el comando lsattr (abreviatura de list attributes) según el esquema que sigue: lsattr [OPCIONES] ARCHIVO/DIRECTORIO |
Opciones de búsqueda
Linux también dispone de diversos comandos para explorar el sistema desde el terminal.
Comando | Descripción |
find | Explora el sistema de archivos find es un programa de líneas de comandos cuya función es buscar archivos en el sistema. Se utiliza en base al siguiente esquema sintáctico: find [OPCIONES] [RUTA] [EXPRESIÓN_DE_BÚSQUEDA ][ACCIÓN] El directorio que se indica en RUTA define el inicio de la búsqueda, de tal forma que se exploran tanto el directorio como sus subdirectorios. Si no se indica ninguno, find comienza a explorar desde el directorio en el que se está en ese momento (directorio actual). Las opciones indicadas en EXPRESIÓN DE BÚSQUEDA permiten definir los criterios de búsqueda y las acciones. La acción predeterminada es -print, que muestra el resultado de la búsqueda en la salida estándar (normalmente la consola). Los criterios de búsqueda más habituales son el nombre del archivo (-name NOMBRE DEL ARCHIVO[SUFIJO]), un nombre de usuario (-user NOMBRE DE USUARIO), el tamaño del archivo (-size n[cwbkMG]), el momento del acceso en días (-atime [+-]n) o el momento de la modificación en días (-mtime [+-]n). En la búsqueda de nombres de archivo se pueden utilizar metacaracteres (comodines) como *. Si se escriben entre comillas se evita que el shell los interprete. Ejemplo: find /tmp -name "*.odt" -mtime -3 -size +20k Como directorio inicial se ha definido /tmp. El comando find entrega en la salida estándar todos aquellos archivos que terminan en .odt, pesan más de 20 k y fueron modificados por última vez hace menos de tres días. En la página del manual dedicada al comando de búsqueda find encuentras opciones adicionales. |
grep | Explora archivos de texto Con la orden grep (global regular expression print) se pueden explorar archivos de texto tales como archivos de registro. Como patrón de búsqueda se pueden utilizar secuencias de caracteres o expresiones regulares. Utiliza grep según esta sintaxis: grep [OPCIONES] PATRÓN_DE_BÚSQUEDA [ARCHIVOS] Si grep encuentra una cadena que se corresponde con el patrón dado, el terminal muestra el número de línea y especifica el nombre del archivo. Por regla general, grep se aplica a todos los archivos del directorio de trabajo actual. La opción -r permite la búsqueda recursiva en los subdirectorios. |
locate | Explora el índice de archivos El programa locate también permite buscar archivos desde el terminal, pero, al contrario que find, no se basa en el directorio de archivos, sino en una base de datos creada especialmente para ello y actualizada regularmente. Con ello locate entrega sus resultados mucho más rápido que find. Para buscar un determinado archivo en la base de datos se invoca a locate con esta frase: locate PATRÓN_DE_BÚSQUEDA El patrón puede contener metacaracteres que actúan de comodín (*). Si los escribes entre comillas el shell no los interpreta como metacaracteres de shell. En el ejemplo siguiente locate muestra todos los archivos que terminan en .png: locate "*.png" El comando locate distingue mayúsculas y minúsculas. Con la opción -i se evita esta diferenciación. El archivo /var/lib/locatedb actúa de base de datos para la indexación de los archivos. Este archivo contiene una lista de todos los archivos del sistema en un momento determinado y se actualiza regularmente con el comando updatedb. |
tre-agrep | Búsqueda aproximada en archivos de texto También tre-agrep (approximate grep, grep aproximado) se utiliza para buscar cadenas de caracteres en los archivos de texto en base a patrones pero, a diferencia de grep, no solo entrega coincidencias exactas, sino también aquellas que contienen pequeños errores tipográficos. El programa se apoya para ello en la biblioteca TRE. Su sintaxis coincide con la del comando grep: tre-agrep [OPCIONES] PATRÓN ARCHIVOS Con las opciones se puede definir un número máximo de errores. En el ejemplo siguiente se indica el número máximo de errores que se toleran: tre-agrep -1 'Linux' test.txt Aquí tre-agrep muestra todas las líneas del archivo test.txt que contiene palabras que coinciden con el patrón (Linux) o se diferencian de este como máximo en una letra (Linus, por ejemplo). |
updatedb | Actualiza el índice de archivos La búsqueda con locate solo es fiable si el archivo /var/lib/locatedb se mantiene constantemente actualizado. El comando updatedb permite actualizar la base de datos manualmente. Ten en cuenta que para ello necesitas derechos de administrador: Updatedb |
whereis | Busca páginas binarias, del código fuente o del manual de programas Con el comando whereis se pueden localizar los archivos binarios, de código fuente o del manual de ciertos programas. Su sintaxis general consiste en: whereis [OPCIONES] PROGRAMA Ejemplo: whereis firefox whereis entrega entonces en la salida estándar la ruta a los archivos encontrados separados por espacios: firefox: /usr/bin/firefox/ usr/lib/firefox/ usr/share/man/man1/firefox.1.gz Con opciones se puede delimitar la búsqueda a ciertos tipos de archivo o directorio. |
which | Encuentra los archivos binarios de los programas Para indagar el paradero del archivo binario de un programa se utiliza el comando which, el cual muestra la ruta al archivo. Este programa se invoca con la siguiente sintaxis: which [OPCIONES] PROGRAMA Ejemplo: which firefox Salida: /usr/bin/firefox En el modo estándar, which responde con el primer archivo que encuentra. Si se desea, la opción -a muestra todos los archivos que cumplen con el criterio de búsqueda. |
Información sobre los usuarios
Utiliza los programas de esta categoría para solicitar información detallada sobre los usuarios registrados en el sistema, así como sobre sus grupos y procesos.
Comando | Descripción |
finger | Muestra información sobre los usuarios El comando finger muestra información sobre los usuarios y para ello se combina con el nombre del usuario en cuestión: finger [OPCIONES] [USUARIO] El terminal entrega entonces la siguiente información sobre la cuenta de este usuario: nombre de inicio de sesión y nombre real, el momento del registro, el tiempo transcurrido desde la última actividad (idle time), el directorio principal del usuario, el shell por defecto, su localización (office number), correo y número de teléfono (si consta) y el contenido de los archivos .plan, .project, .pgpkey y .forward (si existen). Utiliza finger sin indicar un nombre de usuario para solicitar información sobre tu propia cuenta. |
groups | Muestra información sobre grupos Con groups el terminal enumera los grupos a los que pertenece una determinada cuenta de usuario. Utiliza el comando siguiendo este esquema: groups [OPCIONES] [USUARIO] Cuando no se indica usuario, groups localiza todos los grupos a los que pertenece tu cuenta. |
id | Solicita los ID de usuarios y grupos El comando id entrega los códigos de los usuarios y grupos de la cuenta de usuario seleccionada. id [OPCIONES] [USUARIO] Si no indicas ningún nombre de usuario, el programa muestra tu propio ID. Añadiendo opciones se puede limitar la búsqueda. |
last | Muestra información sobre el último usuario activo Utiliza el comando last según el esquema que indicamos abajo para obtener una lista de los últimos usuarios que han iniciado una sesión, junto con la fecha y la hora de su inicio y final de sesión: last [OPCIONES] Para ello, la consola solicita información del archivo wtmp en /var/log/wtmp. Si la búsqueda se refiere a una cuenta específica, se añade el nombre del usuario al comando. last [OPCIONES] [USUARIO] |
w | Muestra información sobre usuarios activos y sus procesos En este caso, w devuelve una lista de todos los usuarios con sesión abierta y todos los procesos que están ejecutando. Si añades un nombre de usuario, la búsqueda se limita a este usuario: w [OPCIONES] [USUARIO] De nuevo puedes personalizar la exhaustividad y el formato de la salida con opciones. |
who | Muestra información detallada sobre los usuarios en activo La orden who muestra información sobre los usuarios activos en ese momento en el sistema si se utiliza según esta sintaxis: who [OPCIÓN] [ARCHIVO] who es compatible con diversas opciones que permiten concretar cuánta información se obtiene como respuesta (terminal, tiempo que han estado conectados, nombre del host desde el que se han conectado, etc.). Por defecto, who extrae los datos sobre el usuario actual del archivo /var/run/utmp, pero opcionalmente también se pueden indicar estos archivos a continuación como fuente de la información: Si son las sesiones anteriores las que te interesan, combina who con el archivo /var/log/wtmp: who [OPCIÓN] /var/log/wtmp Si son los inicios de sesión fallidos, escribe entonces who con el archivo /var/log/btmp: who [OPCIÓN] /var/log/btmp |
whoami | Muestra el nombre de usuario propio Utiliza el comando whoami para obtener tu propio nombre de usuario. whoami [OPCIONES] |
Gestión de cuentas de usuario
Linux ofrece toda una serie de programas con los cuales se pueden crear, eliminar y gestionar cuentas de usuario y grupos a través del terminal. Estos aparecen en el siguiente listado general de comandos de Linux para la administración de cuentas de usuario, categoría en la que también se incluyen las órdenes que permiten abrir programas con los derechos de otros usuarios, incluidos los de administrador.
Comando | Descripción |
adduser | Crea una cuenta de usuario La opción más sencilla a la hora de crear una cuenta de usuario es la que ofrece el programa de líneas de comandos adduser, que requiere derechos de administrador y se utiliza así: adduser [OPCIONES] USUARIO Si utilizas adduser sin opciones se crean automáticamente, además de una cuenta de usuario, su ID, su directorio por defecto y un grupo con su mismo nombre, como en este ejemplo: adduser test Salida estándar en el terminal: Adding user 'test' (1001) … Adding new group 'test' (1001) … Adding new user 'test' (1001) with group 'test' … Creating home directory '/home/test' … Copying files from '/etc/skel' … A continuación, aparece un diálogo interactivo en el cual se pueden definir la contraseña y otros datos sobre el usuario, como su nombre real, el número de oficina, el número de teléfono, etc. Mediante opciones se puede ajustar o cancelar este proceso automático. El guion de Perl adduser se basa en la utilidad de bajo nivel useradd y ofrece las mismas funciones aunque en una forma más amigable para el usuario. |
chfn | Configura la información ampliada del usuario El comando chfn, equivalente a change finger, permite editar la información adicional de una cuenta de usuario, en la que se incluyen datos como el nombre real del usuario, el número de oficina y los números de teléfono privado y de trabajo. La sintaxis general de chfn sigue esta estructura: chfn [OPCIÓN "NUEVO VALOR"] [USUARIO] Este comando requiere derechos de administrador. Con las opciones -f (nombre real), -r (número de oficina), -w (número oficial) y -h (número privado) se define qué información del usuario se sustituye por un nuevo valor. En el siguiente ejemplo se sustituye el número de oficina antiguo peter23 por el valor nuevo 122: chfn -r "122" peter23 |
chsh | Cambia el shell por defecto El comando chsh (change shell) cambia el login shell de un usuario. Para ello se sigue el siguiente esquema: chsh [OPCIONES] USUARIO Para configurar el shell estándar de un usuario, chsh se complementa con la opción -s, que espera la ruta al nuevo shell (p. ej., /usr/bin/fish). Los usuarios sin derechos de administrador solo pueden configurar su propio shell. Para modificar el de otros usuarios se ha de ejecutar el comando con derechos raíz, como aquí: sudo chsh -s /usr/bin/fish peter23 Para el usuario peter23 se ha definido el shell fish (friendly interactive shell) como estándar. El cambio solo entra en vigor cuando el usuario cierra y abre sesión nuevamente. |
deluser | Cierra la cuenta de usuario El programa de líneas de comandos deluser borra todas las entradas de una cuenta de usuario de los archivos de cuentas del sistema. deluser solo se puede utilizar con derechos admin y se orienta por el siguiente esquema: deluser [OPCIONES] USUARIO Ejemplo: deluser peter23 Con esto se elimina la cuenta de usuario peter23. Si se tiene la intención de borrar todos los archivos del usuario en el directorio principal, entonces se utiliza el comando junto con la opción --remove-home, y si se trata de eliminar todos los archivos del usuario del sistema, se utiliza la opción --remove-all-files, así: deluser --remove-all-files peter23 Puede ser que antes de borrar los archivos se quieran guardar en otro directorio: en este caso se utiliza la opción --backup-to indicando el directorio que se vaya a utilizar: deluser --backup-to /ruta/al/directorio peter23 deluser es un script de Perl con las funciones del programa de bajo nivel userdel en una forma más fácil de usar. |
groupadd | Crea grupos de usuarios El programa groupadd se utiliza para crear grupos de usuarios. Requiere derechos de administrador y se invoca siguiendo esta sintaxis: sudo groupadd [OPCIONES] GRUPO Cada grupo que se crea obtiene un identificador de grupo único (GID). Los ID de grupo entre 0 y 99 están reservados para grupos del sistema. Para definir el GID de un nuevo grupo de usuarios se utiliza el comando con la opción -g (GID). En el ejemplo que sigue se crea el grupo users con el GID 1425: groupadd -g 1425 users Para crear un grupo de sistema se añade la opción -r (root). |
delgroup | Borra grupos de usuarios El equivalente a delete group, delgroup, se utiliza para borrar grupos de usuarios y requiere derechos root. Sigue esta sintaxis: delgroup [OPCIONES] GRUPO La siguiente orden tiene como resultado que el grupo users se borre del sistema: delgroup users De forma parecida a como ocurre con el programa deluser, también en este caso estamos ante un guion de Perl que pone a disposición las funciones del programa de bajo nivel groupdel de una forma más manejable. |
groupmod | Configura grupos de usuarios Con groupmod se puede configurar tanto el nombre como el GID de un grupo de usuarios. El comando se utiliza como administrador siguiendo el siguiente esquema: groupmod OPCIONES GRUPO Si utilizas groupmod con la opción -g puedes cambiar el GID y con la opción -n, el nombre del grupo. Ejemplos: groupmod -g 1800 users En este ejemplo, el GID del grupo users se define como 1800. groupmod -n all users El grupo users pasa a llamarse all. |
newgrp | Cambia el grupo de usuarios newgrp (de new group) es un comando que permite a los usuarios cambiar el ID de su grupo sin tener que cerrar e iniciar sesión de nuevo. La sintaxis general de este comando es: newgrp [-] [GRUPO] Si newgrp se acompaña del parámetro opcional [-], tras el cambio de grupo tiene lugar un reinicio del entorno del usuario, como si se abriera una nueva sesión. Los usuarios que utilizan el comando sin indicar ningún grupo se ven desplazados al grupo estándar que se ha configurado en /etc/passwd. En principio, un usuario ha de ser miembro del grupo al cual quiere mudarse, con la excepción de los grupos protegidos por contraseña, donde se tiene que introducir la contraseña en el terminal. |
passwd | Cambia la contraseña del usuario Para cambiar la contraseña de un usuario o para definir intervalos de bloqueo o de cambios utiliza el programa de la línea de comandos passwd con la siguiente sintaxis: passwd [OPCIONES] USUARIO Para cambiar la contraseña de otro usuario necesitas derechos de administrador. Escribiendo el comando passwd sin nombre de usuario puedes cambiar tu propia contraseña. passwd Si de lo que se trata es de bloquear la contraseña de otro usuario, se utiliza el comando con la opción -l (lock). passwd -l USUARIO Otras opciones permiten definir una fecha de caducidad para contraseñas (-x), así como intervalos de aviso (-w) y de inactividad (-i). passwd -x MAX_DÍAS -w AVISO_DÍAS -i INACTIVO_DÍAS USUARIO En el siguiente ejemplo se define que el usuario peter24 debe renovar su contraseña cada 30 días y cinco días antes de que se agote el plazo recibe una alerta. Si pasados los 30 días el usuario no ha renovado su contraseña, esta caduca y la cuenta de peter24 se bloquea al cabo de tres días: passwd -x 30 -w 5 -i 3 peter24 |
sudo | Ejecuta programas con los permisos de otros usuarios La instrucción sudo (substitute user do) puede anteponerse a una llamada al sistema para ejecutarla con los derechos de un usuario diferente de forma segura. Generalmente se requiere la contraseña del usuario que realiza la invocación. Cuando se introduce el comando sin indicar ningún nombre de usuario, se utiliza el superusuario root como usuario. sudo LLAMADA En el archivo /etc/sudoers, los administradores tienen la posibilidad de definir quién puede utilizar sudo y qué llamadas se permiten. Para poder utilizar el comando sudo, el usuario ha de pertenecer al grupo sudo. Para seleccionar un usuario diferente se utiliza sudo con la opción -u y el nombre de usuario deseado. sudo -u USUARIO LLAMADA Un cambio de usuario así solo es posible cuando está autorizado en /etc/sudoers. Si de lo que se trata es de trasladarse definitivamente al shell root para ejecutar comandos con derechos de administrador se utiliza sudo con la opción -i. sudo -i El comando sudo es útil porque permite a los usuarios ejecutar comandos previamente definidos como usuarios raíz sin que sea necesario revelar la contraseña root. |
su | Trabajar con los permisos de otro usuario El comando su también permite cambiar de usuario temporalmente para realizar llamadas al sistema con los permisos de otro usuario, pero a diferencia de sudo, en este caso las órdenes no se ejecutan directamente, sino que es necesario cambiar de identidad porque su no solicita la contraseña del usuario que invoca, sino la del usuario cuyos derechos se quieren suplantar. Para invocar a programas como administrador, el usuario necesita así la contraseña root del sistema. Además, al contrario que sudo, no es posible limitar a su a un conjunto de llamadas al sistema previamente definido por el administrador. La sintaxis general del comando obedece a este orden: su [OPCIONES] [USUARIO] Una solicitud sin nombre de usuario selecciona a root como usuario. |
usermod | Configura las cuentas de usuario El comando usermod ofrece la posibilidad de editar cuentas ya creadas. Utiliza usermod con derechos raíz según el siguiente esquema: usermod [OPCIONES] USUARIO Con ayuda de las opciones defines cuáles son los cambios que se han de realizar: - Cambiar el nombre del usuario (-l NUEVO_NOMBRE): usermod -l peter24 peter23 El usuario peter23 se llama ahora peter24. - Crear un nuevo directorio principal (-d DIRECTORIO) y mudar los archivos antiguos (-m): usermod -d /ruta/al/directorio/peter24 -m peter24 Todos los archivos del hasta ahora directorio principal se encuentran en el nuevo directorio principal. - Bloquear a un usuario (-L): usermod -L peter24 La contraseña de peter24 ha sido bloqueada. - Añadir usuarios a un grupo (-a) y mantener a los demás miembros (-G): usermod -aG users peter24 Peter se ha añadido al grupo users. |
Gestión del sistema
En esta categoría desciframos los comandos básicos de Linux para la administración del sistema. Con ellos puedes, por ejemplo, reiniciar o apagar el sistema desde la consola e incluso programar estas acciones.
la mayor parte de comandos de gestión del sistema requiere permisos de administrador.
Comando | Descripción |
logger | Crea registros log Con el programa de líneas de comandos logger se genera una línea en el fichero de log del sistema. Utiliza para la siguiente sintaxis: logger "MENSAJE" El fichero de log del sistema se encuentra en /var/log/syslog. |
reboot | Reinicia el sistema reboot es un comando que permite reiniciar el sistema, para lo cual se necesita disponer de permisos root. reboot [OPCIONES] |
rtcwake | Inicia y apaga el sistema automáticamente En el caso de rtcwake se trata de una orden que permite programar el inicio, la suspensión y el apagado del ordenador. Se escribe así: rtcwake [OPCIONES] [MODO] [Tiempo] En MODO selecciona el modo (-m) en que el sistema ha de entrar por un determinado periodo (-s para tiempo en segundos). Opcionalmente también puedes “despertar” al sistema en un punto definido (-t para tiempo Unix). Ejemplo 1: rtcwake -m standby -s 300 En este ejemplo el sistema entrará en modo standby durante 5 minutos (300 segundos). Ejemplo 2: rtcwake -m off -t 1490997660 En el segundo ejemplo el sistema se apagará y se “despertará” según la fecha Unix 1490997660. Esta equivale al 1 de abril de 2017 a las 00:01:00 horas. El tiempo Unix contabiliza todos los segundos que han pasado desde el 1 de enero de 1970 a las 00:00 horas. Dada la dificultad de comprender esta unidad temporal se recomienda utilizar el comando date (ver abajo) como traductor. rtcwake -m off -t $(date -d '20170401 00:01' +%s) |
shutdown | Apaga el sistema Los usuarios con permisos de administrador pueden utilizar el comando shutdown para apagar el sistema. Su base la constituye la siguiente sintaxis: shutdown [OPCIONES] [TIEMPO] [MENSAJE] Cuando se quiere apagar el sistema, existe la posibilidad de definir el momento exacto. Para ello se puede introducir una hora exacta (hh:mm) o una cuenta atrás (+m). Otros usuarios activos en el sistema reciben un aviso de apagado que puede complementarse con un mensaje opcional. En este ejemplo el sistema se va a apagar en 10 minutos: shutdown +10 Si se añade al comando la opción -r, el sistema se reinicia después de apagarse: shutdown -r +10 |
Información del sistema
Esta categoría recoge todos los programas de líneas de comandos con los cuales se solicitan información y mensajes de estado del sistema para hacerse una idea global de su estado general.
Comando | Descripción |
date | Muestra la hora del sistema El comando date te permite conocer la fecha y la hora del sistema: date [OPCIONES] [FORMATO DE SALIDA] Si al invocar un programa necesitas trabajar con una fecha concreta (ver rtcwake), la opción -d (fecha) te permite definirla. El comando soporta también otras opciones para cambiar el formato de fecha y hora. Si utilizas, por ejemplo, la opción +%s obtienes una fecha en formato Unix (segundos que han pasado desde la fecha 1970-01-01 00:00:00 UTC). Entrada: date -d '20170427 11:29' +%s Salida: 1493285340 1493285340 en tiempo Unix equivale al 27.04.2017 - 11:29:00 horas. |
df | Muestra el espacio libre en el disco duro Escribiendo el comando df (disk free) en el terminal en base al siguiente esquema obtienes como respuesta el espacio libre en disco para cada partición. df [OPCIONES] Cuando se utiliza el comando combinado con un determinado archivo, el sistema responde con el espacio libre en disco en la partición donde se aloja el archivo. df [OPCIONES] [ARCHIVO] La opción -l (local) delimita df a sistemas de archivos locales. También soporta opciones con las cuales configurar el formato de salida: la opción -h (human readable) traduce la información a un formato que las personas pueden leer, como 3K 124M 1G. |
dmesg | Lista el buffer de mensajes del núcleo El programa dmesg (display message) muestra los mensajes de diagnóstico del buffer del kernel y permite localizar errores en el hardware o el driver. Utiliza dmesg con esta sintaxis: dmesg [OPCIONES] La salida dmesg contiene todos mensajes generados en el arranque del sistema y es consecuentemente largo. Esto hace que se acompañe a menudo de un pager como more, less o tail. Ejemplo: dmesg | tail La salida dmesg se redirige al pager tail con ayuda del operador |: con ello se muestran únicamente las últimas 10 notificaciones. Combinado con el comando grep se pueden buscar ciertos mensajes. |
du | Muestra el espacio ocupado en disco Si lo que quieres es averiguar cuánto espacio ocupan todos los directorios en el disco duro, utiliza el comando du (disk usage) según este esquema: du [OPCIONES] [DIRECTORIO] Puedes escoger si quieres indicar un determinado directorio o no. Con la opción –h, el terminal muestra el espacio ocupado en disco en un formato legible. |
free | Muestra la carga de la memoria RAM El comando free muestra la ocupación de la memoria con esta sintaxis: free [OPCIONES] Como salida obtienes dos conceptos: Mem (Memory) y Swap. Mem consiste en la memoria física del sistema. Si está agotada, Linux desplaza porciones de los datos almacenados en la RAM hacia el disco duro. En este caso se habla de Swap-Space. free también soporta la opción –h, con la que obtienes la información en un formato legible. |
hostname | Muestra el nombre del host Utiliza el comando hostname con esta sintaxis para que el terminal muestre el nombre DNS del sistema. hostname [OPCIONES] |
uname | Muestra información del núcleo El comando uname significa unix name y se utiliza para solicitar información sobre el kernel. El comando soporta diversas opciones con las cuales filtrar la salida de la información: uname [OPCIONES] |
uptime | Muestra el tiempo de ejecución del sistema Para averiguar cuánto tiempo lleva el sistema ejecutándose desde el último arranque sin ser reiniciado, utiliza el comando uptime con esta sintaxis: uptime |
vmstat | Muestra las estadísticas sobre la memoria virtual Con ayuda de la herramienta de control vmstat se puede solicitar información sobre la memoria virtual, acerca de procesos de escritura y lectura en el disco duro, así como sobre la actividad del procesador central. Introduce vmstat con este esquema para obtener los valores medios desde el último arranque del sistema: vmstat [OPCIONES] La orden vmstat también ofrece un modo de monitorización continuo con el cual se pueden solicitar los valores dentro de un intervalo de tiempo en segundos tan a menudo como sea necesario. vmstat [OPCIONES] [INTERVALO [REPETICIONES]] Ejemplo: vmstat 4 8 La petición tiene lugar en 8 vueltas cada 4 segundos. Para cancelar la petición en ejecución se utiliza el atajo de teclado [CTRL] + [C]. |
Información acerca del hardware
Los comandos Linux englobados en esta categoría entregan datos detallados sobre los componentes de hardware sobre los que se ejecuta el sistema.
Comando | Descripción |
lscpu | Muestra información sobre el procesador Utiliza lscpu (list cpu) de esta forma para obtener datos sobre la CPU en la consola: lscpu [OPCIONES] En el manual de tu sistema operativo puedes consultar todas las opciones que puedes utilizar con el comando. |
lshw | Muestra información sobre el hardware En este caso lshw equivale a list hardware y facilita información sobre los componentes de hardware. Estos datos afectan a la CPU, a los módulos de la memoria y a dispositivos como tarjetas de sonido, de imagen o unidades de disco conectadas a interfaces PCI, USB o IDE. El comando lshw se utiliza siguiendo esta sintaxis: lshw [OPCIONES] También este comando soporta diversas opciones con las cuales ajustar no solo el formato de salida (-html, -xml, -short, -businfo), sino también el detalle de la información de salida (-sanitize se usa para ocultar información sensible, p. ej.). |
lspci | Muestra información sobre dispositivos PCI Escribiendo lspci (list pci) según esta estructura se obtienen datos exhaustivos sobre los dispositivos PCI. lspci [OPCIONES] Para consultar otras opciones dirígete al manual de tu sistema operativo. |
lsusb | Muestra información sobre dispositivos USB Si quieres obtener información detallada sobre los dispositivos USB, entonces introduce el comando lsusb (list usb) en el terminal de esta forma: lsusb [OPCIONES] En el manual del sistema operativo encuentras también las opciones compatibles con este comando |
Gestión de procesos
En Linux se denominan procesos a las instancias de un programa en ejecución. Los siguientes comandos pertenecen al repertorio estándar de la gestión de procesos y permiten supervisarlos cómodamente desde el terminal e intervenir si es necesario.
Comando | Descripción |
chrt | Solicita y ajusta atributos de tiempo real Con chrt estamos ante un programa para el control avanzado de procesos que permite averiguar y configurar los atributos de tiempo real (reglas de scheduling o planificación de procesos y prioridades) de procesos activos o ejecutar comandos y sus argumentos con determinados atributos de tiempo real. Se escribe con esta sintaxis: chrt [OPCIONES] [PRIORIDAD] PID/COMANDO [ARGUMENTOS] Para descifrar los atributos de tiempo real de procesos determinados utiliza chrt sin indicar ninguna prioridad junto con la opción -p: chrt -p PID Ejemplo: chrt -p 1234 Chrt arroja aquí los atributos de tiempo real del proceso 1234. Cuando el comando se escribe según el siguiente esquema se ejecuta un comando y sus argumentos con una cierta prioridad de tiempo real. chrt [OPCIONES] PRIORIDAD COMANDO [ARGUMENTOS] Ejemplo: chrt 99 firefox El programa Firefox se arranca con una prioridad de tiempo real de 99. Si, en cambio, tiene que modificarse la prioridad de tiempo real de procesos activos, se utiliza la sintaxis que sigue: chrt -p PRIORIDAD PID Ejemplo: chrt -p 20 1234 La prioridad de tiempo real del proceso 1234 se reduce a 20. La orden chrt también permite cambiar o definir las reglas de scheduling de procesos activos o reiniciados utilizando diversas opciones. chrt utiliza la regla de planificación SCHED_RR (Round Robin, explícitamente con la opción -r) como valor estándar. Esto quiere decir que todos los procesos en espera (ready) reciben porciones de tiempo de CPU por parte del planificador de forma consecutiva. Esto recibe el nombre de “time slicing” e indica cuánto tiempo ha de correr un proceso hasta que deba dar paso a otro proceso. El tamaño de esta porción de tiempo asignada a un proceso depende de su prioridad. Linux ofrece 140 niveles de prioridad para procesos, en donde 0 equivale a la más alta y 139 a la más baja. Los niveles de prioridad del 1 al 99 se reservan a procesos con la denominada prioridad de tiempo real. Los procesos de usuario suelen ser ejecutados con un nivel del 100 al 139, lo que equivale a un valor nice de -20 a +19 (ver nice). Junto a esta estrategia de scheduling, Linux también conoce con SCHED_FIFO (-f) otra regla para procesos en tiempo real. Como SCHED_RR, esta también funciona como un algoritmo “First In/First OUT” (FIFO), el cual no utiliza el time slicing, sino que los procesos que se inician con SCHED_FIFO permanecen activos tanto tiempo como sea necesario hasta que finalicen o sean desplazados por un proceso con una prioridad de tiempo real más alta. Los procesos interrumpidos se añaden con esto al final de la cola. |
ionice | Asigna clases en operaciones de E/S El comando ionice se utiliza para influir sobre la prioridad de un proceso que utiliza la interfaz I/O del kernel. La sintaxis general del comando es: ionice [OPCIONES] COMANDO Para poder invocar a ionice es necesario contar con permisos de administrador. El comando distingue tres clases de planificación y estas se transmiten con la opción -c y el valor, que puede ir del 1 al 3: 1 = Real Time (tiempo real): la operación de E/S se ejecuta de inmediato. 2 = Best Effort (mejor esfuerzo): la operación de E/S se ejecuta tan pronto como sea posible. 3 = Idle (reposo): la operación de E/S solo se ejecuta cuando no haya ningún otro proceso que requiera tiempo de E/S. El PID de un proceso activo se transfiere con la opción -pPID. Ejemplo: ionice -c2 -p1234 El proceso con el PID 1234 obtiene la clase 2 de prioridad (mejor esfuerzo). |
kill | Interrumpe y finaliza un proceso con PID kill es un programa de la consola para cancelar y cerrar procesos. El comando se invoca según el siguiente esquema con una señal y el ID del proceso seleccionado: kill [OPCIONES] [-SEÑAL] PID Las señales más habituales son: TERM: impele a un proceso a que finalice por sí mismo (estándar) KILL: fuerza la clausura de un proceso (por parte del sistema) STOP: interrumpe un proceso CONT: permite continuar un proceso interrumpido La siguiente llamada envía una señal al proceso 1234 pidiéndole que finalice por sí mismo. Como no se envía ninguna señal kill, envía la estándar TERM. kill 1234 Es mejor ofrecer siempre a los procesos la posibilidad de finalizar por sí mismos. Solo se recomienda forzar la situación con KILL cuando el proceso no reacciona como debiera. kill -KILL 1234 Si solo quisieras pausar temporalmente el proceso 1234, utiliza la siguiente llamada para interrumpirlo o dejarlo continuar: kill -STOP 1234 kill -CONT 1234 Utiliza el comando kill con la opción -l (--list) para obtener un listado de todas las posibles señales que puedes enviar vía kill. |
killall | Interrumpe y cierra procesos usando el nombre En combinación con un término clave, killall se utiliza para finalizar procesos cuyo nombre coincide exactamente con él (se cotejan los 15 primeros caracteres). killall [OPCIONES] [-SEÑAL] [PROCESO] La opción -e (--exact) permite extender la comparación a todos los caracteres del nombre del proceso. |
nice | Define las prioridades de los procesos El comando nice asigna a un proceso durante el arranque un valor nice entre -20 y +19 que determina la forma como se distribuye la capacidad disponible del microprocesador. La franja mencionada equivale a los niveles de prioridad en Linux de 100 a 139. Un proceso con un valor nice de -20 tiene, de esta forma, una prioridad más elevada que un proceso con un valor nice de 19. Su sintaxis reza así: nice [OPCIÓN] [COMANDO] Sin ninguna otra información, todos los procesos arrancan con un valor nice de 0. Con la opción -n se definen las prioridades de los procesos. Hay que tener en cuenta que las prioridades negativas solo se otorgan con derechos root. En este ejemplo que sigue el editor nano se arranca con una prioridad de 4: nice -n 4 nano |
nohup | Separa un proceso de la sesión Normalmente, cuando un usuario cierra una sesión en la consola con exit, por ejemplo, todos los procesos dependientes finalizan automáticamente. El comando nohup (no hangup) disuelve a un proceso de la sesión en curso de forma que puede seguir activo aun cuando el usuario ha cerrado su sesión. La señal HUP (hangup), que generalmente conduce a la interrupción de un proceso automáticamente, se ve bloqueada por nohup. Este comando sigue este esquema: nohup COMANDO |
pgrep | Busca el PID mediante un término de búsqueda El programa de la consola pgrep compara la lista de procesos activos con un término clave y, en caso de coincidencia, entrega los respectivos PID. La sintaxis básica de tal llamada consiste en: pgrep [OPCIONES] Término Por defecto, pgrep devuelve los PID de todos los procesos que contienen la palabra clave. Ejemplo: pgrep ssh Con esta llamada, la consola devuelve una lista de todos los procesos que contienen ssh en su nombre. Si la búsqueda se ha de delimitar a todas las coincidencias exactas, se utiliza la opción -x. Ejemplo: pgrep -x sshd Con este ejemplo solo se muestran los procesos que se llaman exactamente sshd. Si además del PID también quieres solicitar el nombre del proceso, combina pgrep con la opción -l. De forma similar a grep, pgrep soporta palabras clave basadas en expresiones regulares. |
pidof | Muestra los ID de los procesos En el caso del programa pidof, se obtiene de la consola los números de identificación de todos los procesos de un programa. Solicita los PID con pidof siguiendo este esquema: pidof [OPCIONES] PROGRAMA Con la siguiente entrada se muestran los ID de todos los procesos activos del programa nano en el terminal. pidof nano Cuando solo se quiere obtener el ID del primer proceso, se combina pidof con la opción -s (de single shot). |
pkill | Finaliza y cierra procesos con palabra clave Como kill, pkill también envía una señal a un proceso determinado, aunque el direccionamiento no tiene lugar solamente con el PID, sino con un término clave que se compara con el nombre de los procesos activos y puede ser formulado como expresión regular. También pkill envía la señal estándar TERM si no se define cualquier otra señal. La sintaxis general del comando reza: pkill [OPCIONES] [-SEÑAL] [TÉRMINO] Gracias a diversas opciones, podemos limitar el comando a los procesos de un determinado usuario (-U UID), a los procesos hijo de un proceso padre (-P PID) o a los procesos recientes (-n) o a los más antiguos (-o). Mientras que pkill se dirige a todos los procesos cuyo nombre contiene la palabra clave, killall se refiere solo a los procesos que coinciden exactamente con él. |
ps | Muestra una lista de todos los procesos activos El comando ps entrega una lista de todos los procesos activos: ps [OPCIONES] Si necesitas una salida más detallada utiliza ps con las opciones -f (detallado) o -F (muy detallado). En el manual del sistema operativo encuentras otras posibles opciones. |
pstree | Muestra los procesos activos como estructura en árbol Utiliza pstree para obtener una lista en forma de árbol de todos los procesos en activo en la actualidad. Sigue la siguiente sintaxis: pstree [OPCIONES] Utilizando diversas opciones puedes definir el formato y la amplitud de la salida. |
renice | Configura las prioridades de procesos activos El comando renice permite modificar la prioridad de un proceso activo. Se invoca con esta sintaxis: renice PRIORIDAD [OPCIONES] El direccionamiento tiene lugar con ayuda de opciones por medio del ID de proceso (-p PID), los ID de grupos (-g GID) o un nombre de usuario (-u USUARIO). Ejemplos: renice 12 -p 1234 Al proceso con el ID 1234 se le asigna una prioridad de 12. renice 3 -g 3456 Todos los procesos del grupo con el GID 3456 obtienen un valor de prioridad de 3. sudo renice -6 -u peter24 En este último caso, todos los procesos activos del usuario peter24 reciben una prioridad de -6. Sin opción, renice adquiere el valor por defecto -p e interpreta la secuencia consiguiente como ID del proceso. |
sleep | Retrasa la ejecución actual de un proceso El comando sleep se utiliza para interrumpir por un periodo determinado de tiempo la sesión actual en la consola. La sintaxis general del comando reza: sleep CIFRA[SUFIJO] Si invocas a sleep sin sufijo, la cifra indicada se interpreta como franja en segundos (s), pero también se cuenta con la posibilidad de interrumpir la sesión durante unos minutos (m), unas horas (h) o incluso durante días. La siguiente llamada interrumpe la sesión durante 4 minutos: sleep 4m Este comando puede utilizarse, por ejemplo, para retrasar la ejecución de un comando ulterior: sleep 1h && reboot En el ejemplo, el sistema espera una hora y, a continuación, ejecuta el comando reboot, que reinicia el sistema. |
taskset | Asignar procesos a determinados procesadores En el caso de taskset nos encontramos ante un comando para el control ampliado de procesos que se utiliza en sistemas con procesadores multinúcleo para asignar procesos o programas a los núcleos. Esta orden se realiza con permisos de administrador y utiliza uno de los siguientes esquemas: taskset [OPCIONES] MÁSCARA ORDEN taskset [OPCIONES] -p PID La asignación de procesos y órdenes a un núcleo de la CPU tiene lugar utilizando una máscara de bits hexadecimal: 0x00000001 = núcleo #0 0x00000003 = núcleos #0 y #1 0xFFFFFFFF = todos los núcleos (#0 a #31) El resultado de este método de reparto con máscara de bits es poco intuitivo, motivo que lleva a utilizar taskset con la opción -c (--cpu-list), que permite la asignación numérica de los núcleos (0, 5 7, 9-11). La siguiente orden le indica al proceso 1234 que ha de utilizar los núcleos 1 y 2: taskset -p 1234 -c 1,2 |
top | Listado dinámico de los procesos en ejecución Con el comando top obtienes una lista dinámica de todos los procesos activos. Para ello utiliza este esquema: top [OPCIONES] La salida de la información sobre los procesos se puede ajustar con ayuda de diversas opciones. El comando soporta, además, el uso de las siguientes teclas para ordenar la salida: [P] = ordena la salida en función del uso de CPU [M] = ordena la salida según el uso de memoria [N] = ordena la salida numéricamente por PID [A] = ordena la salida por edad [T] = ordena la salida por tiempo utilizado de CPU [U USUARIO o UID] = filtra la salida por el usuario Utiliza la tecla [H] para acudir a las páginas de ayuda y [Q] para abandonar la vista de los procesos. |
Pager
Para mantener la perspectiva también en el caso de archivos de varias páginas, los comandos de esta categoría denominada Pager permiten seleccionar las partes que se quieren mostrar en el terminal e incluso hojear los archivos en el modo interactivo.
Comando | Descripción |
head | Muestra las primeras líneas de un archivo El pager head se utiliza para mostrar la primera parte de un archivo. Su sintaxis general reza así: head [OPCIONES] Archivo Utiliza la opción -n NÚMERO_LÍNEAS para definir cuántas líneas, a partir de la primera, se han de mostrar en la consola. Ejemplo: head -n 3 ejemplo.txt Con esta orden se muestran en el terminal las tres primeras líneas del archivo ejemplo.txt. Si no se indica ningún número, se muestran por defecto las 10 primeras líneas del archivo indicado. |
less | Muestra archivos de texto El comando de Linux less muestra el contenido de un archivo de texto en la consola. Su sintaxis general es la siguiente: less [OPCIONES] ARCHIVO La salida tiene lugar en modo interactivo de forma automática, lo que le permite al usuario hojear el documento o explorarlo con palabras clave. Con la techa [Q] se cierra el modo de lectura interactiva —en el manual del programa encuentras más atajos de teclado u opciones disponibles para este comando. |
more | Muestra archivos de texto en el terminal El pager more también muestra archivos en el terminal pero con menos funciones. Utiliza more con esta sintaxis para invocar un archivo de texto y acceder a su contenido en la consola: more [OPCIONES] ARCHIVO Este comando muestra siempre una página completa del archivo, pero si este incluye varias páginas, more inicia un modo interactivo que permite hojear el documento con ayuda de teclas de control o explorarlo utilizando palabras clave. Con la techa [Q] se cierra el modo de lectura interactiva y en el manual del sistema operativo encuentras más atajos de teclado u opciones disponibles para este comando. |
tail | Muestra las últimas líneas de un archivo Mientras que head muestra por defecto las 10 primeras líneas de un archivo, tail muestra las 10 últimas. Ambos pager se utilizan con el mismo esquema (ver head). |
Editores
Con Linux no es necesario utilizar un programa de edición de textos para modificar archivos de configuración, editar fragmentos de código o escribir notas cortas, pues es posible abrir editores de texto simples en el terminal. A continuación presentamos tres comandos que deberías conocer.
Comando | Descripción |
emacs | El editor de texto Emacs Emacs es un editor de texto multiplataforma que se puede ampliar con una interfaz de programación. Arranca por defecto con una interfaz gráfica de usuario pero si se escribe la opción --no-window-system también puede abrirse en el terminal. emacs --no-window-system Emacs cuenta con un tutorial integrado al que puedes acceder con el atajo de teclado [CTRL] + [H], [T]. |
nano | El editor de textos Nano Nano es una imitación en formato GNU del editor Pico, basado en el terminal, que se utiliza con el cliente de correo Pine. Aun cuando ofrece una paleta de funciones más reducida que otros editores comparables como Vim, se diferencia de este por una mayor facilidad en el uso. Su sintaxis básica reza: nano [OPCIONES] ARCHIVO El comando abre el archivo solicitado en una ventana de edición en el terminal. Si invocas a nano sin nombre de archivo se crea un archivo de texto nuevo que se almacena en el directorio actual. nano [Opciones] Los atajos de teclado para administrar el programa se muestran en el borde inferior de la ventana. En las páginas de manual dedicadas al comando encuentras más información al respecto. |
vim | El editor de textos Vim En el caso de Vim (Vi Improved) se trata de un desarrollo ulterior del editor Vi al que supera con numerosas extensiones, como el resaltado de sintaxis, un amplio sistema de ayuda, scripting nativo, autocompletado de código y una selección de texto visual. Este programa de código abierto ofrece diferentes modos operativos para la edición de archivos meramente de texto y se puede utilizar tanto en el terminal como en una aplicación portátil con interfaz gráfica de usuario (GVim). Su campo central de aplicación es la edición de código de programa. Iniciado en la consola, Vim se utiliza con el teclado. Normalmente se invoca al comando con un archivo de texto siguiendo este esquema: vim [OPCIONES] ARCHIVO Vim guarda los archivos abiertos en una memoria caché (buffer), donde también se almacenan todos los cambios efectuados en el archivo abierto. Si se inicia Vim sin indicarle ningún archivo, el programa arranca con un buffer en blanco. Las modificaciones se aplican al archivo original solo cuando se confirma su almacenamiento con las teclas correspondientes. Si no existe ningún archivo que coincida con el indicado en el comando, se crea uno nuevo durante el almacenamiento. El programa vimtutor, que también se inicia en la línea de comandos, ofrece una introducción exhaustiva en Vim. Nuestro artículo sobre el editor Vim sirve también para profundizar en la instalación del programa y en sus diferentes modos operativos. |
Gestión de redes
También es posible gestionar redes en el terminal utilizando Linux. Ya se trate de examinar una conexión, de solicitar información al DNS, de configurar interfaces o de enviar archivos a otro ordenador, con los siguientes comandos basta una línea para llevar a cabo tu propósito.
Comando | Descripción |
arp | Muestra y modifica la memoria caché del ARP El comando arp permite abrir y editar la memoria caché del ARP de tu sistema operativo. Si lo utilizas sin modificador arp devuelve el contenido de la tabla del ARP en el terminal. arp Pero con la opción -a puedes limitar la salida a las entradas de un determinado nombre de host o de una dirección IP: arp -a HOST Ejemplo: arp -a ejemplo.com Si quieres crear una entrada en el ARP, añade la opción -s al comando con este esquema: arp -s HOST MAC_DIRECCION Ejemplo: arp -s ejemplo.com 00:05:23:73:e6:cf Si se ha de eliminar una entrada ya existente se utiliza arp con la opción -d (delete). arp -d HOST |
dig | Solicita información del DNS dig constituye una herramienta de búsqueda con la cual pedir información a los servidores DNS y mostrarla en el terminal. Este comando se utiliza normalmente siguiendo este esquema para pedir la dirección IP y cualquier otra información en el DNS sobre un nombre de dominio: dig [@SERVIDOR] [DOMINIO] [TIPO] SERVIDOR es el servidor DNS al cual se realiza la petición y donde se encuentra la información solicitada. Si no se indica un servidor, dig indaga en el servidor DNS estándar que figura en el archivo /etc/resolv.conf. DOMINIO equivale al nombre del dominio sobre el cual se busca la información almacenada en el DNS. Y TIPO permite determinar el tipo de petición: ANY (cualquier entrada), A (record IPv4 de un host) o AAA (record IPv6 de un host). El tipo estándar es A. Utiliza la opción -x para preguntar por el nombre de dominio de una dirección IP dada en una búsqueda inversa: dig [@SERVIDOR] [-x DIRECCIÓN IP] En este caso no es necesario indicar nombre, tipo o clase. |
ftp | Transfiere archivos por FTP Con el programa ftp la mayor parte de las distribuciones de Linux disponen de una utilidad cliente preinstalada para la transferencia de datos vía FTP (File Transfer Protocol). Este permite intercambiar archivos entre el sistema local y otro ordenador en la red. Utiliza ftp con este esquema para establecer una conexión al servidor FTP del ordenador de destino: ftp [OPCIONES] [HOST[PUERTO]] El direccionamiento tiene lugar con un nombre de host o una dirección IP. El número de puerto es opcional. Durante el proceso de conexión, por lo general será necesario introducir un nombre de usuario y su contraseña. Cuando los datos son correctos, ftp inicia un intérprete de líneas de comandos que recibe las entradas del usuario en forma de comandos. Este programa soporta diversas órdenes con las cuales explorar y gestionar el sistema de archivos del ordenador de destino, así como transferir archivos de un sistema a otro. |
ip | Administra interfaces de red El programa ip forma parte del paquete de utilidades iproute2, con el cual se pueden consultar y configurar interfaces de red en el terminal. Esta es la sintaxis general de la orden: ip [OPCIONES] OBJETO [COMANDO [ARGUMENTOS]] Con ayuda de objetos, comandos de búsqueda y argumentos se puede definir qué acción se ejecuta con ip. El programa soporta objetos como address (dirección IP), link (interfaces de red), route (entrada en la tabla de enrutamiento) o tunnel, sobre el cual se pueden aplicar comandos de búsqueda como add, change, del, list o show. Si, por ejemplo, quieres invocar la dirección IP de una determinada interfaz de red (eth0), utiliza el comando ip con el objeto address, la orden show y el argumento dev eth0: ip address show dev eth0 Los objetos y las órdenes también se pueden enviar en forma abreviada: ip a s dev eth0
ip link show dev eth0 o en forma abreviada: ip l s dev eth0 Para activar o desactivar una interfaz como eth0, procede así: ip link set eth0 up ip link set eth0 down Con su gran paleta de funciones, iproute2 sustituye a una serie de herramientas de red más antiguas como ifconfig, route y netstat. Puedes consultar la lista completa de opciones, objetos, comandos de búsqueda y argumentos posibles para el comando ip en el manual de tu sistema operativo. Allí también dispones de información sobre otros programas de iproute2. |
iw | Consulta y configura interfaces inalámbricas El programa iw se utiliza para configurar interfaces inalámbricas y se ha consolidado como la alternativa más reciente a iwconfig. Este comando se fundamenta en una sintaxis parecida a la de ip: iw [OPCIONES] OBJETO [COMANDO] Algunos objetos que se pueden usar con iw son: dev NOMBRE_DE LA_INTERFAZ = Interfaz de red phy NOMBRE_DEL_DISPOSITIVO = Dispositivo inalámbrico (vía nombre) phy#ÍNDICE_DEL_DISPOSITIVO = Dispositivo inalámbrico (vía índice) reg = Agente regulatorio para configurar la región y el país Combina iw con help para que se muestre la sintaxis del comando, así como las posibles opciones y órdenes: iw help A continuación se muestra un ejemplo de aplicación del comando iw: - Muestra las características de los dispositivos en todas las interfaces WI-FI: iw list - Abre el estado de la conexión (tasa de transferencia y calidad de la señal) de una interfaz inalámbrica (wlan0): iw dev wlan0 link - Escanea el entorno inalámbrico: iw dev wlan0 scan Acompaña a iw del comando scan para obtener una relación de todas las redes inalámbricas en el área de recepción, así como de sus características (canal, cifrado, calidad de la seña, etc.). - Mostrar la configuración regional: iw reg get - Editar la configuración regional: iw reg set DE - Solicitar las características de los dispositivos (wlan0): iw list dev wlan0 - Características de los dispositivos en detalle: iw dev wlan0 station dump - Consultar eventos: iw event Las opciones -f, -t y -r entregan una salida ampliada con notificaciones de error sobre el estado de la conexión y la fecha. |
netstat | Consulta el estado de las interfaces de red El programa de líneas de comando netstat sirve para consultar el estado de las interfaces de red y se utiliza siguiendo esta sintaxis: netstat [OPCIONES] Utilizado sin opción, el comando entrega todos los sockets abiertos en el terminal. También se pueden utilizar las siguientes opciones para consultar tablas de enrutamiento (-r), conexiones enmascaradas (-M) o mensajes de enlace de red (-N). Una alternativa a netstat es el programa ss incluido en el paquete de herramientas iproute2. |
nslookup | Consulta información en el DNS Como dig, nslookup también sirve para resolver nombres. El comando está disponible en dos modos operativos: interactivo y no interactivo. El modo interactivo se inicia escribiendo en el terminal nslookup a secas. nslookup El programa está preparado para recibir órdenes. Si queremos consultar la dirección IP de un dominio, se introduce el nombre del host. Si queremos iniciar una consulta inversa, se introduce una dirección IP. El programa nslookup utiliza automáticamente el servidor DNS configurado en el sistema. Para finalizar nslookup se introduce en el terminal el comando exit. Si queremos iniciar nslookup en el modo no interactivo se invoca el programa en combinación con un nombre de host o una direccion IP. nslookup [OPCIONES] [HOST/IP ] Como el comando está obsoleto oficialmente, suele recomendarse a los usuarios utilizar dig en su lugar. |
ping | Comprueba la conexión de red Utiliza el comando ping para comprobar la disponibilidad de otros ordenadores en la red. Este comando se ve sustentado por la siguiente sintaxis: ping [OPCIONES] DESTINO Para comprobar la conexión de red, ping envía un pequeño paquete de datos al sistema de destino indicado (dominio o IP) y evalúa el tiempo que transcurre hasta que se registra una respuesta. Además de registrar la franja de tiempo que pasa entre el envío del paquete de datos y la recepción de la respuesta (Round trip time o RTT), ping también escribe la dirección IP del sistema de destino en el terminal. Esto hace que este comando también se utilice para averiguar la dirección IP de un dominio. Si ping no se ve acompañado por ninguna opción, el programa se ejecuta hasta que se finaliza a mano con el atajo [CTRL] + [C] y envía al sistema de destino una petición ping por segundo. Pero si ya al comienzo se quiere definir un punto de finalización, se utilizan las opciones -c NÚMERO (número de peticiones ping que se han de enviar) o -w SEGUNDOS (franja temporal en segundos tras la cual ping finaliza automáticamente). |
route | Muestra y edita tablas de enrutamiento IP Con el comando route se pueden consultar y editar las tablas de IP routing del kernel. Se utiliza con esta sintaxis: route [OPCIONES] route [OPCIONES] [add|del] [-net|-host] OBJETIVO Si utilizas el comando sin opción se obtiene una tabla de enrutamiento completa del núcleo: route Si quisieras añadir una ruta de enrutamiento a una red, utiliza la opción add: route add -net 10.0.0.0 Si el destino consiste en una subred, se ha de proporcionar la máscara de subred con la opción netmask MÁSCARA: route add -net 10.0.0.0 netmask 256.245.155.0 También se puede configurar una ruta a un ordenador: route add -host 218.89.72.191 Si el sistema dispone de varias interfaces de red, se ha de indicar con la opción dev INTERFAZ cuál de ellas se tiene que utilizar: route add -net 10.0.0.0 netmask 256.245.155.0 dev eth0 En caso que el destino solo se pueda alcanzar con un router, también se ha de indicar con la opción gw ROUTER. route add -net 10.0.0.0 netmask 256.245.155.0 gw 10.0.1.261 Para borrar una ruta se utiliza del: route del -host 218.89.72.191 |
rsync | Sincroniza archivos El comando rsync permite sincronizar archivos de forma local o en una red. Con este fin se comparan primero el tamaño y la fecha de los cambios de los archivos en cuestión. Si el origen y el destino se encuentran en el mismo sistema, los archivos que varían se copian por completo. En la sincronización en una red rsync utiliza un algoritmo de transferencia Delta de forma que solo los fragmentos de archivo modificados se transfieren del origen al destino. La sintaxis del comando reza: rsync [OPCIONES] ORIGEN DESTINO Ejemplo: rsync -a home/user/documentos/ /home/user/backup Todos los archivos de home/user/documentos/ se comparan con los archivos en /home/user/backup. El comando rsync suele ejecutarse con la opción -a, que es la responsable de la copia de todos los subdirectorios así como de los enlaces simbólicos junto con los derechos de usuario. |
sftp | Transfiere archivos por SFTP El programa sftp sirve para transferir datos en una red igual que ftp, aunque las operaciones tienen lugar con una conexión cifrada SSH (Secure shell). Como ftp, sftp también establece una conexión a un equipo de destino en la red y arranca a continuación un modo de comando interactivo. |
scp | Transfiere archivos con SCP Con scp, abreviatura de secure copy, dispones de otro programa para transferir datos de forma segura en la red: scp copia datos de un ordenador a otro utilizando también para ello el protocolo de red SSH. El programa cliente funciona casi como la opción cp, aunque se utiliza en todos los sistemas con esta sintaxis: scp [OPCIONES] ARCHIVO [[user@]remote_host:]RUTA A la indicación de la ruta del ordenador le preceden el nombre de usuario y el nombre del host remoto. Los archivos locales se pueden direccionar mediante rutas relativas o absolutas. Ejemplos: scp /home/max/images/image.jpg max@example.com:/home/max/archiv El archivo image.jpg se copia desde el directorio local images en el directorio archiv alojado en un ordenador con la dirección example.com. El programa scp también soporta la transferencia de datos a la inversa, así como entre dos sistemas remotos. scp [OPCIONES] [[user@]host:]ARCHIVO RUTA scp [OPCIONES] [[user@]host1:]ARCHIVO [[user@]host2:]RUTA Gracias a otras opciones puedes configurar el modo de la transferencia y el cifrado. |
traceroute | Sigue a los paquetes de datos Utiliza el comando traceroute según el siguiente esquema para trazar la ruta que sigue un paquete de datos IP entre tu sistema y otro. traceroute [OPCIONES] HOST Con traceroute se puede averiguar por qué router y por qué nodos ha pasado un paquete IP en su camino hacia el ordenador de destino para, por ejemplo, investigar la causa de un desfase. |
tty | Muestra el nombre del terminal El comando tty muestra el nombre de archivo del terminal definido como entrada estándar. La sintaxis general del comando reza: tty [OPCIONES] |
Archivar y comprimir
Linux facilita diversas tecnologías con el fin de comprimir y empaquetar archivos, aunque cabe tener en cuenta que no siempre un proceso de archivado implica una compresión. Por ejemplo, el programa para archivar ficheros tar suele utilizarse en combinación con programas de compresión como gzip, bzip2 o xz.
Comando | Descripción |
tar | Escribe y extrae archivos en el fichero Tar El comando tar corresponde a tape archiver, un programa desarrollado en sus orígenes para grabar datos en unidades de cinta magnética y que hoy es uno de los programas más populares para archivar datos en Linux. El programa permite escribir ficheros y directorios de forma secuencial en un archivo tar y recuperarlos a partir de él. A diferencia de lo que ocurre con el formato Zip propio de sistemas Windows, con tar los derechos de usuario de los ficheros guardados no se pierden tampoco después de descomprimirlos. El programa de líneas de comandos tar se invoca según la siguiente sintaxis: tar [OPCIONES] ARCHIVOS Si quieres crear un archivo nuevo, utiliza tar con las opciones -c (crear nuevo archivo) y -f (escribir un archivo en el fichero indicado o extraerlo de él). En el siguiente ejemplo los archivos archivo1.txt y archivo2.txt se escriben en el recién creado fichero ejemplo.tar: tar -cf ejemplo.tar archivo1.txt archivo2.txt Si lo que quieres es que el terminal te muestre el contenido de un archivo utiliza, tar con las opciones -t (mostrar contenido de un archivo), -v (salida detallada) y -f (ver arriba): tar -tvf ejemplo.tar En caso de que los archivos empaquetados se tengan que desempaquetar en la carpeta actual, tar se acompaña entonces de las opciones -x (extraer ficheros de un archivo) y -f (ver arriba). tar -xf ejemplo.tar Con -j (bzip2), -J (xz), -z (gzip) y -Z (compress), tar también ofrece opciones que permiten comprimir o descomprimir archivos durante el proceso de empaquetado o extracción invocando a otro programa. En el ejemplo que sigue los archivos archivo1.txt y archivo2.txt se archivan en ejemplo.tar.gz y se comprimen con gzip. tar -czf ejemplo.tar.gz archivo_1.txt archivo_2.txt El siguiente comando extrae y descomprime todos los archivos guardados en ejemplo.tar.gz: tar -xzf ejemplo.tar.gz |
gzip / gunzip | Comprime o descomprime archivos con gzip En el caso de gzip (abreviatura de GNU zip), estamos ante un programa con el cual se pueden comprimir y descomprimir archivos cómodamente en el terminal. Su sintaxis general sigue esta estructura: gzip [OPCIONES] ARCHIVOS Podrías utilizar gzip según este esquema para convertir el archivo ejemplo.txt al formato comprimido ejemplo.txt.gz: gzip ejemplo.txt Debes tener en cuenta que gzip borra por defecto el archivo original cuando lo empaqueta, algo que, por otro lado, puedes evitar con ayuda de la opción -k. gzip -k archivo.txt El programa también puede ser empleado sobre varios archivos al mismo tiempo: cada archivo inicial se convierte a un archivo gz independiente entonces. El comando gzip ejemplo_1.txt ejemplo_2.txt ejemplo_3.txt crea los archivos ejemplo_1.txt.gz, ejemplo_2.txt.gz y ejemplo_3.txt.gz. Para escribir varios archivos en un fichero comprimido común se utiliza gzip junto con el programa de archivado tar. Si se trata de descomprimir un archivo gz, se combina el comando gzip con la opción -d o se utiliza el comando gunzip. gzip -d ejemplo.txt.gz gunzip ejemplo.txt.gz Los archivos gz desempaquetados también se borran por defecto, pero es posible conservar el archivo gz, además del extraído, con la opción -k. La compresión gzip se apoya en el algoritmo deflate, una combinación entre LZ77 y la codificación Huffman. En comparación con otros métodos de compresión, gzip se caracteriza por su velocidad, aunque su grado de compresión es más bajo. |
bzip2 / bunzip2 | Comprime y descomprime archivos con bzip Una alternativa popular a gzip lo constituye el programa de líneas de comandos bzip2. Utilizando la misma sintaxis que aquel, este se basa sin embargo en un proceso de compresión en tres fases que posibilita un mayor grado de compresión. Primero se somete a los archivos a la transformación reversible de Burrows-Wheeler por bloques y a continuación a la transformación Move to front. Por último tiene lugar la compresión en sí por el método de la codificación Huffman. Los archivos que han sido comprimidos con bzip2 llevan la terminación bz2. Utiliza bzip con este esquema para comprimir archivos: bzip2 [OPCIONES] ARCHIVOS bzip2 también se puede aplicar en archivos tar. La descompresión tiene lugar aquí de forma análoga a bzip con la opción -d o con el comando bunzip2. A cambio de un alto grado de compresión los usuarios han de resignarse a un tiempo de ejecución más largo. |
xz | Comprime y descomprime archivos con xz El comando xz convierte archivos en el formato de compresión de datos homónimo. Para invocar el programa se sigue el mismo esquema que con gzip y bzip2. xz [OPCIONES] ARCHIVOS Los archivos comprimidos con xz adoptan la terminación .xz. La descompresión tiene lugar también con la opción -d (como en gzip y bzip). De forma alternativa también se puede usar el comando unxz. Al igual que los archivos gz y bz2, los archivos xz tampoco se archivan. Cuando se quiere escribir varios archivos en el mismo archivo comprimido xz también se ha de recurrir a la herramienta de archivado tar. xz soporta diversos algoritmos de compresión, por defecto el Lempel-Ziv-Markow (LZMA/LZMA2). |
cpio | Escribe y extrae ficheros en/de un archivo cpio (copy in, copy out) es un programa de archivado con el que se escriben datos en un archivo (.cpio) y se extraen de él. |
En nuestro artículo a propósito del archivado y la compresión con Linux tienes acceso a una detallada descripción de los comandos aquí mencionados. Si lo que quieres es profundizar en los métodos de compresión así como en su cercanía a la deduplicación, no dejes de visitar nuestro artículo sobre la reducción de datos.
Gestión de particiones
Cuando se trabaja con Linux, para poder acceder a un sistema de ficheros residente en una partición diferente, este ha de estar integrado en la estructura de directorios del sistema operativo. A este procedimiento se le denomina “montar” (del inglés «mount») una partición y puede llevarse a cabo en la interfaz gráfica de usuario. Utilizando el terminal de líneas de comandos, el usuario dispone también de programas como lsblk, blkid o mount, con los cuales puede solicitar datos sobre los dispositivos de bloque (block devices) conectados y montarlos o desmontarlos según la necesidad.
Comando | Descripción |
mount /unmount | Añade sistemas de archivos Con el fin de integrar un sistema de archivos en la estructura del sistema operativo utilizando la consola, Linux ofrece para ello el comando mount. Esta es la sintaxis general de este comando: mount [OPCIONES] DISPOSITIVO MOUNTPOINT DISPOSITIVO = aquí se escribe la ruta al archivo de dispositivo de la unidad que se quiere montar como partición. MOUNTPOINT = esta nomenclatura equivale al punto exacto en la estructura del directorio del sistema operativo en el cual se quiere integrar la nueva partición. Suele indicarse como ruta absoluta. En el ejemplo se monta el dispositivo ssd en el directorio /media/usb: mount /dev/sdd /media/usb Linux suele reconocer automáticamente al sistema de archivos del dispositivo, pero si no lo hiciera, la opción -t permite indicar el sistema de archivos (ext4) de forma específica: mount -t ext4 /dev/sdd /media/usb Si, por el contrario, queremos desmontar un sistema de archivos se utiliza el comando inverso unmount: unmount [OPCIONES] DISPOSITIVO o unmount [OPCIONES] MOUNTPOINT Si lo que se desea es obtener una vista de todos los directorios integrados en el sistema operativo, entonces se utiliza el comando mount con la opción -l. mount -l Combinando el comando con -t se concreta la salida a los sistemas de archivos de un cierto tipo. |
lsblk | Muestra información sobre los dispositivos de bloque integrados Con el comando lsglk (list block devices) se obtiene una vista de todos los dispositivos y particiones incorporados al sistema operativo como esquema arbóreo (no tienen que estar necesariamente montados). Se invoca siguiendo esta sintaxis: lsblk [OPCIONES] La salida incluye los siguientes datos: NAME = nombre del dispositivo (p. ej., sda) o de la partición (p. ej., sda1, sda2, etc.) MAJ:MIN = número del dispositivo (major:minor) RM = sistema extraíble (1 = sí, 0 = no) SIZE = capacidad del dispositivo RO = dispositivo de solo-lectura (1 = sí, 0 = no) TYPE = tipo de dispositivo MOUNTPOINT = punto de montaje La salida se puede personalizar con ayuda de la opción -o (--output) y una lista de los atributos deseados para solicitar datos adicionales como el número de identificación (UUID), el tipo de sistema de archivos (FSTYPE) o el estado (STATE). Ejemplo: lsblk -o NAME,FSTYPE,UUID, SIZE,OWNER,GROUP,MODE,TYPE,MOUNTPOINT En la configuración estándar no se tienen en cuenta los dispositivos vacíos, pero sí se deben incluir en la vista general se combina lsblk con la opción -a (--all). Para solicitar información sobre un determinado dispositivo se utiliza el siguiente esquema: lsblk [OPCIONES] DISPOSITIVO Ejemplo: lsblk /dev/sda |
blkid | Muestra datos sobre los dispositivos de bloque añadidos blkid también facilita información sobre los dispositivos conectados al hardware de forma similar a como lo hace lsblk. Usando el comando con el siguiente esquema se solicita el número de identificación (UUID) y el tipo de sistema de archivos (TYPE) de todos los dispositivos de bloque conectados: blkid [OPCIONES] Con la opción -o y el valor list se obtiene la salida en forma de tabla. blkid -o list También blkid permite delimitar la salida a un cierto dispositivo: blkid [OPCIONES] DISPOSITIVO Ejemplo: blkid /dev/sda1 |
dd | Copia archivos, particiones o discos por bits El programa dd facilita un método de copia por el cual los datos se leen bit por bit desde un input file (if) y se describen en un output file (of). El comando se fundamenta en la siguiente sintaxis: dd if=Origen of=Destino [OPCIONES] En él pueden indicarse como origen y destino tanto archivos independientes como particiones (/dev/sda1) o un dispositivo completo (/dev/sda). Ejemplo: dd if=/dev/sda5 of=/dev/sdb1 Aquí, la quinta partición de /dev/sda se copia bit por bit en la primera partición de /des/sdb Utilizando diversas opciones se puede limitar la copia a un número específico de bloques en un tamaño definido. |
Miscelánea
A continuación se describen algunos comandos que no se incluyen en ninguna de las categorías enumeradas hasta ahora.
Comando | Descripción |
alias | Define apodos para los comandos El programa alias permite definir abreviaturas para los comandos. Para ello se sigue este esquema: alias APODO = 'COMANDO' COMANDO puede sustituirse por un comando cualquiera incluyendo las opciones, que queda vinculado al apodo incluido en el espacio APODO. Ejemplo alias ll='ls -l' Los caracteres ll se han definido como apodo para el comando ls con la opcion -l (salida detallada). |
at | Programa la ejecución de comandos Con el comando at según este esquema se programa la ejecución de una determinada orden: at FECHA HORA Ejemplo: at 10:00 AM 6/22/2017 A continuación se indica el comando y se cierra el modo interactivo con [CTRL] + [D]. |
cal | Muestra el calendario Utilizando cal según el esquema que sigue se obtiene una vista de calendario en el terminal: cal [OPCIONES] [[MES] Año] Ejemplo: cal 12 2017 Con este comando el sistema entrega una vista del mes de diciembre de 2017. |
echo | Muestra una cadena en la salida estándar Emplea el comando echo para que el sistema muestre cadenas de caracteres por líneas en la salida estándar, que suele ser la consola. La sintaxis básica del comando es: echo [OPCIONES] CADENA |
pr | Procesa archivos de texto para su impresión Con el programa de líneas de comando pr se preparan archivos para su impresión. Sigue para ello la siguiente sintaxis: pr [OPCIONES] Archivo En la configuración estándar pr genera una cabecera que contiene el nombre del archivo, la fecha actual y el número de página. |
script | Registra sesiones en el terminal Con el comando script se puede grabar una sesión en el archivo typescript. Si en él figura una grabación de una sesión precedente, se sobrescribe. El registro de la sesión comienza automáticamente cuando se invoca el programa: script Utiliza el atajo de teclado [CTRL] + [D] para finalizar la grabación. Si en lugar de typescript se prefiere registrar la sesión en un archivo diferente, se introduce el comando junto con su nombre o la ruta que lleva hasta él. script ARCHIVO |
seq | Muestra una secuencia numérica seq permite obtener una serie de números en la salida estándar, para lo cual se define un valor inicial, otro final y eventualmente el tipo de incremento. seq [OPCIONES] VALOR INICIAL INCREMENTO VALOR FINAL Ejemplo: seq 0 2 10 Aquí el programa cuenta de 0 a 100 de dos en dos. |
tasksel | Ayuda en la instalación de aplicaciones estándar Con el comando tasksel se obtiene soporte para la instalación de aplicaciones estándar como un servidor de correo, DNS, OpenSSH o LAMP. Si utilizas esta herramienta, todos los paquetes y programas necesarios para una determinada tarea se instalan automáticamente en la secuencia correcta. Con la opción --list-tasks, tasksel muestra una lista de todas las aplicaciones estándar disponibles. tasksel --list-tasks Si se desean obtener datos adicionales sobre una aplicación de la lista, se acompaña el comando de la opción --task-desc y la información correspondiente. Ejemplo: tasksel --task-desc mail-server Según este comando el terminal muestra datos sobre la tarea “mail-server”. Si deseas que el terminal muestre todos los paquetes que pertenecen a la tarea “mail-server”, utiliza el comando con la opción --task-packages. tasksel --task-packages mail-server La instalación de todos los paquetes de una aplicación estándar se inicia con ayuda del subcomando install. Para ello necesitas derechos admin. Ejemplo: tasksel install mail-server Con este ejemplo, el comando pone en marcha la instalación de todos los paquetes que requiere la tarea “mail-server”. |
tee | Duplica la salida de un programa Con tee nos encontramos ante un comando con el cual se puede duplicar la salida de un programa. Con este fin se redirige una salida hacia la salida estándar y otra se escribe en el archivo indicado en el comando tee. Esta es su sintaxis: tee [OPCIONES] ARCHIVO tee suele ir acompañado de la barra vertical como operador: ls | tee ejemplo.txt El comando ls muestra el contenido del directorio actual en forma de lista. La salida del programa se transfiere mediante la barra vertical al comando tee, el cual la muestra en el terminal y la escribe en el archivo ejemplo.txt. |
time | Mide el tiempo de ejecución de programas Utiliza el comando time según el esquema que sigue para obtener información sobre el tiempo de ejecución de los programas que inicias en el terminal: time [OPCIONES] Comando [ARGUMENTOS] |
tr | Reemplaza caracteres en archivos de texto Utiliza tr para borrar caracteres o sustituirlos por otros. Para ello tr lee el flujo de datos de la entrada estándar y los escribe en la salida estándar en función de la modificación deseada. En caso de sustitución, tr se utiliza con dos argumentos: tr OPCIÓN CANTIDAD1 CANTIDAD2 El segundo argumento (CANTIDAD2) sustituye al primero (CANTIDAD1). Para borrar una secuencia de caracteres se utiliza la opción -d y se indica la secuencia como argumento. tr -d SECUENCIA Este comando suele combinarse con los operadores mayor que o menor que para llevar a cabo los ajustes en los archivos. tr 'a-z' 'A-Z' < ejemplo1.txt > ejemplo2.txt Aquí, tr lee el contenido del archivo ejemplo1.txt, sustituye las minúsculas de la a a la z por mayúsculas y escribe la salida en el archivo ejemplo2.txt. |
wall | Envía mensajes a todos los usuarios activos El comando wall permite enviar un mensaje a todos los usuarios activos en el sistema en un momento determinado. Para invocar al programa se escribe en la consola: wall Confirma con [Enter] y escribe tu mensaje, que también puedes confirmar con [Enter] y enviar con el atajo de teclado [CTRL]+[D]. Todos los usuarios activos en ese momento en el sistema reciben la notificación en el terminal como mensaje broadcast. Ten en cuenta que para poder recibir mensajes de otros usuarios tienes que permitir su acceso de escritura a tu terminal. Utiliza para ello el comando mesg: mesg [y/n] Solicitar el estado actual: mesg Permitir el acceso de escritura: mesg y Denegar el acceso de escritura: mesg n Si quieres enviar contenido de un archivo a todos los usuarios activos, utiliza wall con un operador de redirección < y el nombre del archivo correspondiente: wall < NOMBRE DEL ARCHIVO |
watch | Ejecuta órdenes periódicamente Con el comando watch se puede ejecutar una orden en periodos regulares y se le invoca por medio de la sintaxis: watch [OPCIONES] COMANDO El intervalo de tiempo en el cual se ha de ejecutar la orden enviada con watch se define con la opción -n (en segundos). Se finaliza watch con la combinación [CTRL] + [C]. En el siguiente ejemplo se le indica al sistema que interrumpa la carga de la memoria cada 10 segundos. watch -n 10 free |
wc | Cuenta líneas, palabras, letras, caracteres y/o bytes de archivos de texto El comando wc (word count) proporciona la cantidad de líneas, palabras, letras, caracteres o bytes de un archivo de texto cuando se necesita. La sintaxis general del comando es la siguiente: wc [OPCIONES] ARCHIVO Ejemplo: wc ejemplo.txt Salida: 14 18 143 ejemplo.txt Si wc se escribe sin opción, la salida equivale al esquema LÍNEAS PALABRAS CARACTERES ARCHIVO, pero el comando soporta otras opciones con las que filtrar la salida: -l (líneas), -C (bytes), -m (caracteres), -L (longitud de la línea más larga) y -w (palabras). |
xargs | Transforma la entrada estándar en líneas de comando xargs es un comando que permite entregar la salida de un comando a otro comando como argumento. Generalmente se utiliza para ello la barra vertical (|) como operador de redirección. xargs se utiliza con esta sintaxis: COMANDO1 | xargs [OPCIONES] COMANDO2 El comando xargs se utiliza, por ejemplo, con find: en el siguiente ejemplo, find determina todos los archivos del directorio actual que se ajustan al patrón *.tmp y emite sus nombres en la salida estándar, donde se entregan al comando rm como argumento. $ find . -name '*.tmp' | xargs rm |
Esta lista de comandos de Linux no aspira a convertirse en una lista completa de todos ellos, sino que solo abarca los comandos estrictamente fundamentales y explica algunos ejemplos de su aplicación diaria en sistemas unixoides. Si buscas una descripción completa de todos estos comandos, así como de los demás, tendrás que dirigirte a las páginas del manual de tu sistema operativo, del cual encuentras una versión online en el proyecto Linux Man-Pages de Michael Kerrisk.