Comandos Linux
Comandos Linux
$ man ls
Borrar archivo rm
Cambiar directorio cd
Copiar archivo cp
Mover archivos mv
Ir a directorio cd
Listar directorio ls
Listar procesos ps
Renombrar archivo mv
Ver directorio ls
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.
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.
(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
Ejemplos:
cat a1 # a1 a pantalla
Regresar al Indice
cd /usr/local/bin
Cambia al directorio subdir del directorio actual; si este no existe hay error.
cd
Regresar al Indice
El comando cp copia archivos. El ultimo argumento es el destino, los precedentes son el origen.
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
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.
1 arepas 250
2 tostones 350
3 cachapas 125
Entonces
produce:
arepas
tostones
cachapas
1 ar
2 to
3 ca
El delimitador de campos puede cambiar:
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
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.
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:
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!)
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.
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.
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
head -2 /etc/passwd
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
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:
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
Ahora suponemos que subdir es un directorio. Para mover archivos a este directorio, pudieramos
usar
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
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
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
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
Ver si uno de nuestros procesos todavia esta vivo (una corrida larga, por ejemplo)
ps aux
ps -ef
ps
Nos da los procesos de la actual sesion de login, sin contar los que pudieran seguir corriendo de
otras sesiones.
Regresar al Indice
tail xxx
tail -1 xxx
Da la ultima.
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:
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.
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:
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.
Como el anterior, pero el orden es numerico. Usase cuando hay columnas numericas. El orden es
ascendiente (1 sale antes que 2).
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