Tabla de contenidos
Aquí, describo los trucos fundamentales para configurar y gestionar sistemas, principalmente desde la consola.
There are some utility programs to help your console activities.
Tabla 9.1. List of programs to support console activities
paquete | popularidad | tamaño | descripción |
---|---|---|---|
mc
|
V:54, I:226 | 1482 | See Sección 1.3, “Midnight Commander (MC)” |
bsdutils
|
V:610, I:999 | 355 | script command to make typescript of terminal session |
screen
|
V:91, I:263 | 997 | Multiplexador de terminal con emulación de terminal VT100/ANSI |
tmux
|
V:39, I:147 | 1106 | terminal multiplexer alternative (Use "Control-B" instead) |
fzf
|
V:3, I:11 | 3323 | fuzzy text finder |
fzy
|
V:0, I:0 | 54 | fuzzy text finder |
rlwrap
|
V:1, I:17 | 330 | readline feature command line wrapper |
ledit
|
V:0, I:13 | 315 | readline feature command line wrapper |
rlfe
|
V:0, I:0 | 42 | readline feature command line wrapper |
ripgrep
|
V:3, I:14 | 4557 | fast recursive string search in the source code tree with automatic filtering |
La utilización para el registro de la actividad del intérprete de órdenes,
sin más, de script
(1) (see Sección 1.4.9, “Grabación de las actividades del intérprete de órdenes”) produce un archivo con
caracteres de control. Esto se puede evitar con la utilización de
col
(1) como se muestra.
$ script Script started, file is typescript
Haga lo que quiera ... y pulse Ctrl-D
para finalizar
script
.
$ col -bx < typescript > cleanedfile $ vim cleanedfile
There are alternative methods to record the shell activities:
Use tee
(usable during the boot process in the
initramfs):
$ sh -i 2>&1 | tee typescript
Use gnome-terminal
with the extend line buffer for
scrollback.
Use screen
with "^A H
" (see Sección 9.1.2, “El programa screen”) to perform recording of console.
Use vim
with ":terminal
" to enter the
terminal mode. Use "Ctrl-W N
" to exit from terminal mode
to normal mode. Use ":w typescript
" to write the buffer
to a file.
Use emacs
with "M-x shell
",
"M-x eshell
", or "M-x term
" to enter
recording console. Use "C-x C-w
" to write the buffer to
a file.
Screen
(1) no solo permite trabajar con múltiples procesos
en un único terminal, si no que también que el
proceso del intérprete de órdenes remoto sobreviva a la interrupción de las
conexiones. Aquí está un escenario típico de utilización de
screen
(1).
Usted acceda a un equipo remoto.
Inici screen
en una única consola.
Ejecute múlitples programas en la ventana de screen
con
^A c
(«Control-A« seguido por «c«).
Puede cambiar entre las múltiples ventanas de screen
con
^A n
(«Control-A« seguido de «n«).
Si repentinamente necesita dejar su terminal, pero no quiere perder su trabajo activo por la mantener la conexión.
Se puede separar la sesión
screen
por cualquier método.
Desconexión forzada de su conexión de red
Pulse ^A d
(«Control-A« seguido de «d«) y cierre
manualmente la conexión remota
Pulse ^A DD
(«Control-A« seguido de «DD«) para que
screen
separe y cierre su sesión
Si inicia la sesión otra vez al mismo equipo remoto (incluso desde un terminal diferente).
Inicie screen
con «screen -r
».
Screen
magicamente reconecta con todas las ventanas anteriores de
screen
con todos los programas activos ejecutandose.
![]() |
Sugerencia |
---|---|
Puede guardar la entrada de la conexión con |
En una sesión de screen
, todas las entradas de teclado
son enviadas a la ventana actual excepto las que son combinaciones de
teclado de órdenes. Todas las combinaciones de teclas de órdenes
screen
se inician pulsando ^A
(«Control-A«) más otra tecla [más algunos parámetros]. Aquí estan algunos
importantes a recordar.
Tabla 9.2. Relación de los atajos de teclado para screen
función | significado |
---|---|
^A ? |
muestra la ayuda de screen (muestra los atajos de teclado) |
^A c |
crea una nueva ventana y cambia a ella |
^A n |
ir a la siguiente ventana |
^A p |
ir a la ventana anterior |
^A 0 |
va a la ventana 0 |
^A 1 |
va a la ventana número 1 |
^A w |
muestra una relación de las ventanas |
^A a |
envia un Ctrl-A a la ventana actual como entrada de teclado |
^A h |
escribe una copia de la ventana actual a un archivo |
^A H |
inicia/finaliza la grabación de la ventana actual a un archivo |
^A ^X |
bloquea la terminal (protegido por contraseña) |
^A d |
separa la sesión de screen de la terminal |
^A DD |
separa la sesión de screen y sale |
Para más detalles consulte screen
(1).
See tmux
(1) for functionalities of the alternative
command.
In Sección 1.4.2, “Personalización de bash”, 2 tips to allow quick navigation
around directories are described: $CDPATH
and
mc
.
Si utiliza el programa de fuzzy text filter, puede hacerlo sin escribir la
ruta exacta. Para fzf
, incluya lo siguiente en
~/.bashrc
.
FZF_KEYBINDINGS_PATH=/usr/share/doc/fzf/examples/key-bindings.bash if [ -f $FZF_KEYBINDINGS_PATH ]; then . $FZF_KEYBINDINGS_PATH fi FZF_COMPLETION_PATH=/usr/share/doc/fzf/examples/completion.bash if [ -f $FZF_COMPLETION_PATH ]; then . $FZF_COMPLETION_PATH fi
Por ejemplo:
Puedes saltar a un subdirectorio muy profundo con un mínimo esfuerzo.
Primero escribe "cd **
" y pulsa Tab
.
A continuación, se le pedirán las rutas candidatas. Si escribe cadenas de
rutas parciales, por ejemplo, s/d/b foo
, se reducirán las
rutas candidatas. Seleccione la ruta que va a usar cd
con las teclas de cursor y retorno.
Puede seleccionar un comando del historial de comandos de manera más
eficiente con un esfuerzo mínimo. Presione Ctrl-R
en el
símbolo del sistema. Luego le pedirá los comandos candidatos. Escribir
cadenas de comandos parciales, por ejemplo, vim d
,
reducirá los candidatos. Seleccione el que se utilizará con las teclas de
cursor y retorno.
Algunos comandos, como /usr/bin/dash
, que carecen de la
capacidad de edición del historial en la línea de comandos, pueden agregar
dicha funcionalidad de forma transparente si se ejecutan bajo
rlwrap
o sus equivalentes.
$ rlwrap dash -i
Esto proporciona una plataforma conveniente para probar puntos sutiles para
dash
con un entorno amigable similar a
bash
.
El comando rg
(1) en el paquete ripgrep
ofrece una alternativa más rápida al comando grep
(1) para
escanear el árbol de código fuente en busca para situaciones típicas.
Aprovecha las modernas CPU multinúcleo y aplica automáticamente filtros
razonables para omitir algunos archivos.
Después de aprender los conceptos básicos de vim
(1) a
través de Sección 1.4.8, “Usando vim”, lea "Siete hábitos de edición de texto
efectiva (2000) "de Bram Moolenaar, para entender cómo se debe usar
vim
.
![]() |
Atención |
---|---|
No intente cambiar las combinaciones de teclas predeterminadas sin muy buenas razones. |
Se puede cambiar el comportamiento de vim
significativamente habilitando sus características internas a través de los
comandos del modo Ex
como "set ...
"
para establecer opciones de vim.
Estos comandos en modo Ex
se pueden incluir en el archivo
vimrc del usuario, en el tradicional "~/.vimrc
" o en el
compatible con git "~/.vim/vimrc
". He aquí un ejemplo
muy simple [2]:
colorscheme murphy " from /usr/share/vim/vim??/colors/*.vim filetype plugin indent on " filetype aware behavior syntax enable " Syntax highlight "set spelllang=en_us " Spell check language as en_us "set spell " Enable spell check set autoindent " Copy indent from current line set smartindent " More than autoindent (Drop/Pop after {/}) set nosmarttab " <Tab>-key always inserts blanks set backspace=indent,eol,start " Back space through everything set laststatus=2 " Always show status line set statusline=%<%f%m%r%h%w%=%y[U+%04B]%2l/%2L=%P,%2c%V
Se puede habilitar una personalización simple para habilitar modelos seguros e IDE clásico instalando el paquete vim-scripts y agregando lo siguiente al archivo vimrc del usuario.
packadd! secure-modelines packadd! winmanager let mapleader = ' ' " Toggle paste mode with <SPACE>p set pastetoggle=<leader>p " IDE-like UI for files and buffers with <space>w nnoremap <leader>w :WMToggle<CR> " Use safer keys <C-?> for moving to another window nnoremap <C-H> <C-W>h nnoremap <C-J> <C-W>j nnoremap <C-K> <C-W>k nnoremap <C-L> <C-W>l
Para que las combinaciones de teclas anteriores funcionen correctamente, el
programa de terminal ha de configurarse para generar "ASCII DEL" para la
teclaBackspace
y "Secuencia de escape" para la tecla
Delete
.
El nuevo sistema de paquetes nativo de Vim funciona bien con
"git
" y "git submodule
". Puede
encontrar un ejemplo de configuración en my git repository: dot-vim. Esto hace
esencialmente:
Al usar "git
" y "git submodule
", los
últimos paquetes externos, como
"name
", se sitúan en
~/.vim/pack/*/opt/name
y similares.
Agregando la línea :packadd! name
al
archivo vimrc del usuario, estos paquetes se colocan en
runtimepath
.
Vim carga estos paquetes en runtimepath
durante su
inicialización.
Al final de su inicialización, se actualizan las etiquetas de los documentos
instalados con "helptags ALL
".
Para más información, inicie vim
con "vim
--startuptime vimstart.log
" para comprobar la secuencia de
ejecución real y el tiempo usado en cada paso.
Se pueden encontrar interesantes paquetes de complementos externos:
Vim - el editor de texto extendido -- El sitio web oficial de Vim y vim scripts
VimAwsome -- La lista de plugins de Vim
vim-scripts -- Paquete Debian: una colección de scripts de vim
Es bastante confuso ver demasiadas formas [3] de administrar y cargar estos paquetes externos en
vim
. Verificar la información original es la mejor cura.
Tabla 9.3. Información de la inicialización de vim
key strokes | information |
---|---|
:help package |
explicación sobre el mecanismo del paquete vim |
:help runtimepath |
explicación sobre el mecanismo de runtimepath |
:version |
condiciones internas incluyen candidatos para el archivo vimrc |
:echo $VIM |
la variable de entorno "$VIM " utilizada para situar el
archivo vimrc |
:set runtimepath? |
list of directories which will be searched for all runtime support files |
:echo $VIMRUNTIME |
the environment variable "$VIMRUNTIME " used to locate
various system provided runtime support files |
Many traditional programs record their activities in the text file format
under the "/var/log/
" directory.
logrotate
(8) is used to simplify the administration of
log files on a system which generates a lot of log files.
Many new programs record their activities in the binary file format using
systemd-journald
(8) Journal service under the
"/var/log/journal
" directory.
You can log data to the systemd-journald
(8) Journal from
a shell script by using the systemd-cat
(1) command.
Consulte Sección 3.4, “El sistema de mensajes” y Sección 3.3, “Los mensajes del núcleo”.
Aquí estan los analizadores de trazas más importantes
(«~Gsecurity::log-analyzer
» en
aptitude
(8)).
Tabla 9.4. Relación de analizadores de trazas del sistema
paquete | popularidad | tamaño | descripción |
---|---|---|---|
logwatch
|
V:14, I:16 | 2328 | analizador de trazas con una buena generación de salida escrito en Perl |
fail2ban
|
V:111, I:125 | 2127 | prohibición de las IPs con múltiples errores de acreditación |
analog
|
V:3, I:100 | 3739 | analizador de trazas para servidores web |
awstats
|
V:8, I:13 | 6895 | analizador de trazas para servidores web potente y con diversas funcionalidades |
sarg
|
V:1, I:2 | 845 | generador de informes de análisis de squid |
pflogsumm
|
V:2, I:4 | 109 | generador de resumenes de las trazas de postfix |
syslog-summary
|
V:0, I:1 | 30 | generador de resumenes del contenido del archivo de trazas de syslog |
fwlogwatch
|
V:0, I:0 | 477 | analizador de trazas de cortafuegos |
squidview
|
V:0, I:0 | 189 | controla y analiza los archivos access.log de squid |
swatch
|
V:0, I:0 | 99 | visor de archivos de trazas con encaje de expresiones regulares, eventos relevantes y reglas |
crm114
|
V:0, I:0 | 1119 | Filtro de spam y filtro mediante expresiones regulares programables (CRM114) |
icmpinfo
|
V:0, I:0 | 44 | intérprete de mensajes ICMP |
![]() |
Nota |
---|---|
CRM114 tiene un lenguaje que permite escribir borrosos filtros con la biblioteca de expresines regulares TRE . Su uso más común es como filtro de correos no deseados pero puede ser utilizado también como analizador de trazas. |
Aunque las herramientas de paginación como more
(1) y
less
(1) (consulte Sección 1.4.5, “El paginador”) y
herramientas personalizadas para marcar y dar formato (see Sección 11.1.8, “Resaltando y dándole formato a información en texto plano”) pueden visualizar
la información en formato texto de la forma correcta, los editores de
propósito general (consulte Sección 1.4.6, “El editor de texto”) son más
versátiles y personalizables.
![]() |
Sugerencia |
---|---|
En |
The default display format of time and date by the "ls
-l
" command depends on the locale (see Sección 1.2.6, “Marcas de tiempo” for
value). The "$LANG
" variable is referred first and it
can be overridden by the "$LC_TIME
" or
"$LC_ALL
" exported environment variables.
The actual default display format for each locale depends on the version of
the standard C library (the libc6
package) used. I.e.,
different releases of Debian had different defaults. For iso-formats, see
ISO 8601.
Si de verdad quiere personalizar el formato de visualización de la hora y la
fecha independientemente de la configuración
regional, debería asignar el valor de
estilo de tiempo por el parámetro
«--time-style
» o por el valor de
«$TIME_STYLE
» (consulte ls
(1),
date
(1), «info coreutils 'ls
invocation'
»).
Tabla 9.5. Display examples of time and date for the "ls -l
" command
with the time style value
valor del estilo de la hora | configuración regional | visualización de la hora y la fecha |
---|---|---|
iso |
cualquiera | 01-19 00:15 |
long-iso |
cualquiera | 2009-01-19 00:15 |
full-iso |
cualquiera | 2009-01-19 00:15:16.000000000 +0900 |
configuración regional |
C |
Jan 19 00:15 |
configuración regional |
en_US.UTF-8 |
Jan 19 00:15 |
configuración regional |
es_ES.UTF-8 |
ene 19 00:15 |
+%d.%m.%y %H:%M |
cualquiera | 19.01.09 00:15 |
+%d.%b.%y %H:%M |
C o en_US.UTF-8 |
19.Jan.09 00:15 |
+%d.%b.%y %H:%M |
es_ES.UTF-8 |
19.ene.09 00:15 |
![]() |
Sugerencia |
---|---|
You can eliminate typing long option on commandline using command alias (see Sección 1.5.9, “Alias de órdenes”): alias ls='ls --time-style=+%d.%m.%y %H:%M' |
En los terminales más modernos se pueden utilizar colores utilizando secuencias de escape ANSI (consulte
«/usr/share/doc/xterm/ctlseqs.txt.gz
»).
Por ejemplo, intente lo siguiente
$ RED=$(printf "\x1b[31m") $ NORMAL=$(printf "\x1b[0m") $ REVERSE=$(printf "\x1b[7m") $ echo "${RED}RED-TEXT${NORMAL} ${REVERSE}REVERSE-TEXT${NORMAL}"
Órdenes de colores son útiles para la comprobación visual de la salida en
entornos interactivos. Yo añado lo siguiente en mi
«~/.bashrc
».
if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias ls='ls --color=always' alias ll='ls --color=always -l' alias la='ls --color=always -A' alias less='less -R' alias ls='ls --color=always' alias grep='grep --color=always' alias egrep='egrep --color=always' alias fgrep='fgrep --color=always' alias zgrep='zgrep --color=always' else alias ll='ls -l' alias la='ls -A' fi
La utilización de alias limita los efectos del color en el uso de órdenes
interactivas. Tiene ventajas sobre las variables de entorno exportadas
«export GREP_OPTIONS='--color=auto'
» ya que el color
pueder verse en los programas de paginación como
less
(1). Si quiere eliminar el color cuando usa tuberías
con otros programas, utilice «--color=auto
» en su lugar
en los ejemplos anteriores «~/.bashrc
».
![]() |
Sugerencia |
---|---|
Puede deshabilitar los alias de color en un entorno interactivo llamando al
intérprete de órdenes con « |
Puede guardar las actividades del editor con repeticones complejas.
Para Vim, como sigue.
«qa
»: comienza a grabar los caracteres escritos en un
registro llamado «a
».
… actividades del editor
«q
»: finaliza la grabación de los caracteres escritos.
«@a
»: ejecuta el contenido del registro
«a
».
Para Emacs, como sigue.
«C-x (
»: comienza a definir una macro de teclado.
… actividades del editor
«C-x )
»: termina definir una macro de teclado.
«C-x e
»: ejecuta una macro de teclado.
Existen varias maneras de grabar una imagen gráfica de una aplicación X,
incluida una pantalla de xterm
.
Tabla 9.6. Relación de herramientas de manipulación de imágenes
paquete | popularidad | tamaño | screen | orden |
---|---|---|---|---|
gnome-screenshot
|
V:25, I:259 | 1134 | Wayland | screenshot application for GNOME |
flameshot
|
V:6, I:12 | 3361 | Wayland | screenshot application on steroid |
gimp
|
V:53, I:272 | 19767 | Wayland + X | screenshot in GUI menu |
x11-apps
|
V:26, I:440 | 2476 | X | xwd (1) |
imagemagick
|
I:326 | 176 | X | import (1) |
scrot
|
V:5, I:69 | 129 | X | scrot (1) |
There are specialized tools to record changes in configuration files with help of DVCS and to make system snapshots on Btrfs.
Tabla 9.7. List of packages which can record configuration history
paquete | popularidad | tamaño | descripción |
---|---|---|---|
etckeeper
|
V:27, I:31 | 164 | almacena los archivos de configuración y sus metadatos con Git (por defecto), Mercurial, o Bazaar (nuevo) |
timeshift
|
V:3, I:6 | 3155 | system restore utility using rsync or BTRFS snapshots |
snapper
|
V:4, I:5 | 2233 | Linux filesystem snapshot management tool |
You may also think about local script Sección 10.2.3, “Personal backup” approach.
Las actividades de los programas pueden ser monitoreados y controlados utilizando herramientas especializadas.
Tabla 9.8. Relación de las herramientas de monitorización y control de las actividades de los programas
paquete | popularidad | tamaño | descripción |
---|---|---|---|
coreutils
|
V:908, I:999 | 18062 | nice (1): ejecuta un programa modificando su prioridad de
planificación |
bsdutils
|
V:610, I:999 | 355 | renice (1): cambia la prioridad de planificación de un
proceso en ejecución |
procps
|
V:753, I:999 | 2091 | «/proc » utilidades del sistema de archivos:
ps (1), top (1),
kill (1), watch (1), … |
psmisc
|
V:426, I:798 | 909 | «/proc » utilidades del sistema de archivos:
killall (1), fuser (1),
peekfd (1), pstree (1) |
time
|
V:10, I:181 | 129 | time (1): ejecuta un programa para crear un informe de los
recursos del sistema utilizados a lo largo del tiempo |
sysstat
|
V:162, I:185 | 1785 | sar (1), iostat (1),
mpstat (1), …: herramientas de optimización del sistema en
Linux |
isag
|
V:0, I:3 | 106 | Graficador Interactivo de la Actividad del Sistema para sysstat |
lsof
|
V:393, I:942 | 482 | lsof (8): enumera la relación de archivos abiertos por un
proceso en ejecución utilizando la opción «-p » |
strace
|
V:14, I:135 | 2839 | strace (1): registro de las llamadas del sistema y señales |
ltrace
|
V:0, I:18 | 338 | ltrace (1): registro a las bibliotecas invocadas |
xtrace
|
V:0, I:0 | 353 | xtrace (1): registra las comunicaciones entre el cliente y
el servidor en X11 |
powertop
|
V:10, I:197 | 650 | powertop (1): información sobre el uso de la potencia por
parte del sistema |
cron
|
V:853, I:996 | 220 | ejecuta procesos en segundo plano de acuerdo a su planificación desde el
dominio cron (8) |
anacron
|
V:374, I:455 | 91 | planficador de tareas similar a cron para los sistemas que no están activos 24 horas al dia |
at
|
V:126, I:205 | 159 | at (1) or batch (1): ejecuta un trabajo
at en un momento determinado o por debajo de cierto nivel de carga |
![]() |
Sugerencia |
---|---|
El paquete |
Muestra el tiempo utilizado por un proceso invocado por la orden.
# time some_command >/dev/null real 0m0.035s # time on wall clock (elapsed real time) user 0m0.000s # time in user mode sys 0m0.020s # time in kernel mode
Un valor de «nice« se utiliza para determinar la prioridad de planificación de los procesos.
Tabla 9.9. Relación de valores de nice para la prioridad de planificación
Valor de nice | prioridad de planificación |
---|---|
19 | proceso de menor prioridad (nice) |
0 | proceso de muy alta prioridad para el usuario |
-20 | proceso de superusuario (no nice) de muy alta prioridad |
# nice -19 top # very nice # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # very fast
Algunas veces un valor extremo de nice produce más mal que bien al sistema. Utilice esta orden con cuidado.
La orden ps
(1) en un sistema Debian aportan tanto las
funcionalidades de SystemV y BSD y ayuda a identificar la actividad estática
del proceso.
Tabla 9.10. Lista de estilo de la orden ps
estilo | orden típica | funcionalidad |
---|---|---|
BSD | ps aux |
muestra %CPU %MEM |
System V | ps -efH |
visualiza PPID |
Para los procesos hijos zombies (muertos) , los puede eliminar mediante el
identificador del proceso padre que corresponde al campo
«PPID
».
La orden pstree
(1) muestra el árbol de procesos.
top
(1) en el sistema Debian es rico desde el punto de
vista funcional y ayuda a identificar que procesos actuan de forma extraña
puntualmente.
It is an interactive full screen program. You can get its usage help press by pressing the "h"-key and terminate it by pressing the "q"-key.
Puede enumerar los archivos abiertos por un proceso con el identificador de proceso (PID), p. ej. 1, con lo siguiente.
$ sudo lsof -p 1
PID=1 generalmente es del programa init
.
Puede trazar la actividad de un programa, invocaciones al sistema, señales,
invocaciones a bibliotecas o comunicaciones entre el cliente y servidor X11,
con strace
(1), ltrace
(1), o
xtrace
(1).
Puede seguir las invocaciones del sistema de la orden ls
con se muestra.
$ sudo strace ls
![]() |
Sugerencia |
---|---|
Usar el script strace-graph ubicado en /usr/share/doc/strace/examples/ para armar una vista de árbol agradable |
También puede identificar procesos utilizando archivos mediante
fuser
(1), p. ej. para
«/var/log/mail.log
» como se muestra.
$ sudo fuser -v /var/log/mail.log USER PID ACCESS COMMAND /var/log/mail.log: root 2946 F.... rsyslogd
Puede ver que el archivo «/var/log/mail.log
» esta abierto
en escritura por la orden rsyslogd
(8).
También puede identificar un proceso por la utilización de sus conexiones
(sockets) mediante fuser
(1), p. ej. para
«smtp/tcp
» como se muestra.
$ sudo fuser -v smtp/tcp USER PID ACCESS COMMAND smtp/tcp: Debian-exim 3379 F.... exim4
Ahora sabe que su sistema ejecuta exim4
(8) con el fin de
gestionar las conexiones TCP del puerto SMTP (25).
watch
(1) ejecuta un programa de forma reiterada a un
intervalo constante mientras muestra la salida del programa a pantalla
completa.
$ watch w
Esto muestra quién está acreditado en el sistema y lo actualiza cada 2 segundos.
Existen varias formas de repetir una orden sobre los archivos que cumplan
una condición, p. ej, encajan en un patrón «*.ext
».
Método del bucle for del intérprete de órdenes (consulte Sección 12.1.4, “Bucles del intérprete de órdenes”):
for x in *.ext; do if [ -f "$x"]; then command "$x" ; fi; done
Combinación de find
(1) y xargs
(1):
find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 command
find
(1) con la opción «-exec
» y una
orden:
find . -type f -maxdepth 1 -name '*.ext' -exec command '{}' \;
find
(1) con la opción «-exec
» con un
archivo de órdenes pequeño:
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'successful'" \;
Los ejemplos anteriores están escritos para asegurar el correcto tratamiento
de los nombres de archivos que contienen caracteres raros como los
espacios. Para usos avanzados de find
(1) consulte Sección 10.1.5, “Formas de selección de archivos”.
Para el interfaz de órdenes en línea
(CLI), el programa ejecutado será el primero que encaja el nombre en
el directorio especificdo por la variable de entorno
$PATH
. Consulte Sección 1.5.3, “La variable «$PATH
»”.
For the graphical user interface
(GUI) compliant to the freedesktop.org standards, the
*.desktop
files in the
/usr/share/applications/
directory provide necessary
attributes for the GUI menu display of each program. Each package which is
compliant to Freedesktop.org's xdg menu system installs its menu data
provided by "*.desktop" under "/usr/share/applications/". Modern desktop
environments which are compliant to Freedesktop.org standard use these data
to generate their menu using the xdg-utils package. See
"/usr/share/doc/xdg-utils/README".
Por ejemplo, el archivo chromium.desktop
define los
atributos para el «Navegador Web Chromium« como «Name« para el nombre del
programa, «Exec« para la ruta de ejecución del programa y parámetros, «Icon«
para el icono utilizado, etc. (consulte la Especificación de Entradas del Escritorio
(Desktop Entry Specification)) como sigue:
[Desktop Entry] Version=1.0 Name=Chromium Web Browser GenericName=Web Browser Comment=Access the Internet Comment[fr]=Explorer le Web Exec=/usr/bin/chromium %U Terminal=false X-MultipleArgs=false Type=Application Icon=chromium Categories=Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https; StartupWMClass=Chromium StartupNotify=true
Esta es una descripción muy simplificadao. Los archivos
*.desktop
son revisados como sigue.
El entorno de escritorio asigna las variables del entorno
$XDG_DATA_HOME
and $XDG_DATA_DIR
. Por
ejemplo, en GNOME 3:
$XDG_DATA_HOME
esta sin asignar. (El valor por defecto
que se utiliza es $HOME/.local/share
.)
$XDG_DATA_DIRS
se le asigna el valor
/usr/share/gnome:/usr/local/share/:/usr/share/
.
Así los directorios base (consulte XDG Base Directory
Specification) y los directorios de aplicaciones
quedan como sigue.
$HOME/.local/share/
→
$HOME/.local/share/applications/
/usr/share/gnome/
→
/usr/share/gnome/applications/
/usr/local/share/
→
/usr/local/share/applications/
/usr/share/
→ /usr/share/applications/
Los archivos *.desktop
se comprueban en estos
directorios de aplicaciones
siguiendo este orden.
![]() |
Sugerencia |
---|---|
Se puede crear una entrada personalizada al menú del interfaz gráfico de
usuario (GUI) añadiendo un archivo |
![]() |
Sugerencia |
---|---|
Igualmente, si se crea un archivo |
![]() |
Sugerencia |
---|---|
De igual manera, si un archivo |
Algunos programas inician otros programa de forma automática. Aquí estan los puntos a compribar para la personalización de este proceso.
Menú de configuración de aplicaciones:
Escritorio GNOME3: «Configuración« → «Sistema« → «Detalles« → «Aplicaciones por defecto«
Escritorio KDE: «K« → «Centro de Control« → «Componenetes KDE« → «Selección de componentes«
Navegador Iceweasel: «Editar→ «Preferencias« → «Aplicaciones«
mc
(1): «/etc/mc/mc.ext
»
Environment variables such as "$BROWSER
",
"$EDITOR
", "$VISUAL
", and
"$PAGER
" (see environ
(7))
El sistema update-alternatives
(1) para los programas como
«editor
», «view
»,
«x-www-browser
», «gnome-www-browser
»,
and «www-browser
» (consulte Sección 1.4.7, “Configuración del editor de texto por defecto”)
El contenido de los archivos «~/.mailcap
» y
«/etc/mailcap
» que asocia los tiposMIME con los programas (consulte
mailcap
(5))
El contenido de los archivos «~/.mime.types
» y
«/etc/mime.types
» el cual se asocia con la extensión del
nombre del archivo con los tipos MIME (consulte
run-mailcap
(1))
![]() |
Sugerencia |
---|---|
|
![]() |
Sugerencia |
---|---|
El paquete |
![]() |
Sugerencia |
---|---|
In order to run a console application such as # cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF # chmod 755 /usr/local/bin/mutt-term |
![]() |
Sugerencia |
---|---|
GUI application can be executed easily under specific environment variables
if the program for "Exec" in its corresponding # cat /usr/local/bin/kitty <<EOF #!/bin/sh GLFW_IM_MODULE=ibus exec /usr/bin/kitty "\$@" EOF # chmod 755 /usr/local/bin/kitty This |
Utilice kill
(1) para matar (o enviar una señal a) un
proceso mediante su identificador de proceso.
Utilice killall
(1) o pkill
(1) para
hacer lo mismo mediante otros atributos como el nombre de la orden del
proceso.
Tabla 9.11. Relación de las señales más usadas con la orden kill
valor de la señal | nombre de la señal | acción | note |
---|---|---|---|
0 | --- | no signal is sent (see kill (2)) |
check if process is running |
1 | SIGHUP | terminate the process | disconnected terminal (signal hang up) |
2 | SIGINT | terminate the process | interrupt from keyboard (CTRL-C ) |
3 | SIGQUIT | terminate the process and dump core | quit from keyboard (CTRL-\ ) |
9 | SIGKILL | terminate the process | unblockable kill signal |
15 | SIGTERM | terminate the process | blockable termination signal |
Ejecute al orden at
(1) para planificar una única
ejecución de un trabajo mediente lo siguiente.
$ echo 'command -args'| at 3:40 monday
Utilice cron
(8) para planificar las tareas de forma
regular. Consulte crontab
(1) y
crontab
(5).
Puede planificar la ejecución de procesos como un usuario normal,
p. ej. foo
creando un archivo
crontab
(5) como
«/var/spool/cron/crontabs/foo
» con la orden
«crontab -e
».
Aquí esta un ejemplo de un archivo crontab
(5).
# use /bin/sh to run commands, no matter what /etc/passwd says SHELL=/bin/sh # mail any output to paul, no matter whose crontab this is MAILTO=paul # Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed) # run at 00:05, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # run at 14:15 on the first of every month -- output mailed to paul 15 14 1 * * $HOME/bin/monthly # run at 22:00 on weekdays(1-5), annoy Joe. % for newline, last % for cc: 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%% 23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" 5 4 * * sun echo "run at 04:05 every Sunday" # run at 03:40 on the first Monday of each month 40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args
![]() |
Sugerencia |
---|---|
En los sistemas que no están en funcionamiento ininterrumpido, instale el
paquete |
![]() |
Sugerencia |
---|---|
Para los archivos de órdenes de mantenimiento del sistema, puede ejecutarlos
de forma periódica desde la cuenta de superusuario ubicando esos archivos de
órdenes en « |
Systemd has low level capability to schedule
programs to run without cron
daemon. For example,
/lib/systemd/system/apt-daily.timer
and
/lib/systemd/system/apt-daily.service
set up daily apt
download activities. See systemd.timer
(5) .
Pressing Alt-SysRq (PrtScr) followed by one keys does the magic of rescuing control of the system.
Tabla 9.12. List of notable SAK command keys
tecla seguida de Alt-SysRq | descripción de la acción |
---|---|
k |
kill all processes on the current virtual console (SAK) |
s |
sincroniza todos los sistemas de archivos montados para evitar la corrupción de datos |
u |
remonta todos los sistemas de archivos montados como de solo lectura (desmonta) |
r |
recupera el teclado del modo crudo después de que las X fallen |
See more on Linux kernel user’s and administrator’s guide » Linux Magic System Request Key Hacks
![]() |
Sugerencia |
---|---|
Desde terminales SSH etc., puede utilizar la funcionalidad Alt-SysRq
resribiendo « |
The current (2021) Debian amd64 Linux kernel has
/proc/sys/kernel/sysrq=438=0b110110110
:
2 = 0x2 - enable control of console logging level (ON)
4 = 0x4 - enable control of keyboard (SAK, unraw) (ON)
8 = 0x8 - enable debugging dumps of processes etc. (OFF)
16 = 0x10 - enable sync command (ON)
32 = 0x20 - enable remount read-only (ON)
64 = 0x40 - enable signaling of processes (term, kill, oom-kill) (OFF)
128 = 0x80 - allow reboot/poweroff (ON)
256 = 0x100 - allow nicing of all RT tasks (ON)
Puede comprobar quién esta en el sistema como se muestra.
who
(1) shows who is logged on.
w
(1) shows who is logged on and what they are doing.
last
(1) shows listing of last logged in user.
lastb
(1) muestra una relación de los últimos intentos
fallidos de acceso a una sesión.
![]() |
Sugerencia |
---|---|
« |
Puede enviar mensajes a cualquiera que esté acreditado en el sistema con
wall
(1) como se muestra.
$ echo "We are shutting down in 1 hour" | wall
El punto de inicio para la identificación de los dispositivos tipo PCI (AGP, PCI-Express, CardBus, ExpressCard, etc.) es la orden
lspci
(8) (preferentemente con la opción
«-nn
»).
Otra forma en la que puede identificar el hardware es leyendo el contenido
de «/proc/bus/pci/devices
» o navegando por el árbol de
directorios que cuelga de «/sys/bus/pci
» (consulte Sección 1.2.12, “procfs y sysfs”).
Tabla 9.13. Relación de las herramientas para la identificación de hardware
paquete | popularidad | tamaño | descripción |
---|---|---|---|
pciutils
|
V:225, I:990 | 210 | Utilidades de Linux para PCI: lspci (8) |
usbutils
|
V:71, I:855 | 325 | Utilidades de Linux para USB: lsusb (8) |
nvme-cli
|
V:8, I:15 | 1346 | NVMe utilities for Linux: nvme (1) |
pcmciautils
|
V:8, I:13 | 91 | Utilidades Linux para PCMCIA: pccardctl (8) |
scsitools
|
V:0, I:3 | 375 | colección de herramientas para la gestión de hardware SCSI:
lsscsi (8) |
procinfo
|
V:0, I:11 | 132 | información del sistema obtenida de «/proc »:
lsdev (8) |
lshw
|
V:14, I:96 | 919 | información sobre la configuración hardware: lshw (1) |
discover
|
V:37, I:951 | 98 | sistema de identificación hardware: discover (8) |
Aunque la mayor parte de la configuración del hardware en los sistemas de escritorio con interfaz gráfico de usuario como GNOME y KDE se puede realizar mediante herramientas de configuración con interfaz gráfico de usuario, es una buena idea conocer algunos métodos básicos para su configuración.
Tabla 9.14. Relación de herramientas de configuración hardware
paquete | popularidad | tamaño | descripción |
---|---|---|---|
console-setup
|
V:95, I:964 | 425 | Utilidades de teclado y tipos de letra para consolas |
x11-xserver-utils
|
V:285, I:506 | 576 | Utilidades de servidor X: xset (1),
xmodmap (1) |
acpid
|
V:110, I:205 | 154 | demonio que gestiona los eventos que llegan del Interfaz de Fuerza y Configuración Avanzada (Advanced Configuration and Power Interface, ACPI) |
acpi
|
V:12, I:190 | 47 | utilidad para visualizar información de dispositivos ACPI |
sleepd
|
V:0, I:0 | 86 | demonio que «duerme« el portátil si deja de tener actividad |
hdparm
|
V:243, I:461 | 256 | optimización de acceso al disco duro (consulte Sección 9.6.9, “Optimización del disco duro”) |
smartmontools
|
V:189, I:236 | 2199 | control y monitoreo de sistemas de almacenamiento utilizando S.M.A.R.T. |
setserial
|
V:4, I:7 | 103 | colección de herramientas para la gestión del puerto serie |
memtest86+
|
V:1, I:24 | 12681 | colección de herramientas para la gestión de la memoria hardware |
scsitools
|
V:0, I:3 | 375 | colección de herramientas para la gestión de hardware SCSI |
setcd
|
V:0, I:0 | 35 | optimización de acceso a la unidad de discos compactos |
big-cursor
|
I:0 | 26 | cursores grandes del ratón para X |
Aquí, ACPI es un marco más nuevo para el sistema de gestión de fuerza que APM.
![]() |
Sugerencia |
---|---|
La frecuencia de funcionamiento de la CPU de los sistemas modernos esta
gestionada por módulos en el núcleo como |
Lo siguiente asigna al sistema y hardware la hora y fecha a MM/DD hh:mm CCYY.
# date MMDDhhmmCCYY # hwclock --utc --systohc # hwclock --show
La hora habitualmente se visualiza en la hora local en el sistema Debian pero el hardware y el sistema usa generalmente la hora en UTC(GMT).
If the hardware time is set to UTC, change the setting to
"UTC=yes
" in the "/etc/default/rcS
".
Lo siguiente reconfigura la zona horaria utilizada por el sistema Debian.
# dpkg-reconfigure tzdata
Si desea actualizar el tiempo del sistema a través de la red, piense en
utilizar el servicio NTP con paquetes como
ntp
, ntpdate
y
chrony
.
![]() |
Sugerencia |
---|---|
En systemd para la sincronización de la hora
a través de la red utilice |
Consulte lo siguiente.
![]() |
Sugerencia |
---|---|
|
Existen diferentes componentes para configura la consola de caracteres y las
funcionalidades del sistema ncurses
(3) system features.
El archivo «/etc/terminfo/*/*
»
(terminfo
(5))
La variable de entorno «$TERM
»
(term
(7))
setterm
(1), stty
(1),
tic
(1) y toe
(1)
Si la entrada terminfo
de xterm
no
funciona con una xterm
que no es de Debian, cambie el
tipo de terminal cambiando «$TERM
» de
«xterm
» a una versión con funcionalidades limitadas como
«xterm-r6
» al autenticarse en el sistema Debian de forma
remota. Para mayor información consulte
«/usr/share/doc/libncurses5/FAQ
».
«dumb
» es el mínimo común denominador para
«$TERM
».
La Arquitectura Avanzada de Sonido para Linux (Advanced Linux Sound Architecture, ALSA) proporciona los controladores de dispositivos de tarjetas de sonido en el actual Linux. ALSA tiene un modo de emulación para ser compatible con el anterior Open Sound System (OSS).
Application softwares may be configured not only to access sound devices directly but also to access them via some standardized sound server system. Currently, PulseAudio, JACK, and PipeWire are used as sound server system. See Debian wiki page on Sound for the latest situation.
Generalmente existe un motot de sonido común para los entorno de escritorio más populares. Cada motor de sonido utilizado por la aplicación puede elegir conectarse a diferentes servidores de sonido.
![]() |
Sugerencia |
---|---|
Para comprobar el altavoz (speaker) utilice « |
![]() |
Sugerencia |
---|---|
Si no obtiene sonido, su altavoz puede estar conectado a una salida en
silencio. |
Tabla 9.15. Relación de paquetes de sonido
Para deshabilitar el salvapantallas, utilice las siguientes órdenes.
Tabla 9.16. Relación de las órdenes para deshabilitar el salvapantallas
entorno | orden |
---|---|
La consola de Linux | setterm -powersave off |
Las Ventanas X (deshabilitando el salvapantallas) | xset s off |
Las Ventanas X (deshabilitando dpms) | xset -dpms |
Las Ventanas X (configuración por GUI del salvapantallas) | xscreensaver-command -prefs |
Siempre puede desenchufar el altavoz del PC para deshabilitar los
pitidos. Eliminando el módulo del núcleo pcspkr
realiza
ese trabajo por usted.
Lo siguiente impide que el programa readline
(3) utilizado
por bash
(1) pite cuando encuentre un carácter de alerta
(ASCII=7).
$ echo "set bell-style none">> ~/.inputrc
Existen dos recursos disponibles para determinar el uso de la memoria.
El mensaje de arranque del núcleo en «/var/log/dmesg
»
contiene el tamaño exacto de memoria disponible.
free
(1) y top
(1) visualiza la
información de los recursos de memoria en el sistema en ejecución.
Aquí hay un ejemplo.
# grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total used free shared buffers cached Mem: 997184 976928 20256 0 129592 171932 -/+ buffers/cache: 675404 321780 Swap: 4545576 4 4545572
Se puede sorprender que «dmesg le diga que existen 990 MB libres y free -k dice que solo hay 320 MB libres. Más de 600 MB de diferencia …«.
No se preocupe por el gran tamaño de memoria «utilizada
»
y el pequeño tamaño de memoria «libre
» en la línea
«Mem:
», pero leea lo que hay debajo (675404 y 321780 en
el ejemplo anterior) y relajese.
Para mi MacBook con 1GB=1048576k DRAM (el sistema de video usa algo de esto), tengo lo siguiente.
Tabla 9.17. Relación de informes de tamaño de la memoria
informe | tamaño |
---|---|
Tamaño total en dmesg | 1016784k = 1GB - 31792k |
Memoria libre en dmesg | 990528k |
Total en el intérprete de órdenes | 997184k |
Libre en el intérprete de órdenes | 20256k (pero de forma efectiva 321780k) |
Un mantenimiento inadecuado de su sistema puede exponerlo a ser atacado desde el exterior.
Para la seguridad y las comprobaciones de intergridad, debe comenzar con lo que se muestra.
Para el paquete debsums
, consulte
debsums
(1) y Sección 2.5.2, “Archivo «Release» del nivel superior y autenticación”.
Para el paquete chkrootkit
consulte
chkrootkit
(1).
Para la familia de paquetes clamav
consulte
clamscan
(1) y freshclam
(1).
Tabla 9.18. Relación de las herramientas de seguridad del sistema y comprobación de la integridad
paquete | popularidad | tamaño | descripción |
---|---|---|---|
logcheck
|
V:7, I:9 | 102 | demonio que envía por correo anomalías en los registros del sistema al administrador |
debsums
|
V:5, I:41 | 108 | utilidad para verificar los archivos de los paquetes instalado mediante sumas MD5 |
chkrootkit
|
V:4, I:20 | 922 | detector de rootkit |
clamav
|
V:10, I:51 | 29115 | utilidad anti-virus para Unix - interfaz de línea de órdenes |
tiger
|
V:2, I:2 | 7800 | informa de vulnerabilidades de seguridad del sistema |
tripwire
|
V:2, I:3 | 11951 | comprobador de integridad de archivos y directorios |
john
|
V:1, I:10 | 471 | herramienta para descifrar contraseñas |
aide
|
V:1, I:1 | 248 | Entorno de Detección Avanzado de Intrusión - binario estático |
integrit
|
V:0, I:0 | 324 | programa de verificación de la integridad del archivo |
crack
|
V:0, I:1 | 152 | programa que adivina contraseñas |
Aquí esta un archivo de órdenes para comprobar el permiso de escritura incorrecto para todos.
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
![]() |
Atención |
---|---|
Ya que el paquete |
El arranque de su sistema Linux con «live CDs« o CDs de instalación de debian en modo rescate hace que sea fácil reconfigurar la información de almacenamiento en su dispositivo de arranque.
You may need to umount
(8) some devices manually from the
command line before operating on them if they are automatically mounted by
the GUI desktop system.
El uso de espacio en disco puede ser evaluado por los programas
proporcionados por los paquetes mount
,
coreutils
y xdu
:
mount
(8) muestra todos los sistemas de archivos (=discos)
montados.
df
(1) muestra el espacio de disco utilizado por el
sistema de archivos.
du
(1) informa del espacio de disco utilizado por el árbol
de un directorio.
![]() |
Sugerencia |
---|---|
Puede utilizar la salida de |
Para la configuración de la partición del disco
, a pesar de que fdisk
(8) fue considerado en el
pasado el estándar, parted
(8) merece nuestra
atención. Las expresiones «datos del particionado del disco«, «tabla de
partición«, «mapa de particiones« y «marcado del disco« son todas ellas
sinónimos.
Older PCs use the classic Master Boot Record (MBR) scheme to hold disk partitioning data in the first sector, i.e., LBA sector 0 (512 bytes).
Recent PCs with Unified Extensible Firmware Interface (UEFI), including Intel-based Macs, use GUID Partition Table (GPT) scheme to hold disk partitioning data not in the first sector.
Aunque fdisk
(8) fue la herramienta estándar para el
particionado del disco, ha sido sustituida por parted
(8).
Tabla 9.19. Relación de paquetes para la gestión del particionado del disco
paquete | popularidad | tamaño | descripción |
---|---|---|---|
util-linux
|
V:895, I:999 | 4974 | las utilidades varias del sistema incluyen fdisk (8) y
cfdisk (8) |
parted
|
V:385, I:545 | 122 | Programa de modificación del tamaño de las particiones de disco GNU Parted |
gparted
|
V:15, I:111 | 2109 | Editor GNOME del particionado basado en libparted |
gdisk
|
V:358, I:506 | 885 | partition editor for the GPT/MBR hybrid disk |
kpartx
|
V:22, I:35 | 74 | programa para crear mapeos entre dispositivos y particiones |
![]() |
Atención |
---|---|
Aunque |
![]() |
Nota |
---|---|
Para realizar el cambio entre GPT y MBR, necesita eliminar el contenido de unos cuantos
bloques ubicados al principio (consulte Sección 9.8.6, “Limpieza del contenido de los archivos”) y utilice « |
Although reconfiguration of your partition or activation order of removable storage media may yield different names for partitions, you can access them consistently. This is also helpful if you have multiple disks and your BIOS/UEFI doesn't give them consistent device names.
Mount
(8) con la opción «-U
» permite
montar dispositivos de bloque utilizando UUID,
en lugar de sus nombres de archivo como «/dev/sda3
».
«/etc/fstab
» (consulte fstab
(5)) puede
utilizar UUID.
Los gestores de arranque (Sección 3.1.2, “Fase 2: el cargador de arranque”) pueden utilizar también UUID.
![]() |
Sugerencia |
---|---|
Puede determinar el UUID de un dispositivo
especial de bloque con You can also probe it and other information with " |
LVM2 es un gestor de volumenes lógicos del núcleo de Linux. Con LVM2 las particiones de disco se pueden crear en volumenes lógicos en vez de discos duros físicos.
LVM necesita lo siguiente.
soporte de device-mapper en el núcleo Linux (por defecto en los núcleos de Debian)
el soporte de la biblioteca device-mapper en el espacio de usuario (paquete
libdevmaper*
)
herramientas LVM2 del espacio de usuario (paquete lvm2
)
Por favor, para comenzar a aprender LVM2 lea las siguiente páginas de manual.
lvm
(8): Fundamentos del mecanismo LVM2 (relación de todas
las órdenes LVM2)
lvm.conf
(5): archivo de configuración de LVM2
lvs
(8): crea un informe sobre los volúmenes lógicos
vgs
(8): crea un informe sobre los grupos de volúmentes
pvs
(8): crea un informe sobre los volúmenes físicos
Para el sistema de archivos ext4, el paquete
e2fsprogs
aporta lo siguiente.
mkfs.ext4
(8) para crear un nuevo de sistema de archivos
ext4
fsck.ext4
(8) para comprobar y reparar un sistema de
archivos ext4 preexistente
tune2fs
(8) para configurar el superbloque de ext4 filesystem
debugfs
(8) para depurar en modo interactivo el sistema de
archivos ext4. (Existe la orden
undel
para recuperar los archivos borrados.)
Las órdenes mkfs
(8) y fsck
(8) esta en
el paquete e2fsprogs
como interfaz de varios programas
especificos del sistema de archivos (mkfs.fstype
y
fsck.fstype
). Para el sistema de archivos ext4 existen mkfs.ext4
(8) y
fsck.ext4
(8) (esta enlazado a
mke2fs
(8) y e2fsck
(8)).
Las siguientes órdenes están disponibles para cada sistema de archivos que soporta Linux.
Tabla 9.20. Relación de paquetes para la gestión del sistema de archivos
paquete | popularidad | tamaño | descripción |
---|---|---|---|
e2fsprogs
|
V:703, I:999 | 1480 | utilidades para el sistema de archivos ext2/ext3/ext4 |
btrfs-progs
|
V:43, I:72 | 4281 | utilidades para el sistema de archivos Btrfs |
reiserfsprogs
|
V:11, I:27 | 1132 | utilidades para el sistema de archivos Reiserfs |
zfsutils-linux
|
V:27, I:29 | 1610 | utilities for the OpenZFS filesystem |
dosfstools
|
V:149, I:504 | 315 | utilidades para el sistema de archivos FAT. (Microsoft: MS-DOS, Windows) |
exfatprogs
|
V:12, I:214 | 281 | utilities for the exFAT filesystem maintained by Samsung. |
exfat-fuse
|
V:10, I:233 | 75 | read/write exFAT filesystem (Microsoft) driver for FUSE. |
exfat-utils
|
V:9, I:228 | 231 | utilities for the exFAT filesystem maintained by the exfat-fuse author. |
xfsprogs
|
V:23, I:100 | 3444 | utilidades para el sistema de archivos XFS. (SGI: IRIX) |
ntfs-3g
|
V:151, I:488 | 1469 | read/write NTFS filesystem (Microsoft: Windows NT, …) driver for FUSE. |
jfsutils
|
V:0, I:10 | 1577 | utilidades para el sistema de archivos JFS. (IBM: AIX, OS/2) |
reiser4progs
|
V:0, I:3 | 1367 | utilidades para el sistema de archivos Reiser4 |
hfsprogs
|
V:0, I:6 | 394 | utilidades para el sistema de archivos HFS y HFS Plus. (Apple: Mac OS) |
zerofree
|
V:4, I:128 | 25 | programa de cero bloques libres para sistemas de archivos ext2/3/4 |
![]() |
Sugerencia |
---|---|
Ext4 es el sistema de archivos por defecto para el sistema Linux y es muy recomendable su uso a menos que tenga una razón concreta para no hacerlo. Btrfs status can be found at Debian wiki on btrfs and kernel.org wiki on btrfs. It is expected to be the next default filesystem after the ext4 filesystem. Algunas herramientas permiten el acceso al sistema de archivos sin soporte del núcleo de Linux (consulte Sección 9.8.2, “Manipular archivos sin el montaje de discos”). |
La orden mkfs
(8) crea el sistema de archivos en el
sistema Linux. La orden fsck
(8) aporta la comprobación de
integridad al sistema de archivos y la capacidad de reparación al sistema
Linux.
El Debian actual no ejecuta periódicamente fsck
después
de la creación del sistema de archivos.
![]() |
Atención |
---|---|
Normalmente no es seguro ejecutar |
![]() |
Sugerencia |
---|---|
Puede ejecutar la orden Para comprobar la ejecución de la orden |
La configuración estática básica del sistema de archivos se realizan en
«/etc/fstab
». Por ejemplo,
«file system» «mount point» «type» «options» «dump» «pass» proc /proc proc defaults 0 0 UUID=709cbe4c-80c1-56db-8ab1-dbce3146d2f7 / ext4 errors=remount-ro 0 1 UUID=817bae6b-45d2-5aca-4d2a-1267ab46ac23 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
![]() |
Sugerencia |
---|---|
UUID (consulte Sección 9.6.3, “Acceso al particionado utilizando UUID”) puede utilizarse para
identificar los dispositovos de bloque en lugar de los nombres de los
dispositivos de bloque como « |
Since Linux 2.6.30, the kernel defaults to the behavior provided by
"relatime
" option.
See fstab
(5) and mount
(8).
La caracterización del sistema de archivos puede ser optimizado a través de
su superbloque utilizando la orden tune2fs
(8).
La ejecución de «sudo tune2fs -l /dev/hda1
» muestra el
contenido del sistema de archivos del superbloque de
«/dev/hda1
».
La ejecución de «sudo tune2fs -c 50 /dev/hda1
» cambia la
frecuencia de comprobaciones del sistema de archivos
(fsck
durante el arranque) cada 50 arranques en
«/dev/hda1
».
La ejecución de «sudo tune2fs -j /dev/hda1
» añade la
capacidad del registro de operaciones al sistema archivos, a saber
conversión del sistema de archivos de ext2 a
ext3 en «/dev/hda1
». (Para
ello se necesita que el sistema de archivos este desmontado.)
La ejecución de «sudo tune2fs -O extents,uninit_bg,dir_index
/dev/hda1 && fsck -pf /dev/hda1
» lo convierte de ext3 a ext4 en
«/dev/hda1
». (Realice esto con el sistema de archivos
desmontado.)
![]() |
Aviso |
---|---|
Por favor, compruebe su hardware y lea las páginas de manual de
|
Puede comprobar la velocidad de acceso al disco duro,
p. ej. «/dev/hda
» con «hdparm -tT
/dev/hda
». Algunos discos conectados mediante (E)IDE se puede
mejorar su velocidad con «hdparm -q -c3 -d1 -u1 -m16
/dev/hda
» activando el «soporte I/O (E)IDE 32-bit«, activando la
«bandera using_dma«, asignando la «bandera interrupt-unmask« y activando
«multiple 16 sector I/O« (¡peligroso!).
Puede comprobar la funcionalidad de la escritura de caché del disco duro ,
p. ej. «/dev/sda
», con «hdparm -W
/dev/sda
». Para deshabilitar esta funcionalidad ejecute
«hdparm -W 0 /dev/sda
».
Puede intentar leer CDROMs dañados en dispositivos de lectura de alta
velocidad modernos haciendo que funcionen a menor velocidad con
«setcd -x 2
».
Solid state drive (SSD) is auto detected now.
Reduce unnecessary disk accesses to prevent disk wear out by mounting
"tmpfs
" on volatile data path in
/etc/fstab
.
Puede monitorear y registrar el cumplimiento de su disco duro con SMART con el demonio smartd
(8).
Instale el paquete smartmontools
.
Identifique los dispositivos que son discos duros enumerándolos con
df
(1).
Asumamos que el dispositivo de disco duro a controlar es
«/dev/hda
».
Compruebe la salida de «smartctl -a /dev/hda
» para
verificar que la funcionalidad SMART está
activada realmente.
Si no es así, activelo con «smartctl -s on -a /dev/hda
».
Active el demonio smartd
(8) ejecutando lo siguiente.
descomente «start_smartd=yes
» en el archivo
«/etc/default/smartmontools
».
restart the smartd
(8) daemon by "sudo systemctl
restart smartmontools
".
![]() |
Sugerencia |
---|---|
El demonio |
Las aplicaciones habitualmente crean los archivos temporales en el
directorio de almacenamiento temporal «/tmp
». Si
«/tmp
» no proporciona suficiente espacio, puede
especificar el directorio de almacenamiento temporal por medio de la
variable $TMPDIR
para obtener el comportamiento adecuado
de las aplicaciones.
Las particiones creadas mediante el Gertor de Volumenes Lógicos (Logical Volume Manager, LVM) (funcionalidad de Linux) en el momento de la instalación, pueden ser redimensionadas de forma sencilla mediante la concatenación o la extensión de estas sobre varios dispositivos de almacenamiento sin necesitar otras reconfiguraciones del sistema.
Si tiene una partición vacia (p. ej. «/dev/sdx
»), puede
darle formato con mkfs.ext4
(1) y
montarlo
(8) en un directorio donde necesite más
espacio. (Necesitará copiar el contenido de los datos originales.)
$ sudo mv work-dir old-dir $ sudo mkfs.ext4 /dev/sdx $ sudo mount -t ext4 /dev/sdx work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
![]() |
Sugerencia |
---|---|
También puede montar un archivo de imagen de disco vacio (consulte Sección 9.7.5, “Haciendo un archivo de imagen de disco vacio”) como un dispositivo «loop« (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”). La utilización de disco real crece con el almacenamiento de datos. |
Si tiene un directorio vacio (p. ej. «/path/to/emp-dir
»)
en otra partición con espacio utilizable, puede montar(8)lo con la opción
«--bind
» a un directorio (p. ej.,
«work-dir
») donde necesite más espacio.
$ sudo mount --bind /path/to/emp-dir work-dir
If you have usable space in another partition (e.g.,
"/path/to/empty
" and "/path/to/work
"),
you can create a directory in it and stack that on to an old directory
(e.g., "/path/to/old
") where you need space using the
OverlayFS for Linux kernel 3.18 or newer
(Debian Stretch 9.0 or newer).
$ sudo mount -t overlay overlay \ -olowerdir=/path/to/old-dir,upperdir=/path/to/empty,workdir=/path/to/work
Aquí, «/ruta/al/directorio_vacio
» y
«/ruta/al/directorio_de_trabajo
» deben ser una partición
con permisos de lectura y escritura para escribir en
«/ruta/al/directorio_antiguo
».
![]() |
Atención |
---|---|
This is a deprecated method. Some software may not function well with "symlink to a directory". Instead, use the "mounting" approaches described in the above. |
Si tiene un directorio vacio (p. ej., «/path/to/emp-dir
»)
en otra partición con espacio utilzable, puede crear un enlace simbólico a
el directorio con ln
(8).
$ sudo mv work-dir old-dir $ sudo mkdir -p /path/to/emp-dir $ sudo ln -sf /path/to/emp-dir work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
![]() |
Aviso |
---|---|
No utilice «enlaces simbólicos a directorios« que son gestionados por el
sistema como « |
Aquí hablaremos de la manipulación de imágenes de disco.
El archivo de imagen de disco «disk.img
», de un
dispositivo desmontado, p. ej. el segundo disco SCSI o serial ATA
«/dev/sdb
», puede hacerse utilizando
cp
(1) o dd
(1) como se muestra.
# cp /dev/sdb disk.img # dd if=/dev/sdb of=disk.img
La imagen de disco de un PC tradicional Registro de Arranque Maestro(MBR)
(consulte Sección 9.6.2, “Configuración del particionado de disco”) el cual está en
el primer sector del disco primario IDE puede hacerse mediante
dd
(1) lo siguiente.
# dd if=/dev/hda of=mbr.img bs=512 count=1 # dd if=/dev/hda of=mbr-nopart.img bs=446 count=1 # dd if=/dev/hda of=mbr-part.img skip=446 bs=1 count=66
«mbr.img
»: MBR con la tabla de particiones
«mbr-nopart.img
»: MBR sin la tabla de particiones
«mbr-part.img
»: Unicamente la tabla de particiones MBR
Si su disco de arranque es SCSI o serial ATA, cambie
«/dev/hda
» por «/dev/sda
».
Si ha hecho una imagen del disco de la partición del disco original, cambie
«/dev/hda
» por «/dev/hda1
» etc.
El archivo de la imagen del disco «disk.img
» puede ser
escrito como un dispositivo sin montar, p. ej., el dispositivo SCSI
secundario «/dev/sdb
» con el tamaño adecuado como se
muestra.
# dd if=disk.img of=/dev/sdb
De forma parecida, el archivo de la imagen de la partición del disco,
«partition.img
» puede ser escrito a una partición
desmontada, p. ej., la primera partición del segundo dispositivo SCSI
«/dev/sdb1
» con el tamaño correcto, como se muestra.
# dd if=partition.img of=/dev/sdb1
La imagen del disco «partition.img
» que contiene la
imagen de una única partición puede ser montada y desmontada utilizandolo
como dispositivo «loop« como se muestra.
# losetup -v -f partition.img Loop device is /dev/loop0 # mkdir -p /mnt/loop0 # mount -t auto /dev/loop0 /mnt/loop0 ...hack...hack...hack # umount /dev/loop0 # losetup -d /dev/loop0
Este se puede simplificar como se muestra.
# mkdir -p /mnt/loop0 # mount -t auto -o loop partition.img /mnt/loop0 ...hack...hack...hack # umount partition.img
Cada partición de una imagen de disco «disk.img
» que
contiene varias particiones pueden ser montadas utilizando los dispositivos «loop«. Ya que el dispositivo
«loop« no gestiona particiones por omisión, necesitamos iniciarlo como se
muestra.
# modinfo -p loop # verify kernel capability max_part:Maximum number of partitions per loop device max_loop:Maximum number of loop devices # losetup -a # verify nothing using the loop device # rmmod loop # modprobe loop max_part=16
Ahora, el dispositivo «loop« puede gestionar hasta 16 particiones.
# losetup -v -f disk.img Loop device is /dev/loop0 # fdisk -l /dev/loop0 Disk /dev/loop0: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x452b6464 Device Boot Start End Blocks Id System /dev/loop0p1 1 600 4819468+ 83 Linux /dev/loop0p2 601 652 417690 83 Linux # mkdir -p /mnt/loop0p1 # mount -t ext4 /dev/loop0p1 /mnt/loop0p1 # mkdir -p /mnt/loop0p2 # mount -t ext4 /dev/loop0p2 /mnt/loop0p2 ...hack...hack...hack # umount /dev/loop0p1 # umount /dev/loop0p2 # losetup -d /dev/loop0
De forma, los mismos efectos pueden conseguirse utilizando el mapeo de dispositivos de los dispositivos
creados por kpartx
(8) del paquete
kpartx
como se muestra.
# kpartx -a -v disk.img ... # mkdir -p /mnt/loop0p2 # mount -t ext4 /dev/mapper/loop0p2 /mnt/loop0p2 ... ...hack...hack...hack # umount /dev/mapper/loop0p2 ... # kpartx -d /mnt/loop0
![]() |
Nota |
---|---|
Puede montar una única partición como imagen del disco con dispositivos «loop« utilizando el desplazamiento para evitar el MBR etc., también. Pero es más propenso a errores. |
Un archivo de imagen de disco, «disk.img
» puede ser
limpiado de archivos borrados en una imagen dispersa limpia
«new.img
» como se muestra.
# mkdir old; mkdir new # mount -t auto -o loop disk.img old # dd bs=1 count=0 if=/dev/zero of=new.img seek=5G # mount -t auto -o loop new.img new # cd old # cp -a --sparse=always ./ ../new/ # cd .. # umount new.img # umount disk.img
Si «disk.img
» es ext2, ext3 or ext4, también puede
utilizar zerofree
(8) del paquete
zerofree
como se muestra.
# losetup -f -v disk.img Loop device is /dev/loop3 # zerofree /dev/loop3 # cp --sparse=always disk.img new.img
La imagen de disco vacio «disk.img
» el cual puede crecer
hasta 5GiB, pude hacerse mediante dd
(1) como se muestra.
$ dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G
Instead of using dd
(1), specialized
fallocate
(8) may be used here.
Puede crear un sistema de archivos ext4 en la imagen de disco
«disk.img
» utilizando el dispositivo «loop« como se muestra.
# losetup -f -v disk.img Loop device is /dev/loop1 # mkfs.ext4 /dev/loop1 ...hack...hack...hack # losetup -d /dev/loop1 $ du --apparent-size -h disk.img 5.0G disk.img $ du -h disk.img 83M disk.img
Para «disk.img
», su tamaño de archivo es 5.0 GiB y su
utilización real de disco es de sólo 83MiB. Esta discrepancia es posible ya
que ext4 se puede representar mediante un archivo disperso.
![]() |
Sugerencia |
---|---|
La utilización real de discos que utiliza un archivo disperso crece con los datos que son escritos en el. |
Utilizando la misma operación en dispositivos creados por el dispositivo «loop« o el dispositivo mapeador de dispositivos como Sección 9.7.3, “Montaje del archivo de la imagen del disco”, puede particionar esta imagen de
disco «disk.img
» utilizando parted
(8)
o fdisk
(8) y puede crear el archivo de sistemas en el
utilizando mkfs.ext4
(8), mkswap
(8),
etc.
El archivo de imagen ISO9660,
«cd.iso
», utilizando como origen el árbol de directorios
de «directorio_origen
» se puede hacer utilizando
genisoimage
(1) aportado por cdrkit como se muestra.
# genisoimage -r -J -T -V volume_id -o cd.iso source_directory
De igual manera, el archivo imagen ISO9660 arrancable,
«cdboot.iso
», se puede realizar desde el
instalador debian
como el árbol de directorios del
«directorio_origen
» como se muestra.
# genisoimage -r -o cdboot.iso -V volume_id \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table source_directory
Aquí el cargador de arranque Isolinux (consulte Sección 3.1.2, “Fase 2: el cargador de arranque”) se utiliza para el arranque.
Puede calcular el valor md5sum y hace la imagen ISO9660 directamente desde el dispositivo CD-ROM como se muestra.
$ isoinfo -d -i /dev/cdrom CD-ROM is in ISO 9660 format ... Logical block size is: 2048 Volume size is: 23150592 ... # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror | md5sum # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror > cd.iso
![]() |
Aviso |
---|---|
Debe evitar cuidadosamente el sistema de archivos ISO9660 debido al problema de lectura adelantada de Linux para obtener el resultado correcto. |
![]() |
Sugerencia |
---|---|
DVD es unicamente un CD de mayor tamaño que utiliza
|
Puede encontrar un dispositivo utilizable como se muestra.
# wodim --devices
Entonces se inserta el CD-R vacio en el dispositivo CD,y el archivo de
imagen ISO9660 , «cd.iso
» se escribe en el dispositivo,
p. ej. «/dev/hda
», utilizando wodim
(1)
como se muestra.
# wodim -v -eject dev=/dev/hda cd.iso
Si se utiliza un CR-RW enlugar de un CD-R, hago lo siguiente en su lugar.
# wodim -v -eject blank=fast dev=/dev/hda cd.iso
![]() |
Sugerencia |
---|---|
Si su sistema de escritorio monta automaticamente los CD, desmontelo con
« |
Si «cd.iso
» contiene una imagen ISO9660, entonces lo
siguiente sirve para montarlo de forma manual en
«/cdrom
».
# mount -t iso9660 -o ro,loop cd.iso /cdrom
![]() |
Sugerencia |
---|---|
Los sistemas de escritorio modernos pueden montar los medios extraibles como un CD con formato ISO9660 de forma automática (consulte Sección 10.1.7, “Dispositivos de almacenamiento extraibles”). |
Aquí discutiremos la manipulación directa de datos binarios en medios de almacenamiento.
El método más básico de visualización de datos binarios es la orden
«od -t x1
».
Tabla 9.21. Relación de paquetes para la visualización y edición de datos binarios
paquete | popularidad | tamaño | descripción |
---|---|---|---|
coreutils
|
V:908, I:999 | 18062 | paquete básico que tiene od (1) para volcar archivos (HEX,
ASCII, OCTAL, …) |
bsdmainutils
|
V:19, I:500 | 27 | paquete de utilidades que tiene hd (1) para volcar
archivos (HEX, ASCII, OCTAL, …) |
hexedit
|
V:1, I:10 | 73 | visor y editor binario (HEX, ASCII) |
bless
|
V:0, I:3 | 924 | editor hexadecimal con funcionalidad completa (GNOME) |
okteta
|
V:1, I:12 | 1580 | editor hexadecimal con funcionalidad completa (KDE4) |
ncurses-hexedit
|
V:0, I:1 | 132 | visor y editor binario (HEX, ASCII, EBCDIC) |
beav
|
V:0, I:0 | 137 | visor y editor binario (HEX, ASCII, EBCDIC, OCTAL, …) |
![]() |
Sugerencia |
---|---|
HEX es un acrónimo del formato hexadecimal con radix 16. OCTAL se utiliza para formato octal con radix 8. ASCII se utiliza para Codificación Americana Estándar para el Intercambio de Información (American Standard Code for Information Interchange), a saber, codificación del inglés normal. EBCDIC es para Extended Binary Coded Decimal Interchange Code utilizado en sistemas operativos de IBM mainframe. |
Existen herramientas para leer y escribir archivos sin montar el disco.
Los sistemas de software RAID del núcleo Linux aportan redundancia en el nivel del sistema de archivos de datos del núcleo con la finalidad de alcanzar alta fiabilidad en el almacenamiento.
Existen herramientas para añadir datos redundados a archivos al nivel de aplicación de programas para conseguir también alta fiabilidad en el almacenamiento.
Tabla 9.23. Relación de herramientas para añadir redundancia de datos a los archivos
paquete | popularidad | tamaño | descripción |
---|---|---|---|
par2
|
V:8, I:67 | 268 | Paridad del conjunto de volúmenes de archivo, para comprobar y reparar archivos |
dvdisaster
|
V:0, I:1 | 1742 | Protección contra pérdida/rotura/vejez de medios CD/DVD |
dvbackup
|
V:0, I:0 | 413 | herramienta de copia de seguridad para MiniDV (aportada por
rsbep (1)) |
Existen herramientas para la recuperación de archivos y análisis forense.
Tabla 9.24. Relación de paquetes para la recuperación de archivos y análisis forense
paquete | popularidad | tamaño | descripción |
---|---|---|---|
testdisk
|
V:2, I:32 | 1413 | utilidades para el escaneado de particiones y recuperaciones de disco |
magicrescue
|
V:0, I:2 | 255 | utilidades para la recuperación de archivos y búsqueda de bytes mágicos |
scalpel
|
V:0, I:3 | 88 | Divisor de archivos ligero y alto rendimiento |
myrescue
|
V:0, I:3 | 83 | recuperación de datos de discos duros dañados |
extundelete
|
V:0, I:9 | 147 | utilidad para recuperar archivos borrados en sistemas de archivos ext3/4 |
ext4magic
|
V:0, I:4 | 233 | utilidad para recuperar archivos borrados en sistemas de archivos ext3/4 |
ext3grep
|
V:0, I:2 | 293 | herramienta de ayuda a la recuperación de archivos borrados en sistemas de archivos ext3 |
scrounge-ntfs
|
V:0, I:2 | 50 | programa de recuperación de datos en sistemas de archivos NTFS |
gzrt
|
V:0, I:0 | 33 | conjunto de herramientas de recuperación gzip |
sleuthkit
|
V:2, I:25 | 1607 | herramientas de análisis forense (Sleuthkit) |
autopsy
|
V:0, I:1 | 1027 | interfaz gráfico para SleuthKit |
foremost
|
V:0, I:5 | 102 | aplicación forense para la recuperación de datos |
guymager
|
V:0, I:1 | 1021 | herramienta para el análisis forense de imágenes basado en Qt |
dcfldd
|
V:0, I:4 | 113 | versión mejorada de dd para análisis forense y seguridad |
![]() |
Sugerencia |
---|---|
Puede recuperar archivos borrados en sistemas de archivos ext2 utilizando la
|
Cuando los datos son demasiado grandes para guardalos en un único archivo, puede obtener una copia de seguridad de su contenido dividiendolo en, p. ej. trozos de 2000MiB y juntarlos más tarde para obtener el archivo original.
$ split -b 2000m large_file $ cat x* >large_file
![]() |
Atención |
---|---|
Por favor, aseguresé que no tiene ningún archivo que comienza por
« |
Para limpiar el contenido de los archivos como los archivos de registro, no
utilice rm
(1) para borrarlo y crear uno nuevo vacio, ya
que puede intentar ser accedido entre ambas operaciones. La forma segura de
limpiar el contenido de un archivo es la que se muestra.
$ :>file_to_be_cleared
Las órdenes siguientes crean archivos «vacíos».
$ dd if=/dev/zero of=5kb.file bs=1k count=5 $ dd if=/dev/urandom of=7mb.file bs=1M count=7 $ touch zero.file $ : > alwayszero.file
Encontrará lo siguiente tras ejecutar lo anterior.
«5kb.file
» que contiene 5KB de ceros.
«7mb.file
» que contiene 7MB de datos aleatorios.
«zero.file
» puede tener 0 bytes. Si existiera con
anterioridad, su mtime
es actualizado y su contenido y su
longitud permanecen sin cambios.
«alwayszero.file
» es siempre un archivo de 0 bytes. Si
existía con anterioridad, su mtime
es actualizado y su
contenido borrado.
Existen diferentes modos de borrar completamente la información de un disco
duro como dispositivo, p. ej. una memoria USB ubicada en
«/dev/sda
».
![]() |
Atención |
---|---|
Antes de ejecutar las órdenes que le vamos a mostrar, compruebe la ubicación
de su memoria USB por medio de |
Borre todo el contenido del disco poiendo a 0 toda la información como se muestra.
# dd if=/dev/zero of=/dev/sda
Borrelo todo escribiendo datos aleatorios como sigue.
# dd if=/dev/urandom of=/dev/sda
Borrelo todo sobreescribiendolo con datos aleatorios de forma eficiente como se muestra.
# shred -v -n 1 /dev/sda
You may alternatively use badblocks
(8) with -t
random
option.
Ya que dd
(1) esta disponible en el intérprete de órdenes
de muchos CDs de Linux arrancables como el CD instalador de Debian, puede
borrar el sistema instalado completamente ejecutando una de las órdenes
anteriores desde dicho medio sobre el disco duro del sistema,
p. ej.«/dev/hda
», «/dev/sda
», etc.
Las áreas en deshuso del disco duro (o de la memoria USB),
p. ej. «/dev/sdb1
» todavái pueden contener datos borrados
ya que solo han sido desligados del sistema de archivos. Estos pueden ser
limpiados sobreescribiendolos.
# mount -t auto /dev/sdb1 /mnt/foo # cd /mnt/foo # dd if=/dev/zero of=junk dd: writing to `junk': No space left on device ... # sync # umount /dev/sdb1
![]() |
Aviso |
---|---|
Esto es generalmente suficiente para las memorias USB. Pero no es perfecto. La mayor parte de los nombres de archivo borrados y sus atributos pueden estar ocultos y permanecer en el sistema de archivos. |
Incluso en el caso de que accidentalmente haya borrado un archivo, mientras que ese archivo sea utilizado por alguna aplicación (en modo lectura o escritura), es posible recuperar dicho archivo.
Por ejemplo, intente lo siguiente
$ echo foo > bar $ less bar $ ps aux | grep ' less[ ]' bozo 4775 0.0 0.0 92200 884 pts/8 S+ 00:18 0:00 less bar $ rm bar $ ls -l /proc/4775/fd | grep bar lr-x------ 1 bozo bozo 64 2008-05-09 00:19 4 -> /home/bozo/bar (deleted) $ cat /proc/4775/fd/4 >bar $ ls -l -rw-r--r-- 1 bozo bozo 4 2008-05-09 00:25 bar $ cat bar foo
Ejecute en otro terminal (cuando tenga el paquete lsof
instalado) como se muestra.
$ ls -li bar 2228329 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:02 bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar $ rm bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar (deleted) $ cat /proc/4775/fd/4 >bar $ ls -li bar 2228302 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:05 bar $ cat bar foo
Los archivos con enlaces duros pueden identificarse mediante «ls
-li
».
$ ls -li total 0 2738405 -rw-r--r-- 1 root root 0 2008-09-15 20:21 bar 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 baz 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 foo
Tanto «baz
» y «foo
» tiene una cuenta
de «2« (>1) de forma que tiene enlaces duros. Sus números de inodos son comunes «2738404«. Esto significa que son
el mismo archivo mediante un archivo duro. Si no quiere encontrar todos los
enlaces duros mediante la suerte, puede buscarlos mediante el inodo, p. ej. «2738404« como se muestra.
# find /path/to/mount/point -xdev -inum 2738404
Con acceso físico a su PC, cualquiera puede acceder como superusuario y acceder a todos los archivos en él (consulte Sección 4.6.4, “Asegurando la contraseña de root”). Esto significa que el sistema de acceso por contraseña puede no securizar sus datos delicados y privados contra posibles ladrones de su PC. Para hacerlo debe desplegar alguna tecnología de cifrado de información. Aunque GNU privacy guard (consulte Sección 10.3, “Infraestructura de seguridad de la información”) puede cifrar archivos , necesita de los esfuerzos del usuario.
Dm-crypt facilitates automatic data encryption via native Linux kernel modules with minimal user efforts using device-mapper.
Tabla 9.25. Relación de utilidades para el cifrado de información
paquete | popularidad | tamaño | descripción |
---|---|---|---|
cryptsetup
|
V:30, I:77 | 406 | utilidades para cifrar dispositivos de bloque (dm-crypt / LUKS) |
cryptmount
|
V:3, I:4 | 231 | utilidades para cifrar dispositivos de bloque (dm-crypt / LUKS) centrado en el montaje/desmontaje por usuarios normales |
fscrypt
|
V:0, I:1 | 4447 | utilities for Linux filesystem encryption (fscrypt) |
libpam-fscrypt
|
V:0, I:0 | 3981 | PAM module for Linux filesystem encryption (fscrypt) |
![]() |
Atención |
---|---|
Data encryption costs CPU time etc. Encrypted data becomes inaccessible if its password is lost. Please weigh its benefits and costs. |
![]() |
Nota |
---|---|
El sistema Debian entero puede instalarse en el disco cifrado por el instalador debian (lenny o más nuevo) utilizando dm-crypt/LUKS y initramfs. |
![]() |
Sugerencia |
---|---|
Consulte Sección 10.3, “Infraestructura de seguridad de la información” para la utilización del cifrado del espacio de usuario: GNU Privacy Guard. |
Puede cifrar el contenido de los dispositivos masivos extraibles,
p. ej. memoria USB en «/dev/sdx
», utilizando dm-crypt/LUKS.
Simplemente formateelo como se muestra.
# fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup open /dev/sdx1 secret ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2021-10-04 18:44 control lrwxrwxrwx 1 root root 7 2021-10-04 23:55 secret -> ../dm-0 # mkfs.vfat /dev/mapper/secret ... # cryptsetup close secret
Then, it can be mounted just like normal one on to
"/media/username/disk_label
", except
for asking password (see Sección 10.1.7, “Dispositivos de almacenamiento extraibles”) under
modern desktop environment using the udisks2
package.
The difference is that every data written to it is encrypted. The password
entry may be automated using keyring (see Sección 10.3.6, “Password keyring”).
You may alternatively format media in different filesystem, e.g., ext4 with
"mkfs.ext4 /dev/mapper/sdx1
". If btrfs is used instead,
the udisks2-btrfs
package needs to be installed. For
these filesystems, the file ownership and permissions may need to be
configured.
For example, an encrypted disk partition created with dm-crypt/LUKS on
"/dev/sdc5
" by Debian Installer can be mounted onto
"/mnt
" as follows:
$ sudo cryptsetup open /dev/sdc5 ninja --type luks Enter passphrase for /dev/sdc5: **** $ sudo lvm lvm> lvscan inactive '/dev/ninja-vg/root' [13.52 GiB] inherit inactive '/dev/ninja-vg/swap_1' [640.00 MiB] inherit ACTIVE '/dev/goofy/root' [180.00 GiB] inherit ACTIVE '/dev/goofy/swap' [9.70 GiB] inherit lvm> lvchange -a y /dev/ninja-vg/root lvm> exit Exiting. $ sudo mount /dev/ninja-vg/root /mnt
Debian distribuye el núcleo de Linux modularizado en paquetes para soportar las arquitecturas.
If you are reading this documentation, you probably don't need to compile Linux kernel by yourself.
Muchas funcionalidades de Linux son configurables por medio de parámetros del núcleo como se muestra.
Los parámetros del núcleo son inicializados por el cargador de arranque (consulte Sección 3.1.2, “Fase 2: el cargador de arranque”)
Los parámetros del núcleo cambian mediante sysctl
(8) en
tiempo de ejecución por aquellos accesibles por medio de sysfs (consulte
Sección 1.2.12, “procfs y sysfs”)
Los parámetros de modprobe
(8) se asignan como parámetros
del módulo cuando se activa el módulo (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”)
See "The Linux kernel user’s and administrator’s guide » The kernel’s command-line parameters" for the detail.
La mayor parte de los programas normales
no necesitan las cabeceras del núcleo y de hecho puede producir errores si
se utiliza directamente para compilar. Estos deben ser compilados con las
cabeceras en «/usr/include/linux
» y
«/usr/include/asm
» que están en el paquete
libc6-dev
(creado por el paquete fuente
glibc
) en el sistema Debian.
![]() |
Nota |
---|---|
For compiling some kernel-specific programs such as the kernel modules from
the external source and the automounter daemon ( |
Debian tiene su propio método para compilar el núcleo y los módulos asociados.
Tabla 9.26. Relación de los paquetes fundamentales para la recompilación del núcleo en los sistemas Debian
paquete | popularidad | tamaño | descripción |
---|---|---|---|
build-essential
|
I:485 | 20 | paquetes fundamentales para la construcción de paquetes Debian:
make , gcc , … |
bzip2
|
V:161, I:970 | 121 | utilidades de compresión y decompresión de archivos bz2 |
libncurses5-dev
|
I:93 | 6 | bibliotecas de desaroollo y documentación de ncurses |
git
|
V:305, I:517 | 44453 | git: sistema de control de versiones distribuido utilizado por el núcleo de Linux |
fakeroot
|
V:30, I:497 | 208 | aporta el entorno fakeroot para la construcción de paquetes sin ser «root« |
initramfs-tools
|
V:386, I:990 | 113 | herramienta para contruir initramfs (propio de Debian) |
dkms
|
V:67, I:181 | 183 | soporte del núcleo para módulos dinámico (DKMS, dynamic kernel module support) (genérico) |
module-assistant
|
V:1, I:25 | 406 | helper tool to make module package (Debian specific) |
devscripts
|
V:7, I:46 | 2777 | archivos de órdenes para el mantenimiento de Paquetes Debian (específico de Debian) |
Si utiliza initrd
in Sección 3.1.2, “Fase 2: el cargador de arranque”, asegurese de leer la documentación
asociada en initramfs-tools
(8),
update-initramfs
(8), mkinitramfs
(8) y
initramfs.conf
(5).
![]() |
Aviso |
---|---|
No cree enlaces simbólicos en el árbol de directorios del código fuente
(p. ej. « |
![]() |
Nota |
---|---|
Cuando compile el núcleo de Linux en el sistema Debian
El soporte del núcelo a módulos dinámicos (dynamic kernel module support, DKMS) es un marco nuevo de distribución independiente diseñado para permitir la actualización de módulos sueltos sin cambiar el núcleo completo. Esto es utilizado para mantener módulos externos. Esto también facilita la reconstrucción de módulos cuando actualice su núcleo. |
Para la construcción de paquetes binarios personalizados del núcleo desde el
código fuente del núcleo, podría utilizar el objetivo
«deb-pkg
» que se proporciona para ello.
$ sudo apt-get build-dep linux $ cd /usr/src $ wget http://www.kernel.org/pub/linux/kernel/v3.11/linux-version.tar.bz2 $ tar -xjvf linux-version.tar.bz2 $ cd linux-version $ cp /boot/config-version .config $ make menuconfig ... $ make deb-pkg
![]() |
Sugerencia |
---|---|
El paquete linux-source-version package contiene el
código fuente del núcleo de Linux con los parches de Debian como
« |
Para la contrucción de paquetes binarios concretos desde el paquete de
código fuente del núcleo de Debian, puede utilizar los objetivos
«binary-arch_architecture_featureset_flavour
»
en «debian/rules.gen
».
$ sudo apt-get build-dep linux $ apt-get source linux $ cd linux-3.* $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
Compruebe la información adicional:
Debian Wiki: KernelFAQ
Debian Wiki: DebianKernel
Debian Linux Kernel Handbook: https://kernel-handbook.debian.net
The hardware driver is the code running on the main CPUs of the target
system. Most hardware drivers are available as free software now and are
included in the normal Debian kernel packages in the main
area.
The firmware is the code or data loaded on the device attach to the target system (e.g., CPU microcode, rendering code running on GPU, or FPGA / CPLD data, …). Some firmware packages are available as free software but many firmware packages are not available as free software since they contain sourceless binary data. Installing these firmware data is essential for the device to function as expected.
The firmware data packages containing data loaded to the volatile memory on the target device.
firmware-linux-free (main
)
firmware-linux-nonfree (non-free-firmware
)
firmware-linux-* (non-free-firmware
)
*-firmware (non-free-firmware
)
intel-microcode (non-free-firmware
)
amd64-microcode (non-free-firmware
)
The firmware update program packages which update data on the non-volatile memory on the target device.
fwupd (main
): Firmware
update daemon which downloads firmware data from Linux Vendor Firmware Service.
gnome-firmware (main
): GTK front end for fwupd
plasma-discover-backend-fwupd (main
): Qt front end for
fwupd
Please note that access to non-free-firmware
packages are
provided by the official installation media to offer functional installation
experience to the user since Debian 12 Bookworm. The
non-free-firmware
area is described in Sección 2.1.4, “Fundamentos del archivo de Debian”.
Please also note that the firmware data downloaded by fwupd from Linux Vendor Firmware Service and
loaded to the running Linux kernel may be non-free
.
La utilización de sistemas virtualizados nos permite la ejecución de varias instancias del sistema a la vez sobre un único hardware.
![]() |
Sugerencia |
---|---|
There are several virtualization and emulation tool platforms.
Complete hardware emulation packages such as ones installed by the games-emulator metapackage
Mostly CPU level emulation with some I/O device emulations such as QEMU
Mostly CPU level virtualization with some I/O device emulations such as Kernel-based Virtual Machine (KVM)
OS level container virtualization with the kernel level support such as LXC (Linux Containers), Docker, ...
OS level filesystem access virtualization with the system library call override on the file path such as chroot
OS level filesystem access virtualization with the system library call override on the file ownership such as fakeroot
OS API emulation such as Wine
Interpreter level virtualization with its executable selection and run-time library overrides such as virtualenv and venv for Python
The container virtualization uses Sección 4.7.4, “Características de seguridad de Linux” and it is the backend technology of Sección 7.6, “Sandbox”.
Here are some packages to help you to setup the virtualized system.
Tabla 9.27. Relación de herramientas de virtualización
paquete | popularidad | tamaño | descripción |
---|---|---|---|
schroot
|
V:6, I:8 | 2508 | herramientas especializadas para la ejecución de paquetes binarios en «chroot« |
sbuild
|
V:1, I:4 | 242 | herramientas para la construcción de paquetes binarios desde el código fuente de Debian |
debootstrap
|
V:5, I:59 | 279 | sistema de arranque como sistema Debian mínimo (escrito en sh) |
cdebootstrap
|
V:0, I:2 | 111 | sistema de arranque de un sistema Debian (escrito en C) |
virt-manager
|
V:11, I:42 | 2296 | Gestor de Máquinas Virtuales: aplicación de escritorio para la gestión de máquinas virtuales |
libvirt-clients
|
V:43, I:62 | 1311 | programas para la biblioteca libvirt |
games-emulator
|
I:0 | 26 | games-emulator: Debian's emulators for games |
bochs
|
V:0, I:1 | 6956 | Bochs: emulador de PC IA-32 PC |
qemu
|
I:25 | 97 | QEMU: emulador rápido de un procesador genérico |
qemu-system
|
I:21 | 59 | QEMU: binarios para la emulación de un sistema completo |
qemu-user
|
V:1, I:8 | 100502 | QEMU: binarios para la emulación en modo usuario |
qemu-utils
|
V:12, I:107 | 6875 | QEMU: utilidades |
qemu-kvm
|
V:2, I:19 | 107 | KVM: virtualización completa de harsware x86 con la virtualización asistida por hardware |
virtualbox
|
V:9, I:11 | 126370 | VirtualBox: solución de virtualización x86 en i386 y amd64 |
xen-tools
|
V:0, I:3 | 727 | herramientas para la gestión de debian del servidor virtual XEN |
wine
|
V:13, I:64 | 134 | Wine: Implementación de la API Windows (suite estándar) |
dosbox
|
V:2, I:16 | 2671 | DOSBox: emulador x86 con gráficos Tandy/Herc/CGA/EGA/VGA/SVGA , sonido y DOS |
lxc
|
V:9, I:13 | 25643 | Contenedores Linux herramientas del espacio de usuario |
python3-venv
|
I:60 | 6 | venv for creating virtual python environments (system library) |
python3-virtualenv
|
V:9, I:53 | 406 | virtualenv for creating isolated virtual python environments |
pipx
|
V:0, I:1 | 887 | pipx for installing python applications in isolated environments |
Consulte el artículo de Wikipedia Comparison of platform virtual machines para obtener detalles de la comparación entre diferentes plataformas y soluciones de virtualización.
![]() |
Nota |
---|---|
El núcleo de Debian por defecto soporta KVM desde
|
El flujo de trabajo de la virtualización conlleva varios pasos.
Crear un sistema de archivos vacio (un árbol de directorios o una imágen de disco).
El árbol de directorios puede ser creado mediante «mkdir -p
/ruta/al/entorno//chroot
».
El archivo de la imagen de disco en crudo puede ser creado con
dd
(1) (consulteSección 9.7.1, “Creando un archivo de imagen de disco” y Sección 9.7.5, “Haciendo un archivo de imagen de disco vacio”).
qemu-img
(1) puede ser utilizado para crear y convertir
archivos de imagen de disco utilizados por QEMU.
Los formatos de archivo crudos y VMDK se pueden utilizar como formato común entre diferentes herramientas de virtualización.
Monte la imágen de disco con mount
(8) en el sistema de
archivos (opcional).
Para el archivo de imágen de disco crudo, montelo como un dispositivo «loop« o mapeo de dispositivo (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”).
Para el soporte de imágenes de disco por QEMU, montelos como dispositivo de bloque de red (consulte Sección 9.11.3, “Montando el archivo de imagen de disco virtual”).
Llene el sistema de archivos objetivo con la información del sistema.
La utilización de programas como debootstrap
y
cdebootstrap
ayudan en este proceso (consulte Sección 9.11.4, “Sistemas chroot”).
Utilización de instaladores de los sistemas operativos en la emulación del sistema completo.
Ejecute un programa en un entorno virtualizado.
chroot ofrece un entorno de virtualización básico para compilar programas , ejecutar aplicaciones de consola y ejecutar demonios en él.
QEMU ofrece emulación de CPU independiente de la plataforma.
QEMU con KVM ofrece un sistema de emulación completo por medio de la virtualización asistida por hardware.
VirtualBox ofrece un sistema completo de emulación en i386 y amd64 con o sin la virtualización asistida por hardware.
Para un archivo de imágen de disco crudo, consulte Sección 9.7, “La imagen de disco”.
Para otros archivos de imágenes de disco virtuales, puede utilizar
qemu-nbd
(8) para exportarlos utilizando el protocolo de
dispositivos de bloque de red y
montarlos utilizando el módulo del núcleo nbd
.
qemu-nbd
(8) soporta los formatos de disco soportados por
QEMU: QEMU que
soporta los siguientes formato de disco: crudo, qcow2, qcow, vmdk,
vdi, bochs, cow
(copia al escribir en modo usuario de Linux), parallels, dmg, cloop, vpc, vvfat (virtual
VFAT) y «host_device«.
Los dispositivos de bloque de red
pueden soportar particiones de la misma manera que los dispositivos «loop« (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”). Puede montar la primera
partición de «disk.img
» como se muestra.
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
![]() |
Sugerencia |
---|---|
Puede exportar únicamente la primera partición de
« |
If you wish to try a new Debian environment from a terminal console, I
recommend you to use chroot. This enables you
to run console applications of Debian unstable
and
testing
without usual risks associated and without
rebooting. chroot
(8) is the most basic way.
![]() |
Atención |
---|---|
Examples below assumes both parent system and chroot system share the same
|
Although you can manually create a chroot
(8) environment
using debootstrap
(1). But this requires non-trivial
efforts.
The sbuild package to build Debian packages
from source uses the chroot environment managed by the schroot package. It comes with helper script
sbuild-createchroot
(1). Let's learn how it works by
running it as follows.
$ sudo mkdir -p /srv/chroot $ sudo sbuild-createchroot -v --include=eatmydata,ccache unstable /srv/chroot/unstable-amd64-sbuild http://deb.debian.org/debian ...
You see how debootstrap
(8) populates system data for
unstable
environment under
"/srv/chroot/unstable-amd64-sbuild
" for a minimal build
system.
You can login to this environment using schroot
(1).
$ sudo schroot -v -c chroot:unstable-amd64-sbuild
You see how a system shell running under unstable
environment is created.
![]() |
Nota |
---|---|
The " |
![]() |
Nota |
---|---|
Some programs under chroot may require access to more files from the parent
system to function than |
![]() |
Sugerencia |
---|---|
The |
If you wish to try a new GUI Desktop environment of any OS, I recommend you
to use QEMU or KVM on
a Debian stable
system to run multiple desktop systems
safely using virtualization. These
enable you to run any desktop applications including ones of Debian
unstable
and testing
without usual
risks associated with them and without rebooting.
Since pure QEMU is very slow, it is recommended to accelerate it with KVM when the host system supports it.
Virtual Machine Manager also
known as virt-manager
is a convenient GUI tool for
managing KVM virtual machines via libvirt.
La imágen de disco virtual «virtdisk.qcow2
» que contiene
una imágen del sistema Debian para QEMU se
puede crear utilizando el instalador
debian: en pequeños CDs como se muestra.
$ wget http://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503-amd64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 256 ...
![]() |
Sugerencia |
---|---|
Ejecutar otra distribución GNU/Linux como Ubuntu y Fedora de forma virtualizada es un gran manera de aprender formas de configuración. También se pueden ejecutar correctamente SS.OO. propietarios virtualializado sobre GNU/Linux. |
See more tips at Debian wiki: SystemVirtualization.
[2] Ejemplos de personalización más elaborados: "Vim Galore", "sensible.vim", "#vim Recommendations" ...
[3] vim-pathogen fue popular.