Guia de comandos en GNU/Linux
Antes de empezar con los comandos hay que tener en cuenta que en GNU/Linux el interprete de comandos es case-sesitive.
Esto quiere decir que no es lo mismo esccribir ls que Ls. El sistema diferencia entre mayúsculas y minúsculas.
A la hora de trabajar con ficheros se pueden usar caracteres comodín. Como caracteres comodín están los siguientes:
*
El símbolo asterisco significa cualquier cadena de caracteres. Por ejemplo si se pone:
ls -la lis*
Se listaran todos los directorios y archivos que empiezen por lis, por ejemplo lista.txt, listado ...
?
El simbolo de interrogación significa cualquier caracter. Por ejemplo si se pone:
ls -la l?
Se listaran todos los directorios y archivos que empiezen por l y que tenga cualquier otro caracter, por ejemplo
li, la ...
[]
Los corchetes siginifican un caracter y se puede sustiruir por aquello que se ponga dentro de los corchetes.
Por ejemplo si se pone ls -la in[a-z]* listaría todos aquellos ficheros que empiezen por in que su tercer caracter
sea una letra que este entre la a y la z y luego cualquier cadena de caracteres.
ls -la l?
Se listaran todos los directorios y archivos que empiezen por l y que tenga cualquier otro caracter, por ejemplo
li, la ...
Si se pone [ABC] al hacer ls -la a[ABC]* se listar?n todos los archivos que tengan la primera letra una a la segunda debe ser A,B o C y después cualquier cadena de caracteres.
Las opciones de los comandos se pueden concatenar para que se hagan varias opciones a la vez. Por ejemplo si ponemos ls -lah nos mostrara los todos los archivos que hay en el directorio en formato largo y además nos dara su tamaño.
Hemos puesto tres opciones y se han ejecutado las tres a la vez al ejecutar ls.
Para listar archivos del sistema se usa el comandos ls.
Las opciones más usadas con este comando son las siguientes:
-l
Muestra información detallada sobre los archivos que hay en una ruta que se le indique.
Se muestran los permisos, el número de inodos, propietario del archivo, grupo al que pertenece el
archivo, tamaño en bytes del archivo, fecha de última modificación del archivo y nombre
del archivo.
-a
Muestra todos los archivos y directorios de la ruta que se le indique. Muestra también
los archivos ocultos que en GNU/Linux son aquellos que empiezan por .
-h
Muestra la información del tamaño de los archivos en bytes, KB, MB o Gygas en función de
lo que ocupe el archivo.
-t
Lista los archivos de forma cronológica. Lista los archivos de más nuevos a más antiguos.
-r
Invierte el orden de ordenación que le hayamos puesto al ls.
-R
Lista de forma recursiva lo que hay en un directorio.
-S
Lista los archivos por tamaño poniendo en primer lugar los más grandes.
Estas opciones se pueden combinar de forma que si queremos ver todo lo que hay en un directorio ,ver
los archivos ocultos y que los ordene cronologicamente habría que poner:
ls -lat
Para saberlo se hace sin más poniendo el comando pwd.
Esto muestra toda ruta hasta el directorio en que nos encontramos.
Como ejemplo sería esto:
#pwd
/home/usuario
Para movernos por la estructura de directorios se hace con el comando cd.
La forma de usarlo es la siguiente:
cd /directorio
A la hora de movernos por los directorios usando el comando cd se pueden usar rutas relativas o absolutas:
-
Rutas relativas: Son aquellas que se contruyen a partir del directorio en el que nos encontramos.
Como ejemplo si tenemos la siguiente estructura de directorios:
-
/directorio1/directorio2/directorio3
Si estamos en el directorio2 y queremos ir al directorio3 se pondría:
cd directorio3
Si ahora queremos ir al directorio1 se haría de la siguiente forma:
cd ../../
Cuando se pone ../ se baja un nivel en la estructura de directorios. En el ejemplo de arriba bajariamos primero
al directorio2 y luego del directorio2 al directorio1.
-
Rutas absolutas: Son aquellas que se contruyen poniendo toda la ruta hasta el directorio que nos queremos mover.
Como ejemplo si tenemos la siguiente estructura de directorios:
-
/directorio1/directorio2/directorio3
Si estamos en el directorio2 y queremos ir al directorio3 se pondría:
cd /directorio1/directorio2/directorio3
Si ahora queremos ir al directorio1 se haría de la siguiente forma:
cd /directorio1
Hay que poner toda la ruta hasta el directorio.
Si ponemos el comando cd solo lo que hace es llevarmos a nuestro dierctorio home. El directorio home es el directorio
que tiene asociado cada usuario para trabajar.
Para copiar archivos o directorios de un sitio a otro se usa el comando cp. La sintaxis del comando sería:
cp archivo1 archivo2 /directorio_a_copiar_archivos
O si queremos copiar directorios sería:
cp -r directorio1 directorio2 /directorio_a_copiar_archivos
A la hora de poner la ruta de los ficheros o de la carpeta a la que se van a copiar los archivos se pueden usar tanto
rutas absolutas como relativas.
Opciones del comando cp:
-v
Muestra información sobre la copia de los archivos o directorios.
-i
Si lo que se va a copiar existe en el destino pregunta si se quiere sobreescribir.
-r
Copia de forma recursiva lo que hay en un directorio. Si ponemos este comando se copiarían el directorio y
subdirectorios que contenga la carpeta con todos sus directorios y ficheros al destino.
Para mover archivos o directorios de un sitio a otro se usa el comando mv. La sintaxis del comando sería:
mv archivo1 archivo2 /directorio_a_copiar_archivos
O si queremos copiar directorios sería:
mv directorio1 directorio2 /directorio_a_copiar_archivos
A la hora de poner la ruta de los ficheros o de la carpeta a la que se van a copiar los archivos se pueden usar tanto
rutas absolutas como relativas.
El comando mv se puede usar también para cambier el nombre de un fichero o directorio. Si ponemos como nombre
de archivo origen el nombre del archivo del que queremos cambiar el nombre y como destino el nuevo nombre que queremos
poner con eso ya cambiariamos el nombre. Por ejemplo si tenemos el archivo carta.txt y lo queremos cambiar a nota.txt
habría que poner:
mv carta.txt note.txt
Opciones del comando mv:
-v
Muestra información sobre la copia de los archivos o directorios.
-i
Si lo que se va a copiar existe en el destino pregunta si se quiere sobreescribir.
-f
Si existe lo que se quiere copiar en el destino lo sobreescribe sin preguntar.
Con el comando mv se copian los directorios de forma recursiva sin poner ningún argumento.
Para borrar archivos se usa el comando rm. La sintaxis del comando sería:
rm archivo1 archivo2
A la hora de poner la ruta del fichero o ficheros a borrar se pueden usar tanto rutas absolutas como relativas.
Opciones del comando rm:
-v
Muestra información sobre el borrado de los archivos.
-r
Permite hacer borrados recursivos. Con esta opción se pueden borrar también directorios.
-i
Pregunta antes de borrar los archivos si estamos seguros de querer borrarlos.
-f
Borrar los archivos si hacer ninguna pregunta de si queremos borrarlos.
Para borrar directorios se usa el comando rmdir. Para borrar directorios con este comando los directorios han de
estar vacios. La sintaxis del comando sería:
rmdir directorio1 directorio2 ...
A la hora de poner la ruta del directorio a borrar se pueden usar tanto rutas absolutas como relativas.
Opciones del comando rmdir:
-v
Muestra información sobre el borrado de los directorios.
-p
Borra los directorios que le pongamos en la ruta de borrado del directorio. Por ejemplo si ponemos rm -r dir1/dir2/dir3
borraría el dir3 luego el dir2 y luego el dir1.
Para crear directorios se usa el comando mkdir. La sintaxis del comando sería:
mkdir directorio1 directorio2 ...
A la hora de poner la ruta del directorio a borrar se pueden usar tanto rutas absolutas como relativas.
Opciones del comando mkdir:
-v
Muestra información sobre el directorio creado.
-p
Crea los directorios que le pongamos en la ruta de creación del directorio. Por ejemplo si ponemos
mkdir -p dir1/dir2/dir3 crearía el dir1 luego el dir2 y luego el dir3.
-m
Permite asociarle permisos al directorio nada más crearlo. Por ejemplo si ponemos:
mkdir -m 777 directorio
Darímos permisos de lectura, ejecución y escritura a todo el mundo.
Para ver el contenido de un archivo existen varios comandos. Estos comandos solo permiten ver el contenido no permiten
modificar el fichero. Los más usados serían los siguientes:
-
cat
Este comando permite ver el contenido completo de un archivo. Muestra el contenido de un archivo todo seguido sin
detenerse por lo que suele pasar que no se vean todas las líneas ya que si un fichero posee 1000
líneas estas no entran en la pantalla y solo se verán las últimas líneas. La sintaxis es cat
nombreArchivo. Como opciones del comando habría las siguientes:
-n
Muestra el número de línea.
-E
Muestra el símbolo $ al final de cada línea.
-T
Muestra las tabulaciones con el caracter ^I.
-
more
Muestra el contenido de un fichero y muestra el número de líneas que entran en la pantalla, si en la
pantalla entra como máximo 50 líneas muestra 50 líneas y se detiene. Para seguir avanzando
basta con pulsar la barra espaciadora y continua mostrando líneas. Si se quiere dejar de ver el contenido del
fichero se pulsa la tecla q y se sale.
La sintaxis del comando es more nombreArchivo1 nombreArchivo2 ....
-
less
Muestra el contenido de un fichero y muestra el número de líneas que entran en la pantalla, si en la
pantalla entra como máximo 50 líneas muestra 50 líneas y se detiene. Para seguir avanzando
basta con pulsar la barra espaciadora y continua mostrando líneas. Si se quiere dejar de ver el contenido del
fichero se pulsa la tecla q y se sale.
Con este comando además se pueden hacer busquedas poniendo
/palabraAbuscar. Si hacemos esto resaltara en el archivo todas las coincidencias que haya encontrado.
Además funcionan las teclas de flecha arriba para subir una línea, flecha abajo para bajar una línea,
AvPag para avanzar una página y RePag para retroceder un página.
La sintaxis del comando es more nombreArchivo1 nombreArchivo2 ...
-
head
Muestra las 10 primeras líneas de un fichero. Como opciones del comando habría las siguientes:
-c
Muestra los caracteres que haya en los primeros bytes que le pongamos. Por ejemplo si ponemos:
head -c 8 archivo1
Mostrara los primeros 8 bytes del archivo.
-n
Muestra las primeras líneas que le indiquemos. Por ejemplo si ponemos:
head -n 8 archivo1
Mostrara las primeras 8 líneas del archivo.
-n
Muestra las primeras líneas que le indiquemos. Por ejemplo si ponemos:
head -n 8 archivo1
Mostrara las primeras 8 líneas del archivo.
-q
No muestra en la primera línea el nombre del fichero.
-v
Muestra en la primera línea el nombre del fichero.
La sintaxis del comando es head nombreArchivo1 nombreArchivo2 ...
-
tail
Muestra las 10 últimas líneas de un fichero. Como opciones del comando habría las siguientes:
-c
Muestra los caracteres que haya en los últimas bytes que le pongamos. Por ejemplo si ponemos:
tail -c 8 archivo1
Mostrara los últimos 8 bytes del archivo.
-n
Muestra las primeras líneas que le indiquemos. Por ejemplo si ponemos:
tail -n 8 archivo1
Mostrara las últimas 8 líneas del archivo.
-n
Muestra las últimas líneas que le indiquemos. Por ejemplo si ponemos:
tail -n 8 archivo1
Mostrara las últimas 8 líneas del archivo.
-q
No muestra en la primera línea el nombre del fichero.
-v
Muestra en la primera línea el nombre del fichero.
La sintaxis del comando es tail nombreArchivo1 nombreArchivo2
Para comprimir y descomprimir archivos están los comandos gzip y bzip2. Estos dos comandos solo permiten comprimir
y descomprimir un archivo a la vez y no pueden comprimir y descomprimir directorios.
Vamos a empezar comentando primero gzip.
Gzip
Gzip se complementa con el comando gunzip que lo que hace es descomprimir archivos comprmidos con gzip.
Si queremos comprimir un archivo con gzip lo haríamos de la siguiente forma:
gzip documento
Esto crearía el archivo documento.gz. El archivo documento desaparece y se crea documento.gz que es el archivo
comprimido.
Ahora para descomprimirlo habría que hacer lo siguiente:
gzip -d documento.gz
O también:
gunzip documento.gz
Esto descomprimiría el archivo documento.gz y crearía el archivo documento.
Gzip además posee más opciones como las siguientes, algunas de ellas son aplicables también al
comando gunzip:
-d
Descomprime un archivo comprimido con gzip.
-l
Muestra información sobre el archivo comprimido que le pasemos como parametro.
-r
A esta opción se le pasa como parametro un directorio. Gzip navegara por ese directorio de forma recursiva y
comprimira todos los archivos que encuentre dentro de la estructura de directorios.
-t
Comprueba que un archivo comprimido con gzip este correcto. Si se encuentra bien no muestra ningún error y si lo
encuentra nos informa de cual es el problema.
-v
Muestra el nombre y el porcentaje de reducción por cada fichero comprimido o descomprimido.
Ahora continuamos con bzip2.
Bzip2
Bzip se complementa con el comando bunzip2 que lo que hace es descomprimir archivos comprmidos con bzip2.
Si queremos comprimir un archivo con bzip lo haríamos de la siguiente forma:
bzip2 documento
Esto crearía el archivo documento.bz2. El archivo documento desaparece y se crea documento.bz2 que es el
archivo comprimido.
Ahora para descomprimirlo habría que hacer lo siguiente:
bzip2 -d documento.bz2
O también:
bunzip2 documento.bz2
Esto descomprimiría el archivo documento.bz2 y crearía el archivo documento.
Bzip2 además posee más opciones como las siguientes, algunas de ellas son aplicables también al
comando bunzip2:
-d
Descomprime un archivo comprimido con bzip2.
-l
Muestra información sobre el archivo comprimido que le pasemos como parametro.
-t
Comprueba que un archivo comprimido con gzip este correcto. Si se encuentra bien no muestra ningún error y si lo
encuentra nos informa de cual es el problema.
-v
Muestra el nombre y el porcentaje de reducción por cada fichero comprimido o descomprimido.
Al usar cualquiera de los dos comandos al comprimir se genera un fichero .gz y desaparece el archivo de origen, al descomprimirlo
se crea el fichero comprimido y desaparece el archivo .gz.
A la hora de comprimir se obtiene mayor ratio de compresión comprimiendo con bzip2.
El comando tar permite crear a partir de varios ficheros un único archivo que los contiene. También permite
empaquetar en un único fichero uno o varios directorios.
Si quisieramos hacer un paquete de la siguiente estructura de directorios directorio1/directorio2/directorio3
habría que poner:
tar vcf directorioEmpaquetado.tar directorio1
Esto nos pondría en el archivo directorioEmpaquetado.tar toda la estructura de directorios a partir del directorio1
con todos sus archivos.
A diferencia de gzip y bzip2 no desaparece el archivo o directorios que empaquetemos. Ahora si queremos desempaquetar el
archivo que acabamos de crear había que poner lo siguiente:
tar vxf directorioEmpaquetado.tar
Con esta orden desempaquetaríamos el archivo y nos generaría de nuevo la estructura de directorios. Al
desempaquetar el archivo .tar no se borra el archivo .tar.
El comando tar se suele usar generalmente para hacer backups y se suele combinar con los comandos gzip y bzip2 para que
el archivo que se genere ocupe menos espacio.
Para empaquetar y comprimir un directorio se puede hacer en dos pasos empaquetando primero el directorio y luego
comprimiendolo o bien en un solo comando.
Si se quiere hacer con gzip para empaquetarlo y comprimirlo habría que poner:
tar cfvz directorioEmpaquetado.tar.gz directorio
Ahora para desempaquetarlo y descomprimirlo se haría de la siguiente forma:
tar xfvz directorioEmpaquetado.tar.gz
Si quisieramos desempaquetarlo y descomprimirlo a un directorio concreto se haría de la siguiente forma:
tar zxvf directorioEmpaquetado.tar.gz -C directorioDestino
Si queremos ver el contenido de un fichero con extensión tar.gz hay que poner:
tar ztvf directorioEmpaquetado.tar.gz
Ahora para hacer lo mismo pero comprimiendolo con bzip2 habría que poner:
tar jfvc directorioEmpaquetado.tar.bz2 directorio
Ahora para desempaquetarlo y descomprimirlo se pondría:
tar jfvx directorioEmpaquetado.tar.bz2
Si quisieramos desempaquetarlo y descomprimirlo a un directorio concreto se haría de la siguiente forma:
tar jxvf directorioEmpaquetado.tar.bz2 -C directorioDestino
Si queremos ver el contenido de un fichero con extensión tar.bz2 hay que poner:
tar jtvf directorioEmpaquetado.tar.bz2
Si se quiere saber el espacio libre que tenemos en un dispositivo o en una partición se puede usar el comando df.
Este comando muestra la siguiente información:
-
Sistema de ficheros del que se muestra la información.
-
Tamaño del sistema de ficheros.
-
Espacio usado en el sistema de ficheros.
-
Espacio libre en el sistema de ficheros.
-
Porcentaje usado del sistema de ficheros.
-
Donde se encuentra montado el sistema de ficheros.
El comando tiene los siguientes opciones:
-h
Muestra la información del tamaño de los archivos en bytes, KB, MB o Gygas en función de lo
que ocupe el archivo.
-k
Muestra la información del tamaño de los archivos en kylobytes.
-m
Muestra la información del tamaño de los archivos en megabytes.
Para ver el tamaño de archivos y carpetas se suele usar el comando du. Este comando tiene los siguientes parámetros:
-h
Muestra la información del tamaño de los archivos en bytes, KB, MB o Gygas en función de lo que ocupe el archivo.
-s
Muestra un resumen para todos los argumentos que se han pasado. Si pasamos como
parámetro un directorio mostrará lo que ocupa el directorio, esto
lo hara de forma recursiva.
-a
Muestra el tamaño para todos los fichero, no solo para los directorios.
Si se pasa un directorio como parámetro mostrara el tamaño de cada
directorio y de cada fichero contenido en cada uno.
--exclude=patrón
Se puede poner un patrón para que no se tengán en cuenta aquello que
coincida con el patrón puesto.
Ejemplos de uso de du:
du -sh directorio: mostrará el tamaño total de un directorio.
du -cah directorio: mostrará el tamaño total de un directorio
así como los subdirectorios que halla dentro del directorio. Se muestran
también el tamaño de cada fichero contenido en los directorios.
du -sh archivo: muestra el tamaño de un archivo.
Para ver los procesos que hay corriendo en nuestra máquina se usa el comando ps. Este comando muestra que
procesos se est? ejecutando así como el estado de los mismos.
Para ver todos los procesos que se están ejecutando se pone:
ps aux
Para buscar si se esta ejecutando algún programa en concreto se pondría:
ps aux | grep programa
Si quisieramos saber si se está ejecutando apache habría que poner ps aux | grep apache.
Para matar un proceso que se está ejecutando se usa el comando kill. Para poder matar un proceso es necesario
saber cual es su PID (Identificador de proceso). Para obtener el pid se hace con ps, si por ejemplo queremos matar
el proceso de XMMS se pondría:
ps aux | grep xmms
Esto nos devuelve una línea con información sobre el proceso, el PID es lo que viene en la segunda
columna. Si por ejemplo el ps nos devuelve 2345 para matar el proceso habría que poner:
kill -9 2345
Si se quiere saber la memoria que tenemos en la máquina hay que ejecutar el comando free. El comando muestra
tanto la memoria física del ordenador como la swap.
Para ver la memoria que esta en uso
free -m
En este caso lo mostrara en megas la memoria, pero se puede ver en bytes pasandole de parámetro
una b, con k lo mostrará en KB y con g en GB.
Hay otros parámetros interesantes como -t que nos muestra el total de RAM + SWAP y la opción -s
segundos que mostrar la información cada x segundos que le pongamos como parámetro.
Para ver el rendimiento del sistema se suele usar el comando top. Este comando muestra el uso de micro, cuanto tiempo
lleva arrancada la máquina, procesos corriendo, usos de memoria, usuarios en el sistema, los procesos que
más memoria consumen ...
Para salir de top hay que pulsar la tecla "q".
Pulsando la tecla "k" nos pregunta que proceso queremos terminar.
Pulsando la tecla "u" nos pregunta de que usuario queremos ver los usuarios y nos los muestra.
Pulsando la tecla "M" ordena los procesos por consumo de memoria.
Este comando nos permite realizar la búsqueda de ficheros dentro de nuestro sistema. Su sintaxis básica es la siguiente:
find path -name nombreArchivo(el nombre entre comillas)
Las búsquedas que se realizan con el comando find se hacen de fornma recursiva.
Por ejemplo para encontrar el archivo "prueba" dentro del directorio actual en el que nos encontramos habría que poner lo siguiente:
find . -name "prueba"
El punto significa el directorio actual.
Por defecto la búsqueda del archivo es case-sensitive lo que quiere decir que se buscará el nombre del archivo según se
haya escrito diferenciando entre mayúsculas y minúsculas en el nombre de lo que se va a buscar. En el ejemplo anterior hemos buscado el
archivo "prueba" pero si hubiese un archivo llamado "pruebA" no nos lo mostraría. Para hacer que busque todos los archivos sin tener en cuenta
mayúsculas y minúsculas habr? que escribir el comando de la siguiente manera:
find . -iname "prueba"
El comando find tiene una gran cantidad de opciones, vamos ha enumerar y a explicar las principales:
-
-type: especifica que tipo de fichero se quiere buscar. Los tipos de fichero que se le pueden poner para buscar son los siguientes:
- d - directorios
- f - ficheros
- l - enlaces simb?icos
- s - sockets
-
-perm: se busca ficheros que posean los permisos que se indican. Si se pone delante de los permisos "-" se busca aquellos que no posean esos permisos.
-
-user: se buscan ficheros cuyo propietario sea el usuario indicado.
-
-group: se buscan ficheros que sean miembro de determinado grupo.
-
-nouser: se buscan ficheros cuyo propietario sea el usuario indicado.
-
-nogroup: se buscan ficheros que sean miembro de determinado grupo.
-
-size: busca ficheros de un determinado tamaño.
-
-newer: busca ficheros que sean más nuevos que el fichero 1 pero más antiguos que el fichero 2..
-
-mtime: busca ficheros que han sido modificados antes de x d?s.
Si pone el car?ter "-" antes de los d?s se buscan ficheros en ese mismo día o antes que han sido modificados.
Si se pusiese "-mtime -5" se buscarían aquellos ficheros que han sido modificados hace 5 días. Si se pone el
carácter "+" se buscan ficheros que no han sido modificados en los días pasados como parámetros.
Ejemplos de busquedas:
Buscar el archivo "abc" en el directorio actual:
find . -name "abc"
Buscar archivos cuyo nombre sea "abc" sin tener en cuentas mayúsculas ni minúsculas:
find . -iname "abc"
Buscar archivos cuya primera letra sea A,B o C en el directorio /etc
find /etc -name "[ABC]*"
Buscar archivos que terminen en "wd" en el directorio /etc, sin importar las mayúsculas y
minúsculas y redirigir la salida al fichero find.log
find /etc -iname "*wd" > find.log
Realizar lo mismo de lo anterior solo que mandando los mensajes de error al fichero findErrors.log
find /etc -iname "*wd" 2>findErrors.log
La misma búsqueda que la anterior haciendo que no se muestren los mensajes de error por la pantalla:
find /etc/ -iname "*wd" 2>/dev/null
Buscar en el directorio actual los directorios que hay:
find . -type d
Buscar en el directorio actual los directorios que empiezan por A:
find . -type d -name "A*"
Búsquedas complejas
Hasta ahora las búsquedas que hemos visto son búsquedas sencillas pero ahora voy a poner ejemplos de búsquedas más
complejas ayudandonos de pipes.
Buscar en el directorio /etc el archivo "passwd" y buscar dentro si hay un usuario llamado root:
find /etc -name "passwd" | xargs grep "root"
Hacer la misma búsqueda evitando que se muestren mensajes de error por pantalla
find /etc -name "passwd" 2>/dev/null | xargs grep "root"
El comando xargs lo que permite es la ejecución de un comando tomando como parámetro de entrada la entrada standard.
Para el ejemplo anterior lo que haría sería buscar el archivo "passwd" dentro del directorio /etc y en el caso de encontrar alguna
coincidencia se ejecutaría el comando grep que buscaría la cadena de texto "root". En el caso de que se produzcan errores en la busqueda
del fichero "passwd" debido por ejemplo a la falta de permisos para acceder a un determinado directorio estos se mandarán a /dev/null y no
veríamos dichos mensajes por la pantalla.
Hacer la misma búsqueda que en el caso anterior pero esta vez que se muestren todos los usuarios del archivo passwd excepto "root":
find /etc -name "passwd" 2>/dev/null | xargs grep -v "root"
Borrar los archivos que empiezen por "A" en el directorio actual y hacia abajo:
find . -type f -iname "A*" | xargs rm
Lo mismo que en el caso anterior pero que se pida confirmación antes de borrar
find . -type f -name "A*" -exec rm -i {} \;
La opción -exec permite realizar lo mismo que si se pone xargs pero sin usar un pipe. La sintaxis de -exec es la siguiente:
find path -name nombreArchivo -exec comandoAEjecutar {} \;
Cuando se usa la opcion -exec el comando find todos los resultados obtenidos con a exec para que trabaje con cada uno. Lo que pasa es que en
algunos sistemas hay un límite en la longitud de la cadena que se le pasa a exec por lo que al rato de estar ejecutandose esta
búsqueda termina por error. Para estos casos es mejor utilizar xargs.
He puesto esta opción porque al querer ejecutar el borrado interactivo de los ficheros con xargs no funcionaba bien del todo pues no me
dejaba responder a si quería o no borrar un fichero.
Buscar archivos dentro del nuestro directorio de trabajo que contegan sh en su nombre y ver su información.
find $HOME -name "*sh*" | xargs ls -l
El "$HOME" es una variable del sistema que define donde se encuentra el directorio de trabajo de un usuario.
El caracter "~" realiza la misma función.
Buscar aquellos ficheros que han sido modificados en los últimos 14 días:
find . -type f -mtime -14
Si se quiere buscar más de un fichero con el comando find se hace usando el parámetro -o. Lo que se consigue con este
parámetro es hacer busquedas en las que se cumpla o una condición u otra. Por ejemplo para buscar todos los
fichero con extensión "xml" y "xsl" del directorio actual se haría de la siguiente forma:
find . -name "*.xml" -o -name "*.xsl"
Si se quieren dejar tareas que se ejecuten de forma periódica se puede usar el comando crontab. Para crear o editar
un fichero de cron se usa el comando crontab -e. Al escribir este comando se abre un archivo vacio listo para ser editado con
VI. En este nuevo fichero se añadirán las tareas que deseemos programar. La sintaxis de cada línea es la
siguiente:
minutos (0 - 59) hora (0 - 23) día del mes (1 - 31) mes (1 - 12) día de la semana (0 - 6, el domingo es 0) comando a ejecutar
En linux podemos comparar el contenido de dos archivos o ver las diferencias entre dos directorios usando el comando diff. La
sintaxis básica es la siguiente:
diff fichero1 fichero2
diff directorio1 directorio2
En la salida que se muestra al comparar dos archivos las líneas que comienzan con los caracteres "%<" corresponden a
líneas del primer fichero, mientras que las que empiezan con "%>" corresponden a líneas del segundo fichero.
Si por ejemplo tenemos dos directorios y solo queremos ver que ficheros son diferentes entre los dos habría que poner:
diff -q directorio1 directorio2
Si al comparar dos archivos se quiere que no se tengan en cuenta las mayusculas y las minusculas hay que poner:
diff -i fichero1 fichero2
Si al comparar dos archivos no se quiere que se tengan en cuenta los blancos hay que poner:
diff -w fichero1 fichero2
08 de Junio del 2008
Añadido el comando diff.
19 de Abril del 2008
Añadido en la sección del comando tar lo siguiente:
-
Como ver el contenido de un fichero tar.gz
-
Como ver el contenido de un fichero tar.bz2
-
Descomprimir y desempaquetar el contenido de un fichero tar.gz a un directorio en concreto
-
Descomprimir y desempaquetar el contenido de un fichero tar.bz2 a un directorio en concreto
18 de Febrero del 2008
Añadido el comando crontab.
Añadido como buscar más de un fichero con el comando find.
09 de Julio del 2006
Añadido el comando find.
08 de Agosto del 2005
Añadidos nuevos comandos y realizada alguna modificación sobre los que ya había.
Las secciones añadidas de comandos han sido las siguientes:
-
Ver tamaño de archivos y carpetas
-
Ver procesos
-
Matar procesos
-
Memoria disponible
-
Rendimiento del sistema
03 de Abril del 2005
Añadidos nuevos comandos y realizada alguna modificación sobre los que ya había.
Las secciones añadidas de comandos han sido las siguientes:
-
Crear directorios.
-
Ver el contenido de archivos.
-
Comprimir y descomprimir archivos.
-
Empaquetar directorios. Comando tar.
-
Ver espacio libre en sistemas de ficheros.
30 de Marzo del 2005
Subida la primera versión del manual.