|
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 |
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
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
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
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
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
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.
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
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.
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
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
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
Crea
un directorio vacio en el directorio actual, por ejemplo
mkdir xyz
Crea
el directorio xyz en el directorio actual.
Regresar al Indice
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
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
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
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
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
Nos
recuerda, cuando estamos perdidos, del nombre del directorio actual. pwd
nos da el camino completo.
pwd
Regresar al Indice
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
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
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
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
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
|