The Inside Out


Este sitio La web

¿Sufriste un ataque de generosidad y quieres regalarme algo? ¡Gracias! Fíjate en mi lista de deseos en Amazon.

Hai avuto un attacco di generosità e vuoi regalarmi qualcosa? Grazie! Controlla nella mia lista dei desideri su Amazon.

Introducción al shell Bash

Introducción

Usted habrá visto referencias al uso de terminales o consolas, o al famoso modo texto. Los sistemas basados en Unix (todos, desde Solaris a Mac OS X) tienen base en un entorno de texto del estilo de DOS pero de potencia varios órdenes de magnitud mayor. Se ha comparado al paso del viejo DOS a Linux como cambiar "un parapente por un F117". Actualmente, varios grupos de programadores están intentando acercar Linux al usuario acostumbrado a interfazs gráficas, por lo que nacieron los entornos gráficos: GNOME, KDE y otros. Sin embargo, la base de todas las distribuciones Linux es y será siempre la consola, y esto implica ventajas grandes sobre otros entornos:

  • Todo es un archivo: esto simplifica mucho la manipulación de archivos, directorios, enlaces y dispositivos, ayudando a crear scripts, a montar particiones, etc.
  • Separación de forma y función, que permite que la gente se dedique a lo que realmente le interesa (diseño de programas o diseño de interfazs, para todos los gustos)
  • Modularidad, que implica gran versatilidad y herramientas cuyo total es más que la suma de las partes
  • Simplicidad: aliada de la modularidad, permite herramientas pequeñas que cumplen una función y lo hacen bien
  • Y otras que pueden encontrar si gustan leyendo el libro "The Art of Unix Programming", escrito por Eric Raymond (uno de los gurúes más famosos del mundo Open Source) y disponible para leer online desde CATB.org.

Aunque es posible que usted no la use jamás (algo cada vez más común), conocer al menos las bases de su uso puede ahorrarle gran cantidad de tiempo de trabajo, o ayudarle a resolver un problema serio.

Aclaremos desde ya que usaremos los términos terminal y consola como sinónimos, y su significado será una de las pantallas de modo texto que obtiene presionando las combinaciones de teclas Control + Alt + F1 a Control + Alt + F6, y en ellas ingresando su nombre de usuario y password. Su entorno gráfico sigue andando, y puede volver a él en cualquier momento usando la combinación Control + Alt + F7. Pero también se puede acceder a la línea de comandos de otra manera: si usa un entorno gráfico, puede abrir una terminal gráfica o terminal virtual, una ventana con un prompt 1 desde la cual trabajar. Esto tiene la ventaja de poder usar la técnica extra de copiado/pegado con el mouse: seleccione el texto y péguelo con un click del botón medio del mouse. Si tiene un mouse de dos botones, haga click con ambos a la vez.

En esa ventana o pantalla usted ve lo que se conoce como shell, o intérprete de comandos. El shell de DOS y Windows estaba en el archivo COMMAND.COM, y daba acceso a comandos como dir, tree, cd, etc. Aquí el shell más común es BASH (lo llamaremos Bash), un acrónimo de Bourne Again Shell ("Otra vez el shell de Bourne", pero también "Shell renacido" por el parecido entre las palabras born y bourne). Bourne fue el diseñador de uno de los shells más conocidos, sh). Bash es un shell muy completo, con comandos para montones de tareas, capacidad de crear scripts bastante potentes, un manual excelente y autocompletado de comandos y rutas, además de tener un historial.

Particularidades del shell

En modo texto, el shell es lo que funciona en una terminal y permite a usted, el usuario, comunicarse con el sistema. El shell le presenta un prompt luego de conectarse (como dijimos antes, cuando hablamos de "conectarse" nos referimos a "iniciar una sesión como usuario") o al abrir una terminal virtual. El prompt consiste en varias partes, que indican: con qué usuario se conectó, la PC en la que está trabajando (algo importante en una red) y el directorio actual. Debajo vemos un par de ejemplos de prompts (lo mostramos antes, pero vale la pena repetirlo):

[rogelio@Edhellond rogelio]$

Como vemos, el usuario rogelio está conectado a la PC Edhellond y su directorio actual es rogelio. El prompt también incluye un símbolo de usuario, tradicionalmente el signo "pesos": $. Otro ejemplo:

[root@Edhellond root]# 

Ahora nos hemos conectado como el usuario root (el superusuario, o administrador), y nuestro directorio es root. Note que el símbolo de prompt ha cambiado a #. Ese es el símbolo tradicional que representa al superusuario en una consola.

Primero y principal: en Linux, los comandos suelen ser en minúsculas, y definitivamente el shell distingue entre mayúsculas y minúsculas. Escribir cd no es lo mismo que CD o Cd. El primer comando cambia al directorio personal, los otros no hacen nada.

A menos que especifique una ruta, un comando se aplica al directorio indicado en el prompt: ejecutar unzip /usr/zip/archivo.zip descomprime al directorio en que está usted, no al directorio /usr/zip.

Como dijimos en la introducción, Bash tiene un historial de los comandos ingresados. Pulse la tecla cursor arriba para ver los comandos anteriores. Dependiendo de la configuración del sistema se almacenarán más o menos comandos. Además, cuando está escribiendo comandos o rutas de directorios (incluso rutas dentro de un comando) pulse la tecla Tab para ver si el sistema reconoce lo que escribe. Un ejemplo:

[rogelio@Edhellond rogelio]$ ls /usr/
bin       export    InfoBase  local     share     X11R6     
doc       games     java      man       src       
etc       include   lib       sbin      tmp       
[rogelio@Edhellond rogelio]$ ls /usr/e
etc     export  
[rogelio@Edhellond rogelio]$ ls /usr/e

En la primera vez, escribimos ls /u y presionamos Tab, lo que completó automáticamente /usr. Luego dimos Tab nuevamente para ver todo lo que contiene el directorio. Por último, escribimos la letra e (ls /usr/e) y volvimos a presionar Tab, y el sistema nos devolvió los dos directorios dentro de /usr que comienzan con esa letra.

Tengan cuidado: si escriben una ruta sin un comando antes, el completado no incluirá archivos, sólo directorios. Por ejemplo, vea la diferencia entre pulsar Tab en los dos casos que siguen:

[rogelio@Edhellond rogelio]$ ./
.bbconf          .gimp-1.2        .kde             .vnc
.bbtools         .gkrellm2        .mc              docs
.blackbox        .gnome           .mcop            tmp
.dockapps        .gnome-desktop   .mozilla         xcdroast
.gconf           .gnome2          .nautilus        
.gconfd          .gnome2_private  .qt              

[rogelio@Edhellond rogelio]$ vi ./
.ICEauthority      .drakfw            .gtkrc-1.2-gnome2  .vnc
.Xauthority        .esd_auth          .gtkrc-2.0         .xauthr6TrnB
.bash_history      .fonts.cache-1     .gtkrc-kde         .xinitrc
.bash_logout       .gconf             .kde               .xinitrc~
.bash_profile      .gconfd            .mailcap           .xscreensaver
.bashrc            .gimp-1.2          .mc                .xsession-errors
.bbconf            .gkrellm2          .mcop              borrados.log
.bbkeysrc          .gnome             .mozilla           docs
.bbtools           .gnome-desktop     .nautilus          tmp
.blackbox          .gnome2            .qt                xcdroast
.blackboxrc        .gnome2_private    .screenrc          
.dockapps          .gtkrc             .viminfo           
[rogelio@Edhellond rogelio]$ vi ./

En el segundo caso vemos muchas más entradas: todos los archivos que antes estaban ocultos.

Un problema puede ocurrir si quiere acceder a un directorio cuyo nombre tiene espacios. En este caso, para acceder a él debe escribir una \ delante del espacio ¿Por qué? Porque un espacio normalmente indica que lo que le sigue es otro argumento, u orden. Esa barra dice "¡Cuidado, esto es sólo un espacio dentro de un nombre completo!"

Le damos un ejemplo: esto se cumple no sólo para cd sino para cualquier comando de BASH que acepte nombres de archivo como parámetro. En el caso de, por ejemplo, mkdir (crear un directorio), el comando
mkdir los documentos
crearía dos directorios, no uno. Lo correcto es
mkdir los\ documentos.

Pulsar Tab en un prompt en blanco le informará de un cierto número de alternativas para mostrar: todos los comandos del sistema disponibles. Sin embargo, pulsar Tab otra vez no es una idea muy buena para memorizar comandos: sólo verá una larga lista correr muy rápidamente, sin explicaciones. Para ver los comandos del shell y su uso, lo adecuado es usar los comandos man bash o info bash. El primero es el manual estándar, el segundo un sistema de ayuda más completo y en forma de hipertexto.

Por último, esto sigue sin ser DOS. En este caso particular, queremos decir que puede desplazarse por lo que escribe hacia atrás y adelante, e incluso usar las teclas Inicio y Fin, que el comando que está definiendo puede abarcar varias líneas, y que puede pulsar Enter para ejecutar con el cursor en cualquier parte del comando.

Con esto ha aprendido algunos trucos estándar del shell. Ahora, veamos comandos con los que aplicarlos.

Comandos

cd

Este es un comando simple, pero con algunos trucos que lo hacen interesante (o exasperante, según le toque). Es una buena introducción al uso de la línea de comandos, y aprovecharemos la simplicidad para enseñarle trucos generales.

Para empezar, ejecutar el comando cd "a secas" lo llevará a su directorio personal (es decir, /home/usuario, o /root en el caso del superusuario). Para el resto de los casos, cd funciona como el comando de DOS (en realidad, es al revés, pero dejemos el tema así).

Aquí debemos mencionar una particularidad del sistema muy importante a la hora de usar bash: el path, o camino. Puede usar las siguientes abreviaciones:
cd ./foo intenta ir al directorio foo dentro del directorio actual.
cd ../foo intenta ir al directorio foo dentro del directorio padre.
cd /foo intenta ir al directorio foo dentro del directorio raíz.
cd ~/foo intenta ir al directorio foo dentro del directorio personal, es decir /home/usuario/foo. Todo depende de que ese directorio exista, claro.

ls

ls sirve para LiStar directorios, es decir, cumple el trabajo del comando DIR de DOS, mostrando el contenido de un directorio o la existencia de un archivo. Su uso es:
ls -opciones archivo, donde archivo puede ser cualquier cosa: recuerde, esto es Linux, donde todo es un archivo, incluso un directorio.

Las principales opciones de ls son:

  • -R: lista recursivamente (es decir, muestra los contenidos de los directorios dentro del de inicio de búsqueda).
    Por ejemplo, ls -R *.txt
    busca todos los archivos .txt que existan en el directorio actual o dentro de sus subdirectorios.
  • -l : muestra detalles de cada archivo: permisos, tamaño, etc.
  • -a : muestra todos los archivos, incluso los ocultos. Mandrake Linux tiene un alias1 para ls -a: la
  • -k : muestra los tamaños de archivo en kilobytes, si usamos la opción -l o similares.
  • -C : muestra el resultado en columnas
  • -F : agrega * a los ejecutables, / a los directorios, etc. Es decir, hace a los atributos de cada archivo (lo que puede hacerse con él, como leerlo, escribir en él o ejecutarlo) un poco más evidentes.

De nuevo, recuerde respetar el uso de minúsculas o mayúsculas que hacemos.

Obviamente, las opciones pueden combinarse:

[rogelio@Edhellond .blackbox]$ ls -la
total 8
drwxr-xr-x    4 rogelio  rogelio       136 sep 30 18:49 ./
drwxr-xr-x   23 rogelio  rogelio      1360 oct 22 11:09 ../
drwxr-xr-x    3 rogelio  rogelio       776 oct  7 10:18 backgrounds/
-rw-r--r--    1 rogelio  rogelio       564 jul 13 10:38 blackbox-menu
drwxr-xr-x    2 rogelio  rogelio       464 sep 30 18:49 styles/
[rogelio@Edhellond .blackbox] ls
backgrounds/  blackbox-menu  styles/
[rogelio@Edhellond .blackbox]$

¿Nota la diferencia?
ls, como muchos otros comandos, reconoce comodines como * y ?. Vea los ejemplos que siguen:

[rogelio@Edhellond docs]$ ls
3 archivo  archivo2  archivo3  archivo3.txt  archivo4.txt  archivo.txt

Primera pasada, vemos todos los archivos no ocultos.

[rogelio@Edhellond docs]$ ls *3*
3 archivo3  archivo3.txt

Segunda, listamos todos los archivos cuyo nombre contenga un 3.

[rogelio@Edhellond docs]$ ls *.txt
archivo3.txt  archivo4.txt  archivo.txt

Tercera pasada, listamos todos los archivos terminados en txt

[rogelio@Edhellond docs]$ ls archivo?*
archivo2  archivo3  archivo3.txt  archivo4.txt  archivo.txt

Cuarta, buscamos todos los archivos que comiencen con la frase "archivo" y que tengan al menos un caracter más (? es comodín para un caracter, * es comodín para cero o más caracteres). Note que no aparece listado "archivo".

[rogelio@Edhellond docs]$ ls archivo? 
archivo2  archivo3

Ultima prueba: todos los archivos que comiencen con la frase "archivo" y tengan un solo caracter más.
Con esto esperamos que haya comprendido las delicadezas de los comodines. No son los únicos, pero sí los más usados por lejos.
Para más información, use el comando man -a ls y diviértase. También puede usar un programa gráfico: KDE y GNOME tienen sus propios visores de archivos man. Pero el objeto de estos tutoriales es que se sepa desenvolver con el modo texto, si tiene necesidad o ganas.

mv, cp, rm

Algo bastante común es tener que mover o copiar archivos de un directorio a otro, o renombrarlos. Para eso tenemos a mv (MoVe) y cp (CoPy). Note que también puede usar a mv para renombrar archivos, ya que es eso lo que está haciendo al renombrar: mover un archivo de una dirección (su nombre) a otra. El uso de ambos comandos es sencillo:

[rogelio@Edhellond docs]$ mv archivo ./foo
[rogelio@Edhellond docs]$ mv -v archivo.txt ./foo
`archivo.txt' -> `./foo/archivo.txt'

En estas dos pasadas vemos cómo mover un archivo a un directorio, foo, inmediatamente inferior al nuestro. La opción -v muestra información sobre el proceso.

[rogelio@Edhellond docs]$ mv -v archivo2 archivo3 foo
`archivo2' -> `foo/archivo2'
`archivo3' -> `foo/archivo3'

Aquí movimos dos archivos a la vez al mismo directorio. Aunque esto es posible, en este caso hubiese sido más cómodo lo siguiente:

[rogelio@Edhellond docs]$ mv -v archivo? foo
`archivo2' -> `foo/archivo2'
`archivo3' -> `foo/archivo3'

En el ejemplo de arriba usamos el comodín ?. Otros usos de mv: mover un directorio a otro:

[rogelio@Edhellond docs]$ mv foo/ bar/
[rogelio@Edhellond docs]$ ls bar
archivo4  foo/

Como ve, desplazamos el directorio foo y su contenido adentro del directorio bar. Si lo que quería es mover los archivos del directorio foo (su contenido), el comando debería haber sido mv foo/* bar/. Esto moverá también otros directorios que puedan haber dentro de foo/.

Normalmente, si quiere mover o renombrar un archivo y el nombre de archivo resultante ya existe en el directorio de destino, el programa se lo hará saber. Si quiere, puede forzar la operación con la opción -f, pero tenga cuidado: el borrado de archivos en Unix es generalmente definitivo. Por ejemplo (creamos otro archivo llamado "archivo2"):

[rogelio@Edhellond docs]$ mv archivo2 foo/
mv: ¿sobreescribir `foo/archivo2'? (s/n)

Puede tener lo mejor de dos mundos con la opción -b, que hace copias de seguridad de los archivos que serán sobreescritos:

[rogelio@Edhellond docs]$ mv -fb archivo2 foo/
[rogelio@Edhellond docs]$ ls foo
archivo  archivo2  archivo2~  archivo3  archivo.txt

Como verá, la copia de seguridad lleva un ~ al final. Puede cambiar esto, pero le dejamos como tarea aprender cómo (pista: man mv).

El comando cp es semejante, pero deja una copia de los archivos en el directorio origen, y por defecto no copia directorios de lugar. Para hacerlo, use la opción -F. Otra opción que puede interesarle es --parents, que copia un archivo y todos sus subdirectorios al destino:

[rogelio@Edhellond docs]$ cp --parents /usr/export/music/U2/Zoo\ Station.mp3 bar/
[rogelio@Edhellond docs]$ ls -R bar/
bar/:
usr/

bar/usr:
export/

bar/usr/export:
music/

bar/usr/export/music:
U2/

bar/usr/export/music/U2:
Zoo Station.mp3

Con lo que además vemos la opción -R (listar recursivamente) de ls

Por último, nos queda rm (ReMove, borrar), el comando para borrar archivos. Las opciones principales -y también las más peligrosas- de rm son -r y -f. Vimos antes que -f es "forzar" la acción, es decir, hacer que el shell no pida confirmaciones. -r es descender recursivamente a subdirectorios. Con rm -rf puede fácilmente cometer estupideces, por lo que algo recomendable es que escriba las opciones al final del argumento, y que lea lo que escribe. A todos nos ha pasado alguna vez, pero no es excusa para volver a hacerlo. Un ejemplo:

[rogelio@Edhellond docs]$ rm -r foo
rm: ¿descender al directorio `foo'? (s/n) s
rm: ¿descender al directorio `foo/bar'? (s/n) s
rm: ¿borrar el fichero regular vacío `foo/bar/mis polainas'? (s/n) s
rm: ¿borrar el directorio `foo/bar'? (s/n) s
rm: ¿borrar el fichero regular vacío `foo/mis polainas'? (s/n) s
rm: ¿borrar el directorio `foo'? (s/n) s

Eso con la opción -r. Usar -rf habría hecho lo mismo sin preguntas.

cat y less

Cat y less son dos comandos que tal vez no use demasiado en un primer momento, pero que son increíblemente útiles. cat concatena (une uno detrás de otro) archivos o cadenas de texto y los envía a la salida estándar (la pantalla) o a un archivo. En casos más esforzados, puede imprimir directamente dirigiendo la salida de cat a la impresora (cat foo.txt > /dev/lpr), o incluso tocar archivos de sonido enviando el output a la placa de sonido (cat audio.wav > /dev/dsp). Vemos aparecer aquí un nuevo símbolo, el redireccionador >, del que hablaremos después.

Para escribir un archivo corto de texto, simplemente siga el ejemplo:

[rogelio@Edhellond docs]$ cat > archivo
Esto es lo que contendrá el archivo llamado *archivo*. 
Pulse Enter para grabar lo escrito.
Pulse Control + D para terminar

Como verá si hace la prueba, al dar el comando pasa a una línea en blanco. Siga las instrucciones del texto. Al terminar y salir ejecute el comando less archivo para ver el texto, o simplemente ejecute:

[rogelio@Edhellond docs]$ cat archivo 
Esto es lo que contendrá el archivo llamado *archivo*.
Pulse Enter para grabar lo escrito.
Pulse Control + D para terminar
[rogelio@Edhellond docs]$

Como verá, cat sirve tanto para crear como para leer archivos cortos en pantalla. Pero el uso no termina acá: creemos un nuevo archivo con cat:

[rogelio@Edhellond docs]$ cat > archivo2
Este es el segundo archivo de texto.
Veamos que pasa ahora al usar cat con los dos archivos

Ahora ejecute lo siguiente:

[rogelio@Edhellond docs]$ cat archivo archivo2 > archivo3

Y para terminar:

[rogelio@Edhellond docs]$ cat archivo3
Esto es lo que contendrá el archivo llamado *archivo*.
Pulse Enter para grabar lo escrito.
Pulse Control + D para terminar
Este es el segundo archivo de texto.
Veamos que pasa ahora al usar cat con los dos archivos

Puede ver que el comando cat archivo archivo2 > archivo3 empezó a hacer uso del nombre de cat: concatenó (unió) el contenido de los dos archivos y lo guardó en un tercero.

Hablemos ahora del símbolo > y su hermano >>. Así como vimos que > cambia la salida estándar por otro archivo, debe saber que lo hace sobreescribiendo el contenido anterior del archivo destino. Para que el contenido simplemente se agregue al archivo use >>. Un uso de estos símbolos es cuando esté compilando: si no quiere ver todas las líneas de información, puede redirigir la salida del comando make al directorio /dev/null, el "pozo sin fondo" del sistema. Otros trucos: así como > (o 1>) redireccionan la salida estándar, 2> redirecciona la salida de errores (puede ser la pantalla o no). Un ejemplo: si le interesara conservar los errores de la compilación de un programa por separado para enviar por mail, podría hacer lo siguiente:

make 2>> errores.log

Nos queda hablar de less. Este es un visor de archivos de texto (de cualquier tipo). Simplemente use less archivo para ver el contenido en pantalla, y desplácese con el cursor. Para salir use la tecla q.

top y ps

A veces querrá saber qué y cómo se está ejecutando en su PC. Para esto tenemos a top y a ps. El primero significa Table Of Processes (Tabla de procesos), se ve como en la imagen, y muestra todos los procesos corriendo (o al menos los que quepan en la ventana) con indicaciones como el número de proceso, la memoria utilizada, la carga de procesador, etc:

Bash - Top
El programa top

Vemos que, desde arriba, top muestra la hora, las tareas corriendo, el uso de CPU y memoria, y luego los comandos corriendo para cada usuario. Puede ordenar la lista de acuerdo a varios parámetros: uso de memoria (M), uso de CPU (P), o simplemente pasar de un orden a otro con < y >. También puede filtrar los procesos de un único usuario con la tecla u y el login del usuario, y lo mejor, puede matar procesos con la tecla k y el PID o número de proceso. Puede salir de top pulsando q .

El comando ps hace algo parecido, pero más simple: nos muestra los procesos con su PID (Process ID, número de proceso). Ejemplos:

[rogelio@Edhellond docs]$ ps
  PID TTY          TIME CMD
 2977 pts/1    00:00:00 bash
 4009 pts/1    00:00:00 ps
[rogelio@Edhellond docs]$ ps -a
  PID TTY          TIME CMD
 1871 vc/1     00:00:00 startx
 1882 vc/1     00:00:00 xinit
 1894 vc/1     00:00:00 blackbox
 1896 vc/1     00:00:01 bbkeys
 1897 vc/1     00:00:00 bbpager
 1899 vc/1     00:00:01 gkrellm
 1901 vc/1     00:00:01 xscreensaver
 1916 vc/1     00:01:04 opera
 1920 vc/1     00:01:19 bluefish
 1956 vc/1     00:00:00 opera

... Y la lista sigue. ps da los procesos de un usuario corriendo en una terminal. ps x da los procesos de ese usuario que no dependen de una terminal. ps a muestra los procesos de todos los usuarios corriendo en terminales. Y ps ax es el más completo. Note que como ps no se puede usar con archivos, no lleva guión antes de las opciones. Una última opción: ejecute ps fa para ver los comandos ordenados en árbol,con los procesos hijos desencadenándose desde los padres:

[rogelio@Edhellond docs]$ ps fa 
  PID TTY   STAT TIME COMMAND
 1835 vc/1  S    0:00 -bash
 1871 vc/1  S    0:00  \_ /bin/sh /usr/X11R6/bin/startx
 1882 vc/1  S    0:00      \_ xinit /home/rogelio/.xinitrc
 1894 vc/1  S    0:00          \_ blackbox
 1901 vc/1  S    0:01              \_ xscreensaver

... La lista es más larga, claro.

kill

Ya empezamos a meternos en terrenos complejos, pero alguien tiene que hacerlo. kill es el comando que permite detener o matar procesos. Si alguna de sus aplicaciones gráficas se cuelga y no hay manera de cerrarla, el método clásico y violento de hacerla terminar es la orden kill -9 PID o su hermano killall -9 comando. Ambos pueden ser usados más "gentilmente", simplemente usándolos sin la señal -9. Algunos entornos incluyen una aplicación gráfica, xkill, que muestra un puntero que "mata" la ventana de la aplicación colgada.

su y exit

Ultimo comando antes de seguir con el tutorial intermedio: el comando su permite conectarse como otro usuario. Un ejemplo: usted, conectado como el usuario rogelio, necesita instalar un programa o editar un archivo. Para hacer estas tareas, necesita acceder a ellos como el usuario root. El comando su le permite cambiar de usuario para hacer esto:

[rogelio@Edhellond rogelio]$ su
Password: 
[root@Edhellond rogelio]#

Si ejecuta el comando a secas, se le pedirá el password de root. El password no se mostrará en pantalla mientras escribe por razones de seguridad, pero si se da cuenta de que se equivocó al escribirlo puede corregirlo borrando.

Su permite a un usuario conectarse como otro usuario, pero deberá conocer su password para esto. La manera es simple:

[rogelio@Edhellond rogelio]$ su marcos
Password: 
[marcos@Edhellond rogelio]$

Aquí el usuario rogelio se ha conectado como marcos. Note algo importante: el usuario sigue en el mismo directorio que antes, y en realidad algunas otras cosas tampoco han cambiado. Usar así el comando su no es igual a desconectarse y reconectarse como el otro usuario: se mantienen intactas algunas variables de entorno. A veces esto es útil, y otras veces no. Para los casos en que quiera cambiar más definitivamente, use la opción -:

[rogelio@Edhellond rogelio]$ su - marcos
Password: 
[marcos@Edhellond marcos]$

Note cómo ahora estamos en el directorio personal del usuario marcos.

Para salir de la conexión como otro usuario (o de cualquier conexión a shell) puede usar el comando exit o la combinación Control + D. Si cierra su conexión con el usuario original, volverá al login si estaba en una consola o cerrará la terminal virtual en un entorno gráfico.

Con esto hemos terminado de hablar de los comandos que un usuario común puede necesitar todos los días. Sin embargo, el uso de bash no acaba de empezar. Si de todos modos prefiere algo un poco más gráfico, le recomendamos una herramienta imprescindible: instale y pruebe el programa Midnight Commander (comando mc), ¡es espectacular! Si conocía el viejo Norton Commander, se sentirá a gusto en esta aplicación. Le sugerimos ahora que pase al tutorial intermedio de Bash.


1 Un alias es un "acceso directo" de consola, es decir, un comando que dirige a otro. Veremos cómo definir aliases en el tutorial de scripts.

Contactarme - Contattarmi

Ningún dato es necesario, salvo antispam y el texto del mensaje.

Nessun dato è necessario, aparte antispam e il testo del messaggio.

Si tienes problemas con el formulario, escríbeme a la dirección de correo en la imagen:

Se hai problemi usando il form, scrivi all'email nell'immagine:

mailto image

Nombre / Nome
Email
Subject
Anti Spam: 2 + 2 =
Texto / Testo