Linux Professional Institute
          Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Contáctenos
  • LPI.org
103.1 Lección 1

Tema 101: Arquitectura del Sistema
101.1 Determinar y configurar los ajustes de hardware
  • 101.1 Lección 1
101.2 Arranque del sistema
  • 101.2 Lección 1
101.3 Cambiar los niveles de ejecución / objetivos de arranque y apagar o reiniciar el sistema
  • 101.3 Lección 1
Tema 102: Instalación de Linux y gestión de paquetes
102.1 Diseño del esquema de particionado del disco duro duro
  • 102.1 Lección 1
102.2 Instalar un gestor de arranque
  • 102.2 Lección 1
102.3 Gestión de librerías compartidas
  • 102.3 Lección 1
102.4 Gestión de paquetes Debian
  • 102.4 Lección 1
102.5 Gestión de paquetes RPM y YUM
  • 102.5 Lección 1
102.6 Linux como sistema virtualizado
  • 102.6 Lección 1
Tema 103: Comandos GNU y Unix
103.1 Trabajar desde la línea de comandos
  • 103.1 Lección 1
  • 103.1 Lección 2
103.2 Procesar secuencias de texto usando filtros
  • 103.2 Lección 1
103.3 Administración básica de archivos
  • 103.3 Lección 1
  • 103.3 Lección 2
103.4 Uso de secuencias de texto, tuberías y redireccionamientos
  • 103.4 Lección 1
  • 103.4 Lección 2
103.5 Crear, supervisar y matar procesos
  • 103.5 Lección 1
  • 103.5 Lección 2
103.6 Modificar la prioridad de ejecución de los procesos
  • 103.6 Lección 1
103.7 Realizar búsquedas en archivos de texto usando expresiones regulares
  • 103.7 Lección 1
  • 103.7 Lección 2
103.8 Edición básica de archivos
  • 103.8 Lección 1
Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
104.1 Creación de particiones y sistemas de archivos
  • 104.1 Lección 1
104.2 Mantener la integridad de los sistemas de archivos
  • 104.2 Lección 1
104.3 Controlar el montaje y desmontaje de los sistemas de archivos
  • 104.3 Lección 1
104.5 Administración de los permisos y los propietarios de los archivos
  • 104.5 Lección 1
104.6 Crear y cambiar enlaces duros y simbólicos
  • 104.6 Lección 1
104.7 Encontrar archivos de sistema y ubicar archivos en el lugar correspondiente
  • 104.7 Lección 1
  1. Tema 103: Comandos GNU y Unix
  2. 103.1 Trabajar desde la línea de comandos
  3. 103.1 Lección 1

103.1 Lección 1

Certificación:

LPIC-1

Versión:

5.0

Tema:

103 Comandos GNU y Unix

Objectivo:

103.1 Trabajando en la línea de comandos

Lección:

1 de 2

Introducción

Los recién llegados al mundo de la administración de GNU/Linux y el shell Bash a menudo se sienten un poco perdidos sin la comodidad tranquilizadora de una interfaz GUI. Están acostumbrados a tener acceso con el botón derecho sobre las señales visuales y la información contextual que las utilidades del administrador de archivos gráficos ponen a disposición. Por lo tanto, es importante aprender rápidamente y dominar el conjunto relativamente pequeño de herramientas de línea de comandos a través del cual puede aprovechar instantáneamente todos los datos ofrecidos por su antigua GUI y más.

Obteniendo información del sistema

Mientras observa el rectángulo parpadeante de una línea de comandos, su primera pregunta probablemente será “¿Dónde estoy?” O, más precisamente, “¿Dónde estoy en el sistema de archivos de Linux en este momento y si, por ejemplo, he creado un nuevo archivo, ¿dónde reside?” Lo que busca aquí es su directorio de trabajo actual, y el comando pwd te dirá lo que quieres saber:

$ pwd
/home/frank

Suponiendo que Frank está actualmente conectado al sistema y ahora está en su directorio de inicio: /home/frank/. Si Frank crea un archivo vacío usando el comando touch sin especificar ninguna otra ubicación en el sistema de archivos, el archivo se creará dentro de /home/frank/. Al listar el contenido del directorio usando ls nos mostrará ese nuevo archivo:

$ touch newfile
$ ls
newfile

Además de su ubicación en el sistema de archivos, a menudo querrá información sobre el sistema Linux que está ejecutando. Esto puede incluir el número exacto de lanzamiento de su distribución o la versión del kernel de Linux que está cargada actualmente. La herramienta uname es lo que busca aquí. Y, en particular, uname usando la opción -a (“all”).

$ uname -a
Linux base 4.18.0-18-generic #19~18.04.1-Ubuntu SMP Fri Apr 5 10:22:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Aquí, uname muestra que la máquina de Frank tiene instalada la versión 4.18.0 del kernel de Linux y ejecuta Ubuntu 18.04 en una CPU de 64 bits (x86_64).

Obteniendo información de los comandos

A menudo encontrará documentación que habla sobre comandos de Linux con los que aún no está familiarizado. La línea de comandos en sí ofrece todo tipo de información útil sobre qué hacen los comandos y cómo usarlos de manera efectiva. Quizás la información más útil se encuentra dentro de los muchos archivos del sistema man.

Como regla general, los desarrolladores de Linux escriben archivos man y los distribuyen junto con las utilidades que crean. Los archivos man son documentos altamente estructurados cuyo contenido está dividido intuitivamente por encabezados de sección estándar. Si escribe man seguido del nombre de un comando, obtendrá información que incluye el nombre del comando, una breve sinopsis de uso, una descripción más detallada y algunos antecedentes históricos y de licencia importantes. Aquí hay un ejemplo:

$ man uname
UNAME(1)             User Commands            UNAME(1)
NAME
   uname - print system information
SYNOPSIS
   uname [OPTION]...
DESCRIPTION
   Print certain system information.  With no OPTION, same as -s.
   -a, --all
      print  all information, in the following order, except omit -p
      and -i if unknown:
   -s, --kernel-name
      print the kernel name
   -n, --nodename
      print the network node hostname
   -r, --kernel-release
      print the kernel release
   -v, --kernel-version
      print the kernel version
   -m, --machine
      print the machine hardware name
   -p, --processor
      print the processor type (non-portable)
   -i, --hardware-platform
      print the hardware platform (non-portable)
   -o, --operating-system
      print the operating system
   --help display this help and exit
   --version
      output version information and exit
AUTHOR
   Written by David MacKenzie.
REPORTING BUGS
   GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
   Report uname translation bugs to
   <http://translationproject.org/team/>
COPYRIGHT
   Copyright©2017 Free Software Foundation, Inc. License  GPLv3+: GNU
   GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
   This is free software: you are free to change and redistribute it.
   There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
   arch(1), uname(2)
   Full documentation at: <http://www.gnu.org/software/coreutils/uname>
   or available locally via: info '(coreutils) uname invocation'
GNU coreutils 8.28       January 2018             UNAME(1)

man solo funciona cuando se le proporciona un nombre de comando exacto. Sin embargo, si no está seguro del nombre del comando que está buscando, puede usar el comando apropos para buscar a través de los nombres y descripciones de la página man. Suponiendo, por ejemplo, que no puede recordar que es uname la que le dará su versión actual del kernel de Linux, puede pasar la palabra kernel a apropros. Probablemente obtendrá muchas líneas de salida, incluyendo estas:

$ apropos kernel
systemd-udevd-kernel.socket (8) - Device event managing daemon
uname (2)            - get name and information about current kernel
urandom (4)          - kernel random number source devices

Si no necesita la documentación completa de un comando, puede obtener rápidamente datos básicos sobre un comando usando type. Este ejemplo usa type para consultar cuatro comandos separados a la vez. Los resultados nos muestran que cp (“copy”) es un programa que reside en /bin/cp y que kill (cambiar el estado de un proceso en ejecución) es un shell incorporado, lo que significa que es en realidad una parte del shell Bash:

$ type uname cp kill which
uname is hashed (/bin/uname)
cp is /bin/cp
kill is a shell builtin
which is /usr/bin/which

Tenga en cuenta que, además de ser un comando binario regular como cp, uname también es “hash”. Esto se debe a que Frank recientemente utilizó "uname" y, para aumentar la eficiencia del sistema, se agregó a una tabla hash para hacer más accesible la próxima vez que se ejecute. Si ejecutara type uname después de un arranque del sistema, Frank encontraría que type una vez más describe uname como un binario regular.

Note

Una forma más rápida de limpiar la tabla hash es ejecutar el comando hash -d.

A veces, especialmente cuando se trabaja con scripts automatizados, necesitará una fuente de información más simple sobre un comando. El comando which, el cual con type visualizamos anteriormente, no devolverá nada más que la ubicación absoluta de un comando. Este ejemplo localiza los comandos uname y which.

$ which uname which
/bin/uname
/usr/bin/which
Note

Si desea mostrar información sobre los comandos “builtin”, puede usar el comando help.

Usando su historial de comandos

A menudo investigará cuidadosamente el uso adecuado de un comando y lo ejecutará con éxito junto con un complicado rastro de opciones y argumentos. Pero, ¿qué sucede unas semanas más tarde cuando necesita ejecutar el mismo comando con las mismas opciones y argumentos pero no puede recordarlo? En lugar de tener que comenzar su investigación nuevamente desde cero, a menudo podrá recuperar el comando original usando history.

Al escribir history, aparecerán los comandos más recientes que haya ejecutado, los cuáles aparecerán en último lugar. Puede buscar fácilmente a través de esos comandos canalizando una cadena específica al comando grep. Este ejemplo buscará cualquier comando que incluya el texto bash_history:

$ history | grep bash_history
1605 sudo find /home -name ".bash_history" | xargs grep sudo

Aquí se devuelve un solo comando junto con su número de secuencia, 1605.

Y hablando de bash_history, ese es en realidad el nombre de un archivo oculto que debe encontrar dentro del directorio de inicio de su usuario. Dado que es un archivo oculto (designado como tal por el punto que precede a su nombre de archivo), solo será visible al enumerar el contenido del directorio usando ls con el argumento -a:

$ ls /home/frank
newfile
$ ls -a /home/frank
.  ..  .bash_history  .bash_logout  .bashrc  .profile  .ssh  newfile

¿Qué hay en el archivo .bash_history? Eche un vistazo por sí mismo: verá cientos y cientos de sus comandos más recientes. Sin embargo, es posible que se sorprenda al descubrir que faltan algunos de sus comandos más recientes. Esto se debe a que, aunque se agregan instantáneamente a la base de datos dinámica history, las últimas adiciones a su historial de comandos no se escriben en el archivo .bash_history hasta que salga de la sesión.

Puede aprovechar el contenido de history para hacer que su experiencia en la línea de comandos sea mucho más rápida y eficiente usando las teclas de flecha arriba y abajo en su teclado. Al presionar la tecla hacia arriba varias veces se completará la línea de comandos con comandos recientes. Cuando llegue al que desea ejecutar por segunda vez, puede ejecutarlo presionando kbd:[Enter]. Esto facilita la recuperación y, si lo desea, la modificación de comandos varias veces durante una sesión de shell.

Ejercicios Guiados

  1. Utilice el sistema man para determinar cómo decirle a apropos que envíe un comando breve para que solo envíe un mensaje corto de uso y luego salga.


  2. Utilice el sistema man para determinar qué licencia de copyright se asigna al comando grep.


Ejercicios Exploratorios

  1. Identifique la arquitectura de hardware y la versión del kernel de Linux que se utiliza en su computadora en un formato de salida fácil de interpretar.


  2. Imprima las últimas veinte líneas de la base de datos dinámica history y el archivo .bash_history para compararlos.


  3. Utilice la herramienta apropos para identificar la página man donde encontrará el comando que necesitará para mostrar el tamaño de un dispositivo de bloque físico conectado en bytes en lugar de megabytes o gigabytes.


Resumen

En esta lección aprendimos:

  • Cómo obtener información sobre la ubicación de su sistema de archivos y la pila de software del sistema operativo.

  • Cómo encontrar ayuda para el uso de comandos.

  • Cómo identificar la ubicación del sistema de archivos y el tipo de comandos binarios.

  • Cómo encontrar y reutilizar comandos ejecutados previamente.

Los siguientes comandos se discutieron en esta lección:

pwd

    Imprime la ruta al directorio de trabajo actual.

uname

    Imprime la arquitectura de hardware de su sistema, la versión del kernel de Linux, la distribución y la versión de distribución.

man

    Accede a los archivos de ayuda que documentan el uso de comandos.

type

    Imprimer la ubicación del sistema de archivos y el tipo de uno o más comandos.

which

    Imprime la ubicación del sistema de archivos para un comando.

history

    Imprime o reutiliza comandos que hayan ejecutado previamente.

Respuestas a los ejercicios guiados

  1. Utilice el sistema man para determinar cómo decirle a apropos que envíe un comando breve para que solo envíe un mensaje corto de uso y luego salga.

    Ejecute man apropos y desplácese hacia abajo por la sección “Options” hasta llegar al párrafo --usage.

  2. Utilice el sistema man para determinar qué licencia de copyright se asigna al comando grep.

    Ejecute man grep y desplácese hacia abajo a la sección “Copyright” del documento. Tenga en cuenta que el programa utiliza los derechos de autor de la Free Software Foundation.

Respuestas a ejercicios exploratorios

  1. Identifique la arquitectura de hardware y la versión del kernel de Linux que se utiliza en su computadora en un formato de salida fácil de Interpretar.

    Ejecute man uname, lea la sección “Description” e identifique los argumentos del comando que se mostrarán solo los resultados exactos que desea. Observe cómo -r le dará la versión del kernel y -i le proporcionará una plataforma de hardware.

    $ man uname
    $ uname -v
    $ uname -i
  2. Imprima las últimas veinte líneas de la base de datos dinámica history y el archivo .bash_history para compararlos.

    $ history 20
    $ head -n 20 .bash_history
  3. Utilice la herramienta apropos para identificar la página man donde encontrará el comando que necesitará para mostrar el tamaño de un dispositivo de bloque físico conectado en bytes en lugar de megabytes o gigabytes.

    Una forma sería ejecutar apropos con la cadena block, leer los resultados, observar que lsblk enumera los dispositivos de bloque (y, por lo tanto, sería la herramienta más adecuada para nuestras necesidades), ejecutar man lsblk, desplácese por la sección “Description” y observe que -b mostrará el tamaño del dispositivo en bytes. Finalmente, ejecute lsblk -b para visualizar la salida.

    $ apropos block
    $ man lsblk
    $ lsblk -b

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Siguiente lección

103.1 Trabajar desde la línea de comandos (103.1 Lección 2)

Leer la próxima lección

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 200,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© Copyright 1999-2020 The Linux Professional Institute Inc. Todos los derechos reservados.