CURSO MICA: primer parte: UNIX/LINUX

Anuncio
CURSO MICA UNIX/LINUX
H. Deeg
Parte de los materiales están reproducidos de 'Introducción a UNIX' de Fernando Cabrera y
Begoña García Lorenzo
8 Oct. 2003
hardware = lo que se ve con el ordenador apagado
kernel = ‘nucleo’. El verdadero ‘UNIX’.
- Programa basico que maneja todo la interactuacion con el hardware. Desarroladas
especificamente por el hardware.
- Controla memoria y asigna a procesos
- Distribuye tiempo del CPU entre processos (=‘multitasking’).
shell = interpretador de commandos.
- El shell tiene comandos propios (man tcsh los enseña). Cada UNIX tiene varios
versiones de 'shells'. Aqui utilizamos el TC-shell (tcsh).
comandos = pequeñas programas que invoca el usuario
Comillas u otros characteres especiales
i) Comillas simples :
Veamos los siguientes ejemplos:
echo *
echo '*'
En el primer caso se sustituye * por los nombres de todos los ficheros en ese directorio
separadeos por espacios. En el segundo caso el resultado nos muestra por pantalla el caracter *.
Esto se debe a que las comillas impiden la sustitución de * por nombres de ficheros tratandolo
como un caracter sin significado especial.
Dentro los comillas simples ' ' todos los caracteres pierden su significado especial:
* ? > < >> | & # ( ) echa ^ " \ || &&
ii) Las dobles comillas :
El uso de las doble comillas puede producir resultados diferentes como por ejemplo:
echo $DOCS
echo "$DOCS"
echo '$DOCS'
Los dos primeros casos tienen el mismo efecto y muestra por pantalla el valor de la variable
DOCS. Esto se debe a que el caracter $, que sirve para referirse al valor de una variable, no
pierde su significado dentro de las dobles comillas. Sin embargo esto si sucede dentro de las
comillas simples y el resultado en el tercer caso es mostrar por pantalla $DOCS.
Caracteres que NO pierden su significado especial entre las doble-comillas " " son:
$ \
Además las dobles comillas también mantienen el significado de los espacios en blanco.
iii) El caracter \
Este caracter sirve para quitar cualquier significado especial que tenga para la shell el caracter
que va a continuacion de \ . Por ejemplo:
echo \$shell
como resultado muestra por pantalla $shell.
iv) Las comillas simple invertias `
El significado de las comillas invertidas es completamente diferente. Se emplea encerrando en
estas comillas un comando y el resultado es ejecutar el comando insertando la salida en el punto
de la línea de comandos donde se encuentra el comando. Por ejemplo:
echo La fecha de hoy es `date`
man `ls` NO funciona!man
En el primer caso se ejecuta el comando date insertando el resultado al final de la frase. El
segundo dará probablemente error, pues tratará de buscar una página del manual de ayuda para
comandos que se llamen como cada uno de los ficheros del directorio. A no ser que algún
fichero tenga nombre de comando, el resultado será que no encuentra la página del manual para
cada nombre de fichero. Las comillas invertidas mantienen su significado dentro de las dobles
comillas, pero no dentro de las comillas simples.
Definir comandos con 'alias'
Frecuentemente, se quiere utilizar un (o más) comando con unos opciones preferidas. El alias
permite definir comandos nuevos.
Sintaxis:
alias alias-name definición
Normalemente, se escribe la definicion dentro comillas simples, para asignar la defincion
literalmente al alias.
También:
alias (sin argumento)
unalias alias-name
lista todos los alias definidos
borra un alias
Ejemplos:
alias hi 'history 10'
alias psa 'ps -Af'
alias gv
'ghostview -a4'
alias lsh 'ls -alt |head -15'
Se pueden pasar argumentos al alias desde la línea de comandos. Cuando ejecutamos un alias
podemos poner una serie de argumentos que se interpretan como si estuvieran inmediatamente
depués de la definición del alias. Por ejemplo:
gv
test.ps
(con gv definido como arriba)
ejecuta entonces ghostview -a4 test.ps
Si queremos que los argumentos que damos al alias se sitúen en un punto distinto del final,
tenemos los siguientes cracteres:
!^
!*
que deben estar precedidos de \ para evitar que el caracter ! sea interpretado por la shell de otra
manera. El primero pasa el argumento que aparece en primer lugar de la línea de comandos al
punto donde aparece !^. El segundo pasa todos los argumentos. Por ejemplo:
alias gv 'ghostview -a4 \!* &'
con esta defincion del gv, teclar:
gv test.ps
va ejecutar: ghostview -a4 test.ps &
Para 'escapar' de un alias que tiene el mismo nombre como un comando UNIX se utiliza
\comando.
Ejemplo: si rm esta definido asi:
alias rm 'rm -i'
\rm invoca el 'rm' en su modo por defecto (sin la opcion -i)
Scripts (primer parte) y configuracion de tu entorno
Los definiciones de variables de ambientes y los alias se pierden cuando se cierra la ventana del
terminal. Para mantenerlos, ellos deben estar definidos dentro de un fichero que se ejecuta
como un macro.
Ejemplo/ejercicia:
Escriba con emacs en un fichero llamado 'miscripts' los siguientes líneas:
(lineas empezando con # se ignoran)
# ejemplos de alias
alias ls
'ls -F'
alias lsa '\ls -al'
alias lsh '\ls -lst | head -5'
# ejemplos de variables de ambiente
setenv DOCS /home/hdeeg/materials
setenv SAMP
/home/hdeeg/samples
setenv TABLES $SAMP/tables
Después de guardar el fichero, este se ejecuta con:
source miscripts
Despues, los nuevos alias y vars. de ambiente deben que estar definidos .
Compruébalo con alias y setenv
Una coleccion de alias utiles se encuentra en $DOCS/aliasutiles
Para ejecutar un script cada vez que se inicia una nueva session (o una nueva ventana),
insertamos al fin del fichero ~/.tcshrc esta linea:
source miscripts (Ojo: para funcionar asi, miscripts debe que estar en directorio ~)
No recomiendo modificar el .cshrc (o .tcshrc si estas utilizando el tcsh) fuera de introducir un
'source' de un fichero con los alias y variables de ambientes personales.
Razon: Se podrian producir errores que impiden el inicio de un nuevo proceso shell. Eso pasa
frecuentemente despues de modificar los alias o vars de ambiente. En este caso, des-comentar
el 'source' en .cshrc vuelve el entorno al estado virgin. Asi, se permite rapidamente un
aislamiento de los errores. Una otra ventaja con el metodo descrito es una mejor facilidad del
traslado del entorno personal a otros ordenadores o cuentas.
Descargar