# La Línea de Comandos de Ubuntu Server

Push nta:"&" server.Shell

## Línea de Comandos de Ubuntu Server

Usted debe saber que las versiones de Ubuntu en workstations (computadoras de trabajo) tienen escritorios gráficos muy accesibles. Sin embargo no es el caso para Ubuntu Server (Ubuntu puede ser Ubuntu Server si se le instala los paquetes necesarios para un servidor). Usted no podrá administrar un servidor propiamente sin usar la línea de comandos, es absolutamente necesario usar la interfaz Bash para esto. Una vez que uno sea un master usando la línea de comandos verá que es muy poderosa y no extrañará la interfaz gráfica.

## Trabajando como root

Por defecto, cada instalación del sistema Linux crea una cuenta con el nombre root. Muchas distribuciones de Linux piden una contraseña para esta cuenta durante la instalación.
Ubuntu Server no lo hace, en cambio toma un acercamiento radicalmente diferente para ejecutar las tareas privilegiadas. Esto es porque Ubuntu Server maneja de manera diferente el acceso privilegiado. Por defecto, el usuario root no tiene una contraseña, y usted no podrá iniciar sesión ni trabajar como root en la forma convencional, pero usted necesita ejecutar muchas tareas que requieren privilegios de root. Para este propósito, Ubuntu ofrece el mecanismo sudo. Con sudo los usuarios normales pueden ejecutar tareas que requieren privilegios de root. Y es muy simple: para cada comando que necesite permisos de root, usted debe tipear sudo primero. Por ejemplo, considerando que el usuario root puede ingresar passwd linda para cambiar la contraseña de linda, un usuario normal debe ingresar sudo passwd linda.
En la instalación por defecto, cualquier usuario puede usar sudo para ejecutar tareas como root. Como puede suponer, no se trata de una situación segura. Tal que una de las primeras cosas que tiene que hacer es limitar este privilegio.

## Quiere trabajar como root?

Use el comando sudo su, y será root. Seguramente necesitará introducir su contraseña de usuario.Tal vez usted quiera trabajar como root de todas maneras, esto es posible, dándole una contraseña a root, use el comando sudo passwd root, introduzca una contraseña para root y luego simplemente use el comando su e ingrese la contraseña de root y podrá ser root.

## Trabajando con el Shell

Ubuntu Server usa el kernel para direccionar y controlar el hardware de la máquina. El kernel puede ser considerado como el corazón del sistema operativo. Ubuntu Server da a los usuarios la interfaz shell para ordenar al kernel y los servicios lo que deben hacer. Esta interfase interpreta los comandos que los usuarios ingresan y los traduce en código de máquina. Muchos shells están disponibles. El primerizo de los shells que fue creado por UNIX, en los 70's, fue el Bourne shell. Aún disponible en Linux en el archivo programa /bin/sh. Otro shell popular disponible en Ubuntu es Bash (forma corta de Bourne Again Shell). El Bash shell es completamente compatible con el Bourne shell original, pero tiene muchos perfeccionamientos. Bash es usado como el shell para el usuario root, pero no para usuarios normales. Usted puede, sin embargo, hacer que todos los usuarios lo tengan por defecto, tanto que se recomienda altamente porque ofrece grandes funciones. Claro que usted debe ser consciente que otros shells están disponibles también. algunas personas prefieren usar otros shells, tres de los que brevemente mencionaremos aquí:
tcsh: Un shell con un lenguaje scripting que trabaja como la programación en lenguaje C (y así justamente popular entre los programadores de C).
zsh: Un shell que es compatible con Bash, pero ofrece más funciones.
sash: Stand-alone shell (shell de soporte). Este es un shell mínimo que corre en la mayoría de ambientes. Es así muy conveniente para sistemas reparadores de averías.

# Usando Bash para Mejor Efecto

Básicamente, en el ambiente Bash, un administrador está trabajando con comandos de texto. Un ejemplo de esto es el comando ls, que puede ser usado para mostrar una lista de archivos en un directorio. Bash tiene algunas funciones para hacer el trabajo con estas líneas de comandos tan fácil como sea posible. Algunos shells ofrecen la opción de completar un comando automáticamente. Bash tiene ésta característica, pero hace más que completar comandos. Bash puede completar todo casi todo, no sólo comandos, también nombres de archivos y variables del shell.

## Usando el Completamiento Automático de Comandos

Es tan simple como presionar la tecla Tab. por ejemplo, la línea de comando cat es usada para mostrar los contenidos de un archivo de texto ASCII. El nombre de este archivo, que esta en el directorio actual, es este_es_un_archivo. Para abrir este archivo, el usuario puede ingresar cat est y luego presionar la tecla Tab. Si el directorio tiene sólo un archivo que empieza con las letras e-s-t, Bash automáticamente completa el nombre del archivo. Si el directorio tiene otros archivos que empiezan con las mismas letras, Bash completará el nombre del archivo como sea posible. Por ejemplo, digamos que hay un archivo en el directorio actual con el nombre este_es_un_archivo_de_texto y otro llamado esteTambienEsUnArchivo. Como ambos archivos son iguales hasta el texto este, Bash completará sólo hasta este y no más. Para mostrar una lista de posibilidades, presione la tecla Tab de nuevo. Esto le permitirá manualmente introducir más información. Y por supuesto podrá usar la tecla Tab de nuevo para usar el completamiento. Otro ejemplo es cuando usted sólo recuerda que el comando para administrar los volúmenes lógicos en su servidor empieza con lv, y no recuerda más, pero si presiona la tecla Tab dos veces; le resultará una lista de comandos que empiezan con lv y usted podrá seguramente reconocer el que necesita.

## Trabajando con Variables

Un variable es simplemente un valor común que es usado bastante a menudo por el shell que es guardada con un nombre. Un ejemplo de variable es PATH, que guarda una lista de directorios que debe ser buscado cuando un usuario ingresa un comando. para referirnos al contenido de una variable, prefijar un signo $ antes del nombre de la variable. Por ejemplo, el comando echo $PATH muestra el contenido de la búsqueda actual de la ruta de acceso (path) que Bash esta usando. En cualquier sistema Linux, usted tendrá realmente unas pocas variables automáticamente. Para una descripción de todas ellas, puede usar el comando env (forma corta de environment). Abajo mostraremos los resultados de este comando.
Normalmente, como usuario, conseguirá sus variables automáticamente cuando inicie sesión en el sistema. La fuente más importante de las nuevas variables es el archivo /etc/profile, un script que es procesado por cada usuario que inicia en el sistema. Quiere agregar una nueva variable? Agréguela en la parte final del archivo /etc/profile para cerciorarse que es una variable para todos los usuarios.

## Trabajando con el Historial de Bash

Otra función útil del shell Bash es la función historial, que recuerda y le permite la reutilización de comandos que usó recientemente. Por defecto, los últimos 1000 comandos son recordados. Esta función es útil para sesiones más allá de la actual. un archivo, nombrado .bash_history, es creado en el directorio de cada usuario, y este archivo graba los 1000 comandos que cada usuario ha ingresado. Usted puede ver todos estos comandos ingresando history en la línea de comandos. Abajo un ejemplo de esto.
Tal vez ya notó que usando las flechas arriba/abajo o las teclas page up/down puede también ver el contenido del historial. Cumplen la misma función las combinaciones Ctrl+p/Ctrl+n. Volvamos al ejemplo, ahí es donde el historial se vuelve muy útil porque usted puede reeditar cualquier comando de esta lista sin escribirlo todo de nuevo. Si usted quiere correr alguno de la lista de nuevo, simplemente ingrese el número precedido por un signo de exclamación. En este ejemplo, escribiendo !5 usted ejecutará aptitude show xen-source-2.6.16 de nuevo. Un usuario o usuaria puede borrar su historial usando el comando history. La más importante opción ofrecida por este comando interno de Bash es la opción -c, que borra el historial en cada usuario. Es especialmente útil porque cada cosa que un usuario tipea en el historial es recordada, incluyendo contraseñas! Entonces use history -c para cerciorarse que ha borrado el historial si usted prefiere que otros no sepan lo que ha estado haciendo; notará que usando la flecha arriba no le mostrará algún comando previo. Se le recomienda no escribir una contraseña en texto plano (escribir su contraseña sin que se la pidan) en primer lugar, porque todo se guarda en el historial incluso lo que no son comandos, caso contrario borre regularmente su historial.

## Administrando Bash con Secuencias de Teclas

A veces, usted ingresará unos comandos y pueda que no pase nada o también algo totalmente inesperado suceda. En estos casos, es bueno saber que algunas combinaciones o secuencias de teclas pueden mejorar las tareas de administración básicas en Bash. Aquí las más usadas.
Ctrl+C usa esta secuencia de teclas para salir de un comando que no responde o simplemente tarda mucho en completarse. Esta secuencia trabaja en la mayoría de escenarios donde el comando esta operando o muestra algo en la pantalla. Es también una buena opción cuando no hay ninguna pista de lo que está pasando y usted quiere que terminar con la ejecución del comando en el shell.
Ctrl+D Usada para enviar la señal “fin de un archivo” (EOF) a un comando. Use esto cuando el comando está esperando por más entradas, que es indicada por el prompt secundario (>). Usted también puede usar esta combinación para cerrar una sesión en el shell, y si ya cerró una sesión cerrará el shell.
Ctrl+R Esta es la función de búsqueda reservada. Abrirá el prompt “reserved I-search”, que le ayudará a localizar comandos que usó previamente. Esta combinación busca en el historial de Bash, y es especialmente útil cuando trabaja con comandos bien largos. Ingrese los primeros caracteres del comando y usted verá el último comando que ha usado que empieza con los mismos caracteres.
Ctrl+Z Se usa para parar un comando que está ejecutándose interactivamente en la consola en (primer plano). Sin embargo para el comando, no lo termina. El comando es simplemente pausado, así que usted podrá fácilmente empezarlo en un segundo plano con el comando bg o en el mismo plano (primer plano) usando también el comando bg. Para empezar el comando, necesita referirse al número de trabajo que el programa está usando. Puede ver una lista de los números de trabajo usando el comando job.
Ctrl+W Borra la última palabra escrita
Ctrl+U Borra toda la línea actual
Ctrl+L Realiza la misma tarea que al ejecutar el comando clear.