Está en la página 1de 67

RIF J-30298221-9

FUNDAMENTOS DE LINUX

INTRODUCCION

Linux se ha convertido en la actualidad unos de los sistemas operativos más seguro y


sencillo de usar ya que en la actualidad no existen virus que lo pueda atacar y perjudicar
el sistema operativo.

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 1: en este módulo aprenderemos los elementos esenciales en todo


sistema operativo para que el usuario pueda interactuar con la máquina de una
forma sencilla como lo es en la actualidad.

• Modulo2: Se conocerá como accesar al sistema a modo gráfico y modo consola


ya que es de suma importancia saber este modulo debido a que es el modo de
ingresar al sistema y poder interactuar con él.

• Modulo 3: Crear un usuario en un sistema operativo es de sumo interés para un


administrador de sistema porque se podrá organizar y administrar el sistema de
forma eficiente y se determinara que usuario pudo haber ocasionado un problema
imprevisto.

• Modulo 4: El modulo se verá como un administrador de sistema podrá utilizar de


forma sencilla y eficiente el modo consola y podrá manejar comandos sencillos
para accesar a un archivo y carpeta, así como también ver todas las opciones que
tienen los comandos y sus beneficios.

• 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.

• Modulo 7: El editor vi es el editor por excelencia de UNIX. Es bastante potente y


complicado de manejar a pleno rendimiento, debido a la gran cantidad de opciones
que tiene, pero es fácil dar los primeros pasos e ir avanzando poco a poco. Es
difícil de utilizar al principio, pero puede llegar a convertirse en el más cómodo y
rápido.
• Modulo 8: 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.

• Modulo 9: Anteriormente dijimos que un programa se transformaba en proceso


en el momento en que este se ejecutaba y estaba en memoria. Además del

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.

MODULO I COMPONENTES DEL SISTEMA OPERATIVO

Los componentes son:

KERNEL, SHELL, ESTRUCTURA DE ARCHIVOS, MULTI TAREAS, MULTI USUARIO.

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:

Es el intérprete de comandos de UNIX, el equivalente al COMMAND.COM de MSDOS.


Es decir, es el que coge todo lo que tecleamos y lo convierte en un programa que se
ejecuta.

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.

Estructura de directorios (File System)

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.

Un SO multiusuario permite a más de un solo usuario accesar una computadora. Claro


que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar multitareas.
Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue
originalmente diseñado para correr en una minicomputadora, era multiusuario y
multitarea desde su concepció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

MODULO II ACCESO

AL SISTEMA

Login:

Control de acceso a un cierto sistema, normalmente basado en el nombre de usuario y


una contraseña (password).

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 un sistema Linux existen 6 seudo-terminales independientes. Se puede pasar de una


a otra presionando simultáneamente la tecla Ctrl+Alt con la tecla F1 - F6. Cada seudo-
terminal permite el ingreso al sistema en forma independiente a diferentes cuentas. El
sistema multi-usuario es una gran característica de los sistemas Unix y resulta muy
adictiva.

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

El fichero de contraseñas es sin discusión el fichero más crítico en Linux (y en la mayoría


de otros Unix). Contiene el mapa de nombres de usuarios, identificaciones de usuarios y
la ID del grupo primario al que pertenece esa persona. También puede contener el fichero
real, aunque es más probable (y mucho más seguro) que utilice contraseñas con shadow
para mantener las contraseñas en /etc/shadow. Este fichero TIENE que ser legible por

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

todo el mundo, o si no comandos tan simples como ls dejarían de funcionar


correctamente. El campo GECOS puede contener datos tales como el nombre real, el
número de teléfono y otro tipo de cosas parecidas en cuanto al usuario, su directorio
personal, que es el directorio en que se coloca al usuario por defecto si hace un login
interactivo, y el shell de login tiene que ser un shell interactivo (como bash, o un programa
de menús), y estar listado en /etc/shells para que el usuario pueda hacer login. El formato
es:

nombreusuario: contraseña_cifrada: UID: GID:


campo_GECOS:direct_personal:login_shell

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

El fichero de shadow alberga pares de nombres de usuario y contraseñas, así como


información contable, como la fecha de expiración, y otros campos especiales. Este
fichero debería protegerse a toda costa, y sólo el root debería tener acceso de lectura a
él.

/etc/groups

El fichero de grupos contiene toda la información de pertenencia a grupos, y


opcionalmente elementos como la contraseña del grupo (generalmente almacenado en

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:

nombregrupo: contraseña_cifrada: GID: miembro1, miembro2, miembro3

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).

MODULO III ADMINISTRACION DE USUARIO

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

• También llamado super usuario o administrador.


• Su UID (User ID) es 0 (cero).
• Es la única cuenta de usuario con privilegios sobre todo el sistema.
• Acceso total a todos los archivos y directorios con independencia de
propietarios y permisos.
• Controla la administración de cuentas de usuarios.
• Ejecuta tareas de mantenimiento del sistema.
• Puede detener el sistema.
• Instala software en el sistema.
• Puede modificar o reconfigurar el kernel, controladores, etc.

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

• Lo anterior para proteger al sistema de posibles formas de vulnerar la


seguridad.
• No tienen contraseñas pues son cuentas que no están diseñadas para
iniciar sesiones con ellas.
• También se les conoce como cuentas de "no inicio de sesión" (nologin).
• Se crean (generalmente) automáticamente al momento de la instalación de
Linux o de la aplicación.
• Generalmente se les asigna un UID entre 1 y 100 (definido en
/etc/login.defs)

Usuarios normales Se usan para usuarios individuales.

• Cada usuario dispone de un directorio de trabajo, ubicado generalmente en


/home.
• Cada usuario puede personalizar su entorno de trabajo.
• Tienen solo privilegios completos en su directorio de trabajo o HOME.
• Por seguridad, es siempre mejor trabajar como un usuario normal en vez
del usuario root, y cuando se requiera hacer uso de comandos solo de root,
utilizar el comando su.
• En las distros actuales de Linux se les asigna generalmente un UID superior
a 500.

/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

La información de cada usuario está dividida en 7 campos delimitados cada uno


por ':' dos puntos.

/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

Anteriormente (en sistemas Unix) las contraseñas cifradas se almacenaban en el mismo


/etc/passwd. El problema es que 'passwd' es un archivo que puede ser leído por cualquier
usuario del sistema, aunque solo puede ser modificado por root. Con cualquier
computadora potente de hoy en día, un buen programa de descifrado de contraseñas y
paciencia es posible "crackear" contraseñas débiles (por eso la conveniencia de cambiar
periódicamente la contraseña de root y de otras cuentas importantes). El archivo
'shadow', resuelve el problema ya que solo puede ser leido por root. Considérese a
'shadow' como una extensión de 'passwd' ya que no solo almacena la contraseña
encriptada, sino que tiene otros campos de control de contraseñas.

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

• El campo 1 indica el usuario.


• El campo 2 'x' indica la contraseña del grupo, que no existe, si hubiera se mostraría
un 'hash' encriptado.
• El campo 3 es el Group ID (GID) o identificación del grupo.
• El campo 4 es opcional e indica la lista de grupos a los que pertenece el usuario
Actualmente al crear al usuario con useradd se crea también automáticamente su
grupo principal de trabajo GID, con el mismo nombre del usuario. Es decir, si se
añade el usuario 'sergio' también se crea el /etc/group el grupo 'sergio'. Aun asi,
existen comandos de administración de grupos que se explicarán más adelante.

Añadir usuarios con useradd

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:

• -c añade un comentario al momento de crear al usuario, campo 5 de /etc/passwd


• -d directorio de trabajo o home del usuario, campo 6 de /etc/passwd
• -e fecha de expiración de la cuenta, formato AAAA-MM-DD, campo 8 de
/etc/shadow
• -g número de grupo principal del usuario (GID), campo 4 de /etc/passwd -G
otros grupos a los que puede pertenecer el usuario, separados por comas.
• -r crea una cuenta del sistema o especial, su UID será menor al definido en
/etc/login.defs en la variable UID_MIN, además no se crea el directorio de inicio.
• -s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica,
bash, es el que queda establecido.
• -u UID del usuario, si no se indica esta opción, automáticamente se establece el
siguiente número disponible a partir del último usuario creado.

Ahora bien, realmente no hay prácticamente necesidad de indicar ninguna opción ya que
si hacemos lo siguiente:

#> useradd juan

Se creará el usuario y su grupo, asi como las entradas correspondientes en /etc/passwd,


/etc/shadow y /etc/group. También se creará el directorio de inicio o de trabajo:
/home/juan y los archivos de configuración que van dentro de este directorio y que más
adelante se detallan.
Las fechas de expiración de contraseña, etc. Quedan lo más amplias posibles asi que no
hay problema que la cuenta caduque, asi que prácticamente lo único que faltaría sería
añadir la contraseña del usuario y algún comentario o identificación de la cuenta. Como

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ñadir el password o contraseña se estudiara en un momento y viendo las opciones con


'-c' es posible establecer el comentario, campo 5 de /etc/passwd:
#> useradd -c "Juan Perez Hernandez" juan

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:

#> useradd -d /usr/juan -s /bin/csh -u 800 -c "Juan Perez Hernandez" juan

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.

Modificar usuarios con usermod

Como su nombre lo indica, usermod permite modificar o actualizar un usuario o cuenta


ya existente. Sus opciones más comunes o importantes son las siguientes:
• -c añade o modifica el comentario, campo 5 de /etc/passwd
• -d modifica el directorio de trabajo o home del usuario, campo 6 de /etc/passwd
• -e cambia o establece la fecha de expiración de la cuenta, formato AAAA-MMDD,
campo 8 de /etc/shadow
• -g cambia el número de grupo principal del usuario (GID), campo 4 de /etc/passwd
• -G establece otros grupos a los que puede pertenecer el usuario, separados por
comas.
• -l cambia el login o nombre del usuario, campo 1 de /etc/passwd y de /etc/shadow
• -L bloque la cuenta del usuario, no permitiendolé que ingrese al sistema. No borra
ni cambia nada del usuario, solo lo deshabilita.
• -s cambia el shell por defecto del usuario cuando ingrese al sistema.
• -u cambia el UID del usuario.
• -U desbloquea una cuenta previamente bloqueada con la opción -L. Si quiseramos
cambiar el nombre de usuario de 'sergio' a 'sego':

#> usermod -l sego sergio

Casi seguro también cambiará el nombre del directorio de inicio o HOME en /home, pero
si no fuera así, entonces:

#> usermod -d /home/sego sego

Otros cambios o modificaciones en la misma cuenta:

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

#> usermod -c "supervisor de area" -s /bin/ksh -g 505 sego

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:

#> usermod -L sego

Eliminar usuarios con userdel

Como su nombre lo indica, userdel elimina una cuenta del sistema, userdel puede ser
invocado de tres maneras:

#> userdel sergio

Sin opciones elimina la cuenta del usuario de /etc/passwd y de /etc/shadow, pero no


elimina su directorio de trabajo ni archivos contenidos en el mismo, esta es la mejor
opción, ya que elimina la cuenta pero no la información de la misma.

#> userdel -r sergio

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.

#> userdel -f sergio

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

Cambiar contraseñas con passwd


Crear al usuario con useradd es el primer paso, el segundo es asignarle una contraseña
a ese usuario. Esto se logra con el comando passwd que permitirá ingresar la contraseña
y su verificación:

#> passwd sergio


Changing password for user prueba.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
#>

El usuario root es el único que puede indicar el cambio o asignación de contraseñas de


cualquier usuario. Usuarios normales pueden cambiar su contraeña en cualquier
momento con tan solo invocar passwd sin argumentos, y podrá de esta manera cambiar
la contraseña cuantas veces lo requiera.

passwd tiene integrado validación de contraseñas comunes, cortas, de diccionario, etc.


asi que si por ejemplo intento como usuario normal cambiar mi contraseña a 'qwerty' el
sistema me mostrará lo siguiente:

$> 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:

#> useradd ana


#> passwd ana

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:

$> man passwd

MODULO IV
ADMINISTRANDO ARCHIVOS Y CARPETAS CMD

Uso de los comandos de archivo


Cada uno de los comandos que se presentan en esta sección incluye un ejemplo de su
uso. Realice los ejemplos según vaya leyendo el texto. Esta práctica hará que los
comandos y sus respectivos conceptos sean más fáciles de entender y recordar.

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.

Para cerciorarse de que se encuentra en su directorio de usuario, escriba sola-mente el


comando cd (abreviatura de change directory). Esto le llevará a su di-rectorio de usuario
(predeterminado). Después escriba el comando pwd (print working directory) para
mostrar su posición actual dentro del sistema de archi-vos. El directorio que aparezca
será su directorio de usuario.

$ 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

En este ejemplo, el directorio de usuario es /export/home/nombre_del_usua-rio, en


donde nombre_del_usuario es el nombre del usuario al que pertenece el directorio de
usuario.

Crear un archivo de prueba


Utilice el comando touch para crear un archivo vacío. Si no existe un archivo con el
nombre que haya especificado, el comando touch crerá un archivo vacío (si dicho archivo
ya existe, touch actualizará la hora del último acceso al archi-vo).

$ touch archivoprueba
$

Listar archivos (ls)


Ahora liste el archivo con el comando ls para verificar que lo ha creado:

$ ls archivoprueba tempfile

Si introduce el comando ls solamente, éste listará todos los archivos situados en su


posición actual. Si introduce el comando ls con un nombre de archivo determinado, listará
sólo dicho archivo, si es que existe.

Copiar archivos (cp)


Utilice el comando cp para copiar tempfile en un archivo llamado copyfi-le:

$ 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):

$ ls *file copyfile tempfile

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

Mover y renombrar archivos (mv)


Puede mover y renombrar archivos utilizando el mismo comando: mv (move). En este
ejemplo, use el comando mv para renombrar tempfile como emptyfile:

$ mv tempfile emptyfile
$
Ahora liste de nuevo ambos archivos para verificar el cambio:

$ ls *file
copyfile emptyfile

Como ve, tempfile ha sido reemplazado por emptyfile.

Eliminar archivos (rm)


Finalmente, use el comando rm (remove) para eliminar copyfile y comprue-be el resultado
con el comando ls:

$ rm copyfile
$ ls *file
emptyfile

Atención- Una vez que elimine un archivo, éste desaparecerá para


siempre. A no ser que exista una copia de seguridad, no podrá restablecer
el archivo. Tenga cuidado al usar el comando rm, y una especial precaución
si lo usa junto al carácter comodín (*). Los archivos eliminados con rm no
podrán recuperar

Mostrar el contenido del archivo (more, cat)


Use el comando more para mostrar el contenido de un archivo. Escriba more seguido
del nombre del archivo que se va a mostrar. El contenido del archivo se desplazará

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:

--More--(nn%) [Press space to continue, 'q' to quit.]

donde nn es el porcentaje de archivo ya mostrado.

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:

$ cat file1 file2 file3 > bigfile


$ ls *file
bigfile
file1 file2
file3
$

Mostrar el tipo de archivo (file)


Algunos archivos como los binarios o los ejecutables no se pueden imprimir ni mostrar
en pantalla. El comando file puede resultarle útil si no está seguro del tipo de archivo.

Use el comando file para mostrar el tipo de archivo:

$ 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 (/).

Los directorios pueden contener sólo directorios, sólo archivos, o ambos.

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

Imprimir el directorio en uso (pwd)


El comando pwd (print working directory) le indica donde se encuentra dentro de la
jerarquía del sistema de archivos:

$ 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.

Cambiar el directorio en uso (cd)


El comando cd (change directory) le permite moverse dentro de la jerarquía del sistema
de archivos:

$ cd /usr/lib
$ pwd
/usr/lib

Si escribe el comando cd solamente, vuelve a su directorio de usuario. Por ejemplo, si su


directorio de usuario era /home/user1:

$ 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

Donde nombre_del_usuario es el nombre de entrada de otro usuario, y cambiaría al


directorio de usuario de dicho usuario.

Nota - Si está utilizando el shell Bourne, el método abreviado ~ no funcionará.

Si está usando el shell Bourne, es posible que su administrador de sistemas lo haya


configurado para que Vd. pueda escribir $home para especificar su direc-torio de usuario.
Si este es el caso escriba:

$ $home/music

Esto le trasladará al subdirectorio music de su directorio de usuario. Del mis-mo modo,


si escribe:

$ $homenombre_del_usuario

Se trasladará al directorio de usuario del usuario que haya especificado, donde


username representa el nombre de entrada del otro usuario.

El directorio situado justo "por encima" de un subdirectorio se denomina direc-torio


maestro. En el ejemplo anterior, /home es el directorio maestro de /ho-me/user1. El
símbolo.. ("punto, punto") representa el directorio maestro. Por lo tanto, el comando cd ..
Cambia el directorio en uso al directorio maestro, como muestra este ejemplo:

$ 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.

Crear un directorio (mkdir)


Crear un directorio nuevo es fácil. Escriba el comando mkdir seguido del nom-bre del
nuevo directorio:

$ mkdir veggies
$ cd veggies
$ mkdir broccoli
$ cd broccoli
$ pwd
/home/user2/veggies/broccoli

Nombres de ruta de acceso relativos


El nombre de ruta de acceso completo de un directorio o de un archivo comien-za por un
signo (/) y describe toda la estructura del directorio comprendida entre dicho archivo (o
directorio) y el directorio raíz. Sin embargo, a menudo puede usar un nombre mucho más
corto que define el archivo o directorio en relación con el directorio actual en uso.

Cuando se encuentre en el directorio maestro, puede desplazarse a un subdi-rectorio


utilizando sólo el nombre del directorio y no el nombre de ruta de ac-ceso completo. En
el ejemplo anterior, el comando cd veggies usa el nombre de ruta de acceso relativo del
directorio veggies. Si el directorio en uso actual es /home/user2, el nombre de ruta de
acceso completo de este directorio es /home/user2/veggies.

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.

Mover y renombrar directorios


Un directorio se renombra moviéndolo a un nombre diferente. Use el comando mv para
renombrar archivos:

$ 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

En este ejemplo, el directorio carrots se mueve de veggies a veggies2 con el comando


mv.

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

Eliminar directorios (rmdir)


Para eliminar un directorio vacío utilice el comando rmdir como sigue:

$ rmdir veggies3
$

Si el directorio contiene todavía archivos o subdirectorios, el comando rmdir no lo


eliminará.

Use rm -r (agregando la opción recursiva -r al comando rm) para eliminar un directorio y


su contenido, incluyendo cualquier subdirectorio y sus archivos, del modo siguiente:

$ rm -r veggies3
$

Atención- Los directorios eliminados con el comando rmdir no pueden


reco-brarse, igual que sucede con los directorios y su contenido eliminados con el
comando rm -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

MODULO V
HERRAMIENTAS DE BUSQUEDAS

Buscar archivos (find)


El comando find busca archivos que cumplan las condiciones que Vd. especifique,
comenzando por el directorio que nombre. Por ejemplo, si quiere buscar nombres de
archivos que concuerden con determinado patrón o que hayan sido modificados durante
un periodo de tiempo determinado.

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:

$ find directorio opciones

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).

La opción -name nombre_de_archivo le indica a find que seleccione archivos que


concuerden con nombre_de_archivo. Aquí, nombre_de_archivo se considera como el
componente situado más a la derecha del nombre de ruta de acceso completo de un
archivo. Por ejemplo, el componente situado más a la derecha de /usr/lib/calendar sería
calendar. A esta parte del nombre de un ar-chivo se la denomina a menudo nombre
base.

Por ejemplo, para ver que archivos del directorio en uso y sus subdirectorios terminan en
s, escriba:

$ find . -name '*s' -print


./programs
./programs/graphics

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

Otras opciones incluyen:

-name nombre_de_archivo

Selecciona archivos cuyo elemento situado más a la derecha concuerda con


nombre_de_archivo. Escriba nombre_de_archivo entre comillas si éste incluye
patrones de sustitución de nombre de archivo.

-user id_usuario

Selecciona archivos pertenecientes a id_usuario. id_usuario pude ser un nom-bre de


entrada o un número de identificación de usuario.

-group grupo

Selecciona archivos pertenecientes a group.

-m time n

Selecciona archivos que han sido modificados hace n días.

-newer checkfile

Selecciona archivos que han sido modificados más recientemente que checkfi-le.

Puede especificar un orden de preferencia, combinando opciones entre parén-tesis


(precedidos por una barra inclinada), (por ejemplo,\(options\) ). Dentro de este tipo de
paréntesis se puede usar el indicador -o entre las opciones para indicar que find
seleccione los archivos que cumplan esta categoría, en vez de aquellos que cumplan
ambas.:

$ find . \( -name AAA -o -name BBB \) -print


./AAA
./BBB

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:

$ find . \!-name BBB -print

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:

-exec command '{}' \;

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á

$ find . \( -name junk -o -name dummy \) -exec rm '{}' \;

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

Donde el patrón a buscar es una expresión regular.

Crear un archivo con los días de la semana, uno por línea; llamarle dias.

grep martes dias grep tes dias

Muestra las líneas del archivo dias que contienen la cadena "tes".

grep unix01 /etc/passwd

grep unix0[1-9] /etc/passwd

ls -l /usr | grep '^d'

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

MODULO VI ADMINISTRANDO PERMISOLOGIA A ARCHIVOS Y CARPETAS

Seguridad de archivos y directorios

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.

Estos son los tipos básicos de acceso de archivos y directorios:

• r - permiso de lectura. Un archivo debe poderse leer si se quiere examinar o


copiar. Un directorio debe poderse leer si se quiere listar su contenido.
• w - permiso de escritura. Un archivo debe poder escribirse si desea
modificarlo, eliminarlo o renombrarlo. Un directorio debe poder escribirse para
agregar o eliminar archivos en él.
• x - permiso de ejecución. Un archivo con permisos ejecutables es aquel que
Vd. puede procesar, como por ejemplo un programa. Un directorio debe ser
ejecutable si quiere tener acceso a cualquiera de sus subdirectorios.

Existen tres categorías de usuarios para los que puede establecer permisos:

• Uno mismo - El usuario

• Grupo - Otros usuarios pertenecientes al mismo grupo del usuario (por


ejemplo, todos los usuarios con cuenta de acceso). Los grupos los establece
y mantiene su administrador de sistemas.
• Otros - Todos los demás

Mostrar permisos y estado (ls -l)


Ya ha utilizado el comando ls para listar archivos. El comando ls dispone de muchas
opciones. Use la opción -l para mostrar una lista con formato largo. Los archivos y
directorios se listan por orden alfabético. La Ilustración 3-2 ejemplifica este método para
mostrar 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

Illustración 3-2Mostrar permisos y estado

El primer carácter de la línea indica el tipo de archivo. Un guión (-) es un ar-chivo


corriente; una d indica un directorio, y otros caracteres pueden indicar ti-pos de archivos
especiales.

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.

Además de los permisos de archivo, la pantalla muestra la siguiente informa-ción:

• El número de enlaces con dicho archivo o directorio.


• El nombre del propietario (user2 en este caso).
• El número de bytes (caracteres) del archivo.
• Fecha y hora en la que el archivo o el directorio fue actualizado la última vez.
Nombre del archivo o directorio.

Use el comando cd para desplazarse a su directorio de usuario y pruebe el co-mando ls


-l. Por supuesto, el resultado que obtenga será diferente al del ejemplo. Ahora intente
escribir un comando como este:

$ ls -l nombre_de_directorio

donde nombre_de_directorio es el nombre de un directorio existente en su siste-ma de


archivos. Cuando le pone nombre a un directorio, el comando ls -l im-prime información
relativa a todos los archivos y directorios (si los hay) de dicho 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

Listar archivos "ocultos" (ls -a)


Hay algunos archivos que no son listados por el comando ls. Dichos archivos comienzan
por el carácter. (llamado "punto"), como por ejemplo.cshrc,.lo-gin o.profile. Use el
comando ls -a para listar los citados archivos punto:

$ 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.

Cambiar permisos (chmod)


Use el comando chmod para cambiar los permisos de un archivo o un directo-rio. Vd.
debe ser el propietario del archivo o del directorio, o tener acceso al di-rectorio raíz para
cambiar sus permisos. La forma general del comando chmod es:

chmod permisos nombre

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:

1. Usar una o más letras para indicar los usuarios implicados:

• 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

2. Indicar si los permisos se van a agregar (+) o eliminar (-).


3. Utilizar una o más letras para indicar los permisos:

• r (read; de lectura)
• w (write; de escritura)
• x (execute; de ejecución)

En el ejemplo siguiente, se agrega un permiso de lectura al directorio carrots para los


usuarios que pertenezcan al mismo grupo (de esta forma, permisos es
g+w y nombre es carrots):

$ 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
$

Ahora, la r (de read) y la x (de execute) del conjunto de caracteres correspon-diente a


otros usuarios se cambian por guiones (-).

Cuando cree un archivo o un directorio nuevo, el sistema le asignará automáticamente


permisos.

En general, la configuración predeterminada para los archivos nuevos es:

-rw-r--r--

y para los directorios nuevos es:

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
$

Como resultado de esto, el indicador x aparecerá en las tres categorías.

También puede cambiar los permisos de grupos de archivos o directorios utili-zando


carácter comodín *. Por ejemplo, para cambiar los permisos de todos los archivos del
directorio actual veggies para que sólo Vd. pueda escribir en ellos, tendría que escribir lo
siguiente:

$ 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

-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 go-w *
$ ls -l
-rwxr-xr-x 3 user2 21032 Feb 12 10:31 beats
-rwxr-xr-x 2 user2 68 Feb 10 11:09 corn

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.

Establecer permisos absolutos


Hasta el momento, en esta presentación de los permisos sólo se ha incluido el comando
chmod para cambiar permisos relativos a su configuración actual. Si utiliza una forma
diferente del comando chmod, que aplica códigos numéricos para especificar permisos,
puede establecer el permiso de un archivo o un di-rectorio de manera absoluta.

La sintaxis de este modode utilizar el comando chmod es:

chmod numcode name

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:

$ chmod 771 garlic

La Tabla 3-1 ilustra cómo el código 771 representa los permisos asignados a garlic.

Table 3-1 Permisos de 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

Permiso Usuario Grupo Otros

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.

Table 3-2 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

Permiso Usuario Grupo Otros

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

Permiso Usuario Grupo Otros

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

MODULO VII USANDO EL EDITOR VI

EDITOR VI

El editor vi es el editor por excelencia de UNIX. Es bastante potente y complicado de


manejar a pleno rendimiento, debido a la gran cantidad de opciones que tiene, pero es
fácil dar los primeros pasos e ir avanzando poco a poco. Es difícil de utilizar al principio,
pero puede llegar a convertirse en el más cómodo y rápido.

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.

La sintaxis del comando vi es, al igual que la de cualquier comando UNIX: vi

[opciones] archivo

En vi existen 3 modos de trabajo:

• Modo comando: cada tecla tiene un significado, y se puede desplazar el cursor,


copiar, pegar, mover, borrar, etc. Hay que tener mucho cuidado, pues un comando
en minúsculas o en mayúsculas tienen efectos muy diferentes.
• Modo texto: se emplea para añadir o modificar el texto del documento.
• Modo ex: inserción de comandos del editor de líneas ex. Se emplea para cambios
masivos en el documento.

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

Acceso a modo texto

Insertar antes del cursor.


i

Insertar al principio de la línea.


I

Añadir después del cursor.


a

Añadir al final de la línea.


A

Abrir línea debajo de la actual.


o

Abrir línea encima de la actual.


O

Sobreescribir (cambiar) texto.


R

Sobreescribir el carácter sobre el que está el cursor.


r

Reemplaza caracteres.
c

Reemplaza palabras.
cw

Reemplaza hasta el fin de línea.


C o c$

Reemplaza desde el comienzo de línea.


c0

os comandos de reemplazo admiten multiplicadores que consisten en un número


antecediendo al comando. Al dar un comando de reemplazo el editor coloca un símbolo
$ en donde termina el pedido de reemplazo. El usuario sobrescribe normalmente hasta

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

Borrar carácter hacia la izquierda.


BS (Back Space)

Salir de Modo Texto y pasar a modo comando.


ESC

MODO COMANDO

Algunos de estos comandos admiten multiplicadores, que consisten en un número


antecediendo al comando.

Movimiento del cursor y Control de pantalla


Mover en distintas direcciones.
flechas

h ó BS (Back Una posición hacia la izquierda.


Space)
Una posición hacia la derecha.
l ó SP (Espacio)

Una línea hacia arriba.


kó-

Una línea hacia abajo.


jó+

Fin de línea.
$

Principio de línea.
0 (Cero)

Comienzo del archivo.


1G

Fin del archivo.


G

Línea número 18.


18G

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

Mostrar número de línea actual.


Ctrl-G

Comienzo de la palabra siguiente.


w

Fin de la palabra siguiente.


e

Fin de la palabra siguiente antes de espacio.


E

Principio de la palabra anterior.


b

Primera palabra de la línea.


^

Hasta el paréntesis que aparea.


%

Parte superior de la pantalla.


H

Parte inferior de la pantalla.


L

Al medio de la pantalla.
M

Cursor a la columna 23.


23|

Una pantalla adelante.


Ctrl-f

Una pantalla atrás.


Ctrl-b

Refrescar la pantalla.
Ctrl-l

Media pantalla adelante.


Ctrl-d

Media pantalla atrás.


Ctrl-u
Búsqueda

Buscar hacia adelante cadena de caracteres 'str'.


/str

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

Buscar hacia atrás cadena de caracteres 'str'.


?str

Buscar siguiente (si se usó /) o anterior (si se usó ?).


n

Buscar anterior (si se usó /) o siguiente (si se usó ?).


N

Buscar el siguiente carácter 'c' en la línea.


fc

Buscar el anterior carácter 'c' en la línea.


Fc

Ir al carácter anterior al siguiente 'c'.


tc

Ir al carácter posterior al precedente 'c'.


Tc

Repetir el último comando f, F, t, o T.


;

último comando f, F, t, o T en sentido inverso.


,

a cadena a buscar en / o ? puede ser una expresión regular.

a acción de f, F, t y T alcanza sólo a la línea actual; si el carácter buscado no está en esa


línea el cursor no se mueve.

Borrar, Copiar y Pegar

Borrar carácter bajo el cursor.


x

Borrar línea, queda guardada.


dd

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

Borrar desde cursor a fin de línea.


D

Borrar desde cursor a fin de palabra.


dw

Borrar desde cursor a fin de línea.


d$

Borrar desde cursor a principio de línea.


d0

Borra hasta el final del párrafo.


d)

Copiar línea.
Y o yy

Pegar antes del cursor.


P

Pegar después del cursor.


p

Copiar palabra.
yw

Copiar de cursor a fin de línea.


y$

Copiar línea en buffer llamado 'a'.


"ayy o "aY

Copiar palabra en buffer llamado 'a'.


'a' "ayw

Pegar desde buffer 'a', a la derecha del cursor.


"ap

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

Pegar desde buffer 'a', a la izquierda del cursor.


"aP

Borrar línea y guardar en buffer 'b'.


"bdd

Borrar palabra y guardar en buffer 'b'.


"bdw

Unir la línea actual y la siguiente (suprimir el retorno de carro).


J

Otros

Grabar cambios si los hubo y salir.


ZZ

Deshacer última acción.


u

Deshacer todos los cambios en una línea desde que se posicionó el


U cursor en ella.

Repetir el último comando.


.

MODO EX O ULTIMA LINEA

Generales

Salir si no hubo cambios.


:q

Salir sin guardar cambios.


:q!

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

Guardar cambios en archivo arch1.


:w arch1

Guardar cambios y salir.


:wq

Insertar un archivo.
:r arch2

Editar un nuevo archivo.


:e arch2

Idem sin salvar anterior.


:e! arch2

Insertar salida de comando.


:r! comando

Salir al shell (vuelve con exit).


:shell

Muestra el número de línea en que se halla en cursor.


:.=

Mover

Mueve a línea 1.
:1

Mueve a línea 15.


:15

Mueve a última línea.


:$

Opciones, abreviaturas y macros

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

Mostrar números de línea.


:set nu

No mostrar números de línea .


:set nonu

Mostrar modo actual de vi.


:set showmode

No mostrar modo actual de vi.


:set noshowmode

Cada vez que se teclee la cadena abr, ésta se expandirá


:ab [abr] [cadena] escribiendo cadena.

Muestra las abreviaturas creadas.


:ab

Elimina la abreviatura abr.


:una [abr]

Genera la macro c que ejecutará la acción indicada.


:map [c] [accion]

Muestra las macros definidas.


:map

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.

Reemplaza todas las ocurrencias de la cadena [buscar] por


:[desde],[hasta] la cadena [reemplazar] entre las líneas [desde] y [hasta] del
s/[buscar]/[reemplazar]/g 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

Borra las líneas comprendidas entre las líneas [desde] y


:[desde],[hasta] d [hasta].

Ejemplos:

Cambia Martes por martes en todo el archivo.


:1,$s/Martes/martes/g

Cambia ayuda por ayudando desde línea actual


:.,5s/ayuda/&ndo/g hasta la 5ª línea.

Elimina todas las líneas desde la línea actual al


:.,$ d final del archivo.

Cada vez que se teclee "pp " se expandirá en


:ab pp Hola Pepe "Hola Pepe".

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 VIII ARCHIVO

DE INICIALIZACION Archivos de Inicialización:

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.

El otro archivo es el de inicialización de shell, el cual contiene los comandos que se


ejecutan cuando se comienza el proceso de un nuevo shell.

Podemos reconocer a los archivos de inicialización porque generalmente, sus nombres,


inician con un punto, lo cual indica que son archivos ocultos y que no se mostrarán al
ejecutar el comando ls; para poder ver todos los archivos, incluyendo los ocultos, es
necesario ejecutar el comando ls -a.

Archivos para C shell

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.

.logout Comandos que se ejecutan al terminar una sesión en el sistema.

Archivos para Bourne shell

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.

Los ficheros de inicio de Bash

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.

Un intérprete interactivo de conexión se ejecuta después de una entrada al sistema


correcta, mediante /bin/login, leyendo el fichero /etc/passwd. Un intérprete interactivo de
no conexión se ejecuta mediante la línea de comandos (por ejemplo,
[prompt]$/bin/bash). Un intérprete no interactivo está presente normalmente cuando se
ejecuta un guión. Es no interactivo porque está procesando un guión y no está esperando
a que el usuario introduzca un comando.

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

alias ls="ls --color"

También, si estás acostumbrados a teclear win para entrar en el entorno de ventanas, y


por alguna razón patológica o política :-) no quieres acostumbrarte a escribir startx,
puedes definirte un alias tal que así (aquí no hacen falta las comillas porque startx no
contiene espacios): alias win=startx
Alias útiles

Ahí va una lista de alias útiles para el novato, junto con una breve explicación:

alias ll='ls -l' # Si quieres conservar el ls original


alias ls='ls -lF --color' # Listado largo en color alias
mv='mv -i' # \ Pedir confirmación alias cp='cp
-i' # > antes de alias rm='rm -i' #/
sobreescribir
Variables de entorno

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.

Las variables de entorno tienen tres usos básicos:

1. Usarlos para escribir menos, o tener valores fijos. Si no entiendes esto,


probablemente no te sirva. Tampoco es que se utilicen mucho.
2. Variables que consulten otros programas. Esto es importante, y estas variables,
para que las vean otros programas, tenemos que exportarlas (lo explico luego).
3. Variables para consultar, que generalmente no se modifican. Por ejemplo, dan
información sobre el directorio raíz del usuario.
Algunas variables de entorno interesantes

• EDITOR. Análoga a la anterior, aunque se prefiere VISUAL.


• PATH. La variable que indica las rutas donde se buscan los ejecutables, si no se
da una ruta completa para llegar hasta ellos. Es una lista de rutas separada por
``:''. Si el directorio actual no está incluido, al ejecutar un programa que esté en el
directorio actual el intérprete nos dirá que no lo encuentra, y tendremos que darle
una ruta absoluta, como ./programa, para poder ejecutarlo.
• HOME. Indica el directorio raíz del usuario. Si el usuario se llama pepe, lo más
normal es que HOME tenga el valor /home/pepe.

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

Exportar variables de entorno

Para exportar variables de entorno, tenemos dos posibilidades:

1. Declararlas directamente como exportadas, escribiendo algo como:


2. export VISUAL=/bin/vi
3. Exportarlas después de haberlas declarado, escribiendo algo como:
4. VISUAL=/bin/vi # Aquí le damos un valor
5. # Más cosas
6. export VISUAL

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

MONITOREO DE LOS PROCESOS EN EL SISTEMA

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

[shrek@pantano:~]$ find / -name "*"

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~]$ find / -name "*" > /dev/null

Igualmente así no contaríamos con la atención de nuestro interprete de comandos hasta


que terminara el trabajo el comando find. La forma de tener la atención del shell
inmediatamente después de lanzar el proceso find es enviándolo en segundo plano

[shrek@pantano:~]$ find / -name "*" > /dev/null &


[1] 192
[shrek@pantano:~]$

Como se aprecia, regresó de inmediato al shell, pero antes envió un mensaje a la


terminal. El [1] representa a un número de trabajo que el shell asigna a cada uno de los
procesos que pasa a segundo plano. Inmediatamente después vemos el número de PID
del proceso. Podremos identificar al proceso por cualquiera de los dos números mientras
se encuentre en segundo plano. Para ver cuantos trabajos están ejecutándose en este
momento podemos usar el comando jobs.

[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

que en caso de que se requiera contestar afirmativamente a las peticiones de un


programa pudiéremos mediante una redirección contestarle con un y a cada pregunta.
Si lo ejecutáramos sin redirigir la salida a /dev/null, nos llenaría la pantalla con una
columna infinita de y. Por esto lo enviaremos a segundo plano redirigiendo la salida y
luego lo mataremos con el comando kill.

[shrek@pantano:~]$ yes > /dev/null &


[1] 201
[shrek@pantano:~]$ kill %1
[shrek@pantano:~]$ jobs
[1]+ Terminated yes > /dev/null &
[shrek@pantano:~]$

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.

[shrek@pantano:~]$ kill 201

Como parar y relanzar tareas

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

Ahora presionamos Ctrl-Z

[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

[2]+ Stopped yes >/dev/null


[shrek@pantano:~]$ jobs
[1]- Running yes >/dev/null &
[2]+ Stopped yes >/dev/null

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 &

Ahora presionamos Ctrl-Z

[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~]$

Aquí se puede ver que el comando ps f depende del -bash.

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.

Lo más importante es que esta información de ira actualizando automáticamente cada


tanto tiempo, por defecto 5 segundos, y que podremos ir alterando lo que va mostrando.
Por ejemplo podemos hacer que ordene los procesos de acuerdo a la cantidad de
memoria que esta usando con solo presionar la tecla M. U ordenarlos de acuerdo al
tiempo que llevan corriendo. Otra utilidad es que podríamos matar algún proceso con
solo presionar la tecla k y luego darle el número de PID.

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).

Programando tareas en Linux con cron y at

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

• crontab -u usuario: aplica una de las opciones anteriores para un usuario


determinado.
• crontab fich: instala el fichero fich como crontab del usuario.
Cada usuario tiene un fichero de configuración crontab que se encuentra en el directorio
/var/spool/cron/crontabs. Este fichero tiene una sintaxis específica y en él escribiremos
una línea para cada acción que queramos programar. Cada línea tiene un formato con
los siguientes campos:

minutos horas día-mes mes día-semana comando

El valor que puede tomar cada uno de los campos es el siguiente:

• 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

En el fichero de configuración crontab se puede hacer uso de ciertos caracteres


especiales como el asterisco (*), la coma, el guión, o la barra (/). La coma sirve para
especificar una lista. En el siguiente ejemplo se realiza una copia del directorio
documents los días 15, 16, 17 y 18 de cada mes a las 22:30 horas.

30 22 15,16,17,18 * * 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 guión permite especificar un rango. Otra forma de indicar lo mismo que el ejemplo
anterior empleando el guión sería:

30 22 15-18 * * cp -r /home/alex/documents/* /home/alex/copiaseguridad/

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…)

También se pueden especificar los siguientes ’sinónimos’:

• @reboot: cada vez que el sistema arranque.


• @yearly: equivale a 0 0 1 1 *
• @monthly: equivale a 0 0 1 * *
• @weekly: equivale a 0 0 * * 0
• @daily: equivale a 0 0 * * *
• @hourly: equivale a 0 * * * *
Aparte del archivo crontab de cada usuario, que ya hemos comentado que se encuentra
en el directorio /var/spool/cron/crontabs/, hay un crontab general para todos los usuarios
que se encuentra en /etc/crontab. Este fichero sólo puede ser modificado por el
administrador (root).En este archivo cada línea tiene un campo adicional en el que se
especificará el usuario que ejecutará cada tarea: minutos horas día-mes mes día-semana
usuario comando

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

Para mostrar la lista de tareas programadas emplearemos el comando at con el


parámetro -l: at -l. Podemos hacer lo mismo con el comando atq. Si lo que queremos es
eliminar una tarea emplearemos el comando at con los parámetros -d num_tarea . Cada
tarea tiene asociado un número que podemos ver con at -l. También podemos eliminar
una tarea con atrm num_tarea.

At permite especificar la hora de diferentes formas:

• 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

MODULO X TAREAS DE RESPALDO CON LA HERRAMIENTA TAR

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:

# tar --create --verbose --file=archivador.tar carpeta1/

# tar -c -v -f archivador.tar carpeta1/

# tar -cvf archivador.tar carpeta1/

Los comandos más comunes, presentados en forma larga y corta, son:

--create, -c Generan un nuevo archivo tar.

--list, -t Listan los documentos en un archivo tar.

--extract, -x Extraen el contenido de archivo tar.


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

--file, -f Determina el archivo tar.

--append, -r Agrega nuevos archivos a un tar existente.

--update, -r Actualiza los archivos más recientes a un tar existente.

--concatenate, --catenate, -A Concatena archivos a un tar existente.

--delete Elimina elementos de un tar existente.

--compare, --diff, -d Compara un tar con su contraparte en el sistema.

--verbose, -v Presenta en pantalla los archivos que tar está manipulando.

--help Presenta la pantalla de ayuda.

Su estructrura para invocarlo es:

# tar opción... [nombre]...


# tar letra... [argumento]... [opción]... [nombre]...

Para efectos de estos ejercicios, vamos a utilizar una carpeta temporal donde se incluyan
estos archivos:

[crowley@servidor temp]$ ls archivo2.txt archivo3.txt


archivo4.txt archivo.txt texto1.txt

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.

# tar -cvf temporal.tar archivo.txt texto1.txt


archivo.txt texto1.txt

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

# tar -cvf temporal.tar temp/


temp/
temp/texto1.txt
temp/archivo.txt
temp/archivo2.txt
temp/archivo3.txt temp/archivo4.txt

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.

# tar -vt --file=temporal.tar


drwxr-xr-x crowley/crowley 0 2003-07-09 13:56:41 temp/
-rw-rw-r-- crowley/crowley 1006 2003-05-14 10:17:08 temp/texto1.txt
-rw-rw-r-- crowley/crowley 82 2003-05-14 10:58:46 temp/archivo.txt
-rw-rw-r-- crowley/crowley 32 2003-05-28 17:55:48 temp/archivo2.txt
-rw-rw-r-- crowley/crowley 21 2003-05-28 18:17:57 temp/archivo3.txt
-rw-rw-r-- crowley/crowley 39 2003-05-28 18:34:13 temp/archivo4.txt

También es factible solicitar la información de un sólo archivo.

# tar -v --list --file=temporal.tar temp/archivo2.txt


-rw-rw-r-- crowley/crowley 32 2003-05-28 17:55:48 temp/archivo2.txt

Debido a la especificación de tar, al preservar la ruta de los archivos, es necesario


especificarlos manualmente cuando se listan uno a uno.
El siguiente proceso es extraer los archivos, acción que realizamos con --extract (--get, -
x). Para extraer todo el contenido, necesitamos hacerlo así:

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

Este proceso sobreescribe la carpeta destino y los archivos existentes, en caso de


encontrarlos. Para extraer un sólo elemento, cambiamos un poco el comando:

# tar -xvf temporal.tar temp/texto1.txt temp/texto1.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

Así, realizamos un nuevo respaldo de los archivos en la carpeta superior.

# tar -cf temporal.tar temp/*.txt

Podemos verificar su contenido para asegurarnos que sólo contiene los .txt del primer
nivel.

# tar -vt --file=temporal.tar


-rw-rw-r-- crowley/crowley 32 2003-05-28 17:55:48 temp/archivo2.txt
-rw-rw-r-- crowley/crowley 21 2003-05-28 18:17:57 temp/archivo3.txt
-rw-rw-r-- crowley/crowley 39 2003-05-28 18:34:13 temp/archivo4.txt
-rw-rw-r-- crowley/crowley 82 2003-05-14 10:58:46 temp/archivo.txt
-rw-rw-r-- crowley/crowley 1006 2003-05-14 10:17:08 temp/texto1.txt
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

Y procedemos a ingresarle nuevos archivos.


# tar -uvf temporal.tar temp/acceso2 temp/acceso1 temp/acceso2/
temp/acceso2/archivo3.txt temp/acceso1/

temp/acceso1/archivo2.txt

Y nuevamente verificamos su contenido.

# tar -vt --file=temporal.tar


-rw-rw-r-- crowley/crowley 32 2003-05-28 17:55:48 temp/archivo2.txt
-rw-rw-r-- crowley/crowley 21 2003-05-28 18:17:57 temp/archivo3.txt
-rw-rw-r-- crowley/crowley 39 2003-05-28 18:34:13 temp/archivo4.txt
-rw-rw-r-- crowley/crowley 82 2003-05-14 10:58:46 temp/archivo.txt -rw-rw-r--
crowley/crowley 1006 2003-05-14 10:17:08 temp/texto1.txt drwxrwxr-x crowley/crowley
0 2003-07-16 11:35:18 temp/acceso2/
-rw-rw-r-- crowley/crowley 21 2003-07-16 11:35:18 temp/acceso2/archivo3.txt
drwxrwxr-x crowley/crowley 0 2003-07-16 11:35:02 temp/acceso1/
-rw-rw-r-- crowley/crowley 32 2003-07-16 11:35:02 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 .

# tar -cf acceso1.tar temp/acceso1

# tar -cf acceso2.tar temp/acceso2

Ahora, procedemos a generar un temporal.tar que sólo incluya los archivos .txt originales.

# tar -cf temporal.tar temp/*.txt

Con esto, podemos concatenar los otros dos en este último.

# tar --concatenate --file=temporal.tar acceso1.tar acceso2.tar

Y veamos su contenido.

# tar -vt --file=temporal.tar


-rw-rw-r-- crowley/crowley 32 2003-05-28 17:55:48 temp/archivo2.txt
-rw-rw-r-- crowley/crowley 21 2003-05-28 18:17:57 temp/archivo3.txt

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

-rw-rw-r-- crowley/crowley 39 2003-05-28 18:34:13 temp/archivo4.txt


-rw-rw-r-- crowley/crowley 82 2003-05-14 10:58:46 temp/archivo.txt -rw-rw-r--
crowley/crowley 1006 2003-05-14 10:17:08 temp/texto1.txt drwxrwxr-x crowley/crowley
0 2003-07-16 11:35:02 temp/acceso1/
-rw-rw-r-- crowley/crowley 32 2003-07-16 11:35:02 temp/acceso1/archivo2.txt
drwxrwxr-x crowley/crowley 0 2003-07-16 11:35:02 temp/acceso1/
-rw-rw-r-- crowley/crowley 32 2003-07-16 11:35:02 temp/acceso1/archivo2.txt

Para eliminar un elemento del conjunto, utilizamos --delete, que no tiene una forma corta.

# tar --delete --file=temporal.tar temp/archivo4.txt

También podemos realizar algunas operaciones especiales, como extraer archivos


comprimidos con GZIP mediante el comando --uncompress (-z).

# tar -zxvf temporal.tar.gz

# tar -zxvf temporal.tgz

Una operación que pocos saben, es poder comprimir archivos al vuelo con -compress (-
z).

# tar -zcf temporal.tar temp/*.txt

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.

# tar --create --multi-volume --file=/dev/tape0 --file=/dev/tape1 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 Copyright
Noviembre 2.009

También podría gustarte