Mostrando las entradas con la etiqueta shellunix. Mostrar todas las entradas
Mostrando las entradas con la etiqueta shellunix. Mostrar todas las entradas

jueves, 6 de junio de 2013

[Shell] Variables de entorno Linux

Hemos hablado en algunas ocasiones de las variables de entorno pero no las hemos tocado a fondo,por ejemplo el $PS1,$PS2,$LS_COLORS,etc.

Las variables de entorno cambian el comportamiento del sistema,un tanto en modo shell y también en modo gráfico ya que se definen variables que pueden modificar el comportamiento del sistema total.

Un ejemplo de ello son las locales,variables de entorno local de lenguaje,en mi caso:

es_MX.utf8

Las variables de entorno son variables de lenguaje de programación,en este caso Bash pero puede ser sh,tcsh,etc dependiendo de la Shell que uses, en bash se definen las variables así:

variable=valor

Las variables que usamos en el lenguaje de programación bash mediante scripts,se aislan en el script,por ejemplo si creamos un script que  contenga:

#/bin/bash

hola="hola"
mundo="mundo"

echo $hola $mundo


Y lo ejecutamos:

bash holamundo.sh

Se debería asignar el valor "hola" a la variable hola al ejecutar el script,así que si en la linea de comandos escribiéramos:

echo $hola

Debería imprimir el valor de hola que le dimos en el script,pero no,porque se aisla su contenido en el mismo script,en cambio si en la linea de comandos defiriéramos una variable:

hola="hola"

Y la imprimiéramos

echo $hola



Si nos mostraría resultados,esto es porque la linea de comandos es una consola dinámica para bash,como la de python por ejemplo.

Las variables de entorno son variables que usa el sistema,estas son definidas con mayúsculas y las define automaticamente el sistema o los programas que las usan,las variables mas comunes son:

HOME # Muestra nuestro home

PWD # Muestra el lugar donde estamos

OLDPWD # Muestra el ultimo lugar donde estuvimos(se define cuando visitamos mas de dos lugares en el sistema,con el comando cd)

TERM # Muestra la terminal por defecto

LOGNAME # Muestra el nombre del usuario actual

LANG # Muestra el lenguaje

DESKTOP_SESSION # Muestra la sesión gráfica(entorno de escritorio)

SHELL # Muestra la sesión de linea de comandos(shell)

PATH # Muestra el lugar donde se encuentran los programas ejecutables

LS_COLORS # Muestra los colores que usan los programas con argumento (--color=auto)

PS1 # Muestra la configuracion del entorno (shell)

PS2 # Muestra la configuracion del entorno (shell) al acceder al PS2

Esto no solo es de Linux,GNU/Linux y todos los *nix que usan Bash,esto también existe en Windows/MS-DOS.

Para definir una variable de entorno se usa el comando

export VARIABLE="VALOR"

Por ejemplo

export PDF="/home/$LOGNAME/Descargas/pdf"

Y para acceder seria por ejemplo:

cd $PDF

Otro ejemplo es por ejemplo añadir rutas de ejecutables,por ejemplo cuando trabajamos con Perl:

Nota:En este caso estamos modificando una variable de entorno y se usa:

VAR="$VAR:mas valores"

Por ejemplo:

PATH="home/$LOGNAME/perl5/bin:$PATH" # PATH=VAR : $PATH

Para ver todas las variables de entorno o casi todas tecleamos:

env

o

printenv

Y para guardar la variable de entorno la metemos en nuestro bashrc:

echo 'export VARIABLE="VALOR"' >> ~/.bashrc
O

nano ~/.bashrc # nano o {vim,gedit,VI,kate,joe,etc}

Y exportamos las variables que queramos.

Eso es todo :D

Nota:Cuidado al modificar variables de entorno,en especial(PATH)

Leer más...

miércoles, 29 de mayo de 2013

[Shell] cd Unix/Linux

Tutorial cd Linux/Unix

No se porque no hago tutoriales de Unix,osea el uso de comandos,lo intente un tiempo pero me dio vagancia,en fin comenzare una serie de tutoriales,que les llamare Shell,en los cuales pondré tutoriales sobre los comandos internos de la shell o de programas de tipo consola.

¿?

Y no es lo mismo?

NO.

Un comando interno de la shell es una función programada en el código de la misma, y un programa tipo consola es un añadido a la shell pero función con sus propias sources(algoritmos en x código),por ejemplo cd es una orden interna:

Abrimos una terminal y escribimos:

type cd



Y nos dice que tipo de ejecutable es,ahora por ejemplo ls

type ls

Puede que a muchos o a todos nos diga(a mi incluido) que es una alias,si es así lo desasociamos al alias:

unalias ls

Y de nueva cuenta:

type ls

Y nos dice que esta en /bin,osea que es un ejecutable instalado en /bin ya que si lo buscamos con el comando which,nos da la ruta

which ls

Y si buscamos cd:

which cd

No nos da nada,al estar en el código fuente de la shell al igual que type.

type type

Bien esa es la introducción y es en bash :D.

Cd quiere decir Change Directory,cambio de directorio,para navegar en la shell de Unix,ya que en la shell no tenemos botones para regresar ni para accesar a carpetas,para accesar a una carpeta usamos este comando:

cd Carpeta

Hay que tener en cuenta que no es lo mismo que :

cd  /Carpeta

Ya que al usar  la diagonal estamos diciendo que vaya a la raíz del sistema(root),por ejemplo:

cd /etc
Si queremos usar la diagonal sin que vayamos a root debemos indicarlo con un punto (.) que quiere decir,aquí(directorio actual):

cd ./Descargas

Para acceder a una carpeta pero sin tener ganas de escribir todo,hay dos formas(tal vez mas):

Primera forma:

Con Wildcard unix (*):

cd Carp*

Forma dos:

Tabulador(tecla tab):

cd Carp<tab>

Ver las carpetas disponibles:

ls --color=auto # Son las azules
Forma dos:

cd <tab><tab>

Regresar un directorio,para regresar se usa un doble punto seguido(..),que indica anterior(en las ramas del sistema):

cd ..

Por ejemplo tenemos estas carpetas:

 Home-|  
      |-Descargas  
      |-Documentos  
      |-Imagenes  

Estamos en la carpeta Descargas, y queremos volver al Home,eso es lo que dice arriba:

cd ..

Ahora estamos en Descargas,pero queremos ir a Documentos:

cd ../Documentos

Mas avanzado:

 Home-|           |-Imagenes-|Gentoo  
      |-Descargas-|-Musica-|mp3  
      |-Documentos  
      |-Imagenes-|-Fotos-|Linux  
      |  

Estamos en Descargas/Imagenes/Gentoo y queremos ir a Imagenes/Fotos/Linux:

cd ../../../Imagenes/Fotos/Linux 

Se ve complicado,pero es simple:

 Descargas/Imagenes/Gentoo  
 cd    ../      ../     ../Imagenes/Fotos/Linux  

Cada regreso(..) es una carpeta.

Ahora estamos en la carpeta Linux,pero como regresamos a Gentoo(si quisieramos),pues eso lo hace la variable de entorno OLDPWD:

En Linux/Unix existe una variable de entorno al usar bash,que se llama PWD($PWD),esta nos muestra donde estamos,actualmente:

echo $PWD

Además de esta existe una variable llamada OLDPWD($OLDPWD),que nos muestra el directorio anterior(en el que estábamos):

echo $OLDPWD

Podemos regresar de esta manera:

cd $OLDPWD

o

cd -

Eso es todo,también podemos definir variables de entorno,por ejemplo:

Imagenes Linux:

imlinux=~/Imagenes/Fotos/Linux

Y luego

cd $imlinux

Pero hay algunos problemas de seguridad,por lo cual no recomiendo hacer esto,pero si lo hacemos debe ir en el bashrc:

echo 'imlinux=~/Imagenes/Fotos/Linux' >> ~/.bashrc

También queda recordar que hay varias formas de ir a nuestro Home:

1.Variable de entorno:

cd $HOME

2.Wildcard Unix (~)

cd ~

3. Parámetro:

cd -P
cd -L 

4. (--)

cd --

Eso es todo :D
Leer más...