• No results found

3.2 Greenhouse gas emissions by sector

3.2.7 Reporting under Article 3, paragraphs 3 and 4,

En FreeBSD, gran parte del trabajo diario se realiza a través de un interfaz de la linea de órdenes llamado "shell". El principal trabajo del shell es recoger órdenes del canal de entrada y ejecutarlas. Muchos shells tienen también integradas funciones para ayudarnos en las tareas cotidianas tales como la manipulación de archivos, edición de líneas de órdenes, macros de órdenes, expansión de expresiones regulares en nombres de archivo y variables del sistema. FreeBSD viene con un conjunto de shells, como sh, el shell Bourne y csh, el shell C. Hay disponibles muchos otros shells en la "FreeBSD Ports Collection" que son mucho más potentes, como bash y tcsh.

¿Qué shell usar? Es cuestión de gustos. Si se es programador de C se puede sentir más cómodo con tcsh, un shell con una sintaxis similar al C. Si se proviene del mundo Linux o se es nuevo en el interfaz de órdenes de Unix, se puede probar con bash. El asunto es que cada shell posee unas propiedades únicas que pueden o no funcionar con el entorno de trabajo preferido y se ha de efectuar una elección sobre el shell a usar.

Una de las propiedades comunes de un shell es que completa los nombres de archivo. Dada la introducción de las primeras letras de una orden o del nombre de un archivo, se puede hacer que el shell complete automáticamente el resto de la orden o el nombre del archivo pulsando la tecla TAB. Aquí va un ejemplo. Supongamos que se tienen dos archivos llamadosfoobaryfoo.bar. Se quiere borrarfoo.bar. Lo que habría que teclear es:rm

fo[TAB].[TAB].

El shell nos mostraríarm foo[BEEP].bar.

El [BEEP] es el pitido de consola (console bell): es el shell diciéndonos que fue incapaz de completar totalmente el nombre de archivo porque hay más de una coincidencia. Tantofoobarcomofoo.barcomienzan porfo, pero solo se pudo completar hastafoo. Si se teclea., y de nuevo TAB, el shell será capaz de introducir el resto del nombre por nosotros.

Otra función del shell son las variables de entorno. Las variables de entorno son parejas de valores clave

almacenados en el espacio de entorno del shell. Este espacio puede ser leído por cualquier programa invocado por el shell y, por tanto, en él se encuentra bastante información relativa a la configuración de programas. Lo siguiente es una lista de las variables de entorno más comunes y su significado:

Variable Descripción

USER Nombre de usuario con el que se ha entrado al sistema.

PATH Lista de directorios, separada por puntos y coma, en los

que se busca ejecutables.

DISPLAY Nombre en la red de la pantalla de X11 a la que

conectarse, si se encuentra disponible.

SHELL El shell actual.

TERM El nombre del terminal del usuario. Se usa para

determinar las posibilidades del terminal de datos.

TERMCAP Base de datos donde encontrar los códigos de escape

necesarios para realizar diferentes funciones en el terminal.

OSTYPE Tipo de sistema operativo. Por ejemplo, FreeBSD.

Capítulo 3. Conceptos Básicos de Unix

Variable Descripción

MACHTYPE Arquitectura de la CPU en la que el sistema se está

ejecutando.

EDITOR El editor de texto preferido por el usuario.

PAGER El paginador de texto preferido por el usuario.

MANPATH Lista de directorios en los que se busca páginas de

manual, separados por puntos y coma.

Visualizar o establecer una variable de entorno difiere ligeramente de shell a shell. Por ejemplo, en los shells al estilo C como tcsh y csh, se usaríasetenvpara establecer y visualizar las variables de entorno actuales. Siguiendo el ejemplo, para establecer o modificar el valor deEDITOR, bajo csh o tcsh una orden como la siguiente establecería el valor deEDITORa/usr/local/bin/emacs:

% setenv EDITOR /usr/local/bin/emacs

Bajo los shells tipo Bourne (Bourne Shells):

% export EDITOR="/usr/local/bin/emacs"

También se puede hacer que la mayoría de los shells muestren el contenido de una variable de entorno situando el carácter$delante del nombre de la variable desde la línea de órdenes. Por ejemplo,echo $TERMmostrará cualquiera que sea el valor que se le haya establecido aTERM, porque el shell expande el valor deTERMy se lo pasa al programa echo.

Los shells manejan muchos caracteres especiales, llamados meta-caracteres, como representaciones especiales de datos. El mas común es el carácter*, que representa cualquier número de caracteres en un nombre de archivo. Estos meta-caracteres especiales se pueden usar para la expansión de nombres de archivos. Por ejemplo, teclearecho *es casi lo mismo que introducirlsporque el shell recoge todos los archivos que coinciden con*y se los pone en la línea de órdenes a echo para que los vea.

Para evitar que el shell interprete estos caracteres especiales, se pueden salvar poniendo el carácter contrabarra (\) delante de ellos.echo $TERMmuestra cualquiera que sea el valor establecido para el terminal que estamos usando.

echo \$TERMmuestra$TERMtal cual.

3.4.1. Cambiando de shell

La manera más fácil de cambiar de shell es usando la ordenchsh. Al ejecutarchshse nos situará dentro del editor de texto que figure en la variable de entornoEDITORo, de no estar configurada, se nos abrirávi. Cámbiese la línea “Shell:” adecuadamente.

También se le puede suministrar achshla opción-s; ésto establecerá el shell por nosotros sin necesidad de entrar en el editor de texto. Por ejemplo, si se desea cambiar el shell a bash, lo siguiente realizará el ajuste:

% chsh -s /usr/local/bin/bash

Ejecutarchshsin parámetros y cambiar el shell desde allí tambien funcionaría.

Nota: El shell que se desee usar debe figurar en el archivo/etc/shells. Si se ha instalado un shell desde la colección de ports, entonces esto ya se habrá realizado. Si se ha instalado manualmente el shell, se debe realizar el cambio pertinente.

Capítulo 3. Conceptos Básicos de Unix

Por ejemplo, si se instaló manualmentebashy se situó en/usr/local/bin, debería hacer:

# echo "/usr/local/bin/bash" >> /etc/shells

Y entonces volver a ejecutarchsh.