Blog
La finalidad de este artículos es explicarte como se lleva a cabo la manipulación de archivos con linux y bash. Te explicaremos desde la creación de archivos y carpetas, hasta la lectura y edición de un archivo.
Creación de archivos y carpetas con Linux y Bash
El comando touch es un comando que se utiliza para crear un archivo vacío. Basta con especificar el nombre del archivo que deseas crear.
Ejecuta este comando para crear my_file
touch my_file
Si este archivo ya existe, simplemente lo actualiza a su última fecha de modificación.
En la carpeta de inicio (~), crea los archivos file1, file2, file3 y comprueba su existencia mediante ls.
Para crear un directorio, utiliza el comando mkdir (que significa hacer directorio) y especifica un nombre para la carpeta:
Ejecuta este comando para crear una carpeta my_directory.
mkdir my_directory
Crea una carpeta directory1 en la carpeta de inicio.
También podemos crear archivos y carpetas fuera de la carpeta actual utilizando la ruta absoluta o relativa: por ejemplo, podemos ejecutar el siguiente comando:
Crea un file4 en esta carpeta utilizando el siguiente comando.
touch ./directory1/file4
Comprueba que el archivo se ha creado utilizando el comando ls -R ~, que enumera los archivos de forma recursiva.
Podemos utilizar el comando rm, que significa eliminar, para borrar un archivo o carpeta:
Borra el archivo file3 con este comando:
rm file3
o
rm ./file3
o
rm /home/ubuntu/file3
Para eliminar una estructura de árbol, es decir, una carpeta que contiene carpetas o archivos, añade el argumento -r:
rm -r /home/ubuntu/directory1
Ahora crea una carpeta directory2 en la carpeta home. Podemos por supuesto copiar/pegar archivos/carpetas usando cp o moverlos usando mv.
Copia el archivo file1 y pégalo en la carpeta directory2 utilizando el siguiente comando:
cp ./file1 ./directory2/
Podemos hacer lo mismo dando un nuevo nombre al archivo de destino:
cp ./file1 ./directory2/new_file1
Mueve el archivo file2 a la carpeta directory2, renombrándolo new_file2 con el comando:
mv ./file2 ./directory2/new_file2
Podemos utilizar mv para renombrar un archivo si el archivo de destino se encuentra en el mismo directorio que el archivo original. Observa cualquier cambio con el comando ls -R. Para copiar carpetas, podemos utilizar el argumento -r, al igual que con el comando cp.
Edición y lectura de archivos con Linux y Bash
Imprimir en un fichero con Linux y Bash
Para imprimir texto, podemos utilizar el comando echo.
Prueba este comando con este ejemplo:
echo hello world
Mostramos hello world en la salida estándar, en este caso el terminal. Para redirigir esta impresión, utiliza los caracteres > o >> y especifica un nombre de archivo.
Por ejemplo, podemos escribir hello world en el archivo file1 utilizando este comando:
Ejecuta este comando para escribir una línea en file1
echo hello world > file1
La diferencia entre estas dos posibilidades es que la primera sobrescribe el contenido del fichero antes de escribir en él, mientras que la segunda añade el contenido al fichero si ya existe. En el caso de que el fichero no exista, los dos comandos son equivalentes: creamos el fichero y añadimos el resultado del comando echo al fichero. Para mostrar el contenido de un fichero, podemos utilizar el comando cat.
Prueba a visualizar el contenido del fichero file1:
cat file1
Este comando debería devolver hello world.
Ejecuta los siguientes comandos:
echo hello world > file1 echo hello world > file1 echo hello world >> file2 echo hello world >> file2
A continuación, muestra el contenido de estos dos archivos: el primero debe contener una sola línea, mientras que el segundo debe contener dos. Podemos utilizar este sistema de redirección con cualquier comando que imprima en la salida estándar.
Ejecuta el siguiente comando para imprimir la lista de root /contents en un archivo llamado root_content.
ls / > root_content
A continuación, muestra su contenido mediante el comando cat.
En algunos casos, por ejemplo cuando los archivos son demasiado grandes, sólo queremos mostrar el principio o el final del archivo. En este caso, podemos utilizar head o tail. Estos dos comandos pueden tomar el argumento -n, que introduce un número de líneas a mostrar. Prueba estos dos comandos con el archivo root_content:
Ejecuta este comando:
head -n 2 root_content tail -n 3 root_content
Editor de texto
En las secciones anteriores, vimos cómo añadir contenido a un fichero automáticamente utilizando el resultado de un comando. Es posible que queramos utilizar una forma más sencilla de modificar el contenido de un archivo. Dado que vamos a crear scripts, necesitamos un editor de texto real que utilice coloreado especial para ayudarnos a dar sentido a nuestro código. Hay varias herramientas disponibles en Linux que pueden ayudarnos con este problema, como Nano o Vim. La elección del editor dependerá de tus preferencias personales.
Nano
Escribe nano para abrir este editor y añade unas cuantas líneas.
Veamos algunos comandos básicos:
Moving
Utiliza las teclas de flecha para desplazarte por el archivo. Para ir a la parte superior o inferior de una página, utiliza las teclas ctrl + y o ctrl + v, respectivamente. Para ir directamente a una línea concreta, utiliza ctrl + _ e introduce el número de línea.
Edición de texto
Para insertar texto, sólo tienes que situar el cursor donde desees añadir contenido y empezar a escribir. Para borrar texto, desplaza el cursor hasta el carácter que desees eliminar y pulsa la tecla Del o Return.
Copiar, cortar y pegar
Para copiar texto, coloca el cursor donde quieras empezar a copiar, pulsa ctrl + ^, desplázate hasta el final de la selección y pulsa alt + 6. Para cortar texto, sigue el mismo procedimiento que para copiar, pero sustituye alt + 6 por ctrl + K. Para pegar texto copiado o cortado, sitúa el cursor donde desees insertar el contenido y utiliza ctrl + U.
Guardar y salir
Para guardar el archivo, utiliza ctrl + O y pulsa Enter.Puedes especificar el nombre del archivo si deseas guardarlo con un nombre nuevo. Para salir de Nano, utiliza ctrl + x. Si no has guardado los cambios, Nano te pedirá que los guardes antes de salir.
VIM
Escribe vim para abrir este editor y añade algunas líneas.
Vim tiene varios modos, incluyendo:
- Modo normal: Este es el modo por defecto cuando inicias Vim. Puedes navegar por el archivo, realizar operaciones de edición, etc.
- Modo Insertar: En este modo, puede insertar texto en la posición del cursor.
- Modo comando: Este modo te permite ejecutar comandos específicos de Vim.
Moving
Utiliza las teclas de flecha para desplazarse por el archivo en modo normal. Utiliza h (izquierda), j (abajo), k (arriba) y l (derecha) para navegar con el teclado. Para ir directamente a una línea específica, utiliza el siguiente comando en modo normal:
:line_number
Por ejemplo, para ir a la línea 10, escribe :10 y pulsa Enter.
Edición de texto
En el modo de inserción, sólo tienes que empezar a escribir texto e insertarlo en la posición del cursor. Para borrar texto, utiliza la tecla x para borrar un solo carácter, o el comando dd para borrar una línea entera en modo normal.
Copiar, cortar y pegar.
Para copiar texto, coloca el cursor donde quieras empezar a copiar, utiliza el comando y para copiar, desplázate hasta el final de la selección y utiliza el comando p para pegar. Para cortar texto, sigue el mismo procedimiento que para copiar, pero utiliza el comando d en lugar de y. Para pegar texto copiado o cortado, sitúa el cursor donde desees insertar el contenido y utiliza el comando p.
Guardar y salir
Para guardar el archivo, utiliza el comando :w en modo normal y pulsa Enter. Si deseas guardar con un nuevo nombre, utiliza el comando :w nombre_archivo.
Para salir de Vim, utilizael comando :q en modo normal. Si los cambios no se han guardado, Vim te avisará y puedes utilizar :q! para forzar la salida sin guardar.
Archivo .bashrc
El archivo .bashrc es un archivo de configuración utilizado por el shell Bash, que es un intérprete de comandos utilizado principalmente en sistemas operativos de tipo Unix, como Linux y macOS. Es específico para cada usuario y se encuentra en el directorio home.
La función principal del archivo .bashrc es definir variables de entorno, alias y funciones personalizadas para el intérprete de comandos Bash. Cuando un usuario abre una sesión de terminal, el archivo .bashrc se ejecuta automáticamente para cargar estas configuraciones personalizadas.
Es importante tener en cuenta que los cambios realizados en el archivo .bashrc sólo surten efecto cuando se abre una nueva sesión de terminal o se ejecuta el comando “source ~/.bashrc” para volver a cargar las configuraciones.
Este archivo es muy importante, y cualquier modificación de su contenido original puede causar problemas de ejecución o visualización. Te aconsejamos que tengas cuidado al manipular este archivo.
Para hacer persistente una variable de entorno, modificaremos este archivo:
cd nano .bashrc
Ve al final del archivo y añade la siguiente línea:
export my_var="Hello" alias graphic_card='lspci -vnn | egrep "VGA|3D|Display"'
Pulsa ctrl+x, escribe Y y luego pulsa Enter para validar. La primera línea que hemos añadido crea una variable de entorno persistente que puede ser llamada cada vez que se abre una sesión. La segunda línea añadida es un alias. Permite definir un comando con un nombre personalizado. En este caso, hemos creado un alias para un comando que devuelve la lista de tarjetas gráficas instaladas en la máquina. En lugar de escribir este complejo comando varias veces, hemos preferido utilizar un alias para simplificar su uso. Ten cuidado, sin embargo, de no utilizar un comando existente como nombre de alias.
Si deseaa activar los cambios realizados en este archivo durante la sesión actual, ejecuta el siguiente comando:
source .bashrc