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.
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.
Comments