Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2024
Configuración de Sistemas
Operativos
Contenido de la unidad
1 ¿Qué es un shell de Linux? __________________________________________________________4
2 El comando man de Linux ___________________________________________________________4
3 El comando clear de Linux ___________________________________________________________4
8 Comodines ______________________________________________________________________12
8.1 Actividades _________________________________________________________________________12
9 Comando cp _____________________________________________________________________13
9.1 Sintaxis ____________________________________________________________________________13
9.2 Principales opciones del comando cp ____________________________________________________13
10 Comando rm ___________________________________________________________________14
10.1 Sintaxis __________________________________________________________________________14
10.2 Principales opciones del comando rm __________________________________________________14
11 Enlaces _______________________________________________________________________15
12 Introducción a la redirección ______________________________________________________16
12.1 Redirección _______________________________________________________________________16
12.2 Uso de /dev/null ___________________________________________________________________17
15 Tuberías ______________________________________________________________________24
4 El comando ls de Linux
El comando ls (del inglés list, cuya traducción es lista, listado o listar) es un comando que muestra un listado, de los archivos,
enlaces o directorios, de un determinado directorio. Los resultados se muestran por defecto ordenados alfabéticamente.
Nota: En GNU/Linux, existen dos comandos distintos para mostrar el contenido de directorios: ls (list) y dir (directory). Son
dos paquetes individuales, pero casi idénticos en cuanto a su funcionamiento.
La diferencia más notable entre ambos comandos es la forma en la que se expresan los espacios entre palabras de los
nombres de los ficheros: ls encasilla dentro de comillas a los nombres que consisten en más de una palabra mientras que dir
añade guiones invertidos antes de cada espacio.
4.1 Sintaxis
El comando ls responde a la siguiente sintaxis para opciones simples:
➢ Si nos encontramos en el directorio
ls [opciones…]
Ejemplos
$ ls -l
➢ Si queremos listar un directorio en el que no nos encontramos posicionados
ls [opciones…] /ruta/absoluta/del/directorio
ls [opciones…] ./ruta/relativa/del/directorio
Ejemplos
$ ls –l /etc/dhcp
$ ls –la ./../Prácticas
NOTA: Podemos listar el contenido de varios directorios en un solo comando, ya que el comando ls aceptará un número
arbitrario de rutas para listar.
Ejemplos
$ ls –l /etc/dhcp /home ./../Redes
4.1.1 Opciones simples
En este apartado vamos a ver algunas de las opciones principales del comando ls, pero si quieres ampliar la información de
este comando puedes hacer uso del man
$ man ls
Opciones:
➢ -l → Muestra el contenido del directorio en formato detallado y ordenado por nombre. La información en modo
detalle nos mostrará, en columnas de izquierda a derecha, la siguiente información:
▪ La primera columna muestra el tipo y los permisos del archivo.
▪ La segunda columna muestra el número de enlaces de referencia del archivo.
▪ La tercera columna muestra el propietario al cual pertenece el archivo.
▪ La cuarta columna muestra el grupo al que pertenece el archivo.
▪ La quinta columna muestra el tamaño, por defecto en bytes.
▪ La sexta columna muestra el mes de la última modificación en el archivo.
▪ La séptima columna muestra el día de la última modificación en el archivo.
▪ La octava columna muestra la hora de la última modificación en el archivo.
▪ La novena columna muestra el nombre del archivo y/o carpeta.
➢ -o → Nos va a permitir ver en detalle el contenido de un directorio al igual que la opción -l, solo que a diferencia de
este, ls -o no nos va a mostrar la columna de grupos (información de grupo) al que pertenecen los elementos
que se listan.
➢ -R → Muestra el contenido del directorio indicado / actual, así como el contenido de los subdirectorios que este
contiene. Es decir, Lista recursivamente el directorio que se le ha indicado
➢ -A → Muestra todo el contenido del directorio, incluyendo los archivos ocultos. Excepto ‘.’ y ‘..’
➢ -N → Muestra el nombre de los archivos tal y como son, es decir, sin comillas
➢ -h → Muestra los tamaños de archivo en términos de kiB,MiB, etc.
➢ --color=[Always | auto | never] → Nos permite mostrar el contenido de un directorio con colores.
4.2 Actividades
Estando en tu directorio personal, realiza las siguientes actividades:
1- Muestra el contenido del directorio en el que te encuentras
2- Repite la actividad anterior, pero mostrando el detalle de los ficheros que contiene y los ficheros ocultos
3- Mostrar todos los ficheros en modo detalle, incluido los ocultos, de tu directorio personal (sin que aparezcan los
directorio . y ..)
4- Muestra de forma detalla los archivos de /etc ordenados por tamaño de menor a mayor
5- Muestra de forma detalla los archivos de /etc ordenados por tamaño de mayor a menor
6- Muestra de forma detalla los archivos de /dev ordenados por fecha de modificación (del más antiguo al más nuevo).
Debe mostrarse el tamaño con las unidades de medidas más adecuadas según el tamaño.
9- Muestra el contenido de tu directorio, de forma detallada, sin color, pero haz que los directorios se muestren con
una barra al final (/)
5 El comando cd de Linux
Los comandos básicos Linux siempre nos ayudan a trabajar fácil y rápidamente en la terminal, el comando Linux cd es uno de
esos comandos básicos de Linux que siempre vamos a utilizar, ya que nos sirve para cambiar el directorio actual o de trabajo,
es decir, nos va a permitir ubicarnos en una carpeta o directorio específico.
Se puede decir que cd viene de Change Directory o Cambiar Directorio y la forma de usar este comando Linux tiene varios
trucos que iremos viendo a lo largo de esta guía.
5.1 Sintaxis
El comando cd responde a la siguiente sintaxis:
cd [opciones] [dir]
donde dir representa la ruta absoluta o relativa del directorio al que queremos cambiar.
IMPORTANTE: Teniendo en cuenta que el directorio principal del usuario que inicia la sesión "/home/usuario/" en el prompt
del terminal de comandos es abreviado y mostrado como "~".
➢ Cómo cambiar del directorio actual a un nuevo directorio con comando cd en Linux.
Para esto basta con ejecutar cd más el nuevo directorio deseado, por ejemplo
$ cd ./../Documentos/Trabajo
$ cd ./Descargas
➢ Cómo cambiar a un nuevo directorio usando la ruta completa con comando cd de Linux
Es normal que cuando accedemos a directorios, especialmente los directorios del sistema operativo, estos cuenten
con más subdirectorios dentro de él. Por ejemplo, podemos ir directamente a la ruta /usr/local/lib ejecutando:
$ cd /usr/local/lib
➢ Cómo retornar al directorio anterior en el cual estábamos está trabajando anteriormente con comando cd en
Linux:
Esto es práctico ya que muchas veces debemos ir a un directorio solo para una determinada consulta y luego
debemos retornar nuevamente al directorio inicial de trabajo. En este caso debemos ejecutar lo siguiente:
$ cd -
➢ Cómo cambiar el directorio actual al directorio padre del mismo con comando cd de Linux:
Para realizar este proceso, de retorno al directorio principal, usaremos la siguiente línea:
$ cd ..
Si deseamos subir dos niveles:
$ cd ../..
$ cd ../../
➢ Cómo movernos al directorio de inicio (home) con comando cd en Linux:
Para retornar directamente al directorio home de Linux contamos con alguna de las siguientes opciones
$ cd
$ cd ~
Por ejemplo, si desea navegar al directorio Descargas, que se encuentra dentro de su directorio de inicio, escriba:
$ cd ~/Downloads
También puede navegar al directorio de inicio de otro usuario usando la siguiente sintaxis:
$ cd ~usuario
➢ Cambio del directorio actual a un subdirectorio, el cual contiene espacios en su nombre:
Para tal fin debe utilizarse antes de cada espacio la barra inclinada a izquierda (\), o las comillas tal y como se
muestra en los siguientes ejemplos:
$ cd Directorio\ nuevo
$ cd “Directorio nuevo”
$ cd ‘Directorio nuevo’
$ cd /home/usuario/”Directorio nuevo”
$ cd “/home/usuario/Directorio nuevo”
$ cd /home/usuario/”Directorio nuevo”/otro
$ cd “/home/usuario/Directorio nuevo/otro”
5.3 Actividades
IMPORTANTE: Antes de comenzar a realizar las actividades, asegúrate de tener creado un nuevo usuario, cuyo “username”
sea alias1 (Cambia alias por el valor que te corresponda)
Ayuda: https://youtu.be/lYJHmD0kKGE
Suponiendo que actualmente te encuentras en tu directorio personal, realiza las siguientes actividades.
11- Muévete al directorio dhcp que se encuentra en la carpeta etc de la raíz (usando ruta absoluta)
16- Utilizando ~, muévete al home, (directorio personal), de alias1 (debes ejecutar el comando usando sudo delante del
comando)
6 Comando mkdir
El comando mkdir (make directory) nos sirve para crear directorios en el sistema de ficheros, tanto con una ruta relativa
como con una ruta absoluta. El modo de empleo es:
$ mkdir [opcion] NuevoDirectorio
$ mkdir [opcion] NuevoDirectorio1 NuevoDirectorio2 …
6.1 Sintaxis
El comando mkdir responde a la siguiente sintaxis:
mkdir [opciones] [directorio1]
mkdir [opciones] [directorio1] [directorio2] [etc]
6.4 Actividades
Suponiendo que actualmente te encuentras en tu directorio personal, realiza las siguientes actividades.
18- Créate en tu directorio personal, una nueva carpeta llamada “tmp1” (usando ruta absoluta)
19- Créate en tu directorio personal una nueva capeta llamada “tmp2” y una carpeta “bórrame” en tmp1 (creada en una
actividad anterior)
Debes usar un único comando y rutas relativas
20- Con un único comando, y sin usar {}, crea en tmp1 un directorio “Apuntes” y dentro de este una carpeta “Sistemas”.
21- Con un único comando y haciendo uso de las llaves ({}) créate en tmp2 la siguiente estructura:
22- Con un único comando y haciendo uso de las llaves ({}) créate en tmp2 la
siguiente estructura (parte ya estará creada de la actividad anterior):
23- Con un único comando y haciendo uso de las llaves ({}) créate en tmp3 la siguiente estructura:
7 Comando touch
El comando touch nos sirve para actualizar la fecha de acceso y modificación de un archivo/directorio. Por defecto pone la
fecha y hora actual.
En caso de que el fichero indicado en el comando no exista, lo creará, salvo que le indiquemos lo contrario.
7.1 Sintaxis
El comando touch responde a la siguiente sintaxis:
touch [opción]… archivo….
7.3 Actividades
Suponiendo que actualmente te encuentras en tu directorio personal, realiza las siguientes actividades.
24- Créate en un fichero vacío en tu directorio personal llamado alias1.txt
25- Créate, con un solo comando los ficheros alias1.txt en el escritorio y alias1.txt en Documentos
26- Créate en tu directorio personal los ficheros alias2.txt, alias3.txt,alias5.txt, de la forma más corta posible
27- Actualiza la fecha de acceso del fichero alias1.txt de tu directorio personal, para que sea la fecha y hora actual
28- Actualiza la fecha de modificación de los ficheros alias1.txt del Escritorio y alias1.txt de documentos, para que sea la
fecha y hora actual
29- Actualiza la fecha de acceso y modificación del fichero alias1.txt de tu directorio personal para que sea 31 de enero
de 2023
8 Comodines
Los comodines son patrones de búsqueda. Un patrón es una secuencia de caracteres que nos permite seleccionar palabras,
frases o secuencias de caracteres.
Así, por ejemplo, un patrón, te puede ser de utilidad para seleccionar todos aquellos archivos de un directorio, que
comiencen por una determinada letra o secuencia de letras.
? →Representa un único carácter. Así por si ejecutas ls /dev/sda? te listará todos los archivos que sean igual a /dev/sda mas
un único carácter, que puede ser cualquier letra o número.
* →Este comodín representa desde nada, hasta cualquier cantidad de caracteres y dígitos.
[] → En este caso, este comodín representa un rango, ya sea de caracteres o de números. Siguiendo con el ejemplo anterior…
{} → Esto en realidad es más un conjunto de comodines separados por comas. Igual que en casos anteriores, podrías ejecutar
la siguiente orden…
[!] → El funcionamiento de este comodín es similar a [], salvo que representa justo lo contrario. Es decir, se trata de listar
todo aquello que no esté en ese rango.
8.1 Actividades
Suponiendo que actualmente te encuentras en tu directorio personal, realiza las siguientes actividades.
30- Muestra los archivos que hay en /dev que comienzan por tty y luego tienen dos caracteres
31- Muestra los archivos que hay en /dev que comienzan por tty y luego tienen dos caracteres, el primero de ellos
puede ser cualquier digito, pero el segundo sólo puede ser el 1 o 2
32- Muestra los archivos que hay en /dev que comienzan por tty y luego tienen dos caracteres, el primero de ellos
puede ser cualquier digito, pero el segundo no puede ser ni 1 ni 2
33- Muestra los archivos que hay en /dev que contienen un 1 por el medio del nombre (aunque también podría tenerlo
al principio o al final).
9 Comando cp
El comando cp se usa para copiar objetos como archivos, directorios, enlaces simbólicos, etc. del sistema de archivos como
UNIX.
cp (viene del inglés copy -> copiar).
En este apartado vamos a ver algunos ejemplos de uso junto con los modificadores que lo acompaña.
9.1 Sintaxis
El comando cp responde a la siguiente sintaxis:
cp [opciones] file …
cp [OPTION]... [-T] ORIGEN DESTINO
cp [OPTION]... ORIGEN... DIRECTORIO_DESTINO
cp [OPTION]... -t DIRECTORIO_DESTIN ORRIGEN...
10 Comando rm
El comando rm se usa para eliminar los ficheros, aunque por defecto no elimina directorios
rm (viene del inglés remove -> eliminar o borrar).
Nota: Para ser más precisos, rm elimina las referencias a los objetos del sistema de archivos
En este artículo vamos a ver algunos ejemplos de uso junto con los modificadores que lo acompaña, así como el cuidado que
se debe tener al momento de usarlo.
10.1 Sintaxis
El comando rm responde a la siguiente sintaxis:
rm [opciones] file …
11 Enlaces
En los siguientes enlaces puedes encontrar información del comando usado para crear enlaces
- https://es.joecomp.com/ln-command-linux
- https://www.freecodecamp.org/espanol/news/tutorial-de-enlace-simbolico-en-linux-como-crear-y-remover-un-
enlace-simbolico/
- https://www.fpgenred.es/GNU-Linux/ln.html
12 Introducción a la redirección
Los flujos, la redirección y las tuberías son algunas de las herramientas más potentes de la línea de comandos en Linux. Linux
trata la entrada y salida de comandos como un flujo de datos que podemos manipular.
Normalmente la entrada estándar es el teclado y la salida estándar la pantalla, pero se pueden redirigir estos flujos de
entrada y salida hacia otros comandos o archivos.
La tubería ‘|’ se utiliza para redirigir la salida de un comando hacia otro. Esto supone una magnífica herramienta de conexión
entre comandos, lo cual permite realizar tareas complejas combinando varias herramientas sencillas. (Lo veremos más
adelante).
Para empezar a entender el redireccionamiento hay que comprender primero los diferentes tipos de flujos de entrada y
salida con los que podemos trabajar en Linux.
Todo comando en Linux posee tres canales básicos por donde fluye la información y estos canales son:
• Entrada Estándar / Standard Input (stdin): es el mecanismo por el cual un usuario le indica a los programas la
información que estos deben procesar. Esta información suele introducirse por el teclado.
Ejemplos:
$cat
$wc
Al terminar de procesar la información dada como argumentos el comando mostrará un mensaje en la pantalla
donde se ha ejecutado. Dicha pantalla o ventana será la salida estándar del comando ejecutado.
• Error Estándar / Standard Error Output ( stderr ): es utilizado para mostrar mensajes de error que surjan durante el
transcurso de su ejecución. Al igual que stdout, stderr será la pantalla donde se procesaron las instrucciones.
Ejemplos:
$ rm esteArchivoNoExiste
rm: no se puede borrar «esteArchivoNoExiste»: No existe el fichero o el directorio
$ rmdir /carpetaInexistente
rmdir: fallo al borrar «/carpetaInexistente»: No existe el fichero o el directorio
De igual forma stderr devolverá mensajes que indicarán los errores de los comandos ejecutados.
12.1 Redirección
Para redireccionar la salida estándar de un comando a un archivo se utiliza el símbolo > después del cual debe indicarse el
nombre del archivo que se creará:
$ cat /etc/passwd > copia_passwd
Importante: Si el archivo copia_passwd existe previamente, se sobrescribirá. Para agregar los valores sin borrar el contenido
existente, se utiliza >> .
Para redireccionar el contenido de un archivo a la entrada estándar de un comando se utiliza <. En este caso, el flujo de datos
va de derecha a izquierda. Este tipo de redirección se suele utilizar con comandos como tr que no lee archivos directamente.
Normalmente se suele redireccionar la salida estandar pero si se quiere redireccionar la salida de errores podemos utilizar 2>
. Para redireccionar ambos simultáneamente, se usa &>.
$ ls x* z*
ls: z*: No such file or directory
xaa xab
Muestra un error porque no existe ningún archivo que empiece por z y muestra los archivos que empiezan por x
$ ls x* z* > stdout.txt 2> stderr.txt
Se ejecuta el mismo comando anterior, pero redirigiendo la salida de errores al fichero stderr.txt, y la salida estándar al
fichero stdout.txt
$ ls w* y*
ls: w*: No such file or directory
yaa yab
Se ejecuta ls de nuevo en el directorio y muestra un error porque no existe ningún archivo que empiece por w y muestra los
archivos que empiezan por y.
$ ls w* y* >> stdout.txt 2>> stderr.txt
Se ejecuta el mismo comando anterior pero redirigiendo la salida de errores al fichero stderr.txt, y la salida estándar al
fichero stdout.txt . Como estos ficheros contenían información se ha utilizado el redireccionador >> y 2>> para agregar el
contenido y no sobrescribirlo.
$ cat stdout.txt
xaa
xab
yaa
yab
Se muestra el contenido del fichero al que hemos redireccionado la salida estándar. Como se observa contiene la salida
estándar de las dos ejecuciones del comando ls.
$ cat stderr.txt
ls: z*: No such file or directory
ls: w*: No such file or directory
Se muestra el contenido del fichero al que ha redireccionado la salida de errores. Como se observa contiene la salida de
errores de las dos ejecuciones del comando ls.
https://blog.desdelinux.net/que-es-devnull-y-como-puede-ayudarte/
13 Comando grep
El comando grep es considerado como uno de los comandos más útiles en Linux y sistemas operativos tipo Unix por su
potente buscador de patrones o palabras en archivos. Ya viene instalado en todos los sistemas Linux, por lo que no es
necesario instalarlo manualmente.
Su sintaxis es la siguiente:
grep [Opciones] [Cadena de búsqueda o patrón] [Ruta del archivo]
A primera vista, puede parecer un comando poco útil, sin embargo, los administradores de sistemas que manejan muchos
servicios con varios archivos de configuración, lo usan para consultar o buscar líneas específicas dentro de esos archivos.
Ahora que ya conocemos un poco más el uso que tiene, vamos a ver algunos ejemplos para entenderlo mejor.
• Buscar las líneas de todos los ficheros que hay en /etc que contenga el texto ssh (sin mostrar los mensajes de error
que se puedan producir:
$grep ssh /etc/* 2> /dev/null
• Buscar las líneas de todos los ficheros que hay en /etc que contenga el texto ssh ignorando mayúsculas /minúsculas
(sin mostrar los mensajes de error que se puedan producir:
$grep –i ssh /etc/* 2> /dev/null
• Muestra el número de líneas de los ficheros que hay en /etc y comienzan por ld que contengan el texto ssh
ignorando mayúsculas /minúsculas (sin mostrar los mensajes de error que se puedan producir:
$grep –ic ssh /etc/ld* 2> /dev/null
• Muestra el número de líneas de los ficheros que hay en /etc y comienzan por ld que contengan el texto ssh
ignorando mayúsculas /minúsculas (sin mostrar los mensajes de error que se puedan producir:
$grep –ic ssh /etc/ld* 2> /dev/null
• Muestras las líneas del fichero /etc/group que contienen la palabra sudo
$grep sudo /etc/group
• Muestras las líneas del fichero /etc/group que contienen la palabra sudo indicando el número de línea en la que se
encuentra
$grep –n sudo /etc/group
• Muestras las líneas de los ficheros que hay en /etc y comienzan por gro que contienen la palabra sudo indicando el
número de línea en la que se encuentra
• Muestras las líneas de los ficheros que hay en /etc y comienzan por gro que contienen la palabra sudo indicando el
número de línea en la que se encuentra. (No debe aparecer el nombre del fichero en el que se ha encontrado)
• Muestras las líneas del fichero /etc/group que comienzan por sa (independientemente de cómo se haya escrito)
$grep –i ^sa /etc/group
• Muestras las líneas del fichero /etc/group que contienen magarcia (independientemente de cómo se haya escrito)
$grep –i magarcia /etc/group
• Muestras las líneas del fichero /etc/group que comienzan por magarcia (independientemente de cómo se haya
escrito)
$grep –i ^magarcia /etc/group
• Muestras las líneas del fichero /etc/group que terminen por magarcia (independientemente de cómo se haya
escrito)
$grep –i magarcia$ /etc/group
• Muestras las líneas del fichero /etc/group que terminen por magarcia (independientemente de cómo se haya
escrito) y sin resaltar en color la coincidencia
$grep –i –color=never magarcia$ /etc/group
13.3 Ampliación
En el siguiente enlace, puede encontrar información más amplia sobre el comando grep
https://www.zeppelinux.es/el-comando-grep/#an_n3111
14 Comando find
El comando find de Linux es extremadamente potente, esto es, si logras usarlo adecuadamente, no hay nada mejor para
hacer todo tipo de búsquedas de archivos y carpetas.
Hay por supuesto otros comandos de búsqueda como awk, sed y grep pero están más enfocados a buscar "dentro" de los
archivos. El comando find es mucho más útil para encontrar archivos y directorios.
La sintaxis es muy simple:
find [ opciones ][ ruta ] [ criterios_de_búsqueda ] [ acción ]
Opciones:
-P | -L -P Nunca sigue los enlaces simbólicos (opción por defecto). Cuando find examina o imprime
información sobre archivos, y el archivo es un enlace simbólico, se tomará la información del
enlace simbólico en sí, y no del destino al que apunta
-L Seguir enlaces simbólicos. Cuando find examina o imprime información sobre archivos, y el
archivo es un enlace simbólico, se tomará la información del archivo al que apunta el enlace y
no del enlace en sí.
Ruta
La ruta es cualquier directorio que se quiera indicar y desde donde se va a iniciar la búsqueda. Por ejemplo "/etc",
"/home/itteacher", "/", "."
Si no se indica la ruta, se toma en cuenta entonces el directorio activo, es decir el directorio de trabajo actual (.)
Criterios de búsqueda
-type [f|d|l] Busca archivos de un tipo dado (f regular, d directorio, I enlace simbólico)
-name nombre Encuentra los archivos cuyo nombre coincida con el dado (-iname para que no distinga entre
mayúsculas y minúsculas).
-inmae nombre Encuentra los archivos cuyo nombre coincida con el dado (no distingue entre May / Mín)
-user usuario Encuentra los archivos cuyo propietario coincida con el indicado
-group grupo Encuentra los archivos cuyo grupo coincida con el indicado
-amin n Encuentra ficheros a los que se ha accedido hace n minutos
-mmin n Encuentra ficheros modificados hace n minutos
-perm mode Encuentra ficheros con los permisos indicados (octal o simbólico)
-size n[ckMG] Encuentra ficheros del tamaño indicado -- c (byte), k (kilobyte), M (megabyte), G (gigabyte)
-empty Encuentra ficheros vacíos.
Varias opciones aceptan argumentos numéricos (n). Estos pueden ser indicados de tres maneras posibles:
▪ +n → Busca valores mayor que n
▪ -n → Busca valores menor que n
▪ n → Busca exactamente el valor n
A continuación, vamos a ver algunos ejemplos para entender mejor este comando:
Ejemplos
Busca todos los archivos cuyo nombre sea "apuntes" desde el
find -name apuntes
directorio actual
Igual que el anterior, pero sin distinguir entre mayúsculas y
find . -iname apuntes
minúsculas.
Busca todos los archivos cuyo nombre sea "apuntes" desde el
find /home/itteacher -name apuntes
directorio /home/itteacher
find / -name "[0-9]*" Busca ficheros desde el raíz que comiencen por un dígito
Busca ficheros desde el raíz que comiencen por un vocal (sin
find / -iname "[aeiou]*"
distinguir May/mín.)
find / -name "[aA]*.txt" Busca ficheros que empiezan por A ó a y terminan en .txt
Busca desde /home todos los ficheros que pertenecen a
find /home -user itteacher
itteacher
find /home -user itteacher –name “*tema*” Igual que el anterior, pero cuyo nombre contenga tema
find /etc /home –group smr Busca en el árbol /etc y /home, los ficheros que pertenecen al
grupo smr.
find / -mmin -30 -type f Busca ficheros regulares que han sido modificados en los últimos
30 minutos
find / -mmin 30 -type f Busca ficheros regulares que han sido modificados, exactamente,
hace 30 minutos
find / -mmin +15 -type d Busca directorios que han sido modificados hace más de 15
minutos
find / -mmin +10 -mmin -30 -type d Busca ficheros regulares que han sido modificados hace más de
10 minutos, pero menos de 30.
NOTA: Si usamos varios criterios, y no empleamos los comparadores lógicos, se usará el -and
Ejemplos de usos:
Busca todos los archivos que hay en /home y todos sus subdirectorios que comiencen con 'apuntes' (sin distinguir
mayúsculas/minúsculas), y que hayan sido modificados o cambiados en las últimas dos horas (120 minutos).
$ find /home -iname 'apuntes*' -and -mmin -120
Busca todos los archivos que hay en /home y todos sus subdirectorios que comiencen con 'tema' y después siga un ‘_’ o un ‘-‘
y que NO pertenezcan al usuario itteacher.
$ find /home -name 'tema[_-]*' -not -user itteacher
Busca todos los archivos que hay en /home y todos sus subdirectorios que contengan la palabra mayo, (sin importar si lleva
mayúsculas o minúsculas), o cualquier otro archivo que encuentre que pertenezca al grupo 'smr'.
$ find /home -iname '*mayo*' -or -group smr
Ten en cuenta que la ejecución del comando se produce sin preguntar. Dependiendo de los parámetros de búsqueda
seleccionados y del comando dado, la ejecución del comando find con el parámetro “-exec” puede causar graves daños al
sistema.
Para limitar el riesgo, existe el parámetro “-ok” que es similar al parámetro “-exec”. Esto fuerza la confirmación interactiva
del procesamiento de cada archivo individual encontrado:
15 Tuberías
Quizás la utilidad más potente de la entrada/salida estándar es la posibilidad de encadenar comandos a través del uso de
“tuberías” (pipes), que permiten que la salida de un comando sirva como entrada a otro.
Por ejemplo, si queremos ver el contenido del directorio /usr/bin podemos utilizar el comando ls como sigue:
$ ls /usr/bin
El problema es que este directorio contiene demasiados ficheros y éstos desaparecen de la pantalla muy rápidamente al
visualizarlos. Para solucionarlo, sería útil tener alguna forma de visualizar textos que dividiera la visualización en páginas a
través de las cuales pudiéramos navegar con mayor comodidad.
El comando more realiza una función como la que hemos descrito. Así, si deseamos visualizar página a página el contenido de
un fichero llamado README situado en /usr/share/doc/, podemos hacer lo siguiente:
$ more /usr/share/doc/README
El comando visualiza el contenido del fichero, pero deteniéndose cuando el texto ocupa toda la página e indicando con un
texto en la parte inferior el porcentaje del total que se ha mostrado hasta el momento. Pulsando la barra espaciadora
podemos ir viendo el resto de páginas y, pulsando la tecla ‘q’ finalizar la visualización.
Aunque el comando more parece adecuado para el problema que planteamos antes, la cuestión es ¿cómo lo aplicamos al
resultado de visualizar el contenido de un directorio con ls si necesita que le proporcionemos un fichero como argumento? La
solución consiste en encadenar la salida del comando ls y usarla como entrada para el comando more a través de una
“tubería”. Para ello utilizaremos el símbolo ‘|’de la siguiente forma:
$ ls /usr/bin | more
Como resultado, obtenemos la salida que proporciona ls pero dividida en páginas.
Con el comando less puedes hacer lo mismo que con more, pero con la ventaja de que puedes avanzar y retroceder en el
archivo. Prueba a repetir los ejemplos aquí usados, cambiando more por less.
Supongamos ahora que queremos ver el contenido del directorio /usr ordenado inversamente por nombre. Para ello
podremos conectar la salida del comando ls con el comando sort.
$ ls /usr | sort –r
En el caso d que la información obtenida como resultado, fuera muy extensa, podríamos pasarlo a un paginador (more o less)
$ ls /usr | sort –r | more
Puedes utilizar el operador | (pipe) entre dos comandos para dirigir el stdout del primero al stdin del segundo. Podrás
construir un conducto más largo agregando más comandos y más operadores de conductos. Cualquiera de los comandos
puede tener opciones o argumentos.
command1 | command2 paramater1 | command3 parameter1 parameter2 | command4