You are on page 1of 167

 Historia

 Kernel
 Shell
Creado por el finlandés Linus Torvalds (1992) a
partir de Minix

Es un Sistema Operativo (OS) compatible con UNIX .

Es libre

De código abierto.

Emplea como base las aplicaciones GNU


Desarrollado originalmente por los laboratorios AT&T Bell en 1969

Modificado por la University of California at Berkeley dando como


resultado UNIX BSD (Berkeley Software Distribution).

El avance mas importante fue el agregar la función para conexiones por


red.

La primera versión de UNIX de SUN fue conocido como SunOS Software,


el cual estuvo basado en la versión 4.2 de UNIX BSD.

Al mismo tiempo AT&T tiene su versión de UNIX conocida como System


V.

En 1988 BSD, AT&T y otros desarrolladores de UNIX se unen para crear


el System V release 4 (SVR4), el cual es adoptado por SUN, HP e IBM
entre otros.
Es el núcleo del OS. El cual
maneja todos los recursos
físicos del sistema:

- File Systems y estructuras


- Manejo de dispositivos
- Manejo de procesos o
funciones de CPU
- Manejo de memoria
Es la parte externa del sistema operativo, con la
cual interactúa el usuario y accede al kernel

Es un intérprete de línea de comandos (cli) o


programas

Los 3 mas comunes son:


• Bourne shell
• C shell
• Korn Shell
• Bourne shell es el shell original de los sistemas
UNIX
• Es el default para el usuario root
• El prompt de default es “$”
• Para root el default es “#”
• C shell tiene características adicionales que Bourne
shell no tiene, tales como historial de línea de
comandos, alias y control de jobs; el default es
“hostname”% para los usuarios y para root es
“hostname”#
• Korn shell combina las características de Bourne
shell y C shell. El default para usuarios es “$” y para
root “#”
Existen otros tipos de shell adicionales:

• Bash: Creado por GNU (Bourne-Again Shell),


incorpora características de Korn shell y C shell
como historial, edición de línea de comandos, alias
entre otras

• Z shell: Muy parecido a Korn shell pero con muchas


mejoras

• TC shell: Versión completamente compatible de C


shell con mejoras adicionales.
 Tipos de FS
 Que es un i-nodo
 Shell
 Estructura de directorios
 Directorios principales y su función
Solaris soporta los siguientes tipos de FS
FS Descripción
UFS Es el tipo default para el SO hasta la versión 10.
UNIX File System
ZFS A partir de Solaris 10 se puede utilizar este tipo, en
Zettabyte File System versión 11 ya es utilizado por default

HSFS Utilizado para CD/DVD

PCFS Para archivos compatibles con la PC

Proc Pseudo-FS empleado como interfase para acceder


estructuras del kernel
tmpfs /tmp File System temporal
nfs Para acceso a dispositivos de almacenamiento en red
Los FS soportados por el kernel están disponibles en el archivo /proc/filesystems
FS Descripción
minix Tamaño de partición de 64 MB. Empleado por el
sistema Minix
ext, ext2, ext3 y ext4 Extensión de minix, para discos fijos y removibles.
Contiene journaling y set para alto desempeño

reiserfs Siguiente versión de ext para mayor capacidad de


almacenamiento .
msdos Para archivos de DOS (8 caracteres + 3 de extensión)

Proc Pseudo-FS empleado como interfase para acceder


estructuras del kernel
Iso9660 Para CD’s
nfs Para acceso a dispositivos de almacenamiento en red

smb, hcifs Compatibilidad con dispositivos de red Windows


Están identificado por un número entero, único
dentro del sistema de ficheros.

Almacena las características de un archivo


(id, tipo, modo, fecha, ubicación, etc.)
/: directorio raíz.

/bin: programas comunes, binarios ejecutables del


sistema .
También las utilidades de configuración.

/sbin Ejecutables referentes a el mantenimiento del


sistema y por consiguiente solo se podrán ejecutar
por un administrador (root, súper usuario).
/boot: En este se encuentra lo más importante del
sistema el Kernel y los archivos necesarios para el
correcto funcionamiento del sistema. También se
puede encontrar al gestor de arranque (grub, LILO)

/dev: archivos de dispositivo.

/etc: archivos de configuración.

/home: directorios 'home' de los diferentes usuarios


creados. Cada usuario tendrá su directorio dentro del
Home
/export/home: directorios 'home' de los diferentes
usuarios creados. Cada usuario tendrá su directorio
dentro del Home

/lib: librerías compartidas.

lost+found: archivos dañados por diferentes acciones


que pueden ser recuperados en este directorio.

/mnt: punto de montaje temporal para filesystems.

/proc: directorios y archivos que nos informan del


estado del sistema.
/proc: directorios y archivos de los procesos en
ejecución en el sistema.

/root: 'directorio home' del usuario root


(administrador).

/tmp: archivos temporales.

/var: archivos de bitácoras y de colas


 Qué es CLI
 Uso de documentación en línea
La sintaxis para la ejecución de comandos desde CLI
es:

# comando opción(es) argumentos


Donde:

• comando: especifica que es lo que se va a ejecutar


• opción: especifica que ejecutará o modificará el
comando. Generalmente inician con el signo “-”
• argumento: Especifica que será afectado (archivo,
directorio o texto)
Algunos ejemplos de comandos básicos son:

• uname: Muestra el tipo de OS en ejecución

• date: Despliega la información de fecha y hora

• cal: Despliega el calendario del mes vigente en el


sistema

• clear: Limpia la terminal donde estamos


trabajando.
Ejemplos de comandos con opciones:

• uname –a : Muestra los datos del SO


• cal 12 2004 : Muestra el mes 12 del año 2004
• ls –l : Muestra el contenido de un directorio en
forma de lista larga
• ls –l /etc : Muestra el contenido del directorio /etc
en forma de lista larga
Combinar comandos en una sola línea:

También es posible combinar la ejecución de varios


comandos en una sola línea:
Es posible tener ayuda en línea cuando esta se
requiera invocando el comando man. La sintaxis es:

# man command
# man option command
# man option filename

Ejemplo:

# man ls
Con la opción –l nos muestra si existe más de 1
manual de ayuda para el comando.
Con la opción –s nos da la ayuda correspondiente al
numero seleccionado ejemplo:
 Moverse entre directorios
 Listar información
 Rutas absolutas y relativas
 Mostrar contenido de archivos
Un directorio es una lista de referencias a
objetos, puede incluir archivos, subdirectorios
y ligas simbólicas.
Cada referencia consiste de 2 componentes: un
nombre y un número
El nombre del objeto es usado para identificar
y accessar al objeto.
El número especifica el i-nodo en el cuál se
almacena la información sobre el objeto.
Opciones mas comunes del comando ls:

• ls –l dir : Muestra el contenido del directorio


dir
• ls –ld dir : Muestra información del directorio
dir
• ls –R dir : Muestra el contenido del directorio
dir de manera recursiva

* Comando file (para que sirve)


El comando ls con la opción –l muestra información detallada
del contenido del directorio. La salida despliega una lista larga
de información como se muestra a continuación:
Algunos archivos están ocultos a la vista
cuando se utiliza el comando ls. Estos archivos
generalmente contienen la personalización del
ambiente de trabajo.
Para visualizar estos archivos se utiliza el
comando ls –a, el cual listará todos los archivos
en el directorio incluyendo los que estén
ocultos.
Los nombres de los archivos ocultos se
identifican por que inician con un punto (.)
Sintaxis: cd directorio

Opciones:
- : Regresa al último directorio donde se haya
estado.

Ejemplos:
cd
cd /tmp
cd ../../../carpeta
cd -
El comando pwd muestra el directorio en el que
actualmente se esta trabajando.

Sintaxis: pwd
Absoluta.- Siempre comienza con el directorio
raíz

p.e. /usr/local/bin/sudo

Relativa.- Comienza en posición actual

p.e. ../../una/carpeta/archivo
carpeta/en/esta/posicion
./script.sh
El comando cat despliega en pantalla el contenido de un archivo de texto.

# cat filename

El comando more despliega en pantalla de manera pausada el contenido de un


archivo

# more filename

El comando head despliega por default las primeras 10 líneas de un archivo, se


puede modificar la cantidad de líneas a desplegar

# head -20 filename

El comando tail despliega por default las últimas 10 líneas de un archivo, se


puede modificar la cantidad de líneas a desplegar

# tail -100 filename


El comando wc despliega el número de líneas, palabras y caracteres que contiene
un archivo.

# wc –option filename
 Copiar, renombrar, mover, crear y
eliminar archivos y directorios
 Ligas simbólicas
El comando cp se utiliza para copiar el contenido de
un archivo a otro, o copiar varios archivos.

La sintaxis es:

# cp –option(s) source target


Ejemplos:

Copiar varios archivos a un directorio

Copiar un archivo de manera interactiva


Con la opción –r se puede realizar la copia de
directorios.

La sintaxis es:

# cp –option(s) sources target

Ejemplo:
El comando mv se utiliza para:
• Mover archivos y directorios dentro del árbol

• Renombrar archivos y directorios.

El comando no afecta su contenido.

El comando mv puede ser destructivo en caso de no


ser utilizado de la manera correcta.
Ejemplo:

Renombrar un archivo en el mismo directorio

# mv file1 file2

Mover un archivo de un directorio a otro

# mv /export/home/user1/file1 /var/tmp/file1

A diferencia del comando cp, el comando mv mueve


el archivo o directorio y el original ya no existe.
El comando mv también puede ser utilizado para
renombrar archivos y directorios en la misma
ubicación.

Ejemplo:

# mv /etc/hostname.hme1 /etc/hostname.hme0
Se pueden crear archivos y directorios vacíos dentro
del árbol jerárquico de directorios, los comandos
son:

• Crear archivos

# touch filename

• Crear directorios

# mkdir dir1
# mkdir –p dir10/dir11/dir12
Ejemplos:

# touch

# mkdir
El comando rm es utilizado para borrar directorios o
archivos.

Esta acción es irreversible, por lo que debe


ejecutarse con cuidado ya que tampoco pregunta si
se desea eliminar el archivo.

La sintaxis para borrar archivos es la siguiente:

# rm –option filename
Ejemplos:

Eliminar el archivo projection del directorio letters

Eliminar los archivos research y project2 del directorio letters


Con la opción –i se puede realizar de manera interactiva.

Ejemplo:
Existen 2 maneras de borrar directorios, se puede utilizar el
comando rmdir para eliminar directorios vacíos o bien la opción
–i para el comando rm. Si un directorio no esta vacío aparecerá
un mensaje indicandolo

La sintaxis es la siguiente:

• Directorio vacío

# rmdir dir1

• Directorio con contenido

# rm –r dir2
Ejemplos:

• Directorio vacío:

• Directorio con contenido


Los archivos y directorios pueden ser localizados en diferentes File
System, por lo que se pueden utilizar ligas simbólicas para ligar estos
en los diferentes File System.

Existen 2 razones principales para utilizar ligas simbólicas:


• Mover archivos a una nueva ubicación. Esto incluye mover un
directorio a diferentes particiones pero dejando un enlace para otros
usuarios que no necesitan saber el movimiento.

• Para proporcionar un nombre conveniente para un archivo en lugar


del nombre original que pudiera ser complicado o desconocido.
Cuando se tiene acceso a la unidad de CD/DVD el usuario puede
introducir ls /cdrom/cdrom0 sin tener que buscar como se llama el
dispositivo.
Para crear una liga simbólica se utiliza el comando ln –s. Se puede
utilizar la ruta absoluta o relativa para crearlas. El nombre de la liga
simbólica aparece en el directorio donde será creada.

La sintaxis es:

# ln –s source_file target_file
Se puede utilizar el comando rm para borrar una liga simbolica como
cualquier otro archivo.

Ejemplo:
 Uso de editor vi
 Listar permisos en archivos y directorios
 Cambio de permisos (dueño y grupo) de
archivos y directorios
 Listar atributos
 Cambiar atributos
 umask
 ed
 vi
 nano
 sed
 emacs
 Editor de texto interactivo sin formato
 Creado por Bill Joy en 1976 (basado en ed y
ex) Comandos Acciones
:wq Write / Quit
X, x Borra carácter
I, i Inserta
D,d Borrado de líneas
Y, yy Copiado de línea en
buffer
o Nueva Línea
P, p Inserción desde el buffer
 Usuario Propietario

 Grupo propietario

 Permisos (modo)

 Modificabilidad
El usuario quien creó el archivo.

El archivo se ejecutará dentro del rango del


usuario propietario
Sintaxis: chown [opciones] [usuario] [:grupo]
archivo

Opciones:
-R (recursive) .- Cambia los permisos a los subdirectorios
y archivos de la carpeta dada
-v (verbose) .- Muestra los cambios que se realizan

Ejemplos:
chown user1 /home/user2/miarchivo
chown -R -v user2:xertix otroarchivo.txt
chown :users archivo.txt
Generalmente es el grupo primario al que
pertenece el usuario propietario.

Usado para determinar privilegios extra sobre el


archivo o carpeta
Sintaxis: chgrp [opciones] grupo archivo

Opciones:
-R (recursive) .- Cambia los permisos a los
subdirectorios y archivos de la carpeta dada
-v (verbose) .- Muestra los cambios que se realizan

Ejemplos:
chgrp grupo1 /home/user2/miarchivo
chgrp -R -v xertix unacarpeta
PERMISOS NOMENCLATURA VALOR
PARA
r = read rwx
w = write 000 - 0
Usuarios x = execute 001 - 1
010 - 2
1 = encendido 011 - 3
Grupo 0 = apagado 100 - 4
101 - 5
Otros 110 - 6
111 - 7
Ejemplos:
rwx rw- --x (761)
usuario grupo otros

rw-rw-r-x (665) // El propietario y el grupo pueden escribir el


archivo. Los demás solo pueden ejecutarlo

rw-r----- (640) // Solo el propietario puede escribir.


aquellos que NO pertenezcan al grupo,
no pueden ver su contenido
Sintaxis: lsattr [opciones] archivo

Opciones:
-R (recursive) .- Muestra los atributos de la
carpeta y sus subdirectorios
-a (all) .- Lista los atributos de todos los
archivos en el directorio

Ejemplos:
lsattr archivo.txt
lsattr –R carpeta
Sintaxis: chattr [opciones] archivo

Opciones:
-R (recursive) .- Modifica los atributos
de la carpeta y sus subdirectorios

Ejemplos:
chattr -i archivo.txt
chattr –R +i carpeta
Todos los archivos y directorios tienen
asignados permisos por default al momento de
ser creados.

Estos permisos pueden ser fijados con el


comando umask, el comando afecta los
permisos para archivos y directorios cuando
estos son creados.

Para ver el valor asignado se usa el comando


umask sin opciones.
El comando tiene un valor octal de 3 dígitos
asociados a los permisos de lectura, escritura y
ejecución.

Los primeros determinan el valor de default


para el dueño, los siguientes para el grupo y los
últimos para todos los demás.

El valor por default es 022.


El valor inicial de permisos especificados por el
sistema para archivos es 666 (rw-rw-rw-).

Mientras que para los directorios es 777


(rwxrwxrwx)

Para determinar el valor que se desea fijar a los


archivos y directorios solo se debe restar el
valor de estos.
Ejemplo:

Se desea cambiar el modo para los archivos


(666) por un valor 644 (rw-r--r--), la diferencia
entre 666 y 644 es 022, por lo que este valor
sería el que se fijaria para el comando umask.
 Archivos de configuración
 Creación de usuarios
 Cambio en políticas de contraseñas de
usuarios (expiración)
Dada la naturaleza multitarea y multiusuario de
UNIX. Los accesos se organizan en grupos de
usuarios de sistemas que otorgan privilegios
sobre los archivos.

La información se almacena básicamente en los


archivos: /etc/passwd, /etc/shadow y
/etc/group
# cat /etc/passwd
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
user1:x:2000:2000:Usuario para Curso:/export/home/user1:/bin/bash

loginname : password : ID : GroupID : Comentarios (GECOS) : home : shell


Sintaxis: useradd [opciones] login_name

Opciones:
Opción Característica Opción Característica
-u ID de usuario -d Ruta al home
-g ID de grupo -m Crea el home en caso de que no
existiera
-c GECOS -s shell

Ejemplos:
useradd –u 2000 –g 2000 –c “GECOS” –m –d /export/home/user1 –s /bin/bash user1
# cat /etc/shadow
rpcuser:7z07DAcPey8yc:14409:0:30:7:60::
nfsnobody:e4NfjwRHauKTA:14056::::::
user1:i.PQUTBHzxVws:14400:0:30:7:60::7

loginname : contraseña : Fecha_modificación :


tiempo_minimo_para_cambiar_password : vigencia : Alerta :
periodo_inactividad : reservado : intentos_fallidos
Opciones:
-S (show) .- Muestra el estado de la contraseña
-l (lock) .- Bloquea contraseña
-u (unlock) .- Desbloquea la contraseña
-d (delete) .- Elimina la contraseña
-f El usuario debe cambiar la contraseña en su próximo
ingreso
-a (all) .- Reporta estado de contraseñas d todos los
usuarios

Ejemplo:
passwd user1
passwd –l user1
Sintaxis: chage [opciones] usuario

Opciones:
-m : Mínimo de días en que deberá pasar antes del cambio de
contraseña
-M : Máximo de días que deberá pasar para el cambio de
contraseña
-w : Días previos al vencimiento en que deberá avisar la
expiración de la contraseña
-d : Expiración de contraseña
-l : Lista la configuración de la política para el usuario
-E yyyy-mm-dd : Fecha en que expira la contraseña
Ejemplos:
Si ya se cuenta con algún usuario en el sistema y se desea
modificar alguna de sus propiedades se utiliza el comando
usermod.

# usermod –opciones user

Opciones:
-o : Permite la duplicidad de ID
-m : Mover el home del usuario
-l : Cambia el nombre (login) del usuario
-f : Se define el número de días en que puede estar inactiva
antes de bloquearse
-e : Define la fecha de expiración de la cuenta
Si ya se cuenta con algún usuario en el sistema y se desea
eliminar, se utiliza el comando userdel el cual puede borrar
solo el usuario y dejar su información disponible.

# userdel –opciones user

Opciones:
-r : Elimina el home del usuario y su contenido, dejando los
archivos que el usuario pueda tener en otros directorios.
Es posible crear, modificar y eliminar grupos dentro del
sistema, para esto se utilizan los siguientes comandos.

• groupadd : Creación de grupo:


# groupadd –g [1..0] group_name

• groupmod : Modificar grupo


# groupmod –d [GID] –n [new_group] group_name

• groupdel : Borrar grupo


# groupdel group_name
 Redireccionar salida de archivos
 Concatenación de archivos
 Carácter pipe
 Búsqueda de archivos
 Compactar y descompactar archivos
 Búsqueda de archivos
 Búsqueda de comandos
0.- Entrada estándar (stdin) .- Lugar desde
donde el proceso toma sus datos (defecto =
teclado)

1.- Salida estándar (stdout) .- El lugar al cual el


proceso envía los resultados (defecto =
pantalla)
2.- Salida de error (stderr) .- El lugar en donde
el proceso escribe los errores de ejecución
> : Envía la salida a un archivo

>> : Concatena (anexa) la salida a un archivo

< : Toma de … los argumentos

2> : Redirecciona el error estándar


echo “Hola Mundo” > nuevo_archivo.txt

cat /etc/hosts >> archivo1.txt

sort < numeros > numeros_ordenados.txt

cat arch_no_existente > arch_salida.txt 2> comando.err


Linux permite canalizar la salida estándar de un
proceso hacia otro. Convirtiendo varios
comandos entubados en uno solo mediante el
uso del carácter ‘|’ (pipe).

Ejemplos:
ps –fea | more
ls | grep [a-z] | sort | tail | less
Comando basado en sed para búsqueda de patrones en archivos

Sintaxis: grep [opciones] expresión_regular archivo(entrada)

Opciones:
-l : Imprime únicamente el nombre del archivo que contenía el patrón
-n (number of line) : Antepone el número de la línea en dónde se encuentra el patrón
-i (ignore case) : Considera Mayúsculas y minúsculas en su búsqueda
-r (recursive) : Realiza la búsqueda en el directorio requerido y todos sus subdirectorios
-v (invert) : Invierte la búsqueda
-c (count) : Cuenta las líneas que incluyan el patrón
-w : Busca la expresión como una palabra completa ignorando aquellos patrones que
son subcadenas de palabras mas grandes.

Ejemplos:
grep 502 /etc/passwd
grep –r –i body /public/html
Sintaxis: tar [opciones] paquete_destino.tar archivo(s)_origen

Opciones:
-x (extract) .- Extrae los archivos de un archive
-f (force) .- Indica un archive de archivos
-c (create) .- Crea un archive
-v (verbose) .- Muestra información del archive en curso
-z (zip) .- Comprime/Descomprime el archive resultante con gzip
-j .- Comprime/Descomprime el archive resultante con bunzip2
-w .- Pregunta por cada acción a realizar
-u (update) .- Actualiza los archivos de un archive
-X archivo (exclude) .- Excluye los archivos listados en: archivo, del archive
-r .- Agrega archivos a un archive
-t : lista el contenido del archivo sin descompactarlo
-h : Maneja las ligas simbólicas como archivos estándar o directorios

Ejemplos:
tar zcfv * ../archive.tar.gz
tar jxf archive.tar.bz
tar –u archive.tar archivo_actualizado
El comando compress compacta los archivos
para facilitar su envío por medio de la red o
para ahorrar espacio en disco. La compresión
de archivos de texto es del alrededor del 50-60
%.
La sintaxis es:
# compress [-v] file_name
Ejemplo:
# compress –v file01.tar
file01.tar: Compression: 70.20% -- replaced with file01.tar.Z
El resultado de un archivo compactado con
compress tiene la extensión .Z (file01.tar.Z).
Después de este procedimiento el archivo
file01.tar ya no existe.

Si la opción –v (verbose) no es utilizada, no


aparecerá ninguna salida de la ejecución del
comando.
# compress –v file01.tar
#
El comando zcat se utiliza para visualizar el
contenido del archivo compactado. Este
comando no cambia el contenido del archivo.
# zcat filetxt.Z

Se puede utilizar el carácter pipe (|) con el


comando zcat para extraer el contenido de un
archivo compactado con tar sin descompactar el
archivo tar previamente, lo cual nos ahorrará
espacio en disco. Ejemplo:
# zcat file01.tar.Z | tar xvf -
Para descompactar los archivos que
previamente se crearon con el comando
compress se utiliza uncompress el cual restaura
el archivo a su estado original.
# uncompress –v file01.tar.Z
files.tar.Z: -- replaced with files.tar

Con la opción –c se puede visualizar el


contenido del archivo sin afectarlo.
# uncompress –c file01.tar.Z | tar tvf -
Sintaxis: zip [opciones] arch_comprimido.zip
archivo_origen
unzip

Opciones:
-e (encrypt) .- Encripta el contenido y protege con contraseña el
archivo
-r (recursive) .- Realiza la compresión de la carpeta origen y sus
subdirectorios y archivos
-u (update) .- Agrega contenido recientemente modificado
-v (verbose) .- Muestra información durante la compresión

Ejemplos:
zip -r arch_compreso.zip carpeta_a_comprimir
unzip arch_compreso.zip
Sintaxis: gzip [-v] archivo_origen
gunzip archivo_origen.gz

Opciones:
-v (verbose) .- Muestra información durante la
compresión

Ejemplos:
gzip -v miarchivo
gunzip miarchivo.gz
Sintaxis: find [ruta] [opciones] expresión

Opciones:
-name .- Busca archivos cuyo nombre se
indica
-user .- Busca archivos cuyo usuario es el
solicitado
-mtime .- Aquellos archivos cuyo ctime sea el
buscado

Ejemplos:
find . -name archivo.txt
find /opt –user apache
locate un_archivo .- Busca la ruta absoluta del
archivo

whereis comando .- Busca la ruta absoluta del


comando en cuestión.

which .- Es otro buscador de la ruta absoluta


de un comando
 Niveles de arranque
 Variables de ambiente
 Listar variables de ambiente
 Exportar variables de ambiente
 Nivel 0: Apagar

 Nivel 1: Monousuario (Single User.) Se suele usar para


analizar y reparar problemas.

 Nivel 2: Multiusuario sin soporte de red.

 Nivel 3: Multiusuario con soporte de red.

 Nivel 4: No se utiliza

 Nivel 5: Multiusuario en modo gráfico

 Nivel 6: Reinicio.
 0: OBP (Sparc), Halt (x86). Para apagar el equipo de manera segura
 s o S : Monousuario (Single User). Con algunos FS montados y accesibles.
 1: Monousuario (Single User). Con acceso a todos los FS disponibles. Los
accesos a usuarios estan deshabilitados.
 2: Multiusuario. Para operaciones normales. Los usuarios pueden
accesar al equipo y a todos los FS disponibles. Todos los demonios se
encuentran en ejecución, excepto los de samba y NFS.
 3: Multiusuario. Para operación normal con todos los demonios
habilitados. Incluyendo NFS y samba. Este es el estado por default.
 4: Estado alternativo de multiusuario. No configurado por default, pero
disponible para uso del cliente.
 5: Apagado. Baja todos los servicios del SO para que el equipo sea
apagado de manera segura.
 6: Reboot. Envía el sistema a estado 0 y lo reinicia en modo multiusuario
con todos los servicios y demonios habilitados (nivel 3)
Para “bootear” el equipo en algún nivel en particular:

/sbin/init nivel_de_arranque
/usr/sbin/init nivel_de_arranque

Para determinar el nivel actual:

who –r

/sbin/runlevel
Personalizan el manejo de los programas y la
comunicación entre ellos.

Se configuran en: .profile, .bashrc, .bash_profile o


.cshrc.

Las variables de ambiente son aplicadas a todos los


programas que se ejecutan en ese shell.

Para acceder al valor de una variable se antepone el


símbolo ‘$’ al nombre de la variable.

p.e. echo $mi_variable


Variable USO
HOME El directorio 'home' del usuario
SHELL El shell que se está usando
TERM El tipo de terminal que se está empleando
PATH La(s) ruta(s) donde están los archivos binarios
PWD El directorio actual
MANPATH La(s) ruta(s) donde están las páginas de los manuales
EDITOR La aplicación que se empleará para edición de texto
USER El usuario actual
OLDPWD La carpeta anterior donde el usuario estuvo
Syntaxis: env [opciones]

Opciones:
-i (ignore) .- Configura un ambiente en
blanco

Ejemplo:
env
Sintaxis: export [opciones] VARIABLE_AMBIENTE [=valor]

Ejemplos:
export MI_VARIABLE
export PATH=$PATH:/opt/bin
 Monitoreo de memoria, swap, disco, file
system, procesos, conexiones
 Agregar / eliminar memoria swap
 Listar / eliminar procesos
 Daemons
 Procesos FG y BG
 Fecha del sistema
 Obtener información del sistema
 Tareas programadas
 Creación de alias
Memoria
swap
Uso de disco
Filesystems
Procesos
Conexiones
Syntaxis: free [opciones]

Opciones:
-t (total) .- Muestra el total
-b (B), -k (kB), -m (MB) .- Muestra la salida en
la unidad requerida
Syntaxis: swap [opciones]

Opciones:
-l (list) : Muestra los dispositivos de swap
-s (summary) : Muestra los valores de swap
-d <file name> [device] : Elimina swap
-a <file name> [device] : Asigna swap
Syntaxis: swapon [opciones]

Opciones:
-s (summary) : Muestra los dispositivos de
swap
-a <file name> [device] : Asigna swap

NOTA: Para agregar el área de swap se deberá dar


formato (tipo 82), de lo contrario no será posible la
asignación.
Syntaxis: swapoff [opciones]

Opciones:
-a : Elimina todos los dispositivos de swap
<file name> [device] : Elimina dispositivo de
swap seleccionado
Es un espacio en disco duro, reservado para
emular mayor memoria principal. Enviando
procesos conforme requiere liberar espacio en
la RAM
Sintaxis: vmstat [opciones]
Reporta:
Procs Memory

r Procesos esperando swpd Memoria virtual usada

b Procesos durmiendo free Memoria sin usar


ininterrumpibles
buff Memoria usada como buffer
swap
cache Memoria usada como cache
si Memoria escribiendo en disco
inact Memoria inactiva
so Memoria leída de disco
active Memoria activa

IO

bi Bloques recibidos de un
dispositivo
bo Bloques enviados a un dispositivo
Archivos involucrados:
/proc/meminfo
/proc/stat

system CPU

In Interrupciones por segundo us Tiempo usuario empleado

cs Conmutaciones por segundo sy Tiempo del sistema empleado

Id Tiempo empleado en desuso

wa Tiempo empleado en I/O

st Tiempo que las máquinas


virtuales emplearon
Sintaxis: vmstat [opciones]

Opciones:
-i : Reporta el número de interrupciones por
dispositivo.
-p : Actividad de paginación de manera detallada.
-q : Suprime los mensajes relacionados a los
cambios de estado
-s : Despliega los eventos del sistema desde el
último reinicio.
El uso más común es indicando el intervalo de
tiempo entre las muestras que serán visualizadas.

Ejemplo:

# vmstat 2 10
Sintaxis: du [opciones] archivo

Opciones:
-h (human) .- Reporta en unidades “legibles”
-k (kb) .- Reporta las cantidades en kilobytes
-s (summarize) .- Reporta el tamaño de la carpeta
(sin mostrar subcarpetas y archivos)
Ejemplos:
du -sh
du –k /u01
Sintaxis: df [opciones] [filesystem]

Opciones:
-h (human) .- Reporta en unidades “legibles”
-k (kb) .- Reporta las cantidades en kilobytes
-a (all) .- Reporta todos los FS, incluyendo aquellos
con 0 bloques

Ejemplos:
df -h
df –k /u01
Es un script, comando, aplicación o tarea que se
encuentra actuando en la memoria.

Puede estarse ejecutando en primer plano,


requerir argumentos. Debe tener un ID único
que lo identifica en el sistema
Sintaxis: ps [opciones]

Opciones:
-f (full) .- Formato completo
-e .- Todos los procesos
-a : Todos los procesos solicitados con mayor
frecuencia

Ejemplos:
ps –ef // Ver todos los procesos
ps –ejH // Imprime los procesos en árbol
ps -U root -u root // Todos los procesos
del usuario: root
Sintaxis: pstree [opciones]

Opciones:
-a (arguments) .- Muestra los argumentos enviados
en la cli
-p (PID) .- Muestra en paréntesis el PID de cada
proceso

Ejemplos:
pstree
Sintaxis: ptree [opciones]

Opciones:
-a : Muestra todo el árbol de procesos
-c : Muestra el árbol de procesos de manera
compacta
-z : muestra los procesos de la zona indicada

Ejemplos:
ptree –a
ptree PID
Sintaxis: kill [opciones] PID

Ejemplo:
kill -9 2345
Señal Valor Acción Descripción

SIGHUP 1 Term Termina los proceso de una misma terminal


SIGINT 2 Term Interrumpe el porceso al oprimir la tecla "Int"
SIGQUIT 3 Core Cuando se oprime tecla de salida
SIGILL 4 Core Illegal
SIGABRT 6 Core Fallo de HW
SIGFPE 8 Core Error en coma flotante
SIGKILL 9 Term Termina proceso forzosamente
Es un proceso que está en memoria esperando
una señal para actuar.

Se ejecutan en modo
background
Foreground (primer plano) .- Se invoca con fg

Background (Segundo plano) .- Se invoca


colocando un ‘&’ al final del proceso; o con:
CTRL + z (señal de stop) y luego bg
Sintaxis: ifconfig [opciones]

Opciones:
-a (all) : Muestra todas las interfaces de red del equipo.
Nombre_interfaz : Muestra solo esa interfaz configurada

Ejemplos:
ifconfig –a // Todas las interfaces y su
configuración
ifconfig e1000g0 // Solo la configuración
para esa interfaz
ifconfig // Todas las interfaces
configuradas
Sintaxis: netstat [opciones]

Opciones:
-a (all) .- Muestra todas las conexiones actuales y su estado.
-r (route) .- Muestra la tabla de ruteo
-n (no resolve) .- No resuelve las IP’s.
-v (verbose) .- Muestra mayor información (como la máscara
de red)

Ejemplos:
netstat –a // Todas las conexiones actuales y
su estado
netstat –rnv // Tabla de rutas estáticas
Ejemplos:
date : Muestra la fecha configurada.
date MMDDHHmmYYYY : Cambia la fecha.

Dónde:
MM : Mes
DD : Día
HH : Hora
mm: Minuto
YYYY: Año
Sintaxis: uname [opciones]

Opciones:
-a (all) .- Muestra todos los parámetros
-o (OS) .- Muestra el tipo de OS
-s (OS) .- Muestra el tipo de OS

Ejemplos:
uname // uname –s
uname –a
Es el demonio encargado de ejecutar tareas
programadas

Archivos involucrados:
/etc/crontab
/etc/cron.allow
/etc/cron.deny
/var/spool/cron/*
Sintaxis: crontab [opciones] [usuario]

Opciones:
-l (list).- Muestra las tareas cron del usuario
-e (edit) .- Edita la tabla de tareas
-u (user) .- Aplica el comando al usuario requerido
-r (remove) .- Elimina la tabla cron del usuario

Ejemplos:
crontab –l
crontab –e –u oracle
minuto (0-59)
| hora (0-23)
| | Día del mes (1-31)
| | | Mes del año (1-12)
| | | | Día de la semana (0-6; donde 0=Domingo)
| | | | |

* * * * * COMANDO

* = Metacaracter
# = Comentario

Ejemplo:
0 10 * * * /root/bin/proceso.sh > /dev/null 2>&1
Sintaxis: at [opciones] fecha (tarea y
CTRL+D)

Opciones:
-l (list).- Muestra las tareas almacenadas
-r (remove) .- Elimina la tarea at programada

Ejemplos:
at 20.06.2006 13:30
at -l
Sintaxis: sleep número[sufijo]

Sufijos : s=segundos, m=minutos, h=horas y d=dias

Opciones:
--help .- Muestra el manual del comando
--version .- Muestra información acerca de la versión del
comando

Ejemplos:
sleep 5
sleep 1m
Secuencia para repetir el último comando
ejecutado (incluye retorno de carro)

Ejemplos:
!!
Opciones:
-l (lines) .- Cuentas las líneas enviadas
-w (word) .- Cuenta las palabras enviadas
-L (length).- Muestra la longitud de la línea más larga
-c .- Cuenta el número de bytes enviados
-m .- Cuenta el número de caracteres enviados
Ejemplos:
wc // Cuenta líneas, palabras y
caracteres
wc –l nombre_archivo
wc –w nombre_archivo
Sintaxis: alias [opciones]
nombre_alias=‘comando’

Opciones
-p (print) .- Muestra los alias actuales

Ejemplos:
alias busca=‘find /opt/ -name logs’
alias -p
Sintaxis: clear

Se puede obtener el mismo resultado con:


CTRL + L
 Configuración de red
 Creación de FS
 Solaris Volume Manager
Cuando se desea configurar una nueva interfaz en el
equipo sin necesidad de reiniciar el equipo, se utiliza
el comando plumb.
Este comando habilita la interfaz y permite la
asignación de una IP de cualquier segmento que este
disponible.
La sintaxis para habilitarla es:

# ifconfig nombre_interfaz plumb


Ejemplo:
# ifconfig qfe0 plumb up
En cuanto la interfaz esta habilitada, es posible
asignarle una IP, la sintaxis es la siguiente:

# ifconfig nombre_interfaz inet x.x.x.x netmask


y.y.y.y broadcast + up

Ejemplo:
# ifconfig qfe0 inet 172.28.18.134 netmask
255.255.255.0 broadcast + up
Para eliminar la configuración de una interfaz se
utiliza el comando unplumb.

La sintaxis es la siguiente:

# ifconfig nombre_interfaz unplumb

Ejemplo:

# ifconfig qfe0 unplumb


Los archivos de configuración donde se almacenan los datos
para hacerlos persistentes al reinicio son los siguientes:

• /etc/hosts
• /etc/hostname.nombre_interfaz
• /etc/netmasks

• /etc/sysconfig/network-scripts/ifcfg-nombre_interfaz
Un sistema puede tener una gran cantidad de discos internos o
externos. Para listarlos se utiliza el comando format.

Este comando nos permite identificar el disco y realizar tareas


de particionamiento sobre éste. La sintaxis es:

# format

Entre las tareas más comunes esta:


- Particionamiento de disco

- Etiquetar discos

- Realizar pruebas de r/w sobre un disco

- Copiar tabla de particiones a otro disco


El menú principal del comando format al seleccionar un disco es
el siguiente:
En los sistemas Solaris basados en arquitectura x86,
frecuentemente es necesario utilizar el comando fdisk el cual
nos permite la creación de una partición basada en UFS y tener
otras más en formato distintos.
En sistemas RedHat se utiliza el comando fdisk para listar los
discos disponibles y trabajar con alguno de ellos.

# fdisk –l : Lista los discos en el sistema


# fdisk /dev/sdb : Permite trabajar con las particiones del disco
sdb
Dentro de las tareas más comunes de un SysAdmin esta la
creación de FS. Estos pueden crearse con disco interno o con
disco externo.En Solaris es posible crearlos de tipo ufs o zfs.

El procedimiento para la creación de un FS es el siguiente:

1. Conectar el disco
2. Crear slices necesarios y etiquetarlos para poder ser
utilizados con UFS
3. Crear el FS de tipo UFS
4. Montar el FS
5. Hacerlo persistente al reinicio
Ejemplo:
# newfs /dev/rdsk/c1t1d0s7

# mount /dev/dsk/c1t1d0s7 /punto_montaje

# vi /etc/vfstab
.
.
.
/dev/dsk/c1t1d0s7 /dev/rdsk/c1t1d0s7 /punto_montaje ufs 2 yes -
En el sistema Solaris viene incluido un manejador de volúmenes
llamado Solaris Volume Manager (SVM), en versiones 8 y
anteriores era conocido como Solaris Disk Suite (SDS).

Este manejador permite unir dos o más discos para la creación


de hasta 255 FS de tipo UFS, los cuales pueden ser creados de
tal manera que se puedan crecer en línea.

Los pasos para la creación de los FS son:


1. Crear partición en disco(s) seleccionados
2. Crear el metadispositivo asociado a este FS
3. Dar formato UFS al nuevo metadispositivo creado
4. Montar FS y hacerlo persistente al reinicio
Ejemplo:

# format
# metainit d29 1 1 c1t1d0s7
# newfs /dev/md/rdsk/d29
# vi /etc/vfstab
/dev/md/dsk/d29 /dev/md/rdsk/d29 /punto_montaje ufs 2 yes -
# mount -a
Ejemplo:

# format
# metainit d29 1 1 c1t1d0s7
# newfs /dev/md/rdsk/d29
# vi /etc/vfstab
/dev/md/dsk/d29 /dev/md/rdsk/d29 /punto_montaje ufs 2 yes -
# mount -a

You might also like