Ir al contenido principal

Cómo desplazarse por la consola como un experto





cd como un experto


Empecemos por lo más sencillo y veamos que cd es un poco más complejo de lo que parece. Mucha gente sabe del autocompletado de bash, gracias al cual basta con escribir parte del nombre del directorio y pulsar Tab para que la consola complete el directorio (si no hay varias posibilidades, en caso contrario tendríamos que pulsar dos veces Tab para verlas). También es muy común el uso de rutas relativas: si estamos en /home/zootropo y queremos desplazarnos a /home/zootropo/videos no es necesario escribir la segunda ruta en su totalidad, sino que podemos escribir simplemente cd videos. Incluso es normal ver a novatos usando atajos como cd .. para desplazarse al directorio superior y cd ~ o cd para desplazarse al directorio de usuario.

Lo que es menos común, y muy útil para el tema que nos ocupa es el uso de cd -. Este flag tan útil no hace otra cosa que movernos al último directorio en el que estuvimos.

zootropo@genua:~$ cd /etc/X11/
zootropo@genua:/etc/X11$ cd
zootropo@genua:~$ cd -
/etc/X11
zootropo@genua:/etc/X11$ pwd
/etc/X11


De esta forma podemos movernos entre dos directorios rápidamente.

Por otro lado, si lo que necesitamos es desplazarnos a un directorio tan solo un momento para ejecutar un comando y luego seguir trabajando en el directorio actual, también podríamos usar &&, que ejecuta dos comandos, uno detrás de otro, de forma condicional (and con cortocircuito):

cd /etc/X11/ && cat xorg.conf

y rodearlo con paréntesis, que hace que los comandos se ejecuten en una subshell

(cd /etc/X11/ && cat xorg.conf)

de esta forma se ejecutará el comando en una subshell distinta, por lo que el cd no nos afectará, y será como si nunca nos hubiéramos desplazado.

Pero, ¿qué ocurre si queremos movernos entre varios directorios? ¿qué podemos hacer si queremos desplazarnos, por ejemplo, al penúltimo directorio que visitamos? la combinación pushd, popd y dirs, nos proporciona una alternativa válida.

pushd, popd y dirs


pushd funciona como un cd normal, moviéndonos al directorio especificado, pero además, como su nombre indica, introduce dicho directorio en una pila.

pushd /etc/X11/

popd también funciona como un cd, pero el directorio al que nos mueve es el que extrae de la pila, y dado que la pila es una estructura LIFO (Last In, First Out o lo que es lo mismo, el último en introducirse es el primero en extraerse) al escribir este comando nos moveremos al último directorio añadido a la pila.

popd

También es posible indicar qué elemento de la pila queremos utilizar mediante un índice. Por ejemplo:

popd +2

extraería el tercer elemento (el índice del primer elemento es 0). También podemos utilizar índices negativos, como -2, contando al revés.

Por último dirs nos sirve para imprimir el contenido de la pila:

zootropo@genua:/etc/X11$ dirs
/etc/X11 ~


Al comando dirs también se le puede pasar un índice para imprimir tan solo el directorio seleccionado por el índice.

La desventaja del uso de pushd y popd es que cada vez que hacemos un popd el directorio se borra de la pila, y si quisiéramos volver a utilizarlo tendríamos que volver a guardarlo en la pila, lo cual va en contra de la rapidez que buscamos y que nos impulsó a usarlos en primer lugar.

Existe una alternativa que consiste en aprovecharnos de la característica de la indexación de dirs. El comando

dirs +0

mostraría el primer elemento de la pila.

Basta con usar este directorio como argumento para cd para poder movernos a los directorios almacenados sin que se borren de la pila:

cd `dirs +0`

Sin embargo, por alguna extraña razón, cuando el directorio que seleccionamos con dirs es el directorio home, que se almacena como ~, este pequeño truco no funciona, sino que tendríamos que usar el flag -l para que dirs muestre la ruta completa del directorio home en lugar de ~.

cd `dirs -l +0`

Podríamos ahorrarnos tener que escribir el flag -l con un alias, e incluso crear alias como

alias cd="pushd"
alias cd1="cd `dirs -l +1`"


de forma que al escribir cd1 nos desplazáramos al penúltimo directorio introducido con nuestro cd-pushd.

Sin embargo, hay alternativas más sencillas, como CDargs.

CDargs


CDargs se encuentra en los repositorios de Ubuntu, así que instalarlo en esta distro es tan sencillo como escribir:

sudo aptitude install cdargs

También es conveniente añadir las funciones para bash ya creadas que vienen con la aplicación editando el .bashrc:

gedit ~/.bashrc

y añadiendo la siguiente línea, que hace un source del archivo correspondiente (asegúrate de que el archivo se instaló en esa ruta y modifica la línea adecuadamente si no es así)

source /usr/share/doc/cdargs/examples/cdargs-bash.sh

Reinicia la consola y podemos empezar a jugar.

Si escribimos el comando

cv

en la consola, se lanzará la interfaz gráfica en ncurses de CDargs, un pequeño explorador de archivos en modo consola.



Primero seleccionamos el directorio que nos interesa con las flechas de arriba y abajo, con Avance página y Retroceso de página, con Inicio y Fin o pulsando el número asociado. Si solo queremos hacer un cd a ese directorio, pulsamos enter. Si queremos hacer un cd a un directorio que está contenido dentro del directorio seleccionado, pulsamos la flecha derecha para que CDargs muestre su contenido, y por último, si queremos movernos a un directorio superior, pulsamos la flecha izquierda. Para salir de la interfaz sin hacer nada, pulsamos la tecla 'q'. Si queremos ver archivos ocultos, pulsamos la tecla '.'.

CDargs también incluye un sistema de marcadores. Para utilizarlo nos desplazaremos al directorio que queramos añadir a nuestros favoritos y escribimos

ca etiqueta

Por ejemplo:

cd /home/zootropo/videos
ca vid


Después basta escribir

cv etiqueta

para desplazarnos al directorio que guardamos en marcadores con dicha etiqueta.

Podemos ver los marcadores que hemos creado desde la interfaz gráfica de CDargs, pulsando la tecla Tab para cambiar entre el modo de marcadores y el modo explorador.

Por último, quizás os interese echar un vistazo a los gestores de archivo de modo consola, como GNU Midnight Commander

sudo aptitude install mc

Entradas populares de este blog

Ultrastar Deluxe

El Karaoke para Linux La llegada de la Navidad significa reuniones con familiares y amigos, lo que nos lleva a buscar formas de entretenimiento. Una de ellas es el karaoke , y como no podría ser de otra manera en GNU/Linux tenemos nuestra opción Open Source, se trata de UltraStar Deluxe (para mí la mejor opción), que está basado en el primer Ultrastar aunque bastante más completo y fácil de usar. Esta aplicación es un clon libre de Singstar con el que podrás cantar cualquier canción e incluso crear la tuya propia. Si estáis interesados en instalarlo puedes añadir el repositorio para Ubuntu o bajarlo desde la página oficial en caso de usar otra distribución. sudo add-apt-repository ppa:tobydox/ultrastardx sudo apt-get update sudo apt-get install ultrastar-deluxe Una vez instalado sólo quedará añadir canciones . Como no podía ser de otra manera, existe una comunidad muy activa que nos proporciona gran cantidad de material listo para ser usado, una de ellas es Ultrastar

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar

Control PS3 en Debian, Ubuntu

INSTALAR EL CONTROL DE PLAY STATION 3 EN GNU / LINUX. EN LAS DISTRIBUCIONES DEBIAN 6.0 SQUEEZE, DEBIAN WHEEZY (TESTING), LINUX MINT DEBIAN EDITION, LINUX MINT, GUADALINEX, UBUNTU. Les voy a decir como conectar su control de Play Station 3 en Debian por medio de un cable USB, personalmente lo he probado en Debian 6.0 Squeeze (estable) y Debian Wheezy (testing), no lo he probado en Linux Mint Debian Edition (LMDE), pero no tendría porque no funcionar. En el caso de Ubuntu y sus derivadas supongo que también debería funcionar, no lo he probado porque no uso dicha distro, pero los comandos los tome de un tutorial para ella, no es “copy and paste” , solo copie los comandos, el resto es de mi experiencia personal. NOTA PARA USUARIOS DE LINUX MINT, GUADALINEX Y UBUNTU: Los comandos que voy a poner son para Debian y Linux Mint Debian Editon, para el caso de Ubuntu y derivados ya saben que los comandos como root se ejecutan con “sudo”. Además creo q