Anda di halaman 1dari 24

8/1/2018 Linux Básico: Comandos del Sistema de Archivos

Diplomado de Administración Linux - Sistema Operativo


Usted está ingresado como TES Tiangistenco (Salir)

Página Principal (home) ► Mis cursos ► Administración de Sistemas ► Linux Básico ► Comandos Básicos ►
Comandos del Sistema de Archivos

Comandos del Sistema de Archivos

En la actualidad la mayoría de los sistemas operativos cuentan con una sesión o escritorio gráfico en el que se
pueden realizar la mayoría de las actividades de uso del sistema: edición de textos, navegación por internet,
manipulación de archivos, etc..

No obstante, el potencial de UNIX aparece cuando se utiliza sus línea de órdenes por medio de una terminal de
texto.

Linux ofrece un sin número de comandos y utilerías para explotar al máximo el sistema y que permiten realizar
prácticamente cualquier tipo de tarea: editar textos, manipular archivos, programar y ejecutar programas, etc..

Los comandos de UNIX/Linux se pueden dividir en tres grupos:

Comandos del sistema de archivos


Comandos para el control de procesos
Utilerías

A continuación se hará una revisión de los comandos mas comúnmente utilizados en la operación de un sistema
Linux.

Sistema de archivos
El sistema de archivos, es la parte del sistema operativo encargada del almacenamiento y organización de los
archivos y acceso a dispositivos (periféricos) del sistema.

El sistema de archivos en unix se carateriza por

tener una estructura jerárquica en forma de árbol invertido


contar con 3 niveles de seguridad o permisos asociados con cada archivo y directorio.
almacenar propiedades como fecha de creación, cambio, lectura, tamaño, etc. para cada archivo
ser el punto de acceso para las operaciones de entrada y salida de los periféricos.

132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 1/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

En unix todos los archivos son parte de un directorio (carpeta en windows), y cada directorio se encuantra en
alguna rama del sistema de archivos.

El directorio base o raíz del árbol, a partir del cual se ubican los demás, es el directorio raíz o root y su símbolo
es una diagonal invertida /. En la figura anterior se puede ubicar en la cima del árbol.

Todos los usuarios tienen un directorio propio en el cual almacenar sus archivos, este directorio recibe el nombre
de directorio HOME y cuyo nombre en el sistema de archivos coincide con el login del usuario, este directorio se
ubica en el directorio /home. Por ejemplo si el login del usuario es est su directorio HOME es también est y se
ubica en /home/est.

A continuación una lista de los directorios del primer nivel del árbol del sistema de archivos y su propósito.

Directorio Contiene

/bin Programas del sistema

/boot Archivos para el arranque del sistema

/dev Archivos de dispositivos

/etc Archivos de configuración del sistema

/home Directorios HOME de los usuarios

/lib Bibliotecas para los programas del


sistema

/root Directorio HOME del administrador

/sbin Programas para la administración

/tmp Archivos temporales del sistema

/usr Programas para todos los usuarios 132.248.29.220


https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 2/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

/var Archivos con bitácoras y de trabajo de


los diferentes procesos del sistema.

/opt Programas instalados por los usuarios.

Estructura interna del sistema de archivos


Un sistema de archivos permite realizar una abstracción de los dispositivos físicos de almacenamiento para que
sean tratados a nivel lógico, como una estructura de más alto nivel y más sencilla que la estructura de su
arquitectura de hardware particular.

El sistema de archivos de UNIX se caracteriza por:

Poseer una estructura jerárquica


Realizar un tratamiento consistente de los datos de los archivos
Capacidad para crear y borrar archivos
Permitir un crecimiento dinámico de los archivos
Proteger los datos de los archivos
Tratar los dispositivos y periféricos como si fueran archivos

El kernel trabaja con el sistema de archivos a nivel lógico y no trata directamente con los dispositivos a nivel
físico. Cada disco es considerado como como un dispositivo lógico que tiene asociados unos números de
dispositivo (minor number y major number). Estos números se utilizan para indexar dentro de una tabla de
funciones, cuál hay que emplear para utilizar el driver del disco. El driver del disco se va encargar de transformar
las direcciones lógicas (a nivel del kernel) del sistema de archivos a direcciones físicas del disco o cinta (cabeza,
sector, track, etc.).

Un sistema de archivos (a nivel del kernel) se compone de una secuencia de bloques lógicos, cada uno de los
cuales tiene un tamaño fijo. El tamaño del bloque es el mismo para todo el sistema de archivos y suele ser múltipo
de 512 bytes.

El tamaño del bloque influye en el desempeño global del sistema. Por un lado, interesa que los bloques sean
grandes para que la velocidad de transferencia entre el disco y la memoria sea grande. Sin embargo, si los
bloques son demasiado grandes, la capacidad de almacenamiento del disco se reduce, sobre todo si se cuenta
con muchos archivos pequeños que no ocupan la totalidad del bloque.

132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 3/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

En la figura se pueden ver cuatro secciones:

El bloque de boot. Ocupa la parte inicial del sistema de archivos, típicamente el primer sector, y puede
contener el código de boot o de arranque.

El superbloque describe el estado de un sistema de archivos. Contiene información acerca de su tamaño,


total de archivos que puede contener, qué espacio queda libre, etc.

La Lista o Tabla de inodos se encuentra a continuación del superbloque. Esta lista tiene una entrada por
cada archivo, donde se guarda una descripción del mismo: situación del archivo en el disco, propietario,
permisos de acceso, fecha de actualización, etc. El administrador del sistema es quien especifica el
tamaño de la lista de nodos índice al configurar el sistema.

El Bloque de Datos empieza a continuación de la lista de inodos y ocupa el resto del sistema de archivos.
En esta zona es donde se almacenan los datos de los archivos a los que se hace referencia en la lista de
inodos. Cada uno de los bloques destinados a datos sólo puede ser asignado a un archivo, ya sea que lo
ocupe completamente como si no.

I-nodos

Cada archivo en UNIX tiene asociado un i-nodo. El i-nodo contiene la información necesaria para que un proceso
pueda acceder al archivo. Esta información incluye: propietario, derechos de acceso, tamaño, localización en el
sistema de archivos, etc.

Los campos de que se compone un inodo son:

Identificador del propietario del archivo. Contiene el ID del propietario y del grupo al que pertenece.

Tipo de archivo. Indica el tipo de archivo: ordinario, directorio, especial, fifo, socket, etc.

Permisos de acceso. Permisos del archivo.

Fechas de acceso. Dan información sobre la fecha en que fué creado, última vez que fué accesado y
última vez que fué modificado.

Número de enlaces al archivo. Representa el total de referencias que tiene el inodo en la jerarquía de
directorios.

Direcciones de los bloques de datos. Contiene una lista de los bloques de datos en los que se encuentra
almacenado el contenido del archivo. Estos manejan un esquema de referenciado directo, indirecto simple,
doble y hasta triple, para extender la capacidad de crecimiento de un archivo.

Tamaño del archivo. Indica el tamaño en bytes del archivo.

Es importante destacar que EL NOMBRE DEL ARCHIVO NO SE ENCUENTRA EN SU INODO, es el los archivos
de tipo directorio en donde se localiza la relación entre el nombre del archivo y su inodo.

132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 4/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

De igual manera es importante destacar que alterar la información del archivo no altera en nada a su inodo, éste
sólo es modificado cuando se cambia la información administrativa del mismo, tiempos de acceso, permisos,
longitud, etc.

Directorios

Un directorio es un archivo igual que cualquier otro, la diferencia radica en que en su inodo este está marcado
como directorio en lugar de archivo ordinario.

Un directorio posee una estructura interna que le permite almacenar nombres de archivos y directorios, el sistema
de archivos es el responsable de dar formato a este tipo de archivo. La estructura interna de un directorio varía
entonces entre los diferentes sistemas de archivos. Sin embargo, todo directorio debe poseer por lo menos la
siguiente información:

i-nodo del archivo


nombre del archivo
entrada para el directorio actual . que hace referencia al mismo i-nodo del directorio
entrada para el directorio padre .. que hace referencia al inodo del directorio padre. El directorio raíz (/) se
tiene así mismo como directorio padre, es decir '.' y '..' son iguales y hacen referencia al mismo i-
nodo.

.
Bolque Directorio

NOMBRE i-NODO

. 1000

.. 800

Documentos 1750

archivo.txt 2000

132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 5/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

COMANDOS DEL SISTEMA DE ARCHIVOS

Ingreso al sistema
Al iniciar una sesión en un sistema unix se requiere contar con una cuenta y un password previamente creados
por el administrador del sistema.

login: est
password:
est@localhost:~$

El login del usuario es su cuenta o nombre único que lo identifica en el sistema, el password no se muestra en la
pantalla al ser tecleado por seguridad.

Si el login y el password son correctos, el programa intérprete de comandos (bash) inicia y presenta un prompt (
$ ) al usuario, en el cual se pueden introducir las órdenes para el sistema.

Para salir del sistema y terminar el intérprete de comandos (bash) se pueden utilizar los comandos: logout,
exit, o la combinación de teclas Ctrl-D.

est@localhost:~$ logout
login:

pwd 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 6/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

Al ingresar, todo usuario se ubica en su directorio hogar (HOME), para saber cuál es la ubicación en la que se
encuentra en el sistema de archivos o su directorio de trabajo, se usa el comando pwd (print work directory)

login: est
password:
est@localhost:~$ pwd
/home/est
est@localhost:~$

ls

Para conocer el contenido de un directorio se usa el comando ls (list)

est@localhost:~$ ls
Desktop Downloads Movies Pictures Templates Videos
Documents Music Public
est@localhost:~$

Existen directorios que no se muestran normalmente ya que son utilizados para almacenar la configuración de
algunos programas del usuario. Estos directorios inician con un punto en su nombre como .oculto, .ssh,
.conf, etc.

Para ver los archivos ocultos se usa la opción -a del comando ls, esto es ls -a.

est@localhost:~$ ls -a
. .bashrc Desktop Downloads Movies Pictures Templates Videos
.. .bash_history Documents Music Public
est@localhost:~$

Para conocer las propiedades de los archivos e identificar los archivos oridinarios, los dispositivos y los
directorios, sus niveles de seguridad, etc. se usa el comando ls -l

est@localhost:~$ ls -l
drwxr-xr-x 2 est est 4096 2010-05-01 18:58 Desktop
drwxr-xr-x 2 est est 4096 2010-05-01 22:28 Documents
drwxr-xr-x 2 est est 4096 2012-05-23 03:09 Downloads
drwxr-xr-x 2 est est 4096 2008-04-26 23:19 Movies
drwxr-xr-x 2 est est 4096 2008-04-26 23:19 Music
drwxr-xr-x 2 est est 4096 2008-04-26 23:19 Pictures
drwxr-xr-x 2 est est 4096 2010-04-30 17:07 Public
drwxr-xr-x 2 est est 4096 2010-04-30 17:07 Templates
drwxr-xr-x 2 est est 4096 2010-04-30 17:07 Videos

Cada columna contiene información particular para cada archivo, como se analizará posteriormente.

man

Todos los comandos cuentan con una ayuda básica que puede obtenerse mediante la opción --help del
comando:

$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE scale sizes by SIZE before printing them. E.g.,
`--block-size=M' prints sizes in units of
1,048,576 bytes. See SIZE format below.
-B, --ignore-backups do not list implied entries ending with ~ 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 7/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
-c with -lt: sort by, and show, ctime (time of last
modification of file status information)
with -l: show ctime and sort by name
otherwise: sort by ctime, newest first
-C list entries by columns
--color[=WHEN] colorize the output. WHEN defaults to `always'
or can be `never' or `auto'. More info below
-d, --directory list directory entries instead of contents,
and do not dereference symbolic links
-D, --dired generate output designed for Emacs' dired mode
-f do not sort, enable -aU, disable -ls --color
-F, --classify append indicator (one of */=>@|) to entries
--file-type likewise, except do not append `*'
--format=WORD across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time like -l --time-style=full-iso
.... .... ... .. ... ... ... ... ... ... .... .... .... .... ... ....
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-Z, --context print any SELinux security context of each file
-1 list one file per line
--help display this help and exit
--version output version information and exit
SIZE may be (or may be an integer optionally followed by) one of following:
KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.
Using color to distinguish file types is disabled both by default and
with --color=never. With --color=auto, ls emits color codes only when
standard output is connected to a terminal. The LS_COLORS environment
variable can change the settings. Use the dircolors command to set it.
Exit status:
0 if OK,
1 if minor problems (e.g., cannot access subdirectory),
2 if serious trouble (e.g., cannot access command-line argument).
Report ls bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils 'ls invocation'

Otra forma de obtener ayuda sobre el uso de un comando es mediante las páginas del manual de Unix, usando el
comando man.

man lee los archivos del manual ubicados en /usr/share/man, los cuales se encuentran en un formato especial
(troff) para su despliegue en la pantalla.

El manual de unix se encuentra organizado por secciones.

Para consultar
SECCIÓN DESCRIPCIÓN
la página del
1 Comandos generales manual de un
comando se
2 Llamadas al sistema usar man
seguido del
3 Funciones de la biblioteca estándar nombre del
4 Archivos especiales y dispositivos comando en
cuestión.
5 Formato de archivos

6 Juegos y salva pantallas

7 Misceláneo

8 Comandos de administración y demonios

$ man man

MAN(1) Manual pager utils MAN(1)


132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 8/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
NAME
man - an interface to the on-line reference manuals
SYNOPSIS
man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L
locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I]
[--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P
pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justifi-
cation] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z]
[[section] page ...] ...
man -k [apropos options] regexp ...
man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
man -f [whatis options] page ...
man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L
locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t]
[-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ...
man -w|-W [-C file] [-d] [-D] page ...
man -c [-C file] [-d] [-D] page ...
man [-hV]
DESCRIPTION
Manual page man(1) line 1 (press h for help or q to quit)

Despliega el manual del comando man, se pueden usar las flechas de arriba y abajo o las teclas 'j' y 'k' para
moverse a lo largo del manual. Para terminar se usa la letra 'q'.

Para consultar el manual de una sección en particular se pone el número de sección después del comando man.
Por ejemplo man 1 kill y man 2 kill muestran secciones diferentes del mismo comando, en el primer caso el
comando kill, en el segundo la interfaz de la llamada al sistema.

cd

Para desplazarse en el sistema de archivos se utiliza el comando cd (change directory). El formato de este
comando es el siguiente:

cd PATH

PATH es la nueva ubicación a la que se desea mover en el árbol de directorios.

Existen 2 directorios especiales denotados por punto y dos-puntos ('.','..') los cuales se pueden desplegar
mediante el comando ls -a.

$ ls -a
. ..

El directorio '.' es la representación del directoio actual, es decir, el mismo directorio que se muestra con el
comando pwd, de manera que hacer un cambio al directorio '.' no tiene ningún efecto.

$ pwd
/home/ciencias
$ cd .
$ pwd
/home/ciencias

El directorio '..' indica el directorio superior (hacia la raíz) del directorio actual, de manera que cambiarse al
directorio '..' indica subir un nivel en el árbol de directorios con respecto al directorio actual.

$ pwd
/home/ciencias
$ cd ..
$ pwd
/home

RUTAS (PATH)
132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 9/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

Existen dos formas de indicar una posición en el árbol de directorios, o ruta (PATH):

1. Rutas absolutas: se especifican a partir del directorio raíz (/) del árbol de directorios.
2. Rutas relativas: se especifican a partir del directorio actual (CWD) indicando el camino a seguir en el árbol
de directorios usando '..' y los nombres de los directorios hasta llegar al directorio de interés en el árbol.

Por ejemplo, suponiendo el árbol de directorios mostrado en la sección del sistema de archivos, y considerando
que el directorio de trabajo actual (CWD) es el home del usuario sue:

La ruta absoluta al directorio include bajo el directorio usr es:

$ cd /usr/include
$ pwd
/usr/include

se debe notar que la ruta o path inicia con una diagonal '/', esta diagonal es el símbolo del directorio raíz del árbol
de directorios, la siguiente diagonal (usr/include) no es el símbolo de la raíz sino la indicación de cambio de
directorio.

La ruta relativa al mismo directorio partiendo del directorio home del usario sue es:

$ pwd
/home/sue
$ cd ../../usr/include
$ pwd
/usr/include

En este caso se usa el símbolo '..' para cambiar al directorio superior, demanera que el primer '..' sube al
directorio /home y el segundo al directorio raíz /. Después se desciende por el directorio usr y luego al
directorio include. Igualmente las diagonales indican las divisiones entre un directorio y otro.

Otros ejemplos de rutas absolutas y relativas desde el directorio home de sue son:

Absolutas (todas inician con /):

/home/sue/Pictures/pets
/boot
/home/fred/Desktop

Relativas (nunca inician con /):

Pictures/pets
../../etc
../fred/Desktop

Para regresar al directorio home de su cuenta, hay dos formas rápidas:

$ pwd
/usr/include
$ cd ~
$ pwd
/home/sue

$ pwd
/usr/include
$ cd
$ pwd
/home/sue

En el primer caso se usa el símbolo ~ que representa al directorio HOME del usuario, en el segundo, el comando
cd sin argumentos siempre lo retorna al directorio home de su cuenta.

mkdir
132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 10/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

Para crear directorios se usa el comando mkdir seguido del nombre del directorio o directorios a crear.

$ mkdir dir1
$ cd dir1
$ pwd
/home/ciencias/dir1
$ mkdir dir1.1 dir1.2
$ cd dir1.1
$ pwd
/home/ciencias/dir1/dir1.1
$ mkdir a b
$ ls
a b
$ cd
$ pwd
/home/ciencias
$ tree
.
`-- dir1
|-- dir1.1
| |-- a
| `-- b
`-- dir1.2
5 directories, 0 files

NOTA: el comando tree no se encuentra instalado por omisión en algunas distribuciones de linux, pero se puede
instalar fácilmente con el sistema de paquetes de la distribución.

Una forma de crear una rama de directorios es mediante la opción '-p' (path) del comando mkdir.

$ mkdir -p dir2/dir2.1/{c,d}
$ tree
.
|-- dir1
| |-- dir1.1
| | |-- a
| | `-- b
| `-- dir1.2
`-- dir2
`-- dir2.1
|-- c
`-- d
9 directories, 0 files

En este ejemplo se han creado los directorios c y d bajo la rama dir2/dir2.1 con una sola línea de comandos,
la indicación {c,d} la usa el intérprete de comandos para ejecutar el comando mkdir como si se hubiese escrito:

$ mkdir -p dir2/dir2.1/c dir2/dir2.1/d

cp

El comando cp (copy) permite copiar archivos, su sintáxis es:

cp ORIGEN DESTINO

donde ORIGEN es el path o ruta de algún archivo ordinario, y DESTINO es la ruta al directorio o archivo donde se
copiará el archivo ORIGEN.

$ cd dir1/dir1.1/a
$ pwd
/home/ciencias/dir1/dir1.1/a
$ cp /etc/passwd .
$ ls
passwd
$ cp /etc/passwd ../b/mipasswd
$ ls ../b
mipasswd 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 11/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
$ cd
$ tree
.
|-- dir1
| |-- dir1.1
| | |-- a
| | | `-- passwd
| | `-- b
| | `-- mipasswd
| `-- dir1.2
`-- dir2
`-- dir2.1
|-- c
`-- d
9 directories, 2 files

En este ejemplo se copia el archivo con las cuentas de los usuarios, /etc/passwd, a los directorios a y b del
directorio dir1/dir1.1. Nótese que el archivo es passwd y se proporciona su ruta en forma absoluta (inicia con
/), los archivos de destino en el primer caso es el directorio actual '.' y en el segundo se da la ruta relativa al
archivo 'mipasswd' que no existe pero se creará como copia de /etc/passwd. La salida del comando tree
muestra el estado del árbol de directorios.

Se pueden copiar directorios completos incluyendo sus subdirectorio usando la opción '-r' (recursive) del
comando cp.

$ cp -r dir1 copia_dir1
$ ls
copia_dir1 dir1 dir2
$ ls copia_dir1
dir1.1 dir1.2
$ tree
.
|-- copia_dir1
| |-- dir1.1
| | |-- a
| | | `-- passwd
| | `-- b
| | `-- mipasswd
| `-- dir1.2
|-- dir1
| |-- dir1.1
| | |-- a
| | | `-- passwd
| | `-- b
| | `-- mipasswd
| `-- dir1.2
`-- dir2
`-- dir2.1
|-- c
`-- d
14 directories, 4 files

mv

El comando mv (move) se utiliza para mover o renombrar archivos y directorios, su sintáxis es:

mv ORIGEN DESTINO

Por ejemplo, para renombrar el archivo mipasswd a passwd del ejemplo anterior.

$ cd dir1/dir1.1/b
$ ls
mipasswd
$ mv mipasswd passwd
$ ls
passwd
$ cd
$ tree 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 12/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
.
|-- copia_dir1
| |-- dir1.1
| | |-- a
| | | `-- passwd
| | `-- b
| | `-- mipasswd
| `-- dir1.2
|-- dir1
| |-- dir1.1
| | |-- a
| | | `-- passwd
| | `-- b
| | `-- passwd
| `-- dir1.2
`-- dir2
`-- dir2.1
|-- c
`-- d
14 directories, 4 files

Para mover todo el directorio dir2 dentro del directorio dir1

$ mv dir2 dir1
$ ls
copia_dir1 dir1
$ ls dir1
dir1.1 dir1.2 dir2
$ tree
.
|-- copia_dir1
| |-- dir1.1
| | |-- a
| | | `-- passwd
| | `-- b
| | `-- mipasswd
| `-- dir1.2
`-- dir1
|-- dir1.1
| |-- a
| | `-- passwd
| `-- b
| `-- passwd
|-- dir1.2
`-- dir2
`-- dir2.1
|-- c
`-- d
14 directories, 4 files

rm y rmdir

Los comandos rm y rmdir se utilizan para borrar archivos y directorios respectivamente. rmdir requiere que el
directorio se encuentre vacío.

$ cd dir1
$ ls
dir1.1 dir1.2 dir2
$ ls dir1.1
a b
$ rmdir dir1.1
rmdir: failed to remove 'dir1.1': Directory not empty
$ ls dir1.2
$ rmdir dir1.2
$ ls
dir1.1 dir2

En este caso se ha usado rmdir para intentar borrar el directorio dir1.1, pero este no se encuentra vacío por lo
que rmdir genera un mensaje de error.
132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 13/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

Por el contrario, el directorio dir1.2 está vacío, el directorio se borra y no se despliega ningún mensaje.

El comando rm permite borrar uno o varios archivos

$ rm dir1.1/a/passwd
$ tree
.
|-- dir1.1
| |-- a
| `-- b
| `-- passwd
`-- dir2
`-- dir2.1
|-- c
`-- d
7 directories, 1 file

Como se puede ver, el archivo passwd del directorio dir1.1/a se ha borrado.

Se pueden borrar directorios con todo su contenido usando la opción '-r' (recursive) del comando rm.

$ cd
$ ls
copia_dir1 dir1
$ rm -r copia_dir1
$ ls
dir1
$ tree
.
`-- dir1
|-- dir1.1
| |-- a
| `-- b
| `-- passwd
`-- dir2
`-- dir2.1
|-- c
`-- d
8 directories, 1 file
$ rm -r dir1
$ ls
$

En este caso se han borrado los directorios copia_dir1 y dir1 totalmente.

NOTA: se debe tener cuidado con el comando rm -r ya que en unix una vez borrado un archivo, no hay forma de
recuperarlo.

cat, more y less

Los comandos cat more y less permiten ver el contenido de un archivo de texto.

cat: vacía el contenido de un archivo en la salida estándar (pantalla) desde el inicio hasta el final sin
interrupción.
more: muestra el contenido de un archivo por páginas que se pueden avanzar mediante la barra
espaciadora o con la teclar ENTER línea por línea.
less: muestra el contenido del archivo en forma dinámica, permite desplazarse a lo largo del archivo hacia
arriba o abajo mediante las flechas.

Para salir de los comandos more y less se usa la letra 'q'.

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 14/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
ciencias:x:1002:1003:Clase Ciencias,,,:/home/ciencias:/bin/bash
$

$ more /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
--More--(42%)

$ less /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
/etc/passwd

head y tail

Los comandos head y tail permiten ver el inicio o el final de un archivo, por omisión se muestran las 10 primeras o
las 10 últimas líneas del archivo, se puede modificar la cantidad de líneas colocando después de un '-' el número
de líneas a desplegar.

$ head /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
$ head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 15/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

$ tail /etc/passwd
cheshire:x:1001:1001::/home/cheshire:/bin/bash
usbmux:x:117:46:usbmux daemon,,,:/home/usbmux:/bin/false
festival:x:118:29::/home/festival:/bin/false
rtkit:x:119:124:RealtimeKit,,,:/proc:/bin/false
postfix:x:120:126::/var/spool/postfix:/bin/false
ntp:x:121:128::/home/ntp:/bin/false
postgres:x:122:129:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
moodle:x:123:65534::/nonexistent:/bin/false
mysql:x:124:130:MySQL Server,,,:/var/lib/mysql:/bin/false
ciencias:x:1002:1003:Clase Ciencias,,,:/home/ciencias:/bin/bash
$ tail -3 /etc/passwd
moodle:x:123:65534::/nonexistent:/bin/false
mysql:x:124:130:MySQL Server,,,:/var/lib/mysql:/bin/false
ciencias:x:1002:1003:Clase Ciencias,,,:/home/ciencias:/bin/bash

Usuarios, permisos y tipos de archivos

Todos los usuarios se identifican por dos números asociados a su cuenta:

UID (User ID): es un número único para cada usuario que lo identifica a él y sus archivos en el sitema.
GID (Group ID): es un número de grupo al cual pueden pertenecer uno o varios usuarios que comparten
archivos y programas. Un usuario puede pertenecer a varios grupos.

La información de los usuarios se concentra en el archivo /etc/passwd

$ tail -4 /etc/passwd
usbmux:x:117:46:usbmux daemon,,,:/home/usbmux:/bin/false
festival:x:118:29::/home/festival:/bin/false
rtkit:x:119:124:RealtimeKit,,,:/proc:/bin/false
ciencias:x:1002:1003:Clase Ciencias,,,:/home/ciencias:/bin/bash

Cada línea del /etc/passwd corresponde a la información de un único usuario y consta de 7 campos

login : password : UID : GID : GECOS : HOME : SHELL

Campo Contenido
login Contiene el username del usuario. p.e. ciencias

password En versiones anteriores de unix se colocaba en este


campo el password cifrado del usuario, por seguridad
se coloca ahora en otro archivo (/etc/shadow) y se
pone una 'x' ahora en este campo.

UID User ID del usuario, número único para cada usuario.

GID Group ID, grupo original al que pertenece el usuario

GECOS (General Electric Comprehensive El nombre se conserva por razones históricas pero su
función es la misma, contiene datos del dueño de la
Operating Supervisor) cuenta como su nombre, teléfono, correo electrónico,
etc.

HOME Directorio hogar del usuario

Shell Intérprete de comandos a ejecutar cuando el usuario


ingresa al sistema. 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 16/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

La información de los grupos se encuentra en el archivo /etc/group

$ head /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
tty:x:5:
disk:x:6:
admin:x:121:eml,ciencias
eml:x:1000:

Al igual que el /etc/passwd cada línea corresponde a un grupo, la información del grupo se divide por ':',
sus campos son:

Campo Contenido

Group Name Nombre del grupo en texto

Password No se usa, generalmente contiene una 'x'.

GID Número único para el grupo

Users Lista de los usernames seprados por commas de los


usuarios que pertenecen al grupo: eml,ciencias

Unix maneja 3 niveles para el control de acceso a los archivos:

Nivel de usuario: el propietario original de los archivos tiene todo el control sobre sus archivos.
Nivel de grupo: todos los miembros de un grupo tienen acceso a los archivos compartidos por el grupo,
pero el control le pertenece al propietario original del archivo.
Otros: esto aplica al resto de los usuarios del sistema, el control de acceso lo determina el propietario del
sistema.

Los permisos de acceso a un archivo son de tres tipos:

Lectura (r): el archivo se puede leer


Escritura (w): el archivo puede ser modificado, borrado o creado
Ejecución (x): el archivo puede ejecutarse, esto funciona con programas binarios ejecutables o scripts de
algún intérprete, incluso el mismo intérprete de comandos.

El comando 'ls -l' permite conocer los niveles de seguridad y permisos de archivos y directorios del sistema de
archivos.

eml@cursos:~$ ls -l
total 44
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Desktop
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Documents
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Downloads
-rw-r--r-- 1 eml eml 8445 Oct 19 20:43 examples.desktop
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Music
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Pictures
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Public
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Templates
drwxr-xr-x 2 eml eml 4096 Oct 19 21:21 Videos
-+-++-++-+ - --- --- ---- ------------ -----------------
| | | | | | | | | nombre de archivo
| | | | | | | | +----- fecha y hora de útima modificación
| | | | | | | +-------------- tamaño del archivo
| | | | | | +------------------- grupo del dueño del archivo
| | | | | +----------------------- login del dueño del archivo
| | | | +-------------------------- numero de referencias del archivo
| | | +----------------------------- permisos todos los usuarios
| | +-------------------------------- permisos para el grupo del propietario
| +----------------------------------- permisos para el propietario
+------------------------------------- tipo de archivo: 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 17/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
- archivo ordinario (texto,binario)
d directorio
c dispositivo de caracter (teclado.mouse)
b dispositivo de bloque (disco duro)
l vínculo simbólico (liga suave)
p tubería (pipe)
s socket (tipo unix)

Los permisos de un archivo o directorio se indican con 3 grupos de las letras: rwx, la ausencia de una letra se
indica con un guion - y representa que el permiso correspondiente no está activo. Los 3 grupos de permisos
corresponden con a los permisos del propietario del archivo, permisos para el grupo del propietario y permisos
para el resto de los usuarios.

chmod

Los permisos de un archivo están determinados por una máscara definida con la cuenta del usuario, esta
máscara se obtiene y modifica mediante el comando umask.

$ umask
0002

La máscara se traduce en los permisos mediante la siguiente operación:

777 AND NOT( 0002 ) = 111 111 111 AND NOT(000 000 010) = 111 111 101 = rwx rwx r-x
8 8

Este permiso se aplica para la creación de directorios, para el resto de los archivos el permiso de ejecución debe
aplicase explícitamente mediante el comando chmod.

$ umask
0002
$ mkdir directorio
$ touch archivo
$ ls -ld directorio archivo
-rw-rw-r-- 1 eml eml 0 Oct 24 02:49 archivo
drwxrwxr-x 2 eml eml 4096 Oct 24 02:49 directorio

El comando touch sirve para actualizar la fecha de acceso de un archivo o bien crearlo.

Para cambiar los permisos de un archivo o directorio se usa el comando chmod, el cual tiene dos formas en que
se puede emplear.

Forma octal: los tres bits de un dígito octal corresponde a los permisos rwx de tal forma que para activar un
permiso se convierte el permiso deseado en su equivalente en octal. Se usan 3 dígitos octales para cada nivel de
seguridad (usuario, grupo, otros)

$ ls -l archivo
-rw-rw-r-- 1 eml eml 0 Oct 24 02:49 archivo
$ chmod 700 archivo
$ ls -l archivo
-rwx------ 1 eml eml 0 Oct 24 02:49 archivo
$ chmod 067 archivo
----rw-rwx 1 eml eml 0 Oct 24 02:49 archivo
$ chmod 500 archivo
$ ls -l archivo
-r-x------ 1 eml eml 0 Oct 24 02:49 archivo
$ rm archivo
rm: remove write-protected regular empty file 'archivo'?

$ ls -ld directorio
drwxrwxr-x 2 eml eml 4096 Oct 24 02:49 directorio
$ chmod 400 directorio
$ ls -ld directorio
dr-------- 2 eml eml 4096 Oct 24 02:49 directorio
$ touch directorio/a 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 18/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
touch: cannot touch 'directorio/a': Permission denied
$ chmod 600 directorio
drw------- 2 eml eml 4096 Oct 24 02:49 directorio
$ ls -ld directorio
drw------- 2 eml eml 4096 Oct 24 02:49 directorio
$ touch directorio/a
touch: cannot touch 'directorio/a': Permission denied
$ chmod 500 directorio
$ ls -ld directorio
dr-x------ 2 eml eml 4096 Oct 24 02:49 directorio
$ touch directorio/a
touch: cannot touch 'directorio/a': Permission denied
$ chmod 700 directorio
$ touch directorio/a
$ ls -l directorio/
total 0
-rw-rw-r-- 1 eml eml 0 Oct 24 03:11 a

Nota: el permiso de ejecución en los directorios es necesario para hacer uso del directorio, esto es, almacenar o
modificar archivos y sub-directorios.

Forma simbólica: en esta forma los permisos se expresan por los símbolos r w x y cada nivel por los símbolos u,
g y o para usuario, grupo y otros.

$ chmod u=rwx,g=rw,o= archivo


$ ls -l archivo
-rwxrw---- 1 eml eml 0 Oct 24 03:33 archivo
$ chmod u-x,o+r archivo
-rw-rw-r-- 1 eml eml 0 Oct 24 03:33 archivo

ln - Ligas duras y simbólicas

Una liga es una forma de hacer referencia a un archivo ya sea con otro nombre o desde otra ubicación en el
sistema de archivos (en Windows un símil de una liga es un Acceso Directo).

El comando para crear ligas es ln.

ln [-s] original liga

Donde original es el path (absoluto o relativo) de un archivo o directorio, y liga es el nombre asignado a la liga
asociada.

Existen dos tipos de ligas:

Liga dura: una liga dura es una entrada en un directorio que hace referencia al mismo inodo de su archivo
original, esto es, es otro nombre para los mismos datos en el sistema de archivos. Una liga dura
incremente la cantidad reportada por ls -l con respecto al número de referencias a un archivo.

$ cp /etc/passwd mipasswd
$ ls -l mipasswd
-rw-r--r-- 1 eml eml 1756 Oct 30 18:31 mipasswd
# ^
# notar que solo hay una referencia a mipasswd
$ ln mipasswd ligapasswd
$ ls -l mipasswd
-rw-r--r-- 2 eml eml 1756 Oct 30 18:31 mipasswd
# ^
# notar que ahora hay dos referencias a mipasswd
$ ls -l ligamipasswd
-rw-r--r-- 2 eml eml 1756 Oct 30 18:31 ligapasswd
# ^
# la liga tambien indica 2 referencias para el archivo, las referencias
# son a los datos y no al nombre
$ diff mipasswd ligapasswd
$
# diff muestra las diferencias entre archivos, pero no reporta nada
# lo cual indica que no hay diferencias
$ rm mipasswd 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 19/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
$ ls -l ligapasswd
-rw-r--r-- 1 eml eml 1756 Oct 30 18:31 ligapasswd
# ^
# ligapasswd sigue existiendo, pero la cuenta de referencias se ha
# reducido a 1, ya no existe el archivo mipasswd
$ diff /etc/passwd ligapasswd
$
# diff no reporta nada, lo que indica que /etc/passwd y ligapasswd
# contienen los mismos datos.

cuando se tiene una liga dura a un archivo y se borra el archivo original, los datos no se pierden ya que la liga
dura sigue referenciando los datos originales.

Liga simbólica o suave: una liga simbólica es un tipo de archivo (archivo tipo liga) que hace referencia al
nombre o path de otro archivo en el sistema de archivos y no a sus datos, por lo que las ligas simbólicas no
se contabilizan como referencias al archivo original. Una liga simbólica se crea usando la opción -s del
comando ln.

$ rm ligapasswd
$ cp /etc/passwd mipasswd
$ ln -s mipasswd ligapasswd
$ ls -l mipasswd ligapasswd
lrwxrwxrwx 1 eml eml 8 Oct 30 18:53 ligapasswd -> mipasswd
-rw-r--r-- 1 eml eml 1756 Oct 30 18:53 mipasswd
# observar que el numero de referencias en mipasswd es uno, por lo que si
# se borra el archivo mipasswd se pierden los datos.
# el tipo de archivo de ligapasswd es 'l' lo que indica que es una liga.
$ rm mipasswd
$ ls -l ligapasswd
lrwxrwxrwx 1 eml eml 8 Oct 30 18:53 ligapasswd -> mipasswd
eml@cursos:~$ file ligapasswd
ligapasswd: broken symbolic link to 'mipasswd'
# el comando file da informacion sobre un archivo, en este caso
# muestra que se trata de una liga pero que esta esta rota.

al borrar el archivo original, las ligas simbólicas pierden su referencia y se encuentran "rotas", los datos se pierden
con el archivo original.

Sólo se pueden crear ligas duras a archivos en los cuales el usuario tiene permiso de escritura.

$ ln /etc/passwd mipasswd
ln: failed to create hard link 'mipasswd' => '/etc/passwd': Operation not permitted

pero siempre es posible hacer ligas simbólicas a cualquier archivo o directorio en el que se tenga acceso de
lectura.

$ ln -s /usr miusr
$ ls /usr
bin games include lib local sbin share src
$ ls miusr
bin games include lib local sbin share src
# miusr es una liga al directorio /usr del sistema y desde el se pueden
# leer y/o ejecutar todos los archivos que contenga.
$ rm miusr
$ ls /usr
bin games include lib local sbin share src
# al borrar la liga los datos originales no se alteran.

find - búsqueda de archivos

El comando find se utiliza para localizar archivos que cumplen ciertos criteros, se pueden buscar archivos por
nombre, tipo de archivo, rango de fechas, etc.

find PATH OPCIONES


132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 20/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

PATH es la ruta desde la cual se hará la búsqueda, OPCIONES indica los criterios de búsqueda.

La forma mas simple es la búsqueda de un archivo por su nombre:

$ find / -name passwd 2> /dev/null


/etc/pam.d/passwd
/etc/cron.daily/passwd
/etc/passwd
/usr/bin/passwd
/usr/share/doc/passwd
/usr/share/lintian/overrides/passwd
#
# el redireccionamiento 2> indica enviar la salida de error estandar
# (asociada con el numero 2) al dispositivo (archivo) /dev/null que
# recibe todos los mensajes de error, si no se hace esto, se despliegan
# en pantalla errores debidos a faltas en los permisos de acceso.

Como criterios de búsqueda se puede usar buscar por tipo de archivo, con la opción -type seguida del tipo de
archivo usando los caracteres asociados al tipo de archivo del comando ls -l.

# lista todos los archivos tipo cartacter del directorio /dev


$ find /dev -type c 2>/dev/null
...
/dev/tty1
/dev/vcsa1
/dev/vcs1
/dev/vcsa
/dev/vcs
/dev/tty0
/dev/console
/dev/tty
/dev/oldmem
/dev/kmsg
/dev/urandom
/dev/random
...
# lista todos los archivos tipo liga del directorio /etc
$ find /etc -type l 2> /dev/null
...
/etc/ssl/certs/17b51fe6.0
/etc/network/if-up.d/wpasupplicant
/etc/network/if-post-down.d/avahi-daemon
/etc/network/if-post-down.d/wpasupplicant
/etc/network/run
/etc/network/if-pre-up.d/wpasupplicant
/etc/network/if-down.d/wpasupplicant
/etc/kernel/postinst.d/update-notifier
/etc/systemd/system/multi-user.target.wants/rsyslog.service

Para buscar los archivos de acuerdo a un criterio de tamaño se usa la opción size seguida del tamaño, se puede
usar el sufijo k,M o G para indicar kilobytes, megabytes o gigabytes; igualmente se puede anteponer al tamaño el
prefijo + o - para indicar tamaños mayores o menores al indicado.

# buscar archivos mayores a 20M en el directorio /usr


$ find /usr -size +20M 2>/dev/null
/usr/lib/firefox/libxul.so
/usr/lib/libwebkitgtk-3.0.so.0.13.1
/usr/lib/thunderbird/libxul.so
/usr/share/app-install/icon-theme.cache

Se puede ejecutar algún comando sobre el archivo localizado mediante la opción -exec, la sintaxis es:

find PATH OPCIONES -exec COMANDO {} \;


# {} se reemplaza por el path del archivo localizado por find

Por ejemplo para obtener el listado largo de los archivos localizados por tamaño del ejemplo anterior: 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 21/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

Navegación
# buscar archivos mayores a 20M en el directorio /usr y ejecuta ls -l
# sobre el archivo localizado
$ find /usr -size +20M -exec ls -l {} \; 2>/dev/null
-rw-r--r-- 1 root root 27M Apr 10 2012 /usr/lib/firefox/libxul.so
-rw-r--r-- 1 root root 22M Mar 30 2012 /usr/lib/libwebkitgtk-3.0.so.0.13.1
-rw-r--r-- 1 root root 33M Oct 10 20:41 /usr/lib/thunderbird/libxul.so
-rw-r--r-- 1 root root 23M Apr 23 2012 /usr/share/app-install/icon-theme.cache
Administración

stat

Despliega toda la información disponible sobre un archivo registrada en el sistema de archivos.

$ touch archivo
$ stat archivo
File: 'archivo'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 13502561 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ eml) Gid: ( 1000/ eml)
Access: 2012-10-31 01:58:42.358754088 -0600
Modify: 2012-10-31 01:58:42.358754088 -0600
Change: 2012-10-31 01:58:42.358754088 -0600
Birth: -
$ stat /bin/ps
File: '/bin/ps'
Size: 101240 Blocks: 200 IO Block: 4096 regular file
Device: 801h/2049d Inode: 3407999 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-10-30 11:59:24.391788221 -0600
Modify: 2011-12-12 11:42:38.000000000 -0600
Change: 2012-06-22 01:57:46.676057105 -0500
Birth: -

De la información desplegada el campo referente al último cambio sufrido por el archivo 'Modify' es de gran
importancia en términos de seguridad. Si el archivo en cuestión es un archivo de configuración o programa del
sistema operativo y éste tiene una fecha de cambio (Modify) posterior a la fecha de instalación del sistema,
entonces se puede sospechar que ha sido alterado y deberá ser analizado.

df (disk free)

Muestra el uso del sistema de archivos por cada partición montada en el sistema.

$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 96121612 15295996 75942828 17% /
udev 4068312 4 4068308 1% /dev
tmpfs 1632080 984 1631096 1% /run
none 5120 0 5120 0% /run/lock
none 4080196 800 4079396 1% /run/shm
cgroup 4080196 0 4080196 0% /sys/fs/cgroup
/dev/sda7 96120588 302700 90935152 1% /opt
/dev/sda8 28835836 8555196 18815860 32% /var
/dev/sda9 1648814756 523374580 1041685272 34% /home
/dev/sr0 521798 521798 0 100% /media/FD8135H-VVTK

La capacidad, la cantidad utilizada y la disponible se muestran en bloques de datos de 1KB, para que sea resulte
mas sencillo de entender el tamaño de cada columna es útil la opción -h (human readable) que muestra las
capacidades en unidades de MB o GB.

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 92G 15G 73G 17% /
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 1.6G 984K 1.6G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 800K 3.9G 1% /run/shm
132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 22/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos
cgroup 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda7 92G 296M 87G 1% /opt
/dev/sda8 28G 8.2G 18G 32% /var
/dev/sda9 1.6T 500G 994G 34% /home
/dev/sr0 510M 510M 0 100% /media/FD8135H-VVTK

Cada línea representa una partición física del disco duro (/dev/sdXX) o bien algún dispositivo virtual generado por
el kernel que es accesible desde el sistema de archivos (por ejemplo: udev, tmpfs, etc.).

du (disk used)

Muestra la candidad de espacio utilizado por cada directorio y subdirectorio a partir del path indicado (el directorio
actual, si no se indica ninguno).

$ du
936 ./pagina-ICN/icn/counter/miniflag
2128 ./pagina-ICN/icn/counter
44 ./pagina-ICN/icn/mycal
12 ./pagina-ICN/icn/layout/science/article
40 ./pagina-ICN/icn/layout/science/users
12 ./pagina-ICN/icn/layout/science/profiles
20 ./pagina-ICN/icn/layout/science/images/admin
68 ./pagina-ICN/icn/layout/science/images/icons
736 ./pagina-ICN/icn/layout/science/images
...
244 ./lib/python2.7/site-packages
248 ./lib/python2.7
21320 ./lib
20 ./examples
1588 ./lang_18_id_7e771951/licenses
568 ./lang_18_id_7e771951/readmes
352 ./lang_18_id_7e771951/DEBS/desktop-integration
1091928 ./lang_18_id_7e771951/DEBS
1094092 ./lang_18_id_7e771951
69280440 .

Las unidades están en bloques de 1KB para que se mas entendible se tiene la opción -h como en el caso del
comando df.

$ du -h
936K ./pagina-ICN/icn/counter/miniflag
2.1M ./pagina-ICN/icn/counter
44K ./pagina-ICN/icn/mycal
12K ./pagina-ICN/icn/layout/science/article
40K ./pagina-ICN/icn/layout/science/users
12K ./pagina-ICN/icn/layout/science/profiles
20K ./pagina-ICN/icn/layout/science/images/admin
68K ./pagina-ICN/icn/layout/science/images/icons
736K ./pagina-ICN/icn/layout/science/images
72K ./pagina-ICN/icn/layout/science/preferences
...
244K ./lib/python2.7/site-packages
248K ./lib/python2.7
21M ./lib
20K ./examples
1.6M ./lang_18_id_7e771951/licenses
568K ./lang_18_id_7e771951/readmes
352K ./lang_18_id_7e771951/DEBS/desktop-integration
1.1G ./lang_18_id_7e771951/DEBS
1.1G ./lang_18_id_7e771951
67G .

Si no se desea conocer el tamaño utilizado por cada subdirectorio se puede usar la opción -s (summary) para que
sólo muestre el espacio total utilizado por el directorio y todos sus subdirectorios.

$ du -hs
67G . 132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 23/24
8/1/2018 Linux Básico: Comandos del Sistema de Archivos

$ du -hs /home/eml
499G /home/eml

Otra opción útil es '--max-depth' que permite limitar el nivel de subdirectorios sobre los cuales se hará el cálculo
del espacio utilizado, '--max-depth=1' indica que se debe detallar sólo a nivel del primer subdirectorio.

$ du -h --max-depth=1 .
142M ./pagina-ICN
1.2M ./bin
176K ./VME-local
4.2M ./X8STi0.917
96M ./lustre-release
1.8M ./BTL_ET_TBB
16G ./Auger
357M ./OpenSceneGraph
...
252K ./temp
121M ./lustre-release-old
2.0M ./pysnmp-4.2.2
352M ./openmpi-1.6.3
21M ./lib
20K ./examples
1.1G ./lang_18_id_7e771951
67G .

mount

Muestra todas las particiones montadas (que son accesibles) desde el sistema de archivos.

/dev/sda5 on / type ext4 (rw,errors=remount-ro)


proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda7 on /opt type ext4 (rw)
/dev/sda8 on /var type ext4 (rw)
/dev/sda9 on /home type ext4 (rw)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)

La salida muestra la partición o dispositivo y el punto de montaje sobre el sistema de archivos, por ejemplo en la
salida anterior el directorio home (/home) se encuentra en la partición 9 del disco duro sda (/dev/sda9).

Última modificación: viernes, 11 de marzo de 2016, 12:54

Usted está ingresado como TES Tiangistenco (Salir)

Linux Básico

132.248.29.220
https://turing.nucleares.unam.mx/cursos/mod/page/view.php?id=9 24/24

Anda mungkin juga menyukai