Abrir una consola en Linux Mint y Ubuntu

Para mucha gente que está habituada a Linux (e incluso usuarios de Windows) ya saben perfectamente lo que es un terminal o consola o línea de comandos. Sin embargo todavía hay muchos que desconocen de qué se trata. Es una consulta que recibo de manera habitual así que voy a intentar explicarlo.

Una consola o terminal (terminal de línea de comandos) es una “ventana” que nos permite teclear comandos y ejecutar programas. Suele tener una mayor flexibilidad que los menús que nos ofrecen los sistemas operativos y se usan habitualmente en administración de sistemas.

Hablando de manera sencilla, un terminal nos permite hacer cosas tecleando comandos que no podemos hacer con los menús ni con los paneles de control.

Tienen un aspecto similar a este (aunque pueden cambiar bastante dependiendo del sistema operativo, tema que estés usando, etc):

Aspecto de una consola o terminal en Linux

Aspecto de una consola o terminal en Linux

Para arrancar un terminal debemos buscar normalmente un icono similar a éste:

Icono para arrancar una consola o terminal

Icono para arrancar una consola o terminal

En caso de no encontrar el terminal debemos buscarlo en los menús. Normalmente suele estar en:

Menús -> Accesorios -> Terminal.

Introducción a bash: Pasar argumentos a un script bash

En esta segunda entrega de la miniguía de bash vamos a ver cómo pasar argumentos (o parámetros a un script bash).

En la primera entrega vimos cómo crear un fichero y hacerlo ejecutable. Siguiendo esas instrucciones puedes crear un fichero llamado parametros.sh y copiar lo siguiente:

#!/bin/bash
echo $1

Si invocamos el script con el siguiente comando:

parametros.sh primero

el resultado sería:

primero

Como vemos, el argumento “primero” ha quedado almacenado en la variable $1 (sí, con bash se pueden usar variables ¿no es maravilloso?).

El siguiente comando:

parametros.sh primero segundo

Nos mostrará lo mismo que antes:

primero

Los argumentos en bash se separan por un espacio, de tal forma “segundo” sería el segundo argumento. Para recogerlo y mostrarlo tendríamos que modificar nuestro script:

#!/bin/bash
echo $1
echo $2

Para recoger el tercer argumento usaríamos $3 y así sucesivamente.

Existe una variable, $#, que se crea automáticamente que contiene el número de argumentos que se han pasado al script:

#!/bin/bash
echo "Total argumentos: $#"

al llamarlo con:

parametros.sh primero segundo

mostrará:

Total argumentos: 2

También se crea automáticamente otra variable, $@, que es un array que contiene todos los argumentos. Si hacemos:

#!/bin/bash
echo $@

nos mostará todos los argumentos:

parametros.sh primero segundo

resultado:

primero segundo

Ya veremos en otra entrega cómo trabajar con este y otros arrays.

¿Qué utilidad tiene esto de los argumentos?

Los argumentos dan una gran flexibilidad a nuestros scripts ya que mediante ellos podemos indicar con qué fichero o directorio queremos trabajar o especificar un usuario por ejemplo.

¿Por qué no se guardan los archivos ocultos en mi archivo TAR?

Probablemente te habrás encontrado alguna vez con este problema al crear un archivo tar: los archivos ocultos en la carpeta “raíz” no se almacenan.

Suponiendo que tienes una carpeta ‘prueba/’ que contiene los siguientes archivos:

.fichero1
fichero2
fichero3

Si haces:

tar cf test.tar prueba/*

no se copiará el archivo .fichero1

Sin embargo si hacemos:

tar cf test.tar prueba/

Sí que se copiará.

Parece una tontería, pero si no te das cuenta puedes perder un montón de tiempo.

Por cierto esto lo encontré aquí.

Introducción a bash: crear un sencillo script

Con este artículo voy a iniciar una corta serie de artículos para aprender a escribir sencillos scripts de bash.

Bash es un intérprete de comandos de Linux. Los que han trabajado con Windows/MS-Dos les sonarán seguramente los archivos .bat. Estos scripts bash son algo muy similar.

Para crear nuestro primer script debemos crear un fichero, por ejemplo primero.sh y copiamos el siguiente contenido:

echo "Eh, este es mi primer script bash"

Ahora tenemos que hacerlo “ejecutable”, para ello teclearemos en la consola:

chmod +x primero.sh

y ahora podemos ejecutarlo:

./primero.sh

Y ahora vamos a darle un poco más de gracia al asunto. En un script podemos usar los mismos comandos que si estuviéramos en la consola de Linux, por ejemplo: ls -las. Vamos a modificar el script:

echo "Este es el listado de directorios y ficheros:"
ls -las

Más adelante veremos que se pueden pasar parámetros a un script bash, se pueden usar variables, bucles, condiciones, arrays, etc…

Linux: Recuperar un archivo que tiene un nombre con caracteres extraños

En alguna ocasión me ha ocurrido que se suben a algún servidor archivos en cuyo nombre hay caracteres con una codificación diferente a la que usa el servidor. Si el servidor no puede traducirlos a su codificación los dejará “tal cual” pero luego será un dolor de cabeza acceder a ese archivo.

Por ejemplo, si un usuario sube un archivo con el nombre:

sin-título.jpg

es posible (dependiendo de tu servidor) que se almacene como:

sin-t�tulo.jpg

Quizá se te ocurra renombrarlo para que tenga un nombre más adecuado haciendo:

mv sin-título.jpg sin-titulo.jpg

o:

mv sin-t�tulo.jpg sin-titulo.jpg

Lo más seguro es que no te funcione ninguno de estos métodos. Pero tranquilo, antes de abrirte la cabeza y arrancarte el cerebro con una cuchara prueba lo siguiente:

more sin-t�tulo.jpg > sin-titulo.jpg

es posible que te funcione ¡suerte!

¿Linux Bloqueado? No apagues, usa REISUB

Sí, Linux también se bloquea. Es un hecho. Desgraciado, pero es un hecho.

Sin embargo, si se te bloquea el sistema operativo, el teclado no responde y parece la única opción es apagar el ordenador “a lo bruto”… no tengas tanta prisa en darle al botón.

Hay una solución (que funciona casi siempre). Recuerda que apagar el ordenador con el botón de encendido/apagado ya que habrá ficheros que no se han cerrado correctamente y puede corromperse alguno.

La solución que hay que probar antes de apagar el ordenador es una combinación de teclas muy curiosa:

1) Mantén pulsadas las teclas: ALT y SysRq (o Impr. Pant. en algunos teclados, es la que hace capturas de pantalla).

2) Mientras mantienes estas dos teclas pulsadas teclea: REISUB.

Esta secuencia de teclas obligará al sistema operativo a reiniciarse de manera correcta.

Por si tienes curiosisdad esto es lo que significan esas letras:

  • R – El teclado para al modo RAW.
  • E – Termina todos los procesos.
  • I – Mata todos los procesos. Por si había quedado alguno coleando.
  • S – Sincroniza el disco duro.
  • U – Desmonta todos los sistemas de ficheros. Estas dos últimas acciones se aseguran de que todos los ficheros quedan correctamente cerrados.
  • B – Reinicia el ordenador.

Hay una regla nemotécnica en inglés para recordar esta secuencia que es: “Raising Elephants Is So Utterly Boring” (algo así como “criar elefantes es terriblemente aburrido”).