Comandos Linux:

Para tener informacion relativa a un comando se debe teclear el comando

$ man ls

Este comando nos dara infomación a cerca de ls listar archivos.Lamentablemente, el manual no siempre es claro, ni esta siempre disponible; esto implica aprenderse de memoria las cosas mas importantes. Esto sucede naturalmente con el tiempo y la practica.

 


Indice de Comandos según su función

Para... un.... Uso el comando...
Borrar archivo rm
Borrar directorio rmdir
Crear archivo (vacio) touch
Crear directorio mkdir
Cambiar directorio cd
Cambiar archivo sed
Copiar archivo cp
Editar archivo sed
Encontrar archivos find
Encontrar patron en archivo grep
Encadenar archivos cat
Mover archivos mv
Ir a directorio cd
Listar directorio ls
Listar procesos ps
Ordenar lineas de archivo sort
Partir lineas de archivo cut
Pegar archivos cat
Pegar columnas de archivos paste
Procesar archivos awk
Renombrar archivo mv
Reformatear archivo awk
Ver sistema de arch. df
Ver un archivo more
Ver directorio ls
Ver cabeza de archivo head
Ver Cola de archivo tail

 


Descripcion de los Comandos

awk: Procesamiento de archivos generalizado

El comando awk es un lenguaje de programacion. En otra leccion, daremos mas detalles de este utilisimo comando. Sin embargo, muchas cosas se pueden hacer sin mayores conocimientos de awk.

awk lee lineas de un archivo. Cada linea se parte en campos, segun un separador, por defecto espacio en blanco. A cada linea se le aplica uno o mas procedimientos de awk. Un procedimiento consta de dos partes:


  /patron/{accion}

El patron es una expresion regular (ver **), igual que grep o sed; la accion es un "programa", que se aplica a los campos de cada linea.

Veamos unos ejemplos:


   awk '{print $1}' arch

Notese el uso de las comillas, necesarias para evitar problemas con el shell. Imprime el primer campo de cada linea-- es decir, imprime la primera columna de un archivo.


   awk '{print $2, $1}' arch

Imprime la segunda, seguida por la primera, columna de un archivo

Tambien pueden usarse expresiones aritmeticas:


   awk '{print $1*$1, $2 - 5.0}' arch 

Lo cual imprime el cuadrado de la primera columna, etc.

Seleccionemos las lineas que continen el texto "Hidrogeno"


   awk '/Hidrogeno/{print $1, $2*3.1416}' arch

Si el programa de awk es muy complicado, puede residir en un archivo:


   awk -f miprog arch

Esto le aplica el programa "miprog" al archivo awk.

Los seleccionadores BEGIN y END seleccionan procedimientos que se ejecutan respectivamente al principio y fin de procesamineto:


   awk '{s = s + $1}
         END{print s}' arch

(notese que se puede dar retorno de linea dentro de las comillas.) Este programa suma la primera columna del archivo arch. El programa se basa en la (afortunada) casualidad que awk pone todas las variables numericas a cero inicialmente. Una variable (s en el ejemplo anterior es numerica cuando se usa aritmeticamente.

 

Regresar al Indice


cat: Cadenar (o ver) archivos

La funcion "oficial" de cat es de pegar o encadenar archivos. El archivo resultado va a stdout. Cuando hay un solo archivo este aparece por pantalla. Por eso, cat se usa mucho para ver el contenido de un archivo, aunque para eso es mejor more.

Ejemplos:


 cat a1 a2 a3           # a1, a2, a3 a pantalla
 cat a1 a2 a3 >a4       # a1, a2, a3 a a4
 cat a1                 # a1 a pantalla
Regresar al Indice

cd: Cambio de directorio

Con cd cambiamos el directorio donde estamos trabajando.

Ejemplos: Cambio absoluto de directorio:


   cd /usr/local/bin

Cambia al directorio citado,


   cd subdir

Cambia al directorio subdir del directorio actual; si este no existe hay error.


   cd

Cambia al "directorio base" o "home directory" designado por el super-usuario; en algunos sistemas esto lo puede cambiar el usuario. El directorio base esta grabado en la variable de shell $HOME.

Regresar al Indice


cp: Copia de archivos

El comando cp copia archivos. El ultimo argumento es el destino, los precedentes son el origen.

El comportamiento de cp depende del destino. Si el destino es un subdirectorio, los archivos son copiados a ese subdirectorio; pero si el destino no existe o es un archivo el origen es copiado al destino.

En el caso de multiples origenes, todos los origenes son sucesivamente copiados al destino. Eso quiere decir que en efecto solo el penultimo sobrevive la operacion, lo cual es probablemente no deseable.

Ejemplos:


   cp origen destino

copia el archivo origen al archivo destino.


   cp origen1 origen2 destino

Si destino es un directorio, origen1 y origen2 son copiados al directorio destino. Si destino es un archivo, el resultado es el mismo que si origen2 fuese copiado a destino.


   cp -i origen destino

Copia origen a destino como en el caso anterior, pero en el caso que destino ya existe pregunta antes de hacer la operacion final.

Regresar al Indice


cut: Cortar archivo por campo o columnas

Se usa para separar de cada linea de un archivo uno o mas campos, o una parte del archivo. Los campos se delimitan, por defecto, por espacio en blanco; pero se puede especificar el contenido.

Ejemplos: Supongamos que el archivo prueba tenga la siguiente apariencia:


 1  arepas   250
 2  tostones 350
 3  cachapas 125

Entonces


   cut -f2 prueba

produce:


 arepas   
 tostones 
 cachapas 

Es decir, separa el segundo campo ( -f2), mientras que


   cut -c1-6 prueba

separa las primneras seis columnas y por lo tanto produce


 1  ar
 2  to
 3  ca

El delimitador de campos puede cambiar:


   cut -d: -f1,2 /etc/passwd

Produce los dos primeros campos de /etc/passwd, los cuales (verifiquelo) estan separados por los dos puntos :.

 

Regresar al Indice


cp: Caracteristicas de un sistema de archivos

Este comando da laa caracteristicas de un sistema de archivos. Su primer uso es de ver que es lo que sta montado; su segundo uso es de ver el espacio libre de un sistema de archivos.

En mi sistema, el comando


   df

produce


Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/hda2              19424   18165     1259     94%   /
/dev/hda3              51718   42116     9602     81%   /usr
/dev/hda4              22578   13781     8797     61%   /u
/dev/hda1              32678   20052    12626     61%   /dos

De lo cual se puede ver, por ejemplo, que el sistema raiz (/) esta a punto de llenarse. Tambien se puede ver que hay cuatro sistemas de archivos.

La apariencia de la salida de este comando varia entre diferentes versiones de Linux.

find: Encontrar un archivo con ciertas caracteristicas

El comando find se usa para encontrar archivos en el arbol de directorios de Linux. La estructura de directorios puede ser arbitraria. find requiere un punto de partida y las caracteristicas del archivo a encontrarse. Despues, find revisa ese directorio y todos los directorios subordinados, buscando los archivos que cumplan la condicion(es) citada(s).

Lo examinaremos en mas detalle en otra leccion, (ver **) pero algunas formas comunes son:


   find . -name perdido -print

Esto busca en el directorio actual (.) todos los archivos o directorios de nombre perdido y pone el resulotado a pantalla (-print). En algunas versiones modernas de Linux, la opcion -print no es necesaria, pero en otras si (de lo contrario no pasa nada!)


   find /usr/people -name '*.f' -print

Busca, a partir del directorio /usr/people, todos los archivos que terminen en .f. El uso de las comillas es indispensable porque de lo contrario, el shell sustituye por el asterisco los nombres de todos los archivos en el directorio de partida.

 

Regresar al Indice


grep: Encontrar un patron en una lista de archivos

El nombre grep es criptico: significa "global regular expression and print", pero su funcion es sencilla: encontrar un patron en una lista de archivos (por ejemplo, todos los archivos que contengan la palabra "CALL").

Para verdaderamente usar grep y muchos otros comandos de Linux hay que aprender el sistema de expresar patrones, llamado expresiones regulares, lo cual haremos en otra leccion (ver **). Por los momentos nos contentaremos con patrones simples. Grep tiene muchas opciones (ver manual) para buscar con o sin mayusculas, buscar archivos que no contienen al patron (especie de anti-grep), etc.


   grep CALL *.f

Encuentra todas las lineas de todos los archivos que contienen la palabra CALL en todos los archivos que terminan en .f. Esto se podria usar como base a una tabla de referencias de un programa fortran.


   grep juanr /etc/passwd

Busca la linea(s) de /etc/passwd que contiene(n) "juanr".

Mucho cuidado con patrones que contienen caracteres especiales del shell, como * y ?. Estos deben ser escapados, o usar comillas.

head: Ver las primeras n lineas de archivos

Se usa para ver las primeras lineas (cabeza) de un archivo. Por defecto, se ven 10 lineas, pero esto sae puede cambiar. Por ejemplo,


   head /etc/passwd

Pone en pantalla las primeras 10 lineas de /etc/passwd, mientras que


   head -2  /etc/passwd

pone en patalla las primeras dos.

 

Regresar al Indice


ls: Listar archivos en un directorio

Probablemente el comando mas usado en Linux, ls nos permite ver el contenido de un directorio y opcionalmente sus subdirectorios. Este comando tiene muchas opciones. La forma mas corriente es simplemente


   ls

Que lista en varias columnas los nombres de los archivos en el directorio actual. Otra variante comun es


   ls -l 

lo cual da el listado largo (permisos, tama#os, due#o, etc.). Una opcion util es


   ls -FC 

que le pone a los ejecutables un asterisco, a los directorios la barra /, y a los archivos comunes nada (pruebe esto en us sistema). ls tambien acepta especificaciones:


   ls -l *.f

Esto da todos los archivos que terminan en .f, con listado largo. Tambien podemos ordenar la lista de varias maneras, por ejemplo por edad:


   ls -lt *.f

Esto nos lista en edad descendiente (mas viejo de ultimo) los archivos en que terminan en .f, con listado largo.

 

Regresar al Indice


man: Ver paginas del manual en linea

Para ver las paginas del manual, suponiendo que esten en linea. Ejemplos:


   man cp

Nos da la informacion en el manual sobre el comando cp. Para averiguar mas sobre el comando man, pruebe


   man man

Regresar al Indice

mkdir: Crear un directorio

Crea un directorio vacio en el directorio actual, por ejemplo


   mkdir xyz

Crea el directorio xyz en el directorio actual.

 

Regresar al Indice


more: Ver archivos con control de pantalla

Sirve para examinar un archivo. Es preferible al uso de cat, que se usa para el mismo proposito, porque more permite retroceder, avanzar, o hacer busquedas. Por ejemplo


   more xyz

Nos permite ver el archivo xyz en pantalla. Una vez entrado a more, se controla con los siguientes comandos, o mejor dicho "subcomandos:

En algunos sistemas de sabor a SysV, este mismo comando se llama pg.

 

Regresar al Indice


mv: Mover archivos entre directorio (o renombrar)

El comando mv es similar a cp, excepto que borra el origen. En otras palabras, mueve archivos de un directorio a otro, o de un archivo a otro. En este ultimo caso, como el original desaparece, mv puede a veces tener efectos inesperados. El ultimo argumento de mv indica el destino del movimiento; los primeros son los origenes.

Un uso muy frecuente de mv es de camiar el nombre a un archivo. Supongamos, por ejemplo, que viejo existe y le queremos cambiar al nommbre nuevo; nos aseguramos primero con ls que el nombre nuevo no existe; luego hacemos


   mv viejo nuevo

con lo cual viejo queda rebautizado a nuevo.

Ahora suponemos que subdir es un directorio. Para mover archivos a este directorio, pudieramos usar


   mv xyz uvw subdir 

En este caso, xyz y uvw se mueven al subdirectorio subdir. Pero si subdir fuese un archivo, o no existiese, este comando mueve, esencialmente, el penultimo al ultimo-- un comportamiento probablemente inesperado. Se pueden evitar accidentes con la opcion interactiva:


   mv -i xyz xxx

En este caso, mv pregunta antes de mover; esto es bueno en general pero latoso si hay que mover grandes cantidades de archivos.

 

Regresar al Indice


rm: Borrar archivos

rm borra archivos y con ciertas opciones, hasta directorios. Advertencia: este comando es irreversible.

Ejemplos:


   rm xyz *.o

Este comando borra el archivo xyz y todos los archivos que terminan en .o. PELIGRO: La especificacion *.o, y todas las expresiones que contienen el asterisco, son sumamente peligrosas. Por ejemplo supongamos que por error se deja un espacio en blanco en el ejemplo anterior:


   rm xyz * .o

Esto es desastroso: el asterisco borra todos los archivos, silenciosamente, y despues se queja que "no puedo encontrar .o". La mejor manera de evitar este accidente es con cuidado. Otra posibilidad es de usar la opcion interactiva:


   rm -i xxx xyz

Esto pregunta antes de efectuar la remocion.

Con la opcion recursiva, se puede borrar un directorio y todos los archivos dentro de ese directorio. Esto es equivalente a hacer cd a ese directorio, borrar todos los archivos, subir, y hacer rmdir. Use esta opcion con sumo cuidado.


   rm -r direc

Esto borra el directorio direc y todo lo que pueda estar por debajo de direc.

 

Regresar al Indice


rmdir: Borrar un directorio

Este comando borra un subdirectorio vacio. Si no esta vacio, rmdir se queja y no efectua la operacion.


   rmdir direc

Borra el directorio direc.

 

Regresar al Indice


paste: Unir archivos horizontalmente (por columnas)

paste es lo suficientemente util para incluirlo en esta lista de comandos basicos, porque puede ahorrar mucho trabajo con el editor. Si tenemos dos archivos con columnas, por ejemplo:


   archivo a     archivo b
   xx  yy         uu  vv
   zz  11         ww  22

entonces el comando


   paste a b >c 

produce un archivo de esta forma:


   xx  yy  uu  vv
   zz  11  ww  22

paste tiene varias opciones que controlan la seleccion de columnas. Ver el manual para mas informacion. El comando no esta en algunos sistemas (como Sun OS 4.0).

 

Regresar al Indice


pwd: Dar el nombre del directorio actual

Nos recuerda, cuando estamos perdidos, del nombre del directorio actual. pwd nos da el camino completo.


   pwd

Regresar al Indice


ps: Listar procesos en ejecucion

Los principales usos de ps son:

La sintaxis de ps depende de la variedad de Linux. En sistemas de origen Berkeley, la sintaxis para un listado completo es


   ps aux 

Minetras en sistemas de variedad SysV, es


   ps -ef 

La forma corta (sin argumentos):


   ps

Nos da los procesos de la actual sesion de login, sin contar los que pudieran seguir corriendo de otras sesiones.

El formato de las salidas tambien depende de la variedad del sistema.

 

Regresar al Indice


tail: Ver las ultimas n lineas de un archivos

tail da las ultimas 10 lineas de un archivo, u opcionalmente las ultimas n lineas del archivo. Por ejemplo


   tail xxx

Da las ultimas 10 lineas del archivo xxx, mientras que


   tail -1 xxx

Da la ultima.

Este comando es util para seguir el progreso de un programa de larga corrida.

 

Regresar al Indice


touch: Actualizar fecha de archivos

Este comando tiene dos usos: uno, crear un archivo vacio y dos, actualizar la fecha de un archivo-- cambia la fecha a la de "ahora". Esto a su vez se usa frecuentemente con el programa make, objeto de otra sesion.


   touch  xxxx

Si xxxx existe, le cambia la fecha; si no crea ese archivo sin contenido alguno (longitud cero bytes).

 

Regresar al Indice


sed: Edicion "batch" de un archivo

Este programa tiene su mayor utilidad en shell scripts. Lo veremos en detalle en otra leccion. Para comenzar, basta decir que sed es un editor estilo "batch" que aplica unos subcomandos a todas las lineas de un archivo. Esto implica que para usar a sed, hay que aprenderse estos subcomandos. Lamentablemente, el manual correspondiente es casi indescifrable. Afortunadamente, los comandos se parecen a los de vi, (ver **). Damos aqui unas aplicaciones simples:


   sed '500,600pq' archivote

las lineas de archivote a entre la numero 500 y la 600 van a pantalla; (esto es print o p) y luego sed termina debido al q (quit). Esto se puede utilizar para seleccionar grupos de lineas de un archivo.


   sed 's/patron1/patron2/g' arch1 >arch2

Cambia todas las ocurrencias de "patron1" en arch1por "patron2" y por redireccion manda el resultado a arch2. (Normalmente sed dirige sus salidas a stdout. El ejemplo anterior es mas sencillo que usar un editor.

 

Regresar al Indice


sort: Ordenamiento de un archivo

La funcion de sort es de ordenar las lineas de un archivo. Las lineas (registros o records en la terminologia de sort) se pueden subdividir en campos; el ordenamiento puede ser alfabetico o numerico y el orden ascendiente o descendiente.

sort es un programa generalizado de ordenamiento con muchas opciones; por lo tanto diferimos su discusion completa hasta otra leccion (ver **). Mientras tanto, unos ejemplos:


   sort  arch1 >arch2

Ordena alfabeticamente las lineas de arch1. Por defecto, sort envia su salida a stdout; usamos redireccion para crear un archivo de salida. El ordenamineto es alfabetico por defecto y el orden ascendiente (es decir, "a" sale por delante de "z"). El campo es todo el registro.


   sort -n  arch1 >arch2

Como el anterior, pero el orden es numerico. Usase cuando hay columnas numericas. El orden es ascendiente (1 sale antes que 2).


   sed sort -nr  arch1 >arch2

El anterior, pero en orden descendiente. El numero mayor sale primero.


   sort +0 -1 arch1 >arch2

En este caso, el archivo esta dividido en campos, deparados por defecto por blancos. El ordenamiento es solo por primer campo. La manera de especificar los campos significa "final de campo cero hasta principio de campo uno".

 

Regresar al Indice