I Unidad 5: Comandos Unix Comando Sintaxis date who ctrl +d mail mail mail juan + texto + Ctrl + d write write juan + texto + Ctrl + d ed ed a texto . w nombre_de_archivo NN q ls ls ls – l ls – l cuentas1 cuentas2 ls – t ls - lrt ls – lt ls – u ls – lut cat cat archivo1 cat archivo1 archivo2 cat archivo1 archivo2 | pr cat arch1 arch2 > arch3 cat arch1 arch2 >> arch3 cat archivo1 > /usr/juan pr cat > archivo1 .....texto......... ctrl. + d pr archivo1 mv mv archivo1 archivo2 /usr/juan mv archivo1 archivo2 cp cp notas.n1 notas.n2 /usr/juan ln ln notas.n1 /usr/juan/anotación rm rm notas.n1 wc wc archivo1 archivo2 wc – l tail – n tail + n grep patrón archivo1 archivo2 grep – v patrón archivo1 tail grep sort sort archivo1 sort – r sort – n sort – nr sort – f sort +n Función COMANDOS SENCILLOS Devuelve Día, Mes, Fecha, Hora y año. Muestra en pantalla los usuarios conectados en ese momento. Campos: Nombre de Usuario, terminal, més de inicio de sesión, día de inicio de sesión, hora de inicio. Cierra sesión, que en realidad es el comando de fin de archivo. Muestra el archivo de correo propiedad del usuario cuando hay mensajes. Envía un mensaje de correo al usuario Juan que lo recibirá cuando encienda su terminal. A Juan, le muestra el mensaje de que tiene correo con “You ave mail”. Envía un mensaje instantáneo a Juan avisándole antes “message from usuario remitente + Terminal”, el sistema identifica la terminal con el nombre de usuario. COMANDOS COMUNES Crea o edita un archivo de texto. Ed, espera la entrada estándar de un comando, un comando del ed consta de una letra y puede acompañarse con un argumento. El comando a (append) le indica a ed que las próximas entradas deberán agregarse al archivo. Si el archivo no fue definido con anterioridad, será creado. Punto (.) al comienzo de la línea, le indica que termina el comando a, o sea que se abandona el modo de inserción de texto. El comando w le indica a ed que el texto insertado se grabará en el archivo que se indica. El comando q da por terminada la tarea. ARCHIVOS Lista los archivos y directorios del directorio actual en orden alfabético por la salida estándar. (161) Lista detalles de los archivos o de un archivo. Campos: permisos de lectura, escritura y ejecución para el propietario, para el grupo y luego el resto (todo en un solo campo), nro. de enlaces, nombre del usuario propietario, bytes, mes, día, hora, nombre de archivo. Lista sólo nombres de archivos por antigüedad desde el que tiene fecha de creación más reciente primero. Combina los anteriores pero invierte el orden, en este caso desde el que tiene uso menos reciente. Es la combinación de los anteriores. Lista por fecha de último acceso. Mostrará los datos de “ls – l” pero ordenados según la última fecha de acceso. A todos es posible agregarle el nombre de archivo al “final” de los argumentos u “opciones” del comando. Envía el contenido de archivos ascii a la salida estándar de forma concatenada. Envía el contenido del primero seguido del segundo a la salida estándar. Formatea la salida en páginas de 66 líneas con fecha, hora de modificación, nro. de pág. y nombre de archivo en cada página. La salida de cat se convierte en entrada de pr, que es el que formatea. Ver “|” y pr. Concatena la lista de archivos antes de > y redireccionada la salida al destino indicado (arch3), la concatenación remplaza el contenido de arch3 si existiese, de lo contrario lo crea. Si en cambio queremos agregar la concatenación al final de arch3, usamos >> como se muestra. Envía la salida al directorio indicado, si el archivo no existe se crea, si ya existe, el contenido del archivo destino es remplazado por el contenido del archivo fuente. Esto es lo mismo que $mv archivo1 /usr/juan con la única diferencia que mv quita el archivo de su lugar origen y cat no. Envía lo que continúa al archivo1. Si queremos que concatene al final usamos >>. Formatea la salida para impresora, (pero envía la salida a pantalla... salida estándar) se formatea por páginas de 66 líneas con fecha y hora en que el archivo fue modificado, número de página y nombre de archivo al principio de cada página. Mueve el archivo desde el directorio actual al indicado. Para el ejemplo mueve dos archivos. Renombra archivos. Mueve el primer archivo al segundo, el segundo desaparece si existe, si no existe se crea. Copia archivos al directorio argumento. Si en el directorio destino existen archivos con nombres iguales, serán reemplazados por los archivos fuentes del argumento. Crea ligas para un archivo. Ahora queda el mismo archivo (un solo inodo) con dos nombres en dos directorios. Los cambios realizados a través de cualquier nombre afecta el otro... en realidad es el mismo archivo. El mismo archivo se puede nombrar por cualquiera de los dos nombres. Borra archivos. Elimina sólo el nombre que se indica como argumento. Para eliminar físicamente el archivo se deberá decrementar el contador de enlaces que se encuentra en el inodo para lo cual será necesario listar como argumento todos los nombres enlazados del archivo. Devuelve número de líneas, palabras y bytes del archivo. Se pueden listar más de un archivo. Devuelve sólo el número de líneas. Muestra las n últimas líneas de un archivo. Muestra las líneas del archivo a partir de la línea n. Envía a la salida estándar todas las líneas que contengan el patrón, indicando a cuál archivo pertenece. Devuelve las líneas que no contienen dicho patrón. También maneja patrones más complejos que se conocen como expresiones regulares, en donde se usan caracteres especiales para generalizar la búsqueda de un patrón. Ordena alfabéticamente la entrada/salida estándar línea por línea. Que en realidad no es alfabético sino de acuerdo al valor ASCII de los caracteres. Supone que cada línea tiene campos, en consecuencia las ordena por campos. Invierte el orden normal Clasifica según el valor numérico (no ASCII). Clasifica el orden inverso. No discrimina entre mayúsculas y minúsculas. Clasifica según el campo de orden n+1 de cada línea. N es un número. I cmp Cmp notas.n1 datos.d1 diff diff notas datos echo kill kill 235 kill 0 nohup comando & at hora comandos ...... ctrl. + d at 4am < lista_de_comandos ps cat notas datos > texto1 nohup at ps > < >> | mail juan < carta date >> archivo1 who | wc - l ; & date ; who wc archivo.* & (comando1 ; comando2, ... ) & pick lista_de_palabras pick ‘cat lista’ echo ‘date’ pick ‘... ‘ mkdir Cd mk directorio1 cd directorio1 cd.. cd rmdir rmdir usr/juan Pwd (print working Pwd directory) path path = ruta_búsqueda_ejegida path = $path:usr/juan echo $path chmod + x contar chmod Metac. * Signif. Cualquier cadena de caracteres . Cualquier caracter Cualquier carácter ? for i in lista do comandos done case palabra in patrón) comando;; patrón) comando;; ... *) acción_por_defecto;; esac /etc/passwk delete ctrl. + s ctrl. + q Sintaxis cp mat.* /usr/juan/proyecto1 rm* echo * cp *.txt /usr/juan ls mat.124 cat mat.1-389 ls mat.? for i in *.txt do echo “$1” done case $1 in lun* | Lun*) comandos;; mar* | Mar*) comandos;; ... 1–7) comando_manejo_error;; *) comandos_por_defecto;; esac Compara archivos. Si devuelve “notas.n1 datos.d1 differ: char 25, line 1” significa que tienen su primera diferencia en el carácter 25 de la línea 1. También compara datos sólo que devuelve el contenido de las líneas donde existen diferencias indicando con > o < antes de la línea según ésta pertenezca al segundo archivo o al primero en el argumento de diff. Envía lo que indicamos en el argumento a la salida estándar. Sirve para probar metacaracteres entre otros. Detiene el proceso 235. Detiene todos los procesos en ejecución. El comando lanzadon con & continuará ejecutándose, aùn si uno termina la sesión. Ejecuta los comandos en forma diferida a la hora indicada. Ejecuta los comandos a las 4 AM. Devuelve información referente a lo que se está ejecutando en ese momento y en particular los PID. Redirecciona la salida de los archivos notas y datos a texto1. Si texto1 ya existe entonces agrega la salida de este comando al comienzo del archivo, si no existe, lo crea. Redirecciona la salida enviándole un mail a juan con el contenido del archivo carta. Redirecciona y agrega al final del archivo1 la salida de date. Interconexión de comandos. La salida del primer comando es tomada por la entrada del segundo. Cmp, diff, cp, mv no pueden interconectar sus entradas. Pero caso todos permiten redireccionamiento e interconexión de sus salidas. Se ejecuta primero el primer comando y luego el segundo. Ejecuta el comando en modo background, significa que el Shell devuelve el $ (prompt) para continuar ejecutando comandos mientras el comando en modo background continúa ejecutándose. Este modo permite continuar ejecutando el comando luego de cerrar sesión. Esta ejecución devuelve antes que el prompt el número de proceso, por ejemplo 235, que si deseamos interrumpirlo usamos el comando siguiente. Con &, el Shell no entra en wait sino que devuelve el prompt para continuar. Ejecuta la lista de comandos en modo background. Permite seleccionar uno por uno los items de una lista. La salida estandar de cualquier programa puede colocarse en la línea de comandos, si encerramos la invocación de este, con comillas invertidas. Ver comando anterior. DIRECTORIOS Crea el directorio1 en el directorio actual. Cambia de directorio desde el actual a directorio1. Cambia al directorio padre. Retorna al directorio de login del usuario. Borra el directorio. Requisito es que esté vacío (sin archivos). Muestra la ruta del directorio de trabajo actual en forma completa. Cambia el contenido de la variable path que el shell utiliza para buscar los comandos cuando se los invoca desde la línea de comandos. Agregamos al path existente otro directorio de búsqueda. Muestra el valor o los valores de la variable path. Permite modificar las protecciones de un archivo, consiste en indicar con un signo + o – la protección que se desea activar o desactivar. El ejemplo modifica en el archivo contar las propiedades de ejecución. METACARACTERES Función Copia todos los archivos que comiencen con mat. Al directorio indicado. Elimina todos los subdirectorios contenidos en el directorio actual. Listará todos los archivos que se encuentren en el directorio actual en orden alfabético. Copia todos los archivos del directorio actual al directorio indicado. Lista en pantalla los archivos mat.1, mat.3 y mat.4. Despliega en pantalla el contenido de los archivos mat.1, mat.2, mat.3, mat.8 y mat.9. Muestra en pantalla los nombres de archivo mat.1, mat.2 etc hasta 9. El ? representa sólo un carácter. ESTRUCTURAS DE CONTROL Realiza tantas iteraciones como elementos tenga “lista”, cada iteración asigna a i el valor de los elementos de lista, de a uno hasta terminar con el último elemento. Lista puede contener cualquier lista de palabras. “ | ” funciona como or lógico. ARCHIVOS Contiene los datos administrativos de cada usuario, un registro por cada uno. Campos: nombre, clave, número (UID), número de grupo (GID), información varia (pudiendo anotar dirección, teléfono, etc.), directorio del usuario (o directorio de login o home directory), programa de inicio (normalmente el /bin/sh). TECLAS Interrumpe la ejecución de un programa en forma definitiva. Detiene en forma momentánea la ejecución de un programa. Continúa la ejecución de un programa interrumpido con Ctrl. + s.