Advertisement
Guest User

Cyp

a guest
Dec 23rd, 2008
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.22 KB | None | 0 0
  1. Capitulo 2
  2. Usando la Shell.
  3.  
  4. La shell es el nexo entre el usuario y el sistema operativo.
  5. El Usuario ingresa comandos, y la shell los interpreta.
  6. GNU/Linux permite usar varios tipos de shells, sin embargo la shell de los usuarios por defecto es bash.
  7. Bash implementa caracter�sticas de antiguas shells, como ksh ( Korn Shell )
  8. Las shells de los usuarios pueden ser cambiadas modificando el archivo /etc/passwd.
  9. O por el comando chsh.
  10. chsh -s /bin/zsh
  11.  
  12.  
  13. En sistemas BSD se puede hacer con chpass -s
  14. Cada usuario puede tener una shell distinta.
  15. Las disponibilidades de shells en el sistema se encuentran en /etc/shell.
  16. Con un cat /etc/shell ver�amos la cantidad de shells disponibles. ( o chsh -l )
  17. Algunas shells disponibles son:
  18.  
  19. /bin/bash - Bourne-Again-shell es compatible con sh e incluye caracter�sticas de chs y ksh.
  20. Algunos sistemas linkean bash con bash2
  21.  
  22. /bin/sh - Bourne shell
  23. /bin/ash - La Shell del SO System V
  24. /bin/bash2 - Segunda version de bash
  25. /bin/csh - La Shell creada por BSD
  26. /bin/tcsh. - Una mejora de csh
  27. /bin/ksh - ten�a un mejor funcionamiento que csh y tenia las ventajas de sh.
  28.  
  29. Diferencias entre Shells.
  30. Seg�n el art�culo que encontr� en: http://www.faqs.org/faqs/unix-faq/shell/shell-differences/
  31.  
  32. La primera shell escrita fue sh, que fue creada por C. S. Bourne.
  33. Se caracterizaba por tener todas las caracter�sticas de un lenguaje estructurado muy potente. Pero no era muy �til para interactuar con el usuario.
  34. Al tiempo llego csh, que introdujo facilidades de uso para el usuario*1, era escrito en C y en teor�a era deb�a funcionar muy bien, ya que que era el mismo lenguaje en el que fue escrito UNIX� pero en la realidad, csh conten�a varios bugs a la hora del shell scripiting, y se volvi� com�n, usar csh como shell para el usuario y sh para scripting.
  35. Debido a la cantidad de bugs de csh, mucha gente empez� a reparar estos errores y a agregar funcionalidades no est�ndares.
  36. Pero esto no fue el nacimiento de tcsh, ya que la gente se quedo con el est�ndar csh.
  37.  
  38. Eventualmente llego David Korn de AT&T con la idea de clasificar todo esto, y naci� ksh, que m�s o menos arreglaba los problemas de csh y le agergaba excelente manejo para scrpiting de sh.
  39. Adem�s de agregarle algunas caracter�sticas que hizo que se convierta en la mejor shell del momento.
  40. Esta shell se convirti� en parte del Sistema V.
  41. El �nico problema era que hab�a que pagar usarla, ya que pertenec�a a AT&T.
  42.  
  43. Por aquellos tiempos empezaron los primeros intentos por estandarizar UNIX� y se empez� con POSIX.
  44. POSIX especificaba m�s o menos, la shell del sistema V.
  45. Luego el est�ndar es actualizado y las especificaciones para la shell se parecen mucho a ksh.
  46.  
  47. Tambi�n por estos tiempos comenzaba a aparecer el proyecto GNU, que sus objetivos eran crear una shell completamente libre y que siguiera el est�ndar POSIX.
  48. De aqu� nacio Bourne again shell (Bash)
  49. *1 Alias entre otras, consultar la fuente en que se baso este documento, para ver todas las diferencias t�cnicas entre shells.
  50.  
  51. ------
  52.  
  53. Si quisi�ramos de momento usar otra shell, con simplemente escribir su nombre estar�amos accediendo a esa otra shell.
  54. Ej: $ csh
  55. Si quisi�ramos volver a nuestra antigua shell, con tan solo escribir exit, o presionando CTRL+D saldr�amos de la actual y volver�amos a la que est�bamos usando.
  56.  
  57. La shell predeterminada en el sistema se encuentra en la variable SHELL.
  58. Para ver su contenido basta con tipiar: echo $SHELL
  59.  
  60. Para modificar nuestra shell, podemos acceder a nuestro archivo de configuraci�n, que se encuentra en nuestra home.
  61.  
  62. La configuraci�n por defecto en las mayor�as de las distribuciones de GNU/Linux es la siguiente:
  63. cypress@turin /etc $
  64.  
  65. Nombre de usuario, hostname, y ruta actual ( pwd ).
  66. Esta configuraci�n se encuentra en el archivio /etc/bashrc si deseamos modificarla debemos editar este archivo.
  67. Y editar� todas las shells de los usuarios.
  68.  
  69. Existen tres ficheros en el directorio de un usuario que tienen un significado especial para la shell Bash. Estos ficheros permiten al usuario configurar el entorno de su cuenta autom�ticamente cuando entra en el sistema, cuando arranca un subshell o ejecutar comandos cuando sale del sistema.
  70.  
  71. .bash_profile es el el mas importante de los tres. Es le�do y los comandos incluidos en el, ejecutados, cada vez que el usuario entra en el sistema. Cualquier cambio hecho en este fichero no tendr� efecto hasta que salgamos y entremos en el sistema de nuevo.
  72. .bashrc es le�do cuando el usuario arranca un subshell, escribiendo por ejemplo bash en la linea de comandos. Esto nos permite ejecutar diferentes comandos para la entrada al sistema o para la ejecuci�n de un subshell.
  73.  
  74. .bash_logout es el fichero leido por Bash, cuando salimos del sistema. Podemos definir, por ejemplo que se borren los ficheros temporales creados en nuestra ultima sesi�n o registrar el tiempo que hemos estado utilizando el sistema. Si .bash_logout no existe, ningun comando sera ejcutado a nuestra salida.
  75.  
  76. Command completion:
  77.  
  78. Es una de las mejores cosas que tiene GNU/Linux, es el �completado de comandos� al empezar a escribir un comando, al presionar la tecla Tab, el sistema auto completar� el comando.
  79.  
  80. Ej:
  81.  
  82. iwcon
  83. al presionar tab, el sistema completar� con iwconfig.
  84. En el caso de haber dos comandos, que tengan igual inicio, el sistema har� sonar un beep (dependiendo de la distribuci�n). Si se presiona otra vez tab, desplegar� los comandos que se coincidan.
  85. Ej:
  86.  
  87. iw
  88.  
  89. Al presionar tab, el sistema sonar� un beep.
  90. Al presionar otra vez tab, el sistema desplegar�:
  91.  
  92. iwconfig iwevent iwgetid iwlist iwpriv iwspy
  93.  
  94. Todo esto es editable desde el archivo /etc/bash_completition
  95.  
  96. Algunas opciones dentro de bash:
  97.  
  98. ctrl+b : mueve para atr�s el cursor (backwards)
  99. ctrl+f : mueve hacia adelante el cursor (foward)
  100. ctrl+k : Borra toda la linea del cursor en adelante
  101.  
  102. Para hacer cambios globales sobre estas caracter�sticas, se debe editar el archivo el archivo /etc/inputrc Configuraciones caracter�sticas para cada usuario, desde ~/.inputrc
  103.  
  104. Historial de Bash:
  105.  
  106. Los comandos tipiados en nuestra shell son guardados en el archivo .bash_history del directorio home del usuario.
  107.  
  108. La variable $HISTCMD muestar la cantidad de comandos en el historial (el numero).
  109.  
  110. El comando history muestra todo el historial, es lo mismo que hacer
  111. $ echo ~/.bash_history
  112.  
  113. Variables de entorno:
  114.  
  115. Cualquier comando es un proceso, estos procesos (padres) pueden desatar otros procesos, que son llamados procesos hijos.
  116. Puede haber un solo proceso padre pero varios hijos.
  117. Cada proceso define sus propias variables de entorno, y en el caso de los padres, las variables son heredadas a sus hijos.
  118. -Variable PATH:
  119.  
  120. La variable PATH, indica que directorios en el sistema deben ser mirados para ejecutar binarios.
  121. Si la variable PATH no est� definida, el sistema busca siempre en los directorios /bin y /sbin
  122.  
  123. Para ver el contenido de la variable PATH, vasta con tipiar:
  124. $ echo $PATH
  125. /bin:/usr/bin:/usr/local/bin
  126. Para ejecutar un binario que no se encuentre en PATH, ej, un archivo en el home.
  127. Se debe escribir
  128. ~ $ ./script.sh
  129.  
  130. Ah� se ejecutaria el archivo script.sh que se encuentra en el home del usuario.
  131. El ./ especifica que est�s corriendo el binario desde el pwd
  132. Editando la variable de entorno PATH:
  133.  
  134. Las rutas que est�n definidas para todos los usuarios se encuentran en el archivo /etc/profile modifcando la linea que empieza por PATH=
  135. Una vez relogeado, el cambio tomar� efecto. Para configuraciones individuales, modificar el archivo ~/.bash_profile
  136.  
  137. Si quisi�ramos agregar alguna ruta al actual PATH editar�amos en el ~/.bash_profile y agregar�amos:
  138. PATH=�$PATH:$HOME/bin�
  139. export PATH
  140.  
  141. Esto agrega al path el directorio ~/bin
  142.  
  143. Pimp my Prompt:
  144.  
  145. El prompt por defecto de GNU/Linux tiene m�s o menos la forma descripta abajo, pero como todo en GNU/Linux, es configurable, el prompt no es la excepci�n.
  146.  
  147. cypress@turin /etc $ esta configuraci�n viene por defecto.
  148.  
  149. Esto es definido en el archivo /etc/bashrc ( editable como superusuario )
  150. En la definici�n de la variable PS1 podemos ver esto:
  151. PS1= "[\u@\h \W]\$ "
  152.  
  153. Significado:
  154.  
  155. \u Usuario actualmente logeado
  156. \h El Hostname
  157. \W El directorio actual
  158. \$ Muestra $ para usuarios normales y # para el root
  159. \d Fecha actual
  160. \t Hora actual
  161. \s Nombre de la shell
  162. \n Nueva linea
  163. \\ Contra barra
  164.  
  165.  
  166.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement