Mostrando entradas con la etiqueta Administración de Sistemas Operativos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Administración de Sistemas Operativos. Mostrar todas las entradas

martes, 19 de enero de 2016

Mi primer Script en Bash


El otro día  en clase de SOGS, aprendimos algunos comandos para montar (mount) y desmontar (umount) dispositivos, tocamos un poco el comando fdisk y utilizamos comandos para la creación de sistemas de archivos (mkfs).

Algunos ejemplos para utilizar estos comandos son:

mount -t ext2 /dev/vdb /mnt/vdb --> Este comando lo que hace es montarte el dispositivo vdb en el directorio /mnt/vdb, con un sistema de archivos ext2.

Otra manera de utilizar este comando es con la opción de -a, mount -a  /dev/vdb --> La diferencia con el anterior es que al poner la opción -a, el dispositivo se montará con las especificaciones que se dan en el fichero /etc/fstab:


Si queremos desmontar un dispositivo, utilizamos el comando umount. Por ejemplo: umount /dev/vdb y podemos utilizar el comando lsblk -f para ver que nuestro dispositivo ha sido desmontado correctamente.

Luego si queremos crear un sistema de archivos utilizamos el comando mkfs. Por ejemplo si queremos crear un EXT2 --> Introducimos el comando mkfs -t ext2 /dev/vdb. Una vez le hayamos dado un formato al dispositivo lo montamos con el comando mount.

Hasta aquí una breve información de lo que podemos hacer con estos comando, si queremos más información podemos introducir en nuestra terminal man y el nombre de nuestro comando, en mi caso, man mkfs:


Después de hablaros sobre la utilización de estos comandos, entró en el título del post, "Mi primer Script en Bash".

El otro día me di cuenta que esto de crear, montar, desmontar... eran tareas repetitivas y que podrían cansar un poco, entonces me surgió la idea de crear mi propio Script para que haga todas estas cosas. Me puse a buscar un manual de Bash, empecé a buscar diferentes estructuras y gracias también a mis compañeros de clase, hice mi primer Script.


Este Script, lo que hace básicamente es montar dispositivos, desmontar dispositivos, crear sistemas de archivos (EXT2,EXT4 Y NTFS) y mostrar información de las particiones del sistema.


Os dejó un enlace por si queréis descargaros el Script para poder utilizarlo y reducir el tiempo de aplicar todos los comandos, o incluso para que modifiquéis el código para hacer muchas más funciones -->Descargar<--

Para poder utilizar el Script, nos metemos como root y le damos los permisos de ejecución con el comando chmod +x nombre del script, en nuestro caso, chmod +x mi-primer-script.sh y luego lo ejecutamos con el comando source mi-primer.script.sh o ./nombredelscript.

Eso es todo, cualquier pregunta o sugerencia me la puedes dejar en los comentarios, nos vemos en la próxima entrada. chau ;D

@DiegoKobein95
GeekUp! Fan Page
Leer más...

miércoles, 23 de diciembre de 2015

Fdisk, un comando para gestionar y administrar el disco duro



Fdisk, es uno de los comandos más importantes que todo administrador de sistemas debe de conocer, ya que con este comando podremos gestionar y administrar nuestros discos duros.

Con este comando podremos crear, eliminar, redimensionar, cambiar o copiar y mover particiones usando las distintas opciones que nos ofrece. A continuación veremos algunos de los comandos más usados para gestionar nuestras particiones en un sistema Linux.

*Para poder utilizar el comando Fdisk y sus distintas opciones tenemos que estar como un superusuario.

1.Ver todas las particiones:

Para listar todas las particiones de nuestro sistema tendremos que poner el argumento " -l ", que hará que se listen todas las particiones ordenadamentes por nombre de los distintos dispositivos.

2.Ver un disco en específico:

Para poder ver todas las particiones de un único disco, tenemos que añadir el nombre del disco al comando anterior es decir algo así:

3.Ver todas las opciones del comando:

Para poder ver todas las opciones del comando fdisk, tenemos que introducir el comando seguido de una unidad de disco y una vez dentro del menú de fdisk, pulsamos la tecla "m" y aparecerán todas las opciones:

4.Ver todas las tablas de particiones del Sistema:

Para poder ver la tabla de particiones del sistema, tenemos que entrar en el menú de fdisk y teclear la tecla "p":

5.Crear una Partición:

Para crear una partición nueva, tenemos que meternos en el menú de fdisk y pulsar el botón "n", luego tendremos que teclear "e" (Si queremos crear una partición extendida) o "p" (Si queremos crear una partición primaria). Y finalmente nos pedirá el tamaño de nuestra partición. (En mi caso los valores serán por defecto):

6.Corregir una partición:

Para corregir una partición tenemos que meternos en el menú de fdisk y teclear "x" para acceder a las opciones avanzadas, "f" para reparar y "w" para guardar los cambios:

7.Borrar particiones:

Para borrar particiones tenemos que volver a meternos al menú de fdisk y teclear "d" y el número de la partición que quieras borrar:

Otras opciones son por ejemplo formatear una partición que sería con el comando mkfs.ext4(formato que queremos darle) /dev/sda4 -> mkfs.ext4 /dev/sda4. Y si te olvidas del tamaño de una partición tan solo tienes que poner fdisk -s /dev/sda4 o cualquiera que sea tu unidad.

¡SI TE HA GUSTADO EL POST COMPARTELO, SI TIENES ALGUNA PREGUNTA O SUGERENCIA PUEDES DEJÁRMELO EN LOS COMENTARIOS!
Leer más...

miércoles, 11 de noviembre de 2015

[Adiministración de Sistemas] Utilizando el Comando Screen en Linux


Hoy en clase de Administración de Sistemas, he conocido el comando Screen, y ahora en casa he estado jugando en casa y esto es lo que he averiguado.

Screen es una herramienta destinada a la terminal de Linux con la que se puede crear y manejar varias sesiones y programas de manera simultanea desde una sola terminal. (es un comando muy utilizado para trabajar en servidores)

Pero además, permite cerrar la terminal y volverse a conectar a la sesión de screen que conservará las "terminales virtuales" que tuviéramos abiertas.

En Screen se manejan 3 conceptos:
  • la “sesión“, es un área de trabajo, que se crea cuando ejecutas el comando screen.
     
  • Una ventana, es una shell abierta dentro de una sesión de screen. En una sesión de screen puede haber múltiples ventanas.
  •  
  • Una región, es una división, realizada a una ventana, que dentro contiene otra ventana, uno puede dividir una sesión de screen en 2 o más partes, horizontal o verticalmente y en cada split (porción de una región) desplegar una ventana.
Aquí dejo un ejemplo de su ejecución y algunas opciones muy útiles. Más adelante veremos como manejarse una vez lanzada una sesión.
$ screen -S nombreDeLaSesion
 
# OPCIONES
# -S sockname     Da nombre a la sesión [pid].sockname.
# -ls             Lista las sesiones abiertas de screen.
# -r              Reattach a un sesión. Es posible especificar el nombre ej: screen -r sockname
# -t título       Permite dar un título a una ventana.
 
CREANDO SESIONES EN SCREEN:
$ screen -S sesion1 -t virtualHost
 
Con este comando creamos una sesión (sesion1) y creamos también una ventana con el título de 
virtual Host. Una sesión puede tener múltiples ventanas.
 
$ screen -t startScript (Para crear ventanas).
 
DENTRO DE UNA SESIÓN:
 
Estas son algunas de las combinaciones posibles para manejarse dentro de una sesión de screen:

  • VENTANAS:
Ctrl-a ?          Ayuda y sumario de funciones  
Ctrl-a c          Crear una nueva ventana (sin nombre).  
Ctrl-a Ctrl-n         Cambiar a la Siguiente o Anterior terminal  
Ctrl-a Ctrl-N          Cambiar a la Siguiente o Anterior terminal N [0-9]  
Ctrl-a ”          Lista navegable de terminales en funcionamiento  
Ctrl-a a          Limpiar un Ctrl-a pulsado por error  
Ctrl-a Ctrl-d          Desconectar y dejar la sesión en funcionamiento  
Ctrl-a x          Bloquear todas las terminales con una clave
 
  • DIVIDIR LAS SESIONES:
Ctrl-a S          Divide horizontalmente  
Ctrl-a tab          Salta a la siguiente zona  
Ctrl-a X              Cerrar la zona actual  
Ctrl-a Q          Cerrar todas las zonas excepto la actual
 
  • SALIR DE SCREEN:

Ctrl-a d          Dettach. Sale de la sesión pero la deja en segundo plano junto a todas sus ventanas.  
exit                  Cierra la ventana actual. Cerrando todas las ventanas se cierra la sesión de screen.
 
  • OPCIONES DE COPIADO:
Ctrl-a + [      Entrar en modo copia/scroll.
Enter           Comenzar la selección de texto / Finalizar la selección  
                de texto, copiar y salir modo copia/scroll.
Cursor          Desplazamiento del cursor selecciona el texto a  
                copiar (si estamos en modo copia/scroll).
ESC             Salir del modo copia/scroll sin copiar nada.  
Ctrl-a + ]      Pegar el texto copiado. 

  • OPCIONES DE MULTIUSUARIOS:
Para crear una sesión multiusuario, tenemos que crear una sesión y luego habilitar el modo multiusuario:
CTRL+a y escribir “:multiuser on”
 
Luego tenemos que autorizar a los usuarios:
CTRL+a “:acladd [lista de usuarios]”
 
Después tenemos que conectarnos a esa sesión:
# screen -x [nombre de la sesión]  o # screen -r [PID de la sesión]
 
A estos usuarios le podemos poner permisos:
CTRL+a :aclchg soporte -w “#”
 
*La utilidad de las cónsolas multi-usuario es que permiten a algunos  trabajar y otros “ver” lo que uno está realizando, 
los permisos son w:write, r:read y x:execution con los valores “+” (garantizar) y “-” (revocar), luego de 
los permisos viene el número de la ventana donde recibirá los permisos (el símbolo “#” indica “todas las ventanas”).
 
Ver los usuarios conectados por screen:
CTRL+a SHIFT-“+” (CTRL+a “*”)
 
También podemos mandar mensajes entre todos los usuarios:
CTRL+a “:wall [mensaje]”
 
CONCLUSIÓN: Screen es una herramienta muy poderosa que nos permite trabajar en cualquier parte y 
también de manera colaborativa en las terminales Linux.
 
 ¡SI TE HA GUSTADO EL POST COMPARTELO, SI TIENES ALGUNA PREGUNTA O SUGERENCIA PUEDES DEJÁRMELO EN LOS COMENTARIOS!
Leer más...

sábado, 7 de noviembre de 2015

[Administración de Sistemas] Comandos para la administración de Procesos en Linux



¡Hola queridos lectores!, quiero empezar mi primera entrada en el blog, con un tema que he dado recientemente en clase que es: la administración de procesos en sistemas Linux.

Antes de mostrar los comandos para administrar los procesos, quiero daros una información amplía de los procesos.

Un proceso es la representación de un Sistema Operativo en ejecución, es decir, es un programa ejecutable. Un programa ejecutable se define mediante unos códigos y una definición de datos. Para poner un proceso en ejecución necesitamos asignarle memoria e inicializar los registros de la cpu para que pueda ser ejecutado. Un proceso puede ser un proceso ''Padre'' que crea procesos ''H'ijos'', al acabar con un proceso padre acabamos con los procesos hijos, si acabamos los procesos hijos, no nos cargamos el proceso padre.

Para gestionar estos procesos, el sistema utiliza una estructura de datos llamada PCB (Process Control Block).

Por último, un proceso tiene distintos estados:
  • RUN: el proceso tiene asignada una CPU y está ejecutandose. 
  • READY: el proceso está preparado para ejecutarse pero está esperando que se le asigne una CPU.
  • BLOCKED: el proceso no tiene/consume CPU, está bloqueado esperando a que termine entrada/salida de datos o la llegada de un evento.
  • ZOMBIE: el proceso ha terminado su ejecución pero aún no ha desaparecido, esto ocurre cuando nos cargamos un proceso padre y este no ha notificado a los procesos hijos.

Ahora sí, después de esta breve información de los procesos, pasamos a conocer algunos de los comandos para administrar procesos en Linux: 

 

 ps

El comando es el que permite informar sobre el estado de los procesos. esta basado en el sistema de archivos /proc, es decir, lee directamente la información de los archivos que se encuentran en este directorio. Tiene una gran cantidad de opciones, incluso estas opciones varían dependiendo del estilo en que se use el comando. Estas variaciones sobre el uso de son las siguientes:
  • Estilo BSD, donde las opciones no llevan guión
  • Estilo GNU, donde se utilizan nombres de opciones largas y van precedidas por doble guión --
  • Estilo UNIX, donde las opciones van precedidas por un guión -
Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnas se mostrarán en el listado de procesos que resulte, estas columnas pueden ser entre muchas otras, las siguientes (y principales):
p o PID  Process ID, número único o de identificación del proceso.
P o PPID  Parent Process ID, padre del proceso
U o UID  User ID, usuario propietario del proceso
t o TT o TTY  Terminal asociada al proceso, si no hay terminal aparece entonces un '?'
T o TIME  Tiempo de uso de cpu acumulado por el proceso
c o CMD  El nombre del programa o camndo que inició el proceso
RSS  Resident Sise, tamaño de la parte residente en memoria en kilobytes
SZ o SIZE  Tamaño virtual de la imagen del proceso
NI  Nice, valor nice (prioridad) del proceso, un número positivo significa menos tiempo de procesador y negativo más tiempo (-19 a 19)
C o PCPU  Porcentaje de cpu utilizado por el proceso
STIME  Starting Time, hora de inicio del proceso
S o STAT  Status del proceso, estos pueden ser los siguientes
  • R runnable, en ejecución, corriendo o ejecutándose
  • S sleeping, proceso en ejecución pero sin actividad por el momento, o esperando por algún evento para continuar
  • T sTopped, proceso detenido totalmente, pero puede ser reiniciado
  • Z zombie, difunto, proceso que por alguna razón no terminó de manera correcta, no debe haber procesos zombies
  • D uninterruptible sleep, son procesos generalmente asociados a acciones de IO del sistema
  • X dead, muerto, proceso terminado pero que sigue apareciendo, igual que los Z no deberían verse nunca

Las opciones completas de las encuentras en las páginas del manual (), o escribiendo en la terminal , y para ver un resumen de sus opciones más comunes usa :

#> ps --help
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
r  only running processes             U  processes for specified users
x  processes w/o controlling ttys     t  by tty
*********** output format **********  *********** long options ***********
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
 
A continuación algunos cuantos ejemplos de con la salida recortada.
># ps -e    
  PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0

#> ps -ef    
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 10:12 ?        00:00:01 init [5]
root         2     0  0 10:12 ?        00:00:00 [kthreadd]
...
root      6130  5662  0 10:24 pts/0    00:00:00 su -
root      6134  6130  0 10:24 pts/0    00:00:00 -bash
sergon    6343  5604  0 10:28 ?        00:00:00 kio_file [kdeinit] file /home/sergon/tmp/ksocket-sergon/kl
root      6475  6134  0 10:38 pts/0    00:00:00 ps -ef

#> ps -eF    
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0   412   556   1 16:59 ?        00:00:01 init [5]
root         2     0  0     0     0   1 16:59 ?        00:00:00 [kthreadd]
sergon    8326  8321  0   902  1272   0 17:07 ?        00:00:00 /bin/sh /usr/lib/firefox-2.0.0.8/run-mozilla.sh /usr/lib/f
sergon    8331  8326  4 53856 62604   0 17:07 ?        00:00:50 /usr/lib/firefox-2.0.0.8/mozilla-firefox-bin
sergon    8570  7726  2 15211 37948   0 17:17 ?        00:00:10 quanta

#> ps ax     
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 init [5]
    2 ?        S<     0:00 [kthreadd]
    3 ?        S<     0:00 [migration/0]
    4 ?        S<     0:00 [ksoftirqd/0]

#> ps aux   
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   1648   556 ?        Ss   16:59   0:01 init [5]
root         2  0.0  0.0      0     0 ?        S<   16:59   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S<   16:59   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S<   16:59   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   16:59   0:00 [migration/1]

#> ps -eo user,pid,tty   
USER       PID TT
root         1 ?
root         2 ?
sergon    8570 tty 1
root      8876 pts/1

#> ps -eH  
#> ps axf  
#> ps -ec  
#> ps -el  
#> ps L    

pstree

Muestra los procesos en forma de árbol, te da las opciones más comunes. Recomiendo uses lo uses con la opción -A y -G para que te un árbol con líneas con líneas estilo ASCII y de terminal VT100 respectivamente, puedes añadir también -u para mostrar entre paréntesis al usuario propietario del proceso:
#> pstree -AGu
init---acpid
     |-atd(daemon)
     |-automount----2*[{automount}]
     |-avahi-daemon(avahi)
     |-beagled(sergon)----7*[{beagled}]
     |-beagled-helper(sergio)----3*[{beagled-helper}]
     |-compiz(sergon)----kde-window-deco
     |-console-kit-dae----61*[{console-kit-dae}]
     |-crond
     |-dbus-daemon(messagebus)
     |-dbus-daemon(sergio)
     |-dbus-launch(sergio)
     |-dcopserver(sergio)
     |-dhclient
     |-gam_server(sergio)
     |-gconfd-2(sergio)
     |-hald(haldaemon)----hald-runner(root)----hald-addon-acpi(haldaemon)
     |                                       |-hald-addon-cpuf
     |                                       |-hald-addon-inpu
     |                                       |-hald-addon-stor
     |-httpd---8*[httpd(apache)]
     |-2*[ifplugd]
     |-ipw3945d
     |-kaccess(sergio)
...

kill

El comando , que literalmente quiere decir matar, sirve no solo para matar o terminar procesos sino principalmente para enviar señales (signals) a los procesos. La señal por default (cuando no se indica ninguna es terminar o matar el proceso), y la sintaxis es , siendo PID el número de ID del proceso. Asi por ejemplo, es posible enviar una señal de STOP al proceso y se detendrá su ejecución, después cuando se quiera mandar una señal de CONTinuar y el proceso continuara desde donde se quedo.
#> kill -l     
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
La lista previa presenta una lista de todas las posibles señales que pueden mandarse a un proceso y estas pueden ser invocadas a través del número de la señal o de su código, por ejemplo:
#> kill -9 11428        
#> kill -SIGKILL 11428  
Las señales más comunes son la 19 y 20 que detienen momentáneamente la ejecución de un proceso o programa, 18 la continua, 1 que es la señal de hang up que obliga al proceso a releer sus archivos de configuración estando en ejecución y 9 que termina rotundamente un proceso.

killall

El comando , que funciona de manera similar a , pero con la diferencia de en vez de indicar un PID se indica el nombre del programa, lo que afectará a todos los procesos que tengan ese nombre. Asi por ejemplo si se tienen varias instancias ejecutándose del proxy server squid, con eliminará todos los procesos que se esten ejecutando con el nombre 'squid'
#> killall -l             
#> killall -HUP httpd     
#> killall -KILL -i squid 

nice

Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0. Con es posible iniciar un programa (proceso) con la prioridad modificada, más alta o más baja según se requiera. Las prioridades van de -20 (la más alta) a 19 la más baja. Solo root o el superusuario puede establecer prioridades negativas que son más altas. Con la opción -l de es posible observar la columna NI que muestra este valor.
#> nice             
0
#> nice -n -5 comando  

renice

Asi como establece la prioridad de un proceso cuando se incia su ejecución, permite alterarla en tiempo real, sin necesidad de detener el proceso.
#> nice -n -5 yes   
                    
#> ps -el
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 12826 12208  4  75  -5 -   708 write_ pts/2    00:00:00 yes

#> renice 7 12826
12826: prioridad antigua -5, nueva prioridad 7
#> ps -el
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 12826 12208  4  87   7 -   708 write_ pts/2    00:00:15 yes


nohup y &

Cuando se trata ejecutar procesos en background (segundo plano) se utiliza el comando o el operador & . Aunque realizan una función similar, no son lo mismo.
Si se desea liberar la terminal de un programa que se espera durará un tiempo considerable ejecutándose, entonces se usa . Esto funciona mejor cuando el resultado del proceso no es necesario mandarlo a la salida estándar (stdin), como por ejemplo cuando se ejecuta un respaldo o se abre un programa Xwindow desde la consola o terminal. Para lograr esto basta con escribir el comando en cuestión y agregar al final el símbolo & (ampersand).
$> yes > /dev/null &
$> tar czf respaldo /documentos/* > /dev/null/ &   
$> konqueror & 
Sin embargo lo anterior produce que el padre del proceso PPID que se invocó sea el proceso de la terminal en si, por lo que si cerramos la terminal o salimos de la sesión también se terminaran los procesos hijos que dependan de la terminal, no muy conveniente si se desea que el proceso continué en ejecución.
Para solucionar lo anterior, entonces se usa el comando que permite al igual que '&' mandar el proceso y background y que este quede inmune a los hangups (de ahí su nombre nohup) que es cuando se cuelga o termina la terminal o consola de la cual se ejecutó el proceso.
$> nohup yes > /dev/null &
$> nohup czf respaldo /documentos/* > /dev/null/  
$> nohup konqueror 
Asi se evita que el proceso se "cuelgue" al cerrar la consola.

jobs

Si por ejemplo, se tiene acceso a una única consola o terminal, y se tienen que ejecutar varios comandos que se ejecutarán por largo tiempo, se pueden entonces como ya se vió previamente con y el operador '&' mandarlos a segundo plano o background con el objeto de liberar la terminal y continuar trabajando.
Pero si solo se está en una terminal esto puede ser difícil de controlar, y para eos tenemos el comando que lista los procesos actuales en ejecución:
#> yes > /dev/null &
[1] 26837
#> ls -laR > archivos.txt &
[2] 26854
#> jobs
[1]-  Running                 yes >/dev/null &
[2]+  Running                 ls --color=tty -laR / >archivos.txt &
En el ejemplo previo, se ejecutó el comando y se envió a background (&) y el sistema devolvió [1] 26837, indicando asi que se trata del trabajo o de la tarea [1] y su PID, lo mismo con la segunda tarea que es un listado recursivo desde la raíz y enviado a un archivo, esta es la segunda tarea.
Con los comandos (foreground) y background es posible manipular procesos que esten suspendidos temporalmente, ya sea porque se les envió una señal de suspensión como STOP (20) o porque al estarlos ejecutando se presionó ctrl-Z. Entonces para reanudar su ejecución en primer plano usaríamos :
#> jobs
[1]-  Stopped                 yes >/dev/null &
[2]+  Stopped                ls --color=tty -laR / >archivos.txt &
#> fg %1
#> jobs
[1]+  Running                 yes >/dev/null &
[2]-  Stopped                ls --color=tty -laR / >archivos.txt &
Obsérvese como al traer en primer plano al 'job' o proceso 1, este adquirió el símbolo [+] que indica que esta al frente. Lo mismo sería con que volvería a reinicar el proceso pero en segundo plano. Y también es posible matar los procesos con indicando el número que devuelve : , terminaría con el proceso en número 1.

top

Una utilería muy usada y muy útil para el monitoreo en tiempo real del estado de los procesos y de otras variantes del sistema es el programa llamado , se ejecuta desde la línea de comandos, es interactivo y por defecto se actualiza cada 3 segundos.
$> top
top - 13:07:30 up 8 days,  6:44,  4 users,  load average: 0.11, 0.08, 0.08
Tasks: 133 total,   1 running, 131 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:    497356k total,   472352k used,    25004k free,    21500k buffers
Swap:  1156640k total,   257088k used,   899552k free,    60420k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
26156 sergon    15   0  2160 1016  784 R    1  0.2   0:00.93 top
    1 root      15   0  2012  616  584 S    0  0.1   0:00.98 init
    2 root      RT   0     0    0    0 S    0  0.0   0:00.29 migration/0
    3 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/0
    4 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.38 migration/1
...
Estando adentro de la apliación, presionando 'h' muestra una ayuda de los posibles comandos que permiten configurar , por ejemplo, al presionar 's' pregunta por el tiempo en segundos de actualización, etc.

Estos son los comandos principales para la administración de procesos en  Sistemas Operativos Linux, aunque existen otro comandos como por ejemplo: atop, xkill, pkill, pgrep, etc.

¡SI TE HA GUSTADO EL POST COMPARTELO, SI TIENES ALGUNA PREGUNTA O SUGERENCIA PUEDES DEJÁRMELO EN LOS COMENTARIOS!
Leer más...