jueves, 19 de abril de 2012

'Comanditos' de consola (II)

Avanzando un poco, voy a hablar de unos temas de 'culturilla general' del mundo de la consola, que ya os he dicho que en Linux convivimos dos tipos de usuarios, los 'normalitos', amantes del entorno gráfico y del clic del ratón, y los PROs, que usan la consola para todo, porque les es mucho más rápido. Bueno, y, como os decía, también estamos los 'mediopensionistas'.
El caso es que entras en algún foro de Linux y, a veces, te encuentras con respuestas de usuarios PRO que son muy buenas, pero que te suenan a chino. Se trata, por tanto, de conocer algunas cosas de cultura general, para facilitar entender (o intuir el concepto) algunas ayudas. A mi manera, así que si digo alguna burrada, que los expertos me la perdonen... o me la corrijan.
Asi que vamos a ello

La consola TTY
Es la consola 'real', sin entorno gráfico (trabajando en un entorno gráfico (gnome, o el que sea) cuando abres una consola en realidad la estás emulando). Si necesitas hacer algo 'fuera del entorno gráfico' puedes hacer dos cosas: una, reiniciar y entrar en el 'Modo Recovery' y otra, más sencilla, invocar una consola TTY (no se lo que significa exactamente, seguramente algo de Terminal de Texto...)
Y esto se hace de una forma muy sencilla: normalmente se dispone de hasta 6 consolas tty (tty1, tty2...tty6) y se invocan, sencillamente, con la combinación de teclas Ctrl + Alt + F1... hasta F6. Tienes que 'logearte' (poner tu nombre de usuario) etc, etc y luego ya entras en la consola para hacer lo que quieras.
Y para cerrarlas, y volver al entorno gráfico, basta pulsar Ctrl + Alt + F7.

El editor de textos NANO
Se me olvidaba: si estás en una consola tty, y quieres editar un archivo, para modificarlo, como estás fuera del entorno gráfico no puedes usar el típico editor de textos GEDIT (o similares, que son 'editores gráficos'). El editor que más se usa es el NANO, al que hay que 'tomarle un poco el aire': Ctrl+O para guardar, Ctrl+X para salir, etc, te lo pone abajo, en la pantalla del nano.
Otro en el VIM, que es el preferido por los 'maestros linuxeros', porque es muy potente... pero que yo, ni caso, vamos.
Así que, en consola TTY, hay que editar los archivos, en vez de con el socorrido gedit... con, por ejemplo,
# nano /etc/apt/sources.list

Consola (terminal) de usuario y consola de root
Ya está dicho en alguna otra entrada, en la consola puedes entrar como usuario ($... con lo cual algunos archivos del núcleo (/) no los puedes modificar, o como root (#... con lo cual eres dios, y puedes hacer lo que quieras).
Y que para pasar de la consola usuario a la consola de root, en Debian basta escribir $ su (y te pide la contraseña). En otros, por ejemplo en Ubuntu, hay que escribir $ sudo su, aunque lo habitual es meter, directamente, comandos como root anteponiendo 'sudo'. Por ejemplo. escribiendo
$ sudo gedit /etc/fstab
ya te edita el archivo fstab como root (y lo puedes, por tanto, modificar)

Esto también lo puedes hacer también en Debian, añadiendo tu usuario al grupo 'sudoers', como explicaba aquí


En Debian también puedes ejecutar una orden, con privilegios de root, con el comando 'gksu'. Por ejemplo
$ gksu nautilus
te abre el explorador de archivos Nautilus con privilegios de root (y, por tanto, puedes borrar, mover, cambiar nombre... cualquier carpeta). 
Así que cuidadín, cuidadín... con los privilegios de root

Los caracteres comodín
Es bastante habitual usar los 'caracteres comodín' (en inglés, wildcards). Algunos ya se usaban en MsDOS:
El más típico es el asterisco [*], que significa 'todo' o 'cualquiera que'. Así, un asterisco en solitario significaría 'todos los archivos', y un asterisco al principio, en medio o detrás de algunas letras o palabras (significa 'cualquiera que contenga esas palabras'... y cualquier otras).

Otro es el signo de interrogación (?). Parecido al asterisco, significa 'cualquier carácter' (pero solo un carácter)

Y otro son los corchetes [ ]. Se utiliza para hacer referencia a los valores que introducimos dentro de los corchetes.
Algunos ejemplos:
ls /home/doc/Documentos/*.xls
listaría todos los archivos de hoja de calculo que tiene el usuario 'doc' en su carpeta Documentos
find /home/doc/Imágenes/[a-e]*.jpg
también te lista (busca) todos los archivos jpg cuyo nombre empiece por a, b, c, d, o e.

Encadenar, enlazar, redireccionar y/o conectar comandos
En la consola de Linux se pueden introducir varios comandos en la misma orden, y concatenarlos. Lo verás en bastantes ordenes de consola. Los más comunes son estos:
El signo ; (punto y coma) encadena comandos. Por ejemplo
mkdir /home/doc/Cosas_viejas ; mv /ArchivoX /home/doc/Cosas_viejas
crea la carpeta 'Cosas_viejas' y luego mueve a ella el archivo 'ArchivoX'
El signo & enlaza comandos, es decir, ejecuta los comandos uno después de otro. El doble signo && hace que cuando termine sin error un comando, se ejecute otro. Por ejemplo
# aptitude update && aptitude safe-upgrade
primero actualiza los repositorios y luego busca e instala las versiones nuevas encontradas 'en modo seguro'
El signo > redirecciona la salida de un comando, añadiendo su salida a otra secuencia. El doble signo >> añade esa información nueva al final de un archivo ya existente. Por ejemplo
find /home/doc/Imágenes/IMG*.jpg > listaIMG.txt
me agrega la salida de la búsqueda de archivos 'jpg' cuyo nombre empiece por IMG al archivo (que crea) listaIMG.txt
Y si ahora hago
find /home/doc/Imágenes/escanear*.jpg >> listaIMG.txt
me añade, a ese archivo listaIMG.txt ya creado, los archivos jpg cuyo nombre empieza por 'escanear'
(es decir, '>' si no existe, crea el archivo (con el dato), y si existe, lo sobreescribe, y '>>' si no existe, crea el archivo y si existe, añade los datos al final
Y el signo | (AltGr+tecla1) es una tubería de conexión. Las tuberías, o pipes, lo que hacen es que la salida de un comando sea 'leido' como entrada por el siguiente. O sea, que los conecta, vamos. Se suelen ver, muchas veces, con el comando 'grep' que sirve para buscar por patrones de texto (palabras). Por ejemplo, para listar los dispositivos pci ya comenté que existe el comando 'lspci'. Bueno, pues si quiero que me liste (de todos los que hay) solo los que correspondan a 'dispositivos de red' escribiría
lspci | grep -i ethernet
(es decir, conecta' lo que da lspci al comando grep, y este solo toma los que contengan 'network')

Otro par de ejemplos de comandos que, tecleados 'puros' dan una información bastante larga, pero usando una tubería, y 'grep', nos resultan más cómodos:
xrandr | grep '*'
Muestra la resolución actual (anchura x altura) y la frecuencia de barrido (MHz) del monitor.
glxinfo | grep "direct rendering"
Indica si esta activada la aceleracion 3D


Bueno, esto, evidentemente, no es una 'lección magistral'. De hecho, no tengo mucha idea del tema, ni apenas lo suelo usar. Pero, como dije, lo escribo para aportar algo de 'culturilla general' sobre la consola, que siempre te topas con ella a poco que bucees por Google, o por los foros. 
Ya continuaré, si se me ocurren más cosas, otro día. 

3 comentarios:

  1. hombre.. yo se que al principio nano es el editor de texto que a todos nos encanta: mas simple que un trozo de papel.

    pero... donde este vim.... (cierto, no es para cualquiera, pero... una vez que lo pruebas, no lo puedes dejar... )

    estaria bien que hicieras una guia de vim para principiantes. ;) seguro que yo aprendia mas de una cosa. (vim es tan amplio, que yo creo que NADIE sabe todo su potencial)

    y por cierto, leyendo mas detenidamente....
    >>> xrandr | grep '*'
    estoy sobre win, peor supongo que querias decir >>> xrandr | less
    ??? digo... no tiene sentido usar grep a modo de pager. :)

    ResponderEliminar
  2. PD: la fuente (tipografia) es preciosa, pero cuidao con el tamanio, porque se lee un poco mal. tal vez te interese subirle o bajarle un puntito (no deberias depender de que la gente le de a ctrl+ +/ ctrl+ - )

    y edit: lo captchas lo unico que hacen es reducir (drasticamente) el numero de comentarios.
    como medida antispam pueden ser utiles, pero mientras puedas controlarlo manualmente (par de comentarios diarios a ojo), mejor simplificarle la vida a los humanos.

    ResponderEliminar
  3. gracias Niky, por tus comentarios. Pero, querida... eso del tuto del VIM... me pides algo para 'debianitas PRO', y yo solo soy un aficionadillo. Y claro, si el condor pasa... yo también passssooo de complicarme la vida con un editor, por consola, potentísimo. Los NO-PROs me parece que... gedit y, como mucho, nano, hija.

    ¡TU...! Tu, que eres 'maestra debianita', es quien debería hacer un Tuto del VIM... y así de paso animas un poco tus blogs, que están de capa caida. Pero claro, si encima andas trajinando con el Windows... :] :] ;)

    (Lo de la tipografía lo siento, es mi asignatura pendiente, no se qué pasa, yo escribo en el Writer (en FreeSans de 10 (u 8)) pero tras el copy/paste a veces no me funciona lo de 'fuente predeterminada' y esas cosas: al copiar debo meter algún barullo en el HTML y se me bloquea. Tengo que hacer algún cursillo para meter mano a eso)

    ResponderEliminar