COMPRENDER LOS MECANISMOS DE COMUNICACIÓN Y ADMINISTRACIÓN ENTRE PROCESOS
PRIMERA FORMA DE REDIRECCIÓN
Ingresar datos al proceso a través de un archivo
Para esto haremos algo conocido como … REDIRECCIÓN < HACIA LA ENTRADA
<
Básicamente consiste en… Cambiar la entrada de estándar de un teclado hacia un archivo, y guardarlo, todo lo que vamos a hacer es utilizar un modificador, que es el signo <
$mysql -u root -p < all_schema.sql
El simbolo < significa: traeme “todo” lo de all_schema.sql a mysql
SEGUNDA FORMA DE REDIRECCIÓN
La salida y el error se muestran en un archivo, en lugar de la pantalla
Para esto haremos algo conocido como… REDIRECCIÓN > hacia la salida
>
Básicamente consiste en… Redireccionar la salida y el error hacia un archivo, y guardarlo, todo lo que vamos a hacer es utilizar un modificador, que es el signo >
$ ls > archivos.txt
El simbolo > significa: Guarda todo lo que arroje ls en archivos.txt
El símbolo >> sirve para concatenar, es decir, para agregar al archivo, no para borrar o sobrescribir
PIPES
Los pipes o tuberías toman la salida de un proceso y lo pasan directamente como entrada al siguiente
|
$ ls -l | more
El símbolo | significa: De la salida que arroje el proceso anterior (ls -l) se lo vas a mandar como entrada a more
_$wc <bandera> archivo _
Word count permite cuantas caracteres, palabras hay en un archivo o en un flujo
La anterior captura significa: Cuenta las líneas que hay en el archivo dump1.sql
ADMINISTRACIÓN DE PROCESOS EN BACKGROUND Y FOREGROUND
EJECUCIÓN EN PRIMER PLANO
Cuando ejecutamos un comando, en realidad estamos iniciando un nuevo proceso
Pero existen procesos más extensos que mientras no finalicen, la terminal no permite hacer absolutamente nada
Solo puede haber un proceso ejecutándose a la vez…
EJECUCIÓN EN SEGUNDO PLANO
Con estos procesos en segundo plano, se pueden seguir haciendo tareas en la terminal, sin la necesidad de esperar a que acabe un proceso.
Esto trae varias ventajas ya que se pueden ejecutar varios procesos a la vez
…todo gracias a un símbolo…
&
$ proceso&
El símbolo & significa: El proceso se ejecuta en segundo plano y me devuelve inmediatamente el control de la terminal
Si listamos todo lo que hay, nos indica que ese proceso que habíamos lanzado en “segundo plano o background” ha finalizado
Existen procesos que vamos a necesitar que se ejecuten en segundo plano contantemente, como los servidores, también conocidos como servicios o demons
CTRL + Z
Cualquier proceso que lancemos en forma interactiva lo podemos mandar hacia el background con la combinación de teclas ctrl + z
$ proceso después lo ejecutamos y después ctrl + z
Inmediatamente ejecutemos el proceso y demos enter, debemos de presionar ctrl + z.
$fg
Traer de nuevo un proceso hacia el primer plano o foreground
VER LOS PROCESOS QUE ESTÁN EJECUTÁNDOSE
Hay veces que necesitamos saber cuáles son los procesos que están en ejecución.
Hay dos herramientas principales
$ ps
Nos permite ver los procesos que están ejecutándose
$ ps ax
Nos permite ver los procesos ocultos y no ocultos que se están ejecutando
Este es un comando del tipo bash, por lo tanto se puede hacer lo siguiente
$ ps ax | grep init
Nos permite ver todos los procesos que tengan la palabra init
TOP
$ top
Es una utilidad de tipo interactiva, que muestra en tiempo real, como los procesos van cambiando…además que podemos ver otras características de los procesos
$q <— Salimos de top con “q”
COMO DETENER UN PROCESO
Funciona enviando señales a los procesos para que estos se detengan
$ kill -9 [pid]
Nos permite terminar cualquier proceso
PERMISOS SOBRE ARCHIVOS: EL SISTEMA DE PERMISOS OCTAL
USUARIOS
Dueño
La persona que ha creado el archivo
Grupo
Un grupo de usuario que pueden acceder
Otros
Cualquier otro usuario
PERMISOS
Las operación que pueden hacerse sobre un archivo son :
• Lectura r
• Escritura w
• Ejecución x
Podemos ver la relación que existe entre lo que podemos hacer, y quien lo puede hacer
Para poder ver los archivos utilizaremos un comando ya visto anteriormente…
_$ ls -l _
Muestra toda la información: usuario, grupo, permisos, tamaño, fecha y hora de creación
Podemos observar en especial estos caracteres al inicio de las listas…
Utilizaremos el siguiente ejemplo
drwxrwxrwx
A continuación lo dividimos en partes
d rwx rwx rwx
1. El primer cuadro nos indica si es un directorio (d), un link (l) o un archivo
2. El segundo nos indica los permisos del dueño
3. El tercero nos indica los permisos del grupo
4. El cuarto es los permisos de cualquier usuario
Nota si esta la x (ejecutar) en el caso de directorios es si yo puedo ingresar o no
CAMBIAR LOS PERMISOS (CON NOTACIÓN TEXTUAL)
Chmod
El principal, nos cambia el modo del archivo, osea, cambiar individualmente los permisos
Chown
Cambia quien es el usuario que es el propietario del archivo
Chgrp
Cambia quien es el grupo de usuarios que puede acceder al archivo
$chmod [grupo] [+/-][permiso] [archivo]
• Chmod = Comando
• grupo = usuario o grupo al que quiero hacer el cambio
• +/- = Indicamos con un carácter si vamos a agregar o quitar
• permiso = el permiso que se va a agregar o quitar
• Archivo = archivo sobre el que se harán los cambios
Nota: Si no se especifica o se omite el grupo al que va dirigido, la terminal automáticamente lo aplicará para todos los grupos
CAMBIAR LOS PERMISOS (CON NOTACIÓN BINARIA)
Solo basta con juntar los números de cada grupo para así poder asignar los permisos en conjunto en una sola operación
$chmod [combinacion numerica de permisos] [archivo]
Combinación numérica de permisos es un numero de 3 dígitos, resultante de la combinación de permisos entre los 3 grupos.
Ej:
• 7 = Agregó todos los permisos, para nuestro usuario principal, que somos nosotros
• 6 = Agregó todos los permisos al grupo, excepto ejecutar
• 0 = No se le dio ningún permiso a los otros usuarios
Nota: Siempre podemos revisar los cambios si listamos al archivo con ls -l
USUARIO ROOT
SUDO
$sudo [cualquier instrucción que ejecutemos]
Siempre que antepongamos “sudo” la instrucción se ejecutara como si nosotros fuéramos el usuario root
Finalmente no nos arroja ninguna advertencia de negación, y podemos checar los cambios listando con ls -l
SISTEMA DE MANEJO DE PAQUETES
APT
$sudo apt-get update
Importante siempre ejecutar este comando para asegurarnos que todo se encuentre actualizado y se puedan ejecutar correctamente los comandos que ingresemos después
$sudo apt install [programa a instalar]
• Sudo = Para ejecutar como si fuéramos root
• Apt = Manejador de paquetes binarios
• Install = Para instalar diferentes paquetes
Aquí se puede apreciar que estamos instalando “lynx” que es un navegador de línea de comandos
$lynx [url ]
PAQUETES DE LENGUAJES (LIBRERÍAS)
PIP
$sudo pip install [libreria]
Este comando va a instalar una librería que no se encuentra en el sistema