Diferencia entre revisiones de «Hacks para sistemas operativos Unix-like/Modificando nuestro entorno de usuario»

Contenido eliminado Contenido añadido
Página creada con «{{navegar |libro=Hacks para sistemas operativos Unix-like |reducido= |actual=Modificando nuestro entorno de usuario |anterior=Sistema operativo |siguiente=Entornos gr...»
 
Sin resumen de edición
Línea 6:
|siguiente=Entornos gráficos X-Window
}}
== Modificando nuestro entorno de usuario. ==
=== Receta : Elegir un shell===
Casi por Defecto, los Sistemas Operativos UNIX-like citando por Ejemplo a GNU/Linux, usan Bash un Shell Clonico de Bourne Shell, uno de los Interpretes mas Importantes de Unix; pero siendo reescrito para el Proyecto GNU.
 
Otros Sistemas por ejemplo Solaris usan CSH, C Shell desarrollado en Berkeley por Bill Joy (Uno de los Fundadores de Sun Microsystems).
 
Pero como elegir un Shell, bien eso depende mas que nada, (como la mayoría de las cosas en UNIX) de lo que piensas Hacer con el Obviamente no todos los Shell's son Iguales y no todas la necesidades lo son.
 
En Sistemas como GNU/Linux la ventaja de usar un buen Shell es Importante mas no imperativo. No todos los Shell's funcionan Igual, cada uno tiene una Forma de trabajar y una Estructura diferente.
 
Los Sistemas que usan Bash son:
- GNU/Linux (La Gran mayoría, al ser GNU)
- Mac OS X (Antes usaba csh)
- Windows (mediante Cygwin)
 
Si se es Programador se preferira un Shell mas o menos de este tipo, la respuesta es CSH o TCSH. Son mas acordes al Trabajo a Realizar.
Pero si ya ha usado Shells como ASH o como Bourne de seguro BASH será el Indicado para usted; al final de cuentas el mejor Shell es con el que el Usuario se sienta a agusto.
>
 
=== Receta : Redireccionar la entrada y la salida ===
Los sistemas operativos ''“unix-like”'', operan todo el sistema como si fuera un archivo, de hecho el teclado es un ''archivo de solo lectura'', (llamaremos al teclado como la entrada estándar) y el monitor un ''archivo de solo escritura'' (llamaremos al monitor como la salida estándar). Por lo general toda aplicación, recibe y/o entrega datos a través de la entrada y/o salida estándar, respectivamente.
Es posible para los sistemas “unix-like” cambiar las entradas y salidas usando otros archivos para su operación. Básicamente tenemos 2, > (redirección de salida) y < (redirección de entrada).
 
Por ejemplo:
Podemos hacer que el comando ls –l, en vez de mostrar el listado del directorio en pantalla, lo envíe a un archivo de nombre listado.
 
shell~$ ls –l > listado
 
 
Esto creará el archivo listado, si no existe y lo sobreescribirá si el archivo ya existe.
Si no se desea perder los datos del archivo listado, es posible redireccionar la salida escribiendo al final de él, sin perder los datos existentes.
 
shell~$ ls –l >> listado
 
 
Supongamos que tenemos un archivo de texto llamado fonos, el cual posee todos los números de teléfono de tus compañeros de trabajo. Supongamos que queremos buscar a José, para ello podemos usar el comando grep, que nos permite buscar una cadena en un archivo.
 
shell~$ grep José < fonos
 
Esto, entrega como entrada el archivo fonos al comando grep, el cual muestra todas las líneas donde aparezca la palabra José. Si bien el archivo fonos puede ser especificado de forma directa a grep, tómese este caso sólo como un ejemplo.
 
 
Caso aparte es el tema de “|” o pipe, el cual es una “tubería” que pasa toda la salida de un comando y la entrega como entrada a otro comando, por ejemplo:
 
Si queremos ver todo el contenido de un directorio, pero éste es demasiado extenso para ser visto en una sola pantalla, se puede pasar toda la salida al comando more, el cual nos mostrará página a página todo el resultado de la salida.
 
shell~$ ls –la|more
 
Es posible encontrar que la ejecución de algunos comandos puede generar mensajes de error que quizá no deseamos recibir, para evitarlo utilizamos la forma de redirección > anteponiéndole el número 2 (0 = entrada estándar, 1 = salida estándar y 2 = error estándar), por ejemplo:
 
shell~$ ls -l /home/*
 
Nos muestra un listado de archivos y directorios de los usuarios, pero si un usuario fijó los permisos para restringir el acceso a otros usuarios la salida puede ser como sigue:
 
'''/usr/bin/ls: /home/pepe: Permission denied'''
 
Para evitar este mensaje ejecutamos el comando de la siguiente manera:
 
shell~$ ls -l /home/* 2> /dev/null
 
Opcionalmente enviarlo a un archivo;
 
shell~$ ls -l /home/* 2> ~/accessDenied.txt
 
=== Receta : Escribir líneas de comandos complejas ===
Para no tener que escribir cada línea carácter a carácter, el intérprete bash nos ofrece una ayuda inestimable gracias a la tecla <Tab> (tabulador, es la tecla que se encuentra situada encima de Bloqueo de Mayúsculas). Su uso es muy sencillo, basta escribir el comienzo de un comando y seguidamente pulsar <Tab>, el comando se completará, lo mismo ocurre con las rutas. En el caso de que existan varios comandos o rutas que comiencen con los caracteres introducidos bash mostrará las posibles opciones a elegir al pulsar otra vez <Tab>.
 
=== Receta : Creando variables de entorno. ===
 
Las variables de entorno sirven para configurar ciertos parámetros de nuestro sistema. Por ejemplo, la variable EDITOR indica cual es nuestro editor de texto preferido, de forma que otras aplicaciones puedan lanzarlo para tareas como editar un mensaje de correo.
 
Para acceder al valor de una variable de entorno utilizaremos su nombre, precedido del carácter '$'. Por ejemplo:
 
$ echo $EDITOR
/usr/bin/vim
 
Para definir el valor de una variable de entorno, utilizaremos la orden "export". Por ejemplo:
 
$ export MI_VARIABLE=hola
$ echo $MI_VARIABLE
hola
 
Para eliminar una variable de entorno, utilizaremos la orden "unset":
 
$ unset MI_VARIABLE
 
 
Otras variables de entorno importantes:
 
* PATH: Contiene una lista de directorios, separados por el carácter ':' en los que el sistema buscará los programas que sean invocados sin indicar una ruta.
 
=== Receta : Crear nuestros propios comandos ===
Para crear nuestros propios comandos, mejor dicho (modificar el nombre del comando) podemos usar un '''"alias"''' de forma que cuando hagamos referencia a dicho alias, se escriba un comando que queramos con todos los parámetros que queramos. Por ejemplo:
 
 
El comando 'ls' si queremos agregarle unos cuantros parámetros podemos hacerlo mediante un alias:
 
 
[root@localhost/root]$ ls -color -s
 
 
"-color" es para mostrar los ficheros en color.
 
"-s" es para visualizar el tamaño del fichero.
 
 
Lo que tenemos que hacer es:
 
 
 
[root@localhost/root]$ alias ls='ls -color -s'
 
 
 
y listo cuando tipeamos el comando 'ls' nos saldrá como si tipearamos 'ls -color -s'.
 
 
También podemos hacer lo siguiente:
 
El comando 'cp' sirve para copiar ficheros, podemos hacer que cuando tipeamos copy, copiar o lo que queramos se ejecute como si tipearamos 'cp'.
 
 
 
[root@localhost/root]$ alias copiar='cp'
 
 
 
Si queremos podemos agregar parámetros. ''Rubby Antonio Perez Lorenzo''
 
=== Receta : [[Hacks para Unix-like: contenedor de basura|Como crear nuesto propio contenedor de basura]] ===
=== Receta : [[Hacks para Unix-like: Teclas de acceso rápido en bash|Teclas de acceso rápido en bash ]] ===
=== Receta : [[Hacks para Unix-like: una mirada a nano|Una mirada a nano ]] ===
 
=== Receta : Scripting, ahorrar tiempo en la línea de comandos ===
Un '''script''' es un guión con una secuencia de comandos, secuencias de control y variables almacenados en un archivo de texto, al ejecutar dicho archivo se ejecutan esos comandos que el archivo contiene.
 
Esto nos sirve de mucho ya que cuando tenemos que tipear una serie de comandos muy repetitivamante para realizar una tarea específica podemos automarizarlos. Y mediante un script, de esta manera nos ahorramos un montón de tiempo a la hora de hacer este tipo de trabajo.
 
Para crear un script lo tenemos que hacer en un editor de texto, hay muchos editores de texto como:
 
'''-Emacs'''
'''-El Vi(m)'''
'''-Joe'''
'''-Gedit'''
 
Que tengamos uno de estos editores de textos instalados en nuestro ordenador si o no, eso va a depender de que S.O tengas instalado. ''Rubby Antonio Perez Lorenzo''
 
=== Receta : Una mirada a Vi(m) ===
 
Vim la versión mas popular del Vi se puede encontrar en casi cualquiera de los sabores de UNIX y su uso aun cuando en un principio puede llegar a ser un poco traumático resulta fácil y muy práctico con la costumbre.
 
Para ejecutar el vi(m) basta con digitar desde la línea de comandos vi
Simplemente escribimos (vim nombre_del_archivo.extensión -------por ejemplo:vim practica1.cpp)
Luego se nos presenta simplemente una pantalla en negro(en el caso de la consola) en la que debemos escribir las instrucciones para la construcción de nuestro programa.
En Vim contamos con un conjunto de herramientas las cuales nos van a ayudar en la elaboración de nuestro programa como son:
1)Tecleamos escape para cerciorarnos de que estamos en modo normal
2)ESC+i seria el equivalente a insertar texto.
 
Una vez abierto para entrar en el modo de edición (necesario para poder escribir cualquier cosa) bastará con digitar la tecla ins, ubicados en este punto, podremos escribir cualquier cosa que queramos en nuestro archivo para salir y/o guardar tendremos que pasar al modo de comandos, para esta labor bastará con presionar la tecla esc, si nos encontrábamos en el modo de edición seguido a esto presionando la tecla : (dos puntos) podremos digitar los comandos necesarios para salir digitamos en el modo de comandos 'q' seguido de enter para salir ignorando los cambios presionando 'q!' saldremos de vi y los cambios que hayamos hecho en los documentos no se guardarán para el caso contrario en el que queramos guardar los cambios presionando 'wq' guardaremos y saldremos de vi para solamente grabar bastara con presionar 'w'
 
=== Receta : Crear nuestros propios comando en Vi(m) ===
=== Una mirada a GNU Emacs===
GNU Emacs es considerado (junto con Vi(m)) el mejor editor disponible en sistemas derivados de Unix (a decir verdad existe una discusión acerca de cúal es mejor, vi o emacs, la contienda es larga así que la dejaremos a un lado).
 
Emacs es un acrónimo de Editor MACroS, nombre dado por RMS a un conjunto de macros realizadas por él para el editor [http://es.wikipedia.org/wiki/TECO TECO] ejecutándose en un equipo PDP-10 y sistema operativo [http://es.wikipedia.org/wiki/ITS ITS]. Más tarde Guy Steele iniciaría el proyecto de unificar los diferentes macros y atajos de teclado usados en [http://es.wikipedia.org/wiki/TECO TECO] y aumentados por RMS.
 
Las características de edición y composición de Emacs lo hacen ser muy versátil y poderoso. Gran parte de tal dinamismo se logra a través de una implementación de un intérprete del lenguaje Lisp en su interior: Emacs-lisp, que le brinda capacidad de "ejecución" de aplicaciones / programas escritos en ese lenguaje (existen juegos, lectores de correo, clientes para diferentes protocolos como ftp, etcétera.... ahh y un psiquiatra incluso) para su uso en Emacs.
 
Además, debido a su propio origen, el editor realiza muchas de sus tareas (o de las nuestras) a través de simples combinaciones de teclas que, aunque son realmente muchas, son en su mayoría muy últiles para la propia edición del texto del tipo que deseemos.