2.2 Lección 1
Certificación: |
Linux Essentials |
---|---|
Versión: |
1.6 |
Tema: |
2 Encontrando tu camino en el sistema Linux |
Objectivo: |
2.2 Usando la línea de comandos para obtener ayuda |
Lección: |
1 de 1 |
Introducción
La línea de comandos es una herramienta muy compleja. Cada comando tiene sus propias opciones únicas, por lo tanto, la documentación es clave cuando se trabaja con un sistema Linux. Además del directorio /usr/share/doc/
que almacena la mayor parte de la documentación, existen otras herramientas también proporcionan información sobre el uso de comandos. Este capítulo se centra en los métodos para acceder a esa documentación, con el fin de obtener ayuda.
Hay una multitud de métodos para obtener ayuda dentro de la línea de comandos. man
, help
e info
son solo algunos de ellos. Para Linux Essentials, nos centraremos en man
e info
, ya que son las herramientas más utilizadas para obtener ayuda.
Otro tema de este capítulo será localizar archivos. Trabajaremos principalmente con el comando locate
.
Obteniendo ayuda por línea de comandos
Ayuda incorporada
Cuando se comienza con el parámetro --help
, la mayoría de los comandos muestran algunas instrucciones breves sobre su uso. Aunque no todos los comandos proporcionan está opción, es un buen primer intento para aprender más sobre sus parámetros. Tenga en cuenta que las instrucciones de --help
a menudo son muy breves en comparación con las otras fuentes de documentación que discutiremos en el resto de esta lección.
Páginas Man
La mayoría de los comandos proporcionan una página de manual o una página "man". Esta documentación generalmente se instala con el software y se puede acceder con el comando man
. Cuando deseé ver la página del manual de un comando, debe agregar el comando man
como argumento:
$ man mkdir
Este comando abre la página del manual para mkdir
. Puede usar las teclas de flecha arriba y abajo o la barra espaciadora para navegar por la página del manual. Para salir de la página del manual, presione Q.
Cada página de man
está dividida en un máximo de 11 secciones, aunque muchas de estas secciones son opcionales:
Sección | Descripción |
---|---|
NAME |
Nombre del comando y breve descripción |
SYNOPSIS |
Descripción de la sintaxis del comando |
DESCRIPTION |
Descripción de los efectos del comando |
OPTIONS |
Opciones disponibles |
ARGUMENTS |
Argumentos disponibles |
FILES |
Archivos auxiliares |
EXAMPLES |
Una muestra de la línea de comando |
SEE ALSO |
Referencias cruzadas a los temas relacionados |
DIAGNOSTICS |
Mensajes de advertencia y error |
COPYRIGHT |
Autor (es) del comando |
BUGS |
Cualquier limitación conocida del comando |
En la práctica, la mayoría de las páginas man no contienen todas estas partes.
Las páginas man están organizadas en ocho categorías, numeradas del 1 al 8:
Categoría | Descripción |
---|---|
1 |
Comando del usuario |
2 |
Llamadas del sistema |
3 |
Funciones de la biblioteca C |
4 |
Controladores y archivos de dispositivo |
5 |
Archivos de configuración y formatos de archivo |
6 |
Juegos |
7 |
Miscellaneous |
8 |
Comandos del administrador del sistema |
9 |
Funciones del núcleo (no estándar) |
Cada página de manual pertenece exactamente a una categoría. Sin embargo, varias categorías pueden contener páginas de manual con el mismo nombre. Tomemos como ejemplo el comando passwd
. Este comando puede ser usado para cambiar la contraseña de un usuario. Como passwd
es un comando de usuario, su página man reside en la categoría 1. Además del comando passwd
, el archivo de base de datos de contraseñas /etc/passwd
también tiene una página man que se llama passwd
. Como este archivo es un archivo de configuración, pertenece a la categoría 5. Cuando se hace referencia a una página de manual, a menudo se añade la categoría al nombre de la página de manual, como en passwd(1)
o passwd(5)
para identificar la página de manual respectiva.
Por defecto, man passwd
muestra la primera página man disponible, en este caso passwd(1)
. La categoría de la página man deseada se puede especificar en un comando como man 1 passwd
o man 5 passwd
.
Ya hemos visto cómo navegar a través de una página man y cómo volver a la línea de comando. Internamente, man
usa el comando less
para mostrar el contenido de la página. less
le permite buscar texto dentro de una página man. Para encontrar la palabra linux
puede usar /linux
para buscar hacia adelante desde el punto en el que se encuentra en la página o ?Linux
para iniciar una búsqueda hacia atrás. Esta acción resalta todos los resultados coincidentes y mueve la página a la primera coincidencia resaltada. En ambos casos, puede escribir N para saltar a la siguiente coincidencia. Para encontrar más información sobre estas características adicionales, presione H y se mostrará un menú con toda la información.
Páginas de información (Info Pages)
Otra herramienta que le ayudará mientras trabaja con el sistema Linux son las páginas de información(info pages). Las páginas info suelen ser más detalladas que las páginas de manual y están formateadas en hipertexto, similar a las páginas web en Internet.
Las páginas info se pueden mostrar así:
$ info mkdir
Para cada página de información, info
lee un archivo que está estructurado en nodos individuales dentro de un árbol. Cada nodo contiene un tema simple y el comando info
contiene hipervínculos que pueden ayudarlo a moverse de uno a otro. Puede acceder al enlace presionando "enter" mientras coloca el cursor en uno de los asteriscos principales.
Similar a man
, la herramienta info
también tiene comandos de navegación de página. Puede obtener más información sobre estos comandos presionando ? mientras se encuentra en la página de info.
Estas herramientas lo ayudarán a navegar por la página más fácilmente, así como a comprender cómo acceder a los nodos y moverse dentro del árbol.
El directorio /usr/share/doc/
Como se mencionó anteriormente, el directorio /usr/share/doc/
almacena la mayoría de la documentación de cada comando que utilice el sistema. Este directorio contiene una carpeta para la mayoría de los paquetes instalados; el nombre del directorio suele ser el nombre del paquete y en ocasiones incluye su versión.
Estos directorios incluyen un archivo README
o readme.txt
que contiene la documentación básica del paquete, junto con el archivo README
. La carpeta también puede contener otros archivos de documentación, como el registro de cambios que incluye el historial del programa en detalle o ejemplos de archivos de configuración para el paquete específico.
La información dentro del archivo README
varía de un paquete a otro. Todos los archivos están escritos en texto plano, por lo tanto, se pueden leer con cualquier editor de texto preferido. El número exacto y los tipos de archivos dependen del paquete. Consulte algunos de los directorios para obtener una descripción general de sus contenidos.
Localizando archivos
El comando locate
Un sistema Linux está construido a partir de numerosos directorios y archivos. Linux tiene muchas herramientas para ubicar un archivo en particular dentro de un sistema. El más rápido es el comando locate
.
locate
busca dentro de una base de datos y luego genera cada nombre que coincida con la cadena brindada:
$ locate note /lib/udev/keymaps/zepto-znote /usr/bin/zipnote /usr/share/doc/initramfs-tools/maintainer-notes.html /usr/share/man/man1/zipnote.1.gz
El comando locate
también admite el uso de comodines y expresiones regulares, por lo tanto, la cadena de búsqueda no tiene que coincidir con el nombre completo del archivo deseado. Aprenderá más sobre las expresiones regulares en un capítulo posterior.
Por defecto, locate
se comporta como si el patrón estuviera rodeado de asteriscos, por lo que locate PATTERN
es lo mismo que locate *PATTERN*
. Esto le permite simplemente proporcionar subcadenas en lugar del nombre del archivo exacto. Puede modificar este comportamiento con las diferentes opciones que puede encontrar explicadas en la página del comando man locate
.
Debido a que locate
está leyendo desde una base de datos, es posible que no encuentre un archivo que haya creado recientemente. La base de datos es administrada por un programa llamado updatedb
. Por lo general, se ejecuta periódicamente, pero si tiene privilegios de root y necesita que la base de datos se actualice de inmediato, puede ejecutar el comando updatedb
en cualquier momento.
El comando find
find
es otra herramienta muy popular que se utiliza para buscar archivos. Este comando tiene un enfoque diferente, en comparación con el comando locate
. El comando find
busca un árbol de directorios de forma recursiva, incluidos sus subdirectorios. find
realiza dicha búsqueda en cada invocación y no mantiene una base de datos como locate
. Al igual que locate
, find
también admite comodines y expresiones regulares.
find
requiere al menos la ruta que debe buscar. Además, se pueden agregar las llamadas expresiones para proporcionar criterios de filtro para indicar que archivos mostrar. Un ejemplo es la expresión -name
que busca archivos con un nombre específico:
~$ cd Downloads ~/Downloads $ find . -name thesis.pdf ./thesis.pdf ~/Downloads $ find ~ -name thesis.pdf /home/carol/Downloads/thesis.pdf
El primer comando find
busca el archivo dentro del directorio actual de Downloads
, mientras que el segundo busca el archivo en el directorio de inicio del usuario.
El comando find
es muy complejo, por lo tanto no será cubierto en el examen de Linux Essentials. Sin embargo, es una herramienta poderosa que es particularmente útil en la práctica.
Ejercicios guiados
-
Use el comando
man
para averiguar qué hace cada comandoComando Descripción ls
Mostrar el contenido de un directorio.
cat
cut
cd
cp
mv
mkdir
touch
wc
passwd
rm
rmdir
more
less
whereis
head
tail
sort
tr
chmod
grep
-
Abra la página de información
ls
e identifique el MENU.-
¿Qué opciones tienes?
-
Encuentre la opción que le permite ordenar la salida por tiempo de modificación.
-
-
Muestre la ruta de los primeros 3 archivos
README
. Use el comandoman
para identificar la opción correcta paralocate
. -
Cree un archivo llamado
test
en su directorio de inicio. Encuentre su ruta absoluta con el comandolocate
. -
¿Lo encontraste de inmediato? ¿Qué tuvo que hacer para que
locate
lo encontrara? -
Busque el archivo de prueba que creó anteriormente, utilizando el comando
find
. ¿Qué sintaxis uso y cuál es la ruta absoluta?
Ejercicios exploratorios
-
Hay un comando en la tabla anterior que no tiene una página
man
. ¿Cuál es y por qué cree que el comando no tiene una página de manual? -
Usando los comandos de la tabla anterior, cree el siguiente árbol de archivos. Los nombres que comienzan con mayúscula son directorios y los que están en minúsculas son archivos.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
-
Muestre en la pantalla el directorio de trabajo actual, incluidas las subcarpetas.
-
Busque dentro del árbol todos los archivos que terminen con un número.
-
Elimine todo el árbol de directorios con un solo comando.
Resumen
En esta lección usted aprendió:
-
¿Cómo obtener ayuda?
-
Usar el comando
man
-
Navegar por la página
man
-
Diferentes secciones de la página
man
-
Usar el comando
info
-
Navegar entre diferentes nodos
-
Buscar archivos dentro del sistema
Comandos utilizados en los ejercicios:
man
-
Muestra una página de manual.
info
-
Muestra una página de información.
locate
-
Busca en la base de datos
locate
archivos con un nombre específico. find
-
Busca en el sistema de archivos nombres que coincidan con un conjunto de criterios seleccionados.
updatedb
-
Actualiza la base de datos
locate
,
Respuestas a los ejercicios guiados
-
Use el comando
man
para averiguar qué hace cada comandoComando Descripción ls
Muestra el contenido de un directorio.
cat
Concatena o ve archivos de texto.
cut
Elimina secciones de un archivo de texto.
cd
Cambia a un directorio diferente.
cp
Copia un archivo.
mv
Mueve un archivo (también se puede usar para cambiar el nombre).
mkdir
Crea un nuevo directorio.
touch
Crea un archivo o modifica la fecha y hora de la última modificación de un archivo existente.
wc
Cuenta el número de palabras, líneas o bytes de un archivo.
passwd
Cambia la contraseña de un usuario.
rm
Elimina un archivo.
rmdir
Elimina un directorio.
more
Visualiza archivos de texto una pantalla a la vez.
less
Visualiza archivos de texto, permite desplazarse hacia arriba y hacia abajo una línea o página a la vez.
whereis
Muestra la ruta del archivo de un programa específico y de manuales relacionados.
head
Muestra las primeras líneas de un archivo.
tail
Muestra las últimas líneas de un archivo.
sort
Ordena un archivo de manera numérica o alfabéticamente.
tr
Traduce o elimina caracteres de un archivo.
chmod
Cambia los permisos de un archivo.
grep
Búsquedas dentro de un archivo.
-
Abra la página de información
ls
e identifique el MENU.-
¿Qué opciones tienes?
-
¿Qué archivos están listados?
-
¿Qué información está listada?
-
Ordenar la salida
-
Detalles sobre el ordenamiento de versiones
-
Formato de salida general
-
Formateando marcas de tiempo de archivo
-
Formateando los nombres de archivo
-
-
Encuentre la opción que le permite ordenar la salida por tiempo de modificación.
-t
or--sort=time
-
-
Muestre la ruta a los primeros 3 archivos
README
. Use el comandoman
para identificar la opción correcta paralocate
.$ locate -l 3 README /etc/alternatives/README /etc/init.d/README /etc/rc0.d/README
-
Cree un archivo llamado
test
en su directorio de inicio. Encuentre su ruta absoluta con el comandolocate
.$ touch test $ locate test /home/user/test
-
¿Lo encontraste de inmediato? ¿Qué tuvo que hacer para que 'locate' lo encontrara?
$ sudo updatedb
The file is newly created, therefore there is no record of it in the database.
-
Busque el archivo de prueba que creó anteriormente, utilizando el comando
find
. ¿Qué sintaxis uso y cuál es la ruta absoluta?$ find ~ -name test
o
$ find . -name test /home/user/test
Respuestas a los ejercicios exploratorios
-
Hay un comando en la tabla anterior que no tiene una página
man
. ¿Cuál es y por qué cree que el comando no tiene una página de manual?El comando
cd
. No tiene una página de manual porque es un comando interno de shell. -
Usando los comandos de la tabla anterior, cree el siguiente árbol de archivos. Los nombres que comienzan con mayúscula son directorios y los que están en minúsculas son archivos.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
La solución es una combinación de comandos
mkdir
ytouch
. -
Muestre en la pantalla el directorio de trabajo actual, incluidas las subcarpetas.
$ ls -R
-
Search within the tree for all files that end with a number.
$ find ~ -name "*[0-9]" $ locate "*[0-9]"
-
Elimine todo el árbol de directorios con un solo comando.
$ rm -r Documents Downloads Test test