7.2
IntroducciÓn al Bash.
Si observamos la barra de tareas encontraremos
el icono de un monitor con una concha shell. Al
pulsar sobre este icono se abrirá la ventana
de la consola en la que puede introducir comandos.
La ventana que aparece es un intérprete
de comandos; normalmente se trata del intérprete
Bash (Bourne again shell).
El Bash fue desarrollado en el marco del proyecto
GNU y es, sin duda, el derivado más extendido
de la Bourne Shell (sh). Cuando abra el Bash,
verá sobre la primera línea el llamado
Prompt (indicador de mandatos) que normalmente
se compone del nombre de usuario, del nombre de
la computadora, así como de la localización
actual en el árbol de directorios (path).
También puede ser configurado de forma
individual. Cuando el cursor se encuentre detrás
de este prompt, podrá introducir comandos
directamente.
Comandos
Los comandos se componen de distintos elementos.
En primer lugar se debe introducir siempre la
palabra de comando y seguidamente los parámetros
u opciones. Los comandos se ejecutan sólo
cuando se presiona Return.
Hasta ese momento podrá editar la línea
de comandos sin ningún problema, añadir
cualquier opción o corregir fallos.
Uno de los comandos más utilizados es ls,
que se puede usar sólo o con los llamados
argumentos. Si sólo introduce ls en la
consola, se le mostrará el contenido del
directorio en el que se encuentra en ese momento.
Las opciones van precedidas de un guión. Si introduce el comando ls -l, podrá ver
el contenido del mismo directorio, sólo
que de forma detallada. Verá, además
del nombre del archivo, la fecha en que se creó,
el tamaño del archivo en bytes y otras
características que se explicarán
más adelante. Una de las opciones más importantes que
también están disponible para muchos
otros comandos es --help. Si por ejemplo introduce
ls --help, se visualizarán todas las opciones
para el comando ls.
Con el comando ls puede ver también el
contenido de otros directorios que no sean el
actual. Introduzca, por ejemplo, ls -l Desktop
y seguidamente verá el contenido del subdirectorio
Desktop. Archivos y directorios
Para trabajar de forma eficiente con la shell,
debe conocer la estructura de archivos y de directorios
en Linux. Los directorios son carpetas electrónicas
en las cuales se pueden depositar archivos o programas
tal como subdirectorios. El directorio de mayor
jerarquía es el directorio raíz,
que se representa por /. Desde este directorio
podremos acceder a todos los demás.
El directorio /home como ya sabemos contiene los
directorios personales en los que todos los usuarios
dejan sus archivos.
Funciones del Bash
Dos funciones importantes de la shell le simplificarán
enormemente su trabajo: a) El historial: Si desea volver
a ejecutar una orden que ya haya introducido previamente,
basta con pulsar la tecla “flecha arriba”
hasta que aparezca el comando deseado. Si el comando
que busca se encuentra delante de su posición
actual pulse la tecla “flecha abajo”.
También puede editar la línea de
comando si desea modificar la orden. Desplácese
con ayuda de las teclas del cursor hasta el sitio
deseado y corrija el error. b) La función de expansión:
Esta función completa el nombre de un archivo
del cual sólo se han introducido las primeras
letras, en caso de que éste pueda ser identificado
de forma inequívoca. Para ello pulse la
tecla Tab. En caso de que haya más de un
archivo que empiece con esas letras, obtendrá
una lista de todos estos archivos pulsando dos
veces seguidas la tecla Tab. Ejemplo: Trabajar con archivos
Ahora que ya sabemos cómo se estructura
un comando, qué directorios existen en
Linux y cómo puede simplificar un poco
el trabajo con el bash, haremos un pequeño
ejercicio para que pueda poner en práctica
estos conocimientos: 1 Abrir una consola haciendo clic sobre el icono
del monitor y la concha.
2 Introduzca el comando ls. Verá el contenido
de su directorio privado.
3 Cree un nuevo subdirectorio con mkdir make directory
de nombre prueba. Para ello introduzca: mkdir
prueba (puede escribir md en vez de mkdir). 4 Inicie el editor KWrite pulsando las teclas
Alt + F2 e introduciendo kwrite en la casilla
de texto, lo que provocará que se abra
una nueva ventana. Escriba un par de letras y
grabe el archivo con el nombre Archivoprueba con
una A mayúscula, puesto que Linux diferencia
entre mayúsculas y minúsculas. 5 Ahora mire nuevamente el contenido de su directorio.
Pero esta vez, en lugar de volver a introducir
el comando ls, presione dos veces seguidas sobre
la tecla “flecha arriba”. A continuación
volverá a ver ls en la línea de
comandos, y sólo tendrá que pulsar
sobre la tecla Return para volver a ejecutarlo.
Ahora verá el nuevo subdirectorio prueba
en color azul y el Archivoprueba en color negro,
puesto que los directorios siempre vienen indicados
en azul y los archivos en negro. 6 Ahora con el comando mv move, podemos mover
el Archivoprueba al subdirectorio prueba. Para
facilitar el trabajo, use la función expansión:
escriba mv A y pulse la tecla del tabulador. Si
no existe ningún otro archivo que comience
con esa inicial, la shell le mostrará la
cadena Archivoprueba; en caso contrario, debe
introducir más letras y confirmar con la
tecla del tabulador. Deje un espacio en blanco
después de la primera secuencia (mv Archivoprueba),
escriba prueba y pulse Return.
7 Si ahora ejecuta el comando ls, ya no se mostrará
el Archivoprueba. 8 Para comprobar que se ha producido la modificación,
vaya al directorio prueba con el comando cd prueba.
Escriba ls; ahora debe aparecer el Archivoprueba.
Con el comando cd change directorysiempre puede
volver a su directorio privado. 9 Si necesita una copia del archivo, utilice
el comando cp copy. Para copiar Archivoprueba
en Archivoseguridad, escriba cp Archivoprueba
Archivoseguridad. Para ver ambos archivos, ejecute
ls.
Indicación de la ruta
Para trabajar con archivos o directorios siempre
debe indicar la ruta correcta. Para ello no siempre
es necesario que indique la ruta completa (absoluta)
desde el directorio raíz hasta el archivo
deseado. Puede hacerlo desde el directorio en
el que se encuentre actualmente. Esto significa
que dispone de varias formas de mostrar el archivo
Archivoprueba en el directorio prueba: ruta relativa
con ls prueba/* o ruta absoluta con ls ~/prueba/*.
Para ver los directorios personales de otros
usuarios, escriba ls ~ seguido del nombre de usuario.
En la estructura de directorios mencionada aquí
existía un usuario inventado tux. Con el
comando ls ~Javier puede ver el contenido del
directorio personal del usuario Javier. El directorio actual se representa con un punto
y el directorio inmediatamente superior, con dos.
Así, escribiendo ls .. se le muestra el
contenido del directorio madre del actual directorio;
con ls ../.. sube dos escalones en la jerarquía
de directorios. Ejemplo: El trabajo con rutas Este otro ejemplo le aclarará cómo
moverse por la estructura de directorios de su
sistema Linux. 1 Para estar seguro de que se encuentra en su
directorio personal, introduzca cd en la consola.
Aquí tiene el subdirectorio prueba. Ahora
creará un subdirectorio adicional con el
nombre prueba2. Introduzca para ello el comando
mkdir prueba2. 2 Cambie de ubicación a prueba2 con el
comando cd prueba2 y cree allí un nuevo
directorio de nombre Subdirectorio. Cambie a éste
utilizando la función expansión:
es decir, escriba sólo cd Su y pulse la
tecla Tab. El resto de la palabra será
añadida automáticamente. 3 Ahora se encuentra en Subdirectorio. A continuación
moveremos el archivo Archivoseguridad creado anteriormente
a este directorio. Para ello, no hace falta que
se desplace de nuevo al directorio prueba; bastará
con introducir la ruta relativa al archivo deseado.
Deberá introducir el siguiente comando:
mv ../../prueba/Archivoseguridad . (no se olvide
del punto final ya que de esa manera define el
directorio actual como destino final para el comando
mv). Con cada dos puntos accederá a un
nivel superior en la estructura de directorios,
por lo que en este caso ../.., hace referencia
a su directorio personal.
Comodines
Otra ventaja de la shell son los llamados comodines
o wildcards.
? : Sustituye exactamente un
carácter.
* : Sustituye una cantidad cualquiera
de caracteres.
[set] : Reemplaza sólo
un carácter de los que forman la secuencia
de caracteres
escrita entre corchetes, aquí representado
con la cadena de caracteres set.
[!set] : Representa sólo
un símbolo cualquiera, exceptuando los
incluidos en la
cadena set. Supongamos que tiene en su directorio prueba
los archivos Archivoprueba, Archivoprueba1, Archivoprueba2
y archiPrueba. En este caso, con el comando ls
Archivoprueba? se le mostrarán los archivos:
Archivoprueba1 y Archivoprueba2. Con ls Archivo*
se le enseñará también el
archivo Archivoprueba. Con ls *chi* obtendrá todos los archivos
de prueba. Mientras que con el comodín
set puede pedir que se muestre sólo los
archivos que terminen por un número: ls
Archivoprueba[1-9].
El más poderoso siempre es el comodín
*. Con él se puede, por ejemplo, copiar
todos los archivos de un directorio en otro, o
bien borrarlos. Así, el comando rm *pru*
borraría de su directorio prueba todos
los archivos que contuvieran en su nombre la secuencia
de caracteres pru.
Less y More
Dos pequeños programas le permiten visualizar
archivos de texto directamente en la shell. Por
tanto, no necesita abrir primero un editor si
quiere leer, por ejemplo, un archivo llamado Leame.txt.
Tan solo tiene que introducir el comando: less
Leame.txt. De esa forma podrá visualizar
el texto en la ventana de la consola. Con la barra
espaciadora puede avanzar de página en
página, y con las teclas de los cursores
puede moverse en el texto hacia adelante y hacia
atrás. Para terminar less utilice la tecla
q. El nombre less tiene su origen en el dicho a
veces menos es más. El programa less no
sólo se puede usar para ver archivos de
texto, sino que también puede servir para
ver cómodamente la salida de comandos .
Esto se explicará en el siguiente punto.
Además de less puede usar también
el programa more, algo más antiguo y que
resulta un poco menos cómodo, ya que con
él no puede hojear el texto.
Desvíos
Normalmente la salida estándar de la shell
es la pantalla (o bien la ventana de la shell)
y la entrada estándar es el teclado. Para
desviar la salida de un comando a un programa
como less, tiene que utilizar una tubería
(pipe). Para ver los archivos dentro del directorio prueba,
introduzca el comando ls prueba | less. Para obtener
el símbolo |, pulse simultáneamente
Alt Gr y la tecla con el signo de exclamación
(!) y el número uno (1). Este procedimiento vale para la distribución
de teclado de España y no necesariamente
para el teclado latinoamericano. La consola muestra
ahora el contenido del directorio prueba utilizando
less. Esto sólo es razonable, si la lista
del contenido del directorio no cabe en la ventana.
Por ejemplo con el comando ls /dev sólo
puede ver algunos de los ficheros en ese directorio,
mientras que ls /dev | less permite visualizar
todo. Para grabar la salida de un comando en un fichero,
el comando equivalente sería: ls test >
contenido. El resultado es un fichero nuevo con
el nombre contenido, que contiene el listado de
los ficheros y directorios en prueba. Mediante
less contenido es posible visualizar el fichero.
Por otra parte es posible utilizar un fichero
como entrada a un comando. Por ejemplo puede ordenar
alfabéticamente las líneas que haya
escrito en el fichero de prueba mediante sort
< Archivoprueba. La salida de este comando
aparece en la pantalla y se ve el texto anteriormente
escrito ordenado según las letras iniciales
de cada línea. Esto sirve por ejemplo para
ordenar una lista de nombres. Para crear un archivo nuevo con la lista ordenada
hay que desviar el resultado del comando sort
a un archivo nuevo. Para realizarlo, puede crear
en un editor una lista no ordenada y grabarla
bajo el nombre lista en el directorio prueba.
Entre al directorio prueba y ejecute el comando
sort < lista > ListaOrdenada. Visualice
la lista nueva con less. La salida estándar de errores es igualmente
la pantalla. Pero si quiere desviarla a un archivo
con el nombre Error, escriba 2> Error a continuación
de la orden. Si escribe >& Salida después
de un comando, tanto la salida estándar
como la salida de errores se guardarán
en el archivo Salida. Si en lugar de un >,
emplea dos >>, la salida se añadirá
a un archivo existente.
Archivar y comprimir datos
Después de haber creado algunos archivos
y directorios, veremos ahora el tema de archivar
y comprimir datos. Supongamos que desea empaquetar
todo el directorio prueba en un archivo, ya sea
para guardarlo en un disquete como copia de seguridad
o para enviarlo por correo electrónico.
Para ello, use el comando tar tape archiver. Con
tar --help puede ver todas las opciones de tar.
A continuación, se aclararán las
más importantes:
-c : create crear un archivo
nuevo.
-t : table ver el contenido de
un archivo.
-x : extract descomprimir un
archivo.
-v : verbose ver todos los archivos
en la pantalla durante el proceso de compresión.
-f : file con esta opción
puede dar un nombre al archivo de empaquetamiento.
Al comprimir, esta opción ha de introducirse
en último lugar. Para empaquetar ahora el directorio prueba con
todos sus archivos y subdirectorios en un archivo
con el nombre prueba.tar, necesitaremos en cualquier
caso las opciones: -c y -f. Si queremos hacer
un seguimiento del proceso de empaquetado usaremos
también la opción -v. Con cd diríjase
primero a su directorio personal, donde se encuentra
el directorio prueba. Introduzca ahora el comando
tar -cvf prueba.tar prueba. Vea después el contenido del archivo empaquetado
con: tar -tf prueba.tar. A propósito, el
directorio prueba con todos sus archivos y directorios
no sufre ningún cambio y sigue estando
en su disco duro. Para desempaquetar por completo
el archivo, introduzca el comando: tar -xvf prueba.tar.
No haga esto aún ya que antes comprimiremos
el archivo para ahorrar espacio. Para ello, se aconseja utilizar el famoso programa
gzip. Introduzca: gzip prueba.tar. Si ahora ejecuta
ls, verá que el archivo prueba.tar ha desaparecido
y en su lugar existe otro archivo de nombre prueba.tar.gz.
Este archivo es mucho más pequeño,
y por lo tanto más apropiado para ser enviado
por e-mail o para que quepa en un disquete. Ahora proceda a desempaquetar el archivo en el
directorio prueba2 creado anteriormente. Para
ello, copie el archivo en el directorio prueba2
con el comando cp prueba.tar.gz prueba2. Introduzca
seguidamente cd prueba2. Para descomprimir un
archivo .tar.gz utilice gunzip. La orden que se
debe ejecutar es: gunzip prueba.tar.gz, con lo
que obtendrá nuevamente un archivo prueba.tar. Ahora sólo queda desempaquetar este archivo
de la siguiente manera: tar -xvf prueba.tar. Con
el comando ls puede comprobar que ahora tiene
un nuevo directorio prueba con el mismo contenido
que el directorio prueba que se encuentra en su
directorio personal.
mtools
Los mtools son una serie de comandos con los que
se puede trabajar en un sistema de archivos MS-DOS.
Esto es sobre todo importante para trabajar directamente
con la disquetera. Como en MS-DOS, a la disquetera
se la puede denominar a:
Los comandos reciben los mismos nombres que en
MS-DOS, sólo que van precedidos de una
m:
mdir a: : le muestra el contenido del disquete
introducido en la disquetera a:.
mcopy Archivoprueba a: : copia el archivo Archivoprueba
al disquete.
mdel a:Archivoprueba : borra Archivoprueba de
a:
mformat a: formatea los disquetes a alto nivel;
para ello el disquete tiene que ser
previamente formateado a bajo nivel con el comando
fdformat /dev/fd0h1440 o estar ya formateado.
mcd a: : a: será su directorio
actual.
mmd a:prueba : crea el subdirectorio
prueba en el disquete.
mrd a:prueba : borra el subdirectorio
prueba del disquete.
Hacer limpieza
Para que nuestro directorio personal quede un
poco más ordenado, puede borrar todos los
directorios y archivos de prueba con los comandos
rm y rmdir.
|