No. 3 de 3 de articulos. Linux

Articulos encontrados...

En la consola que nos ofrece el sistema, como se ha indicado anteriormente se visualiza el prompt el cual simplemente está esperando que se especifique la orden que se ha de ejecutar. Estas órdenes se suelen llamar comandos y hay que realizar cierta diferencia entre ellas, la principal es que existen comandos internos y externos.

Los comandos internos son aquellos que son nativos de la consola, es decir vienen integrados junto a la misma, hemos de recordar que la consola en si misma es un programa, normalmente “bash”. Estos comandos internos suelen ser los de uso más frecuente y los que suelen realizar las tareas más comunes. Por el contrario los comandos externos para poder ser accesibles han de estar instalados en el sistema, ya que en sí mismos son programas al igual que la consola y no vienen integrados en la misma, por lo tanto para ejecutarlos se han de llamar especificando normalmente su directorio de ubicación y nombre.

Es probable que muy a menudo se encuentre dependiendo de la distribución que utilice el mismo comando interno y externo, y en algunas ocasiones los resultados que producen los mismos pueden variar. Cuando se ejecuta un comando interno no hace falta especificar la ruta de acceso al comando, mientras que cuando se ejecuta uno externo si es necesaria, para evitar la incomodidad de teclear las rutas a los comandos externos se puede definir una variable de entorno denominada PATH, la cual permite especificar las rutas de acceso a comandos o programas de uso frecuente, evitando así el tener que teclear las rutas en el prompt del sistema.

Para visualizar las rutas definidas en la variable de entorno PATH, se puede utilizar el comando echo, el cual permite visualizar por consola información. En esta ocasión para realizar la visualización de las rutas, se ha de teclear el comando echo $PATH, obteniéndose como resultado algo similar a la siguiente imagen:

Como se puede observar el comando visualiza las rutas normalmente asignadas a los comandos externos en un sistema Linux, entre las cuales encontramos las siguientes:

/usr/local/bin

/usr/local/sbin

/usr/bin

/usr/sbin

/bin

/sbin

/usr/games

Estas que se muestran aquí son las rutas que por defecto ha asignado en la instalación del sistema Ubuntu. Hemos visto que la variable PATH contiene una lista de directorios separados por dos puntos. Estos son los directorios en los que el shell busca el comando que uno escribe desde el teclado. La búsqueda se hace en el orden en que están los directorios en la variable PATH.

Ejemplo:

nacho@ubuntu: ~$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/home/nacho/bin

Cuando se escribe un comando el shell buscará primero en /usr/local/bin, luego en /usr/bin, luego en/usr/bin/X11, luego en /usr/games y finalmente en /home/nacho/bin.
Desde el momento en que el shell encuentra el comando detiene la búsqueda y ejecuta el comando encontrado.

Se puede escribir un comando utilizando:

  • Su nombre
  • La ruta absoluta “/bin/cat”
  • La ruta relativa. Utilizando “.” O “..”

Siendo la representación de “.” el directorio actual y la representación “..” el directorio padre.

Al escribir un comando se puede encontrar en varias situaciones:

  • El comando es único y se encuentra en uno de los directorios
  • El comando no es único y se encuentra en varios directorios
  • El comando no se encuentra en ningún directorio

     

En el primer caso no existen muchos problemas ya que el comando se encontrara y ejecutara, en caso de producirse un error normalmente será debido a una sintaxis errónea, es decir se ha escrito mal el comando.

 

En el segundo caso como el comando puede ser que se encuentre en varios directorios debido a que no es la única variante del mismo instalada, el Shell hara uso del PATH, e ira buscando en orden por los directorios especificados, ejecutando el comando especificado en el primer directorio donde lo encuentre de los especificados en las rutas de acceso del PATH. Si se quisiera ejecutar una versión distinta del comando se tendría que especificar la ruta completa al mismo.

En el tercer caso el comando no se encuentra ni en el directorio actual, ni en ninguno de los especificados por PATH, por tanto o el comando se encuentra en otro directorio distinto, o no existe. Para solventar el problema o se teclea la ruta completa al comando en el primer caso, o si no existe se tendría que realizar en primer lugar la instalación del comando para poder ser utilizado. En ambos casos lo más normal es que el Shell muestre el mensaje de error de “Comando no encontrado”. También es posible que el comando que se esté invocando solo tenga permisos para ser ejecutado por el super usuario root y por tanto a nivel de usuario normal del sistema no permita su ejecución, para arreglar esta situación se ha de ejecutar el comando como super usuario.

Una forma de saber dónde se encuentra situado un comando es utilizar el comando whereis, el cual muestra los directorios donde se encuentra ubicado el comando. La siguiente imagen muestra el uso del comando whereis para localizar el comando cat.

 

La sintaxis del comando whereis es la siguiente:

 

El comando whereis se suele utilizar para localizar el archivo binario, el código fuente y la página del manual de un comando determinado.

 

whereis [opciones] comando


    Siendo las opciones:

 

-b    permite buscar solo el archivo binario

-s    permite buscar solo el código fuente

-m    permite buscar solo la página del manual del comando

 

 

Añadir un directorio a la variable PATH

 

Para la sesión activa

 

Si desea añadir por ejemplo /home/user/mes_prog a la variable PATH, en el shell escriba

export PATH=$PATH:/home/user/mis_prog

export PATH=/home/user/mis_prog/:$PATH

Dependiendo de que se quiera añadir el directorio al final o al principio del PATH. Una vez añadido compruebe que se ha realizado el proceso visualizando la variable de entorno PATH. Mientras la sesión esta activa la ruta añadida estará disponible pero una vez terminada la sesión se borrara, si se desea mantener la misma en todas las sesiones que se abran se ha de editar de forma permanente.

Para que los cambios sean permanentes es necesario editar un par de archivos: ~/.bash_profile y~/.bashsrc

~/.bash_profile
Editar este archivo permite especificar una serie de comandos que se ejecutarán en cuanto el usuario acceda a su cuenta. En caso de que el archivo no exista puedes crearlo. Un ejemplo de lo que contiene este archivo es el siguiente:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

BASH_ENV=$HOME/.bashrc
USERNAME=””
PATH=$PATH:/usr/local/pgsql/bin:/usr/local/sbin:/usr/sbin:/sbin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data

export USERNAME BASH_ENV PATH MANPATH PGLIB PGDATA

Los directorios que aparecen asignados a la variable PATH se sumarán a los directorios básicos que asigna el sistema a todos los usuarios. El archivo .bash_profile se carga cada vez que el usuario realiza un login a su cuenta. Para decirlo de un modo más específico, cada vez que Bashes invocado mediante un login shell interactivo (cuando te logeas con tu password)o mediante un shell no interactivo con la opción –login, primero lee y ejecuta los comandos desde el archivo/etc/profile, en caso de que este archivo exista. Luego de leer este archivo busca los archivos~/.bash_profile, ~/.bash_login y ~/.profile, en ese orden. La idea es que se ejecutarán los comandos del primero de los archivos que sea encontrado y sea legible. Una vez encontrado este archivo no seguirá buscando los demás, por esa razón es que es preferible asegurarse de trabajar con el primer archivo de la lista.

Nota: ~/ se usa para indicar tu directorio home. Si tu usuario es carlos, por ejemplo, ~/ corresponde a /home/carlos/

Sin embargo, si accedemos a un terminal desde un entorno de escritorio como Gnome, KDE oXfce, nos encontraremos con que el archivo .bash_profile no es leído. En ese caso, además, debemos modificar el archivo .bashrc

~/.bashrc
Cuando se inicia un shell interactivo que no es un login shell, es decir que no requiere que ingreses a tu cuenta con tu clave y nombre de usuario, Bash lee y ejecuta comandos desde ~/.bashrc, si es que ese archivo existe. Un ejemplo del contenido de este archivo sería el siguiente:

alias ll=”ls -al –color”
alias nautilus=”nautilus –no-desktop”
alias aterm=”aterm -fg white -tr”
export PS1=’\u[\W]\$ ‘
export PAGER=”most”
export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin

Esta última línea contiene los directorios que se sumarán a los que cada usuario tiene por defecto.
De esta manera, editando ambos archivos es posible modificar tu variable PATH.

Por supuesto, existe más de un método de hacer todo lo anterior, es cosa de descubrir la forma que prefieras. Se puede, también, modificar los archivos /etc/profile y /etc/bashrc que corresponden a los archivos ~/.bash_profile y ~/.bashrc, pero que afectan a todos los usuarios. Evidentemente que para modificarlos necesitarás permisos de súper usuario.

Si desea configurar PATH de forma permanente debe editar el archivo de configuración de su shell de conexión.
Como por lo general el shell BASH es el más utilizado, debe editar su archivo /home/user/.bashrc.

Para esto utilizará un editor de texto o simplemente un comando para facilitarse la tarea.

El comando que se puede utilizar es el siguiente:

echo ‘export PATH=$PATH:/home/user/mis_prog’ >> /home/user/.bashrc

Así a cada conexión su PATH contendrá su directorio /home/user/prog

Esta operación puede ser ejecutada por el usuario normal dado que se trata de su entorno. 

Navegacion SeriesAnterior en la serie...

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies