Comandos Linux
Comandos Linux
http://ingenio.chez.com/comandos.html
Comandos Linux:
Para tener informacion relativa a un comando se debe teclear el comando $ man ls Este comando nos dara infomacin 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.
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:
1 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
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
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
Regresar al Indice
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
2 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
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
Entonces
cut -f2 prueba
produce:
arepas tostones cachapas
Produce los dos primeros campos de /etc/passwd, los cuales (verifiquelo) estan separados por los dos puntos :.
Regresar al Indice
3 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
En mi sistema, el comando
df
produce
Filesystem /dev/hda2 /dev/hda3 /dev/hda4 /dev/hda1 1024-blocks 19424 51718 22578 32678 Used Available Capacity Mounted on 18165 1259 94% / 42116 9602 81% /usr 13781 8797 61% /u 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.
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
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.
Regresar al Indice
4 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
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
Nos da la informacion en el manual sobre el comando cp. Para averiguar mas sobre el comando man, pruebe
man man
Regresar al Indice
Regresar al Indice
Nos permite ver el archivo xyz en pantalla. Una vez entrado a more, se controla con los siguientes comandos, o mejor dicho "subcomandos:
espacio-b
adelanta una pantalla (back) retrocede una pantalla enter avanza una linea /patron busca "patron" en el archivo n busca la proxima ocurrencia de el patron anterior
5 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
Regresar al Indice
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
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
6 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
rmdir direc
Regresar al Indice
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 xx yy zz 11 archivo b uu vv ww 22
entonces el comando
paste a b >c
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
Regresar al Indice
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
7 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
tail da las ultimas 10 lineas de un archivo, u opcionalmente las ultimas n lineas del archivo. Por ejemplo
tail xxx
Da la ultima. Este comando es util para seguir el progreso de un programa de larga corrida.
Regresar al Indice
Si xxxx existe, le cambia la fecha; si no crea ese archivo sin contenido alguno (longitud cero bytes).
Regresar al Indice
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
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
8 de 9
Comandos Linux:
http://ingenio.chez.com/comandos.html
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
9 de 9