Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNDAMENTOS DE LINUX
INTRODUCCION
Linux se puede definir: “Es uno de los términos empleados para referirse al sistema
operativo libre similar a Unix que utiliza el núcleo Linux y herramientas de sistema GNU.
Su desarrollo es uno de los ejemplos más prominentes de software libre; todo el código
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los
términos de la GPL (Licencia Pública General de GNU) y otras licencias libres” El manual
consta de 10 módulos:
• Modulo 5: Se verá una forma de cómo buscar archivos o carpetas dentro del
sistema operativo así como también una palabra especifica dentro de un archivo.
• Modulo 6: Los permisos de archivo protegen a los archivos y los directorios para
que no se puedan leer ni escribir sin autorización. A menudo tendrá archivos que
quiera que otras personas puedan leer pero no cambiar. En otras ocasiones,
deverá compartir archivos ejecutables (programas). Los permisos de archivo le
permiten controlar el acceso a sus archivos.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
nombre que el proceso recibe, que es el nombre del programa que está corriendo,
recibe también un número identificativo llamado PID (process ID, o ID de proceso.
• Modulo 10: Generar y administrar archivos que contengan otros archivos, muy
utilizados para realizar respaldos; de hecho, originalmente fue concebido para
respaldos en cintas.
Kernel:
El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo.
Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:
Administración de la memoria para todos los programas y procesos en
ejecución.
• Administración del tiempo de procesador que los programas y procesos en
ejecución utilizan.
• Es el encargado de que podamos acceder a los periféricos/elementos de nuestro
ordenador de una manera cómoda.
El Shell:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Para empezar, no hay un shell, sino muchos shells. El más simple es sh, o Bourne shell,
que es tan simple que prácticamente nadie utiliza, sin embargo, es el más común a todos
los sistemas, y además, ciertos programas lo usan, sobre todo los programas de
instalación (precisamente por eso, por ser el minimo comun denominador de los shells).
Algunos shells se derivan de este, como el bash (Bourne again shell, el oficial de la GNU),
y el Korn Shell, ksh.
El sistema de archivos (File System) es una gran colección de directorios y archivos que
guardan todo tipo de información. En sistemas de muchos usuarios se pueden tener
cientos o miles de archivos. Para organizar y proteger todos estos archivos, en los
sistemas UNIX, los archivos se organizan en directorios que a la vez pueden contener
además de archivos otros directorios subdirectorios).
Los directorios en los sistemas UNIX están organizados conservando cierta jerarquía,
como se muestra en la siguiente figura esquemática:
/ (root)
|
__________________|___________________
| | | | | | |
bin dev etc lib tmp u usr
|
_________________|_____
| | | | | |
local bin lib tmp adm
|
_________|________
| | | |
bin lib src class
Todos los directorios están debajo del directorio root denotado por "/". Los directorios
usr y local están expandidos para así mostrar los subdirectorios. Ya que el directorio
root es la raíz de todos los directorios, para indicar el camino de un directorio particular
se utiliza la siguiente notación: /usr /usr/lib usr/local/lib
El símbolo "/" utilizado al comienzo para indicar el directorio raíz no debe ser confundido
con las siguientes "/" que son utilizados para separar los nombres de los directorios.
Multi Tarea.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Es cuando un ordenador es capaz de realizar más de una tarea a la vez. Puede ser en
paralelo (si tiene más de un procesador) o concurrente (si sólo tiene uno).
Multi Usuario.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
MODULO II ACCESO
AL SISTEMA
Login:
Password.
Una contraseña o clave (en inglés password), es una forma de autenticación que utiliza
información secreta para controlar el acceso hacia algún recurso.
La consola
Entrando al sistema
En Unix se considera un buen hábito acceder al sistema como usuario normal para
realizar la mayoría de las tareas.
Ctrl-Alt-F1/ F6: Para cambiar a otra seudo-terminal
Ctrl-Alt-F7: Para volver a X-Window
/etc/passwd
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Las contraseñas se guardan utilizando un hash de un sólo sentido (el hash utilizado por
defecto es crypt, las distribuciones más nuevas soportan MD5, que es significativamente
más robusto). Las contraseñas no pueden obtenerse a partir de la forma cifrada, sin
embargo, se puede tratar de encontrar una contraseña utilizando fuerza bruta para pasar
por el hash cadenas de texto y compararlas, una vez que encuentres una que coincide,
sabes que has conseguido la contraseña. Esto no suele ser un problema por sí mismo,
el problema surge cuando los usuarios escogen claves que son fácilmente adivinables.
Las encuestas más recientes han demostrado que el 25% de las contraseñas se pueden
romper en menos de una hora, y lo que es peor es que el 4% de los usuarios utilizan su
propio nombre como contraseña. Los campos en blanco en el campo de la contraseña
se quedan vacíos, así que se vería ":”, lo cual es algo crítico para los cuatro primeros
campos (nombre, contraseña, uid y gid).
/etc/shadow
/etc/groups
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
gshadow en los sistemas actuales), este fichero debe ser legible por el mundo para que
el sistema funcione correctamente. El formato es:
Un grupo puede no contener miembros (p. ej., no está usado), sólo un miembro o
múltiples miembros, y la contraseña es opcional (y no se suele usar).
Tipos de usuarios
Los usuarios en Unix/Linux se identifican por un número único de usuario, User ID, UID.
Y pertenecen a un grupo principal de usuario, identificado también por un número único
de grupo, Group ID, GID. El usuario puede pertenecer a más grupos además del
principal.
Aunque sujeto a cierta polémica, es posible identificar tres tipos de usuarios en Linux:
Usuario root
Usuarios especiales
• Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid,
apache, etc.
• Se les llama también cuentas del sistema.
• No tiene todos los privilegios del usuario root, pero dependiendo de la
cuenta asumen distintos privilegios de root.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
/etc/passwd
Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el
archivo de configuración 'passwd', ubicado dentro del directorio /etc. Este archivo es de
texto tipo ASCII, se crea al momento de la instalación con el usuario root y las cuentas
especiales, más las cuentas de usuarios normales que se hayan indicado al momento de
la instalación.
El archivo /etc/passwd contiene una línea para cada usuario, similar a las siguientes:
root:x:0:0:root:/root:/bin/bash
sergio:x:501:500:Sergio González:/home/sergio:/bin/bash
/etc/passwd
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Campo
Es el nombre del usuario, identificador de inicio de sesión (login). Tiene que ser único.
1
Campo La 'x' indica la contraseña encriptada del usuario, además también indica que se está haciendo
2 uso del archivo /etc/shadow, si no se hace uso de este archivo, este campo se vería algo así
como: 'ghy675gjuXCc12r5gt78uuu6R'.
Número de identificación del usuario (UID). Tiene que ser único. 0 para root, generalmente las
Campo cuentas o usuarios especiales se numeran del 1 al 100 y las de usuario normal del 101 en
3 delante, en las distribuciones mas recientes esta numeración comienza a partir del 500.
Campo Numeración de identificación del grupo (GID). El que aparece es el número de grupo principal
4
del usuario, pero puede pertenecer a otros, esto se configura en /etc/groups.
Campo
5
Comentarios o el nombre completo del usuario.
Campo
6 Directorio de trabajo (Home) donde se sitúa al usuario después del inicio de sesión.
Campo
7 Shell que va a utilizar el usuario de forma predeterminada.
/etc/shadow
El archivo /etc/shadow contiene una línea para cada usuario, similar a las siguientes:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1::
sergio:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1::
La información de cada usuario está dividida en 9 campos delimitados cada uno por ':'
dos puntos.
/etc/shadow
Campo
1 Nombre de la cuenta del usuario.
Campo
2 Contraseña cifrada o encriptada, un '*' indica cuenta de 'nologin'.
Campo Días transcurridos desde el 1/ene/1970 hasta la fecha en que la contraseña fue cambiada por última vez.
3
Campo Número de días que deben transcurrir hasta que la contraseña se pueda volver a cambiar.
4
Campo Número de días tras los cuales hay que cambiar la contraseña. (-1 significa nunca). A partir de este dato
5 se obtiene la fecha de expiración de la contraseña.
Campo Número de días antes de la expiración de la contraseña en que se le avisará al usuario al inicio de la
6 sesión.
Campo
7 Días después de la expiración en que la contraseña se inhabilitara, si es que no se cambio.
Campo
8 Fecha de caducidad de la cuenta. Se expresa en días transcurridos desde el 1/Enero/1970 (epoch).
Campo
9 Reservado.
/etc/group
Este archivo guarda la relación de los grupos a los que pertenecen los usuarios del
sistema, contiene una línea para cada usuario con tres o cuatro campos por usuario:
root:x:0:root ana:x:501:
sergio:x:502:ventas,supervisores,produccion
cristina:x:503:ventas,sergio
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
useradd o adduser es el comando que permite añadir nuevos usuarios al sistema desde
la línea de comandos. Sus opciones más comunes o importantes son las siguientes:
Ahora bien, realmente no hay prácticamente necesidad de indicar ninguna opción ya que
si hacemos lo siguiente:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Siempre el nombre del usuario es el último parámetro del comando. Asi por ejemplo, si
queremos salirnos del default, podemos establecer algo como lo siguiente:
Con lo anterior estamos cambiando su directorio de inicio, su shell por defautl sera csh y
su UID será el 800 en vez de que el sistema tome el siguiente número disponible.
Casi seguro también cambiará el nombre del directorio de inicio o HOME en /home, pero
si no fuera así, entonces:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora sera Korn
shell y su grupo principal de usuario quedó establecido al GID 505 y todo esto se aplicó
al usuario 'sego' que como se observa debe ser el último argumento del comando.
El usuario 'sego' salió de vacaciones y nos aseguramos de que nadie use su cuenta:
Como su nombre lo indica, userdel elimina una cuenta del sistema, userdel puede ser
invocado de tres maneras:
Al igual que lo anterior elimina la cuenta totalmente, pero con la opción -r además elimina
su directorio de trabajo y archivos y directorios contenidos en el mismo, asi como su
buzón de correo, si es que estuvieran configuradas las opciones de correo. La cuenta no
se podrá eliminar si el usuario esta logueado o en el sistema al momento de ejecutar el
comando.
La opción -f es igual que la opción -r, elimina todo lo del usuario, cuenta, directorios y
archivos del usuario, pero además lo hace sin importar si el usuario esta actualmente en
el sistema trabajando. Es una opción muy radical, además de que podría causar
inestabilidad en el sistema, asi que hay que usarla solo en casos muy extremos.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
$> passwd
Changing password for user prueba.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word Retype new UNIX password:
passwd: all authentication tokens updated successfully.
$>
Nótese que al ingresar 'qwerty' como contraseña se detectó que es una secuencia ya
conocida como contraseña y me manda la advertencia: "BAD PASSWORD: it is based
on a dictionary word", sin embargo me permite continuar, al ingresar la verificación. Es
decir, passwd avisa de malas o débiles contraseñas pero permite establecerlas si
realmente se desea.
Resumiendo entonces, se podría decir que todo este tutorial se reduce a dos líneas de
comandos para crear y dejar listo para trabajar a un usuario en Linux:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Se crea el usuario 'ana', useradd hace todo el trabajo de establecer el shell, directorio de
inicio, copiar archivos iniciales de configuración de la cuenta, etc. y después passwd
establece la contraseña. Asi de simple.
passwd tiene varias opciones que permiten bloquear la cuenta '-l', desbloquearla '-u', y
varias opciones más que controlan la vigencia de la contraseña, es decir, es otro modo
de establecer los valores de la cuenta en/etc/shadow. Para más información consulta las
páginas del manual:
MODULO IV
ADMINISTRANDO ARCHIVOS Y CARPETAS CMD
Antes de comenzar
Antes de que empiece a experimentar con archivos, asegúrese de que está en su
directorio de usuario. Este es un directorio que le estableció su administra-dor de
sistemas cuando creó su autorización de acceso. Si ejecuta las tareas que se muestran
en los siguientes ejemplos desde su directorio de usuario, le será más difícil crear, copiar,
mover o (lo peor de todo) eliminar archivos de partes del sistema que otros usuarios
esperan que permanezcan inalteradas.
$ cd
$ pwd
/export/home/nombre_del_usuario
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
$ touch archivoprueba
$
$ ls archivoprueba tempfile
$ cp tempfile copyfile
$
Ahora intente listar ambos archivos. Observe que los dos nombres acaban con los
caracteres "file". Puede utilizar el carácter comodín (*), para sustituir a cual-quier
carácter o secuencia de caracteres. Por lo tanto, el comando ls *file debe listar tanto
tempfile como copyfile (y cualquier archivo de ese direc-torio cuyo nombre termine en
file):
Observe que copyfile se lista primero. Los archivos se listan por orden alfa-bético, (las
letras mayúsculas y los números preceden a las letras minúsculas).
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
$ mv tempfile emptyfile
$
Ahora liste de nuevo ambos archivos para verificar el cambio:
$ ls *file
copyfile emptyfile
$ rm copyfile
$ ls *file
emptyfile
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
hacia abajo en la pantalla. Si el archivo es más largo que una pantalla, aparecerá el
siguiente mensaje:
También puede usar el comando cat para mostrar el contenido de un archivo, pero éste
muestra de una vez el archivo completo sin pararse. El comando cat (concatenate) se
usa más frecuentemente para unir dos o más archivos y for-mar otro más grande, como
se ve en el ejemplo siguiente:
$ file copyfile
copyfile: ascii text
Directorios y jerarquía
Hasta ahora ha aprendido a listar, copiar, renombrar y eliminar archivos. Sin embargo,
se estará preguntando acerca de aspectos más complicados, como por ejemplo ¿dónde
están situados dichos archivos? Esta sección explica la jerar-quía del directorio. Lea con
atención el siguiente texto, y después realice los ejemplos de las secciones siguientes.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Jerarquía de directorio
Los archivos se agrupan en directorios, que a su vez se organizan en una jerar-quía. En
la cima de la jerarquía está el directorio "raíz", representado por "/".
Como se muestra en el ejemplo, cada directorio del siste-ma de archivos puede incluir
muchos otros directorios. La convención consiste en distinguir niveles de directorio
mediante el carácter /. Teniendo esto en cuenta, observe que el directorio/ (raíz) contiene
entre otros los subdirectorios /usr, /bin, /home y /lib. El subdirectorio /home contiene
user1, user2, y user3.
Los directorios (y los archivos que hay en su interior) se especifican incluyendo el nombre
de los directorios en los que están. A esto se le llama nombre de ruta. de acceso. Por
ejemplo, el nombre de la ruta de acceso del directorio user3 de la próxima ilustración es
/home/user3.
Todos los subdirectorios y nombres de archivo que incluya un directorio deben ser únicos.
Sin embargo, los nombres pertenecientes a directorios diferentes pueden ser iguales.
Por ejemplo, el directorio /usr contiene el subdirectorio /usr/lib. No hay ningún conflicto
entre /usr/lib y /lib porque los nom-bres de ruta de acceso son diferentes.
Los nombres de ruta de acceso de los archivos trabajan exactamente igual que los
nombres de ruta de acceso de los directorios. El nombre de ruta de acceso de un archivo
describe su posición dentro de la jerarquía del sistema de archi-vos. Por ejemplo, si el
directorio /home/user2 contiene un archivo llamado report5, su nombre de ruta de acceso
será /home/user2/report5. Esto in-dica que el archivo report5 está dentro del directorio
user2, que a su vez está incluido en el directorio home, que se encuentra en el directorio
raíz (/).
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
$ pwd
/home/user1
El resultado que obtenga será algo diferente al del ejemplo, ya que la estructu-ra de su
directorio es diferente. Recuerde que el directorio en uso es su posi-ción actual dentro
de la jerarquía del sistema de archivos.
Su directorio de usuario
Cada usuario tiene un directorio de usuario. Cuando abre por primera vez la ventana de
la Herramienta de comandos o la Herramienta del shell en el entor-no OpenWindows, su
posición inicial (directorio en uso) es su directorio de usuario. Dicho directorio lo
estableció su administrador de sistemas cuando creó su cuenta de acceso.
$ cd /usr/lib
$ pwd
/usr/lib
$ cd
$ pwd
/home/user1
En el shell C, el signo tilde (~) se usa como un método abreviado para especifi-car su
directorio de usuario. Por ejemplo, para cambiar el subdirectorio music debería escribir
lo siguiente dentro de su directorio de usuari
example% cd ~/music
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
También puede usar dicho método abreviado para especificar el directorio de usuario de
otro usuario. Por ejemplo:
example% cd ~nombre_del_usuario
$ $home/music
$ $homenombre_del_usuario
$ pwd
/home/user1
$ cd ..
$ pwd
/home
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Suponga que su directorio en uso actual es /home/user1 y desea trabajar con varios
archivos en /home/user2. El siguiente método abreviado podrá serle útil:
$ pwd
/home/user1
$ cd ../user2
$ pwd
/home/user2
../user2 ordena al sistema buscar user2 en el directorio maestro. Como puede observar,
esto resulta más sencillo que escribir el nombre de ruta de acceso /home/user2 entero.
$ mkdir veggies
$ cd veggies
$ mkdir broccoli
$ cd broccoli
$ pwd
/home/user2/veggies/broccoli
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Intente crear varios subdirectorios diferentes y después muévase por ellos den-tro de la
estructura del directorio. Use los nombres de ruta de acceso completos y los nombres de
ruta de acceso relativos y confirme su posición con el coman-do pwd.
$ pwd
/home/user2/veggies
$ ls
broccoli
$ mv broccoli carrots
$ ls
carrots
También puede usar mv para mover un directorio a una posición de otro direc-torio:
$ pwd
/home/user2/veggies
$ ls
carrots
$ mv carrots ../veggies2 $ ls ../veggies2
carrots
Copiar directorios
Use el comando cp -r para copiar directorios y los archivos que contengan:
$ cp -r veggies veggies3
$
Este comando copia todos los archivos y directorios dentro del directorio veg-gies en un
nuevo directorio veggies3. Esta es una copia recursiva, como de-signa la opción -r. Si
intenta copiar un directorio sin usar esta opción, aparecerá un mensaje de error.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
$ rmdir veggies3
$
$ rm -r veggies3
$
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
MODULO V
HERRAMIENTAS DE BUSQUEDAS
Al contrario que la mayoría de los comandos, las opciones de find tienen una longitud de
varios caracteres, y el nombre del directorio inicial debe ir antes que éstos en la línea de
comando, como se indica a continuación:
donde directorio es el nombre del directorio inicial y opciones representa las opciones
del comando find.
Cada opción describe un criterio de selección de archivos. Un archivo debe cumplir todos
los criterios para ser seleccionado. De este modo, cuántas más opciones aplique, más
limitado será el campo. La opción -print indica que Vd. desea que se muestre el resultado,
(como se describirá más adelante, puede utilizar find para ejecutar comandos; en ese
caso, deberá ordenarle a find que omita la visualización de los archivos seleccionados).
Por ejemplo, para ver que archivos del directorio en uso y sus subdirectorios terminan en
s, escriba:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
-name nombre_de_archivo
-user id_usuario
-group grupo
-m time n
-newer checkfile
Selecciona archivos que han sido modificados más recientemente que checkfi-le.
Puede invertir el sentido de una opción situando de lante de ella un signo de admiración
precedido por una barra inclinada. Entonces, find seleccionará ar-chivos a los que no
afecte dicha opción:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
./AAA
También puede usar find para aplicar comandos a los archivos que éste selec-cione con
la opción:
Dicha opción termina con un punto y coma precedido por una barra inclinada (\;). Las
llaves entre comillas se reemplazan por los nombres de archivo que find selecciona.
Como ejemplo, puede usar find para eliminar automáticamente archivos de trabajo
temporales. Si nombra coherentemente sus archivos temporales, puede utilizar find para
buscarlos y destruirlos siempre que le estorben. Por ejemplo, si llama a sus archivos
temporales junk o dummy, el comando los encontrará y eliminará
grep
El comando grep (Global Regular Expression and Print) permite buscar las líneas que
contienen una cadena de caracteres especificada mediante una expresión regular. Lee
la entrada estándar o una lista de archivos y muestra en la salida sólo aquellas líneas
que contienen la expresión indicada. La sintaxis es grep patrón archivos
Crear un archivo con los días de la semana, uno por línea; llamarle dias.
Muestra las líneas del archivo dias que contienen la cadena "tes".
Lista sólo los subdirectorios del directorio /usr (la línea empieza con "d").
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Nota - Lea esta sección atentamente. Un buen entendimiento de los permisos de archivo
es siempre importante para el trabajo cotidiano.
Los permisos de archivo protegen a los archivos y los directorios para que no se puedan
leer ni escribir sin autorización. A menudo tendrá archivos que quiera que otras personas
puedan leer pero no cambiar. En otras ocasiones, de-berá compartir archivos ejecutables
(programas). Los permisos de archivo le permiten controlar el acceso a sus archivos.
Existen tres categorías de usuarios para los que puede establecer permisos:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Los nueve caracteres siguientes indican los permisos del archivo o el directorio. Dichos
caracteres están formados por tres grupos de tres elementos, que indi-can los permisos
del propietario del archivo, del grupo de dicho propietario y del mundo respectivamente.
Los permisos para emptyfile son rw-r--r--, que indican que el propietario del archivo puede
leerlo y escribir en él, que to-dos pueden leerlo y nadie puede ejecutarlo. Los permisos
del directorio veg-gies2 son rwxr-xr-x, que indican que todos tienen permiso para leerlo
y ejecutarlo, pero que sólo su dueño puede escribir en él.
$ ls -l nombre_de_directorio
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
$ ls -a
.
..
.cshrc
.login
.profile
emptyfile
Observe que los archivos que comienzan por. son listados antes que los de-más. Hay
dos archivos especiales en este listado: el archivo. es la referencia del directorio en uso,
y el archivo.. es la referencia del directorio maestro.
Hablando en general, los archivos que comienzan por. son usados por utilida-des del
sistema y el usuario normalmente no los modifica. Existen algunas ex-cepciones al
respecto.
donde permisos indica los permisos que se quieren cambiar y nombre es el nombre del
archivo o directorio afectado.
Los permisos pueden especificarse de varias formas. A continuación se cita uno de los
métodos más sencillos:
• u (para el usuario)
• g (para el grupo)
• o (para otros)
• a (all; para todas las categorías anteriores)
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
• r (read; de lectura)
• w (write; de escritura)
• x (execute; de ejecución)
$ ls -l carrots
drwxr-xr-x 3 user2 1024 Feb 10 11:15 carrots
$ chmod g+w carrots
$ ls -l carrots
drwxrwxr-x 3 user2 1024 Feb 10 11:15 carrots
$
Como puede ver, el guión (-) del conjunto de caracteres de grupo se cambia por una w
como resultado del uso del comando.
Para que otros usuarios que no pertenezcan al grupo no puedan leer ni ejecutar este
mismo directorio (permisos es o-rx), tendría que escribir lo siguiente:
$ ls -l carrots
drwxrwxr-x 3 user2 1024 Feb 10 11:15 carrots
$ chmod o-rx carrots $ ls -l carrots
drwxrwx--- 3 user2 1024 Feb 10 11:15 carrots
$
-rw-r--r--
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
drwxr-xr-x
De forma que para hacer ejecutable un archivo nuevo como turnip, su propie-tario
(user2), debería introducir lo siguiente:
$ ls -l turnip
-rw-r--r-- 3 user2 1024 Feb 10 12:27 turnip
$ chmod u+x turnip
$ ls -l turnip
-rwxr--r-- 3 user2 1024 Feb 10 12:27 turnip $
Si quiere afectar a las tres categorías de usuarios a la vez, use la opción a. Si quiere
hacer que un archivo nuevo como garlic sea ejecutable por todos, ten-dría que introducir
lo siguiente:
$ ls -l garlic
-rw-r--r-- 3 user2 1024 Feb 10 11:31 garlic
$ chmod a+x garlic
$ ls -l garlic
-rwxr-xr-x 3 user2 1024 Feb 10 11:31 garlic
$
$ pwd
/home/user2/veggies
$ ls -l
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
En este ejemplo se incluye el comando pwd para mostrar que el directorio en el que
realiza la operación chmod debe ser el actual.
donde numcode es el código numérico y name es el nombre del archivo o del directorio
al que está cambiando los permisos.
El código numérico completo consta de tres números. Se usa un número para cada una
de las tres categorías: usuario, grupo y otros. Por ejemplo, el siguien-te comando
establece permisos absolutos de lectura, escritura y ejecución para el usuario y el grupo,
y sólo permiso de ejecución para otros usuarios:
La Tabla 3-1 ilustra cómo el código 771 representa los permisos asignados a garlic.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Lectura 4 4 0
Escritura 2 2 0
Ejecución 1 1 1
Total 7 7 1
Cada columna de la Tabla 3-1 representa una de las categorías: usuario, grupo y otros.
Para establecer permisos de lectura se agrega un 4 en la columna apro-piada, para
establecer permisos de escritura un 2 y para permisos de ejecución un 1. El total de las
tres columnas, en la última hilera de la tabla, es el código numérico completo.
A continuación se muestra otro ejemplo del uso de este método de establecer permisos
absolutos, incluyendo el comando ls -l para demostrar el resultado:
$ ls -l onion
-rw-r--r-- 3 user2 1024 Feb 10 11:46 onion
$ chmod 755 onion
$ ls -l onion
-rwxr-xr-x 3 user2 1024 Feb 10 11:48 onion
$
Se establecen los permisos del archivo onion para que el usuario pueda leerlo, escribir
en él o ejecutarlo; los miembros del grupo puedan leerlo y ejecutarlo y otros usuarios
puedan también leerlo y ejecutarlo. La Tabla 3-2 muestra el des-glose de los códigos
numéricos utilizados para establecer los permisos de onion.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Lectura 4 4 4
Escritura 2 0 0
Ejecución 1 1 1
Total 7 5 5
Por supuesto, para conceder permisos de lectura, escritura y ejecución a Vd. mismo, a
su grupo o a otros usuarios respecto al archivo cabbage, escribiría lo siguiente:
$ ls -l cabbage
-rw-r--r-- 3 user2 1024 Feb 10 11:51 cabbage
$ chmod 777 cabbage
$ ls -l cabbage
-rwxrwxrwx 3 user2 1024 Feb 10 11:53 cabbage
La Tabla 3-3 muestra el desglose de este ejemplo.
Table 3-3 Permisos de cabbage
Lectura 4 4 4
Escritura 2 2 2
Ejecución 1 1 1
Total 7 7 7
El código numérico 777 representa el nivel de permisos máximo que puede conceder.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Se puede utilizar el carácter comodín * para establecer permisos absolutos para todos
los archivos del directorio, del mismo modo que se cambian los per-misos relativos. Por
ejemplo, para establecer permisos absolutos de todos los archivos del directorio veggies
de modo que Vd. pueda leer, escribir y ejecu-tar dichos permisos, su grupo pueda leerlos
y ejecutarlos, y los demás usuarios puedan sólo ejecutarlos, tendría que escribir lo
siguiente:
$ pwd
/home/user2/veggies
$ ls -l
-rwxrwxrwx 3 user2 21032 Feb 12 10:31 beats
-rwxrwxrwx 2 user2 68 Feb 10 11:09 corn
-rwxrwxrwx 3 user2 12675 Feb 08 09:31 garlic -
rwxrwxrwx 1 user2 1024 Feb 14 16:38 onions
$ chmod 751 *
$ ls -l
-rwxr-x--x 3 user2 21032 Feb 12 10:31 beats
-rwxr-x--x 2 user2 68 Feb 10 11:09 corn
-rwxr-x--x 3 user2 12675 Feb 08 09:31 garlic
-rwxr-x--x 1 user2 1024 Feb 14 16:38 onions
$
En este ejemplo se incluye el comando pwd para ilustrar que el directorio en el que realiza
esta operación debe ser el directorio actual. El comando ls -l se muestra sólo para ilustrar
los cambios que han sufrido los permisos. Cuando se establecen permisos absolutos no
es necesario saber qué permisos están en ac-tivo.
Si desea más información acerca del comando chmod, consulte man Pages(1): User
Commands.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
EDITOR VI
En UNIX existen otros editores más potentes, con entornos de trabajo más amigables,
otros más sencillos de manejar, pero el único editor que está en todas las versiones y se
maneja igual es el vi.
[opciones] archivo
MODO TEXTO
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Reemplaza caracteres.
c
Reemplaza palabras.
cw
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
donde necesite, y sale con la tecla ESC. Estos comandos admiten multiplicadores, por
ejemplo 3cw abre un área de reemplazo para 3 palabras.
Otros
MODO COMANDO
Fin de línea.
$
Principio de línea.
0 (Cero)
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Al medio de la pantalla.
M
Refrescar la pantalla.
Ctrl-l
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Copiar línea.
Y o yy
Copiar palabra.
yw
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Otros
Generales
Guardar cambios.
:w
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Insertar un archivo.
:r arch2
Mover
Mueve a línea 1.
:1
Cambio de opciones.
:set
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Otros
Reemplaza todas la primera ocurrencia de la cadena
:[desde],[hasta] [buscar], en cada línea, por la cadena [reemplazar] entre las
s/[buscar]/[reemplazar]/ líneas [desde] y [hasta] del archivo.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Ejemplos:
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Los archivos de inicialización contienen comandos para que los ejecute el shell cuando
empieza a correr. De esta manera se optimiza el desempeño del shell y se adecua a las
necesidades del usuario.
A diferencia de lo que ocurre con las variables personales, que se eliminan al salir del
sistema, los archivos de inicialización permanecen en la configuración de entrada y salida
del sistema.
Existen dos tipos de archivos de inicialización, los de acceso que se ejecutan cuando
entramos al sistema; este archivo puede llamarse .login o.profile, dependiendo del shell
con el que se trabaje.
Archivo Contenido
.cshrc Contiene los comandos que se ejecutan cuando se empieza a correr un nuevo
shell.
.login Contiene los comandos que se ejecutan al iniciar una sesión en el sistema.
Archivo Contenido
.profile Contiene los comandos que se ejecutan al iniciar una sesión en el sistema.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
A diferencia del cshell, en el Bourne shell no existe un archivo que guarde los comandos
que se ejecutan al iniciar un subshell, esta información se guarda en las variables de
ambiente.
El intérprete de comandos /bin/bash (de aquí en adelante nos referiremos a él como "el
intérprete") usa una colección de ficheros de inicio para ayudar a crear un entorno en el
que ejecutarse. Cada fichero tiene un uso específico y puede afectar de manera diferente
a entornos interactivos y de conexión.
Para más información, consulta info bash -- Nodos: Bash Startup Files e Interactive Shells
(Ficheros de inicio de Bash e Intérpretes Interactivos)
Se necesitan los siguientes ficheros para asegurarse que se lee el entorno correcto para
cada una de las formas en que el intérprete puede ser invocado: /etc/profile, /etc/bashrc,
~/.bash_profile y ~/.bashrc. El fichero ~/.bash_logout no se usa para la invocación del
intérprete. Es leído por este cuando un usuario sale del sistema. Los ficheros /etc/profile
y ~/.bash_profile son leídos cuando se ejecuta un intérprete interactivo de conexión. El
fichero ~/.bashrc es leído cuando se ejecuta un intérprete interactivo de no conexión.
Definir alias
Un alias es un nombre de una orden ficticia, que se sustituye por otra orden (en general,
por cualquier ristra que nosotros queramos). Uno de los usos más útiles es para ``soldar''
opciones a un programa. Es decir, si hay un programa que siempre vamos a llamar con
las mismas opciones (por ejemplo, se supone que nos gusta el ls en color, y para ello
tenemos que darle la opción --color), es muy útil tener definido un alias para la propia
orden, que sustituya la orden por la orden más las opciones que queramos. En este caso,
queremos que siempre que escribamos ls al principio de una línea (o sea, cada vez que
llamemos al programa ls), se cambie la ristra ls porls -color (y que deje todo lo que fuera
después intacto, por supuesto).
Para ello, nos basta con escribir (si lo queremos siempre, lo escribiremos en nuestro
.bash_profile o .bashrc; las comillas son importantes)
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Ahí va una lista de alias útiles para el novato, junto con una breve explicación:
Las variables de entorno son unos valores, etiquetados con un nombre (para los que
sepan programar: variables de las de toda la vida; el nombre de de entorno es porque
definen el entorno de trabajo, no por otra cosa). Convencionalmente, los nombres de las
variables se ponen en mayúsculas.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Es importante saber que el export soporta más de una variable, o sea, podríamos
poner
(por comodidad, las variables exportadas no hay que declararlas todas juntas):
VISUAL=/bin/vi
LANG=spanish
# Más órdenes
export VISUAL LANG
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
MODULO IX
Tareas y procesos
En este punto tendremos que empezar a determinar que es un proceso y una tarea.
Anteriormente dijimos que un programa se transformaba en proceso en el momento en
que este se ejecutaba y estaba en memoria. Además del nombre que el proceso recibe,
que es el nombre del programa que esta corriendo, recibe también un número
identificativo llamado PID (process ID, o ID de proceso). Si ejecutamos el comando ps
veremos los procesos que están ejecutando en este momento con nuestro UID, es decir
que estamos corriendo nosotros mismos
[shrek@pantano:~]$ ps
PID TTY STAT TIME COMMAND
172 p0 S 0:00 -bash
184 p0 R 0:00 ps
[shrek@pantano:~]$
Se puede ver que están corriendo dos procesos, el bash (que es el intérprete de
comandos) y el proceso ps que es el que estamos usando en este momento en una
terminal determinada. Como se puede ver el primer número es el PID que el sistema le
asigna al proceso y en la columna COMMAND se puede ver el nombre del proceso. De
ninguna manera estos son todos los procesos que se están ejecutando en el sistema. Si
se quisieran ver todos los procesos tendrían que poner ps -ax con lo que obtendrían un
listado con todos los procesos que se estén ejecutando. Como se puede apreciar, están
ambos procesos ejecutándose al mismo tiempo, pero solo uno de ellos esta activo, el
comando ps. Nos podemos dar cuenta de esto ya que en la columna STAT aparece en
la línea del bash la letra S de SLEEP, ya que en ese momento el intérprete de comandos
esta esperando a que el procesops termine. Y es aquí donde esta la diferencia entre
proceso y tarea. Aunque ambos son procesos, una tarea se refiere al proceso que esta
corriendo. Este calificativo solo lo da el shell del sistema cuando se utilizan los controles
de tareas dado que no todos los intérpretes de comandos soportan este tipo de control.
Primer y segundo plano
Cualquier proceso puede estar en primer o segundo plano. Lo único a tener en cuenta
es que solo un proceso estará en primer plano al mismo tiempo y es con el que estemos
trabajando e interactuando en ese momento. Un proceso que este en segundo plano no
recibirá ninguna señal de parte nuestra, es decir que no nos podemos comunicar con él
a través, por ejemplo, del teclado. La utilidad de enviar un programa a segundo plano
esta dada por el hecho de que existen tareas que no requieren de nuestro control para
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
que se ejecuten. Por ejemplo, bajar algún archivo de Internet, compilar el kernel u otro
programa. Estas son tareas que pueden ser lanzadas tranquilamente en segundo plano.
Para lanzar un proceso en segundo plano, tendremos que poner a continuación del
comando el símbolo &. Para ejemplificar esto usaremos el comando find y dejaremos
que busque todos los archivos que existen en el disco
Esto nos mostraría una lista bastante larga de archivos por pantalla y nos quedaríamos
sin el control del intérprete de comandos mientras esta ejecutándose. Podríamos usar el
dispositivo null, que si recuerdan era como un agujero negro donde todo lo que se
enviaba a él desaparecía, para redirigir la salida y que no saliera por pantalla
[shrek@pantano:~]$ jobs
[1]+ Running find / -name "*" >/dev/null &
[shrek@pantano:~]$
Podremos eliminar un proceso que se esta ejecutando con la ayuda del comando kill
seguido bien sea del número de trabajo precedido de un signo % o del número de PID.
De esta forma estamos matando al proceso pero puede darse el caso de que este tarde
en desaparecer dado que tiene que limpiar el entorno, por esto muchas veces parecerá
que no nos a hecho caso. En realidad el proceso esta haciendo una limpieza del sistema
evitando así el mal funcionamiento del mismo y/o una inconsistencia en los datos con
que trabajaba. Como ejemplo usaremos otro comando muy típico, el comando yes. Este
comando enviará a la salida estándar continuamente la letra y. Sirve este comando para
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Como podrán ver, en el momento en que se mando el comando kill, no hubo ningún
mensaje. Solo después de ejecutar el comando jobs se nos informo que el trabajo
número 1 había finalizado (TERMINATED). Podemos también hacer lo mismo
empleando el número de PID con lo que obtendremos idénticos resultados.
Los procesos pueden ser suspendidos temporalmente hasta que nosotros dispongamos,
para así relanzarlos y que continúen ejecutando donde se habían quedado. Esto es de
gran utilidad. Supongamos que se esta trabajando con el editor de texto Vi y no queremos
trabajar en otra consola, solo tenemos que enviar al programa Vi a dormir un rato y
tendremos el intérprete de comandos a nuestra disposición. En la mayoría de los
programas, se envía una señal de terminación utilizando las teclas Ctrl-C, para poder
enviar un trabajo a dormir utilizaremos otra combinación de teclas Ctrl-Z. Hay que tener
en cuenta que no es lo mismo un trabajo en segundo plano que uno que es enviado a
dormir. Un trabajo en segundo plano sigue ejecutándose, en cambio uno que se envía a
dormir queda esperando en el lugar donde estaba hasta que sea despertado. Para
ejemplificar esto, enviaremos al comando yes a segundo plano y luego lo pondremos a
dormir.
[shrek@pantano:~]$ yes >/dev/null &
[shrek@pantano:~]$ yes >/dev/null
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Como pueden ver, el proceso que se envió a segundo plano todavía se esta ejecutando
(Running), en cambio la que se mando dormir estaparada esperando que la relancemos
(Stopped). Para ponerlo en primerplano o despertarlo a cualquiera de los dos podemos
usar el signo "%"seguido del número del proceso o bien el comando fg.
[shrek@pantano:~]$ %1 yes
>/dev/null &
[shrek@pantano:~]$ fg %1 yes
>/dev/null
Podremos enviar también un comando que esta durmiendo a que ejecute en segundo
plano a través del comando bg
[shrek@pantano:~]$ jobs
[1]- Stopped yes >/dev/null
[shrek@pantano:~]$ bg %1
[1]+ yes >/dev/null &
[shrek@pantano:~]$ jobs
[1]+ Running yes >/dev/null &
Cabe decir que tanto fg como bg son comandos internos del intérprete de comando. Esto
es así porque es el mismo intérprete quien hace el control de tareas. Puede darse el caso
de que existan intérpretes de comandos que no tengan soporte para control de tareas.
Programas de seguimiento (ps y top)
Los sistemas GNU/Linux cuentan varios programas para efectuar el seguimiento de los
procesos que se están ejecutando en el sistema. Entre los mas usados en la interfase de
texto están los programas ps y top.
ps
Sin ninguna opción dará la lista de procesos que están corriendo desde la terminal donde
se ejecuto el ps
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
[shrek@pantano:~]$ ps
PID TTY TIME CMD 9648 tty2 00:00:02 bash
9659 tty2 00:00:00 ps
[shrek@pantano:~]$
Las columnas que nos quedan por explicar son TTY y TIME. TTY identifica la consola
donde se esta ejecutando el proceso. En este caso es una terminal local. La columna
TIME nos indica la cantidad de tiempo total que el proceso se ha estado ejecutando.
Como se puede ver el tiempo es de 2 segundos. Aunque este horas el sistema
encendido, el bash pasa su mayor parte del tiempo esperando que se le envie algún
comando para ejecutar, mientras tanto esta esperando dormido. Puede verse en la
columna STAT en que estado se encuentra el programa. Por ejemplo, que vemos que el
bash en el momento de ejecutarse el comando ps esta dormido (S) y que el proceso ps
esta activo (R). Si añadimos la opción l tendremos un listado largo del comando ps. En
algunas versiones se usa la opción -l
[shrek@pantano:~]$ ps l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 100 9648 1 9 0 4368 1400 11b1d0 S tty2 0:01 -bash 4 100 9660 9648 17
0 2676 732 - R tty2 0:00 ps l
Dentro de esta información esta la columna del UID que identifica el dueño del proceso.
El PID del proceso y también el PPID que es el PID del proceso padre. Podemos apreciar
que el padre del comando ps l es el -bash. NI viene de nice y es un nivel que se otorga
a un proceso para requerir cierto privilegio. En este caso tiene uno muy bajo por ende un
proceso que tenga un valor mayor tendrá más tiempo de procesador para trabajar. SIZE
es el tamaño que tiene el proceso. RSS es el tamaño del proceso que se encuentra
residente en la memoria. WCHAN es el nombre de la función del kernel donde el proceso
esta durmiendo. Esta expresado en forma hexadecimal.
Otra forma en la que podemos ver el padre de cada proceso es a través del modificador
f.
[shrek@pantano:~]$ ps f
PID TTY STAT TIME COMMAND
9648 tty2 S 0:02 -bash
9660 tty2 R 0:00 \_ps f [shrek@pantano~]$
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
top
Ahora bien, el comando ps nos muestra una radiografía de los procesos en el momento,
pero no nos muestra los cambios que se van teniendo. Para esto contamos con el
comando top. El mismo muestra en tiempo real la situación de los procesos que se están
ejecutando en el sistema, ordenados por defecto según el porcentaje la CPU que estén
usando. Al ejecutarlo se podrá ver otra información adicional, como la cantidad de
usuarios que están en el sistema, cuantos procesos están corriendo y de estos cuantos
estas activos, cuantos durmiendo, cuantos en proceso de terminar (ZOMBIE) y cuantos
finalizados. Además se podrá ver la cantidad e memoria física total, la cantidad usada y
la cantidad libre; así como también se podrá obtener la misma información de la memoria
swap.
El listado que nos mostrará contendrá el número de PID, el usuario que lo está
ejecutando, la prioridad del proceso (PRI), el valor nice (NI), el tamaño del proceso
(SIZE), el tamaño total del proceso junto con los datos que maneja (RSS), el tamaño
usado por el proceso en la memoria (SHARE), el estado del proceso(STAT), el tamaño
de las librerías del proceso (LIB), el porcentaje de CPU ( %CPU) y de memoria
(%MEM) así como también el tiempo de ejecución (TIME) y el nombre del proceso
(COMMAND).
Cron es un servicio de Linux que permite planificar tareas o procesos para una ejecución
periódica. Con cron podremos planificar tareas como por ejemplo, borrar ficheros
temporales todas las noches, apagar la máquina a una hora determinada, realizar copias
de seguridad cada semana automáticamente, etc.La forma normal de programar una
tarea es con el comando crontab. La sintaxis de este comando es la siguiente:
• crontab -l: muestra las entradas programadas por el usuario.
• crontab -e: edita el fichero de configuración del usuario.
• crontab -r: elimina el fichero crontab del usuario.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
• minutos: 0-59
• horas: 0-23
• día-mes: 1-31
• mes: 1-12
• día-semana: 0-7 (el domingo se puede indicar con 0 o con 7)
Veamos a continuación algún ejemplo. Supongamos que el usuario alex quiere realizar
una copia de los documentos que tiene en el directorio /home/alex/documents/. El
contenido de todo ese directorio lo quiere copiar al directorio
/home/alex/copiaseguridad/ el día 15 de cada mes a las 22:30 horas. ¿Cómo se haría
con cron? Pues en primer lugar debería editar su fichero de configuración crontab
escribiendo crontab -e en la consola (Aplicaciones/Accesorios/Terminal).Cuando lo
haga se abrirá su fichero de configuración con el editor de textos predeterminado. El
editor de textos utilizado es el definido en las variables EDITOR o VISUAL. En ese fichero
el usuario alex escribirá la siguiente línea:
30 22 15 * * cp -r /home/alex/documents/* /home/alex/copiaseguridad/
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
El símbolo ‘*’ en este caso indica que la tarea se ejecutará todos los meses caiga en el
día de la semana que caiga el día 15. Por eso ponemos ‘*’ en el campo mes y
díasemana.Veamos otro ejemplo. El usuario alex quiere programar una tarea para que
se apague la máquina todos los días a las 3:00. En este caso la línea en el fichero de
configuración crontab quedará de la siguiente manera: 3 0 * * * halt
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
El guión permite especificar un rango. Otra forma de indicar lo mismo que el ejemplo
anterior empleando el guión sería:
El carácter barra (/) permite especificar intervalos en los rangos. Por ejemplo, si hablamos
de horas, 8-16/2 significa que el comando se ejecutará a las 8, 10, 12, 14 y 16 horas. Si
hablamos de minutos, por ejemplo, */5 significa cada 5 minutos.
Se debe aclarar también que en el fichero de configuración se pueden indicar los días de
la semana y meses con abreviaturas en vez de números (sun, mon, jan, feb…)
El comando at
El comando at permite ejecutar tareas a una determinada hora. El formato básico de este
comando es: at hora . Si queremos, por ejemplo, apagar la máquina a las 22:30,
tendríamos que abrir el terminal y escribir en la línea de comandos: at 22:30. A
continuación aparecerá el prompt de at en el que escribiremos el comando a ejecutar, en
nuestro caso el comando halt. Cuando lo hayamos hecho pulsaremos la combinación de
teclas Control+D para salir de at.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
• now + intervalo, donde intervalo puede ser minutes, hours, days, weeks o months.
Si, por ejemplo, queremos ejecutar una tarea dentro de 3 horas, la manera correcta
sería: at now+3 hours.
• at hora día. Ejemplos: at 5am May 20, at 20:30 May, at 20:30 5/5/2008. El parámetro
día es opcional. También podemos usar noon (mediodía), teatime (4pm) o midnight
(00:00).
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve
RIF J-30298221-9
Este es un comando que nació cuando era práctica comú el realizar respaldos en cinta,
lo que le proporcionó desde sus inicios a tar una serie de funcionalidades poco
conocidas, siendo esto el tema a desarrollar a continuación.
Fecha de publicación: 9 de julio de 2003 (1a. parte) y 16 de julio de 2003 (2a. parte).
tar es uno de los comandos más antiguos de Unix y en algunos casos, muy subutilizado.
Linux usa la versión GNU Tar, que puede ser localizada en
http://www.gnu.org/software/tar/, pudiéndose instalar en la mayoría de los sabores de
Unix actuales y MS DOS.
Sirve para generar y administrar archivos que contengan otros archivos, muy utilizados
para realizar respaldos; de hecho, originalmente fue consebido para respaldos en cintas.
A pesar de la sencillez con que lo utilizamos, tar es uno de los más completos programas
en su tipo, que puede manejar otros formatos, agregar nuevos archivos a los paquetes
ya creados y mucho más. Generalmente los archivos generados tiene terminación .tar,
pero esto no es un requisito para su buen funcionamiento; en ocasiones se les denomina
TARBALL o archivos TAR.
tar tiene dos clases de argumentos, los operadores y las opciones. De los primeros
existen ocho, por lo que tenemos ocho modos de operación. Este documento no es una
visión exahustiva de este comando, sino sólo una guía de referencia rápida, por lo que
sólo se verán las formas más usuales de utilizarlo.
Tenemos tres formas de llamar los argumentos, la forma larga, la corta y el estilo antiguo
(mantenido principalmente por compatibilidad con el tar de Unix), de lo que mostramos
algunos ejemplos que producen el mismo resultado:
Para efectos de estos ejercicios, vamos a utilizar una carpeta temporal donde se incluyan
estos archivos:
Para crear un archivo tar, podemos usar dos formas, la primera implica declarar los
archivos uno a uno, dentro de la carpeta que los contiene o tecleando la ruta de los
mismos.
Otra forma es declarando la carpeta completa que los contiene, lo que implica estar fuera
de la misma o declarar su ruta completa. Esta forma tiene la ventaja de respetar la
estructura interna de las subcarpetas.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve Copyright
Noviembre 2.009
RIF J-30298221-9
Nota: El parámetro v es opcional, lo utilizamos en estos ejercicios para que nos muestre
la salida del sistema.
Una vez que ya tenemos un tar, podemos ver su contenido con -t o --list, como queramos
ejecutarlo.
# tar -t --file=temporal.tar
temp/
temp/texto1.txt
temp/archivo.txt
temp/archivo2.txt
temp/archivo3.txt
temp/archivo4.txt
En este caso, el uso de --file= es obligatorio. Si se utiliza esto con el parámetro -v,
parecerá que utilizamos ls -l en una carpeta.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve Copyright
Noviembre 2.009
RIF J-30298221-9
# tar -xvf
temporal.tar
temp/ temp/texto1.txt
temp/archivo.txt
temp/archivo2.txt
temp/archivo3.txt
temp/archivo4.txt
Al igual que --list, es necesario especificarle la ruta que incluye su nombre, en caso
contrario fallará.
Si necesitamos actualizar el contenido de nuestro tar, digamos que con más archivos o
carpetas, lo podemos hacer con --update (-u), para lo que necesitaremos cambiar un
poco la estructura de nuestra carpeta de ejercicios. Para ello, vamos a crear dos carpetas
internas y le copiaremos un archivo a cada una, de manera que tengan contenido.
# mkdir temp/acceso1
# mkdir temp/acceso2
# cp temp/archivo2.txt temp/acceso1
# cp temp/archivo3.txt temp/acceso2
Podemos verificar su contenido para asegurarnos que sólo contiene los .txt del primer
nivel.
temp/acceso1/archivo2.txt
Ocasionalmente es conveniente realizar los respaldos con otros tar, para lo que usamos
la función --concatenate (--catenate, -A); primeramente vamos a crear respaldos de las
carpetas acceso1 yacceso2 .
Ahora, procedemos a generar un temporal.tar que sólo incluya los archivos .txt originales.
Y veamos su contenido.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve Copyright
Noviembre 2.009
RIF J-30298221-9
Para eliminar un elemento del conjunto, utilizamos --delete, que no tiene una forma corta.
Una operación que pocos saben, es poder comprimir archivos al vuelo con -compress (-
z).
Algo que poca gente utiliza es el comando --multi-volume (-M), muy útil cuando
realizamos respaldos de sistemas completos y que sobrepasan el límite del dispositivo
de recepción, como en los casos de unidades de cinta.
Av. Libertador c/c Alameda Edificio EXA, piso 2 Oficinas 211- 213, El Rosal, Caracas – Venezuela
Teléfonos (0212) 953-5445 / 953-72-22/ 953-34-237502000 7502003 7502001
www.softrain.com.ve info@softrain.com.ve Copyright
Noviembre 2.009