Você está na página 1de 10

Linux - Ubuntu

SHELL
Un shell es un intrprete de comandos (interfaz), o sea, un intermediario que se encarga de
traducir los comandos del usuario a instrucciones que solo el sistema operativo (ncleo)
entiende.
En GNU/Linux utilizamos el
intrprete de comandos
Bash, creado por Brian Fox
para el proyecto GNU. Pero
dado que cualquier intrprete
o interfaz de usuario puede
ser considerado como un
shell, no podemos olvidar las
interfaces grficas KDE.
Bueno por definicin
tenemos: En informtica, el
trmino shell se emplea para referirse a aquellos programas que proveen una interfaz de
usuario para acceder a los servicios del sistema operativo. Estos pueden ser grficos o de texto
simple, dependiendo del tipo de interfaz que empleen. Los shells estn diseados para facilitar
la forma en que se invocan o ejecutan los distintos programas disponibles en el computador.
Cabe hacer notar que existen 2 tipos de Shell y estos son:
Shells de texto comn como bash, emacs, smbolo del sistema de Windows, entre otros.
Shells grfico comn como GNome, KDE, XFCE, LXDE, Unity, MacOS Desktop Environment,
Escritorio Windows, entre otros.
Entonces podemos resumir que el Shell es en pocas palabras es el entorno de escritorio (DE) o
Manejador de Ventanas (WM) que utilizamos para trabajar en nuestros PCs, sin importar la
distribucin que utilicemos ya sea por medio de GUIs (Interfaz Grfica de Usuario) o por la
terminal respecto a la interaccin que requerimos para poder utilizar los servicios y
aplicaciones que ofrecen los sistemas operativos.
Esta misma definicin puede aplicarse entonces a los dispositivos mviles como smarth
phones y tablets ya sea con Android, iOS o Windows Phone; ya que estos ltimos son en si
sistemas operativos con un DE o WM pre configurado.
Entonces, KDE es un Shell, LXDE es un Shell, iOS es un Shell, Android es un Shell, Windows
Phone es un Shell, la terminal es un shell (via bash), entonces lo que podemos decir de GNOME
3 es respecto a su interface y apariencia nada ms. Que el cambio fu radical: SI.
Linux - Ubuntu






KDE
KDE (K Desktop Environment) es un entorno de escritorio grfico e infraestructura de
desarrollo para sistemas Unix y en particular Linux. La 'K' originariamente representaba la
palabra "Kool", pero su significado fue abandonado ms tarde. Actualmente significa
simplemente 'K', la letra inmediatamente anterior a la 'L' (inicial de Linux) en el alfabeto.
Actualmente KDE es distribuido junto a muchas distribuciones Linux. KDE provee funciones y
aplicaciones bsicas de escritorio, adems de herramientas y documentaciones para que los
desarrolladores puedan escribir aplicaciones para el sistema. Su principal competidor es el
proyecto GNOME.
(GNOME) PROVIENE DEL NOMBRE GNU Network Object Model Environment - Entorno de red
del modelo de objetos
KDE es una comunidad internacional que desarrolla software libre. Produce un entorno de
escritorio, multitud de aplicaciones e infraestructura de desarrollo para diversos sistemas
operativos como GNU/Linux, Mac OS X, Windows, etc. Los principales componentes de
software elaborados por KDE se agrupan bajo el nombre KDE Software Compilation
(abreviado KDE SC).
GNU
G.N.U. = Gnu Not Unix ... (No es Unix)

Es decir, la primera palabra que forma el acrnimo vuelve a ser GNU, que a su vez vuelve a
tener el mismo significado... Y as recursivamente hasta el infinito.

GNU se aplicaba para Linux, que era un sistema operativo similar a Unix, pero... no
exactamente Unix.

Linux - Ubuntu

QU ES UN ACRNIMO
La palabra acrnimo designa, por un lado, el trmino formado por la unin de
elementos de dos o ms palabras, constituido normalmente por el principio de la
primera y el final de la segunda o, tambin, por otras combinaciones

QU ES UN BASH
Para comenzar es necesario tener una idea general de lo que es el Bash.

bash es un shell de Unix (intrprete de rdenes de Unix) escrito para el proyecto GNU. Su
nombre es un acrnimo de bourne-again shell (otro shell bourne) haciendo un juego de
palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los
primeros intrpretes importantes de Unix.

Ahora bien, cuando introducimos un comando en BASH el sistema busca un archivo con ese
nombre en todos los directorios contenidos en la variable PATH. En caso de no encontrarlo se
retorna un mensaje de error especificando que el comando no ha sido encontrado. Para saber
los directorios contenidos en PATH debes escribir en la consola:

echo $PATH

Te retornar algo como esto:
/usr/local/bin:/usr/bin:/bin:/usr/games/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/lib/qt/bin

PATH es una variable de entorno de los sistemas operativos POSIX y los sistemas de
Microsoft,en ella se especifican las rutas en las cuales el intrprete de comandos debe
buscar los programas a ejecutar.
Generalmente es mencionada como $PATH, en sistemas POSIX, o %PATH%, en sistemas
de Microsoft, para diferenciarla de la palabra "path" sinnimo de "ruta".
Esta variable debe contener todos los directorios en los que se quiera que el intrprete
busque programas, siendo el orden tomado en cuenta al momento de la bsqueda.
Mientras que en los sistemas POSIX es una lista separada por dos puntos (:) y cada
directorio debe estar de manera explcita; en los sistemas de Microsoft el separador es
punto y coma (;) y no tiene referencia al directorio de trabajo ya que es implcito para el
sistema y es el primer directorio donde el intrprete busca.

Cada ruta de directorio aparece separada por dos puntos (:). En caso de que desees agregar
directorios a tu PATH puedes hacerlo de dos formas: La primera los hace vlidos por el tiempo
que dura tu sesin, la segunda los hace permanentes.

Para el primer caso basta escribir en el terminal:
PATH="$PATH:<ruta nueva1>:<ruta nueva2>:...<ruta nuevaN>"
Linux - Ubuntu


Supongamos que tenemos un usuario que desea agregar dos carpetas a su PATH, ambas
contenidas en ~/: la carpeta Scripts y la carpeta compilados. Tendra que escribir en el
terminal:
PATH="$PATH:/home/nombreusuario/Scripts:/home/nombreusuario/compilados"

De esa manera ambos directorios se agregan a su variable PATH. Sin embargo, estos cambios
no son permanentes y la prxima vez que el usuario acceda a su cuenta todas las
modificaciones se habrn perdido.
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 ejecutarn 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 sumarn a los directorios bsicos
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 ms especfico, cada vez que
Bash es invocado mediante un login shell interactivo (cuando te logeas con tu password)o
mediante un shell no interactivo con la opcin --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
ejecutarn los comandos del primero de los archivos que sea encontrado y sea legible. Una vez
encontrado este archivo no seguir buscando los dems, por esa razn es que es preferible
asegurarse de trabajar con el primer archivo de la lista.

Linux - Ubuntu

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 o
Xfce, nos encontraremos con que el archivo .bash_profile no es ledo. En ese caso, adems,
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 sera 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 linea contiene los directorios que se sumarn a los que cada usuario tiene por
defecto.
De esta manera, editando ambos archivos es posible modificar tu variable PATH.

Por supuesto, existe ms de un mtodo de hacer todo lo anterior, es cosa de descubrir la
forma que prefieras. Se puede, tambin, 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 necesitars permisos de superusuario.
Los archivos ~/.bashrc, ~/bash_profile,
/etc/bashrc, /etc/profile. Cual utilizar?
Descrpcin del uso de los archivos ~/.bashrc, ~/bash_profile, /etc/bashrc, /etc/profile
NOTA: ~ significa la ruta al directorio personal (Ej:"/home/juanito" es lo mismo que
"~" para juanito) Dicho de otra forma contiene lo mismo que la variable $HOME
Estos cuatro archivos tienen en comn
que:
Son ficheros de texto.
Se pueden modificar con cualquier editor de texto como kwrite, emacs, vi,
pico....
Son shell scripts. Tambin llamados guiones o archivos por lotes. ( Lo que en
windows son los archivos *.bat o *.cmd pero mucho, mucho ms potente)
Linux - Ubuntu

Son ficheros que el sistema operativo ejecuta de forma automtica cuando se da
una cierta condicin.
En el forndo lo que hace el sistema operativo es mandar a bash (el programa
interprete de comandos ms usual de Linux) ejecutar los archivos.
Podemos incluir en ellos cualquier orden de la linea de comandos.
Suelen confundir al personal. De hecho hay bastante confusin circulando.
Estos cuatro archivos difieren en:
Solo existe una sola copia de los archivos /etc/profile y /etc/bashrc.
Cada usuario tiene su propia copia de los archivos .bashrc y .bash_profile.
(Estos archivos se encuentran en el directorio personal de cada usuario (~). El
punto hace que estos archivos sean ocultos. Para ver si los tiene pruebe:
ls -a ~
Los archivos /etc/profile y /etc/bashrc afectan a todos los usuarios.Por tanto
son gestionados por el administrador del sistema (root).
Como cada usuario tiene su propia copia de los archivos .bashrc y
.bash_profile, su copia le pertenece y se la puede autogestionar. Para acceder a
su archivo pruebe en la linea de comandos:
vi ~/.bashrc
o
vi ~/.bash_profile
Ver algo parecido a esto:

# .bash_profile

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

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
Puede editar el texto pulsando la tecla i. Cuando finalize tiene dos opciones:
o ESC + :wq --> Guardar los cambios
o ESC + :q! --> Salir sin guardar los cambios
Linux - Ubuntu

Si lo que quieres es entender el contenido del archivo tendrs que hacerte un
paseo por los shell scripts, las variables de entorno y la sintaxis que utiliza el
bash para el control de flujo
Lo ms importante. Cual de ellos utilizar:
Podemos clasificar estos cuatro archivos en funcin de si los comandos que
contienen afectan a un solo usuario o contrariamente todos los usuarios del
sistema se ven afectados.
Vamos a ver en cada uno de los casos, bajo que condiciones se ejecutan los
archivos.
Para todos los usuarios: (Se necesita permisos de root para editar/modificar
estos archivos)
/etc/profile --> Se ejecuta cuando qualquier usuario inicia la sesin.
/etc/bashrc --> Se ejecuta cada vez que qualquier usuario ejecuta el
programa bash
Para nuestro usuario:
~/.bash_profile --> Se ejecuta el .bash_profile de juanito cuando juanito
inicia su sesin.
~/.bashrc --> Se ejecuta el .bashrc de juanito cuando juanito ejecuta el
programa bash.











Linux - Ubuntu




























Linux - Ubuntu








http://linuxgnublog.org/%C2%BFque-es-shell/
http://blog.desdelinux.net/que-es-un-shell/
http://es.scribd.com/doc/52724488/Definicion-de-KDE
http://es.wikipedia.org/wiki/KDE
http://elpuig.xeill.net/Members/rborrell/articles/los-archivos-bashrc-bash_profile-etc-bashrc-
etc-profile-los-archivos-bashrc-bash_profile-etc-bashrc-etc-profile-cual-utilizar
http://blockdeubuntu.blogspot.com/2009/01/cmo-modificar-la-variable-path.html
https://es.answers.yahoo.com/question/index?qid=20070129110847AARsHpF













Linux - Ubuntu