Cosas sueltas que creo que son interesantes que conozcas, aunque explicadas muy por encima.
Probablemente al instalar Linux alguien te recomendó crear una partición de swap. swap significa intercambio y es un espacio usado como memoria adicional pero que está en el disco duro; por lo tanto sólo te será de utilidad si crees que te faltará RAM para tu trabajo diario. Puedes no tener partición de swap, o crearla tan grande como quieras.
De todas formas, puedes crear y borrar swaps: en
/proc/swaps
verás una lista de las activas, y
con swapon
y swapoff
las puedes modificar
como quieras. Por cierto, prueba a hacer un cat
o un
strings
a alguna swap, verás cosas muy
interesantes (yo he llegado a ver mi contraseña de root :-)
). Recuerda que una diferencia entre swap y RAM es que la RAM se
vacía al apagar el ordenador, la swap no.
¿Cómo crear una swap? Muy fácil: crea un
archivo vacío con dd if=/dev/zero of=/usr/swap bs=1024
count=100M
(100 Mb en este caso), conviértelo en swap
con mkswap /usr/swap
y actívalo con
swapon /usr/swap
. Haz free
o cat
/proc/swaps
para comprobarlo. Recuerda modificar
/etc/fstab.conf
para que se monte al inicio la
próxima vez.
Por cierto, busca mejores discusiones sobre si usar swap o no.
En un 'terminal emulator' ya hay opciones para ello, pero en la consola real (Ctrl+Alt+F1, etc) puedes escribir en ruso o poner letras más pequeñas para que quepan el doble de líneas, sin necesidad del framebuffer.
Localiza el directorio de fuentes en tu ditribución (por
ejemplo, /usr/share/consolefonts
o
/usr/lib/kbd/consolefonts
) y haz un consolechars
-f nombre
Si haces cosas raras (ej. cat /dev/hda
) puede que
envies códigos de control a la consola, y eso puede hacer
que después del Ctrl+C los caracteres se vuelvan ilegibles.
Para volver a dejarlo bien ejecuta reset
Un FIFO (First In = First Out) es una lista de la que sólo se puede sacar el primer elemento metido (a diferencia de la pila, que es LIFO). Imagina a Mr. FIFO como una cinta transportadora en la que se van poniendo objetos en un cierto orden y en el otro extremo alguien los va cogiendo mientras llegan (primero el 1º, luego el 2º, etc.). Como ves, el FIFO sólo hace de intermediario.
Con Linux podemos crear fifos, y es muy sencillo: haz
mkfifo fi
y habrás creado uno (un ls
-l
lo muestra como tal). Ahora haz un cat fi
(se quedará parado) y en otra terminal un echo Hola
>fi
. Verás que el cat que estaba esperando datos
ya los ha recibido; el fifo ha hecho su trabajo.
Puedes hacer cosas muy raras con fifos: por ejemplo,
imagínate que dices a cdrecord
que te grabe la
ISO mififo
(se quedaría esperando a que le
entre contenido al fifo) y después haces un wget
servidorveloz.com/linux.iso -O mififo
(esto especifica el
fichero de destino). ¡Estarías grabando un CD al mismo
tiempo que lo descargas! Usa la imaginación para descubrir
otros utilidades...
Prueba un echo Hola | nano
(no explicaré el
|
aquí), verás que no puedes escribir
(lógico, porque la entrada la coge del echo
Hola
, no de STDIN). Ahora prueba un cat | nano
,
irá perfecto porque cat
coge la entrada y la
manda por la salida (pruébalo suelto, un cat
).
Pues, ¿por qué no pruebas a ponerlo todo como un
sólo comando? Haz (echo Hola; cat) | nano
PS: esto lo he visto en exploits que dan shell; si un echo
$shellcode | ./programa
crea una shell pero no te permite
escribir, usa este truco.
Empieza con el man vim
, luego
vimtutor
, y luego :help
dentro del
programa. Cuando te lo sepas todo empieza con el verdadero manual:
vim
y dentro :help user-manual
Igual que tienes varias consolas de texto a la vez
(Ctrl+Alt+F1
, Ctrl+Alt+F2
, ...),
también puedes tener varias de modo gráfico (en
Ctrl+Alt+F7
, Ctrl+Alt+F8
, ...).
Haciéndolo paso por paso, sería:
X :1 &
para abrir
un servidor gráfico en el display 1 (puede que el :0 lo
tengas ocupado con tu primera sesión gráfica). Lo que
se abre es el servidor X; ahora falta que los programas (clientes)
se conecten para mostrar gráficos.echo
$DISPLAY para verla
). Para cambiarla, pon export
DISPLAY=:1
si usas la shell bash
.xterm
&
. Se abrirá la ventana; o sea que los programas
ya pueden mostrar gráficos. Probablemente eches en falta un
gestor de ventanas, abrélo ahora como cualquier otro
programa.Primero haz pruebas con aa
(Ascii Art). Prueba
aafire
, asciiview
, y sobre todo, no te
dejes el bb
. La librería caca hace lo mismo pero
en color (cacafire
, cacaview
, ...).
Luego puedes usar el proyecto XGGI, que es una abstracción de las X que te permitirá ejecutarlas usando otra librería, como la aa o el framebuffer. Funciona muy bien (hasta el ratón). Hay alguna guía sobre lo de las X en modo texto.
Muchas veces me he visto enfrente de pantallas tan modernas que
no tienen las ruedas para cambiar el brillo y contraste (parece que
hay que acceder a unos menús internos por medio de varias
pulsaciones de unos botones en el orden correcto). En esos casos,
prefiero hacer que la imagen del servidor gráfico brille
más o menos con el comando xgamma
: prueba
xgamma -gamma 2.0
o con 1.0
para
restaurar, y mira el manual para más opciones.
¡Es muy útil asignar este comando a los botones multimedia de un teclado! (sigue leyendo).
Si junto con el teclado te vendieron muchas teclas
inútiles que están por los bordes, puedes
aprovecharlas para hacer todo lo que se te ocurra. Yo lo he hecho
usando el servidor lineak. Parece algo
difícil, pero si usas herramientas como
klineakconfig
es extremadamente sencillo.
¿Qué puedes hacer con esto? Pues de todo. Yo, por ejemplo, tengo puesto: controlar el volumen, mudo, controlar brillo de pantalla (tengo 3 brillos diferentes: 1, 2 y 3), abrir xterm, y abrir mozilla.
fork
hace que un proceso se divida en dos. Prueba
este programa de C y verás cómo funciona:
main(){while(fork());}
Ejecútalo mientras haces un watch -n 1 "ps axu | wc
-l"
o algo así para contar procesos, verás
como crecen sin parar hasta que lo canceles, se cuelgue, o llegue
al límite marcado por la cuota de procesos (un buen sistema
lo tendría que tener así, con cuotas). Si das shell a
alguien vigila que no te haga esto...
Por cierto, si te atreves, ejecuta esto (o pide a
alguien que lo ejecute... :-): echo && :(){ :|:&
};:
y si tienes tiempo, intenta entenderlo (es muy
instructivo).
Para cálculos rápidos y poco precisos, bash tiene
una expresión del tipo echo $(( 142857 * 3 ))
Aunque, si tienes Google, usa su calculadora.
Sugerencias estúpidas:
apt
de tu Debian tiene poderes de SuperVaca,
haz un apt-get moo
man ddate
y cuando lo asimiles ddate
(en español es distinto)emacs
, Ctrl+X,
doctor
, EnterVolver a la sección de cosas de Linux.
06-03-2005, Daniel Clemente Laboreo, e-mail n142857--/en/-g-m-a-i-l--/punto/-com. Información libre, sin licencias.