La filosofía de Unix es: Cada programa debe hacer un solo trabajo y hacerlo bien, esta filosofía y la habilidad de interconectar programas lo hacen un sistema operativo modular. Es un sistema de tiempo compartido. Existen veriones multiusuario y monousuario. Unix se divide en dos partes: el kernel y las utilidades.
Contribuciones de AT&T: memoria compartida, streams (mecanismos IPC que reemplazan a los sockets) y RFC (remote file sharing).
Emulaciones de Unix: UTS (corre en VM470), Eunice y Unity (corren en VMS de las Vax de Dec).
La interacción del Unix con el usuario se da a través de shells. El más popular es el Bourne-Shell (sh). Se reconoce que el sh está esperando un comando porque aparece un prompt llamado primario "$"; asi mismo si al comando entrado le hacen falta parámetros aparecerá el prompt secudario ">". Estos prompts se pueden modificar ya que son variables de shell (PS1 y PS2). Para visualizar el valor actual de este tipo de variables se usa el comando: echo $variable. Para modificar este tipo de variables se usa el comando: variable=valor.
Otro shell popular es el C-Shell (csh). El csh utiliza como prompt primario el "%".
Los shells de Unix abren dos flujos de datos cada vez que se ejecuta un nuevo proceso. El mismo shell es un proceso. Son flujos de caracteres y están conectados por defecto a la terminal (pantalla y teclado son la salida y entrada estándar) Ambos flujos se pueden redireccionar con < para modificar la entrada y > para modificar la salida. El >> se puede usar para agregar a un archivo ya existente la nueva salida.
Los comandos en Unix siguen esta convención: comando -opciones parámetros. Las opciones siempre deberán estar entre el comando y los parámetros, suelen ser letras. Los parámetros suelen ser archivos. Si se necesita hacer uso de un metacarater al escribir un comando se puede agregar un "\" para "desactivarlo"; si está contenido en una cadena entonces se deberá de encerrar en comillas.
Ctrl-Q, Ctrl-S: Reestablece la salida en pantalla.
El Unix es un sistema operativo que trabaja sobre archivos, un archivo posee ciertos atributos: nombre, tamaño y localización entre otros. Unix observa cada archivo como una cadena de bytes. Sin embargo la mayor parte de los programas de utilidad (editores de texto y compiladores) imponen cierto formato básico a los archivos que crean. El nombre del archivo puede ser de 1 a 14 o 255 caracteres, depende del sistema con el que se trabaje. Puede incluir puntos pero no metacaracteres. Los puntos se suelen usar para delimitar campos (extensiones).
Unix trata a los periféricos como archivos (localizados en /dev). Asi mismo los directorios también son vistos como archivos. Cada archivo tiene un dueño único, regularmente el que creó el archivo. Los archivos del sistema operativo y los periféricos pertenecen a "root" (administrador del sistema). La terminal (otro archivo) pertenece al usuario que la usa. Cada usuario tiene un directorio de acceso nombrado "HOME" (variable de shell), ahí puede crear sus archivos.
Los archivos pueden ser referenciados en los comandos haciendo uso de comodines: * empareja con cualquier cadena, ? empareja con un caracter cualquiera y [] empareja con cualquier caracter de los ahí contenidos (puede ser un intervalo de caracteres).
No existe un estándar respecto a la localización de los archivos de un sistema Unix, pero se siguen estas normas:
bin : Para programas que implementan comandos del sistema.usr : Archivos y directorios de los usuarios del sistema.
A menos que un archivo tenga el atributo x activado para el tipo de usuario adecuado, el shell rechazará cualquier intento de ejecución de ese archivo. Existen dos tipos de archivos ejecutables: programas compilados y encadenados (.out) o archivos de texto con comandos shell.
Si al final de la línea de comando se pone un & antes de dar el "Enter", el shell pondrá en ejecución el proceso, nos dará el valor de identificación del proceso y un nuevo prompt sin esperar a que el proceso termine.
man x comando : Visualiza el manual (si lo hay) del comando, x es el número del volumen (1 para resumen y k (keyword) para opciones o comandos relacionados).
passwd : Modifica el password de entrada a la cuenta.
who : Lista a los usarios que tienen una sesión abierta.
date : Da la fecha y la hora del sistema.
echo cadena : Visualiza la cadena en la pantalla, si empieza con $ entonces visualiza el contenido de esa variable de shell.
more, pg : Programa que "visualiza" su entrada en la salida pero con "cortes" o pausas en la pantalla.
cat archivo : Copia el contenido de uno o más archivos a la pantalla.
ls : Lista el contenido del directorio en curso, o el especificado. Los directorios aparecen listados con la propiedad "d".
rm archivo : Borra los archivos listados como parámetros.
mv : Mueve un archivo de un directorio a otro o le cambia el nombre.
cp : Copia archivos.
grep cadena archivo : Busca en el archivo la cadena dada.
cmp archivo1 archivo2 : Compara dos archivos y visualiza las diferencias.
mkdir directorio : Crea el directorio dado en el directorio actual.
cd directorio : Cambia el directorio actual al especificado. Para ir al directorio "padre" del actual se usan los dos puntos (..) .
pwd : Visualiza la ruta del directorio actual.
rmdir directorio : Borra el directorio especificado siempre y cuando esté vació.
chmod usuario[signo atributo] archivo : Modifica los atributos de protección del archivo:
Signo: + añade - eliminia Usuarios: u: Usuario r: Permite leer el archivo o directorio g: Grupo w: Permite escribir el archivo o direc. o: Otros usuarios x: Permite ejecutar el archivo o entrar al dir. a: Todos los usuario s: Pone el privilegio de user_id. t: Pone el privilegio de texto.
split : Divide un archivo en un conjunto de archivos de longitud dada.
tail : Extrae las n últimas líneas de un archivo.
tr, dd : Intercambia caracteres dentro de un archivo.
crypt : Encripta y desencripta archivos empleando una clave.
spell : Explora a través de un archivo de texto y contrasta cada palabra con su diccionario visualizando las palabras que no ha podido reconocer. spelling permite a un usuario privilegiado la introducción de nuevas palabras.
pubindex : Toma un conjunto de referencias bibliográficas y hace un archivo índice.
refer : Usa como archivo fuente el archivo índice de pubindex, examina un documento reemplazando las referencias abreviadas por su forma completa.
lookbib : Busca una base bibliogáfica de datos creados por el usuario para que empareje las palabras claves que se dan como entrada, y produce una lista de referencias como salida.
roff, nroff, troff : Procesadores de texto. Preprocesadores que pueden usar: tbl (permite diseñar un formato de tabla) y negn (formatea expresiones matemáticas).
write : Permite mandar mensajes a los usuarios con sesión abierta.
mesg y/n: Activa/Desactiva la visualización de mensajes.
mail : Permite mandar correo electrónico a los usuarios del sistema.
df : Da la cantidad de espacio libre que queda en un disco.
du : Da la cantidad de espacio usado por el directorio en curso y sus subdirectorios.
ac : Controla la cantidad de tiempo acceso utilizado.
dump : Obtiene copias de archivos de tipo backup para cintas, se recuperan con restore.
tar : Copia archivos a cinta.
dc : Calculadora de notación polaca inversa, necesita un programa como: 1237
bc : Es un preprocesador tipo c para dc.
lex : Analizador de léxico.
yacc : Compilador de compiladores.
od : Muestra un archivo en los soguientes formatos: b (octal) c (ascii) d (decimal) o (octal) x (hexadecimal).
mount : Monta un dispositivo tipo quita-pon
ps : Informa el estado de todos los procesos que en ese momento se están ejecutando.
wait : Mantiene en suspenso la termninal hasta que todos los procesos terminen.
tee : Se emplea en pipes (|), hace una copia de la entrada estándar a la salida estándar, así como a otro archivo.
awk : Un lenguaje para emparejar cadenas con un modelo dado.
sort : Ordena un archivo.
at : Difiere la ejecución de un proceso hasta la hora especificada.
sleep : Difiere la ejecución de un proceso para un periodo determinado.
expr : Manipula variables shell para operaciones aritméticas.
test : Comprueba el estado o la existencia de un archivo, compara cadenas de caracteres o compara valores numéricos.
time : Da el lapso transcurrido así como la proporción de su uso por la CPU al ejecutar un comando dado.
$1, $2, $3... Con $* se pueden leer todos los parámetros, $# número de parámetros.
Los parámetros son variables tipo shell dentro del programa, para referirnos a ellos se pueden usar comodines: *, ?, [].
Sistema de control de código fuente: Mantiene archivos almacenando una versión base de cada archivo y grabando todas las modificaciones subsiguientes como una serie de deltas. Se aplica exclusivamente a archivos de texto, verifica el que el usuario pueda o no acceder y modificar las versiones que se van generando.
Configuracion de XWindows: XF86Config
Inicio de sesion en XWindows: startx -- -bpp 16
Fondo Terraqueo: xearth
Descomprimir archivos .Z: zcat Archivo.z|tar -xf -
Descomprimr archivos .tar: tar xvf Archivo.tar
Instalar: rpm -ivh archivo.rpm
Reconstruye base: rpm -QA
Ambiente de programacion: xwpe
Para cambiar entorno grafico: switchdesk
glib glib10 gtk+10 gtk+ gtk-engines Orbit audiofile utempter libguile redhat-logos libghttp libgtop libgtop-examples cpp PropList WindowMaker wmakerconf imlib initscripts pam gnome-audio-extra gnome-audio gnome-libs gnome-utils Fnlib libttf enlightenment libgtkxmhtml libgtop_common libgtop_sysdeps gnome-core gdm gnome-media
qt kdesupport kdelibs kdebase kdetoys kdegames kdeadmin switchdesk-kde kdeutils kdegraphics kdemultimedia korganizer kdenetwork kppload