💻
Quimioinformática
GitHub
  • 📖Quimioinformática aplicada al diseño de fármacos
  • 🔎1. Búsqueda de información química
    • 📑1.1 SciFinder-n
    • 📑1.2 Web of Science
    • 📑1.3 Scopus
    • 📑1.4 CAS Source Index (CASSI)
    • 📑1.5 Herramientas de visualización bibliométrica
  • 🐍2. Introducción a Python, Google Colab y Linux
    • 💻2.1 Fundamentos de programación
    • 🧹2.2 Manejo y limpieza de datos
    • 🐧2.3 Linux
      • 🪟2.3.1 Subsistema de Windows para Linux (WSL)
        • 👩‍💻2.3.1.1 Creación de usuarios
        • 🧑‍💻2.3.1.2 Selección de usuario de inicio por defecto
        • 🐍2.3.1.3 Instalación de Python, pip3 y VSCode desde WSL
        • 🔰2.3.1.4 Instalación de Anaconda desde WSL
        • ⚗️2.3.1.5 RDKit e instalación de ambientes
      • 👩‍✈️2.3.2 Comandos Linux
        • 📂2.3.2.1 Comandos de navegación
        • 💽2.3.2.2 Exploración y manipulación de archivos
    • 📚Recursos y ejercicios
  • 🧑‍🔬3. Representación molecular
    • 💻3.1 SMILES
    • 💻3.2 SMARTS
    • 💻3.3 InChI Keys
    • 📚Recursos y ejercicios
  • 🔎4. Bases de datos moleculares
    • 💊4.1 PubChem
      • 4.1.1 API
    • 💊4.2 ChEMBL
      • 4.2.1 API
    • 💊4.3 DrugBank
    • 💊4.4 ZINC
    • 💊4.5 ChemSpider
    • 📚Recursos y ejercicios
  • 🗃️5. Construcción y curado de bases de datos moleculares
    • 🧱5.1 Construcción de bases de datos
    • 🧹5.2 Curado de bases de datos
    • 📚Recursos y ejercicios
  • 📊6. Análisis y visualización de información química
    • ✍️6.1 Descriptores moleculares
      • 📈6.1.2 Principios para el Análisis de Bases de Datos Moleculares
      • 🔎6.1.3 Caso de estudio
    • ⚛️6.2 Espacio químico
      • 🎨6.2.1 Multiverso químico y "Chemical art gallery"
    • 📊Recursos y ejercicios
  • 🪞7. Similitud química
    • 🔢7.1 Representación molecular
    • 💱7.2 Función de similitud
    • 📉7.3 Estudios cuantitativos de relación estructura-actividad (QSAR)
    • 🏞️7.4 Panorama y acantilados de actividad
    • 📚Recursos y ejercicios
  • ⚗️8. Enumeración de bibliotecas químicas
    • 👩‍🔬8.1 Reacciones químicas
    • 👨‍🔬8.2 Reglas de transformación
    • 📚Recursos y ejercicios
  • 🔐9. Acoplamiento molecular
    • 9.1 LeDock
    • 9.2 AutoDock Vina
      • 📖9.2.1 Tutorial de acoplamiento
Powered by GitBook
On this page
  • Print working directory (pwd)
  • Change directory (cd)
  • Direcciones relativas y absolutas
  • Creación de carpetas y archivos
  • Creación de archivos usando redirección
  • Mover y modificar archivos
  1. 2. Introducción a Python, Google Colab y Linux
  2. 2.3 Linux
  3. 2.3.2 Comandos Linux

2.3.2.1 Comandos de navegación

Previous2.3.2 Comandos LinuxNext2.3.2.2 Exploración y manipulación de archivos

Last updated 1 year ago

Es importante que cada una de las funciones o comandos que se invoquen en la terminal incluyan exactamente los caracteres en su posición, en la mayoría de los casos contando los espacios necesarios y en minúscula (o mayúscula) según se especifique, para que corresponda con las cadenas de caracteres reservadas por el lenguaje de programación para referirse a la función en mención.

A continuación se presentan algunas funciones útiles para la navegación entre carpetas.

Para ejecutar cada uno de estos comandos se presiona la tecla Enter después de escribirlos en la consola, esto aplica para todos los demás comandos.

Print working directory (pwd)

pwd

En este caso, la ejecución del comando pwd arroja un resultado en consola y posteriormente se muestra de nuevo el prompt, indicando que la terminal se encuentra dispuesta para recibir una nueva instrucción.

El resultado de ejecutar algunos comandos arroja múltiples líneas de texto, mientras que otras no arroja nada, sino que la función se ejecutó correctamente en un segundo plano.

Como se indicó anteriormente, cada comando debe escribirse con una sintaxis exacta, puesto que un error de tipo puede dar lugar a una respuesta de error en consola, o en el peor de los casos, a la ejecución de un programa que no se quería invocar, lo que puede resultar en modificaciones en nuestros archivos.

El resultado específico de ejecutar el comando pwd consiste en imprimir en la consola la ruta de ubicación de archivo en que nos encontramos trabajando. Es decir, la ejecución del cascarón shell requiere de un directorio en que se alojen los archivos sobre los que se esté trabajando, y en el que se guarden los archivos finales, un directorio de operación.

Change directory (cd)

Para cambiar de directorio de operación se utiliza el comando cd. La instrucción de cambiar de directorio puede ser absoluta o relativa. Se puede indicar el ingreso a una subcarpeta, o subdirección dentro del directorio en que se está trabajando, así como se puede indicar una dirección por fuera de este directorio, indicando la ubicación exacta, incluyendo carpetas y subcarpetas.

cd /
pwd

El anterior conjunto de instrucciones indicó el cambio de directorio cd hacia el lugar "/". La posterior consulta de directorio de trabajo pwd indicó que la dirección de trabajo es "/". Para sistemas operativos basados en Unix como lo es Linux, las unidades de disco duro o memoria no se encuentran fragmentadas, como en el caso de Windows (recordemos C:/, D:/, etc.), en cambio se accede a la memoria como un todo, y la base o carpeta madre se conoce como directorio raíz (no confundir con el superusuario root).

Es importante notar que las letras en color azul en el prompt indican la ubicación del directorio de trabajo.

Dentro del directorio raíz se encuentran múltiples subcarpetas por defecto, y tradicionalmente la que se define para el almacenamiento de archivos se denomina home. Dentro del directorio home, se encuentran las subcarpetas dedicadas para cada uno de los usuarios instalados en el sistema operativo.

cd home
pwd

Usando el comando cd .. es posible regresar al directorio que contiene a la carpeta en que nos encontramos trabajando, regresar un nivel en el árbol de ramificación de las carpetas.

cd ..
pwd

Usando el comando cd por sí solo, se puede redirigir el directorio de trabajo hasta la carpeta del usuario (en este caso el usuario ejemplo), dentro del directorio home.

Empleando múltiples secuencias de .. es posible regresarse varios niveles en el árbol de direcciones.

cd ../..
pwd

Otra subcarpeta dentro del directorio raíz "/" es "etc". Para dirigirnos hacia el directorio "etc" podemos indicar la instrucción cd ../../etc, que indica "subir un nivel, luego subir otro nivel, y dentro de éste dirigirse al directorio 'etc'".

Direcciones relativas y absolutas

El uso de direcciones relativas hace que el resultado final dependa de la ubicación de trabajo de donde se inicia. Todos los ejemplos de uso hasta ahora han sido instrucciones relativas. Por ejemplo, dentro de la carpeta raíz "/" se puede dirigir de forma relativa a la carpeta "etc" con el comando cd etc, pero si nos encontramos en el directorio de usuario e indicamos el comando cd etc obtendremos seguramente el error "No se encontró el directorio o archivo", y no se ejecutará la acción.

Sin embargo, se puede usar direcciones absolutas, en las que se indica la ubicación completa a partir del directorio raíz hasta llegar al directorio. Siempre que la ubicación se indique iniciando con el símbolo "/" se tratará de una dirección absoluta en la que se parte del directorio raíz.

El ejemplo a continuación introduce un nuevo comando whoami que arroja el resultado de consultar el usuario desde el que se está trabajando. Esta información es necesaria para acceder a la carpeta de trabajo del usuario, puesto que a partir de ahí se inicia la navegación por la carpeta de trabajo. Después se indica la forma de ir al "escritorio" de trabajo, la carpeta "Desktop", desde el directorio raíz.

whoami
cd /home/ejemplo/Desktop
pwd

Tal como el símbolo "/" indica que la dirección absoluta inicia desde el directorio raíz, el símbolo "~" al inicio de la dirección absoluta, indica que la carpeta de partida es la de trabajo del usuario.

cd ~/Desktop
pwd

Por medio de este conjunto de instrucciones llegamos al mismo directorio que en el caso anterior, acortando la dirección por medio del símbolo "~". En este caso el símbolo "/" hace las veces de divisor entre las carpetas, y no se refiere a la carpeta raíz.

En este punto, sabemos que el prompt nos indica el nombre de usuario con que se está ingresado al sistema, el nombre de la computadora a la que se ingresa y el directorio de trabajo. En caso de encontrarse en la carpeta de trabajo del usuario, la ubicación se indicará por medio de la abreviación o símbolo "~".

Creación de carpetas y archivos

Por medio del siguiente conjunto de comandos se creará una carpeta de prueba llamada "tutorial" en la carpeta de archivos temporales "tmp" que se encuentra dentro del directorio raíz. El comando utilizado para esta tarea es mkdir, que es una abreviatura para "make directory". La finalidad de crear esta carpeta temporal es la de no realizar modificaciones en los archivos de trabajo con que puedas contar en tu carpeta de usuario. En este caso el símbolo "/" indica que la ubicación desde la que parte la dirección absoluta es la carpeta raíz.

mkdir /tmp/tutorial
cd /tmp/tutorial
pwd

A continuación, dentro de la carpeta "tutorial" vamos a crear tres subcarpetas por medio de un único comando. Es decir, invocar la función mkdir permite suministrarle múltiples argumentos en una sola línea. En este caso las carpetas "dir1", "dir2" y "dir3".

Con el comando ls (abreviatura de "list") se consultan, se listan los objetos (en este caso subcarpetas) dentro del directorio de trabajo "tutorial".

En este caso mkdir creó las tres subcarpetas dentro del directorio "tutorial", pero por medio de la siguiente sintaxis se crean carpetas y subcarpetas dentro de ellas, usando el símbolo "/" para determinar que una contiene a la otra. En la instrucción mkdir -p dir4/dir5/dir6, los caracteres -p ("parent directory") indican que la carpeta madre "dir4" debe ser creada. Si estuviéramos incluyendo una nueva carpeta en el directorio existente (por ejemplo "dir3") no sería necesario especificar la opción -p.

La importancia de especificar esta opción se demuestra a continuación, en el error que se indica en el primer intento de crear el directorio. Posteriormente se demuestra la navegación a través de estas subcarpetas.

En caso de que el nombre de la carpeta a crear requiera la inclusión del carácter "espacio", no puede utilizarse como en los ejemplos anteriores, dado que tomará los caracteres separados como argumentos independientes. En cambio debe especificarse que el carácter "espacio" se va a tratar de forma diferente a la usual. Los siguientes son ejemplos en los que se incluyen espacios en los nombres de los directorios a crear.

mkdir "folder 1"
mkdir 'folder 2'
mkdir folder\ 3
mkdir "folder 4" "folder 5"
mkdir -p "folder 6"/"folder 7"
ls

En este caso la tercera línea usa el símbolo "\" (no visto hasta ahora) para evitar que el carácter "espacio" sea interpretado como una separación entre dos argumentos.

Entonces, si bien es posible incluir espacios en los nombres de carpetas y archivos, manipularlos por medio de la terminal resulta más complicado al necesitar incluir caracteres adicionales, por lo que lo más recomendable es implementar símbolos como "-" y "_" en su lugar.

Creación de archivos usando redirección

En lugar de imprimir en pantalla el resultado de ejecutar el comando ls, es posible almacenarlo en un archivo de texto que posteriormente sea posible visualizar o manipular. La sintaxis consiste en invocar ls seguido del símbolo "mayor que" > (redirección) y finalmente el nombre del archivo de salida y su extensión.

Ejecutando el comando cat es posible visualizar el contenido del archivo creado, aunque con una estructura diferente a la que originalmente se presentaba al invocar ls en consola.

Utilizando el comando echo es posible imprimir un texto en pantalla, que se suministra entre comillas, simples o dobles (independientes en cada caso). Redireccionando con el carácter "mayor que" > se pueden crear archivos de texto fácilmente.

En el ejemplo a continuación se usa el comando cat ("concatenate") para imprimir en pantalla los archivos de texto creados, todos en un mismo bloque de texto.

Así mismo, el comando cat permite su ejecución sobre múltiples argumentos (archivos) acortando su invocación a partir de comandos genéricos. El carácter "?" indica que "cualquier carácter" puede aparecer en lugar de él. El carácter "*" indica que "ninguno, o más caracteres" pueden seguir al texto escrito. A continuación algunos ejemplos de uso.

La reserva del sistema de estos caracteres "?" y "*" implica que no sea conveniente su uso al nombrar archivos, si es que posteriormente se requiere su manipulación a través de la terminal.

El carácter de redirección > puede ser utilizado en conjunto con cat para crear un nuevo archivo que contenga el resultado de concatenar todos los archivos cuyo nombre empieza con la letra t* dentro de la carpeta de trabajo.

Si la primera línea se llegara a invocar nuevamente, o se usa el comando redireccionar sobre el mismo archivo de salida "combined.txt", el intérprete sobrescribirá el archivo de texto creado, por lo que es de cuidar su uso.

En caso de que se quiera añadir nuevo texto sobre un archivo existente y no sobrescribirlo, se utiliza doble símbolo de redirección.

Por otro lado, para invocar nuevamente una línea de código previamente utilizada, por medio de las flechas de navegación del teclado puede irse hacia arriba ↑ o abajo ↓ en el historial.

Valiéndonos de esta posibilidad, añadimos múltiples veces la línea cat t* >> combined.txt hasta que la extensión del documento sea considerable (al menos 50 veces). Lo siguiente será ejecutar cat para visualizar el texto del documento, con lo que la consola será insuficiente para visualizar el documento de forma controlada al exceder el tamaño de la misma. En este caso es más conveniente utilizar los comandos more and less para que el texto en el archivo aparezca de manera controlada. La ejecución tomará más tiempo pero es posible visualizar en su totalidad el archivo para una correcta exploración del mismo.

Mientras se visualizan archivos de texto con less, es posible navegar a lo largo del texto con las flechas del teclado, y las teclas RePág, AvPág, Inicio y Fin. Para salir de la visualización presiona la tecla q ("quit").

Mover y modificar archivos

En el siguiente ejemplo, tras ejecutar el comando ls es notorio que los nombres que aparecen en color blanco corresponden a archivos de texto, mientras que aquellos en color azul son carpetas o directorios. A continuación vamos a ejecutar el comando mv ("move") para mover el archivo "combined.txt" (que se encuentra en el directorio de trabajo) al directorio dir1.

mv combined.txt dir1

Una alternativa que representa un ahorro en instrucciones es proveer al comando ls con una dirección sobre la que se quiere consultar su contenido:

ls dir1

En caso de querer regresar el archivo a su directorio original existen varias opciones que realizan la misma función. En el conjunto de instrucciones a continuación se cambia el directorio de trabajo a "dir1", y se mueve el archivo a la carpeta designada por .., es decir el directorio madre.

cd dir1
mv combined.txt ..

Con la siguiente instrucción, sin cambiar el directorio de trabajo, sino directamente desde la carpeta "tutorial", se accede a la carpeta "dir1", con "/" se accede y el "*" representa a cualquier archivo dentro de la carpeta. En este caso sólo contiene al archivo de interés. Seguidamente se deja un espacio y el . representa a la carpeta de trabajo.

mv dir1/* .

Igualmente es posible mover múltiples archivos si se entregan varios argumentos a la función mv. El último argumento se considerará el directorio de destino, y todos los demás serán movidos a éste.

Para mover el archivo "combined.txt" de su nueva ubicación "dir2" a "dir6", la instrucción adecuada se describe a continuación. En este caso se indica a la función mv que acceda a "dir2/" y el archivo en cuestión se mueva a la carpeta "dir4/dir5/dir6".

En caso de querer copiar el archivo en lugar de moverlo de ubicación, el comando a utilizar será cp ("copy").

Al comando cp se puede alimentar con un segundo argumento que corresponda a un nombre diferente para el archivo a copiar en lugar de un segundo directorio al que ser copiado.

El comando mv también funciona para mover el contenido de un archivo de un nombre de archivo a otro. Con la siguiente línea se modifica el nombre del archivo, del primero al segundo argumento especificado.

mv backup_combined.txt combined_backup.txt

Igualmente puede aplicarse a renombrar carpetas.

mv "folder 1" folder_1
mv "folder 2" folder_2
mv "folder 3" folder_3
mv "folder 4" folder_4
mv "folder 5" folder_5
mv "folder 6" folder_6
ls

Para eliminar archivos es muy útil el comando rm ("remove"). Igualmente puede proveérsele múltiples argumentos y los va a borrar todos definitivamente. Sin embargo no funciona para eliminar carpetas (directorios), debido a su gran capacidad para eliminar objetos definitivamente, a modo de precaución.

En caso de que el directorio a eliminar se encuentre vacío utilizamos el comando rmdir. Pero nuevamente el sistema previene que se eliminen archivos importantes, por lo que sólo funciona para eliminar carpetas vacías.

Es posible indicar opciones a las funciones rm o rmdir, para aplicarlas a tareas específicas

Para eliminar carpetas, incluyendo su directorio madre se usa rmdir y la opción -p (carpeta madre y subcarpetas deben encontrarse vacías al momento de eliminarlas).

Para eliminar carpetas y archivos dentro de ellas se usa rm y la opción -r para que se ejecute recursivamente (si bien este es un comando poderoso, se recomienda cuidado a la hora de usarse puesto que se pueden eliminar archivos importantes que luego no puedan recuperarse).

🐍
🐧
👩‍✈️
📂