2 Entorno de Trabajo Servidor LINUX ( Recursos de Hardware ) Acceso por telnet Comparten Memoria Reloj Procesador Dispositivos Archivos 3 Entorno de Trabajo Windows Computadoras personales conectadas entre si No comparten Memoria Reloj Procesador Pueden compartir Dispositivos Archivos 4 Intrprete de comandos Cualquier usuario de Linux acabar antes o despus relacionndose con el sistema empleando el modo texto, y no los entornos grficos. Este modo se basa en la ejecucin de una serie de comandos, que son interpretados por un programa o shell. Linux dispone de varios de estos programas pero el ms habitual es conocido como bash o Bourne Again Shell. Si Linux se arranco en modo texto el sistema arranca de forma directa el shell y queda a la espera de introduccin de nuevos comandos 2 5 Intrprete de Comandos El shell, o intrprete de comandos, es un programa que est ejecutndose durante toda la sesin con Linux, actuando de interfaz entre el sistema operativo y el usuario. Permite que el usuario obtenga el mximo rendimiento del sistema y aproveche toda su potencia. Una vez que un usuario se ha registrado en el sistema con su login y su password, Se le cede el control al shell, el cual ejecuta dos archivos de configuracin: el general (/etc/profile) y el particular (<directorio_del_usuario>/.profile). Hecho esto aparece el smbolo prompt y el cursor espera a que el usuario teclee una orden, que el shell interpretar y ejecutar en el momento de pulsar <Intro>. 6 Intrprete de comandos El shell evala lo que se escribe buscando en primer lugar si contiene un carcter "/" inicial, en cuyo caso lo toma como un programa y lo ejecuta. En caso contrario, examina si se trata de una funcin (secuencia de comandos identificada por un nombre unvoco), un comando interno o una palabra reservada. Si ninguna de estas condiciones es cierta, el shell lo trata como un comando y lo busca en PATH. Si no est, saca un mensaje del tipo "XX:not found", siendo XX lo que se ha escrito. Por otra parte, el shell ofrece la posibilidad de controlar la ejecucin de los programas y la comunicacin entre ellos. 7 Intrprete de comandos Los intrpretes de comandos tienen dos formas de ejecutar el contenido de una lnea de comandos: esperar a que finalice la ejecucin o volver a pedir otro comando durante la misma. Se distinguen as dos planos de ejecucin: uno donde el programa tiene toda la atencin y otro donde el programa se ejecuta de fondo sin detener la sesin, lo cual permite la posibilidad de ejecutar ms comandos al mismo tiempo. Adems, el shell tambin es un sencillo lenguaje de programacin. 8 Lnea de comando El formato de un comando es: $ comando -opciones argumentos Hay opciones que se pueden ingresar como: comando -opcin argumento, o $ comando a+b argumento. Notar que entre las opciones y argumentos, hay un espacio, que suele ser tomado por Linux como un cambio de argumentos. Por este motivo los nombres de los archivos no deben contener espacios en blanco. 3 9 Entrada Salida del Sistema Arranque del Linux Cmo apagar el equipo init Limpieza del sistema de archivos login passwd login script logout 10 Arranque Del Linux Cuando el equipo se enciende el Linux realiza el proceso de arranque (boot process) automticamente. Durante este proceso presenta una serie de mensajes en la pantalla De existir inconvenientes, los mensajes de error se mostrarn. Los scripts de arranque se encuentran guardados en el directorio /etc Los principales archivos involucrados son /etc/inittab /etc/rc.d Recomendacin: observar, pero no tocar hasta tener experiencia. 11 Shutdown A los sistemas operativos les disgusta que se apague el equipo. Se corre el riesgo de daar al sistema operativo Antes de apagar el equipo, hay que ejecutar shutdown Opciones now apaga al sistema de inmediato +n n es el nmero de minutos a esperar -r realiza el shutdown y re-boot -c cancela el shutdown 12 Shutdown Idem anterior reboot Detiene al sistema de inmediato y automticamente realiza el re-boot shutdown now r Detiene al sistema en 10 minutos, listo para apagar shutdown +10 h Detiene al sistema de inmediato, listo para apagar shutdown now h Que hace Ejemplos 4 13 shutdown #shutdown h now mensajes relacionados con la detencin y apagado del sistema aparecen en la pantalla esperar hasta que el la ltima lnea aparece system halted en este momento se puede apagar el equipo 14 Rebooting El nico motivo que hace que se requiera reinicializar al sistema es cuando un nuevo seteo se realiz, y se desea que l mismo tenga efecto. Mtodo 1 Estando todos los usuarios deslogueados pulsar simultneamente CTRL ALT DEL Los mensajes de shutdown aparecern y el sistema se reinicializar Mtodo 2 #reboot 15 init reboot 6 multi-user mode with GUI started (modo normal para las workstations utilizando X Windows) 5 multi-user mode (modo normal) 3 single user mode (para mantenimiento, no permite que otros usuarios se logueen) 1 halt system 0 Que hace Opciones El sistema ya se encuentra levantado y en ejecucin, se puede el comando init para arrancar o parar al sistema. 16 init Ejemplos init 1 para setear al sistema en modo single user init 6 reboot 5 17 Limpieza del File System fsck Se ejecuta automticamente cada vez que el sistema arranca Ocasionalmente se puede ejecutar manualmente, para fijar daos en el sistema de archivos. Lo utiliza nicamente el administrador del sistema Se ejecuta logueado como root 18 login Para entrar al sistema hay que conectarse al mismo. Frente al mensaje de login, hay que ingresar el nombre de usuario El sistema a continuacin solicita la password o palabra clave que corresponde al usuario Si ambos datos son correctos se entra al sistema, caso contrario, el sistema presenta el login nuevamente. El login y la password son case sensitive 19 Cambio de clave o password Si el usuario desea cambiar su password $passwd Enter existing password Enter new password Enter new password again Si el administrador del sistema desea cambiar la password de un usuario #passwd nombre_usuario 20 login scripts Detrs de escena, mientras uno se loguea al sistema, los siguientes shell scripts se ejecutan. Su objetivo es inicializar las variables de ambiente /etc/profile Este es el primer script que se ejecuta Se utiliza para inicializar los parmetros globales que son comunes a todos los usuarios /home/<username>/.profile_bash Es el prximo script que se ejecuta normalmente En general tiene el mismo contenido para todos los usuarios Se suele cambiar para inicializar parmetros nicos para cada usuario /home/<username>/.bashrc Es el prximo script que se ejecuta cada vez que se comienza un nuevo shell. 6 21 logout La salida de una sesin por parte del usuario se puede realizar de varias maneras: logout exit la combinacin de teclas CTRL D En el modo grfico mediante la opcin de logout 22 Estado del Sistema procinfo top ps env df du free id who uptime 23 uptime $ uptime 3:53pm up 21 min, 1 user, load average: 0.78, 0.63, 0.38 Tiempo actual (3:53pm) Nmero de das o mnutos desde el ltimo arranque (up 21 min) Cantidad de usuarios logueados (1 user) Utilizacin del sistema por los ltimos intrvalos de 1, 5 y 15 minutos (load average carga efectiva) 24 who Usuarios logueados Cuando se loguearon De donde se conectaron tty que estn utilizando Idle time Opciones: -i muestra el tiempo display idle time -H muestra las columnas de cabecera 7 25 who $ who martin tty2 Aug 10 15:52 $ who iH (omni) . Jun 5 23:27 ttyp0 pepe FROM IDLE LOGIN- TIME LINE USER 26 id Este comando muestra en una linea un resumen del actual usuario nombre usuario y nmero grupo principal y nmero otros grupos y nmeros $ id uid=500(martin) gid=500(martin) groups=500(martin) 27 free Muestra la estadstica de la memoria utilizada. Valores en Kbytes total used free shared buffers cached Mem: 158920 156160 2760 0 5208 47640 -/+ buffers/cache:103312 55608 Swap: 498920 0 498920 28 du Muestra la cantidad utilizada de disco y muestra el tamao del actual directorio y subdirectorio en Kbytes. $ du 20 . 8 29 du Muestra el espacio disponible en el disco particin por particin Los drives/particiones tienen que estar montadas para obtener esta informacin. La informacin del NFS tambin se puede obtener Para mostrar el espacio libre de los drivers montados localmente $df l 30 du Cuando se quiere saber donde y quien est consumiendo espacio en disco, en especial cuando se lentifica el sistema El comando du permite determinar la utilizacin del disco directorio por directorio Resumen, slo muestra la salida de cada argumento -s Muestra los tamaos en Kbytes y no en bloques (Un bloque = 1 Kbyte, en Linux) -k Muestra los tamaos en formato entendible -h Genera un reporte al final -c Descripcin Opciones 31 du Para visualizar la cantidad de espacio utilizado por cada directorio dentro de /home, en un formato entendible $ du sh /home/* 32 df Muestra la informacin de cada file system $df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda2 2894608 1885204 862364 69% / none 79460 0 79460 0% /dev/shm 9 33 df Muestra el espacio disponible en el disco particin por particin Los drives/particiones tienen que estar montadas para obtener esta informacin. La informacin del NFS tambin se puede obtener Para mostrar el espacio libre de los drivers montados localmente $df l 34 df Para mostrar en formato legible, el actual filesystem donde se halla el directorio actual $df h Para mostrar el espacio disponible del filesystem donde /tmp est ubicado $df h /tmp 35 env Lista todas las variables de ambiente y su contenido para el usuario actual PWD=/home/martin/comandos HOSTNAME=localhost.localdomain USER=martin MAIL=/var/spool/mail/martin LANG=en_US.iso885915 LOGNAME=martin HISTSIZE=1000 HOME=/home/martin TERM=linux PATH=/usr/local/bin:/bin:/usr/bin:/home/martin/bin_=/usr/bin/env OLDPWD=/home/martin 36 ps Este comando lista el estado de los procesos. $ ps u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND martin 10009 0.0 0.8 2452 1280 tty2 S 15:52 0:00 bash martin 10076 0.0 0.4 2584 668 tty2 R 15:56 0:00 ps u El comando anterior muestra el estado de los procesos del usuario actual 10 37 ps Siendo PID NICO Identificador de Proceso SIZE tamao de la imagen virtual; tamao de texto + data + stack RSS Resident set size; Kbytes del programa en memoria TTY tty que controla el proceso STAT informacin sobre el estado del proceso R ejecucin S durmiendo D interrumpiblemente durmiendo T detenido o en modo traza Z zombie W si el proceso no tiene pginas residentes N si el proceso tiene un valor de prioridad positiva 38 ps $ ps ax muestra el estado de todos los procesos de todos los usuarios incluyendo los del sistema 39 kill El nombre causa confusin. Enva seales a los procesos en ejecucin El SO, por defecto, da a cada proceso un conjunto normalizado de manejadores de seales (signal handlers) para el tratamiento de las seales que le lleguen. Desde el punto de vista de la administracin, las seales ms importantes son la 9 y la 15, ya que ellas matan a un proceso o lo terminan, respectivamente. Cuando el kill se invoca, requiere al menos un parmetro, el pid del proceso al que se le enva la seal. Si se pasa sin parmetro, el sistema toma la 15 por defecto. 40 kill Algunos procesos interceptan esta seal y realizan una serie de operaciones para poder terminar adecuadamente. Otros simplemente terminan. Desde ya el uso del kill no garantiza la terminacin de un proceso. 11 41 signal Un parmetro opcional para el kill es n donde n representa un nmero de seal. La seal 9 mata a un proceso. La nica vez que esta seal falla es cuando esta en el medio de la ejecucin de un system call, en este caso el proceso morir cuando termin la ejecucin del system call. La seal 1 (hang up), es un bit, que se utilizaba en los tiempos de las terminales VT100. En el caso que la comunicacin de una terminal de cayer a la mitad de una sesin, todos los procesos asociados con esa terminal recibin la seal SIGHUP o HUP. Esto le daba la oportunidad a todos los procesos de realizar una terminacin limpia, o en el caso de los procesos en background ignorar la seal. 42 seguridades La potencia de poder terminar un proceso hace necesario tomar precauciones. Solamente el usuario puede terminar su proceso o aquellos que tengan permiso de matarlo. Si se intenta terminar un proceso sobre el que no se tiene privilegios, el sistema da mensajes de error. El root es la excepcin a esta limitacin. El root puede enviar seales a cualquier proceso. Desde ya esto implica una gran atencin con lo que se hace. $kill 2059 $kill 9 593 $kill 1 1 43 top Muestra en una pantalla completa la informacin top de los procesos. Automticamente se actualiza hasta que se detiene la ejecucin del programa. Para detenerlo se oprime la tecla q 44 top 3:56pm up 25 min, 1 user, load average: 0.14, 0.32, 0.30 55 processes: 54 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 11.2% user, 5.9% system, 0.2% nice, 82.6% idle Mem: 158920K av, 156164K used, 2756K free, 0K shrd, 5696K buff Swap: 498920K av, 0K used, 498920K free 47016K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 10078 martin 15 0 1024 1024 828 R 3.8 0.6 0:00 top 1 root 15 0 476 476 420 S 0.0 0.2 0:03 init 2 root 15 0 0 0 0 SW 0.0 0.0 0:00 keventd 3 root 15 0 0 0 0 SW 0.0 0.0 0:00 kapmd 4 root 34 19 0 0 0 SWN 0.0 0.0 0:00 ksoftirqd_CPU0 5 root 15 0 0 0 0 SW 0.0 0.0 0:00 kswapd 6 root 15 0 0 0 0 SW 0.0 0.0 0:00 bdflush 7 root 15 0 0 0 0 SW 0.0 0.0 0:00 kupdated 8 root 25 0 0 0 0 SW 0.0 0.0 0:00 mdrecoveryd12 12 root 15 0 0 0 0 SW 0.0 0.0 0:00 kjournald 91 root 15 0 0 0 0 SW 0.0 0.0 0:00 khubd 588 root 15 0 560 560 472 S 0.0 0.3 0:00 syslogd 593 root 15 0 444 444 384 S 0.0 0.2 0:00 klogd 613 rpc 15 0 552 552 468 S 0.0 0.3 0:00 portmap 641 rpcuser 17 0 712 712 620 S 0.0 0.4 0:00 rpc.statd 726 root 15 0 644 644 480 S 0.0 0.4 0:00 cardmgr 820 root 15 0 480 480 424 S 0.0 0.3 0:00 apmd 896 root 15 0 944 944 756 S 0.0 0.5 0:00 xinetd 12 45 procinfo Informacin del sistema procinfo da informacin del sistema que toma del archivo /proc y lo muestra en forma de reporte en la pantalla. Algunas de las informaciones que entrega: Tiempo del ltimo arranque Carga promedio promedio de tareas en ejecucin nmero de procesos en ejecucin nmero total de procesos PID del ltimo proceso en ejecucin Informacin de swap Recursos de memoria Nmero de discos Informacin sobre las IRQs Informacin sobre los file systems La informacins se actualiza cada 30 segundos 46 $procinfo fn30 Linux 2.4.18-3 (bhcompile@daffy) (gcc 2.96 20000731 ) #1 1CPU localhost] Memory: Total Used Free Shared Buffers Cached Mem: 158920 156156 2764 0 5772 47044 Swap: 498920 0 498920 Bootup: Sun Aug 10 15:31:28 2003 Load average: 0.10 0.29 0.29 1/55 10081 user : 0:02:51.00 10.9% page in : 163056 disk 1: 25137r 4835w nice : 0:00:03.10 0.2% page out: 65079 system: 0:01:30.74 5.8% swap in : 1 idle : 0:21:47.11 83.2% swap out: 0 uptime: 0:26:11.95 context : 158729 irq 0: 157195 timer irq 8: 1 rtc irq 1: 744 keyboard irq 9: 6 xirc2ps_cs irq 2: 0 cascade [4] irq 10: 2 irq 4: 9 irq 11: 0 usb-uhci, Texas Inst irq 6: 6 irq 12: 8381 PS/2 Mouse irq 7: 2 irq 14: 32718 ide0 47 Estructura del Sistema de Archivos La estructura de archivos es una estructura arbolada El tronco del rbol es el directorio raz El root directory se identifica por / Todos los otros directorios son ramas que salen de ese tronco. 48 Estructura jerrquica de archivos Estructura de rbol invertido. Un directorio equivale a abrir una rama dentro del rbol. Los directorios pueden contener otros directorios, archivos ordinarios o estar vacos. Un archivo ordinario es siempre el ltimo archivo en un path 13 49 pathnames El primer directorio de la estructura es el directorio raz; todos los dems archivos y directorios parten de l. El directorio raz se designa con un nombre especial, /. Ningn otro archivo puede tener este nombre. Se lo denomina root, de all el nombre del superusuario. 50 pathnames Todos los archivos forman parte de la jerarqua. Cualquier archivo de esta estructura es parte de una red de directorios conectados. Esta red de directorios, junto con el nombre de un archivos particular, constituye el pathname para un archivo. Cada archivo se identifica con un nico pathname, que describe su localizacin con respecto a los otros directorios. Se puede especificar un nombre de archivo utilizando pathnames 51 pathnames Un pathname absoluto especifica la localizacin de un archivo desde el directorio raz. Por lo tanto, todos los pathnames absolutos deben de empezar con un slash (/). Un pathname relativo especifica la localizacin de un archivo con respecto al directorio en que se est trabajando, en lugar del directorio raz, por lo que no empiezan con un slash (/). . El punto se refiere al directorio en que se est .. dos puntos se refiere al directorio padre 52 HOMEDIRECTORY El home directory es un subdirectorio del directorio raz (root) en el que se entra cada vez que se hace login es donde van a residir los archivos del usuario. Normalmente tiene el mismo nombre que el nombre de usuario. El comando pwd ( print working directory) dice en qu directorio se est. El formato es simplemente : $pwd 14 53 Principales Directorios / root directory /home directorio de los usuarios /usr comandos y utilitarios de Linux /bin programas ejecutables /lib bibliotecas similares a las DLL de Windows /sbin ms ejecutables de tipo administrativos /doc documentacin /src cdigo fuente de los programas /tmp archivos temporarios de trabajo 54 Principales Directorios /etc archivos de configuracin /rd.d scripts usados durante el arranque y parada /sysconf archivos de configuracin por defecto /sysconf/daemons programas especiales que se ejecutan en background /bin archivos ejecutables que utilizan todos los usuarios /dev archivos de dispositivos 55 Principales directorios /var archivos especficos de los usuarios /log archivos logs /spool archivos utilizados durante las impresiones /mail archivos de e-mail /proc archivos del sistema /root home directory del root /opt otras opciones /sbin ms ejecutables y utilitarios 56 Archivos y Directorios en Linux pwd mkdir rm Metacaracteres * ? [ ] cd rmdir ls cp mv wc 15 57 pwd Mostrar el nombre del directorio completo actual /home/jpbeck 58 cd Para cambiar de directorio se ubica en el directorio padre cd .. se ubica en el directorio /etc cd /etc se ubica en el directorio root cd / se ubica en el H0MEDIRECTORY cd Qu hace Ejemplos 59 mkdir rmdir mkdir Crea nuevos directorios rmdir Borra directorios, pero que no contienen archivos rm r Borra en primer lugar los archivos que contiene el directorio, y luego el directorio borra al directorio dire1, junto con todos los directorios y archivos que contenga rm r dire1 borra al directorio estedir, si el mismo se encuentra vacio rmdir estedir crea un nuevo directorio denominado midir mkdir midir 60 mkdir Se utiliza para crear directorios $mkdir midir Con la opcin p, se puede crear una rama de directorios, suponiendo que slo existe /tmp $mkdir p /tmp/bigdir/subdir/midir al ejecutarse de gener automticamente bigdir, subdir y midir. 16 61 rmdir Idem a la creacin, con la opcin p puede borrar directorios padre tambin $ rmdir p bigdir/subdir/midir es importante la ubicacin desde donde uno est borrando directorios. 62 ls Muestra el contenido de un directorio Muestra el archivo correspondiente filename(s) muestra los archivos ms recientemente accesados -t lista los archivos en orden alfabtico inverso -r muestra todos los archivos, an los ocultos -a lista el directorio actual y todos los directorios dentro del mismo -R listado largo -l Qu hace? Opciones 63 ls Lista todos los archivos del directorio /etc, que slo comienzan con rc y los ordena por el ms recientemente utilizado ls lt /etc/rc* Lista todos los archivos, ordenados por el ms reciente utilizado primero ls lt Lista todos los archivos del directorio actual y los que estn por debajo ls R Lista todos los archivos/directorios del directorio actual en formato largo ls l muestra en una nica lista todos los nombres de los archivos y directorios en el directorio actual ls Qu hace? Ejemplos 64 ls l total 43 -rw-rw-r 1 martin martin 190 Aug 10 15:55 df -rw-rw-r-- 1 martin martin 5 Aug 10 15:55 du -rw-rw-r-- 1 martin martin 885 Aug 10 15:56 env -rw-rw-r-- 1 martin martin 230 Aug 10 15:54 free -rw-rw-r-- 1 martin martin 51 Aug 10 15:54 id -rw-rw-r-- 1 martin martin 0 Aug 10 16:04 lsl -rw-rw-r-- 1 martin martin 1124 Aug 10 15:57 procinfo -rw-rw-r-- 1 martin martin 208 Aug 10 15:56 ps -rw-rw-r-- 1 martin martin 1785 Aug 10 15:56 top -rw-rw-r-- 1 martin martin 62 Aug 10 15:53 uptime -rw-rw-r-- 1 martin martin 31 Aug 10 15:53 who 17 65 Informacin que muestra ls -l TIPO DE ARCHIVO : d directorio - archivo ordinario TIPO DE PERMISOS : r lectura w escritura x ejecucin 66 Informacin que muestra ls -l NUMERO DE ENLACES NOMBRE DEL PROPIETARIO DEL ARCHIVO NOMBRE DEL GRUPO AL QUE PERTENECE EL PROPIETARIO TAMAO DEL ARCHIVO (en bytes) FECHA DE LA ULTIMA MODIFICACION NOMBRE DEL ARCHIVO 67 Proteccin de archivos Existen tres clases diferentes de usuarios de un archivo y tres modos diferentes de acceso al archivo. CLASES DE USUARIO Propietario Grupo Otros 68 Modos de acceso LECTURA (r) Permite examinar el contenido del archivo. Permite listar los archivos contenidos en el directorio. ESCRITURA (w) Permite cambiar el contenido del archivo. Permite crear y borrar archivos. EJECUCION (x) Permite ejecutar el archivo como un comando. Permite buscar en el directorio. 18 69 Especificacin de permisos rwx rwx rwx | | | | | |_______ permisos para otros usuarios | | | |____________ permisos para el grupo de usuarios | |________________ permisos para el usuario propietario 70 Metacaracteres (wildcards) representa los valores no contemplados en el rango [ ! desde a ] representa un rango [ desde - a ] representa uno y slo un caracter ? representa ningn, uno o cualquier cantidad de caracteres * Qu hace Opciones 71 Nombres de los Archivos Letras maysculas ( A - Z ). Letras minsculas ( a - z ). Nmeros ( 0 - 9 ). Subrayado ( _ ). Punto ( . ). Coma ( , ). Extensin de un archivo No se admiten espacios en blanco en el nombre 72 Metacaracteres Todos los archivos que no comiencen ni con M o N u O [!M-O]* todos los archivos que comiencen con x, y cuya segunda letra sea una A, o B o C x[A-C]* todos los archivos que comiencen con a o b o c [a-c]* todos los archivos cuyos nombres son de 4 caracteres y empiecen con th th?? todos los archivos que comienzan con a y terminan con z a*m todos los archivos que terminan con z *z todos los archivos que empiezen con a a* Qu hace Ejemplos 19 73 Expansin del nombre de un archivo Utilizando el bash, los wildcards o metacaracteres en la lnea de comando se expanden antes de pasarse como parmetros a la aplicacin. Si se quiere utilizar los metacaracteres como parte de un parmetro por alguna razn, se deben utilizar precedidos por el backslash (\). Esto hace que el shell interprete al asterisco, al signo de pregunta como caracteres regulares en vez de metacaracteres. 74 Archivos Invisibles u Ocultos Los archivos cuyos nombres comienzan con un punto (.) Normalmente los archivos ocultos se utilizan para guardar informacin que el sistema utiliza automticamente. $ ls -a 75 chmod El comando chmod (change mode) se utiliza para cambiar los permisos de un archivo ordinario y de un directorio. Existen dos formas de cambiar los permisos. Se pueden cambiar teniendo encuenta los permisos existentes (modo simblico) O se pueden asignar permisos independientemente de los ya existentes (modo absoluto). 76 chmod modo simblico Cuando se utiliza el modo simblico se pueden aadir o quitar permisos a los archivos y directorios. El formato del comando chmod simblico es: chmod [who] cdigo-operador permisos fichero [who] Tipo de usuario 20 77 chmod modo simblico Puede tener los siguientes valores: u : propietario del fichero g : grupo del que el propietario es miembro o : usuarios clasificados como otros a : todos los usuarios del sistema (propietario, grupo y otros) Cdigo-operador: Indica la operacin que se va a realizar: + : aadir permisos - : quitar permisos Tipo de permiso: r : permiso de lectura w : permiso de escritura x : permiso de ejecucin 78 chmod modo simblico Por ejemplo, si el archivo progra1 tiene los siguientes permisos: rwx r_ _ r_ _ y si se quiere dar al grupo de usuarios y al resto de los usuarios del sistema, el permiso de ejecucin $chmod go +x datos 79 chmod modo absoluto El modo absoluto se especifica con 3 dgitos numricos; cada nmero representa los permisos de cada tipo de usuario. Estos dgitos se obtienen, para cada clase de usuario, a partir de los valores siguientes: 4 : permiso de lectura 2 : permiso de escritura 1 : permiso de ejecucin. 80 chmod modo absoluto 0 : ningn permiso 1 : permiso de ejecucin 2 : permiso de escritura 3 : permiso de ejecucin y escritura (1+2) 4 : permiso de lectura 5 : permiso de lectura y ejecucin (4+1) 6 : permiso de lectura y escritura (4+2) 7 : permiso de lectura, escritura y ejecucin (4+2+1) 21 81 chmod modo absoluto La sintaxis para el comando chmod absoluto es: chmod modo archivo modo: Son 3 dgitos numricos. Cada uno de ellos corresponde a los permisos de cada tipo de usuario. archivo: Nombre de archivo o directorio. Por ejemplo: $chmod 777 datos concede permisos de lectura, escritura y ejecucin sobre el fichero datos, a todos los usuarios. 82 Directorios El directorio es una instancia especial de un archivo normal El archivo directorio contiene una lista de archivos, donde algunos de ellos pueden ser a su vez directorios. Concepto similar al folder o carpeta de Windows. 83 Copiar Renombrar - Mover cp Copia un archivo $ cp archi1 archi2 copia el archivo archi1 con el nombre archi2, en el mismo directorio mv Renombra archivos $ mv archi2 archi3 le cambia el nombre al archivo archi2 llamndose ahora archi3 mv Mueve archivos $ mv archi1 /home/pepe/archi5 mueve el archivo archi1 del directorio actual (copiando y borrando) al directorio /home/pepe y denominndolo archi5 84 cp Dispone de una cantidad significativa de opciones. (ver con man cp) Para copiar index.html a index-orig.html $cp index.html index-orig.html se supone que el archivo index.html se encuentra el directorio corriente, y se copia con otro nombre en el mismo directorio Para realizar copias interactivas $cp i *.html /tmp 22 85 mv Puede mover archivos de una ubicacin a otra, tambin a distintas particiones. En este ltimo caso necesita que primero se haga la copia, por lo que se demora un poco ms en su ejecucin. Para mover el archivo desde /usr/src/myprog/bin/* a /usr/bin $ mv /usr/src/myprog/bin/* /usr/bin Para renombrar /tmp/blah a /tmp/bleck $mv /tmp/blah /tmp/bleck 86 rm Borrar archivos $ rm archivitos borra el archivo archivitos $ rm i abc* borra, pidiendo confirmacin, a cada archivo que comienza con abc $ rm abc* borra instntaneamente todos los archivos que comiencen con abc 87 wc Se utiliza para contar lneas, palabras y caracteres de un archivo -c nmero de caracteres -w nmero de palabras -l nmero de lneas $ wc /etc/sendmail.cf lista el nmero de lneas, palabras y caracteres en el archivo sendmail.cf $ ls /etc | wc l Muestra el nmero de archivos y directorios que contiene /etc 88 Enlaces o Accesos Directos Enlace o Vnculos : permite que se comparta la informacin. La existencia de vinculos es lo que convierte al rbol en un grafo acclico. VINCULO 23 89 Enlaces o Vnculos El vnculo es un enlace con el archivo fsico, para compartir un archivo entre varios usuarios. No se puede crear un archivo vnculo de la nada, es necesario que exista el archivo fsico al cual est vinculado. Al realizar un ls el vinculo viene representado como : clase - > / etc / passwd VINCULO Archivo Fsico 90 Enlaces o Vnculos Enlaces SIMBLICOS : Amplia el concepto de vinculo permitiendo vincularse a directorios o archivos de la red. Un vinculo simblico desde el punto de vista fsico no es ms que un archivo que contiene el nombre de otro. No se implementa un vnculo, sino que viene el archivo vinculado. Al hacer un vinculo, crea una entrada ms en la tabla de directorios, y al mismo tiempo un archivo al que est vinculado. Directorios : Archivo que contiene informacin sobre otros archivos( es un archivo). Se puede tratar con las ordenes de tratamiento de archivos. 91 Enlaces Duros y Simblicos Hard link $ ln pwd otro Soft link $ ln s pwd otromas $ ls il 7418 -rw-rw-r-- 2 martin martin 0 Aug 10 16:27 otro 7420 lrwxrwxrwx 1 martin martin 3 Aug 10 16:26 otromas -> pwd 7418 -rw-rw-r-- 2 martin martin 0 Aug 10 16:27 pwd 92 Enlaces duros Un hard link no puede existir entre dos archivos que se encuentren en particiones separadas. Esto se debe a que el hard link hace referencia al i- nodo del archivo original, y el nmero de i-nodo puede diferir de particin en particin. $ ln pepe /home/miguel/pepe $ ls i pepe $ ls i /home/miguel/pepe los dos ltimos comandos van a mostrar el mismo i-nodo, y el nmero de enlaces en 2 24 93 Enlaces simblicos o blandos Los hard link, que apuntan al archivo a travs de su i-nodo Los symbolic link apuntan a otro archivo por su nombre. Esto permite a los symlinks apuntar a archivos ubicados en otras particiones, an sobre discos de red. 94 ln El formato general del comando es ln original_file new_file Pero ln tiene muchas opciones, la ms comn es s, que crea un enlace simblico en vez de uno duro. $ln s /usr/local/bin/myadduser /usr/bin/myadduser 95 Archivos de texto file Mostrar archivos less cat head tail | pipes Comandos mltiples sort grep 96 file Verificacin del tipo de archivo $ file otro otro: ASCII text $ file otromas otromas: symbolic link to pwd 25 97 pipes | Si se desea saber cuantos usuarios hay logueados al sistema en un instante determinado $who > logueados $wc l logueados $rm logueados Mediante la tcnica de redireccionamiento se logro escribir un archivo, el cual despus se leyo y dio la informacin Pero en un ambiente de multiprogramacin, la escritura y lectura de disco, es un costo muy elevado Mediante pipes se resuelve todo en memoria $who | wc l Ahorro de una escritura y una lectura en disco. 98 pipes Los pipes son un mecanismo por el cual la salida de un proceso se enva a la entrada de otro proceso $printenv | grep PS1 El intrprete de comandos de Windows utiliza tambin pipes La diferencia radica en que los pipes se ejecutan concurrentemente, mientras que en Windows cada proceso se ejecuta en orden, utilizando archivos temporales para guardar los resultados parciales. 99 Comandos mltiples Si se ejecuta $ls l $ cat /etc/passwd lo puedo hacer en una nica lnea de comando $ls l; cat /etc/passwd 100 Redireccionamiento Mediante el redireccionamiento la salida de un proceso se puede enviar directamente a un archivo. El shell ms que el proceso en s administra esta situacin, proveyendo de los mecanismos para que la misma se cumpla Redireccionamiento salida a un archivo agregar a un archivo enviar un archivo como entrada 26 101 Redireccionamiento $ls > /tmp/directory_listint $echo Final >> /tmp/directory_listing $grep root < /etc/passwd 102 Mostrando Archivos less se utiliza para visualizar el contenido de un archivo de texto $ less /etc/passwd Mientras se visualiza se dispone de una serie de opciones que permiten moverse sobre el archivo hacia atrs y hacia adelante, y tambin buscar palabras. more se utiliza para visualizar el contenido de un archivo de texto $ more /etc/passwd Idem al anterior, pero con menor cantidad de posibilidades 103 Mostrando Archivos cat Muestra el archivo de texto completo, no tiene posibilidad de paginacin como el less o el more $ cat /etc/passwd Tambin se puede utilizar para crear un nuevo archivo $ cat > nuevoArchi Se ingresan las lneas de texto por teclado. Para cerrar el archivo se pulsa CTRL - D 104 cat Muestra el contenido de los archivos. $cat /etc/passwd $cat /etc/passwd /etc/group Para concatenar dos archivos en uno slo $cat /etc/passwd /etc/group > /tmp/comp Para concatenar un archivo a otro ya existente $cat /etc/passwd >> /tmp/orb 27 105 Mostrando Archivos head Slo muestra las primeras lneas de un archivo de texto $ head 5 /etc/passwd Solo muestra las primeras 5 lneas del archivo passwd tail Slo muestra las ltimas lneas de un archivo de texto $ tail 5 /etc/passwd Slo muestra las ltimas 5 lneas del archivo passwd 106 Mostrando Archivos grep se utiliza para encontrar un dato especfico dentro de un archivo o grupo de archivos archivo sobre el que se hace la bsqueda filename texto que se busca pattern ignora maysculas y minsculas -i Hace lo opuesto a lo normal, lista las lneas que no cumplen -v Muestra la cantidad de lneas que cumplen la condicin -c Que hace Opciones 107 $ grep home /etc/passwd $grep v home /etc/passwd $grep c home /etc/passwd $grep name* /etc/sendmail.cf $grep domain name /etc/sendmail.cf $grep tcp /etc/rc* $grep TCP /etc/rc* $grep -i tcp /etc/rc* Ejemplos de uso de grep 108 sort ordenamiento de un archivo - r ordenamiento en orden inverso nombre del archivo -o archivo destino Ejemplos $ sort /etc/passwd $grep home /etc/passwd | sort $grep home /etc/passwd | sort r $sort /etc/passwd o nuevopasswd 28 109 Cambio de propietario y grupo chown cambio de propietario de archivos o directorios chgrp cambio de grupo sobre archivos o directorios $ chown pepe archi archivos $ chgrp mgmt archi1 listado2 110 Otros comandos date permite visualizar o cambiar la fecha y hora del sistema cal muestra el calendario del mes actual, ao indicado, o mes y ao indicado clear limpia la pantalla touch cambia la fecha de actualizacin de un determinado archivo. En caso de no existir el archivo genera un archivo con 0 bytes. 111 Otros comandos pidof Indica el nmero de proceso, si se colgara un proceso se hace pidof <nombre>, y da un nmero ese es el pid. diff Compara dos archivos en formato texto lnea por lnea. find Busca algn archivo y ejecuta alguna accin con estos archivos. locate Lista archivos asociados al patrn dado. tar Empaqueta o desempaqueta un conjunto de archivos o directorios. Ver man para opciones. 112 Otros comandos zip Comprime o descomprime archivos. gzip Comprime o descomprime archivos, usando el compresor gunzip. bzip2 Formato de compresin mas nuevo que los anteriores, permite mayor compresin de los datos. su Permite realizar tareas de superusuario estando logueado como usuario normal. df Permite ver el uso de los discos que se encuentran montados. Tamao de lo usado. du Permite ver el tamao de los directorios, se puede definir en que unidad de medida. 29 113 Tareas de Control Jobs Control Desde el entorno bash se pueden comenzar mltiples programas desde el mismo prompt. Cada programa se lo denomina job Cuando un job comienza toma control de la terminal (el trmino proviene de las terminales bobas tipo VT-100 y Wyse-50) La terminal es la interfaz que existe cuando se trabaja en modo texto o la ventana que se crea a partir del X Windows sobre el cual el bash se ejecuta. Las terminales utilizadas en X Windows se llaman pseudo tty o pty 114 Jobs Control Si una tarea tiene control de la terminal, cuando termina tendra que darle el control a la tarea que lo supervisa. Se tiene otra manera de trabajar $galion& Inmediatamente despus de oprimir el Enter, el bash devuelve el prompt. La tarea se ejecuta en background. Si el programa ya se est ejecutando y tiene control de la terminal, se puede hacer que la tarea abandone el control de la terminal presionando CTRL-z. Esto detiene la ejecucin y devuelve el control al bash, de tal modo que se pueden introducir nuevos comandos. 115 Jobs Control En cualquier momento se puede saber cuantas tareas estn a cargo del bash ejecutando el comando $jobs El listado de programas que aparece estar en dos estados posibles: ejecucin (running) stopped (detenido o bloqueado) 116 Jobs Control Si una tarea est detenida, se la puede empezar a ejecutar en background, dejando de este modo libre el control de la terminal. O se puede ejecutar la tarea en modo foreground, que le da el control de la terminal a la tarea Si se quiere ejecutar en background $ bg numero Si se quiere ejecutar en foreground $ fg numero siendo numero el nmero de job a tratar 30 117 Variables de ambiente Cada instancia del shell se ejecuta en su propio ambiente, dndole un look & feel particular El seteo particular se logra a travs de las llamadas variables de ambiente (environment variables) Algunas variables tienen un significado especial para el shell, se utilizan en los shell scripts. Idem al concepto de variables de ambiente del NT y Windows 2000, la diferencia es que se pueden setear, ver y borrar. 118 Variables de ambiente Para visualizar todas las variables de ambiente $printenv Para observar alguna variable en particular $printenv OSTYPE Seteo de las variables $ variable = valor donde variable es el nombre de la variable y valor es el valor que se le asigna Una vez setea una variable se la puede pasar a otro entorno para ello se dispone de un comando $export variable 119 Variables de ambiente o entorno Si el valor a asignar a una variable de ambiente tiene espacios en blanco, se tiene que encerrar con doble comilla $export PEPE = Bienvenidos al Tren Para remover o borrar una variable de ambiente $unset PEPE Cada shell tiene mecanismos especiales para setear y remover sus variables. 120 Backticks ` ` La salida de un proceso puede ser el parmetro de otro proceso Los backticks ( ` ) pueden embeber comandos como parmetros en otro comando. Un servidor DNS, llamado named, tiene que terminarse. cuando named comienza, escribe su nmero de identificacin de proceso en el archivo /var/run/named.pid utilizando el comando cat se puede visualizar dicho nmero $cat /var/run/named.pid 1243 $kill 9 1243 Todo se lo puede ejecutar de la siguiente forma $ kill 9 `cat /var/run/named.pid` 31 121 herramientas de documentacin man info System tools 8 Packages 7 Games 6 Configuration files 5 Device Driver Information 4 C library calls 3 System Calls 2 User tools 1 Tema Seccin del Manual 122 man $man program_name $man ls $man 3 printf $man 1 printf por defecto, la seccin ms baja se muestra primero $man k printf da un informe resumido de todas las pginas del manual, con su nmero de seccin correspondiente. 123 Block Devices Todos los dispositivos se acceden a travs de archivos Los archivos tipo dispositivos de bloques se utilizan para la interfaz con dispositivos tales como discos Un archivo de block device tiene 3 rasgos identificatorios un nmero mayor un nmero menor cuando se visualiza con ls l, muestra b como primer caracter 124 block devices $ls l /dev/hda brw-rw---- 1 root disk 3, 0 May 5 1998 /dev/hda b al principio indica que se trata de un block device 3 es el nmero mayor 0 es el nmero menor El nmero mayor del block device identifica al device driver. Cuando se accede a un archivo el nmero menor se pasa al device driver como parmetro dicindole cual es el dispositivo que se accede. Si se disponen de 2 ports, que comparten el mismo device driver o sea tendrn el mismo nmero mayor, pero cada port serial tendr un nico nmero menor. 32 125 character device Son archivos especiales que permiten acceder a determinados dispositivos a travs del filesystem. Los dispositivos de bloques se comunican mediante grandes bloques, mientras que los de caracter lo hacen de un caracter por vez. Un disco rgido es un dispositivo de bloque Un modem es un dispositivo de caracter 126 character device Idem a los dispositivos de bloques, empiezan en vez de con una b de bloques con una c de caracter Poseen un nmero mayor y un nmero menor que cumple el mismo rol que en los dispositivos de bloques. 127 find Permite ubicar un archivo basado en diferentes criterios. Tiene muchas opciones (recomendacin leer el man find) Para encontrar todos los archivos en /tmp que no se accedieron en los ltimos 7 das $find /tmp atime 7 print Encontrar todos los archivos en /usr/src cuyos nombres son core y borrarlos $find /usr/src name core exec rm Encontrar todos los archivos en /home que terminen en .jpg y sean mayores a 100K en tamao $find /home name *.jpg size 100k 128 el parmetro exec Uno de las parmetros ms utiles para find es exec. Este le permite a find ejecutar un comando sobre cualquier archivo encontrado. El nombre del archivo se pasa al comando utilizando el string {}, y al fin del comando se coloca un \. Buscar el string tcp en todos los archivos en /usr/include/netinet utilizando grep $find /usr/include/netinet name *.h exec grp tcp {} \; -print 33 129 dd copiar y convertir un archivo Lee el contenido de un archivo y lo enva a otro archivo. Su diferencia con cp es que realiza conversiones al vuelo (on-the-fly) y acepta datos desde una cinta o floppy u otro dispositivo. Cuando dd accede a un dispositivo, no asume nada acerca del filesystem, y coloca los datos en un formato crudo (raw format) dd se utiliza para generar imagenes de discos an cuando el disco tenga un formato diferente. Para generar una imagen de un floppy (especialmente til cuando tiene formatos diferentes) $dd if=/dev/fd0 of=/tmp/floppy_image donde if infile y of outfile 130 gzip gzip no comparte formato de archivo ni con PKzip o WinZip; sin embargo, WinZip puede descomprimir archivos comprimidos con gzip. compress era el comando para comprimir archivos tradicionalmente en UNIX, pero alguin lo patent, de modo tal que el GLP, no pudo aplicarse a l. Para reemplazarlo se cre el gzip, que resulto con un algoritmo de comprensin mejor que el compress. Permite descomprimir archivos comprimidos con compress 131 gzip Generalmente los archivos comprimidos con gzip tienen una extensin .gz, mientras que los comprimidos con compress .z gzip lo comprime sobre s mismo al archivo Para comprimir un archivo $gzip miarchivo Para descomprimirlo $gzip d miarchivo.gz Para comprimir varios archivos utilizando la mejor comprensin $gzip 9 *.html 132 tar El tar combina mltiples archivos en uno slo. Permite seleccionar que herramienta de comprensin se va a utilizar Permite leer y escribir en dispositivos tal como lo hace dd. Es un buena herramienta para realizar backups en cintas. 34 133 tape archiver $ tar cf apache.tar /usr/src/apache crea (-c) un archivo apache.tar (-f ) conteniendo todos los archivos de /usr/src/apache Crear un archivo llamado apache.tar con todos los archivos de /usr/src/apache, pero mostrando lo que sucede mientras se realiza $tar cvf apache.tar /usr/src/apache 134 tar Crear un archivo comprimido con gzip llamndolo apache.tar.gz que contenga todos los archivos de /usr/src/apache, y que muestre lo que realiza mientras se ejecuta $tar cvzf apache.tar.gz /usr/src/apache la opcin z es para que utilize el gzip como programa para comprimir el archivo. Para crear un archivo en un floppy $tar cvzf /dev/fd0 /usr/src/apache Para recuperar la informacin guardada en un diskette $tar xvzf /dev/fd0 desde ya lo recupera donde uno est parado en la estructura de directorios. 135 which Busca en el path completo para encontrar el archivo especificado en la lnea de comando. Si el archivo se encuentra, muestra el path del mismo $which ls El which busca slo en el path, mientras que el find lo hace desde donde se le indica El which por el motivo anterior es ms rpido, aunque ms limitado 136 whereis Busca en el path del usuario y muestra el nombre del archivo y su path absoluto $ whereis grep 35 137 sync Como se dispone de una cache de disco para mejorar la eficiencia, implica que no siempre lo que se mando a escribir a disco se realiz Para planificar que la cache de disco escribe sobre el disco se utiliza el comando sync Si sync detecta que la escritura de la cache ya se planific, el kernel de inmediato baja la informacin a disco. Para asegurarse que la cache de disco sea flusheada $sync; sync 138 uname En el caso en que uno estuviera conectado remotamente a diversos servidores, puede ocurrir que no sepa en que servidor est (algo parecido a los directorios) Tambin es til para los scripts shell, ya que se puede variar el path de acuerdo al servidor todo lo anterior -a versin del sistema operativo -v nombre del sistema operativo -s muestra el nmero de release del SO -r muestra el nombre del hostname -n muestra el tipo de hardware de la mquina (i686 para el Pentium Pro) -m Descripcin Opcin 139 uname Para obtener el nombre del sistema operativo y release del mismo $uname s r La opcin s parece no tener sentido, pero es muy til cuando hay mezcla de sistemas operativos trabajando en las workstations, en una workstation SGI devuelve IRIX, mientras que en un SUN devuelve SunOS. Es muy til en los scripts que deben trabajar en diferentes entornos de UNIX 140 su Una vez que uno se logueo, si desea cambiar de identidad, o sea loguearse como otro usuario no se necesita salir y volver a loguearse, simplemente se cambia de usuario El su sin ningn parmetro intenta conectarse como superusuario. Cuando se le pasa un parmetro ese tiene que ser el identificador de un usuario del sistema. $su pepe $su pepe El del ltimo comando informa que se loguee corriendo el login script que le corresponde a dicho usuario.