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 Shell. i Linux se ha arrancado en modo texto el sistema arranca de forma directa el shell y queda a la espera de introduccin de nuevos comandos. i se ha arrancado en modo grfico se puede acceder al shell de dos formas! e puede acceder al shell del sistema presionando alguna de las siguientes combinaciones de teclas! <ctrl>+<alt>+<F1> <ctrl>+<alt>+<F2> <ctrl>+<alt>+<F3> <ctrl>+<alt>+<F4> <ctrl>+<alt>+<F5> <ctrl>+<alt>+<F> Esto hace que el sistema salga del modo grfico y acceda a alguna de las seis consolas virtuales de Linux, a las cuales tambin se puede acceder cuando se arranca en modo de texto. "ara volver al modo grfico hay que presionar <ctrl>+<alt>+<F!> o <ctrl>+<alt>+<F"# $a segunda forma es ms cmoda y menos radical permitiendo acceder al shell desde el mismo entorno grfico. "ara esto hay que abrir un programa llamado terminal o consola, por ejemplo! #console %en el entorno $%&'( xter)( *no)e+ter)inal %en ,N-.&&, etc. Introduccin Existen una serie de nociones bsicas que hay que tener en cuenta a la hora de introducir los comandos. En primer lugar citaremos las siguientes! $os comandos hay que teclearlos exactamente. $as letras may'sculas y min'sculas se consideran como diferentes. En su forma ms habitual %los shells de (ourne o de )orn&, el sistema operativo utili*a un signo de / como 0ro)0t para indicar que est preparado para aceptar comandos, aunque este carcter puede ser fcilmente sustituido por otro u otros elegidos por el usuario. En el caso de que el usuario acceda como administrador este signo se sustituye por #. Cuando sea necesario introducir el nombre de un fichero o directorio como argumento a un comando, Linux, permite escribir las primeras letras del mismo y reali*a un autorrellenado al presionar la tecla del tabula1or. i no puede distinguir entre diversos casos rellenar hasta el punto en el que se diferencien. "or ejemplo, supongamos una carpeta con los siguientes directorios! 2ro*ra)as %ocu)entos30ro4ecto %ocu)entos30ri5a1os +l escribir c1 2r<tab> Linux rellenar el resto del contenido hasta escribir c1 2ro*ra)as. "or el contrario al escribir c1 %<tab> escribir c1 %ocu)entos Sintaxis de los comandos $os comandos tienen la siguiente sintaxis! , programa arg- arg. ... argn e observa que, en la //l0nea de comandos11, se introduce el programa seguido de uno o varios argumentos. +s0, el intrprete ejecutar el programa con las opciones que se hayan escrito. Cuando se quiere que el comando sea de varias l0neas, se separa cada l0nea con el carcter barra invertida %2&. +dems, cuando se quiere ejecutar varios comandos en la misma l0nea, los separa con punto y coma %3&. "or ejemplo! , ma4e modules 3 ma4e modules5install En los comandos, tambin se puede utili*ar los comodines! El asterisco %6& es equivalente a uno o ms caracteres en el nombre de un archivo. Ejm! ls 6.c lista todos los archivos con extensin c. El signo de interrogacin %7& es equivalente a un 'nico carcter. Ej.! ls curso.te7 lista el archivo curso.tex completando el 'ltimo carcter. 8n conjunto de caracteres entre corchetes es equivalente a cualquier carcter del conjunto. Ej.! ls curso5linux.t9aeiou:x lista curso5linux.tex seleccionando la e del conjunto. . Alias 8n //alias11 es un nombre alternativo para un comando. +s0, en lugar de escribir el comando propiamente dicho, escribir0amos el alias de dicho comando. 8n alias se puede definir por varios motivos, por ejemplo! ;ar nombres familiares a comandos comunes! alias md<1m4dir1 Crear0a un alias para el comando m4dir, similar al de ;=. ;ar nombres a comandos largos! alias tb*.<1tar >cv >>use>compress>program<b*ip. >f1 Crear0a un alias para el comando tar para que use el compresor b*ip. en lugar de g*ip. "ara no tener que escribir todos los alias siempre que entremos al sistema, escribir0amos dicho alias en el archivo ?.bash5profile Directorios en Linux: (ajo $inux el espacio de archivos que es visible a los usuarios est basado en una estructura de rbol, con la ra0* en la parte superior % ? &. El directorio ms alto, ?, es conocido como directorio ra0*.
?
bin dev etc home lib usr proc root sbin var
"or lo general, la mayor parte del sistema operativo reside en dos sistemas de archivos! el sistema de archivos ra0*, conocido como ?, y el sistema de archivos montado bajo ?usr
El directorio bin contiene programas ejecutables conocidos como binarios. Estos programas son archivos de sistema esenciales. @uchos de los comandos como ls, son en realidad programas que se encuentran en este directorio.
El directorio sbin tambin se utili*a para guardar archivos binarios de sistema. $a mayor0a de los archivos de este directorio se usa para propsitos de la administracin del sistema.
El directorio etc. contiene muchos de los archivos de configuracin del sistema $inux. on los archivos que personali*an $inux. ". ej. el archivo de contraseAas, passBd, se encuentra aqu0.
$as bibliotecas compartidas que emplean los programas cuando se ejecutan estn guardadas en el directorio ?lib. @ediante el uso de estas bibliotecas compartidas, muchos programas pueden utili*ar el mismo cdigo, y estas bibliotecas se pueden guardar en un lugar com'n, reduciendo el tamaAo de los programas al momento de su ejecucin.
El directorio ?dev contiene archivos especiales conocidos como archivos de dispositivo, los cuales se usan para tener acceso a todo tipo de hardBare del sistema. "or ejemplo, el archivo ?dev?mouse se utili*a para la lectura de entrada del mouse.
?proc es un sistema de archivos virtual. e usa para leer de la memoria informacin de procesos.
El directorio ?home es el directorio base para los directorios personales de los usuarios.
El directorio ?var guarda los archivos que tienden a cambiar de tamaAo a lo largo del tiempo. "or lo general, los diversos archivos de bitcora de sistema se encuentran bajo este directorio. El directorio ?var?spool y sus subdirectorios se utili*an para guardar datos que son de manera transitiva, como el correo y las noticias recin recibidas o puestas en cola para transmisin a otro sitio.
El directorio ?usr y sus subdirectorios contienen algunos de los programas ms importantes del sistema. "or lo general, los subdirectorios de ?usr contienen los grandes paquetes de softBare que se instalan.
?usr?bin e guardan ah0 muchos de los programas ejecutables de $inux ?usr?etc +rchivos de configuracin miscelneos seccionC- seccionC. ?usr?include +rchivos de inclusin para el compilador de C. ?usr?lib (ibliotecas para los programas durante el enlace ?usr?man "ginas del manual de $inux ?usr?src +h0 se almacena el cdigo fuente de diferentes programas del sistema ?usr?local Est diseAado para la personali*acin local del sistema. "or lo general, gran parte del softBare local se instala en los subdirectorios de este directorio.
Algunos Co!ndos Sencillos de LINUX "!ss"d "ara efectuar el cambio o la introduccin de un passBord o contraseAa o agregar alguna a una cuenta que no la tenga. "rimero se especifican la nueva y antigua contraseAa, y luego se verifica la nueva. El proceso a seguir es el siguiente! 6current' UNIX 0ass7or1! %se teclea la contraseAa actual3 no aparece en pantalla& Ne7 UNIX 0ass7or1! %se teclea la nueva contraseAa3 no aparece en pantalla& 8et40e ne7 UNIX 0ass7or1! %se teclea de nuevo la nueva contraseAa comprobando que se ha tecleado bien. i no coincide no se cambia produce el cambio&. Changing passBord for Duser# Enter old passBord ! passBord Enter neB passBord!passBord Ee>type neB passBord!passBord d!te @uestra por pantalla el d0a y la hora. c!l 1949 @uestra el calendario del aAo -FGF. cal :5 1949 @uestra el calendario de mayo de -FGF. "#o Hndica qu usuarios tiene el ordenador en ese momento, en qu terminal estn y desde qu hora. "#o!i Hndica cul es la terminal y la sesin en la que se est trabajando. !n co!ndo Iodos los manuales de Linux estn dentro del propio sistema operativo, y este comando permite acceder a la informacin correspondiente al comando co)an1o. "or ejemplo con )an 7ho aparecer por pantalla y de forma formateada por pginas, la explicacin del comando 7ho. e puede navegar a travs de estas pginas con los cursores del teclado, y presionando $ para salir. man ls! muestra la informacin sobre el comando de visuali*acin de la pantalla. man dir! muestra la informacin sobre el comando que contiene los directorios. man m4dir! muestra la informacin sobre la creacin de archivos. man rmdir! muestra la informacin sobre borrar ficheros. man pico! muestra la informacin sobre el uso de este editor de texto. cle!r Este comando limpia la consola. Directorio %erson!l Como se ha visto anteriormente el directorio personal es un directorio con un determinado nombre asignado a un usuario. $os directorios personales habitualmente son subdirectorios de ;ho)e %en algunos casos se utili*a )nt, u otro subdirectorio de orden inferior&. Jeneralmente el nombre coincide con el del no)bre 1e usuario, aunque puede no ser as0, 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. List!do del contenido de directorios: co!ndo ls 8na 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 @uestra los nombres de los ficheros y subdirectorios contenidos en el directorio en el que se est. lo se obtienen los nombres de los ficheros, sin ninguna otra informacin. ls +a @uestra todos los ficheros incluyendo algunos que ordinariamente estn ocultos para el usuario %aquellos que comien*an por un punto&. e 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, tamaAo y fecha de creacin o del 'ltimo cambio introducido,... ls +c @uestra ordenando por d0a y hora de creacin. ls +t @uestra ordenando por d0a y hora de modificacin. ls +r @uestra el directorio y lo ordena en orden inverso. ls sub1ir @uestra el contenido del subdirectorio sub1ir. ls +l <ilena)e @uestra toda la informacin sobre el fichero. ls ++color @uestra el contenido del directorio coloreado. $as opciones anteriores pueden combinarse. "or ejemplo! ls +cr @uestra el directorio ordenando inversamente por fechas. El comando ls admite los caracteres de sustitucin o metacarcteres 66& y 67&. El carcter = representa cualquier conjunto o secuencia de caracteres. El carcter > representa cualquier carcter, pero slo uno. "or ejemplo! ls =?*i< @uestra todos los nombres de ficheros que acaben en ?*if, por ejemplo 1ib1?*i<( a?*if, etc.. ls <ile> @uestra todos los ficheros cuyos nombres empiecen por <ile y tengan un nombre de cinco caracteres, por ejemplo! <ile1( <ile2( <ilea, etc. Cre!cin de su&directorios. Co!ndo 'dir El comando )#1ir 6)a#e 1irectory& permite a cada usuario crear un nuevo subdirectorio! )#1ir sub1ir1 donde sub1ir es el nombre del directorio que se va a crear. m4dir >p, >>parents! crea los directorios padre que faltan para cada argumento. m4dir >>verbose! muestra un mensaje para cada directorio creado. m4dir >help! muestra un mensaje de salida estndar de ayuda Borr!do de su&directorios. Co!ndo rdir Este comando borra uno o ms directorios del sistema 6re)o5e 1irectory&, siempre que estos subdirectorios estn (!c)os. "or ejemplo! r)1ir sub1ir1 donde sub1ir es el nombre del directorio que se va a eliminar. rmdir >p! borra el archivo aunque tenga mas componentes en el. rmdir >>help! muestra un archivo de ayuda. rm >>versin! muestra el tipo de versin con el que esta trabajando la mquina. C!&io de directorio. Co!ndo cd Este comando permite cambiar de directorio a partir del directorio actual de trabajo. "or ejemplo, c1 ;ho)e;2e1ro En este ejemplo pasamos del directorio actual de trabajo al nuevo directorio ;ho)e;2e1ro, que ser desde ahora nuestro nuevo directorio. c1 1ire Kos traslada al subdirectorio 1ire %que deber existir como subdirectorio en el directorio actual&. c1 ?? Eetrocedemos un nivel en la jerarqu0a de directorios. "or ejemplo, si estamos en ;ho)e;2e1ro y usamos este comando, pasaremos al escalafn inmediatamente superior de la jerarqu0a de directorios, en este caso a ;ho)e. Nota! al contrario que en .S+%-S en Linux no existe la forma cd.. sin espacio entre cd y los dos puntos. c1 Kos sit'a nuevamente en el directorio personal del usuario. Situ!cin !ctu!l. Co!ndo *"d El comando 071 60rint 7or#in* 1irectory& visuali*a 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 utili*a escribiendo simplemente 071. Acceso ! unid!des de disco Linux a diferencia de @in1o7s no utili*a letras %La!L, Lc!L, Ld!L, ...& 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 C;>E=@ este tiene que haber sido previamente A)onta1oL. El )onta1o se reali*a mediante el comando ount, con lo que el contenido de la unidad se pone a disposicin del usuario en el directorio de Linux que se elija. "or ejemplo para acceder al C;>E=@ se teclear0a el siguiente comando! )ount +t iso9: ;1e5;c1ro) ;)nt;c1ro)? donde +t iso9: indica el tipo de sistema que usa la unidad de disco para guardar los ficheros %las ms usuales son! iso9: en el caso de un C;>E=@, 5<at en el caso de @in1o7s, y ext2 en el caso de Linux&, ;1e5;c1ro) indica el dispositivo que se va a montar. Iodos los dispositivos estn representados por un fichero del directorio ;1ev, por ejemplo en el caso de un disquete ser seguramente ;1e5;<1:, por 'ltimo ;)nt;c1ro) es el directorio en el que se pondr a disposicin del usuario el contenido del C;>E=@. "ara montar disquetes se suele utili*ar el directorio ;)nt;<lo004. ;e todas formas el usuario siempre puede crear un directorio vac0o 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 A1es)ontarloL mediante el comando u)ount antes de sacar el disquete o el C;>E=@. En este 'ltimo caso deber0a escribir! u)ount ;)nt;c1ro) "ara utili*ar el comando )ount de la forma anterior hace falta ser administrador o root. "ara que un usuario com'n pueda utili*ar disquetes, C;>E=@, etc. hay que editar el fichero ;etc;<stab "or ejemplo para que cualquier usuario pueda acceder a un disquete habr que indicar la siguiente l0nea! ;1e5;<1: ;)nt;<lo004 5<at user(noauto : : Iambin habr que asegurarse de que el directorio ;)nt;<lo004 sea accesible por todos los usuarios. 8na ve* seguidos los pasos anteriores cualquier usuario podr LmontarL un disquete escribiendo el siguiente comando! )ount ;)nt;<lo004 +l igual que antes el usuario deber ejecutar el comando u)ount ;)nt;<lo004 antes de sacar el disquete. Nota! Existen en la actualidad distribuciones %p. ej. Linux .an1ra#e& que reali*an este proceso de forma automtica por lo que las unidades de disquete y C;>E=@ quedan accesibles a todos los usuarios de una forma sencilla, empleando los comandos! )ount ;)nt;<lo004 u)ount ;)nt;<lo004 siempre que ;)nt;<lo004 sea la ruta adecuada. Co*i! de +ic#eros. Co!ndo c* Este comando tiene la siguiente forma, c0 <ile1 <ile2 y hace una copia de <ile1 y le llama <ile.. i <ile2 no exist0a, lo crea con los mismos atributos de <ile-. i <ile2 exist0a antes, su contenido queda destruido y es sustituido por el de <ile-. El fichero <ile2 estar en el mismo directorio que <ile-. Ianto file- como file. 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. =tra posibilidad es! c0 <ile1 <ile2 na)e1ir que hace copias de <ile1 y <ile2 en el directorio na)e1ir. cp >f! borra los ficheros ya existentes en un destino dado. cp >i! pregunta si deseas sobreescribir ficheros. cp >p! preserva los permisos, el propietario y el grupo de los ficheros. cp >r! copia directorios recursivamente y hace lo correcto cuando se encuentran objetos distintos de ficheros. ,r!sl!do - c!&io de no&re de +ic#eros. Co!ndo ( Este comando tiene una forma similar al anterior, )5 <ile1 <ile2 El comando )5 reali*a la misma funcin que el anterior 6cp& pero adems destruye el fichero original. En definitiva traslada el contenido de <ile1 a <ile.3 a efectos del usuario lo que ha hecho es cambiar el nombre a <ile-, llamndole <ile.. ;e igual forma, )5 <ile1 <ile2 na)e1ir traslada uno o ms ficheros 6<ile-, <ile.,...& al directorio na)e1ir conservndoles el nombre. El comando, )5 na)e1ir1 na)e1ir2 cambia el nombre del subdirectorio na)e1ir1 por na)e1ir2. mv >i! con esta variacin al mover o renombrar alg'n fichero el comando pide una confirmacin si ya hay un fichero destino. mv >f! este comando no pide confirmacin. mv >f, >>force!borra todos los ficheros de destino existentes, sin preguntar al usuario. mv >v, >>verbose! con este comando se borra el nombre de cada fichero antes de moverlo. mv >u, >>pdate! no mueve un fichero que tenga un destino con el mismo tiempo de modificacin. May que recalcar que el comando )5 sirve as0 mismo para cambiar el nombre de los ficheros. Enl!ces ! +ic#eros. Co!ndo ln En Linux un mismo fichero puede estar repetido con ms de un nombre, ya que con el comando c0 se pueden reali*ar cuantas copias se desee del fichero. "ero, 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 m'ltiples 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 utili*ar ficheros que pertenecen a directorios distintos. Jracias a los enlaces se puede acceder a muchos ficheros desde un mismo directorio, sin necesidad de copiar en ese directorio todos esos ficheros. $a forma de este comando es, ln <ile1 <ile2 + partir de este momento el fichero <ile1 tiene dos nombres! <ile1 y <ile.. + diferencia de los comandos c0 y )v, este comando toma ms precauciones, ya que advierte previamente si el nombre <ile2 est ocupado, y en este caso no se ejecuta. ln 0anacea sub1ir;0anacea ;espus de este comando el fichero 0anacea tendr el mismo nombre, pero a efectos del usuario estar colocado en dos sitios distintos! en el directorio actual y en el subdirectorio sub1ir. $os ficheros enla*ados a otro se borran como los ficheros normales. i se borra el fichero original permanece su contenido en los ficheros enganchados. Borr!do de +ic#eros. Co!ndo r Este comando tiene las formas siguientes, r) <ile1 <ile2 Este comando elimina uno o ms ficheros de un directorio en el cual tengamos permiso de escritura. Con este comando resulta facil0simo borrar ficheros in'tiles, y desgraciadamente, tambin los 'tiles. "or eso es conveniente y casi imprescindible emplear lo opcin +i, de la forma siguiente! r) +i <ile1 <ile2 Con esta opcin, Linux pedir confirmacin para borrar cada fichero de la lista, de si realmente se desea su destruccin o no. e recomienda usar siempre este comando con esta opcin para evitar el borrado de ficheros 'tiles. "or ejemplo, si se teclea, r) +i su0er<luo aparecer en pantalla el aviso siguiente! re)o5e su0er<luo> y habr que contestar 4 %yes& o n %not&. En este comando se pueden utili*ar los caracteres de sustitucin 6= y 7&, como por ejemplo, r) <ich= que borrar0a todos los ficheros del directorio actual que comiencen por <ich. El comando r) = borrar todos los ficheros del directorio actual, mientras que r) +i = reali*a una labor anloga, pero con previa confirmacin. rm >f! no pide la configuracin. rm >i! pide la configuracin. rm >r! borra los rboles de directorios. rm >v, >>vorse! muestra el nombre del fichero antes de borrarse. rm >>versin! muestra en la salida estndar informacin sobre la versin. C!r!cter)stic!s de un +ic#ero. Co!ndo +ile Este comando reali*a una serie de comprobaciones en un fichero para tratar de clasificarlo. u formato es! <ile <ich Iras su ejecucin este comando muestra el tipo del fichero e informacin al respecto del mismo. C!&io de odo de los +ic#eros co!ndos c#od. c#o"n - c#gr* $os permisos de cada fichero se pueden ver con el comando ls +l. "ara cambiar los permisos de un fichero se emplea el comando ch)od, que tiene el formato siguiente! ch)o1 BCuienD o0er 0er)iso <iles Cuien Hndica a quien afecta el permiso que se desea cambiar. Es una combinacin cualquiera de las letras u para el usuario, * para el grupo del usuario, o para los otros usuarios, y a para todos los anteriores. i no se da el Cuien, el sistema supone a. o0er Hndica la operacin que se desea hacer con el permiso. "ara dar un permiso se pondr un N, y para quitarlo se pondr un >. 0er)iso Hndica el permiso que se quiere dar o quitar. er una combinacin cualquiera de las letras anteriores ! r(7(x(s. <iles Kombres de los ficheros cuyos modos de acceso se quieren cambiar. "or ejemplo, para quitar el permiso de lectura a los usuarios de un fichero el comando es! ch)o1 a +r <ichero?txt chmod N hase que los permisos seAalados se aAadan. chmod > hase que los permisos seleccionados se retiren. chmod < hase que los permisos del fichero sean 'nicos. chmod >r. cambia permisos de directorios. chmod >c, >>changes! muestra un mensaje antes de cambiar el permiso a un fichero. $os 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 ls3 el permiso 7 da la posibilidad de crear y borrar ficheros en ese directorio, y el permiso x autori*a a buscar y utili*ar un fichero concreto. "or otra parte, el comando cho7n se emplea para cambiar de propietario %Lchange o7nerL& a un determinado conjunto de ficheros. Este comando slo lo puede emplear el actual propietario de los mismos. $os nombres de propietario que admite Linux son los nombres de usuario, que estn almacenados en el fichero ;etc;0ass7d. $a forma general del comando cho7n es la siguiente! cho7n ne7o7ner <ile1 <ile2 ??? choBn >r! cambia propietario de directorios. choBn >c, >>changes! muestra los ficheros cuyos propietarios cambian. choBn >f, >>silent, >quiet! no muestra mensajes de error sobre ficheros que no puedan cambiarse. choBn >help! muestra un mensaje de ayuda. +nlogamente, el grupo al que pertenece un fichero puede ser cambiado con el comando ch*rp, que tiene una forma general similar a la de cho7n, ch*r0 ne7*rou0 <ile1 <ile2??? $os grupos de usuarios estn almacenados en el fichero ;etc;*roup. Exit Iermina la sesin de $inux en una terminal
More Exhibe pantallas completas de un archivo de texto. Oiltro de fichero para la visuali*acin en terminales. more >num! especifica el tamaAo de la pantalla. more >p! limpia toda la pantalla. more >u! suprime el subrayado. more >l! deshabilita el avance de pgina. more >s! reducir m'ltiples l0neas en blanco a una. !il
@anda y recibe correos electrnicos. mail >v! cambia al modo verbose. mail >i! ignora los bloques de interrupcin. mail >i! fuer*a al mail correr en un modo interactivo. mail >c! manda copias a la lista de usuarios. mail >f! lee el contenido de los archivos especificados. %ico "ico es un simple editor de texto. ctrl >4 !borra texto seleccionado ctrl >h! muestra la opcin de comandos. ctrl >m! muestra el funcionamiento del ratn. ctrl >c! enable files name completion.
*ine "rograma diseAado para enviar o recibir correos electrnicos. adress! manda correos a una direccin dada. pine >attach file! manda correos a una lista de archivos. pine >file! abre archivos de texto. pine >h! ayuda Es*!cio ocu*!do en el disco Co!ndos du - d+ El comando 1u permite conocer el espacio ocupado en el disco por un determinado directorio y todos los subdirectorios que cuelgan de l. "ara usarlo basta simplemente colocarse en el directorio adecuado y teclear, 1u, ste comando da el espacio de disco utili*ado en bloques. "ara obtener la informacin en bytes se debe emplear el comando con la opcin Eh! 1u +h El comando 1< por el contrario informa del espacio usado por las particiones del sistema que se encuentren montadas. /isu!li0!cin sin +or!to de un +ic#ero. Co!ndo c!t Este comando permite visuali*ar el contenido de uno o ms ficheros de forma no formateada. Iambin permite copiar uno o ms ficheros como apndice de otro ya existente. +lgunas formas de utili*ar este comando son las siguientes, cat <ilena)e aca por pantalla el contenido del fichero <ilena)e. cat <ile1 <ile2??? aca por pantalla, secuencialmente y seg'n el orden especificado, el contenido de los ficheros indicados. cat <ile1 <ile2 ><ile3 El contenido de los ficheros <ile1 y <ile2 es almacenado en <ileP. cat <ile1 <ile2 >><ile3 El contenido de <ile1 y <ile2 es aAadido al final de <ileP. cat ><ile1 +cepta lo que se introduce por el teclado y lo almacena en <ile1 %se crea <ile-&. "ara terminar se emplea <ctrl>1 Co!ndo #e!d hea1 +! <ilena)e escribe las Q primeras l0neas del fichero filename /isu!li0!cin de +ic#eros con +or!to. Co!ndo *r Este comando, a diferencia de cat, imprime por consola el contenido de los ficheros de una manera formateada, por columnas, controlando el tamaAo de pgina y poniendo cabeceras al comien*o de las mismas. Est muy en relacin con el comando l0 de salida por impresora. $as formas ms importantes que admite son las siguientes! 0r <ile "roduce una salida estndar de RR l0neas por pgina, con un encabe*amiento de S l0neas %. en blanco, una de identificacin y otras . l0neas en blanco&. 0r +ln <ile "roduce una salida de n l0neas por pgina %cuando el tamaAo de papel de impresora, por ejemplo, tiene un n'mero de l0neas distinto de RR& 0r +0 <ile Mace una pausa para presentar la pgina, hasta que se pulsa <return> para continuar 0r +t <ile uprime las S l0neas del encabe*amiento y las del final de pgina. 0r +7n <ile +justa la anchura de la l0nea a n posiciones. 0r +1 <ile $ista el fichero con espaciado doble. 0r +h FcaracteresF <ile el argumento o cadena de caracteres FcaracteresF se convertirn en la cabecera del listado. 0r +n <ile Hmprime el fichero a partir de la pgina n. +dems de los ejemplos anteriores, se pueden combinar varias opciones en un mismo comando, como por ejemplo en! 0r +1t <ile la salida de este comando es por la consola, pero puede redireccionarse a otro fichero, por ejemplo, si ejecutamos el comando! 0r <ile1 > <ile2 se crea un fichero nuevo llamado <ile2 que es idntico a <ile-, pero con formato por pginas y columnas. /isu!li0!cin de +ic#eros *!nt!ll! ! *!nt!ll!. Co!ndos ore - less Estos comandos permiten visuali*ar un fichero pantalla a pantalla. El n'mero de l0neas por pantalla es de .P l0neas de texto y una 'ltima l0nea de mensajes, donde aparecer la palabra more. Cuando se pulsa la barra espaciadora %el espacio en blanco&, se visuali*ar la siguiente pantalla. "ara salir de este comando %terminar la visuali*acin& se pulsa <ctrl>1 o q. "or ejemplo! )ore <ile El comando less es muy similar al anterior pero permite el despla*amiento a lo largo del texto empleando las teclas de cursores pudiendo despla*arse hacia arriba o abajo de un fichero. B1s$ued! en +ic#eros. Co!ndos gre*. +gre* - egre* El comando *re0 locali*a 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 l0neas que contienen el conjunto de caracteres buscado. i 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 %1&. u formato es el siguiente! *re0 GconHuntocaracteresG <ile1 <ile2 <ile3 siendo 1conjuntocaracteres1 la secuencia de caracteres a buscar, y <ile-, <ile., y <ile31 los ficheros donde se debe buscar. Teamos un nuevo ejemplo! *re0 GI8IJN,ULJ8IKJLI-N .JI8IKG )atrix?< scalin*?< Este comando buscar I8IJN,ULJ8IKJLI-N .JI8IK entre las l0neas de los ficheros )atrix?< y scalin*?<? Este comando permite seleccionar, entre todas las l0neas de uno o ms ficheros, aquellas que contienen un motivo que satisface una expresin regular determinada. grep [-opcin] expresin_regular [referencia...] $as opciones principales son! c lo 'nico que se hace es escribir el n'mero de las l0neas que satisfacen la condicin. i no se distinguen may'sculas y min'sculas. l se escriben los nombres de los ficheros que contienen l0neas buscadas. n cada l0nea es precedida por su n'mero en el fichero. s no se vuelcan los mensajes que indican que un fichero no se puede abrir. 5 se muestran slo las l0neas que no satisfacen el criterio de seleccin. + continuacin se muestra una serie de ejemplos. U *re0 MN1O text l0neas que comien*an por d. U *re0 MNBN1DO text l0neas que no comien*an por d. U *re0 +5 MNLO <ile1 > <ile2 quita las l0neas de file- que comien*an por C y lo copia en file.. Co!ndos t!r - g0i* Ianto el comando tar como *Pi0 son ampliamente empleados para la difusin de programas y ficheros en Linux. El primero de ellos agrupa varios ficheros en uno solo o Aarchi5oL, mientras que el segundo los comprime. En conjunto estos dos programas act'an de forma muy similar a programas como @inPip. "ara crear un nuevo archivo se emplea! tar Ec5< no)bre3archi5o?tar <ichero1 <ichero2 Q donde fichero-, fichero. etc. son los ficheros que se van a aAadir al archivo tar. i se desea extraer los ficheros se emplea tar Ex05< no)bre3archi5o?tar <ichero1 Q +l contrario que tar que agrupa varios ficheros en uno, *Pi0 comprime un 'nico fichero con lo que la informacin se mantiene pero se reduce el tamaAo del mismo. El uso de *Pi0 es muy sencillo *Pi0 <ichero con lo que se comprime fichero %que es borrado& y se crea un fichero con nombre <ichero?**. i lo que se desea es descomprimir un fichero se emplea entonces! *Pi0 E1 <ichero?*P recuperando el fichero inicial. Como se ha comentado al principio es t0pico emplear tar y *Pi0 de forma consecutiva, para obtener ficheros con extensin tar?*P o t*P que contienen varios ficheros de forma comprimida %similar a un fichero Pip&. El comando tar incluye la opcin * para estos ficheros de forma que para extraer los ficheros que contiene! tar EPx< <ichero?tar?*P Co!ndos de i*resin. Co!ndo l*r El comando l0r se emplea para imprimir una serie de ficheros. i se emplea sin argumentos imprime el texto que se introdu*ca a continuacin en la impresora por defecto. "or el contrario, l0r no)bre3<ichero imprime en la impresora por defecto el fichero indicado. 2EDI2ECCIONES 3 ,4BE25AS 2edirecciones $os comandos de Linux tienen una entrada estndar %n'mero C& y dos salidas estndar %n'mero - para la salida normal del comando, y n'mero . para la salida de los mensajes de error que se puedan producir en su ejecucin&. "or defecto tanto la entrada como las salidas estndar de los comandos son la propia terminal, a no ser que por la propia naturale*a del comando se den en l los nombres de algunos ficheros que hagan el papel de entrada y de salida. "or ejemplo, en el comando c0 <ile1 <ile2 <ile1 es la entrada y <ile2 es la salida3 aqu0 no intervienen las entradas y salidas estndar. in embargo, cuando utili*amos por ejemplo el comando ls %listado de directorio&, la salida de este comando se dirige hacia la terminal. i queremos que la salida de este comando se dirija a un fichero llamado <ile, podr0amos escribir, ls ><ile el 6#& es uno de los llamados operadores de redireccin y dirige la salida estndar hacia el fichero indicado a continuacin3 si este fichero no existe, se crea en ese momento. =tros operadores de redireccin son el operador 6D& que redirige la entrada estndar desde un determinado fichero, y el operador 6>#& que redirige la salida estndar hacia otro fichero, pero aAadiendo dicha salida al final de ese fichero, sin sobrescribir el contenido original. "or ejemplo, si cada ve* que entramos en el sistema ejecutamos el comando, 1ate >>archi5o tendremos un fichero llamado archi5o que contiene informacin sobre todas las veces que hemos entrado en el sistema. =tro ejemplo, para aAadir al fichero <ile2 al final de <ile1 y al conjunto llamarle <ileP, ser0a cat <ile1 <ile2 ><ile3 o, si quisiramos que el fichero resultante fuera el mismo <ile-, cat <ile2 >><ile1 8n ejemplo en redireccin a la entrada podr0a ser el siguiente, )ail Huan <carta que env0a al usuario Huan el contenido del fichero carta. ,u&er)!s iguiendo con los ejemplos anteriores, si quisiramos enviar a Huan una lista de nuestros ficheros podr0amos utili*ar los comandos, ls ><ichero )ail Huan <<ichero r) <ichero Es decir que hemos conectado la salida estndar de ls con la entrada estndar de )ail, a travs de un fichero transitorio <ilelist. Linux permite hacer esta operacin directamente, sin pasar por el fichero de almacenamiento transitorio! esto se hace mediante el concepto de tuber0a %pipe&, que consiste en empalmar la salida estndar de un comando con la entrada estndar de otro. "ara el ejemplo anterior esto se hace en la forma, ls R )ail Huan Con el operador de tuber0a 6V& se pueden empalmar tantos comandos como se desee. Bi+urc!cin o , 6co!ndo tee7 + 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 podr0a emplearse de la siguiente forma! ls R tee <ile la salida de ls se bifurca hacia la terminal y hacia <ile. i quisiramos que la salida de este comando se aAadiera al final de <ile, deber0amos utili*ar la opcin +a, ls R tee +a <ile 2edireccin de l! s!lid! de errores $os mensajes de error se dirigen a la salida n'mero ., que normalmente es tambin la terminal. + veces, por ejemplo cuando se quiere ejecutar un comando en bac4ground %ejecutar un comando en bac4ground es lan*ar su ejecucin y recuperar el control de la terminal sin esperar a que termine, lo cual se hace aAadiendo el carcter S al final del comando&, interesa evitar que los mensajes de error apare*can en la pantalla, pues en ella habremos empe*ado a hacer otra cosa. upongamos por ejemplo que queremos compilar y montar en bac4ground un conjunto de ficheros, dirigiendo los listados a un fichero llamado lista1os, y los mensajes de error a un fichero llamado errores. $o har0amos en la forma, *cc 0rueba?c 2>errores con lo cual la salida . %errores& se redirige hacia el fichero errores. "ara redirigir la salida estndar de errores al mismo fichero que la salida estndar se emplea un comando como! 0ro*ra) <1atos?1 >resulta1os?r 2>S1 E8EC4CI9N DE %2O:2AMAS E;ecucin en el +ondo < . 'ill. nice - no#u* "ara ejecutar un programa en el fondo, es decir, recuperando inmediatamente el control del terminal, basta aAadir el carcter S al final del comando de ejecucin! 0ro*ra) <1atos?1 >resulta1os?r S inmediatamente aparecer en el terminal, debajo de esta l0nea, un n'mero que es el nT)ero 1e 0roceso de la ejecucin de este programa. "ara detener definitivamente dicha ejecucin %no se puede detener temporalmente& se puede utili*ar el comando #ill! #ill nT)ero1e0roceso $a ejecucin de un programa en el fondo no impide que apare*can en la pantalla los mensajes de error que se produ*can %a no ser que se haya redirigido la salida de errores&, y que el programa se pare cuando se salga del sistema. "ara que el programa contin'e ejecutndose a'n cuando nosotros hayamos terminado la sesin, hay que utili*ar el comando nohup! nohu0 0ro*ra) i no se utili*an redirecciones todas las salidas del programa se dirigen a un fichero llamado nohu0?out. Cuando se utili*a nohu0 el ordenador entiende que el usuario no tiene prisa y automticamente disminuye la prioridad de la ejecucin. Existe un comando, llamado nice, que permite reali*ar 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. e utili*a en las formas, nice 0ro*ra) S nice nohu0 0ro*ra) S "ara darle al programa la prioridad m0nima habr0a que utili*ar el comando, nice +19 0ro*ra) S donde el >-F indica la m0nima prioridad. Co!ndo tie El comando ti)e, precediendo a cualquier otro comando, suministra informacin acerca del tiempo total empleado en la ejecucin, del tiempo de C"8 utili*ado por el programa del usuario, y del tiempo de C"8 consumido en utili*ar recursos del sistema. "or ejemplo para saber el tiempo utili*ado en la compilacin y montaje del programa 0rueba?c utili*ar0amos el comando, ti)e *cc 0rueba?c Co!ndo to* Linux incluye una aplicacin llamada to0 cuya finalidad es manipular la ejecucin de programas de una forma interactiva. Esta aplicacin muestra una lista de los procesos que se estn ejecutando. $os principales comandos de top son! u que muestra los procesos que pertenecen a un determinado usuario, 4 equivalente al comando 4ill para matar un proceso y h que muestra la ayuda del programa. %2O:2AMAS DE COMANDOS El sistema operativo Linux, al igual que otros sistemas operativos, permite reali*ar programas de comandos, esto es, programas constituidos por distintos comandos que podr0an 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. $os 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. 8na cierta primera forma de agrupar comandos la ofrece Linux por medio del carcter 3. "or ejemplo, tecleando el comando, 1ateU lsU 7ho el ordenador ejecutar sucesivamente los comandos 1ate, ls y 7ho. Iambin podr0a crearse con un editor de textos un fichero llamado co)an1os que contuviera las l0neas siguientes! 1ate ls 7ho "ara ejecutar este fichero de comandos puede teclearse, sh co)an1os o bien convertir el fichero co)an1os en directamente ejecutable por medio del comando ch)o1 en la forma, ch)o1 a+x co)an1os de modo que el programa de comandos co)an1os puede ejecutarse simplemente tecleando su nombre, co)an1os $os comandos sh co)an1os y co)an1os no son enteramente equivalentes. +s0, el primero de ellos exige que el fichero co)an1os est en el directorio de trabajo, mientras que el segundo slo exige que el fichero co)an1os est en uno de los directorios de b'squeda de comandos especificados en la variable 2JIM. 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. "ara que las variables del capara*n original conserven su valor en el nuevo capara*n es necesario prepararlas con la sentencia ex0ort antes de abrir el nuevo shell. "or 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 coent!rios "ara introducir l0neas de comentarios en un programa de comandos basta comen*ar dichas l0neas con el carcter ,. May 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 L+shell %una variante especial de 8KHW desarrollada en la 8niversidad de (er4eley& y el resultado es imprevisible. "uede ser buena prctica comen*ar todos los ficheros de comandos con una l0nea en blanco. /!ri!&les del s#ell 8KHW permite definir variables en un fichero de comandos en la forma, US&8V;)nt;)ecan;Huanto I&8.Vh02392 ??? Es una prctica habitual el utili*ar nombres con letras may'sculas para las variables del capara*n. "ara recuperar el valor de una variable hay que precederla con el carcter . "or ejemplo, utili*ando en otra parte del programa I&8@, en dicho lugar se sustituir0a I&8. por su valor, esto es, hp.PF.. El shell del Linux tiene definidas para cada usuario unas variables estndar. "ara averiguar cules son basta teclear el comando siguiente, set "ara definir otras variables propias de cada usuario puede utili*arse el fichero ?0ro<ile, que es un fichero de comandos propio de cada usuario que se ejecuta automticamente al hacer el login. "ara definir variables que contengan espacios en blanco deben encerrarse entre caracteres 61& o 6L&, como por ejemplo, F&LWJVA31 1e %icie)bre 1e 19"A ms adelante se ver la diferencia entre el carcter 61& y el carcter 6L&. Co!ndo ec#o El comando echo imprime un determinado texto en la terminal. 8n ejemplo de utili*acin de dicho comando puede ser el siguiente! echo .e *usta el siste)a o0erati5o 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 8KHW % = > B D > >> < S U X G & hay que tomar precauciones especiales desconectando su significado. 8na forma de hacerlo es precediendo dicho carcter con la barra invertida 62&. +s0, para escribir mediante el comando echo tres asteriscos, utili*ar0amos echo X=X=X= si no utili*ramos la barra invertida, el asterisco se interpretar0a como un carcter de sustitucin y se imprimir0a el nombre de todos los ficheros del directorio. =tra forma de anular el significado de los caracteres especiales es encerrando el texto a escribir mediante comillas 6L& o entre apstrofos normales 61&. $os apstrofos 61& anulan el significado de todos los caracteres comprendidos entre ellos. +s0 pues, el triple asterisco lo podr0amos escribir con el comando, echo G===G $as comillas %L& son menos restrictivas, y anulan el significado de todos los caracteres excepto los tres siguientes! % / 2&. Esto es muy importante porque si T+E es el nombre de una variable, y T+E aparece en un comando echo entre apstrofos se escribe T+E, mientras que si aparece entre comillas se escribe el valor de la variable, al cumplir el carcter su cometido. El carcter %2& tiene otros significados, adems del ya visto de anular el significado especial de otros caracteres. +s0, sirve como indicador de que un comando contin'a en la l0nea siguiente. Cuando se utili*a en la definicin interactiva de un comando, en la l0nea siguiente aparece el prompt secundario %#&, que indica que se debe seguir tecleando el comando. Cuando en un comando echo aparecen los caracteres %2c& y %2n& quiere decir, respectivamente, que no se cambie de l0nea y que se salte de l0nea, 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/, /Bho/, /ls/, ...&, el nombre de dicho comando se sustituye por el resultado que genera al ejecutarse interactivamente. 8n ejemplo podr0a ser el siguiente! echo ALos usuarios 1el siste)a son XnXn F7hoFA El lector puede hacer la prueba y observar el resultado correspondiente. %!r=etros de los +ic#eros de co!ndos + los ficheros de comandos pueden pasrseles como parmetros un conjunto de una o ms variables. ;entro del fichero de comandos estas variables o parmetros se conocen con los nombres C, -, ., ..., F. $a variable : representa el propio nombre del fichero de comandos, y -, ., ..., 9 son los nombres de los parmetros propiamente dichos. Tamos a comen*ar 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 r) no confirma la operacin de borrado si no se le pone la opcin 6+i&. Esto es peligroso porque uno fcilmente puede olvidarse de teclear dicha opcin y borrar lo que no quer0a borrar. Tamos a crear un fichero de comandos llamado 1el que incluya dicha opcin. ;icho fichero podr0a estar formado por, echo AYuiere borrar el <ichero 1>A r) +i 1 ;espus de darle a este fichero el correspondiente permiso de ejecucin con el comando ch)od, podr0amos borrar con confirmacin el fichero <ile tecleando, 1el <ile? ;entro del fichero de comandos, : valdr0a 1el y 1 valdr0a <ile. 8n programa de comandos ms complicado y que utili*a dos parmetros podr0a ser el contenido en el fichero ca)bio, que intercambia el nombre de dos ficheros! )5 1 <ichero0u<o )5 2 1 )5 <ichero0u<o 2 Este fichero se ejecutar0a en la forma, ca)bio <ile1 <ile2 En este ejemplo : es ca)bio, 1 es <ile1 y 2 es <ile.. En realidad a un fichero de comandos se le pueden pasar todos los argumentos que se deseen, aunque slo hay nombre espec0fico para los nueve primeros %ms el propio nombre del comando&. El n'mero de argumentos que se le pasa est contenido en la variable ,. $a variable = contiene el conjunto de todos los parmetros. 8n nuevo ejemplo puede aclarar algo ms este punto. i el programa 1el que hemos hecho previamente lo hubiramos utili*ado en la forma! 1el =?< tericamente deber0a de borrar, con confirmacin, todos los ficheros Fortran del directorio. En la prctica no es as0, porque 6=?f& no representa un 'nico argumento sino muchos argumentos %todos los ficheros Fortran del directorio&. Como resultado slo se borra el primer fichero Fortran. "ara borrar todos e indicarnos adems cuntos ficheros hay, el fichero 1el podr0a estar compuesto por los siguientes comandos! echo AWa4 Z 0ro*ra)as Fortran XnA r) +i = El comando shi<t hace posible utili*ar 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 shi<t, 2 se convierte en -, 3 en ., etc, y lo que hubiera sido 1: en F, con lo cual ya se puede referenciar. El comando shi<t deja inalterado : y puede utili*arse tantas veces como se desee. Otr!s *osi&ilid!des de los +ic#eros de co!ndos $os ficheros de comandos tienen muchas ms posibilidades que las que se han apuntado en esta Hntroduccin! pueden leer variables, preguntar por la existencia de un fichero y por si es ejecutable o no, y admiten construcciones lgicas del tipo IO, %=, %- @WILE, etc. "ara utili*ar estas posibilidades acudir al manual correspondiente. COM%ILANDO %2O:2AMAS EN LIN4> Linux como cualquier sistema Unix que se precie incluye un compilador de L 4 L+N. Esto no implica que se est limitado a estos dos lenguajes de programacin. "or el contrario existen una gran cantidad de compiladores gratuitos para los lenguajes ms importantes. El compilador de L;L++ de Linux es un compilador de l0nea de comandos, esto es, no dispone de ninguna interfa* grfica que facilite la programacin y compilacin del cdigo. Existen eso s0 editores de texto capaces de mostrar la sintaxis del cdigo resaltada como #7rite, aunque la compilacin hay que reali*arla manualmente a travs de una consola o terminal. Co*il!cin - lin'!do El primer paso para crear un programa, por ejemplo en CNN, es crear el fichero de cdigo fuente, y guardarlo en un fichero de texto por ejemplo e1?c0p. Iras esto hay que compilar el programa. "ara esto se emplear el comando gNN, de la siguiente forma! *++ e1?c00 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. "ara ejecutarlo emplearemos ?;a?out Kormalmente no desearemos que el programa se llame a?out sino que tenga un nombre ms significativo, como eHe)0lo3-, para conseguirlo emplearemos! *++ +o eHe)0lo31 e1?c00 i queremos ejecutar el programa emplearemos ?;eHe)0lo3-. i el programa escrito reali*a emplea alguna funcin que no se encuentre en la librer0a estndar hay que incluirla en la orden de compilacin, por ejemplo! *++ +o eHe)0lo32 e2?c00 +lna)e ;onde name es el nombre de la librer0a. "or defecto estas se guardan en un fichero cuyo nombre es libna)e?so, cuya locali*acin suele ser ;usr;lib. i el programa no est escrito en CNN sino en C las opciones de compilacin son las mismas salvo que en lugar del programa *++ se emplear el comando *cc. *cc Eo eHe)0lo33 e3?c Co!ndo !'e Este comando sirve para organi*ar la compilacin y el enla*ado de programas complicados que dependen de muchos mdulos y librer0as 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 +CHH %llamado por defecto )a#e<ile& que contiene una relacin de dependencias entre los distintos mdulos, as0 como las acciones que hay que reali*ar 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! )a#e BE< )a#e<ilena)eD BEar*3o0tD Bexe3na)eD El fichero )a#e<ile %con ste o con otro nombre invocado por medio de la opcin Ef& contiene cuatro tipos de l0neas diferentes! U $0neas de comentario, que comien*an por el carcter %,&. i en una l0nea cualquiera aparece el carcter %,&, se ignora todo lo que aparece a continuacin de dicho carcter en dicha l0nea. U $0neas de definicin de macros. Iienen la forma general, I%&NIIFILJ%-8 V ca1ena31e3caracteres i en alguna otra l0nea aparece %H;EKIHOHC+;=E&, dicha ocurrencia se sustituye por ca1ena31e3caracteres. Ko es necesario que el nombre del identificador est escrito con may'sculas, pero es una costumbre bastante extendida el hacerlo as0. @ediante el uso de macros se pueden representar brevemente pathnames o listas de nombres de ficheros largos. i el identificador tiene una sola letra, no hace falta poner los parntesis. El comando )a#e tiene una serie de macros definidas por defecto que se pueden listar con el comando )a#e Ep. $0neas describiendo las relaciones de dependencia. Iienen la forma, <ile?o <ila?o ??? [ <ile1?c00 <ile2?c00 ??? $a lista de ficheros que estn a la i*quierda del carcter %!& dependen de los ficheros que estn a la derecha. En estas l0neas se reali*a la sustitucin habitual de los caracteres %7 69:& $0neas de comandos shell, comen*ando siempre por un tabulador. Estas l0neas representan las acciones que hay que reali*ar para actuali*ar los ficheros dependientes, seg'n las relaciones de dependencia descritas en la l0nea anterior. En una misma l0nea de comandos puede haber varios comandos separados por un carcter %3&, y de este modo se ejecutan en un mismo proceso3 si hay varias l0neas de comandos, cada l0nea se ejecuta en un proceso diferente. Estos comandos shell %compilaciones, etc.& se ejecutan o no seg'n las fechas de los ficheros correspondientes. May tambin una lista de dependencias impl0citas y de macrodefiniciones standard que se pueden obtener con el comando )a#e +0 %la salida de este comando puede tener varios cientos de l0neas&. + continuacin se presentan algunos ejemplos de ficheros )a#e<ile. + continuacin se muestran una serie de ejemplos , Esto es un ejemplo de fichero ma4efile , ;efiniciones de macros ma < ma.Qad.o ma.Qbd.o ma.Qcd.o IEI! test.o %ma& xlf Xo IEI X= %ma& test.o! test.f xlf Xc X= test.f ma.Qad.o! ma.Qad.f xlf Xc X= ma.Qad.f ma.Qbd.o! ma.Qbd.f xlf Xc X= ma.Qbd.f ma.Qcd.o! ma.Qcd.f xlf Xc X= ma.Qcd.f May informaciones que no es necesario dar por que se suponen por defecto. "or ejemplo, si el fichero objeto 6?o& y el fichero C 6?c& o CNN 6?c0p& tienen el mismo sufijo, no hace falta definir esas relaciones de dependencia, que por otra parte son triviales. B1s$ued! !(!n0!d! en +ic#eros. Ex*resiones regul!res + veces se desea encontrar las l0neas 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 b'squeda, por ejemplo *re0 A2JIJIJSA Lista31e3la3co)0ra?txt in embargo, en otras ocasiones el texto que se desea buscar no es 'nico, es decir, no est un0vocamente determinado como en el ejemplo anterior, sino que debe cumplir unas ciertas condiciones, como la de estar escrito con may'sculas, comen*ar por determinado carcter, estar a principio o final de l0nea, etc. Este problema se puede resolver en muchos comandos de Linux por medio de las expresiones regulares que se van a presentar a continuacin. $as expresiones_regulares son una forma de describir patrones para la b'squeda de unas determinadas l0neas dentro de uno o ms ficheros +CHH. e trata pues de encontrar las l0neas cuyo contenido cumple ciertas condiciones, que se definen en la expresin_regular. C!r!cteres es*eci!les En una expresin_regular se pueden utili*ar algunos caracteres que tienen un significado especial. on los siguientes! 9 comien*o de la definicin de un conjunto de caracteres . un carcter cualquiera, excepto el Deol# 6 un conjunto de caracteres cualesquiera, excepto el primer carcter de una expresin o inmediatamente despus de la secuencia 2% : 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. i va detrs del 9 o delante del :, no es especial Y comien*o de l0nea, si est al comien*o de la expresin Y conjunto complementario %el que no cumple la condicin&, si est justo despus del 9 que abre la definicin de un conjunto fin de l0nea, cuando est al final de una expresin. 2 quita el significado especial a un carcter, excepto en la definicin de un conjunto de caracteres Ex*resiones regul!res de un solo c!r=cter e trata de buscar palabras o conjuntos de un solo carcter, que cumple ciertas condiciones. + continuacin se presentan algunos ejemplos! 26 representa el carcter 6 . cualquier carcter, excepto el Deol# 9a>f: un carcter cualquiera entre la a y la f 9+>Z: cualquier letra may'scula 9Ya>d: cualquier carcter que no sea una letra entre la a y la d 9!clase!: donde clase puede ser! digit %cifra del C al F&, xdigit %cifra hexadecimal&, alpha %letra cualquiera&, upper %letra may'scula&, lower %letra min'scula&, alnum %letra o d0gito cualquiera&, space %un espacio en blanco&, cntrl %carcter de control&, punct %un carcter de puntuacin& y print %carcter imprimible&. Ex*resiones regul!res gener!les e pueden formar de acuerdo con las siguientes reglas! > una expresin regular de un slo carcter 9a>*: cualquier letra min'scula > una expresin regular de un slo carcter, seguida del carcter 6, 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 9a>*:6 cualquier palabra escrita con min'sculas > concatenando %poniendo una a continuacin de la otra& dos expresiones regulares construidas previamente 9a>*:9+>Z: cualCuier 0alabra 1e 1os letras( 1e las cuales la 0ri)era es )inTscula 4 la se*un1a )a4Tscula > 8na expresin5regular definida en la forma 2%expresiones regulares2& 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 n'mero del - al F, y es posible luego hacer referencia a una expresiones regulares por medio del n'mero que le corresponde, en la forma 2n'mero. i 2n'mero va seguido de un 6, esa subexpresin puede repetirse un n'mero cualquiera de veces. Y2%.62&2-2- +l comien*o de la l0nea, 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 l0nea. Esta expresin detectar0a las l0neas que contienen palabras %o conjuntos de palabras& triples. > una expresiones regulares de un slo carcter seguida de 2%entero2& representa entero apariciones consecutivas de alguno de los caracteres aceptados por la expresiones regulares de un slo carcter. i va seguida de 2%entero,2& representa un n'mero m0nimo de entero apariciones consecutivas. i va seguida de 2%entero-, entero.2& representa un m0nimo de entero1 y un mximo de entero2 apariciones consecutivas. $os n'meros enteros deben estar comprendidos entre C y .SS. > toda expresin que comien*a con Y indica que los caracteres buscados deben estar a comien*o de la l0nea Y9a>*:6 selecciona las l0neas que slo contienen letras min'sculas > toda expresin que termina con indica que los caracteres buscados deben estar a final de la l0nea Y9a>*:2[P2\9Ya>*:2[P2\ selecciona las l0neas que comien*an con tres min'sculas, terminan con tres caracteres cualesquiera pero que no son min'sculas, y no tiene ning'n otro carcter entre medio. Co!ndo?Sint!xis Descri*cin E;e*los c!t <ich1 @...<ichNA Concatena y muestra un archivos cat ?etc?passBd di++ @+eAarch1 arch2 Encuentra diferencia entre archivos diff foo.c neBfoo.c du @+sabrA <ich Eeporta el tamaAo del directorio du >s ?home? +ind 1ir test acci\n Encuentra archivos. find . >name //.ba411 >print gre* @+ciln5A ex0r archi5os (usca patrones en archivos grep mi4e ?etc?passBd #e!d +count <ich @uestra el inicio de un archivo head prog-.c ln @+sA <ich acceso Crea un acceso directo a un archivo ln >s ?users?mi4e?.profile . t!il +count <ich @uestra el final de un archivo tail prog-.c (i <ich Edita un archivo. vi .profile !t @BlrA #or! @+ec#!A Ejecuta un comando mas tarde at Rpm Oriday miscript ec#o string Escribe mensaje en la salida estndar echo //Mola mundo11 +inger usu!rio @uestra informacin general sobre un usuario en la red finger nn]maquina.aca.com.co id K'mero id de un usuario id usuario 'ill @BseC!lA %ID @atar un proceso 4ill -.PG !n co!ndo +yuda del comando especificado man gcc man >4 printer *s @!xiuA @uestra informacin sobre los procesos ps >ux
que se estn ejecutando en el sistema ps >ef "#o ? r"#o @uestra informacin de los usuarios Bho conectados al sistema. ?usr?&in?g*!ss"d B! usu!rio gru*o +signa cierto usuario a ese grupo. !t D:EE cd*l!-FCtrlGd "rograma el computador para hacer sonar el cd a las Q!CC. !t$ $ista las tareas automticas programadas. !tr H Elimina la tarea n'mero ^. &!s# Extension del sh. c#s C shell. d!te Bs IEJ?KL?ELI MINDI Cambia la fecha del sistema al .S de +bril del .CCS . d!te Bs IOL:EE:EEI MIN,I Cambia la hora del sistema a las -S!CC. dd i+P?de(?+dE o+Pi!gendedisco Crea una imagen del disco con el nombre imagendedisco. dd i+Pi!gendedisco o+P?de(?+dE Jraba el archivo imagen a un disco. d+ @uestra el espacio libre del disco. d*'g Bi !rc#i(o.de& Hnstala un paquete .deb %;ebian&. du Bc +ic#eros @uestra el total que ocupan los ficheros. du Bs ?directorio @uestra el espacio que ocupa el directorio. ec#o Q%A,H @uestra el path actual. Edit!r este +ic#ero *!r! eori0!r un! t!re!: etc?cront!& Ej! CC CC .C -C 6 echo 1Ma llegado el invierno1 #?dev?null %esto 'ltimo es para que no se env0e por mail al root&. $os siguientes directorios son para meter programas a ejecutar cada cierto tiempo %copiarlos dentro& ?etc?cron.hourly? ?etc?cron.daily? ?etc?cron.Bee4ly? e!cs ?etc?s-scon+ig?net"or' "ara cambiar el JateBay %puerta de enlace&en redhat. e!cs +ic#ero Edita el fichero CtrlNW CtrlN %guarda&, CtrlNW CtrlNC %sale&. +ind ?directorio Bn!e R+ic#eroR (usca a partir de ?directorio el fichero especificado. +or x in Q6ls ?directorio7 do ec#o Qx done "ara hacer un bucle en un script bash de los ficheros de un directorio. gre* (usca una cadena en un fichero. cat fichero.txt V grep texto a buscar i+ @ Bx ?*!t#?to?dnetc AS t#en ec#o ISt!rting Distri&uted.net Client...I ?*!t#?to?dnetc B$uiet +i El fichero ?etc?rc.d?rc.local es similar al autoexec.bat de ms> dos y por ejemplo podemos poner estas l0neas. i no se est ejecutando arranca dnetc. i+con+ig Ie dice tu direccin H" aunque sirve tambin para configurar la tarjeta de red. ;oe +ic#ero Editor de texto. 'ill BT nuero%ID @ata el proceso numero"H; que queramos %finali*a su ejecucin&. 4ill >M8" numero "H; Mace lo mismo. )ill >I=" numero"H; "ara hasta nueva orden el proceso Kumero"H;. )ill >C=KI numero"H; Continua el proceso numero"H; parado anteriormente. 'ill!ll no&re*roceso @ata el proceso con ese nombre. 's# )orn shell, combina sh y csh. ln Bs ?nt?cdro?M!e?ros ? Crea un enlace blando al directorio roms del cdrom como si fuera ?usr?games?lib?xmame %xmame no debe existir&
abla de los comandos principales de Linux Comando Descripcin Equivalente a DOS ls listas del contenido de un directorio dir cd cambio de directorio cd cd .. directorio principal cd.. mkdir crea un nuevo directorio md rmdir elimina un directorio deltree cp copia de un archivo copy, xcopy mv mueve un archivo move rm elimina un archivo del passwd cambia la contrasea del usuario cat muestra el contenido del archivo type more muestra el contenido del archivo con pausas type |more man ayuda para el comando requerido help Linux DOS Signi+ic!do cat type Ter contenido de un archivo. cd, chdir cd, chdir Cambio el directorio en curso. chmod attrib Cambia los atributos. clear cls (orra la pantalla. ls dir Ter contenido de directorio. m4dir md, m4dir Creacin de subdirectorio. more more @uestra un archivo pantalla por pantalla. mv move @over un archivo o directorio. rmdir rd, rmdir Eliminacin de subdirectorio. rm >r deltree Eliminacin de subdirectorio y todo su contenido. apropos lpr imprime el archivo requerido print chmod cambia el atributo de un archivo chmod XXX file XXX= Usuario|Grupo|Otro en el que X representa un nmero entero !"X"# Lectura=$, %scritura=&, %'ecuci(n=! X=Leer)%scribir)%'ecutar * si+ni,ica nin+n derecho ! si+ni,ica derecho de e'ecuci(n & si+ni,ica derecho de escritura - si+ni,ica derechos de escritura y e'ecuci(n $ si+ni,ica derecho de lectura . si+ni,ica derechos de lectura y de e'ecuci(n / si+ni,ica derechos de lectura y de escritura # si+ni,ica todos los derechos
chfn cambia la in,ormaci(n personal vista tipo+r0,icamente chsh cambia la shell1 chsh user ubicacin_de_la_shell
finger lista de usuarios conectados traceroute tra2a la ruta entre el equipo local y el equipo visuali2ado ftpmachine! port! get put quit trans,iere el archivo entre el equipo local y el equipo de destino recupera un archivo 3+et4 env5a un archivo3put4 sale de la sesi(n 678 3quit4
telnet machine! reali2a una aplicaci(n telnet talk permite hablar con un usuario conectado tal9 user
mesg autori2a o recha2a el comando tal9 mesg n " :mpide la recepci(n de mensa'es talk mesg y " 8ermite recibir mensa'es talk
Son Llamadas Microalgas A Una Gran Cantidad de Especies Que Constituyen El Fitoplancton Que Abarca Desde Organismos Autótrofos Hasta Microflagelados y Microciliados Auxótrofos