Está en la página 1de 24

Comandos LINUX 1 adduser 2 alias 3 apt-get 4 arp 5 awk 6 basename 7 bc 8 bzip2 9 cal 10 cat 11 cd 12 cfdisk 13 chage 14 chattr 15 chgrp

16 chkconfig 17 chmod 18 chown 19 chroot 20 clear 21 cmp 22 crontab 23 curl 24 cut 25 date 26 dd 27 df 28 diff 29 dig 30 dmesg 31 dmidecode 32 dos2unix 33 du 34 echo 35 edquota 36 eject 37 env 38 ethtool 39 exit 40 export 41 expr 42 fc 43 fdisk 44 file 45 find 46 fortune 47 free 48 fsck

Ver useradd. Crea atajos de comandos, lista los alias actuales. Herramienta de actualizacn/instalacin remota de paquetes en sistemas basados en debian. Permite obtener/manipular la lista de direcciones MAC/Ip que el sistema ve. Anlisis y procesamiento de patrones en archivos y listados. Permite eliminar la ruta del nombre de un archivo. Calculadora y lenguaje matemtico, muy potente. Compresor / descompresor de archivos. Despliega un calendario. Muestra el contenido de archivos y concatena archivos. Cambiar de directorio. Herramienta de particionamiento de discos, usada en sistemas debian principalmente. Permite cambiar la informacin (expiracin, caducidad, etc) de la contrasea de un usuario. Cambia atributos extendidos de archivos y directorios Cambia el grupo de un archivo(s) o carpetas(s). Controla/consulta el modo en que los servicios se ejecutan o no al inicio del sistema. Cambia los permisos de un archivo(s) o carpetas(s). Cambia el propietario de un archivo(s) o carpetas(s). Ejecuta comandos de root en un shell restringido a un directorio y sus subdirectorios. Limpia la terminal. Compara dos archivos byte por byte. Administra archivos cron para los usuarios y root. Permite descargar o transferir url's. Remueve secciones (columnas principalmente) de cada lnea de un archivo o archivos. Muestra/establece la fecha y hora actual. Convierte y copia archivos y sistemas de archivos. Muestra el uso de espacio de discos duros o particiones. Busca y muestra diferencias entre archivos. Utilera para consultas a servidores DNS. Muestra los mensajes del arranque del sistema (boot). Lista hardware del equipo directamente del BIOS. (tambin: lshw) Convierte archivos de formato MS-DOS a formato Unix/Linux. Muestra el uso de espacio de archivos y directorios. Imprime una lnea de texto, variables, o contenido a un archivo. Administra el control de cuotas de disco de usuario y grupos. Desmonta y expulsa un medio removible, como cdroms. Ejecuta un programa en un entorno modificado. Permite desplegar o cambiar valores de una tarjeta de red. Sale del shell o terminal actual. Exporta el valor de una variable. Evaluador de expresiones matemticas. Lista, edita y reejecuta comandos previamente ejecutados. Herramienta para particionar discos, comn a casi todas las distros. Determina el tipo de archivo. Bsqueda de archivos, multitud de opciones de bsqueda. Imprime un adagio al azar. Muestra el espacio usado y libre de memoria RAM y Swap. Herramienta para verificar/reparar sistemas de archivos.

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

gawk gedit gpasswd gpg grep groupadd groupdel groupmod groups gzip halt hdparm head help history host hostname hwclock id ifconfig init insmod ipcalc ipcount iptables iptraf iwconfig iwlist jobs kate kill killall last lastb less ln locale locate losetup lpq lpr ls lshw lsmod lsof lspci lsusb man mc

Anlisis y procesamiento de patrones en archivos y listados. (versin gnu) Editor de textos de gnome. Permite la administracin del archivo /etc/group Herramienta de encriptacin y de generacin de certificados de seguridad (opengpg). Busca patrones de cadenas dentro de archivos. Crea un nuevo grupo en el sistema. Elimina un grupo en el sistema. Modifica un grupo en el sistema. Imprime los grupos a los que pertenece un usuario. Comprime/expande archivos. Apaga el equipo. Establece y muestra caractersticas sobre los discos duros. Despliega las primera lneas de un archivo. Ayuda sobre los comandos internos de bash. Muestra el historial de comandos del usuario. Utileria de consulta a sevidores DNS. Despliega el nombre del equipo. Muestra/Establece la fecha/hora del bios o hardware. (Fecha/Hora del sistema con date) Muestra el UID (User ID) y GID (Group ID) del usuario Muestra/Configura las interfaces de red del sistema. Control de inicializacin de un nivel de ejecuccin. Inserta mdulos en el kernel. Realiza clculos simples sobre direcciones IP. Identificacin de rangos de red, clculo de IP's. Herramienta de configuracin del firewall de Linux. Analizador de trfico de red en modo de texto. Configura una tarjeta de red inalmbrica. Obtiene informacin detallada de una tarjeta inalmbrica. Muestra los trabajos del usuario en suspensin o en background. Editor de textos de KDE. Termina procesos, mas correctamente enva seales a procesos. Termina procesos del mismo nombre o conjunto. Muestra informacin de los ltimos usuarios logueados. Muestra informacin de los ltimos intentos fallidos de loguearse. Muestra el contenido de un archivo, permite bsquedas y movimento haca atrs y adelante. Crea enlaces (accesos directos) suaves y duros de archivos y directorios. Informacin especfica sobre las variables de entorno locales. Indexa y busca archivos. Mas seguro utilizar slocate. Define y controla dispositivos del tipo 'loop'. Muestra los documentos para imprimir en la cola de impresin. Aade un documento a la cola de impresin. Lista archivos y directorios. Lista hardware del equipo directamente del BIOS. (tambin: dmidecode) Muestra el estatus de los mdulos en el kernel. Muestra archivos abiertos de un programa en ejecuccin, o de un usuario, proceso, etc. Lista los dispositivos pci del sistema. Lista los dispositivos usb del sistema. Muestra el manual del comando indicado. Manejador de archvivos con soporte de mouse en modo de texto, no todas las distro lo tienen.

98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

mcedit md5sum mkdir mkfs mkpasswd modinfo modprobe more mount mtools mv netstat nice nohup openssl passwd ping pkill pr ps pstree pwconv quota quotacheck quotaoff quotaon rdesktop reboot renice repquota rev rm route rpm runlevel scp screen sed service set sha1sum shred shutdown sort ss ssh 144 startx 145 su 146 sudo

Editor de textos de mc. Comprueba (y genera) archivos con firma de certificacin md5. Crea directorios. Construye un sistema de archivos de Linux. Generador de contraseas. (Paquete del programa 'expect'). Muestra informacin acerca de los mdulos del kernel. Herramienta que aade/remueve mdulos del kernel. Paginador similar a less pero menos funcioanal, ya que sale avanza y no retocede. Monta dispositvos de almacenamiento en particiones indicadas. Conjunto de utilidades para acceder a discos DOS desde Linux. Mueve archivos y directorios. Herramienta de red que muestra conexiones, tablas de ruteo, estadsticas de interfaces, etc. Ejecuta un programa con una prioridad de ejecuccin distinta a la normal. Ejecuta un programa inmune a los hangups y sin salida a una terminal. Control, administracin, generacin de certificados de seguridad. Cambia la contrasea del usuario indicado. Manda un echo_request (solicitud de eco) a un equipo en al red. Manda seales a procesos basado en sus atributos. Fromatea o convierte archivos de texto para imprimirlos. Muestra los procesos del sistema o del usuario o ambos. Muestra los procesos en forma de rbol. Agrega o establece la proteccin shadow el archivo /etc/passwd. Permite ver el uso de cuotas por usuario. Crea, verifica, administra sistemas de cuotas de disco Desactiva el control de cuotas de discos. Activa el control de cuotas de discos para usuarios y grupos. Abre terminales grficas ha?ia equipos Windows. Reinicia el equipo. Cambia la prioridad de un proceso o programa en ejecuccin. Reporte de uso de cuotas de disco. Invierte las lneas de un archivo. Borra o elimina archivos. Muestra/altera la tabla de ruteo IP. Programa para la instalacin/actualizacin/eliminacin de paquetes, distros basadas en redhat. Muestra el nivel de ejecucin actual y anterior del sistema. Copia archivos entre equipos, parte del paquete openssh (protocolo de comunicacin encriptado). Administrador de terminales virtuales. Editor en lnea que filtra y transforma archivos. Ejecuta/detiene servicios en modo manual. Muestra o establece el entorno de variables para el usuario actuual. Comprueba (y genera) archivos con firma de certificacin sha1. Elimina archivos de manera segura e irrecuperable. Apaga o reinicia el equipo. Ordena lneas de archivos y listas Utileria similar a netstat pero ms bsica, listados rpidos de sockets establecidos. Programa de login remoto seguro, programa del paquete openssh (protocolo de comunicacin encriptado). Inicia una sesin X. Cambia del usuario actual al indicado. Permite indicar que usuario ejecuta que comandos de root.

147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186

sync tac tail tar time top touch tput tty umask umount unalias uname uniq up2date uptime urpmi useradd userdel usermod vi vim visudo vmstat vmstat w wall warnquota wc wget whereis which who xhost xkill yes yum zcat zless zmore

Forza bloques en memoria a discos, actualiza el superbloque. Igual que cat, muestra y/o concatena archivos pero al revs. Muestra la parte final de un archivo. Herramienta empaquetadora/compresora de archivos. Devuelve el tiempo en que se ejecut el comando o programa indicado. Muestra los procesos del sistema de manera interactiva y continua. Crea archivos vacios, cambia fechas de acceso y/o modificacin de archivos. Cambia valores o capacidades de la terminal, en base a terminfo. Imprime el nombre de la terminal en la que se esta. Establece una mscara de permisos para cuando se crean directorios y archivos. Desmonta sistemas de archivos. Elimina alias de comandos, creados con el comando alias. Despliega informacin del sistema. Omite o reporta sobre lneas repetidas en un archivo o listado. Herramienta de actualizacin/instalacin remota de paquetes, (usada en redhat, centos). Muestra que tanto tiempo lleva prendido el equipo. Herramienta de actualizacin/instalacin remota de paquetes, distros basadas en rpm (usada en mandriva). Aade usuarios. Elimina usuarios. Modifica informacin de usuarios. Editor visual de pantalla, editor de textos, que encuentras en todas las distros Linux. Igual que el vi pero mejorado. Editor para el archivo de configuracin /etc/sudoers de sudo. Proporciona informacin sobre la memoria virtual. Reporta estadsticas sobre la memoria virtual. Muestra quien esta conectado al sistema y que esta haciendo. Manda un mensaje a todas las terminales. Configura /etc/warnquota.conf como complemento de mensajes para cuotas de disco. Cuenta palabras, lneas, caracteres de un archivo o listado. Descargador de archivos desde Internet, no interactivo. Localiza el binario, fuentes y/o librerias, y documentacin de un comado. Muestra la ruta completa de un comando. Muestra quien esta conectado al sistema. Control de acceso para sesiones X. Mata o termina a un cliente X, es decir, a un programa grfico. Imprime una cadena repetidamente hasta que sea terminado o matado el comando. Herramienta de actualizacin/instalacin remota de paquetes, distros basadas en rpm (usada en fedora, redhat y derivados). Descomprime / muestra archivos comprimidos con gunzip (es idntico a utilizar gunzip -c) Permite mostrar el contenido de archivos comprimidos. Permite mostrar el contenido de archivos comprimidos.

Algunos Comandos Sencillos de LINUX


Para efectuar el cambio o la introduccin de un password o contrasea se utiliza el comando passwd. El proceso a seguir es el siguiente:

passwd
(current) UNIX password: (se teclea la contrasea actual; no aparece en pantalla) New UNIX password: (se teclea la nueva contrasea; no aparece en pantalla) Retype new UNIX password: (se teclea de nuevo la nueva contrasea comprobando que se ha tecleado bien. Si no coincide no se cambia produce el cambio). A continuacin se describen algunos comandos sencillos de que pueden ser tiles para familiarizarse con los comandos del sistema. date Muestra por pantalla el da y la hora. cal 1949 Muestra el calendario del ao 1949. cal 05 1949 Muestra el calendario de mayo de 1949. who Indica qu usuarios tiene el ordenador en ese momento, en qu terminal estn y desde qu hora. whoami Indica cul es la terminal y la sesin en la que se est trabajando. man comando Todos los manuales de Linux estn dentro del propio sistema operativo, y este comando permite acceder a la informacin correspondiente al comando comando. Por ejemplo con man who aparecer por pantalla y de forma formateada por pginas, la explicacin del comando who. Se puede navegar a travs de estas pginas con los cursores del teclado, y presionando q para salir. clear Este comando limpia la consola. Directorio Personal Como se ha visto anteriormente el directorio personal es un directorio con un determinado nombre asignado a un usuario. Los directorios personales habitualmente son subdirectorios de /home (en algunos casos se utiliza mnt, u otro subdirectorio de orden inferior). Generalmente el nombre coincide con el del nombre de usuario, aunque puede no ser as, y varios usuarios pueden estar trabajando en el mismo directorio. Cada usuario de Linux puede crear una estructura en rbol de subdirectorios y archivos tan compleja como desee bajo su directorio personal pero normalmente nunca fuera de l. Listado del contenido de directorios: comando ls Una de las acciones ms habituales a la hora de trabajar es mostrar el contenido de un directorio, como se ha visto existen herramientas grficas con este fin, no obstante el shell incluye un programa con este mismo fin: ls, ls Muestra los nombres de los ficheros y subdirectorios contenidos en el directorio en el que se est. Slo se obtienen los nombres de los ficheros, sin ninguna otra informacin.

ls -a Muestra todos los ficheros incluyendo algunos que ordinariamente estn ocultos para el usuario (aquellos que comienzan por un punto). Se recuerda que el fichero punto . indica el directorio actual y el doble punto .. el directorio padre, que contiene, al actual. ls -l Esta es la opcin de lista larga: muestra toda la informacin de cada fichero incluyendo: protecciones, tamao y fecha de creacin o del ltimo cambio introducido,... ls -c Muestra ordenando por da y hora de creacin. ls -t Muestra ordenando por da y hora de modificacin. ls -r Muestra el directorio y lo ordena en orden inverso. ls subdir Muestra el contenido del subdirectorio subdir. ls -l filename Muestra toda la informacin sobre el fichero. ls --color Muestra el contenido del directorio coloreado. Las opciones anteriores pueden combinarse. Por ejemplo: ls -cr Muestra el directorio ordenando inversamente por fechas. El comando ls admite los caracteres de sustitucin o metacarcteres (*) y (?). El carcter * representa cualquier conjunto o secuencia de caracteres. El carcter ? representa cualquier carcter, pero slo uno. Por ejemplo: ls *.gif Muestra todos los nombres de ficheros que acaben en .gif, por ejemplo dib1.gif, a.gif, etc.. ls file? Muestra todos los ficheros cuyos nombres empiecen por file y tengan un nombre de cinco caracteres, por ejemplo: file1, file2, filea, etc. Creacin de subdirectorios. Comando mkdir El comando mkdir (make directory) permite a cada usuario crear un nuevo subdirectorio: mkdir subdir1 donde subdir es el nombre del directorio que se va a crear. Borrado de subdirectorios. Comando rmdir Este comando borra uno o ms directorios del sistema (remove directory), siempre que estos subdirectorios estn vacos. Por ejemplo: rmdir subdir1 donde subdir es el nombre del directorio que se va a eliminar. Cambio de directorio. Comando cd Este comando permite cambiar de directorio a partir del directorio actual de trabajo. Por ejemplo, cd /home/Pedro En este ejemplo pasamos del directorio actual de trabajo al nuevo directorio

/home/Pedro, que ser desde ahora nuestro nuevo directorio. cd dire Nos traslada al subdirectorio dire (que deber existir como subdirectorio en el directorio actual). cd .. Retrocedemos un nivel en la jerarqua de directorios. Por ejemplo, si estamos en /home/Pedro y usamos este comando, pasaremos al escalafn inmediatamente superior de la jerarqua de directorios, en este caso a /home. Nota: al contrario que en MS-DOS en Linux no existe la forma cd.. sin espacio entre cd y los dos puntos. cd Nos sita nuevamente en el directorio personal del usuario. Situacin actual. Comando pwd El comando pwd (print working directory) visualiza o imprime la ruta del directorio en el que nos encontramos en este momento. Este comando es uno de los pocos que no tiene opciones y se utiliza escribiendo simplemente pwd. Acceso a unidades de disco Linux a diferencia de Windows no utiliza letras ("a:", "c:", "d:", ...) para acceder a las distintas unidades de disco de un ordenador. En Linux para acceder al contenido de una unidad de disco o de un CD-ROM este tiene que haber sido previamente "montado". El montado se realiza mediante el comando mount, con lo que el contenido de la unidad se pone a disposicin del usuario en el directorio de Linux que se elija. Por ejemplo para acceder al CD-ROM se tecleara el siguiente comando: mount -t iso9660 /dev/cdrom /mnt/cdrom. donde -t iso9660 indica el tipo de sistema que usa la unidad de disco para guardar los ficheros (las ms usuales son: iso9660 en el caso de un CD-ROM, vfat en el caso de Windows, y ext2 en el caso de Linux), /dev/cdrom indica el dispositivo que se va a montar. Todos los dispositivos estn representados por un fichero del directorio /dev, por ejemplo en el caso de un disquete ser seguramente /dev/fd0, por ltimo /mnt/cdrom es el directorio en el que se pondr a disposicin del usuario el contenido del CDROM. Para montar disquetes se suele utilizar el directorio /mnt/floppy. De todas formas el usuario siempre puede crear un directorio vaco con el nombre que el elija para montar las unidades de disco que desee donde desee. Cuando el usuario haya dejado de usar ese disco deber "desmontarlo" mediante el comando umount antes de sacar el disquete o el CD-ROM. En este ltimo caso debera escribir: umount /mnt/cdrom Para utilizar el comando mount de la forma anterior hace falta ser administrador o root. Para que un usuario comn pueda utilizar disquetes, CD-ROM, etc. hay que editar el fichero /etc/fstab Por ejemplo para que cualquier usuario pueda acceder a un disquete habr que indicar la siguiente lnea: /dev/fd0 /mnt/floppy vfat user,noauto 0 0

Tambin habr que asegurarse de que el directorio /mnt/floppy sea accesible por todos los usuarios. Una vez seguidos los pasos anteriores cualquier usuario podr "montar" un disquete escribiendo el siguiente comando: mount /mnt/floppy Al igual que antes el usuario deber ejecutar el comando umount /mnt/floppy antes de sacar el disquete. Nota: Existen en la actualidad distribuciones (p. ej. Linux Mandrake) que realizan este proceso de forma automtica por lo que las unidades de disquete y CD-ROM quedan accesibles a todos los usuarios de una forma sencilla, empleando los comandos: mount /mnt/floppy umount /mnt/floppy siempre que /mnt/floppy sea la ruta adecuada. Copia de ficheros. Comando cp Este comando tiene la siguiente forma, cp file1 file2 y hace una copia de file1 y le llama file2. Si file2 no exista, lo crea con los mismos atributos de file1. Si file2 exista antes, su contenido queda destruido y es sustituido por el de file1. El fichero file2 estar en el mismo directorio que file1. Tanto file1 como file2 indican el nombre de un archivo, que puede incluir el la ruta al mismo si alguno de ellos no se encuentra en el directorio actual. Otra posibilidad es: cp file1 file2 namedir && Copia de file1 y file2 en el directorio namedir.

Traslado y cambio de nombre de ficheros. Comando mv Este comando tiene una forma similar al anterior, mv file1 file2 El comando mv realiza la misma funcin que el anterior (cp) pero adems destruye el fichero original. En definitiva traslada el contenido de file1 a file2; a efectos del usuario lo que ha hecho es cambiar el nombre a file1, llamndole file2. De igual forma, mv file1 file2 namedir && traslada uno o ms ficheros (file1, file2,...) al directorio namedir conservndoles el nombre. El comando, && Cambia el nombre del subdirectorio namedir1 por namedir2.

mv namedir1 namedir2

Hay que recalcar que el comando mv sirve as mismo para cambiar el nombre de los ficheros. Enlaces a ficheros. Comando ln En Linux un mismo fichero puede estar repetido con ms de un nombre, ya que con el comando cp se pueden realizar cuantas copias se desee del fichero. Pero, a veces, es ms prctico tener un mismo fichero con varios nombres distintos, y lo que es ms importante,

poder acceder a l desde ms de un directorio. En Linux esto recibe el nombre de enlaces mltiples a un fichero. El ahorro de espacio de disco es importante al poder compartir un fichero ms de un usuario. Estos enlaces son muy prcticos a la hora de utilizar ficheros que pertenecen a directorios distintos. Gracias a los enlaces se puede acceder a muchos ficheros desde un mismo directorio, sin necesidad de copiar en ese directorio todos esos ficheros. La forma de este comando es, ln file1 file2 A partir de este momento el fichero file1 tiene dos nombres: file1 y file2. A diferencia de los comandos cp y mv, este comando toma ms precauciones, ya que advierte previamente si el nombre file2 est ocupado, y en este caso no se ejecuta. ln panacea subdir/panacea Despus de este comando el fichero panacea tendr el mismo nombre, pero a efectos del usuario estar colocado en dos sitios distintos: en el directorio actual y en el subdirectorio subdir. Los ficheros enlazados a otro se borran como los ficheros normales. Si se borra el fichero original permanece su contenido en los ficheros enganchados. Borrado de ficheros. Comando rm Este comando tiene las formas siguientes, rm file1 file2 Este comando elimina uno o ms ficheros de un directorio en el cual tengamos permiso de escritura. Con este comando resulta facilsimo borrar ficheros intiles, y desgraciadamente, tambin los tiles. Por eso es conveniente y casi imprescindible emplear lo opcin -i, de la forma siguiente: rm -i file1 file2 Con esta opcin, Linux pedir confirmacin para borrar cada fichero de la lista, de si realmente se desea su destruccin o no. Se recomienda usar siempre este comando con esta opcin para evitar el borrado de ficheros tiles. Por ejemplo, si se teclea, rm -i superfluo aparecer en pantalla el aviso siguiente: remove superfluo? y habr que contestar y (yes) o n (not). En este comando se pueden utilizar los caracteres de sustitucin (* y ?), como por ejemplo, rm fich* que borrara todos los ficheros del directorio actual que comiencen por fich. El comando rm * borrar todos los ficheros del directorio actual, mientras que rm -i * realiza una labor anloga, pero con previa confirmacin.

Caractersticas de un fichero. Comando file Este comando realiza una serie de comprobaciones en un fichero para tratar de clasificarlo. Su formato es: file fich Tras su ejecucin este comando muestra el tipo del fichero e informacin al respecto del mismo. Cambio de modo de los ficheros comandos chmod, chown y chgrp Los permisos de cada fichero se pueden ver con el comando ls -l. Para cambiar los permisos de un fichero se emplea el comando chmod, que tiene el formato siguiente: chmod [quien] oper permiso files quien Indica a quien afecta el permiso que se desea cambiar. Es una combinacin cualquiera de las letras u para el usuario, g para el grupo del usuario, o para los otros usuarios, y a para todos los anteriores. Si no se da el quien, el sistema supone a. oper Indica la operacin que se desea hacer con el permiso. Para dar un permiso se pondr un +, y para quitarlo se pondr un -. permiso Indica el permiso que se quiere dar o quitar. Ser una combinacin cualquiera de las letras anteriores : r,w,x,s. files Nombres de los ficheros cuyos modos de acceso se quieren cambiar. Por ejemplo, para quitar el permiso de lectura a los usuarios de un fichero el comando es: chmod a -r fichero.txt Los permisos de lectura, escritura y ejecucin tienen un significado diferente cuando se aplican a directorios y no a ficheros normales. En el caso de los directorios el permiso r significa la posibilidad de ver el contenido del directorio con el comando ls; el permiso w da la posibilidad de crear y borrar ficheros en ese directorio, y el permiso x autoriza a buscar y utilizar un fichero concreto. Por otra parte, el comando chown se emplea para cambiar de propietario ("change owner") a un determinado conjunto de ficheros. Este comando slo lo puede emplear el actual propietario de los mismos. Los nombres de propietario que admite Linux son los nombres de usuario, que estn almacenados en el fichero /etc/passwd. La forma general del comando chown es la siguiente: chown newowner file1 file2 ... Anlogamente, el grupo al que pertenece un fichero puede ser cambiado con el comando chgrp, que tiene una forma general similar a la de chown, chgrp newgroup file1 file2... Los grupos de usuarios estn almacenados en el fichero /etc/group. Espacio ocupado en el disco Comandos du y df El comando du permite conocer el espacio ocupado en el disco por un determinado directorio y todos los subdirectorios que cuelgan de l. Para usarlo basta simplemente colocarse en el

directorio adecuado y teclear, du, ste comando da el espacio de disco utilizado en bloques. Para obtener la informacin en bytes se debe emplear el comando con la opcin h: du -h El comando df por el contrario informa del espacio usado por las particiones del sistema que se encuentren montadas. Visualizacin sin formato de un fichero. Comando cat Este comando permite visualizar el contenido de uno o ms ficheros de forma no formateada. Tambin permite copiar uno o ms ficheros como apndice de otro ya existente. Algunas formas de utilizar este comando son las siguientes, cat filename Saca por pantalla el contenido del fichero filename. cat file1 file2... Saca por pantalla, secuencialmente y segn el orden especificado, el contenido de los ficheros indicados. cat file1 file2 >file3 El contenido de los ficheros file1 y file2 es almacenado en file3. cat file1 file2 >>file3 El contenido de file1 y file2 es aadido al final de file3. cat >file1 Acepta lo que se introduce por el teclado y lo almacena en file1 (se crea file1). Para terminar se emplea <ctrl>d Comando head head -7 filename escribe las 7 primeras lneas del fichero filename Visualizacin de ficheros con formato. Comando pr Este comando, a diferencia de cat, imprime por consola el contenido de los ficheros de una manera formateada, por columnas, controlando el tamao de pgina y poniendo cabeceras al comienzo de las mismas. Est muy en relacin con el comando lp de salida por impresora. Las formas ms importantes que admite son las siguientes: pr file Produce una salida estndar de 66 lneas por pgina, con un encabezamiento de 5 lneas (2 en blanco, una de identificacin y otras 2 lneas en blanco). pr -ln file Produce una salida de n lneas por pgina (cuando el tamao de papel de impresora, por ejemplo, tiene un nmero de lneas distinto de 66) pr -p file Hace una pausa para presentar la pgina, hasta que se pulsa <return> para continuar pr -t file Suprime las 5 lneas del encabezamiento y las del final de pgina. pr -wn file Ajusta la anchura de la lnea a n posiciones. pr -d file Lista el fichero con espaciado doble. pr -h `caracteres` file el argumento o cadena de caracteres `caracteres` se convertirn en la cabecera del listado. pr +n file Imprime el fichero a partir de la pgina n. Adems de los ejemplos anteriores, se pueden combinar varias opciones en un mismo comando, como por ejemplo en: pr -dt file la salida de este comando es por la consola, pero puede redireccionarse a otro fichero, por ejemplo, si ejecutamos el comando: pr file1 > file2 se

crea un fichero nuevo llamado file2 que es idntico a file1, pero con formato por pginas y columnas. Visualizacin de ficheros pantalla a pantalla. Comandos more y less Estos comandos permiten visualizar un fichero pantalla a pantalla. El nmero de lneas por pantalla es de 23 lneas de texto y una ltima lnea de mensajes, donde aparecer la palabra more. Cuando se pulsa la barra espaciadora (el espacio en blanco), se visualizar la siguiente pantalla. Para salir de este comando (terminar la visualizacin) se pulsa <ctrl>d o q. Por ejemplo: more file El comando less es muy similar al anterior pero permite el desplazamiento a lo largo del texto empleando las teclas de cursores pudiendo desplazarse hacia arriba o abajo de un fichero. Bsqueda en ficheros. Comandos grep, fgrep y egrep El comando grep localiza una palabra, clave o frase en un conjunto de directorios, indicando en cules de ellos la ha encontrado. Este comando rastrea fichero por fichero, por turno, imprimiendo aquellas lneas que contienen el conjunto de caracteres buscado. Si el conjunto de caracteres a buscar est compuesto por dos o ms palabras separadas por un espacio, se colocar el conjunto de caracteres entre apstrofes ('). Su formato es el siguiente: grep 'conjuntocaracteres' file1 file2 file3 siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y file31 los ficheros donde se debe buscar. Veamos un nuevo ejemplo: grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f Este comando buscar TRIANGULARIZACION MATRIZ entre las lneas de los ficheros matrix.f y scaling.f. Este comando permite seleccionar, entre todas las lneas de uno o ms ficheros, aquellas que contienen un motivo que satisface una expresin regular determinada. grep [-opcion] expresin_regular [referencia...] Las opciones principales son: c lo nico que se hace es escribir el nmero de las lneas que satisfacen la condicin. i no se distinguen maysculas y minsculas. l se escriben los nombres de los ficheros que contienen lneas buscadas. n cada lnea es precedida por su nmero en el fichero. s no se vuelcan los mensajes que indican que un fichero no se puede abrir. v se muestran slo las lneas que no satisfacen el criterio de seleccin. A continuacin se muestra una serie de ejemplos. grep d text lneas que comienzan por d. grep [d] text lneas que no comienzan por d. grep -v C file1 > file2 quita las lneas de file1 que comienzan por C y lo copia en file2.

Comandos tar y gzip Tanto el comando tar como gzip son ampliamente empleados para la difusin de programas y ficheros en Linux. El primero de ellos agrupa varios ficheros en uno solo o "archivo", mientras que el segundo los comprime. En conjunto estos dos programas actan de forma muy similar a programas como Winzip. Para crear un nuevo archivo se emplea: tar cvf nombre_archivo.tar fichero1 fichero2 donde fichero1, fichero2 etc. son los ficheros que se van a aadir al archivo tar. Si se desea extraer los ficheros se emplea tar xpvf nombre_archivo.tar fichero1 Al contrario que tar que agrupa varios ficheros en uno, gzip comprime un nico fichero con lo que la informacin se mantiene pero se reduce el tamao del mismo. El uso de gzip es muy sencillo gzip fichero con lo que se comprime fichero (que es borrado) y se crea un fichero con nombre fichero.gz. Si lo que se desea es descomprimir un fichero se emplea entonces: gzip d fichero.gz recuperando el fichero inicial. Como se ha comentado al principio es tpico emplear tar y gzip de forma consecutiva, para obtener ficheros con extensin tar.gz o tgz que contienen varios ficheros de forma comprimida (similar a un fichero zip). El comando tar incluye la opcin z para estos ficheros de forma que para extraer los ficheros que contiene: tar zxf fichero.tar.gz Comandos de impresin Comando lpr El comando lpr se emplea para imprimir una serie de ficheros. Si se emplea sin argumentos imprime el texto que se introduzca a continuacin en la impresora por defecto. Por el contrario, lpr nombre_fichero imprime en la impresora por defecto el fichero indicado. Redirecciones y tuberas Redirecciones Los comandos de Linux tienen una entrada estndar (nmero 0) y dos salidas estndar (nmero 1 para la salida normal del comando, y nmero 2 para la salida de los mensajes de error que se puedan producir en su ejecucin). Por defecto tanto la entrada como las salidas estndar de los comandos son la propia terminal, a no ser que por la propia naturaleza del comando se den en l los nombres de algunos ficheros que hagan el papel de entrada y de salida. Por ejemplo, en el comando cp file1 file2

file1 es la entrada y file2 es la salida; aqu no intervienen las entradas y salidas estndar. Sin embargo, cuando utilizamos por ejemplo el comando ls (listado de directorio), la salida de este comando se dirige hacia la terminal. Si queremos que la salida de este comando se dirija a un fichero llamado file, podramos escribir, ls >file el (>) es uno de los llamados operadores de redireccin y dirige la salida estndar hacia el fichero indicado a continuacin; si este fichero no existe, se crea en ese momento. Otros operadores de redireccin son el operador (<) que redirige la entrada estndar desde un determinado fichero, y el operador (>>) que redirige la salida estndar hacia otro fichero, pero aadiendo dicha salida al final de ese fichero, sin sobreescribir el contenido original. Por ejemplo, si cada vez que entramos en el sistema ejecutamos el comando, date >>archivo tendremos un fichero llamado archivo que contiene informacin sobre todas las veces que hemos entrado en el sistema. Otro ejemplo, para aadir al fichero file2 al final de file1 y al conjunto llamarle file3, sera cat file1 file2 >file3 o, si quisiramos que el fichero resultante fuera el mismo file1, cat file2 >>file1 Un ejemplo en redireccin a la entrada podra ser el siguiente, mail juan <carta que enva al usuario juan el contenido del fichero carta. Tuberas Siguiendo con los ejemplos anteriores, si quisiramos enviar a juan una lista de nuestros ficheros podramos utilizar los comandos, ls >fichero mail juan <fichero rm fichero Es decir que hemos conectado la salida estndar de ls con la entrada estndar de mail, a travs de un fichero transitorio filelist. Linux permite hacer esta operacin directamente, sin pasar por el fichero de almacenamiento transitorio: esto se hace mediante el concepto de tubera (pipe), que consiste en empalmar la salida estndar de un comando con la entrada estndar de otro. Para el ejemplo anterior esto se hace en la forma, ls | mail juan Con el operador de tubera (|) se pueden empalmar tantos comandos como se desee. Bifurcacin o T (comando tee)

A veces interesa que la salida de un comando, adems de redirigirse a un determinado fichero, se bifurque tambin hacia la terminal, con objeto de observar inmediatamente el resultado. Esto se consigue con el operador tee, que podra emplearse de la siguiente forma: ls | tee file la salida de ls se bifurca hacia la terminal y hacia file. Si quisiramos que la salida de este comando se aadiera al final de file, deberamos utilizar la opcin -a, ls | tee -a file Redireccin de la salida de errores Los mensajes de error se dirigen a la salida nmero 2, que normalmente es tambin la terminal. A veces, por ejemplo cuando se quiere ejecutar un comando en background (ejecutar un comando en background es lanzar su ejecucin y recuperar el control de la terminal sin esperar a que termine, lo cual se hace aadiendo el carcter & al final del comando), interesa evitar que los mensajes de error aparezcan en la pantalla, pues en ella habremos empezado a hacer otra cosa. Supongamos por ejemplo que queremos compilar y montar en background un conjunto de ficheros, dirigiendo los listados a un fichero llamado listados, y los mensajes de error a un fichero llamado errores. Lo haramos en la forma, gcc prueba.c 2>errores con lo cual la salida 2 (errores) se redirige hacia el fichero errores. Para redirigir la salida estndar de errores al mismo fichero que la salida estndar se emplea un comando como: program <datos.d >resultados.r 2>&1 Ejecucin de programas Ejecucin en el fondo & , kill, nice y nohup Para ejecutar un programa en el fondo, es decir, recuperando inmediatamente el control del terminal, basta aadir el carcter & al final del comando de ejecucin: program <datos.d >resultados.r & inmediatamente aparecer en el terminal, debajo de esta lnea, un nmero que es el nmero de proceso de la ejecucin de este programa. Para detener definitivamente dicha ejecucin (no se puede detener temporalmente) se puede utilizar el comando kill: kill nmerodeproceso La ejecucin de un programa en el fondo no impide que aparezcan en la pantalla los mensajes de error que se produzcan (a no ser que se haya redirigido la salida de errores), y que el programa se pare cuando se salga del sistema. Para que el programa contine ejecutndose an cuando nosotros hayamos terminado la sesin, hay que utilizar el comando nohup: nohup program Si no se utilizan redirecciones todas las salidas del programa se dirigen a un fichero llamado nohup.out. Cuando se utiliza nohup el ordenador entiende que el usuario no tiene prisa y automticamente disminuye la prioridad de la ejecucin. Existe un comando, llamado nice, que permite realizar ejecuciones con baja prioridad, es decir se le indica al ordenador que puede

ejecutar de forma ms lenta esta aplicacin si existen otras que sean ms urgentes. Se utiliza en las formas, nice program & nice nohup program & Para darle al programa la prioridad mnima habra que utilizar el comando, nice -19 program & donde el -19 indica la mnima prioridad. Comando time El comando time, precediendo a cualquier otro comando, suministra informacin acerca del tiempo total empleado en la ejecucin, del tiempo de CPU utilizado por el programa del usuario, y del tiempo de CPU consumido en utilizar recursos del sistema. Por ejemplo para saber el tiempo utilizado en la compilacin y montaje del programa prueba.c utilizaramos el comando, time gcc prueba.c Comando top Linux incluye una aplicacin llamada top cuya finalidad es manipular la ejecucin de programas de una forma interactiva. Esta aplicacin muestra una lista de los procesos que se estn ejecutando. Los principales comandos de top son: u que muestra los procesos que pertenecen a un determinado usuario, k equivalente al comando kill para matar un proceso y h que muestra la ayuda del programa. Programas de comandos El sistema operativo Linux, al igual que otros sistemas operativos, permite realizar programas de comandos, esto es, programas constituidos por distintos comandos que podran teclearse interactivamente uno por uno en una terminal, pero que es muchas veces ms cmodo agruparlos en un fichero, y ejecutarlos con una sola instruccin posteriormente. Los comandos de Linux pueden ser externos - que implican la creacin de un nuevo proceso, cuyo cdigo est en /bin o /usr/bin- e internos - cuyo cdigo est incluido en el del intrprete shell que los ejecuta. Una cierta primera forma de agrupar comandos la ofrece Linux por medio del carcter ;. Por ejemplo, tecleando el comando, date; ls; who el ordenador ejecutar sucesivamente los comandos date, ls y who. Tambin podra crearse con un editor de textos un fichero llamado comandos que contuviera las lneas siguientes: date ls who Para ejecutar este fichero de comandos puede teclearse,

sh comandos o bien convertir el fichero comandos en directamente ejecutable por medio del comando chmod en la forma, chmod a+x comandos de modo que el programa de comandos comandos puede ejecutarse simplemente tecleando su nombre, comandos Los comandos sh comandos y comandos no son enteramente equivalentes. As, el primero de ellos exige que el fichero comandos est en el directorio de trabajo, mientras que el segundo slo exige que el fichero comandos est en uno de los directorios de bsqueda de comandos especificados en la variable PATH. Cuando se ejecuta un fichero de comandos Linux abre lo que se llama un nuevo shell, es decir un nuevo entorno para la ejecucin de los comandos. Para que las variables del caparazn original conserven su valor en el nuevo caparazn es necesario prepararlas con la sentencia export antes de abrir el nuevo shell. Por ejemplo, como consecuencia de lo que se acaba de decir, si en el interior de un fichero de comandos se cambia de directorio con el comando cd, al acabar la ejecucin de dicho fichero volveremos automticamente al directorio inicial. Introduccin de comentarios Para introducir lneas de comentarios en un programa de comandos basta comenzar dichas lneas con el carcter #. Hay que tomar la precaucin de que este carcter no sea el primer carcter del fichero de comandos, porque entonces el ordenador interpreta que el programa est escrito en C-shell (una variante especial de UNIX desarrollada en la Universidad de Berkeley) y el resultado es imprevisible. Puede ser buena prctica comenzar todos los ficheros de comandos con una lnea en blanco. Variables del shell UNIX permite definir variables en un fichero de comandos en la forma, USER=/mnt/mecan/juanto TERM=hp2392 ... Es una prctica habitual el utilizar nombres con letras maysculas para las variables del caparazn. Para recuperar el valor de una variable hay que precederla con el carcter . Por ejemplo, utilizando en otra parte del programa TERM, en dicho lugar se sustituira TERM por su valor, esto es, hp2392. El shell del Linux tiene definidas para cada usuario unas variables estndar. Para averiguar cules son basta teclear el comando siguiente, set Para definir otras variables propias de cada usuario puede utilizarse el fichero .profile, que es un fichero de comandos propio de cada usuario que se ejecuta automticamente al hacer el login. Para definir variables que contengan espacios en blanco deben encerrarse entre caracteres (') o ("), como por ejemplo, FECHA="31 de Diciembre de 1986"

ms adelante se ver la diferencia entre el carcter (') y el carcter ("). Comando echo El comando echo imprime un determinado texto en la terminal. Un ejemplo de utilizacin de dicho comando puede ser el siguiente: echo Me gusta el sistema operativo UNIX El comando echo es de gran utilidad en los ficheros de comandos. Cuando el texto que se desea escribir en la terminal contiene alguno de los caracteres especiales de UNIX ( * ? [ ] > >> < & ; \ ' ) hay que tomar precauciones especiales desconectando su significado. Una forma de hacerlo es precediendo dicho carcter con la barra invertida (\). As, para escribir mediante el comando echo tres asteriscos, utilizaramos echo \*\*\* si no utilizramos la barra invertida, el asterisco se interpretara como un carcter de sustitucin y se imprimira el nombre de todos los ficheros del directorio. Otra forma de anular el significado de los caracteres especiales es encerrando el texto a escribir mediante comillas (") o entre apstrofos normales ('). Los apstrofos (') anulan el significado de todos los caracteres comprendidos entre ellos. As pues, el triple asterisco lo podramos escribir con el comando, echo '***' Las comillas (") son menos restrictivas, y anulan el significado de todos los caracteres excepto los tres siguientes: ( ` \). Esto es muy importante porque si VAR es el nombre de una variable, y VAR aparece en un comando echo entre apstrofos se escribe VAR, mientras que si aparece entre comillas se escribe el valor de la variable, al cumplir el carcter su cometido. El carcter (\) tiene otros significados, adems del ya visto de anular el significado especial de otros caracteres. As, sirve como indicador de que un comando contina en la lnea siguiente. Cuando se utiliza en la definicin interactiva de un comando, en la lnea siguiente aparece el prompt secundario (>), que indica que se debe seguir tecleando el comando. Cuando en un comando echo aparecen los caracteres (\c) y (\n) quiere decir, respectivamente, que no se cambie de lnea y que se salte de lnea, al escribir por la pantalla. El carcter apstrofo inverso o acento grave (`) tiene tambin un significado especial. Cuando en un comando echo aparece el nombre de otro comando encerrado entre apstrofos inversos (por ejemplo, `date`, `who`, `ls`, ...), el nombre de dicho comando se sustituye por el resultado que genera al ejecutarse interactivamente. Un ejemplo podra ser el siguiente: echo "Los usuarios del sistema son \n\n `who`" El lector puede hacer la prueba y observar el resultado correspondiente. Parmetros de los ficheros de comandos A los ficheros de comandos pueden pasrseles como parmetros un conjunto de una o ms variables. Dentro del fichero de comandos estas variables o parmetros se conocen con los nombres 0, 1, 2, ..., 9. La variable 0 representa el propio nombre del fichero de comandos, y 1, 2, ..., 9 son los nombres de los parmetros propiamente dichos. Vamos a comenzar viendo un ejemplo muy sencillo de programa de comandos al que se le pasa slo una variable o parmetro. El comando de borrar de Linux rm no confirma la operacin de borrado si no se le pone la opcin (-i). Esto es peligroso porque uno fcilmente puede olvidarse de teclear dicha opcin y borrar lo que no quera borrar. Vamos a crear un

fichero de comandos llamado del que incluya dicha opcin. Dicho fichero podra estar formado por, echo "Quiere borrar el fichero 1?" rm -i 1 Despus de darle a este fichero el correspondiente permiso de ejecucin con el comando chmod, podramos borrar con confirmacin el fichero file tecleando, del file. Dentro del fichero de comandos, 0 valdra del y 1 valdra file. Un programa de comandos ms complicado y que utiliza dos parmetros podra ser el contenido en el fichero cambio, que intercambia el nombre de dos ficheros: mv 1 ficheropufo mv 2 1 mv ficheropufo 2 Este fichero se ejecutara en la forma, cambio file1 file2 En este ejemplo 0 es cambio, 1 es file1 y 2 es file2. En realidad a un fichero de comandos se le pueden pasar todos los argumentos que se deseen, aunque slo hay nombre especfico para los nueve primeros (ms el propio nombre del comando). El nmero de argumentos que se le pasa est contenido en la variable #. La variable * contiene el conjunto de todos los parmetros. Un nuevo ejemplo puede aclarar algo ms este punto. Si el programa del que hemos hecho previamente lo hubiramos utilizado en la forma: del *.f tericamente debera de borrar, con confirmacin, todos los ficheros Fortran del directorio. En la prctica no es as, porque (*.f) no representa un nico argumento sino muchos argumentos (todos los ficheros Fortran del directorio). Como resultado slo se borra el primer fichero Fortran. Para borrar todos e indicarnos adems cuntos ficheros hay, el fichero del podra estar compuesto por los siguientes comandos: echo "Hay # programas Fortran \n" rm -i * El comando shift hace posible utilizar y distinguir parmetros que estn ms a la derecha del noveno lugar en la llamada al programa de comandos. En efecto, cuando se llama al comando shift, 2 se convierte en 1, 3 en 2, etc, y lo que hubiera sido 10 en 9, con lo cual ya se puede referenciar. El comando shift deja inalterado 0 y puede utilizarse tantas veces como se desee. Otras posibilidades de los ficheros de comandos Los ficheros de comandos tienen muchas ms posibilidades que las que se han apuntado en esta Introduccin: pueden leer variables, preguntar por la existencia de un fichero y por si es ejecutable o no, y admiten construcciones lgicas del tipo IF, DO, DO WHILE, etc. Para utilizar estas posibilidades acudir al manual correspondiente.

Compilando programas en Linux Linux como cualquier sistema Unix que se precie incluye un compilador de C y C++. Esto no implica que se est limitado a estos dos lenguajes de programacin. Por el contrario existen una gran cantidad de compiladores gratuitos para los lenguajes ms importantes. El compilador de C/C++ de Linux es un compilador de lnea de comandos, esto es, no dispone de ninguna interfaz grfica que facilite la programacin y compilacin del cdigo. Existen eso s editores de texto capaces de mostrar la sintaxis del cdigo resaltada como kwrite, aunque la compilacin hay que realizarla manualmente a travs de una consola o terminal. Compilacin y linkado El primer paso para crear un programa, por ejemplo en C++, es crear el fichero de cdigo fuente, y guardarlo en un fichero de texto por ejemplo e1.cpp. Tras esto hay que compilar el programa. Para esto se emplear el comando g++, de la siguiente forma: g++ e1.cpp Con lo que conseguiremos que se compile el programa. Con este comando hemos conseguido que se cree un programa llamado a.out en el directorio de trabajo. Para ejecutarlo emplearemos ./a.out Normalmente no desearemos que el programa se llame a.out sino que tenga un nombre ms significativo, como ejemplo_1, para conseguirlo emplearemos: g++ -o ejemplo_1 e1.cpp Si queremos ejecutar el programa emplearemos ./ejemplo_1. Si el programa escrito realiza emplea alguna funcin que no se encuentre en la librera estndar hay que incluirla en la orden de compilacin, por ejemplo: g++ -o ejemplo_2 e2.cpp -lname Donde name es el nombre de la librera. Por defecto estas se guardan en un fichero cuyo nombre es libname.so, cuya localizacin suele ser /usr/lib. Si el programa no est escrito en C++ sino en C las opciones de compilacin son las mismas salvo que en lugar del programa g++ se emplear el comando gcc. gcc o ejemplo_3 e3.c Comando make Este comando sirve para organizar la compilacin y el enlazado de programas complicados que dependen de muchos mdulos y libreras diferentes. Cuando se ejecuta este comando, se construye un nuevo ejecutable volviendo a compilar slo aquellos ficheros fuente que son ms recientes que el los ficheros compilados correspondientes, teniendo en cuenta para ello las fechas de ltima modificacin de cada fichero. Este comando se basa en un fichero ASCII (llamado por defecto makefile) que contiene una relacin de dependencias entre los distintos mdulos, as como las acciones que hay que realizar para poner a punto cada mdulo, es decir para pasar de un fuente a un objeto, por ejemplo. Este comando tiene la siguiente forma general:

make [f makefilename] [arg_opt] [exe_name] El fichero makefile (con ste o con otro nombre invocado por medio de la opcin f) contiene cuatro tipos de lneas diferentes: Lneas de comentario, que comienzan por el carcter (#). Si en una lnea cualquiera aparece el carcter (#), se ignora todo lo que aparece a continuacin de dicho carcter en dicha lnea. Lneas de definicin de macros. Tienen la forma general, IDENTIFICADOR = cadena_de_caracteres Si en alguna otra lnea aparece (IDENTIFICADOR), dicha ocurrencia se sustituye por cadena_de_caracteres. No es necesario que el nombre del identificador est escrito con maysculas, pero es una costumbre bastante extendida el hacerlo as. Mediante el uso de macros se pueden representar brevemente pathnames o listas de nombres de ficheros largos. Si el identificador tiene una sola letra, no hace falta poner los parntesis. El comando make tiene una serie de macros definidas por defecto que se pueden listar con el comando make p. Lneas describiendo las relaciones de dependencia. Tienen la forma, file.o fila.o ... : file1.cpp file2.cpp ... La lista de ficheros que estn a la izquierda del carcter (:) dependen de los ficheros que estn a la derecha. En estas lneas se realiza la sustitucin habitual de los caracteres (?*[]) Lneas de comandos shell, comenzando siempre por un tabulador. Estas lneas representan las acciones que hay que realizar para actualizar los ficheros dependientes, segn las relaciones de dependencia descritas en la lnea anterior. En una misma lnea de comandos puede haber varios comandos separados por un carcter (;), y de este modo se ejecutan en un mismo proceso; si hay varias lneas de comandos, cada lnea se ejecuta en un proceso diferente. Estos comandos shell (compilaciones, etc.) se ejecutan o no segn las fechas de los ficheros correspondientes. Hay tambin una lista de dependencias implcitas y de macrodefiniciones standard que se pueden obtener con el comando make -p (la salida de este comando puede tener varios cientos de lneas). A continuacin se presentan algunos ejemplos de ficheros makefile. A continuacin se muestran una serie de ejemplos # Esto es un ejemplo de fichero makefile # Definiciones de macros ma = ma27ad.o ma27bd.o ma27cd.o TEST: test.o (ma) xlf o TEST O (ma) test.o: test.f xlf c O test.f ma27ad.o: ma27ad.f xlf c O ma27ad.f

ma27bd.o: ma27bd.f xlf c O ma27bd.f ma27cd.o: ma27cd.f xlf c O ma27cd.f Hay informaciones que no es necesario dar por que se suponen por defecto. Por ejemplo, si el fichero objeto (.o) y el fichero C (.c) o C++ (.cpp) tienen el mismo sufijo, no hace falta definir esas relaciones de dependencia, que por otra parte son triviales. Bsqueda avanzada en ficheros. Expresiones regulares A veces se desea encontrar las lneas de un fichero que contienen una palabras o palabras determinadas. Cuando el texto que se desea encontrar es nico, lo que hay que hacer es ponerlo tal cual en la seccin del comando que define la bsqueda, por ejemplo grep "PATATAS" Lista_de_la_compra.txt Sin embargo, en otras ocasiones el texto que se desea buscar no es nico, es decir, no est unvocamente determinado como en el ejemplo anterior, sino que debe cumplir unas ciertas condiciones, como la de estar escrito con maysculas, comenzar por determinado carcter, estar a principio o final de lnea, etc. Este problema se puede resolver en muchos comandos de Linux por medio de las expresiones regulares que se van a presentar a continuacin. Las expresiones_regulares son una forma de describir patrones para la bsqueda de unas determinadas lneas dentro de uno o ms ficheros ASCII. Se trata pues de encontrar las lneas cuyo contenido cumple ciertas condiciones, que se definen en la expresin_regular. Caracteres especiales En una expresin_regular se pueden utilizar algunos caracteres que tienen un significado especial. Son los siguientes: [ comienzo de la definicin de un conjunto de caracteres . un carcter cualquiera, excepto el <eol> * un conjunto de caracteres cualesquiera, excepto el primer carcter de una expresin o inmediatamente despus de la secuencia \( ] terminacin de la definicin de un conjunto de caracteres - sirve para definir el conjunto de caracteres que van del que le precede al que le sigue. Si va detrs del [ o delante del ], no es especial comienzo de lnea, si est al comienzo de la expresin conjunto complementario (el que no cumple la condicin), si est justo despus del [ que abre la definicin de un conjunto fin de lnea, cuando est al final de una expresin.

\ quita el significado especial a un carcter, excepto en la definicin de un conjunto de caracteres Expresiones regulares de un solo carcter Se trata de buscar palabras o conjuntos de un solo carcter, que cumple ciertas condiciones. A continuacin se presentan algunos ejemplos: \* representa el carcter * . cualquier carcter, excepto el <eol> [a-f] un carcter cualquiera entre la a y la f [A-Z] cualquier letra mayscula [a-d] cualquier carcter que no sea una letra entre la a y la d [:clase:] donde clase puede ser: digit (cifra del 0 al 9), xdigit (cifra hexadecimal), alpha (letra cualquiera), upper (letra mayscula), lower (letra minscula), alnum (letra o dgito cualquiera), space (un espacio en blanco), cntrl (carcter de control), punct (un carcter de puntuacin) y print (carcter imprimible). Expresiones regulares generales Se pueden formar de acuerdo con las siguientes reglas: - una expresin regular de un slo carcter [a-z] cualquier letra minscula - una expresin regular de un slo carcter, seguida del carcter *, representando entonces todas las palabras de longitud positiva o nula que se pueden construir con los caracteres aceptados por la una expresiones regulares de un slo carcter [a-z]* cualquier palabra escrita con minsculas - concatenando (poniendo una a continuacin de la otra) dos expresiones regulares construidas previamente [a-z][A-Z] cualquier palabra de dos letras, de las cuales la primera es minscula y la segunda mayscula - Una expresin_regular definida en la forma \(expresiones regulares\) representa la propia expresiones regulares (es decir, definida ella sola), pero define una forma de referirse luego a esa expresiones regulares. En efecto las expresiones regulares definidas de esta forma quedan afectadas por un nmero del 1 al 9, y es posible luego hacer referencia a una expresiones regulares por medio del nmero que le corresponde, en la forma \nmero. Si \nmero va seguido de un *, esa subexpresin puede repetirse un nmero cualquiera de veces. \(.*\)\1\1 Al comienzo de la lnea, un campo formado por un carcter cualquiera que se repite las veces que sea, volviendo a aparecer dos veces mas antes de que se acabe la lnea. Esta expresin detectara las lneas que contienen palabras (o conjuntos de palabras) triples. - una expresiones regulares de un slo carcter seguida de \(entero\) representa entero apariciones consecutivas de alguno de los caracteres aceptados por la expresiones regulares

de un slo carcter. Si va seguida de \(entero,\) representa un nmero mnimo de entero apariciones consecutivas. Si va seguida de \(entero1, entero2\) representa un mnimo de entero1 y un mximo de entero2 apariciones consecutivas. Los nmeros enteros deben estar comprendidos entre 0 y 255. - toda expresin que comienza con indica que los caracteres buscados deben estar a comienzo de la lnea [a-z]* selecciona las lneas que slo contienen letras minsculas - toda expresin que termina con indica que los caracteres buscados deben estar a final de la lnea [a-z]\{3\}[a-z]\{3\} selecciona las lneas que comienzan con tres minsculas, terminan con tres caracteres cualesquiera pero que no son minsculas, y no tiene ningn otro carcter entre medio.

También podría gustarte