Monografias.com > Computación > Sistemas Operativos
Descargar Imprimir Comentar Ver trabajos relacionados

Material de Gestión de Sistemas




Enviado por Carolina Azar



Partes: 1, 2

    1. Objetivos
    2. Elementos de Operaciones de
      Sistemas. Aspectos Generales.
    3. Manipulación y uso de
      los comandos.
    4. Sistema
      de Archivos en UNIX.
    5. Programación
      Shell
    6. Bibliografía

    Objetivos
    Generales:

    Objetivos Específicos:

    • Comprender la real evolución y los aportes de sistema
      operativo UNIX.
    • Conocer y poner en práctica el concepto de los
      sistemas
      multiusuarios.
    • Aprender el uso de los diferentes comandos del
      UNIX y Linux.
    • Conocer los diferentes editores de texto con lo
      que cuenta el Sistema
      operativo UNIX, así como los comandos más usados
      en estos editores.
    • Comprender y entender a construir programas
      usando la herramienta Shell, tomando en cuenta su estructura
      básica y las diferentes formas de transferencia de
      control.
    • Aprender a utilizar las diferentes herramientas
      de programación.

    CAPITULO I

    Elementos de
    Operaciones de
    Sistemas. Aspectos Generales.

    ¿Qué es Unix?

    Unix es un sistema operativo de los múltiples que
    existen en el mercado, sin
    embargo tiene ciertas características que lo hacen
    único y muy útil para ciertos tipos de trabajo. Este
    sistema surgió en los años 60, durante la
    aparición de lo que se podrían considerar como los
    primeros ordenadores modernos. Inicialmente desarrollado por
    ingenieros de los Bell Laboratorios se diseño
    para su uso en ambientes profesionales, en los que los usuarios
    tenían amplios conocimientos y experiencia en
    programación e informática

    Evolución de Unix

    A lo largo de muchos años estos sistemas han
    evolucionado enormemente y han adquirido gran popularidad en los
    entornos profesionales y empresariales por su gran fiabilidad,
    robustez y versatilidad. A pesar de la evolución e
    introducción en mercados no
    especializados Unix sigue fiel a sus líneas iniciales.
    Poco a poco se fueron mejorando y modernizando sus funciones y lo
    que es más importante, su facilidad de uso ha incrementado
    notablemente, llegando a un punto en el que se requieren escasos
    conocimientos avanzados de informática para poder
    iniciarse en el uso de estos sistemas. Eso sí, no se le
    podrá exprimir todo su potencial sin un considerable
    esfuerzo de aprendizaje por
    parte del usuario.

    El momento actual

    En estos momentos se está produciendo lo que se
    podría clasificar como una explosión de Unix en la
    informática personal. A pesar
    del avance de Windows NT
    como plataforma de servidor red en empresas (sobre
    todo en la pequeña y mediana, que precisan facilidad de
    uso con unas prestaciones
    aceptables), y del consiguiente retroceso en estas áreas
    de los sistemas gobernados por Unix, en las áreas no
    profesionales se esta produciendo un espectacular avance de este
    sistema operativo. Este avance está incitado por la escasa
    calidad de los
    sistemas Windows, sobre
    todo como plataforma de conexión a redes, es decir a Internet (léase
    problemas de
    nukes, poca estabilidad, lentitud, etc.). Llegados a este punto
    hay que hacer una referencia obligada a Linux, que se ha
    convertido en la gran alternativa a Windows para ordenadores
    personales.

    GENERALIDADES

    Antecedentes
    históricos.

    El S.O. Unix fué creado a finales de la
    década de los 60 sobre la base de varios trabajos
    realizados conjuntamente por el MIT y Laboratorios BELL. Dichos
    trabajos (proyecto MULTICS)
    iban encaminados a la creación de un macrosistema de
    computación que diese servicio a
    miles de usuarios. Si bien el proyecto fracasó,
    posiblemente por intentar abarcar demasiado contando con unos
    elementos hardware limitados en esa
    época, influyó decisivamente sobre la
    evolución de los sistemas informáticos
    posteriores.

    Un antiguo componente de dicho proyecto (Ken Thompson),
    desarrolló por su cuenta un sistema operativo monousuario
    con la característica principal de un sistema de archivos
    jerárquico.

    El sistema encontró muchos entusiastas y se hizo
    portable al reescribirse casi íntegramente en lenguaje "C",
    y se suministró en código
    fuente a las Universidades como objeto de formación.
    Así, la Universidad de
    California en Berkeley retocó dicho sistema
    (fundamentalmente, comunicaciones
    y diversas utilidades como el editor "vi") , y liberó lo
    que luego sería el BSD , uno de los dos "dialectos"
    principales del UNIX.

    Actualmente, existen dos corrientes, las cuales cada vez
    poseen más elementos comunes: la BSD 4.X y la System V R
    4.

    Mención especial merece el S.O. LINUX, un UNIX
    gratuito para computadoras
    personales (PC con Intel 386 o superior) y últimamente en
    proceso de
    "porting" a otras plataformas, tales como SPARC (Sun) o Motorola
    (m68k), cuya rápida expansión está
    revolucionando la comunidad
    informática.

    Conceptos iniciales.

    El S.O. Unix se encarga de controlar y asignar los
    recursos
    físicos del ordenador (hardware) y de planificar tareas.
    Podemos establecer tres elementos principales dentro de
    éste S.O.:

    El núcleo del sistema operativo
    (kernel),
    el escalón más bajo que realiza
    tareas tales como el acceso a los dispositivos (terminales,
    discos, cintas…).

    El intérprete de comandos (shell)
    es la interfase básica que ofrece UNIX de cara al usuario.
    Además de ejecutar otros programas, posee un lenguaje
    propio así como numerosas características
    adicionales que se estudiarán en un capítulo
    posterior.

    Utilidades "de fábrica";
    normalmente se trata de programas ejecutables que vienen junto
    con el Sistema Operativo; algunas de ellas son:

    Compiladores: C, Assembler y en algunos
    casos Fortran 77 y C++.

    – Herramientas de edición: Editores (vi,ex) ,
    formateadores (troff) , filtros …

    – Soporte de comunicaciones: Herramientas
    basadas en TCP/IP
    (telnet,ftp
    …)

    – Programas de Administración del Sistema (sysadm,
    SA, SAM, va…)

    – Utilidades diversas y juegos
    (éstos últimos se suele instalar
    aparte).

    ORDENES BASICAS.

    Conexión y
    desconexión.

    Para acceder al sistema, éste presenta el mensaje
    de login, con el que quiere significar algo así como
    "introduce el usuario con el que quieres abrir una
    sesión".

    UNIX(r) System V Release 4.2

    Login:

    Una vez tecleado el usuario que se quiere y haber
    pulsado RETURN, solicita una palabra de paso (password), la cual,
    como es natural, no se verá en pantalla aunque se
    escriba.

    UNIX(r) System V Release 4.2

    Login: antonio

    Password:

    $

     Tanto el nombre del usuario como la palabra de
    paso han de ser escritas "de golpe", es decir, no se pueden dar a
    los cursores para modificar ningún carácter y mucho menos la tecla de
    Backspace, Ins, Del… Esto es debido a que, tanto este
    carácter como los aplicados a los cursores, son caracteres
    válidos en nombres de usuario y en palabras de
    paso.

    El sistema, una vez aceptado el nombre del usuario (el
    cual como es obvio habrá sido asignado por el Administrador,
    así como la palabra de paso), lanza por pantalla unos
    mensajes de bienvenida y termina con el símbolo denominado
    "prompt", símbolo configurable (como casi todo en UNIX) y
    que suele ser un ‘$’ ó un
    ‘#’.

    Existe en todos los sistemas UNIX un superusuario
    llamado "root", que puede hacer absolutamente lo que quiera en el
    sistema. Además, hay algunos usuarios especiales,
    dependiendo del sistema que se trate con más privilegios
    de los normales (admin ó sysadm, usuario de administración del equipo, uucp como
    usuario de comunicaciones) y el resto, que corresponden a
    usuarios normales.

    El programa que
    está en este momento mostrando el prompt es la shell o
    intérprete de comandos. Con este prompt, indica algo
    así como "preparado para que me escribas el comando que
    quieres ejecutar".

    También es significativa la diferencia entre
    mayúsculas y minúsculas; no es lo mismo "cal" que
    "CAL". El primero es un comando de calendario; el segundo no
    existe y la shell se queja de que no lo encuentra:

    Conceptos: grupo,
    directorio de trabajo, shell, tipo de terminal.

    Cada usuario, aparte de la palabra de paso, posee unos
    determinados atributos los cuales básicamente
    son:

    – Grupo: A cada usuario, en el momento de su
    creación, se le asigna uno ( o varios , si la
    versión del sistema es moderno ) . La misión de
    esto radica en agrupar usuarios en "grupos" cara a
    permitir y a denegar accesos en el sistema. Para ver a qué
    grupo pertenecemos, se puede ejecutar el comando "id" , el cual
    producirá un resultado similar al siguiente :

    $ id

    uid=129(jose) gid=1(other)

    Como era de esperar, el comando nos contesta con siglas
    en inglés;
    "uid" (UserID) , identificador de usuario , un número y un
    nombre (129 y José) ; "gid" (GroupID) , identificador de
    grupo , un número y un nombre (1 y other).

    – Directorio de trabajo: Al iniciar una sesión
    (tras hacer "login"), cada usuario "cae" en un determinado
    directorio prefijado . Este habrá sido fijado por el
    administrador en el momento de la creación, y normalmente
    estará situado en "/home/jose" , "/users/acct/jose"
    ó similar. No existe un estándar sobre esto y puede
    ser cualquier subdirectorio del sistema, incluido el
    raíz.

    Para visualizar cuál es nuestro directorio,
    podemos escribir el comando "pwd" (Print Working Directory)
    inmediatamente después de haber hecho "login" .

    – Shell: Si bien nos hemos referido de forma
    genérica a la shell, existen diversas versiones asignables
    a usuarios, de las cuales podemos citar algunas:

    – la Bourne shell ("sh") : Una de las más
    antiguas y , por tanto , más seguras.

    – la Korn shell ("ksh") : Basada en la de Bourne pero
    más moderna y con más funcionalidades.

    – la C-Shell ("csh") : Preferida en entornos BSD y
    bastante potente aunque más críptica que las dos
    anteriores.

    Veremos más adelante las características
    de cada una de ellas con más detalle.

    – Características del Terminal: Dependiendo de
    cómo se tenga configurado el terminal, la sesión se
    comporta de una manera determinada frente los siguientes
    caracteres especiales:

    – Control + C (INTR) : Interrumpe el programa que se
    está ejecutando en ese momento.

    – Control + H (ERASE) : Borra el último
    carácter escrito.

    – Control + D (EOF) : Termina la sesión ; posee
    un efecto similar a escribir "exit" .

    SHELL

    La shell es el programa más importante para la
    mayoría de los usuarios y administradores de UNIX; con la
    excepción del editor de textos y del menú de
    administración, posiblemente es con el que más
    tiempo se
    trabaja.

    La shell es el lenguaje de
    comandos de UNIX; es un programa que lee los caracteres tecleados
    por los usuarios, los interpreta y los ejecuta.

    A diferencia de otros intérpretes más
    estáticos en otros sistemas
    operativos, aquí existe además un completo
    lenguaje de
    programación que permite adaptar de manera
    relativamente sencilla el sistema operativo a las necesidades de
    la instalación.

    Una vez que un usuario común se ha registrado
    cara al sistema con su login y su password, se le cede el control
    a la shell, la cual normalmente ejecuta dos ficheros de
    configuración, el general ( /etc/profile ) y el
    particular( <directorio_del_usuario>/.profile ). Una vez
    aquí , la propia shell despliega el literal "inductor de
    comandos" , que normalmente será :

    $

    ó

    #

    Y el cursor en espera de que alguien escriba
    algún comando para ejecutar.

    Tipos y propiedades.

    Ya que, como hemos explicado anteriormente, la shell es
    un programa, existen varios, cada uno con sus
    características particulares. Veamos algunas de
    ellas:

    – Bourne shell ( /bin/sh ) : Creada por Steven Bourne de
    la AT&T . Es la más antigua de todas y , por tanto ,
    la más fiable y compatible entre plataformas . Esta es en
    la que se basan las explicaciones posteriores.

    – Korn shell (/bin/ksh) : Creada por David G. Korn de
    los laboratorios Bell de la AT&T .Más moderna , toma
    todos los comandos de la Bourne y le añade varios
    más así como varias características de r
    eedición interactiva de comandos , control de trabajos y
    mejor rendimiento en términos de velocidad que
    la anterior. Existen dos versiones, una primera "maldita" y la
    actual, de 16/11/1988. (Podemos averiguar qué versi&oa
    cute;n tiene la nuestra ejecutando el comando "what /bin/ksh")
    Pero no es oro todo lo
    que reluce ; cuando se trata de situaciones extremas ó
    complicadas donde la ksh falla, la de Bourne normalmente
    está más "blindada&qu ot; .

    – C Shell, desarrollada por Bill Joy en la Universidad
    de California y , por tanto , más extendida entre UNIX
    BSD. Bastante más críptica que la de Bourne ,
    incorpora no obstante sustanciales mejoras .

    Estructura de las órdenes –
    Metacaracteres.

    Cuando escribimos cualquier comando y pulsamos
    <INTRO> , es la shell y no UNIX quien se encarga de
    interpretar lo que estamos escribiendo y ordenando que se ejecute
    dicho comando. Aparte de los caracteres normales, la shell
    Interpreta otros caracteres de modo especial : un grupo de
    caracteres se utiliza para generar nombres de ficheros sin
    necesidad de teclearlos explícitamente.

    Cuando la shell está interpretando un nombre, los
    caracteres * ? [ ] Se utilizan para generar patrones. El nombre
    que contenga alguno de éstos caracteres es reemplazado por
    una lista de los ficheros del directorio actual cuyo nombre se
    ajuste al patrón generado.

    Las reglas de generación de patrones
    son:

    * Vale cualquier cadena de caracteres.

    ? Vale un carácter cualquiera.

    [ .. ] Vale cualquiera de los caracteres que coincida
    con los que estén entre corchetes.

    Ejemplo. Supongamos que en nuestro directorio actual
    tenemos los siguientes ficheros:

    $ ls

    tonto

    Tonta

    Diario

    Mayor

    Veamos cada una de las salidas correspondientes a las
    reglas anteriores:

    $ ls * (valen todos)

    tonto

    tonta

    diario

    mayor

    $ ls *o (todos, pero tienen que acabar en
    "o")

    tonto

    diario

    $ ls tont? (que empiecen por tont y cualquier otro
    carácter)

    tonto

    tonta

    $ ls tont[oa] (que empiecen por tont y el siguiente sea
    "o" ó "a" )

    Características
    Generales:

     Es un sistema operativo de tiempo compartido,
    controla los recursos de una computadora y
    los asigna entre los usuarios. Permite a los usuarios correr sus
    programas. Controla los dispositivos de periféricos conectados a la
    máquina.

     Posee las siguientes
    características:

    – Es un sistema operativo multiusuario, con capacidad de
    simular multiprocesamiento y procesamiento no
    interactivo.

    – Está escrito en un lenguaje de alto nivel :
    C.

    – Dispone de un lenguaje de control programable llamado
    SHELL.

    – Ofrece facilidades para la creación de
    programas y sistemas y el ambiente
    adecuado para las tareas de diseños de software.

    – Emplea manejo dinámico de memoria por
    intercambio o paginación.

    – Tiene capacidad de interconexión de procesos.

    – Permite comunicación entre procesos.

    – Emplea un sistema jerárquico de archivos, con
    facilidades de protección de archivos, cuentas y
    procesos.

    – Tiene facilidad para redireccionamiento de
    Entradas/Salidas.

    – Garantiza un alto grado de portabilidad.

     El sistema se basa en un Núcleo llamado
    Kernel, que reside permanentemente en la memoria, y
    que atiende a todas las llamadas del sistema, administra el
    acceso a los archivos y el inicio o la suspensión de las
    tareas de los usuarios.

    La comunicación con el sistema UNIX se da
    mediante un programa de control llamado SHELL. Este es un
    lenguaje de control, un intérprete, y un lenguaje de
    programación, cuyas características lo hacen
    sumamente flexible para las tareas de un centro de
    cómputo. Como lenguaje de programación abarca
    los siguientes aspectos:

    – Ofrece las estructuras de
    control normales: secuenciación, iteración
    condicional, selección
    y otras.

    – Paso de parámetros.

    – Sustitución textual de variables y
    Cadenas.

    – Comunicación bidireccional entre órdenes
    de shell.

    El shell permite modificar en forma dinámica las características con que
    se ejecutan los programas en UNIX:

    Las entradas y salidas pueden ser redireccionadas o
    redirigidas hacia archivos, procesos y dispositivos;

    Es posible interconectar procesos entre
    sí.

    Diferentes usuarios pueden "ver" versiones distintas del
    sistema operativo debido a la capacidad del shell para configurar
    diversos ambientes de ejecución. Por ejemplo, se puede
    hacer que un usuario entre directamente a su sección,
    ejecute un programa en particular y salga automáticamente
    del sistema al terminar de usarlo.

    El núcleo del Sistema
    Operativo

      El núcleo del sistema operativo Unix
    (llamado Kernel) es un programa escrito casi en su totalidad en
    lenguaje C,
    con excepción de una parte del manejo de interrupciones,
    expresada en el lenguaje
    ensamblador del procesador en el
    que opera.

    Las funciones del núcleo son permitir la
    existencia de un ambiente en el que sea posible atender a varios
    usuarios y múltiples tareas en forma concurrente,
    repartiendo al procesador entre todos ellos, e intentando
    mantener en grado óptimo la atención individual.

    El Kernel opera como asignador de recursos para
    cualquier proceso que necesite hacer uso de las facilidades de
    cómputo. Es el componente central de Unix y tiene las
    siguientes funciones:

    – Creación de procesos, asignación de
    tiempos de atención y sincronización.

    – Asignación de la atención del procesador
    a los procesos que lo requieren.

    – Administración de espacio en el sistema de
    archivos, que incluye: acceso, protección y
    administración de usuarios; comunicación entre
    usuarios v entre procesos, y manipulación de E/S y
    administración de periféricos.

    Supervisión de la transmisión de
    datos entre la
    memoria principal y los dispositivos
    periféricos.

    El Kernel reside siempre en la memoria central y tiene
    el control sobre la
    computadora, por lo que ningún otro proceso puede
    interrumpirlo; sólo pueden llamarlo para que proporcione
    algún servicio de los ya mencionados. Un proceso llama al
    Kernel mediante módulos especiales conocidos como llamadas
    al sistema.

    El Kernel consta de dos artes principales: la
    sección de control de procesos y la de control de
    dispositivos. La primera asigna recursos, programas, procesos y
    atiende sus requerimientos de servicio; la segunda, supervisa la
    transferencia de datos entre la memoria principal y los
    dispositivos periféricos. En términos generales,
    cada vez que algún usuario oprime una tecla de una
    terminal, o que se debe leer o escribir información del disco magnético, se
    interrumpe al procesador central y el núcleo se encarga de
    efectuar la operación de transferencia.

    Cuando se inicia la operación de la computadora,
    debe cargarse en la memoria una copia del núcleo, que
    reside en e] disco magnético (operación denominada
    bootstrap). Para ello, se deben inicializar algunas interfaces
    básicas de hardware; entre ellas, el reloj que proporciona
    interrupciones periódicas. El Kernel también
    prepara algunas estructuras de datos que abarcan una
    sección de almacenamiento
    temporal para transferencia de información entre
    terminales y procesos, una sección para almacenamiento de
    descriptores de archivos y una variable que indica la cantidad de
    memoria principal.

    A continuación, el Kernel inicializa un proceso
    especial, llamado proceso 0. En general, los procesos se crean
    mediante una llamada a una rutina del sistema (fork), que
    funciona por un mecanismo de duplicación de procesos. Sin
    embargo, esto no es suficiente para crear el primero de ellos,
    por lo que el Kernel asigna una estructura de
    datos y establece apuntadores a una sección especial
    de la memoria, llamada tabla de procesos, que contendrá
    los descriptores de cada uno de los procesos existentes en el
    sistema.

    Después de haber creado el proceso 0, se hace una
    copia del mismo, con lo que se crea el proceso 1; éste muy
    pronto se encargará de "dar vida" al sistema completo,
    mediante la activación de otros procesos que
    también forman parte del núcleo. Es decir, se
    inicia una cadena de activaciones de procesos, entre los cuales
    destaca el conocido como despachador, o scheduler, que es el
    responsable de decidir cuál proceso se ejecutará y
    cuáles van a entrar o salir de la memoria central. A
    partir de ese momento se conoce el número 1 como proceso
    de inicialización del sistema, init.

    El proceso init es el responsable de establecer la
    estructura de procesos en Unix. Normalmente, es capaz de crear al
    menos dos estructuras distintas de procesos: el modo monousuario
    y el multiusuario. Comienza activando el intérprete del
    lenguaje de control (Shell) en la terminal principal, o consola,
    del sistema y proporcionándole privilegios de
    "superusuario". En la modalidad de un solo usuario la consola
    permite iniciar una primera sesión, con privilegios
    especiales, e impide que las otras líneas de
    comunicación acepten iniciar sesiones nuevas. Esta
    modalidad se usa con frecuencia para revisar y reparar sistemas
    de archivos, realizar pruebas de
    funciones básicas del sistema y para otras actividades que
    requieren uso exclusivo de la computadora.

    Init crea otro proceso, que espera pacientemente a que
    alguien entre en sesión en alguna línea de
    comunicación. Cuando esto sucede, realiza ajustes en el
    protocolo de la
    línea y ejecuta el programa login, que se encarga de
    atender inicialmente a los nuevos usuarios. Si la clave del
    usuario, y la contraseña proporcionadas son las correctas,
    entonces entra en operación el programa Shell, que en lo
    sucesivo se encargará de la atención normal del
    usuario que se dio de alta en esa terminal.

    A partir de ese momento el responsable de atender al
    usuario en esa terminal es el intérprete Shell.

    Cuando se desea terminar la sesión hay que
    desconectarse de Shell (y, por lo tanto, de Unix), mediante una
    secuencia especial de teclas (usualmente. < CTL > – D). A
    partir de ese momento la terminal queda disponible para atender a
    un nuevo usuario.

    CAPITULO II

    MANIPULACIÓN Y USO DE LOS
    COMANDOS.

    El Sistema Operativo Unix

    La forma de trabajo es similar a otros sistemas
    operativos: introduce un comando; el Shell (intérprete de
    comandos) lo reconoce y solicita al Kernel del Sistema Operativo
    (Núcleo) la ejecución de la acción,
    el Kernel realiza la acción indicada verificando su
    autoridad y
    retornando o bien la ejecución de lo solicitado o un
    mensaje de error en caso de no ser posible.

    Sistema de Archivo:

    El sistema operativo posee un sistema de archivos donde
    se puede almacenar la información en elementos llamados
    archivos o ficheros. La
    organización de éste es llamado "sistema de
    archivo jerárquico" o "sistema de archivo en forma de
    árbol".

    Un tipo especial de archivo es el llamado directorio, el
    cual contiene una lista de archivos y punteros hacia donde ellos
    se encuentran. Un directorio a su vez puede tener directorios
    (subdirectorios). En Unix existe SOLO UN DIRECTORIO PRINCIPAL
    llamado root y se identifica por / (barra inclinada hacia la
    derecha) y este contiene un conjunto de directorios
    estándares tal como /bin, /dev, /etc., /lib, /tmp, /usr,
    /var, /opt, /home, etc. donde cada uno de ellos contiene comandos
    o subdirectorios específicos para determinadas acciones del
    sistema y del usuario.

    Cada usuario en particular posee un directorio donde
    puede realizar su trabajo y donde él es el dueño
    absoluto (generalmente se encuentra en /home/nombre _ usuario o
    en alguna jerarquía similar). Todos los usuario de un SO
    Unix son iguales ante el sistema (igual privilegio y condiciones)
    excepto un usuario llamado root que es quien tiene posibilidad de
    realizar tareas administrativas (crear usuario, destruirlos,
    etc.) y por lo tanto posee privilegios especiales. Los usuarios
    normales pueden generalmente mirar todo los subdirectorios de SO,
    pero otras tareas como modificar/borrar están prohibidas
    en su mayoría para preservar la ejecución del
    operativo.

    Conexión al sistema:

    Esta actividad se llama login y permite al usuario
    identificarse ante la máquina. Primero se debe establecer
    una conexión con ella a través de un emulador de
    terminal, el cual es un programa que se ejecuta en un PC y
    permite que el teclado y
    display del PC sirvan para la interacción con el SO Unix que se
    está ejecutando en una máquina remota (llamada
    máquina host).

    Ejemplos típicos de estos programas son: telnet
    (de dominio
    público y libre distribución – para dos), qvtnet
    (shareware, probar y si gusta pagar – para windows 3.11), ewan
    (para windows 3.11, pub. domain, libre de copiar), etc…
    Verifique cual de ellos tiene instalado en el aula y utilice el
    que más le agrade. Siempre en la conexión es
    necesario indicarle al emulador de terminal cual es el nombre de
    la máquina host a la cual uno se quiere
    conectar.

    Realizada esta acción el sistema host le
    responderá con un mensaje de bienvenida y algo como
    login: al cual contestará con el nombre
    de usuario que le ha sido asignado. Para verificar su identidad el
    sistema solicitará la palabra clave de acceso
    password: y Usted deberá introducir la
    que le han asignado por primera vez. Se debe tener en cuenta que
    Unix responde a caracteres mayúsculas y minúsculas
    por lo tanto sea cuidadoso al ingresar su nombre de usuario y
    password tal como se lo han dado.

    Si estos pasos han sido satisfactorios, el sistema
    podrá darle (o no) algunos mensajes de entrada y el shell
    le indicará a través del prompt que está
    disponible y a la espera de que le introduzca órdenes
    (comandos) (el prompt es diferente según el shell que
    posea: $, %, etc.)

    *COMANDOS SIMPLES DE UNIX

    Todos los comandos Unix son en minúsculas! (y sin
    los: con los cuales aparecen aquí) y además todos
    tienen el mismo formato: nombre_cmd -opciones archivos_si_los_hay
    (el nombre puede tener de 2 a 5 caracteres pero generalmente son
    las consonantes del verbo en inglés de la acción a
    realizar excepto los comandos peligrosos que incrementan
    su número de caracteres).

    passwd: permite cambiar la palabra
    clave de acceso, vigile que no sea obvia, que Ud. se acuerde para
    la próxima vez que desee entrar y preste atención a
    las mayúsculas y minúsculas que pone.

    Generalmente el sistema obliga a caracteres
    alfabéticos y caracteres especiales (al menos uno como. _
    Dígito). Además para que Ud. este seguro le
    pedirá que lo repita antes de hacerlo efectivo. El passwd
    lo puede cambiar tantas veces como quiera pero existe un
    máximo de días para trabajar con el mismo passwd
    luego el SO le obligará a cambiarlo de lo contrario no lo
    dejará acceder.

    Pwd: (print working directory) imprime
    el directorio donde estamos situados (actual).

    CD: (change directory) cambia de
    directorio. Unix permite identificar los directorios padre e hijo
    por… y. como abreviaturas, por lo que el comando CD… Permite
    pasar al directorio superior (padre).

    Ls: (list) permite listar el contenido
    de un directorio. Admite diferentes opciones: -l form. Largo, -a
    lista todos, -d sólo directorios, -s sólo
    tamaño, etc.

    Chmod: permite cambiar los permisos de
    lectura(r),
    escritura (w),
    ejecución(x) de un archivo/directorio. Unix reconoce tres
    grupos de usuarios: dueño (owner) del archivo/dir, grupo
    (group) y resto (public) y por cada arch/dir existen 9 bits
    (rwxrwxrwx) que indican qué está permitido para el
    dueño-grupo-resto hacer con ese archivo (estos bits se
    pueden visualizar con ls -l) por ejemplo rw-r–r–
    indicará: dueño lee-escribe, grupo-resto
    sólo lee. Para cambiarlo existen diferentes formas pero la
    más sencilla es considerar los bits agrupados de tres en
    tres y el siguiente código (valor octal de
    los bits): 7 significa rwx, 6 rw-, 5 r-x, 4 r–, 3 -wx, 2 -w-, 1
    –x, 0 —, por lo cual para poner el código anterior
    (rw-r–r–) será chmod 644 nombre_del_fichero.

    Chown y chgrp: permiten cambiar el
    dueño de un fichero y su grupo. Cuidado con esta
    opción pues si le cambiamos el dueño a un fichero
    luego no podremos recuperar el antiguo (sólo lo puede
    hacer el nuevo), además sólo podemos cambiar el
    dueño a nuestros ficheros.

    Vi: (visual editor) editor de textos en
    modo pantalla (ver guía rápida de caracteres de
    control).

    Man: (manuals) manuales
    interactivos de Unix, para utilizarlos poner man
    nombre_del_comando.

    Cat: (concatenate) permite concatenar
    ficheros o ver su contenido (1 o más).

    Cp: (copy) permite copiar
    ficheros.

    Date: da información sobre hora
    y fecha.

    DF: (disk free) información
    sobre espacio de disco libre.

    Du: (disk usage) información
    sobre espacio de disco ocupado.

    Find: busca archivos en el árbol
    de directorios.

    Mail: permite enviar mensajes a otros
    usuarios sobre la misma máquina o sobre otras máquinas.

    Mkdir: (make directory) crea
    directorios.

    More, page: visualizador del contenido
    del fichero (más agradable que el cat).

    Mv: (move) permite mover ficheros o
    renombrar.

    Rm, rmdir: (remove) borra fichero /
    borra directorios (rm -r borra fich./dir.)

    Who: permite ver quién
    está conectado (whoami indica quien soy).

    W: permite ver quien esta conectado y
    qué hace.

    PS: (process status) permite ver los
    procesos que está ejecutando el SO.

    Cal: (calendar) imprime un
    calendario.

    Clear: borra el display de la terminal
    (si está bien configurado el emulador)

    Compress, uncompress:
    compacta/descompacta archivos.

    DC: (desk calculator)
    calculadora.

    Diff: (different) permite comparar dos
    archivos.

    Env: (environmnet) imprime el entorno
    (variables).

    Expr: (expression) evalúa
    argumentos de una expresión.

    Exit: Se desconecta (termina la
    sesión activa). Idem que ^D.

    File: imprime el tipo de fichero que es
    (ejecutable/texto/archivo de C/etc.).

    Grep: busca un patrón en un
    archivo.

    Kill: elimina un proceso de
    ejecución.

    LN: (link) genera un link a un
    fichero.

    Lp: (line printer) envía un
    fichero a imprimir (si la impresora
    está habilitada) (lpstat información sobre las
    impresoras
    conectadas).

    Mesg: habilita/deshabilita los mensajes
    de otros usuarios sobre el terminal (se envían con
    write).

    Nice: ejecuta los comandos con
    baja/alta prioridad.

    Nohup: (no hangup) permite ejecutar un
    comando aún después de desconectarse de la
    máquina.

    Quota: muestra el
    espacio de disco restante del total asignado.

    Sed: stream editor.

    Awk: procesamiento de patrones y
    lenguaje incluido.

    Ftp: (file transfer protocol) permite
    transferir ficheros entre diferentes máquinas.

    Telnet: permite comunicarse con otras
    máquinas en forma interactiva.

    Sleep: suspende la atención por
    un determinado tiempo.

    Sort: ordena por campos.

    Su: reemplaza la identidad de un
    usuario temporalmente.

    Tail: permite ver el contenido de un
    archivo comenzando por el final.

    Tar: (tape archiver) agrupa
    ficheros/directorios en un único fichero.

    Tee: permite que una salida de un
    comando sea dirigida a dos sitios
    simultáneamente.

    Test: evalúa
    condiciones.

    Users: lista los usuarios del
    sistema.

    Wc: (word count)
    cuenta caracteres/campos/etc.

    Write: envía mensajes a usuarios
    que se encuentren conectados.

    CUT: permite eliminar campos de una
    línea de entrada.

    Head: envía mensajes a usuarios
    que se encuentren conectados.

    • LS Y SUS DIFERENTES USOS

    Descripción de ls

    Ls Imprime información relativa a los
    archivos de un directorio.

    -Opciones de ls

    Ls -a

    Lista todas las entradas de un directorio, incluso
    aquellas que comienzan con un punto.

    Ls -A

    Es igual al anterior, a excepción de aquellas
    cuyo nombre completo es "." y ".."

    Ls -b

    Fuerza la impresión de caracteres no
    representables en notación octal (ddd)

    Ls -q

    Fuerza la impresión de caracteres no
    representables en el nombre de archivos, como son los siguientes
    signos
    (!?)

    Ls -t

    Realiza una clasificación cronológica, en
    lugar de alfabética. Por defecto utiliza la fecha de la
    última modificación del archivo o
    directorio.

    Ls -d

    En caso que un argumento sea un directorio, la
    opción -d muestra su contenido.

    Ls -f

    Considera cada nombre como un directorio, listando en su
    orden de ocurrencia

    Ls -l

    Imprime en formato de máxima
    información.

    Ls -g

    Imprime en formato de máxima información,
    pero sin especificar la identidad del propietario

    Ls -n

    Imprime en formato de máxima información,
    pero especificando los valores
    correspondientes a la identidad del propietario y del grupo, en
    vez de los nombres de éstos.

    Ls -o

    Imprime en formato de máxima información,
    pero sin especificar la identidad del grupo

    Ls -i

    Imprime el número del modo como primer campo y el
    nombre del archivo o directorio

    Ls -m

    Imprime los nombres de los archivos en una sola
    línea, separados por comas

    Ls -p

    Imprime una barra inclinada (/) a continuación de
    cada nombre, si corresponde a un directorio

    Ls -F

    Imprime una barra inclinada (/) a continuación de
    cada nombre, si corresponde a un directorio y un asterisco (*) si
    es un archivo ejecutable

    Ls -L

    Imprime un signo mayor que (>) a continuación
    de cada nombre, si corresponde a un enlace
    simbólico

    Ls -r

    Invierte el orden de clasificación, ya sea
    alfabético o cronológico

    Ls -s

    Imprime el tamaño de bloques de cada
    anotación, incluyendo los bloques indirectos

    Ls -x

    Imprime en formato de multicolumna, ordenados los
    nombres por columna y luego por línea

    Ls -C

    Imprime en formato multicolumna, los nombres ordenados
    por línea y luego por columna

    Ls -R

    Imprime recursivamente los subdirectorios
    encontrados

    Ls -1

    Lista solo un archivo por línea, aunque la salida
    sea un terminal

    *CD Y SUS DIFERENTES APLICACIONES

    Descripción de CD

    CD cambiarse a directorio de usuario.

    Cd << nombre-directorio >> Cambiese a
    directorio indicado.

    Cd.. cambiase a directorio de nivel
    padre

    Cd../cambiese a directorio hermano

    Ejemplos

    1.- Si me encuentro en mi direccionamiento principal o
    Home, supongamos que me encuentro en el siguiente posicionamiento:
    /usr/camucet/Documentos si
    ejecuto el comando:

    Cd

    Voy a encontrarme después en /usr/camucet, que es
    mi direccionamiento principal

    2.- Si deseo regresar al directorio Documentos, ejecuto
    lo siguiente:

    Cd Documentos

    Después de hacer esto, voy a encontrarme
    posicionada en /usr/camucet/Documentos

    3.- Veamos el siguiente caso, yo estoy posicionada en el
    siguiente lugar: /usr/camucet/Documentos/unix

    Cd..

    Voy a quedar ubicada en
    /usr/camucet/Documentos

    4.- Y por ultimo, me enuentro en
    /usr/camucet/Documentos/Unix

    Cd../tcl

    Ahora estoy en /usr/camucet/Documentos/tcl

    *COMANDOS MÁS COMUNES

    1. Comandos para el manejo de directorios y
    archivos

    He supuesto vuestro previo conocimiento,
    de qué es un directorio y archivo, si necesitas
    información sobre ello, por tu calidad de neófito o
    principiante, por favor anda a la siguiente introducción
    básica de este breve torpedo.

    La clasificación en sencillos y complejos es en
    el grado de concentración que éstos requieren al
    ser ejecutados, porque cuando no se sabe lo que se está
    haciéndose, muchas veces genera situaciones que se escapan
    de control por nuestra falta de conocimientos y
    práctica.

    Comandos sencillos

    Cd
    pwd
    cp
    ls
    mkdir
    cat

    Descripción de pwd

    Pwd Nos ayuda a saber, donde estamos
    posicionados, esto permite conocer el directorio activo o de
    trabajo

    Ejemplo

    Siguiendo el caso anterior, si de repente uno necesita
    saber donde está posicionado,

    Pwd

    Y esto le imprimirá lo siguiente en la pantalla
    /usr/camucet/Documentos

    Descripción de cp

    Cp Copia archivos dentro de un mismo directorio o
    en otro directorio. En este último caso se puede escoger
    entre conservar el nombre, o bien cambiarlo.

    Opción de cp

    Cp -r Se usa para copia recursiva de
    directorios

    Ejemplos de Uso del comando cp

    Veamos los siguientes casos:

    1.- Desde un archivo1 a otro archivo2, ubicados en el
    mismo directorio

    Cp archivo-origen archivo-destino

    2.- Desde un archivo a otro directorio
    distinto

    Cp archivo-origen Directorio-destino

    3.- Desde un directorio a otro directorio que se creara
    al momento de la copia

    Cp -r Directorio-origen
    Nuevo-Directorio-destino

    4.- Desde un directorio a un Directorio que
    existe

    Cp -r Directorio-origen Directorio-destino

    En este caso: Directorio, quedara copiado bajo
    Directorio1

    Ejemplo

    1.- cp cobranza1 cobranza2

    2.- cp cobranza1 PAGADO

    3.- cp -r PAGADO CANCELADO

    4.- cp -r DESPACHADO PAGADO

    Ejemplos de Uso del comando ls

    Ejemplo

    Comando ls:
    ARCHIVO
    DOCUMENTOS
    carta1.fm
    carta2.fm
    documento1.doc
    documento2.doc
    script-ordena1
    script-junta1

    Descripción de mkdir

    Mkdir Con este creamos directorios

    Opción de mkdir

    Mkdir Con este se crean directorios.

    Mkdir -p Con este es posible crear directorios
    intermedios

    Mkdir -m Con este es posible otorgar proteccion
    al archivo para su lectura o escritura.

    Ejemplos de Uso del comando mkdir

    Veamos los siguientes casos:

    1.- Crear un directorio

    Mkdir nombre-directorio

    2.- Crear un directorio dentro de otro que ya
    existe

    Mkdir -p
    nombre-directorio1/nombre-directorio2

    3.- Desde un directorio a otro directorio que se creara
    al momento de la copia

    Mkdir -m usg nombre-directorio

    Ejemplo

    1.- mkdir DOCUMENTOS

    2.- mkdir -p DOCUMENTOS/CARTAS

    3.- mkdir -m 700 DOCUMENTOS

    Descripción de cat

    cat Con este podemos ver archivos, también
    se pueden crear archivos o bien podemos concatenar
    archivos

    Opción de cat

    Cat Con este podemos ver el contenido de un
    archivo.

    Cat > Es posible crear un archivo y comenzar a
    tipearlo.

    Cat -b Muestra un archivo, indicando sus
    números de líneas sin numerar aquellas que se
    encuentran vacías y que son de espacios, esto selecciona
    automáticamente la opción "-n".

    Cat -e Muestra el archivo, marcando su fin de
    línea con el signo $, esto selecciona
    automáticamente la opción "-v".

    Cat -n Muestra el archivo, con todas sus
    líneas numeradas secuencial mente de 1 en 1, comienza
    desde el número 1.

    Cat -r Reemplaza varias líneas
    vacías consecutivas por una sola línea.

    Cat -s Con esta opción suprimimos todos
    los mensajes de error, sobre archivos no existentes, nombre
    idénticos tanto de entrada como salida.

    Cat -t Muestra un archivo, indicando el uso de
    los tabuladores mostrándolos con los signos ^I, esto
    selecciona automáticamente la opción
    "-v".

    Cat -u Deshabilita el uso del buffer y usamos el
    manejo de carácter por carácter.

    Cat -v Muestra el archivo, con los signos de $,
    ^I, ^?, es lo que se llama con sistema hablador
    (verboseé), muestra todo los códigos que
    está usando el archivo, puede resultarnos in leíble
    o incomprensible.

    Ejemplos de Uso del comando cat

    Veamos los siguientes casos:

    1.- Lee y abre un archivo.

    Cat nombre-archivo

    2.- Crear un archivo nuevo, (se termina con
    ctrl+Z).

    Cat > archivo-destino

    3.- Abrir un archivo, numerando todas las líneas,
    menos las de espacio.

    Cat -b nombre-archivo

    4.- Lee y abre el archivo mostrándome cada fin de
    línea con un signo $.

    Cat -e nombre-archivo

    5.- Lee y Abre un archivo, numerando todas las
    líneas.

    Cat -n nombre-archivo

    6.- Lee y abre el archivo eliminando todas las
    líneas de espacio redundantes.

    Cat -r nombre-archivo

    7.- Lee y abre el archivo omitiendo sus mensajes de
    error.

    Cat -s nombre-archivo

    8.- Lee y abre el archivo mostrándome cada
    tabulación con el signo ^I.

    Cat -t nombre-archivo

    9.- Lee y abre el archivo sin ponerlo en un buffer, lo
    maneja carácter por carácter.

    Cat -u nombre-archivo

    10.- Lee y abre el archivo, entregando la mayor
    información posible, es el estado
    hablador (verbose), identificando varios tipos de
    caracteres.

    Cat -v nombre-archivo

    11.- Concatena uno o dos archivos en el primer
    archivo.

    Cat archivo1 archivo2 > archivo1

    12.- Concatena uno o dos archivos a un tercer
    archivo.

    Cat archivo1 archivo2 > archivo3

    Ejemplos

    1.- cat carta1

    2.- cat > carta2

    3.- cat -b carta1

    *CLASIFICACIÓN DE ARCHIVOS

    Archivo de inicialización. Se lee al comienzo de
    cada ejecución del shell (No es estándar, algunos
    operativos no lo tienen). Pertenece al usuario. /etc/cshrc Idem
    anterior, se ejecuta antes que .cshrc y pertenece al sistema.
    /etc/.login Se lee antes que .cshrc y después de
    /etc/cshrc. /etc/csh.cshrc Se lee antes de .cshrc y
    después de /etc/.login. ~/.login Se lee después de
    .cshrc. ~/.logout Se lee al salir. ~/.history Historia salvada para la
    próxima conexión.

    Las palabras no pueden tener más de 1024
    caracteres. El sistema limita la lista de argumentos a 1,048, 576
    caracteres. Sin embargo el número de argumentos donde una
    expansión de nombre se aplica es 1706. Para detectar lazo
    el shell restringe el número de alias sobre una
    línea a 20.

    *CLASIFICACION DE SISTEMA
    DE ARCHIVOS EN UNIX

    Un archivo se puede definir como un conjunto de
    datos con un nombre asociado. Los archivos suelen residir en
    dispositivos de
    almacenamiento secundario tales como cintas, discos duros o
    discos flexibles. Algunos sistemas operativos imponen a los
    archivos una estructura determinada bien definida. Este no es el
    caso de UNIX, donde un archivo no es más que una secuencia
    de bytes (8bits).

    Un sistema de archivos se debe entender como
    aquella parte del sistema responsable de la
    administración de los datos en dispositivos de
    almacenamiento secundario. Por lo tanto, es el sistema de
    archivos el que debe proporcionar los medios
    necesarios para un acceso y almacenamiento seguro y privado de la
    información.

    -Estructura del sistema de
    archivos

    En UNIX los archivos están organizados en lo que
    se conoce como directorios. Un directorio no es
    más que un archivo especial, el cual contiene
    información que permite localizar en el dispositivo otros
    archivos. Los directorios pueden contener a su vez nuevos
    directorios, los cuales se denominan subdirectorios. A la
    estructura resultante de esta organización se la conoce con el nombre de
    estructura en árbol invertido. Un ejemplo típico de
    árbol de directorios UNIX lo tenemos representado en la
    figura 2.1:

    Figura 2.1

    • Directorio raíz (/)

    Todos los archivos y directorios dependen de un
    único directorio denominado directorio raíz
    o root, el cual se representa por el símbolo
    /. En el caso de que en el sistema tengamos varios
    dispositivos físicos de almacenamiento secundario
    (normalmente discos), todos deben depender del directorio
    raíz, y el usuario tratará cada uno de los discos
    como un subdirectorio que depende del directorio raíz
    (root).

    • Directorio de conexión (~)

    Se trata de un directorio que el administrador del
    sistema crea o asigna cuando da de alta a un usuario. El
    propósito de este directorio es suministrar un punto en la
    jerarquía de directorios del sistema de archivos UNIX a
    partir del cual el usuario puede almacenar y estructurar sus
    propios archivos y directorios. Este directorio suele ser tomado
    como directorio de trabajo inicial cuando el usuario
    establece una sesión de trabajo. Se representa mediante el
    símbolo ~.

    • Directorio de trabajo (.)

    El directorio de trabajo o act. El directorio en
    el que nos encontramos operando en cada momento de la
    sesión. Se representa mediante un punto.

    Asociado al concepto de directorio de trabajo esta el
    concepto de directorio padre, que se representa
    mediante… y que sirve para denotar al directorio del que
    depende el directorio de trabajo. La manera de conocer en todo
    momento el directorio de trabajo es a través de la orden
    pwd (print working directory). Su sintaxis es:

    Pwd

    Ejemplo:

    Apis:~$ pwd
    /users/so/so00

    En este ejemplo, el directorio "." y ".." serían
    respectivamente /users/so/so00, y /users/so.

    • Trayectorias o nombres de camino

    Los archivos se identifican en la estructura de
    directorios por lo que se conoce como nombre de camino,
    trayectoria o path name. Fijándonos en la figura
    2.1. Distinguiremos las tres formas existentes para refenciar un
    archivo:

    Camino absoluto o completo. Consistente en el
    conjunto de nodos por los que hemos de pasar, partiendo del
    directorio raíz, para llegar al archivo o directorio que
    queremos referenciar. Va precedido siempre por el caracter /.
    Identifica de modo único a un directorio o archivo dentro
    del sistema de archivos.

    Ejemplo: /usr/bin/troff

    Camino relativo. Tenemos dos formas de acceder a
    un archivo usando una trayectoria relativa, según tomemos
    en consideración el directorio de trabajo o el directorio
    de conexión:

    1. Respecto del directorio de trabajo:

    Suponiendo que nuestro directorio de trabajo es /usr, el
    camino para llegar al archivo /usr/bin/troff sería
    bin/troff.

    NOTA: Para el camino relativo se pueden utilizar las
    cadenas "." y "..", permitiéndose entonces ascender en el
    árbol de directorios para referenciar archivos de modo
    relativo.

    Por ejemplo, si el directorio de trabajo es el
    /usr/bin/troff y queremos referenciar el archivo /usr/local/bin ,
    usando una trayectoria relativa, escribiríamos
    ../../local/bin.

    2. Respecto del directorio de
    conexión
    .

    Suponiendo que nuestro directorio de conexión
    actual es /users/ssp, la referencia al archivo o directorio
    anterior seria ~/../../usr/bin/troff

    • Nombre de archivo

    El nombre de un archivo en UNIX puede tener hasta
    255 caracteres y aunque no existe el concepto de extensión
    de un archivo es posible incluir el carácter . tantas
    veces como se desee, la única consideración a tener
    en cuenta en este sentido, es la referente a los nombres de
    archivo cuyo primer carácter es . a los que
    históricamente se denominan archivos ocultos, ya que por
    defecto no son mostrados por la orden ls. Una denominación
    más precisa para estos archivos sería la de
    archivos sin interés
    habitual, ya que se suelen utilizar para configurar aplicaciones
    y normalmente el usuario no tiene interés en
    verlos.

    Es importante tener en cuenta que los intérpretes
    de órdenes de UNIX (denominados shell) consideran
    distintos los caracteres en mayúsculas de los caracteres
    en minúscula. Por lo tanto no son equivalentes los
    archivos: programa.c y Programa.c.

    Ejemplos de nombres de archivos:

    Programa, programa, programa.c.primera_version,
    base_datos.1992

    Expansión
    de nombre de archivo: caracteres comodines y
    especiales

    Existen en UNIX un conjunto de caracteres cuya
    combinación permite que el intérprete de
    órdenes los sustituya por un grupo de símbolos. Estos caracteres se denominan
    carácter comodín. De entre los existentes
    destacamos los siguientes:

    * Representa cualquier conjunto de
    símbolos. Por ejemplo, sabiendo que la orden lp permite
    imprimir archivos:

    Apis:~$ lp * # imprime todos los archivos del
    directorio de trabajo

    Apis:~$ lp ab* # imprime los archivos que empiecen por
    ab

    ? Representa cualquier
    carácter.

    Apis:~$ lp a?b # imprime los archivos cuyos nombres
    tengan tres caracteres, el primero sea una a y el último
    una b

    […] Representan un símbolo del
    conjunto.

    Apis:~$ lp ab[123] # imprime (si existen) los
    archivos ab1, ab2 y ab3

    [!…] Representa un símbolo NO contenido en
    el conjunto.

    Apis:~$ lp [!ab]* # imprime todos los archivos cuyo
    nombre NO comienza por ni por a ni por b

    Aparte del carácter comodín, existen otros
    caracteres cuyo significado es especial para la
    shell. Entre estos destacamos:

    < , > , | , &

    cuyo significado se explicará en prácticas
    posteriores.

    De modo general para todos los caracteres especiales y
    comodín, se habilitan distintas maneras para forzar a que
    la shell los interprete literalmente como los caracteres
    que son. Los modos de escapar los caracteres especiales y
    comodines son los siguientes:

     Utilizando el carácter se pueden
    escapar caracteres individualmente.

     Cuando se quiere escapar cadenas completas se
    recurre a encerrarlos entre comillas’.
     
    Archivos y directorios

    Uno de los – Fichero "normal" : Es algo que , referido a
    un nombre , contiene una secuencia determinada de caracteres
    (bytes). El sistema operativo no impone ningún tipo de
    formato ni de registro.
    Ejemplos de ficheros "normales" puede ser el que nos creamos con
    algún editor, conteniendo un documento. Por ejemplo, el
    fichero "/etc/motd" es un fichero cuyo contenido es el mensaje
    del día . Si ejecutam os el comando "cat" (ver el
    contenido de un fichero),

    Podemos crear un archivo de múltiples formas;
    utilizando un editor , mediante un programa o utilizando
    algún comando. Únicamente se tendrá en
    cuenta, a la hora de escoger nombres para los ficheros, las
    siguientes reglas:

    – El nombre no podrá exceder de 255 letras (14 en
    versiones UNIX anteriores a la R2.1)

    – Utilizar caracteres "normales" (Si bien se puede usar
    cualquier carácter , desechar aquellos que no sean A-Z
    /a-z / 0-9) Especial atención merecen aquellos ficheros
    cuyo primer carácter es el punto " ;." , ya que se
    consideran "ocultos" en la medida en que determinados comandos ,
    al detectar este hecho , los ignoran.

    – Vamos a crear un fichero cuyo contenido sea "hola"
    :

    $ echo "hola" > tonto

    $

    (… parece que no ha ocurrido nada…)

    $ cat tonto

    hola

    $

    (Efectivamente – ahora, el comando "ls" nos da un
    listado de los ficheros)

    $ ls

    tonto

    $ ls -a

    .

    ..

    tonto

    .profile

    $

    ¡Ahora parece que el fichero "tonto" ha criado! Lo
    que ocurre es que estamos en nuestro directorio de trabajo , y
    ahí existe desde el principio un fichero "oculto" (el
    .profile) el cual sólo podemos listar utilizando la
    opción "-a" (all) del ls. Además de esto, aparecen
    el "punto" (.) y el "punto-punto" , sinónimos de
    "directorio actual" y "directorio anterior".

    Primero , vamos a ver en qué directorio estamos ,
    para lo cual emplearemos el comando "pwd" (Print Working
    Directory).

    $ pwd

    /usr/jose

    $ ls

    tonto

    Nuestro directorio de trabajo es "/usr/jose" y tenemos
    dentro del mismo el fichero "tonto" . Utilizando los conceptos de
    "." y ".." , podemos ejecutar el comando "ls" pasando los mismos
    como argumentos :

    $ ls . ( listar el contenido del directorio "actual" ;
    funciona igual que "ls" a secas )

    tonto

    $ ls ..

    jose

    paco

    antonio

    bin

    (….)

    Estamos diciendo que nos liste el "directorio anterior"
    , es decir , "/usr" .

    Podemos hacer lo mismo cambiando al directorio anterior
    y ejecutando "ls" : nos cambiamos de directorio usando el comando
    "cd" (Change Directory) , con direccionamiento absoluto (
    indicando todo el camino de subdirec torios desde el directorio
    "raiz" (/) :

    $ cd /usr

    $ pwd

    /usr

    $ ls

    jose

    paco

    antonio

    bin

    (…)

    O bien , cambiando con direccionamiento relativo , y se
    dice así por ser relativo al directorio donde estamos
    trabajando :

    $ cd .. ( nos cambiamos al directorio anterior , es
    decir , a "/usr" )

    $ pwd

    /usr

    ls

    jose

    paco

    antonio

    bin

    (…)

    Para volver a nuestro directorio "origen" (home
    directory) , bastaría con ejecutar el comando "cd" solo ;
    él vuelve siempre al mismo sitio , en este caso , a
    "/usr/jose" estemos donde estemos.

    Si queremos crear un nuevo directorio emplearemos en
    camino absoluto o relativo el comando "mkdir" con el argumento
    "nombre_del_directorio_que_queremos_crear" . Para eliminarlo ,
    ejecutaremos "rmdir" con el mismo argumento :

    $ mkdir nuevo

    $ ls

    tonto

    nuevo

    Tenemos ahora el fichero de siempre y un directorio que
    se llama "nuevo". Pero escribiendo "ls" no vemos a simple vista
    ninguna diferencia; hay que dar la opción "-F" ó
    "-l" :

    $ ls -F

    tonto

    nuevo/

    $ ls -l

    -rw-r–r– 1 jose sys 4 Mar 1 11:07 tonto

    drw-r–r– 1 jose sys 84 Mar 1 11:07 nuevo

    (la letra "d" al principio del listado largo nos indica
    que se trata de un directorio)

    $ cd nuevo

    $ pwd

    /usr/jose/nuevo

    (.. nos hemos cambiado al directorio
    nuevo ..)

    $ cd ..

    $ pwd

    /usr/jose

    ( .. homes vuelto … )

    $ rmdir nuevo

    $ ls

    tonto

    ( .. ! ya no está .. )

    * Tipos de archivos.

    Si bien UNIX no impone una estructura a ningún
    fichero, éstos tendrán características
    comunes dependiendo para lo que sirvan; podemos agrupar
    éstos en varios tipos :

    – Ejecutables. Normalmente se trata de programas
    compilados y contienen código binario ininteligible para
    la mayoría de los humanos pero no así para la
    máquina. Ejemplos de estos ficheros pueden ser los
    ficheros "/bin/ls" , "/bin/cat/" … Todos ellos deben tener
    activados los permisos de ejecución que más tarde
    veremos.

    – Binarios, englobando dentro de esta categoría
    aquellos que son empleados por programas capaces de entender su
    contenido ( un fichero indexado accesible desde COBOL , por
    ejemplo ) pero no legibles.

    -Texto, correspondientes a aquellos ficheros que
    contienen registros de
    caracteres terminados en "nueva línea" y normalmente son
    legibles. Ejemplo de fichero de texto puede ser el "/etc/motd" ,
    "/etc/pas swd" y cualquiera que haya sido confeccionado con el
    editor.

    – Dispositivo. Cualquier fichero asignado a un
    dispositivo físico ; normalmente residen a partir del
    subdirectorio "/dev" y son ficheros de terminales , de
    particiones de discos , de puertos de impresora …. Dentro de
    ésta categoría podemos incluir el fichero especial
    "/dev/null" , el cual tiene como misión el que cualquier
    cosa que se le mande es desechada.

    Cualquier fichero de tipo dispositivo puede tener dos
    categorías: bien de tipo "carácter" , ó "raw
    mode" ( lee y escribe "de golpe" ) o de tipo "bloque" ó
    "cooked mode" ( lee y escribe a trozos según el
    tamaño de buffer que tenga asignado).

    Si se tienen dudas acerca del tipo de fichero, podemos
    ejecutar el comando "file <nombre_del_fichero>.

    $ file /bin/ls

    /bin/ls: ELF 32-bit MSB executable M88000 Version
    1

    (Ejecutable dependiente del procesador 88000 de Motorola
    )

    $ file /dev/null

    Carácter especial.

     

    Directorios del
    sistema.

    Si bien la estructura de los directorios varía
    entre versiones y dialectos de UNIX , podemos mencionar algunos
    de los más representativos :

    /bin,/usr/bin,/usr/sbin,/usr/ucb: Directorios de
    programas ejecutables . Es aquí donde se mantienen la
    mayoría de los comandos (/bin/ls , /bin/vi ,
    /usr/bin/chmod … )

    /etc : Programas y ficheros diversos : aquí
    residen la mayoría de los archivos de configuración
    y las shell-scripts de arranque y parada del equipo.

    /tmp,/usr/tmp,/var/tmp : Directorios "temporales" ; el
    propio sistema operativo los usa como almacenamiento intermedio
    en muchas de sus tareas ; normalmente , todo el contenido de
    éstos directorios se borra al apagar el equipo.

    /home,/usr/acct,/var/acct : Directorios de
    usuarios.

    /var/adm,/usr/adm : Directorios de administración
    : programas de administrador , ficheros con informaciones de la
    paquetería instalada y demás.

    /usr/log, /var/log : Directorios para ficheros de "log"
    de sistemas y de programas . Normalmente, existirá un
    fichero "console" con toda la información que se
    desvía a la consola del sistema, y varios ficheros
    informativos, de advertencia y de errores del sistema.

    /lib,/usr/lib : Directorios de archivos de
    librería.

    /usr/spool : Directorios de spool de ficheros de
    impresión (/usr/spool/lp) , de comunicaciones
    (/usr/spool/uucp) y demás.

    /usr/mail : En éste directorio se halla el correo
    de todos los usuarios.

    /usr/preserve,/var/preserve : Aquí se guardan
    todas las copias de ficheros incompletamente terminados por los
    editores de UNIX.

    /dev : Directorio de ficheros de
    dispositivos.

    /usr/games : Juegos. Casi
    nunca están instalados.

    Resumen del editor de pantalla "vi" .

    Vi es un editor de pantalla completa creado en el UNIX
    de Berkeley y extendido más tarde a todos los demás
    dialectos.

    La ventaja de éste editor radica en su
    compatibilidad con el resto de herramientas de edición
    UNIX.

    Vi contempla, una vez iniciada la sesión con
    él, dos modos:

    – Modo comando: es el modo en el que arranca por
    defecto. Vale para dar comandos tales como: leer un fichero ,
    escribir un fichero , búsqueda o sustitución de
    caracteres dentro del texto actual …

    Este modo es al que se vuelve siempre, pulsando la tecla
    <ESC>.

    – Modo inserción/reemplazo: es el que se usa para
    escribir caracteres. Se entra a este modo desde el modo comando
    pulsando la letra " i ".

    Desde el modo comando, podemos pasar también a
    modo inserción escribiendo las siguientes letras
    :

    – i : Pasar a modo inserción , delante de la
    posición del cursor.

    – a: Igual , pero detrás de la posición
    del cursor.

    – I : Pasar a modo inserción ,pero empezando a
    insertar al principio de la línea donde se
    esté.

    – A : Igual , pero empezando al final de la línea
    donde se esté.

    – o : Pasar a modo inserción, pero abriendo una
    línea nueva debajo de donde se esté.

    – O : Igual , pero la línea nueva se abre
    arriba.

    – <ESC>: Pasar a modo comando.

    – Backspace: Borra la última letra
    escrita.

    – <Control>v: Identifica el carácter que
    vamos a escibir a continuación como un caracter especial,
    es decir , un escape , o salto de hoja (^L) , ó cualquier
    carácter ascii entre el 1
    y el 31. ( 1=^A , 2=^B …..).

    Pasando a modo comando, podemos emplear las siguientes
    secuencias para movernos por el texto:

    – ^: Ir al principio de la línea.

    – $: Ir al final de la línea.

    – l,h: Izquierda / derecha.

    – j,k: Abajo / Arriba.

    – ^F (Control + F ): Una pantalla adelante.

    – ^B (Control + B ): Una pantalla
    atrás.

    – ^G (Control +G): Enseña el número de
    línea donde estamos posicionados.

    – 1G: Al principio del todo.

    – G: Al final del todo.

    – /<cadena>: Busca <cadena> desde la
    línea actual hasta el final del texto.

    – / Sigue buscando más ocurrencias de la
    cadena.

    -?<cadena>: Busca <cadena> desde la
    línea actual para atrás.

    -? Sigue buscando más ocurrencias, para
    atrás.

    -ZZ Grabar y salir.

    -dd: Borrar la línea donde se
    esté.

    -J: Juntar la línea donde se esté y la de
    abajo.

    -r: Reemplaza una sola letra.

    -R: Reemplaza todo hasta que se pulse <ESC>
    .

    -yy: yank/yank: Marca la
    línea actual.

    -p: Copia la línea marcada despues del
    cursor.

    -P: Copia la línea marcada antes del
    cursor.

    -.: Repite el último cambio.

    -u Undo (anula el último cambio)

    -U Undo , pero en la línea actual.

    Ordenes de "dos puntos" : Al pulsar en modo comando el
    carácter ":" , el cursor se baja a la última linea
    y el editor saca los dos puntos en espera de que le demos
    algún comando de estos. Salimos de aquí pulsando
    <ESC> .Algunos son :

    :wq! (write/quit)Grabar y salir.

    :w! <nombre_fichero> (write) Graba el texto en
    <nombre_fichero>.

    :r <nombre_fichero> (read) Incluye el fichero como
    parte del texto en edición.

    :!<comando> Ejecutar <comando> . Vuelve al
    terminar el comando.

    :<número de línea> Ir a
    <número de línea>.

    :q! (quit) Salir sin grabar.

    :se nu

    :se nonu Numera las líneas.(set number,set
    nonumber-pone y quita).

    :1,5de Borra desde la 1 a la 5.

    :1,5co20 Copia desde la 1 a la 5 a partir de la
    línea 20.

    :1,5mo20 Igual, pero mueve.(desaparece desde la
    línea 1 a la 5).

    :g/XXX/s//YYY/g Cambia en todo el texto XXX por
    YYY.

    Hay muchísimos más comandos, pero para ir
    tirando, con éstos son suficientes.

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter