top of page
Foto del escritorBraulio Madrid

Curso intensivo de Bash



Desde que migré a Zorin OS el movimiento más lógico es aprender a usar la terminal, aunque normalmente en Windows es poco lo que uno usa la consola, en Linux es indispensable saber usarlo, generalmente cualquier librería que haga falta, es necesario usar comandos para instalar dichas librerías.


Así como Terminal en Linux significa lo mismo que Consola en Windows, pues Bash en Linux seria como MS-DOS, siendo más poderoso Bash, y aunque hay otros Shell, el mas amplio y popular dentro de las distribuciones Linux es Bash.


Si aprendes a usar Bash, no te será difícil migrar a la consola de Mac o sistemas Unix, en otras palabras, aprendiendo Bash prácticamente será más fácil usar cualquier terminal sin importar el sistema operativo o dispositivo.


Manipulación de archivos y directorios.



[comando] [parametroinstrucción] [-instruccion]
ls documentos -l
[comando] [-instruccion] [parametro]
ls -l documentos

La sintaxis de Bash es simple he intuitiva, primero escribes un comando separado de un espacio parámetro o argumento, luego un espacio y un guión luego una instrucción.

man [comando]

El comando man significa manual y sirve para consultar la utilidad de algún comando y sus instrucciones. Te da toda la información acerca del comando y su uso.


pwd

pwd = print working directory, te permite saber en qué carpeta te encuentras ubicado. Este es un ejemplo de un comando que no necesita instrucción o argumento.


cd #te envia a la carpeta principal del usuario
cd . #te envia a la carpeta actual
cd .. #te envia a la carpeta padre
cd [carpeta] #te envia a la carpeta señalada

En Linux las carpetas se llaman Ficheros, pero no deja de ser lo mismo, eso es lo que odio de la humanidad, ese afán de querer destacar y diferenciar las cosas con palabras fetiche, en lugar de usar un lenguaje común que ayude a más personas a entender lo mismo.


CD = Change Directory, funciona igual que como funciona en MD-DOS, las rutas funcionan igual a su vez las rutas pueden ser relativas o absolutas.

Supongamos exista una ruta /usuario/documentos/fotos/vacaciones y supongamos que estamos en la carpeta o fichero documentos y queremos ir a vacaciones.


cd fotos/vacaciones #ruta relativa
cd /usuario/documentos/fotos/vacaciones #ruta absoluta

Supongamos que dentro de la carpeta documentos hay una carpeta llamada informes, pero actualmente estamos en la carpeta vacaciones y queremos movernos a la carpeta informes. Una opción es usar el comando cd .. repetidamente hasta llegar al fichero destino, la otra opción es usar una ruta absoluta, pero puede ser muy largo de escribir la ruta, la otra opción es usar rutas relativas inteligentemente.


cd /usuario/documentos/informes # ruta absoluta
cd ../../informes # ruta relativa

Así de esta forma podemos movernos entre ficheros, ya que sabemos movernos, debemos saber que hay dentro de cada fichero.


ls

El comando ls = list directory contents, es similar al comando dir en MS-DOS, sirve para hacer una lista del contenido dentro de una carpeta y aquí es donde se nota el poder y la fuerza de Bash. Supongamos que estamos dentro de la carpeta informes y que dentro de esta se encuentra informe-2008.txt, informe-2009.txt, informe-2010.txt, informe-2011.txt, resumen-informes.txt.


ls
informe-2008.txt    informe-2009.txt    informe-2010.txt    informe-2011.txt    resumen-informes.txt

ls tiene varias opciones o instrucciones, pero aquí manejaremos algunos de los mas útiles, si necesita saber mas puede usar el comando man ls o usar el comando ls --help.

Esta -l que lista con detalles,-a que muestra los archivos ocultos, -S que ordena por tamaño, -t que ordena por fecha, -r que invierte el orden. También es posible combinar varias instrucciones


ls -l -a -S -r
ls -laSr #Es lo mismo que poner instrucciones por separado
resumen-informes.txt
informe-2011.txt
informe-2010.txt
informe-2009.txt
informe-2008.txt

Cuando una usa el comando ls, este lista los archivos del fichero actual, pero si como argumento le proporcionamos una ruta, este podrá listar los archivos de la ruta proporcionada.


mkdir [nombre fichero]
mkdir [nombre fichero] [nombre fichero]
mkdir [ruta+nombre fichero]

MKDIR = Make Directory, puede crear ficheros o carpetas, para hacerlo puedes pasarle como parámetro el nombre del fichero que quieres crear y lo hará en la ruta actual donde esté ubicado, pero también puedes crear varios ficheros al tiempo separando los nombres con espacios, por último es posible crear un fichero en una ruta distinta en la que actualmente bash se encuentra, pero si la ruta no existe arrojará un error.


mkdir -P [ruta+nombre fichero]

Si la ruta proporcionada no existe, con la instrucción -P mkdir creará los ficheros necesarios para que la ruta exista y creará el fichero deseado.


touch

En Linux cualquier archivo puede ejecutarse, para entenderlo es como si cada archivo fuera tratado como código fuente, este comando touch puede crear archivos con la extensión que se desee, pero esto no quiere decir que el formato sea el correcto para ser visualizado, es mas bien como un archivo .txt en blanco esperando ser rellenado.


rm [archivo o fichero vacío]# Elimina archivos
rm -r [archivo y ficheros sin discriminar]# Elimina ficheros o carpetas
rm [archivo] [archivo] #elimina varios archivos

RM = Remove directory: sirve para eliminar archivos y carpetas, es un comando al que hay que tener mucho cuidado, porque borra sin siquiera preguntar.


mv [archivo] [ruta]
mv [archivo] [archivo] [ruta]
mv -r [fichero] [ruta]

MV = Move directory: sirve para mover o renombrar archivos y ficheros, puede mover un archivo o varios al tiempo.


cp [archivo] [ruta]
cp [archivo] [archivo] [ruta]

CP = Copy directory: sirve para copiar archivos o ficheros a la ruta especificada, funciona similar a rm y mv.


Atajos o ayudas que ofrece Bash.


  • En MS-DOS, con la flecha hacia arriba navega por los últimos comandos ejecutados, en Bash es igual.


history
  294  cd ../fotos
  295  ls
  296  mv *.gif ..
  297  cd ..
  298  ls
  299  cd documentos
  300  ls
  301  cd cartas
  302  ls
  303  man ls
  304  touch touchDirectory
  305  ls
  306  rm touchDirectory
  307  ls
  308  touch --help
  309  rm --help
  310  history
  !302

  • History es un comando para revisar los últimos comandos ingresados, puedes usar el número de índice que deja para volver a repetir el comando que desees, con un signo de exclamación y el número del índice ejecuta el comando en la lista.

  • Puedes autocompletar el nombre de rutas y archivos usando la tecla de tabulador. Si escribes "info" y le das al tabulador, logrará completar hasta donde bash sepa, ejemplo "informe" y si le agregas "-2008" y tabulador completara "informe-2008.txt"


Uso de comodines.


* = Sirve para seleccionar lo que empiece o termine en algún nombre.

? = Sirve para seleccionar archivos que solo difieren en un carácter.


Supongamos algunos nombres de archivos:


trust_wallet.txt    trigo.txt    technologies

  • Como argumento puedo escribir tr*, bash seleccionará trust y trigo

  • Como argumento puedo escribir *.txt y bash seleccionará todos los archivos terminados en txt


Supongamos algunos nombres de archivo:


borrador12.txt    borrador23.doc    borrador4.txt    borrador15.odp

  • Si se escribe borrador?.txt devolverá: borrador4.txt

  • Si se escribe borrador??.txt devolverá: borrador12.txt

  • Si se combina borrador??.* devolverá: borrador12.txt, borrador23.doc y borrador15.odp

Tarea y conclusiones.


Voy a dejar un archivo comprimido con algunos ficheros y archivos, la intención es logra cumplir con cada una de las tareas usando la terminal.


Utilizando la estructura de ficheros que se adjunta, realizar los siguientes ejercicios:


  • Copiar el fichero borrador-datos-finales.xls a datos-finales-copia.xls

  • Renombrar pescando.jpg a lubina.jpg

  • Mover estadísticas/ a ficheros/documentos/

  • Borrar todas las canciones de The Corrs

  • Mover todas las fotos en personales/ a un nuevo directorio llamado ficheros/vacaciones/

  • Borrar todo lo que contiene el directorio música/2009/

  • Mover todos los ficheros con extensión .gif del directorio fotos/ al directorio ficheros/

Eso es todo por ahora, espero que practiquen bastante, para el próximo aprenderemos a gestionar usuarios, permisos y grupos desde la terminal.

14 visualizaciones0 comentarios

Comments


bottom of page