En Linux existe un directorio inicial, que se crea al formatear el disco, dentro del cual se generan todos los restantes ficheros y directorios. Éste recibe el nombre de directorio raíz y se presenta por: /. Debido a esta característica la estructura del sistema de ficheros es jerárquica y para representarlo se utiliza es un diagrama de árbol.
Siempre
tenemos dos formas de especificar una ruta de acceso:
§
Absoluta: Indica
el camino completo desde la raíz hasta el archivo o directorio que queremos
especificar.
Ejemplo:
/home/isabel
/home/alu7692/asig/Metodologia/prac1.p
/Bin No es una ruta de acceso en el
árbol.
§
Relativa: Especificamos
la ruta en relación con el punto del árbol en que nos encontremos, para ello
podemos usar:
. |
Indica el directorio actual. |
~ |
|
.. |
Indica
el directorio padre. |
Directorio actual |
Ruta relativa |
Ruta absoluta |
Metodologia |
prac1.p |
/home/alu7692/asig/Metodologia/prac1.p |
Metodologia |
../Ingles |
/home/alu7692/asig/Ingles |
Ingles |
../Metodologia/prac1.p |
/home/alu7692/asig/Metodologia/prac1.p |
Estando en asig rutas
válidas para Metodologia: |
Metodologia |
./Metodologia |
|
~/asig/Metodologia |
|
/home/alu7692/asig/Metodologia |
Ruta |
Propósito |
/bin |
Comandos
esenciales. |
/boot |
Núcleo y otros programas
relacionados con el arranque |
/home/nombre_usuario |
Directorio
personal de los usuarios |
/usr/bin |
Otros comandos que no están en /bin |
/usr/sbin |
Comandos para tareas de administración. |
/usr/lib |
Bibliotecas de enlace |
/usr/src |
Fuentes de los programas y del sistema operativo |
/user/local |
Programas y ficheros de datos añadidos por el
administrador |
/dev |
Directorio de dispositivos. |
/mnt |
Dentro de éste se suelen crear directorios para montaje
de sistemas de ficheros. |
pwd: Muestra el directorio actual
cd [Nombre de directorio]: Cambia del directorio de trabajo
actual al directorio que se especifique. “Nombre de
directorio” tiene
que ser cualquier ruta de acceso válida en en nuestro
sistema. Si no se especifica ninguno vamos a nuestro home.
Recuerda:
Si no se especifica ningún nombre de directorio vamos a /home/nombre_usuario, es decir, a nuestro home.
[isabel@esquinzo isabel]$ pwd¿ /home/isabel |
[isabel@esquinzo isabel]$
cd Metod¿ [isabel@esquinzo isabel]$
pwd¿ /home/isabel/Metod |
[isabel@esquinzo
Metod]$ cd [isabel@esquinzo isabel]$
pwd /home/isabel |
ls [-opciones] [Ruta de acceso al directorio] Nos permite listar el contenido
del directorio especificacado por “Ruta
de acceso al directorio”. Si no especificamos ninguno se considera el directorio actual.
Opciones |
Modificación |
-a |
Se listan todos los ficheros, incluso los ocultos |
-d |
Se muestran los directorios como si fueran
ficheros, en vez de mostrar el contenido |
-f |
No se ordenan contenidos, se listan en el orden
en que están almacenados en disco. |
-l |
Se muestra además los permisos, el número de
enlaces, nombre del propietario, el del grupo, tamaño en bytes,
fecha última modificación. |
-m |
Se listan los ficheros horizontalmente, tantos
en cada línea como quepan, separados por comas. |
-r |
Se ordenan los contenidos en orden inverso |
-s |
A la izquierda del nombre se muestra el tamaño
en bloque de 512 bytes |
-t |
Ordena por tiempos, primero los más recientes. |
-u |
Ordena por el último acceso. |
-x |
Listado por columnas ordenadas horizontalmente. |
-R |
Se lista el contenido de todos los directorios recursivamente. |
-1 |
Se lista un fichero en en
cada línea. |
Ejemplos:
mkdir
[opciones] [Ruta/directorio]:
Crea el directorio especificado dentro de “Ruta”.
Si no se especifica “Ruta” lo crea en el directorio actual.
Opciones |
Modificación |
-m |
Establece los
permisos |
-v |
Imprime un
mensaje por cada directorio creado |
-p |
Crea los
directorios padre que falten en ruta para directorio. |
-help |
Muestra la ayuda |
[isabel@esquinzo clases]$ ls manualfreepascal
prueba prueba1 prueba2
prueba.o
prueba.pas [isabel@esquinzo clases]$ mkdir
comandos [isabel@esquinzo clases]$ ls comandos manualfreepascal prueba prueba1
prueba2 prueba.o prueba.pas |
Recuerda:
Los argumentos de los comandos no tienen por qué ser únicos. Por ejemplo, si queremos listar el contenido de los directorios Metodologia e Ingles del subdirectorio asig desde /home/alu7692:
ls asig/Metodologia asig/Ingles
cp [-opciones][archivos ó directorios origen] [archivos
o directorios destino]: Copia
un fichero (o directorio) a un destino dado, o bien, copia varios ficheros (o
directorios) a un directorio destino.
Recuerda:
cp |
Origen |
Destino |
|
Un fichero |
Un fichero con igual nombre a otro directorio. |
|
Un fichero |
Un fichero con distinto nombre en este directorio o en otro directorio. |
|
Varios ficheros |
Otro directorio. |
|
Un directorio |
Otro directorio |
Opciones |
Modificación |
-b |
Hace copias de
seguridad de ficheros que están a punto de ser sobrescritos o borrados |
-d |
Copia los
enlaces simbólicos en lugar de los ficheros a los que apunta |
-f |
Elimina los
ficheros destino que ya existan |
-i |
Pregunta si
sobrescribir los ficheros destino que ya existan |
-p |
Preserva los
permisos del propietario y el grupo |
-r |
Copia
directorios recursivamente |
-u |
No copia un
fichero o directorio si el destino ya existe y tiene la misma fecha de
modificación o más reciente |
Ejemplos:
Copiar prueba, prueba1 del directorio actual al directorio ../Metod/clases conservando el
nombre que tienen. |
[isabel@esquinzo
nuevo3]$ cp prueba prueba1 ../Metod/clases |
|
Copiar prueba en ../Metod/clases
con el nombre prueba2. La información almacenada en prueba2 será la misma que
la de prueba pero con otro nombre y en otro lugar. |
[isabel@esquinzo
nuevo3]$ cp prueba ../Metod/clases/prueba2 |
|
Copia todos los ficheros del directorio actual, cuyo nombre
empieza por prueba en ../Metod/clases
y si ya existe nos pregunta si queremos sobreescribir. |
[isabel@esquinzo
nuevo3]$ cp -i prueba*
../Metod/clases cp: overwrite `../Metod/clases/prueba'? n cp: overwrite `../Metod/clases/prueba1'? n cp: overwrite `../Metod/clases/prueba2'? y cp: overwrite `../Metod/clases/prueba.o'? y cp: overwrite `../Metod/clases/prueba.pas'? |
mv [opciones] origen destino
Mueve los archivos|directorios
especificados.
Opciones |
Modificación |
-b |
Hace copias de
seguridad de ficheros que están a punto de ser sobrescritos o borrados |
-f |
Elimina los
ficheros destino que ya existan sin preguntar |
-i |
Pregunta si
sobrescribir los ficheros destino que ya existan |
-v |
Copia
directorios recursivamente |
-u |
No copia un
fichero o directorio si el destino ya existe y tiene la misma fecha de
modificación o más reciente |
Mueve el fichero manualfind.txt a /home/isabel/Metod/clases/comandos |
[isabel@esquinzo
isabel]$ mv
manualfind.txt Metod/clases/comandos |
Borra ficheros. Borra directorios cuando se usan las
opciones –r o –R.
Opciones |
Modificación |
-i |
Pregunta si borrar cada fichero. Si la
respuesta no es afirmativa, se pasa al siguiente fichero
sin borrar éste. |
-f |
No hace caso de los ficheros que no existan y
nunca pregunta al usuario |
-r, -R |
Borra
los contenidos de directorios recursivamente. |
-v |
Muestra
el nombre de cada fichero antes de borrarlo. |
Borrar todo el árbol de directorios a partir de asig |
[alu7692@esquinzo alu7692]$ rm –r asig¿ |
Borrar los ficheros prac1.p, prac2.p, pidiendo confirmación al
usuario. |
[alu7692@esquinzo alu7692]$ rm –i asig/Metodologia/prac[12].p |
rmdir
[opciones] directorios.
Borra directorios vacíos
Opciones |
Modificación |
-i |
Ignora cada
fallo porque un directorio no esté vacío. |
-p |
Elimina el
directorio y luego intenta eliminar cada directorio en la ruta. rmdir -p a/b/c º rmdir a/b/c a/b
a |
-v |
Muestra un
diagnóstico para cada directorio procesado |
-help |
Muestra la ayuda |
Borrar
el subdirectorio nuevo1 del directorio actual. |
[isabel@esquinzo isabel]$ rmdir nuevo1 |
Borrar el subdirectorio comandos del directorio actual. |
[isabel@esquinzo
clases]$ rmdir comandos |
Recuerda:
Cuando usamos el comando rmdir debemos borrar previamente su contenido, usando rm para ficheros. Los directorios los borramos usando la
opción recursiva de rm o rmdir.
cat
[opciones][lista de archivos] Concatena el contenido de los archivos
listados y lo muestra en la salida estándar. Si no se especifica ningún fichero
toma la información desde el teclado.
Opciones |
Criterio |
-b |
Numera todas las
líneas excepto las que están en blanco. |
-E |
Muestra el
símbolo $ al final de cada línea. |
-n |
Numera cada
línea en la salida. |
-T |
Muestra los
tabuladores como ^I. |
Recuerda:
La entrada estándar es el teclado. La salida
estándar es la pantalla. La consola es el conjunto pantalla + teclado.
1.1.2.1 Ejemplos:
Mostrar el contenido del fichero texto.txt que
está en el directorio actual en pantalla. |
[isabel@esquinzo
comandos]$ cat
texto.txt |
Mostrar el contenido del archivo prueba.pas del directorio actual y el de texto.txt que está en el subdirectorio comandos. |
isabel@esquinzo clases]$ cat
prueba.pas comandos/texto.txt program mundo; begin |
Recuerda:
Si la información que muestra un comando no cabe en una única pantalla, puedes hacer que te la vaya mostrando pantalla a pantalla poniendo después del comando:
|more |
|
Secuencia de
teclas: |
Alt Gr + 1+ more |
Si queremos almacenar en un fichero la información
que un comando muestra en pantalla podemos utilizar la redirección:
Comando > Nombre del fichero.
find [camino] [criterio] acción Busca en inicio y todos sus
subdirectorios los archivos que cumplan el criterio de búsqueda, con los
resultados lleva a cabo la acción especificada. Inicio pueden ser varios
argumentos, el primer ‘-‘ que se encuentre marcará el
comienzo de los criterios.
Opciones |
Criterio |
-name |
Busca los
ficheros por el nombre, según el patrón que se especifique. |
-group nombre |
Busca por el
nombre del grupo que se especifique. |
-user nombreusuario |
Busca los que
pertenecen al usuario especificado. |
-nouser |
Pertenece a un
propietario desconocido. |
-mtime número |
Hora de la
última modificación, si número va precedido de un - busca archivos
posteriores, si va precedido de un + busca anteriores. |
Buscar en el directorio actual todos los archivos que se llamne prueba y mostrarlo en pantalla. |
[isabel@esquinzo isabel]$ find . -name
prueba -print ./Metod/clases/prueba |
grep [opciones] [patrón] [ficheros] Busca en ficheros o en la
entrada estándar, si no se especifican ficheros las líneas en que aparece el
patrón.
|
Criterio |
-num |
Las líneas
concordantes se muestran acompañadas num
líneas anteriores y num líneas posteriores. |
-A num |
Muestra num líneas de contexto después de las que
concuerdan con el patrón. |
-B num |
Muestra num líneas de contexto antes de las que concuerdan
con el patrón. |
-C |
= -2 |
-c |
No muestra las
líneas sino la cantidad de líneas |
-i |
Considera igual
mayúsculas y minúsculas |
-L |
Muestra los
ficheros donde no hay concordancias. La búsqueda se detiene en la
primera concordancia. |
-l |
Muestra los
ficheros donde hay concordancias. La búsqueda se detiene en la primera
concordancia. |
-n |
Prefija cada
línea de salida con el número de línea en su fichero. |
Buscamos todos los archivos con extensión txt
en los que aparezca la palabra hola. Sólo queremos saber la cantidad de
líneas en la que aparece y consideramos igual las mayúsculas y minúsculas. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[isabel@esquinzo
comandos]$ grep -ic hola *.txt |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.1.2 Permisos de los ficheros.La seguridad de un sistema Linux se basa en la propiedad de los
ficheros y los permisos que se le dan a los usuarios
sobre los mismos. Los permisos
se refieren a los que un usuario
determinado puede hacer con un fichero.
Recuerda: Cuando
se crea un fichero el sistema le asigna los permisos para el propietario, el
grupo y otros. El comando ls con la opción –l nos permite averiguar qué permisos tiene asignado un fichero. chmod [opciones] [ugo]
[+-][rwx] archivos Cambia los permisos de los archivos especificados según las opciones.
1.1.1.1 Ejemplo:
Los
permisos se pueden especificar también utilizando una máscara octal mediante
un número de 3 dígitos. El primero correspondiendo a los permisos del
propietario, el segundo los del grupo y el tercero otros. Cada número se
obtiene sumando o no: 1, 2, 4, según se le quiera dar el permiso de
ejecución, escritura o lectura respectivamente. 1.1.1.2
Ejemplo:
1.2 mount
Los usuarios normales sólo pueden montar los dispositivos que estén
listados en /etc/fstab. Aunque el comando mount es mucho más complejo
describiremos en un nivel básico su uso: mount –t tipo dispositivo
donde
Los dispositivos se especifican por
el fichero especial de dispositivo:
Recuerda: Podemos utilizar mount
dispositivo o mount punto de montaje. Si el
dispositivo o punto de montaje mencionado están en /etc/fstab,
buscará lo que falte y lo montará con los parámetros indicados en ese
archivo. Por ello podemos montar, generalmente la disquetera o el cdrom escribiendo respectivamente: mount
/mnt/floppy mount
/mnt/cdrom Nunca finalices
la sesión sin desmontar los dispositivos, por ejemplo, para desmontar la
disquetera: umount /dev/fd0 La sintaxis de umount:
umount dispositivo o bien: umount punto de montaje Recuerda: Si quieres eliminar automáticamente los ^M (retorno
de carro) de tus ficheros de texto creados en MS-DOS cuando montas la
disquetera debes utilizar –o conv=auto: mount –o conv=auto
–t MS-DOS /dev/fd0 /mnt 1.3
Compresión
y empaquetado de ficheros:
gzip [opciones] lista de ficheros: Comprime los datos de un fichero, los graba en formato .gz y luego sustituye el archivo original por el
comprimido si se ha creado sin problemas.
gunzip
tar [opciones] [archivo tar][lista de archivos] Almacena en un único archivo la lista de ficheros que se
especifican.
1.4 mtools.Las
mtools son una colección de herramientas que
permite a sistemas Unix manipular ficheros de
MS-DOS. Son programas que intentan emular la orden equivalente en MS-DOS. Es
posible tener acceso a disquetes sin tener que montarlos, también podemos
cambiar disquetes sin tener que montarlos ni desmontarlos. Los nombres de directorios pueden emplear como separador ‘/’ o ‘\’. Si se utiliza \ o comodines como * hay que entrecomillarlos. Básicamente el nombre de los comandos de mtools se corresponde con el nombre del comando equivalente en MS-DOS precedido de una m: mcopy, mdir, mdel, mcd, etc. Recuerda: En MS-DOS un cambio de línea se marca con un retorno de carro y un salto de línea, mientras que en Unix se marca exclusivamente con el salto del línea. Esto puede provocar que cuando abras un fichero de texto creado en MS-DOS en Unix veas al final de cada línea unos símbolos extraño. Para evitarlo debes usar la opción –t con el mcopy. |