Última actualización: septiembre 15, 2022
4.2.7 Práctica de laboratorio: Familiarizarse con el Shell de Linux (versión para el instructor)
Introducción
En esta práctica de laboratorio, utilizarán la línea de comandos de Linux para administrar archivos y carpetas, y para realizar algunas tareas administrativas básicas.
Parte 1: Conceptos básicos de Shell
Parte 2: Copiar, Eliminar y Mover archivos
Equipo recomendado
- Máquina virtual CyberOps Workstation
Instrucciones
Parte 1: Conceptos básicos del Shell
Shell es el término que se utiliza para hacer referencia al intérprete de comandos de Linux. También conocido como Terminal, Línea de comandos o Símbolo del sistema, el shell es un método muy versátil para interactuar con una computadora Linux.
Paso 1: Acceder a la línea de comandos
a. Inicien sesión en la VM CyberOps Workstation con analyst como usuario y cyberops como contraseña. En toda esta práctica de laboratorio se utiliza la cuenta analyst como el usuario ejemplo.
b. Para acceder a la línea de comando, hagan clic en el icono del terminal que se encuentra en el Dock, en la parte inferior de la pantalla de la VM. Se abrirá el emulador de terminales.
Paso 2: Mostrar páginas del manual desde la línea de comandos.
Pueden mostrar la ayuda de la línea de comandos si utilizan el comando man. Una página man, abreviatura de página manual, es una documentación integrada de los comandos Linux. Una página man proporciona información detallada sobre un comando y todas sus opciones disponibles.
a. Para obtener más información sobre la página man, escriban:
[analyst@secOps ~]$ man
Mencionen algunas de las secciones que se incluyen en una página man.
Secciones : name , description,synopsis,examples,overviem,defaults,options
b. Escriba q para salir de la página man.
c. Utilizar el comando man para aprender más acerca de el comando cp :
[analyst@secOps ~]$ man cp
¿Cuál es la función del comando cp?
Permite copiar archivos y directorios
¿Qué comando utilizaría para encontrar más información sobre el comando pwd? ¿Cuál es la función del comando pwd?
Las opciones de trabajo ,referencia y todos los tipos que trabajamos
Paso 3: Crear y cambiar directorios
En este paso, utilizará los comandos cambiar directorio (cd), crear directorio (mkdir) y enumerar directorio (ls).
Nota: Directorio es otra palabra para carpeta. Los términos directorio y carpeta se utilizan indistintamente en esta práctica de laboratorio.
a. Escriban pwd en el cursor.
[analyst@secOps ~]$ pwd /home/analyst
¿Cuál es el directorio actual?
Home/analyst
b. Diríjanse al directorio /home/analyst si no están allí. Escriban cd /home/analyst
[analyst@secOps ~]$ cd /home/analyst
c. Escriban ls -l en el símbolo del sistema para generar una lista de los archivos y las carpetas presentes en la carpeta actual. La opción -l, que significa lista, muestra el tamaño, los permisos, la titularidad y la fecha de creación del archivo, entre otras propiedades.
[analyst@secOps ~]$ ls -l total 20 drwxr-xr-x 2 analyst analyst 4096 Mar 22 2018 Desktop drwxr-xr-x 3 analyst analyst 4096 Apr 2 14:44 Downloads drwxr-xr-x 9 analyst analyst 4096 Jul 19 2018 lab.support.files drwxr-xr-x 2 analyst analyst 4096 Mar 21 2018 second_drive -rw-r--r-- 1 analyst analyst 255 Apr 17 16:42 space.txt
d. En el directorio actual, utilizar el comando mkdir para crear tres nuevas carpetas: cyops_folder1, cyops_folder2, y cyops_folder3. Escriban mkdir cyops_folder1 y presionen Intro. Repita estos pasos para crear cyops_folder2 y cyops_folder3.
[analyst@secOps ~]$ mkdir cyops_folder1 [analyst@secOps ~]$ mkdir cyops_folder2 [analyst@secOps ~]$ mkdir cyops_folder3 [analyst@secOps ~]$
e. Escriban ls -l para verificar que se hayan creado las carpetas:
[analyst@secOps ~]$ ls -l total 32 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:01 cyops_folder1 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:02 cyops_folder2 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:02 cyops_folder3 drwxr-xr-x 2 analyst analyst 4096 Sep 26 2014 Desktop drwx------ 3 analyst analyst 4096 Jul 14 11:28 Downloads drwxr-xr-x 8 analyst analyst 4096 Jul 25 16:27 lab.support.files drwxr-xr-x 2 analyst analyst 4096 Mar 3 15:56 second_drive -rw-r--r-- 1 analyst analyst 254 Aug 16 13:38 space.txt
f. Escriban cd /home/analyst/cyops_folder3 en el símbolo del sistema y presionen Intro.
[analyst@secOps ~]$ cd /home/analyst/cyops_folder3 [analyst@secOps cyops_folder3]$
¿En qué carpeta está ahora?
cyops_folder3
Nota: En el indicador [analyst@secOps ~]$ de arriba, el símbolo ~ representa el directorio de inicio del usuario actual. En este ejemplo, el directorio de inicio del usuario actual es /home/analyst. Después del comando cd /home/analyst/cyops_folder3, ahora el directorio de inicio del usuario actual es /home/analyst/cyops_folder3.
Nota: $ (el signo de dólar) indica un privilegio de usuario común. Si se muestra un ‘#’ (signo de hashtag o cardinal) en el indicador, se indica un privilegio elevado (usuario root).
Nota: Si bien estos símbolos, convenciones y conceptos centrales son siempre los mismos, el indicador de una ventana del terminal de Linux permite amplias posibilidades de personalización. Por lo tanto, la estructura del cursor que se ve en la Maquina Virtual CyberOps Worstation probablemente sea diferente del cursor de otras instalaciones de Linux.
Desafío: Escribir el comando cd ~ y describir qué sucede.
¿Por qué sucedió esto?
Porque hemos regresado a la raíz del usuario común. (Retorna)
g. Utilicen el comando mkdir para crear una carpeta nueva de nombre cyops_folder4 dentro de la carpeta cyops_folder3:
[analyst@secOps ~]$ mkdir /home/analyst/cyops_folder3/cyops_folder4 [analyst@secOps ~]$
h. Utilice el comando ls -l para verificar que se haya creado la carpeta.
analyst@secOps ~]$ ls –l /home/analyst/cyops_folder3 total 4 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:04 cyops_folder4
i. Hasta este punto, hemos utilizado rutas completas o absolutas (full path or absolute path). El término «ruta absoluta»(absolute path) es el que se utiliza para hacer referencia a rutas que siempre comienzan en el directorio root(/). También se puede trabajar con rutas relativas. Las rutas relativas reducen la cantidad de texto que se debe escribir. Para comprender cómo funcionan las rutas relativas, tenemos que entender los directorios . y .. (punto y punto doble). En el directorio cyops_folder3, emitan un ls –la:
analyst@secOps ~]$ ls –la /home/analyst/cyops_folder3 total 12 drwxr-xr-x 3 analyst analyst 4096 Aug 16 15:04 . drwxr-xr-x 20 analyst analyst 4096 Aug 16 15:02 .. drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:04 cyops_folder4
La opción -a le indica a ls que debe mostrar todos los archivos. Observe los listados . y .. que muestra ls.
El sistema operativo utiliza estos listados para rastrear el directorio actual (.) y el superior en el árbol (..) Puede ver cómo se utilizan los directorios . y .. al emplear el comando cd para cambiar de directorio. Utilizar el comando cd para pasar de un directorio al . no genera ningún cambio de directorio visible porque . apunta a su propio directorio.
j. Pasen del directorio actual a /home/analyst/cyops_folder3:
[analyst@secOps ~]$ cd /home/analyst/cyops_folder3 [analyst@secOps cyops_folder3]$
k. Escriban cd ..
[analyst@secOps cyops_folder3]$ cd . [analyst@secOps cyops_folder3]$
¿Qué ocurre?
se mantiene igual
l. Al cambiar al directorio .., se subirá un nivel en el árbol. Este directorio también se conoce como directorio matriz. Escriban cd …
[analyst@secOps cyops_folder3]$ cd .. [analyst@secOps ~]$
¿Qué ocurre?
Ha regresado a la raíz de usuario.
¿Cuál sería el directorio actual si emitiera el comando cd .. en [analyst@secOps ~]$?
/home
¿Cuál sería el directorio actual al emitir el comando cd.. en [analyst@secOps home]$?
Estando en ‘cd’ y el directorio es ‘/’
¿Cuál sería el directorio actual al emitir el comando cd.. en [analyst@secOps /]$?
Mismo directorio: ‘/’
Paso 4:
Paso 5: Redireccionar salidas
Otro potente operador de la línea de comandos de Linux se conoce como redirect. Representado por el símbolo >, este operador permite redireccionar la salida de un comando a otra ubicación que no sea la ventana del terminal actual (la opción predeterminada).
a. Utilicen el comando cd para pasar al directorio /home/analyst/ (~):
[analyst@secOps /]$ cd /home/analyst/ [analyst@secOps ~]$
b. Utilicen el comando echo para hacer echo de un mensaje. Como no se definió ninguna salida, la salida de echo se emitirá a la ventana del terminal actual:
analyst@secOps ~]$ echo This is a message echoed to the terminal by echo. This is a message echoed to the terminal by echo.
c. Utilicen el operador > para redireccionar la salida de echo a un archivo de texto y no a la pantalla:
analyst@secOps ~]$ echo This is a message echoed to the terminal by echo. > some_text_file.txt
No se mostró ninguna salida en la pantalla.
¿Es eso lo que se espera? Explique.
Se ha hecho un direccionamiento a un archivo de texto para guardarlo.
d. Observar que, incluso aunque el archivo some_text_file.txt no existe, se le creó automaticamente para recibir la salida generada por echo. Utilicen el comando ls -l para verificar si se creó efectivamente el archivo:
[analyst@secOps ~]$ ls –l some_text_file.txt -rw-r--r-- 1 analyst analyst 50 Feb 24 16:11 some_text_file.txt
e. Utilicen el comando cat para mostrar el contenido de archivo de texto some_text_file.txt:
[analyst@secOps ~]$ cat some_text_file.txt This is a message echoed to the terminal by echo.
f. Vuelvan a utilizar el operador > para redirigir otra salida de echo al archivo de texto some_text_file.txt:
analyst@secOps ~]$ echo This is a DIFFERENT message, once again echoed to the terminal by echo. > some_text_file.txt
g. Nuevamente, utilicen el comando cat para mostrar el contenido del archivo de texto some_text_file.txt:
[analyst@secOps ~]$ cat some_text_file.txt This is a DIFFERENT message, once again echoed to the terminal by echo.
¿Qué le sucedió al archivo de texto? Explique.
Apareció el nuevo mensaje que hemos guardado en el archivo de texto
Paso 6: Redireccionar y anexar a un archivo de texto
a. En forma similar a lo que ocurre con el operador >, >> también permite redireccionar datos a archivos. La diferencia es que >> anexa datos al final del archivo en cuestión, y mantiene el contenido actual intacto. Para anexar un mensaje a some_text_file.txt, emitir el siguiente comando:
[analyst@secOps ~]$ echo This is another line of text. It will be APPENDED to the output file. >> some_text_file.txt
b. Utilizar el comando cat para mostrar el contenido del archivo de texto some_text_file.txt una vez más:
[analyst@secOps ~]$ cat some_text_file.txt This is a DIFFERENT message, once again echoed to the terminal by echo. This is another line of text. It will be APPENDED to the output file.
¿Qué le sucedió al archivo de texto? Explique.
muestran 2 ultimos mensajes que se ha ingresado en el archivo de texto
Paso 7: Trabajar con archivos ocultos en Linux
a. En Linux, los archivos cuyos nombres comienzan con un ‘.’ (punto) no se muestran por defecto. Si bien los archivos . no son especiales en absoluto, se los denomina archivos ocultos debido a esta característica. Ejemplos de archivos ocultos: .file5, .file6, .file7.
Nota: No confundan los archivos . con el símbolo que indica el directorio actual: “.”. Los nombres de los archivos ocultos comienzan con un punto, seguido por más caracteres mientras que el directorio . es un directorio oculto compuesto solo por un punto.
b. Utilicen ls -l para mostrar los archivos almacenados en el directorio de inicio de analyst.
[analyst@secOps ~]$ ls –l
¿Cuántos archivos aparecen en la lista?
12 archivos
c. Utilicen el comando ls -la para mostrar todos los archivos presentes en el directorio de inicio de analyst, incluidos los ocultos.
[analyst@secOps ~]$ ls –la
¿Cuántos archivos extras aparecen más que antes? Explique.
Aparece 19 archivos y 7 más que antes , que muestran los archivos ocultos
¿Es posible ocultar directorios completos agregando un punto antes de su nombre también? ¿Hay algún directorio en el resultado de ls -la de arriba?
Segun nuestra ventana, los archivos ocultos tienen un «.» delante. Si los directorios muestran «.
Indique tres ejemplos de archivos ocultos que aparecen en el resultado de ls -la de arriba.
bashrc,.cache,.profile.
d. Escriban el comando man ls en el cursor para obtener más información sobre el comando ls.
[analyst@secOps ~]$ man ls
e. Utilizar la tecla de la flecha hacia abajo (una línea a la vez) o la barra espaciadora (una página a la vez) para desplazar la pagina y localizar la opción -a antes utilizada y leer su descripción para familiarizar el comando ls -a.
Parte 2: Copiar, eliminar y mover archivo
Paso 1: Copiar archivos
a. El comando cp se utiliza para copiar archivos en cualquier lugar del sistema de archivos local. Cuando se utiliza cp, se crea una copia nueva del archivo y se la coloca en la ubicación especificada; el archivo original permanece intacto. El primer parámetro es el archivo de origen y el segundo es el destino. Emita el siguiente comando para copiar some_text_file.txt del directorio de inicio a la carpeta cyops_folder2:
[analyst@secOps ~]$ cp some_text_file.txt cyops_folder2/
Identifique los parámetros presentes en el comando cp de arriba.
¿Cuáles son los archivos de origen y de destino? (Utilicen rutas completas para representar los parámetros)
origen: /home/sysadmin destino:
/home/sysadmin/cyops_folder2
b. Utilice el comando ls para verificar que some_text_file.txt ahora esté en cyops_folder2:
[analyst@secOps ~]$ ls cyops_folder2/ some_text_file.txt
c. Utilicen el comando ls para verificar que some_text_file.txt también esté en el directorio de inicio:
[analyst@secOps ~]$ ls -l total 36 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:01 cyops_folder1 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:11 cyops_folder2 drwxr-xr-x 3 analyst analyst 4096 Aug 16 15:04 cyops_folder3 drwxr-xr-x 2 analyst analyst 4096 Sep 26 2014 Desktop drwx------ 3 analyst analyst 4096 Jul 14 11:28 Downloads drwxr-xr-x 8 analyst analyst 4096 Jul 25 16:27 lab.support.files drwxr-xr-x 2 analyst analyst 4096 Mar 3 15:56 second_drive -rw-r--r-- 1 analyst analyst 142 Aug 16 15:09 some_text_file.txt -rw-r--r-- 1 analyst analyst 254 Aug 16 13:38 space.txt
Paso 2: Eliminar archivos y directorios
a. Utilice el comando rm para eliminar archivos. Emitan el siguiente comando para quitar el archivo some_text_file.txt del directorio de inicio. Luego se debe utilizar el comando ls para mostrar que el archivo some_text_file.txt fue retirado del directorio de inicio:
[analyst@secOps ~]$ rm some_text_file.txt [analyst@secOps ~]$ ls -l total 32 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:01 cyops_folder1 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:11 cyops_folder2 drwxr-xr-x 3 analyst analyst 4096 Aug 16 15:04 cyops_folder3 drwxr-xr-x 2 analyst analyst 4096 Sep 26 2014 Desktop drwx------ 3 analyst analyst 4096 Jul 14 11:28 Downloads drwxr-xr-x 8 analyst analyst 4096 Jul 25 16:27 lab.support.files drwxr-xr-x 2 analyst analyst 4096 Mar 3 15:56 second_drive -rw-r--r-- 1 analyst analyst 254 Aug 16 13:38 space.txt
b. En Linux, los directorios se ven como un tipo de archivo. Por ese motivo, el comando rm también se utilizar para eliminar directorios, pero se debe emplear la opción -r (recursivo). Observar que todos los archivos y otros directorios dentro de un directorio determinado también son eliminados cuando se elimina un directorio matriz con la opción -r. Emitan el siguiente comando para eliminar la carpeta cyops_folder1 y su contenido:
[analyst@secOps ~]$ rm –r cyops_folder1 [analyst@secOps ~]$ ls -l total 28 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:11 cyops_folder2 drwxr-xr-x 3 analyst analyst 4096 Aug 16 15:04 cyops_folder3 drwxr-xr-x 2 analyst analyst 4096 Sep 26 2014 Desktop drwx------ 3 analyst analyst 4096 Jul 14 11:28 Downloads drwxr-xr-x 8 analyst analyst 4096 Jul 25 16:27 lab.support.files drwxr-xr-x 2 analyst analyst 4096 Mar 3 15:56 second_drive -rw-r--r-- 1 analyst analyst 254 Aug 16 13:38 space.txt
Paso 3: Mover archivos y directorios
a. Mover archivos es similar a copias archivos. La diferencia es que al mover un archivo se lo quita de su ubicación original. Utilice los comandos mv para mover archivos a cualquier lugar del sistema de archivos local. Al igual que con los comandos cp, el comando mv también requiere parámetros de origen y de destino. Emitan el siguiente comando para mover some_text_file.txt de /home/analyst/cyops_folder2 de regreso al directorio de inicio:
[analyst@secOps ~]$ mv cyops_folder2/some_text_file.txt . [analyst@secOps ~]$ ls –l cyops_folder2/ total 0 [analyst@secOps ~]$ ls –l /home/analyst/ total 32 drwxr-xr-x 2 analyst analyst 4096 Aug 16 15:13 cyops_folder2 drwxr-xr-x 3 analyst analyst 4096 Aug 16 15:04 cyops_folder3 drwxr-xr-x 2 analyst analyst 4096 Sep 26 2014 Desktop drwx------ 3 analyst analyst 4096 Jul 14 11:28 Downloads drwxr-xr-x 8 analyst analyst 4096 Jul 25 16:27 lab.support.files drwxr-xr-x 2 analyst analyst 4096 Mar 3 15:56 second_drive -rw-r--r-- 1 analyst analyst 142 Aug 16 15:11 some_text_file.txt -rw-r--r-- 1 analyst analyst 254 Aug 16 13:38 space.txt
¿Que comando puede utilizar para completar la tarea?
Reflexión
¿Cuáles son las ventajas de utilizar la línea de comandos de Linux?
Mayor velocidad , seguridad, mayor control de las aplicaciones.