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 GNU/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 empezar, 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 proporciona 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 este
tema.
Páginas Man
La mayoría de los comandos
proporcionan una página de manual
(denominada página "man" o "manpage").
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 dicho
comando como argumento del comando man
:
$ 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 del manual pertenece
precisamente a una sección. Sin
embargo, varias secciones pueden
contener páginas man con el mismo
nombre. Tomemos como ejemplo el
comando passwd
, este
comando se puede usar para cambiar la
contraseña de un usuario. Como es un
comando de usuario, su página de man
reside en la sección 1.
Además del comando passwd
,
el archivo de base de datos de
contraseñas /etc/passwd
también tiene una página de man que se
llama passwd
. Como este
archivo es un archivo de
configuración, pertenece a la sección
5. Cuando se hace referencia a una
página de man, la categoría a menudo
se agrega al nombre de la página, como
passwd(1)
o passwd(5)
para dentificar la página man
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 GNU/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. 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 GNU/Linux está construido
a partir de numerosos directorios y
archivos. GNU/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
proporcionada:
$ 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 temas
posteriores.
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 Downloads
,
mientras que el segundo busca el
archivo en el directorio de inicio del
usuario (el directorio de inicio del
usuario se conoce como home
diretory. Este directorio lo
asigna el administrador del sistema
-root- en el momento de crear el
usuario y se le adjudica en ese
momento la propiedad exclusiva del
mismo).
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