Lab Comandos Avanzados

También podría gustarte

Está en la página 1de 14

GI101 – LINUX FUNDAMENTALS

_______________________________________________________________________________________________

GI101 – DIPLOMADO EN TECNOLOGÍAS DE CLOUD


NETWORKING

LABORATORIO NÚMERO: 2 SEMESTRE: 2017-2

TEMA: Fundamentos de Linux

OBJETIVOS:
 Familiarizarse con los comandos más importantes de Linux.

ACTIVIDADES PARA REALIZAR:


Actividades Duración aproximada

1 Uso de comandos avanzados de Linux

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 1


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

PARTE I: FUNDAMENTOS TEÓRICOS


1. Comandos Avanzados

Uso de Pipes
Una tubería o pipe es la combinación de varios comandos ejecutándose al simultáneo.
Esto se realiza utilizando el carácter de barra vertical “|”.

$ ls | more El listado de los archivos en el directorio irá al modo de


visualización “more”.

cat
Concatena y muestra archivos.
$ cat prueba.txt Permite ver el contenido de un archivo sin la necesidad de un
editor.

Para concatenar varios archivos dentro de un mismo fichero:


$ cat archivo1.txt archivo2.txt > prueba.txt

grep, awk
Buscan cadenas de caracteres en archivos.
$ grep “palabra” prueba.txt

grep –i Considera idénticas las mayúsculas y las minúsculas.


grep –A n Muestra las n líneas siguientes de texto después del carácter a buscar.
grep –n Acompañando a las líneas que concuerdan con el caracter a buscar se
muestra en el número de línea en el cual se encuentran.
grep –v Lista las líneas que no contengan el carácter especificado.

$ awk ‘/palabra/’ prueba.txt

El comando awk divide cada línea de entrada en campos. Cada campo estará delimitado
por espacios. Cada uno de estos campos o columnas se identifica como $1, $2, etc.

Para imprimir la primera columna del archivo prueba.txt:


$ awk ‘{print $1}’ prueba.txt

Para imprimir la primera columna de todas las líneas que contengan “palabra” en el
archivo prueba.txt.
$ awk ‘/palabra/ {print $1}’ prueba.txt

Además puede utilizarse el comando grep para buscar un carácter o cadena de


caracteres, e imprimir diferentes campos o columnas de las líneas que contengan el
carácter buscado.
$ grep “palabra” prueba.txt | awk ‘{print $1, $3}’

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 2


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

cron

Es un demonio (proceso en segundo plano) que se ejecuta desde el mismo instante en el


que arranca el sistema. Comprueba si existe alguna tarea (job) para ser ejecutado de
acuerdo con la hora configurada en el sistema.

crontab

Un archivo de texto. Por simple que parezca la definición es así. Aunque es verdad que
se trata de un archivo con contenido especial. Posee una lista con todos los scripts a
ejecutar.

Para editar nuestro archivo de texto


$ crontab -e

Luego de ejecutar el comando nos tendremos que añadir tareas con la siguiente
estructura

Cinco asteriscos y el comando a ejecutar. Cada uno de los 5 asteriscos significa:

 m: minuto
 h: hora
 dom: día de la mes
 mon: mes
 dow: día de la semana

Para listar las tareas existentes en el crontab del usuario


$ crontab -l

Borrar el crontab que está configurado


$ crontab –d

more, less, tail


Los comandos more, less y tail al igual que el comando cat permiten visualizar el
contenido de un archivo de texto.

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 3


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

El comando more es similar al comando cat. Para pasar a la siguiente página usar la
tecla <espacio>.
$ more prueba.txt

Para pasar de página en el comando less se utiliza las teclas <AvPág> y <RePág>. Para
interrumpir la visualización se debe presionar la tecla <q>.
$ less prueba.txt

Por defecto tail muestra las ultimas 10 líneas de un archivo.


$ tail prueba.txt

tail –n Se puede mostrar las últimas “n” líneas de un archivo.

vi, emacs
Son editores de texto, además del ya mencionado nano. Se puede crear y modificar
archivos de texto.

$ vi archivo.txt

Presionando la tecla <i> se pasa al modo inserción de caracteres.


:q Salir del editor (sin guardar la información)
:q! Obliga al editor a cerrarse sin guardar la información (incluso si se realizaron
cambios en el documento)
:wq Guarda el documento y cierra el editor
x Elimina el carácter que está en ese momento bajo el cursor
dd Elimina la línea que está en ese momento bajo el cursor

emacs
$ emacs archivo.txt

Ctrl x Ctrl f Abrir un nuevo archivo.


Ctrl x Ctrl s Guardar archivo.
Ctrl x Ctrl c Salir de emacs.

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 4


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

EXPERIENCIA # 1:
Experiencia # 1:
Puntaje:
Tiempo de duración: 120 min.

Ejercicio 1
Utilizando emacs crear un archivo de texto file1.txt, el archivo debe contener lo
siguiente:

1 Juan Perez Cliente


2 Ana Quiroz Empleado
3 Jose Lopez Proveedor
4 Marco Suarez Cliente

En el recuadro indicar el comando y parámetros utilizados:

Ejercicio 2
Crear un archivo de nombre file2.txt utilizando el editor vi, dicho archivo debe contener
lo siguiente:

5 Diana Torres Proveedor


6 Jorge Diaz Empleado
7 Jose Leon Cliente
8 Diego Flores Cliente

Concatenar file1 (creado en Ejercicio 1) y file2 en file3.txt.


En el recuadro indicar los comandos utilizados y mostrar una captura de pantalla del
resultado:

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 5


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

Ejercicio 3
Buscar en el archivo file3.txt todos los “clientes” e imprimir en pantalla solo su nombre
y apellido.
En el recuadro indicar los comandos y parámetros utilizados, y mostrar una captura de
pantalla del resultado obtenido:

Ejercicio 4
Crear un directorio de prueba con el comando mkdir. Una vez dentro de el mismo, genere un
script con extensión .sh .

El script deber tener la siguiente estructura:

#! /bin/bash

echo “$(date) todo bien por aquí” >> crontest.txt

Dar los permisos necesarios para que el script sea ejecutable.

Utilizando el comando crontab, ingresa la siguiente lista de tareas:

 El script deberá ejecutarse automáticamente a las 13:10 de los días sábados


 El script deberá ejecutarse automáticamente a las 12:00 pm el primer domingo de
cada mes
 El script deberá ejecutarse cada minuto

Nota:
Al ingresar el comando de ejecución del script en la estructura de tareas del archivo crontab
tenga en cuenta la ruta relativa o absoluta de su script para que este se ejecute
correctamente.

Teniendo en cuenta la última tarea, indique donde se generó el archivo de texto. Cambie el
script para que el archivo se genere dentro de su directorio de prueba.

Adjunte comandos y capturas de pantallas.

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 6


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

Ejercicio 5
En el directorio creado anteriormente crear un script con extension .sh

El script deber tener la siguiente estructura:

Dar los permisos necesarios para que el script sea ejecutable.

Ejecute y explique que hace el script.

Utilizando el comando crontab, ingresa la siguiente lista de tareas:

 El script deberá ejecutarse cada minuto

Teniendo en cuenta la última tarea, indique si pudo visualizar o no el resultado obtenido al


ejecutar el script anteriormente y ¿Por qué?

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 7


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

Con ayuda del comando tty, modifique la tarea ingresada en la estructura crontab para que se
muestre en su consola actual.

Adjunte comandos y capturas de pantallas.

Ejercicio 6
Crear un archivo con el siguiente texto:

1, 41.60, 12.08, N101, -57, Piso_1


2, 41.60, 11.03, N204, -91, Piso_2
3, 41.60, 9.97, N211, 0, Piso_2
4, 41.60, 8.92, N402, 0, Piso_4
5, 41.60, 7.86, N311, 0, Piso_3
6, 41.60, 6.81, N413, -98.5, Piso_4
7, 41.60, 5.75, N103, 0, Piso_1
8, 40.44, 5.74, N111, 0, Piso_1
9, 40.44, 6.80, N204, 0, Piso_2
10, 40.44, 7.85, N214, -96, Piso_2

En este archivo se observan 10 puntos, sus coordenadas, el aula en el que están ubicadas y en
que piso están.
Mostrar en pantalla únicamente los puntos que se encuentren en el “Piso 1” y el “Piso 2”,
excepto el aula “N204”.
Indicar los comandos utilizados y mostrar una captura de pantalla con el resultado completo.

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 8


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

Ejercicio 7
Mostrar solo los nombres y tamaños de los archivos en el directorio actual (carpeta de
trabajo).
Indicar los comandos utilizados:

Ejercicio 8
Mostrar solo los nombres y tamaños de los archivos en el directorio actual (carpeta de trabajo)
de los archivos de texto.
Indicar los comandos utilizados:

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 9


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

MISCELÁNEA DE COMANDOS
find
El comando find permite encontrar archivos, utilizando diversas técnicas. En principio,
si se le pasa como parámetro únicamente una determinada ruta, por ejemplo:
find /home/user, el comando buscará todos los archivos y directorios que se encuentren a
partir de sa ruta. Utilizando algunos otros parámetros es posible buscar los archivos por
diversos criterios.
find . - name "hola.txt" encuentra todos los archivos llamados hola.txt que se encuentren a
partir del directorio actual. Las comillas no son obligatorias, pero son recomendables si se
quieren usar opciones más complejas.
find -size 50k busca los archivos que ocupan 50 kilobytes a partir directorio actual.
find -size 20c buscará los archivos que ocupen 20 bytes.
find -size 5b buscará los archivos que ocupen 5 bloques de 512 bytes cada uno.
find /home/user ¬empty busca todos los archivos que se encuentran vacíos a
partir del directorio /home/user.

dpkg
Sirve para obtener detalles de programas que le indiquemos, como puede ser su ubicación, su
tamaño, la versión que tenemos instalada....veamos ejemplos de uso:
dpkg ¬S bin/programa Nos dirá donde esta instalado programa
dpkg ¬l firefox Nos dice la versión del programa firefox que tenemos instalada
dpkg ¬s firefox Nos muestra muchos detalles, como cuanto ocupa el programa o que
librerías usa.

locate
Con el comando locate programa podemos encontrar donde está ubicado el programa que
queremos ejecutar.
$ locate ooffice

scp
Este comando es análogo al cp pero se utiliza para copiar archivos o directorios desde un
sistema local hasta un sistema remoto. Puede usar este comando desde un sistema remoto
(tras iniciar sesión con ssh) o desde el sistema local. El comando scp utiliza ssh para
transferencia de datos. La sintaxis para utilizar este comando es la siguiente:
Copiar archivo local a un destino remoto:
scp /home/labtel/uml.zip labtel@192.168.35.160:/home/labtel/Escritorio/

Copiar archivo remoto a un destino local:


scp labtel@192.168.35.160:/home/labtel/Escritorio/uml.zip /home/labtel/Escritorio/

Copiar archivo de un computador remoto a otro computador remoto


Scp labtel@192.168.35.172:/home/labtel/Escritorio/uml.zip
labtel@192.168.35.174:/home/labtel/Escritorio/

shutdown
Apagar el equipo a las 18:25
$ shutdown -h 18:25
Apagar el equipo en 25 minutos
$ shutdown –h +25

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 10


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

Para cancelar el apagado temporizado


# shutdown –c
$ sudo shutdown -h now
Reiniciar el equipo a las 18:25
# shutdown -r 18:25
Reiniciar el equipo en 25 minutos
# shutdown –r +25

talk
# apt-get install talk talkd
$ talk labtel@192.168.35.160
$ mesg n
$ mesg y

UML
Descargar del drive del profesor, el kernel y el file system
kernel64-4.3.5
Debian-Wheezy-AMD64-root_fs
Asegurar los permisos a estos archivos:
$ chmod u+x kernel64-4.3.5
$ chmod u+w Debian-Wheezy-AMD64-root_fs
$./kernel64-4.3.5 ubda=Debian-Wheezy-AMD64-root_fs mem=128M
Usuario root
Para apagar:
# halt
Dos o más máquinas virtuales: (COW: Copy-On-Write)
$ sudo apt-get install uml-utilities
En una primera consola:
$./kernel64-4.3.5 ubda=cowfile1,Debian-Wheezy-AMD64-root_fs mem=128M
En una segunda consola:
$./kernel64-4.3.5 ubda=cowfile2,Debian-Wheezy-AMD64-root_fs mem=128M

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 11


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

Anexo 1: Instalación de Programas


Al igual que en Windows, en Linux es posible instalar diferentes programas bajando el
ejecutable desde la página web del proveedor. Sin embargo, hay ciertos programas que
requieren ciertas dependencias, por lo tanto, se tiene que instalar, manualmente, la versión del
software incluyendo las librerías dinámicas necesarias. Se entiende por dependencia a una
biblioteca que contiene diferentes archivos necesarios para el buen funcionamiento del
software.
Ante este problema se desarrolló un sistema avanzado para la administración de paquetes que
se encargaba, automáticamente, de conseguir las dependencias junto con el programa que se
desea instalar. Para archivos rpm (Red Hat Package Manager) se usa el comando yum y para
archivos .deb se usa el comando apt. Los archivos rpm son aquellos paquetes de software que
pertenecen a la distribución Red Hat Linux (distribución de Linux significa sistema operativo
que toma como base para su desarrollo el sistema operativo Linux). Por otro lado, los archivos
con extensión .deb pertenecen a la distribución Debian Linux.
En el caso de los paquetes de Debian Linux, el administrador de paquetes utiliza archivos que
contienen las fuentes donde conseguir los paquetes. Estos archivos se encuentran en /etc/apt.
Es importante actualizar la lista de los paquetes con los que están en los repositorios online o
sino el sistema va a trabajar con una lista desactualizada lo cual puede ocasionar dificultades.
Para actualizar esta lista se debe ejecutar el comando apt-get update. Al tener una lista
actualizada, para instalar cualquier paquete se debe ejecutar el comando: apt-get install
<nombre del paquete>.

Anexo 2: Resumen de Comandos


Comandos Complemento Descripción Sintaxis
Muestra la ruta del archivo
tty tty
del terminal virtual.
gnome-
Ejecuta terminal virtual. gnome-terminal
terminal
xterm Ejecuta terminal virtual. xterm
su <nombre de
su Cambia a otro usuario.
usuario>
Ejecuta comandos como
sudo otro usuario con privilegios sudo <comando>.
de superusuario.
Actualiza la lista de
apt-get update apt-get update
paquetes disponibles.
apt-get install
apt-get install Instala paquetes.
<nombre del archivo>
df Muestra la cantidad de df
espacio disponible.
du Muestra la cantidad de du
espacio que ocupa un
archivo.
ls Lista el contenido del ls /<nombre del
directorio. directorio>
ls -l Lista el contenido del ls –l /<nombre del
directorio en formato lista. directorio>
Incluye información de
permisos, tamaño, etc.
ls -a Muestra todos los archivos ls –a /<nombre del
y carpetas, incluyendo las directorio>
ocultas.
cd / Cambia de directorio. cd /<nombre del dir.>
cd .. Retrocede un nivel en el cd ..
árbol de directorios.
cd ../.. Retrocede dos niveles. cd ../..
pwd Muestra la ruta del pwd
directorio actual.

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 12


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

mkdir Crea un directorio. mkdir <nombre del


directorio>
rmdir Elimina un directorio. rmdir <nombre del
directorio>
mv Mueve un archivo a un mv <nombre del
directorio. directorio/archivo>
<nueva ubicación>
mv Renombre un archivo. mv <nombre del archivo
original> <nuevo
nombre del archivo>
cp Copia archivos. cp <nombre archivo
original/directorio>
<nombre archivo
copia/nuevo directorio>
touch Crea un archivo vacío. touch <nombre del
archivo>
rm Elimina un archivo. rm <nombre del
archivo/ruta del archivo>
rm -f Fuerza el borrado de rm –f <nombre del
archivos y directorios. archivo>
rm -rf Comando definitivo para la rm –rf <nombre del
eliminación. archivo>
vi Editor de archivo. vi <nombre del archivo>
vim Editor de texto. vim <nombre del
archivo>
gedit Editor de texto. gedit <nombre del
archivo>
nano Edita un archivo. nano <nombre del
archivo>
cat Muestra el contenido de un cat <nombre del
archivo. archivo>
more Muestra el contenido de un more <nombre del
archivo en páginas. archivo>
less Permite una mejor less <nombre del
navegación en el contenido archivo>
del archivo.
head Muestra la primera línea head <nombre del
del archivo. archivo/ruta del archivo>
tail Muestra la última línea del tail <nombre del
archivo. archivo/ruta del archivo>
hexdump Muestra el contenido de un hexdump <nombre del
archivo binario en formato archivo/ruta del archivo>
hexadecimal.
grep Busca coincidencias en grep <coincidencia>
archivos. <nombre del
archivo/ruta del archivo>
chmod Cambia los permisos de un chmod <intruccion de
archivo. permiso> <nombre del
archivo>

Tabla 3.1: Resumen de Comandos

Anexo 3. Procesos en Linux


Los procesos son programas que se están ejecutando en el sistema. Para saber cuáles son los
programas que se están ejecutando en el sistema se usa el comando ps. Este comando
muestra una lista informativa de todos los procesos que están corriendo. La información que
provee es: PID (ID del proceso), es un identificador único con el cual se enumeran los
procesos; TTY, muestra el terminal en el cual se ha ejecutado ese programa; TIME, indica

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 13


GI101 – LINUX FUNDAMENTALS
_______________________________________________________________________________________________

cuánto tiempo lleva ejecutándose ese programa; y CMD, muestra el nombre del programa. La
sintaxis que se usa solo es: ps.

1 Otros Comandos para Procesos


Como se mencionó en el capítulo anterior, el comando ps solo te muestra una lista continua de
todos los procesos que están corriendo en el sistema. Sin embargo, estos procesos, en
muchas ocasiones, guardan cierta relación, es decir, que uno deriva de otro. Para poder ver
esa relación se utiliza el comando pstree. Cabe resaltar que el primer proceso que se va a
mostrar es el init, ya que es el primer proceso que se ejecuta al cargar el sistema operativo y
por lo tanto se considera como la raíz de todos los procesos.
Otro comando parecido a ps es el comando top. Este comando te devuelve una lista de
procesos que está corriendo en el sistema, al igual que lo hace el comando ps, con la
diferencia de que se actualiza constantemente. Este permite evaluar el estado de cada proceso
conforme pasa el tiempo. Asimismo, proporciona más información como: espacio de memoria
que ocupa cada proceso, el número de usuarios, el porcentaje de uso de procesador, etc.
Si bien es posible ver los procesos que están corriendo, también se puede eliminarlos
(matarlos) en caso estén ocasionando problemas al sistema o su consumo de memoria sea
muy alto. Para matar un proceso se usa la siguiente sintaxis: kill <nombre del proceso>.

3.2. Resumen de Comandos


Comandos Complemento Descripción Sintaxis
Muestra el manual de un man <nombre del
man
comando. comando>
Lista los procesos del
Ps ps
sistema.
Lista procesos del
sistema indicando la
pstree pstree
relación que tienen entre
sí.
Lista los procesos del
sistema en tiempo real y
Top top
muestra información de
los recursos del sistema.

Versión de kernel y distribución de linux

# cat /etc/*-release
# uname –a
# uname –mrs
# cat /proc/version

Laboratorio 02: Comandos Avanzados _ Prof. Bartra, Carol_Chirinos, Arnold-Velasquez 14

También podría gustarte