0% encontró este documento útil (0 votos)
31 vistas10 páginas

Unix 21 30

Este documento proporciona instrucciones sobre el uso de comandos de shell de UNIX como zcat, more, alias, setenv, y funciones. Explica cómo redireccionar la salida de comandos, crear alias, definir variables de entorno, y ejecutar comandos en foreground y background. También cubre la obtención de ayuda sobre comandos UNIX usando el manual de páginas man.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas10 páginas

Unix 21 30

Este documento proporciona instrucciones sobre el uso de comandos de shell de UNIX como zcat, more, alias, setenv, y funciones. Explica cómo redireccionar la salida de comandos, crear alias, definir variables de entorno, y ejecutar comandos en foreground y background. También cubre la obtención de ayuda sobre comandos UNIX usando el manual de páginas man.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Manual de UNIX Rev 2.

4 Jon Tombs & Jorge Chávez 21

zcat file.Z | more


Invoca la orden de descompresión de zcat, y conducir dicho flujo de caracteres hacia el
paginador more, de forma que podamos ver página a página el fichero descomprimido.
A parte de los sı́mbolos mencionados existen otros que permiten acciones tales co-
mo:

• >> Añadir el stdout al final del fichero indicado (append)

• >& (csh, tcsh y bash sólo) Redireccionar el stdout y stderr.

• >! Igual que > pero con sobreescritura del fichero.

• >>& Igual que >& pero en modo append

• >>! Igual que >> pero con la adición que funciona también cuando el fichero no
existente

• 2> (sh, ksh y bash sólo)35 Redireccionar el stderr.

5.3 CSH y TCSH


Son dos de los Shells interactivos más empleados. Una de las principales ventajas de
tcsh es que permite la edición de la lı́nea de comandos, y el acceso a la historia de
órdenes usando las teclas de cursores.

5.3.1 Ejecución de comandos


• Si el comando introducido es propio del Shell (built–in), se ejecuta directamente.

• En caso contrario:

– si el comando contiene / , el Shell lo considera un PATH e intenta resolverlo


(entrar en cada directorio especificado para encontrar el comando).
– en caso contrario el Shell busca en una tabla (hash table) que contiene los
nombres de los comandos que se han encontrado en los directorios especifi-
cados en la variable PATH, cuando ha arrancado el Shell.

5.3.2 Aliases
Para facilitar la entrada de algunas órdenes o realizar operaciones complejas, los
Shells interactivos permiten el uso de aliases. La orden alias permite ver que aliases
hay definidos y también definir nuevos. Es corriente definir el alias rm = ‘rm -i’,
de esta forma la orden siempre pide confirmación para borrar un fichero. Si alguna
vez quieres usar rm sin alias sólo hace falta poner delante el sı́mbolo \ , denominado
backslash .
Por ejemplo \rm elimina los alias aplicados a rm .
Otro ejemplo bastante frecuente (en tcsh/csh) podrı́a ser (debido a la complejidad de la
orden):
35
csh o tcsh no soportan redirección de stderr, y si quieres sólo redireccionar el stderr es necesario
hacerlo de esta forma: (comand > /dev/tty) >& fichero
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 22

alias ffind ’find . -name \!* -print’


Para emplearlo:
ffind tema.txt el resultado es la búsqueda recursiva a partir del directorio actual
de un fichero que se llame tema.txt, mostrando el camino hasta el mismo.

5.3.3 Comandos propios


Los comandos propios o intrı́nsecos (Built-In Commands) son aquellos que proporciona
el propio Shell36 .
alias name def
asigna el nombre name al comando def.
foreach var ( wordlist)
commands
end
La variable var se asigna sucesivamente a los valores de cadena wordlist, y se eje-
cutan el conjunto de comandos. El contenido de dicha variable puede ser empleado en
los comandos: $var.
history
muestra las últimas órdenes introducidas en el Shell
Algunos comandos relacionados con el Command history son:

• !! Repite la última orden

• !n Repite la orden n-ésima

• !string Repite la orden más reciente que empiece por la cadena string

• !?string Repite la orden más reciente que contenga la cadena string

• ∧str1∧str2 o !!:s/str1/str2/ (substitute) Repite la última orden reemplanzando


la primera ocurrencia de la cadena str1 por la cadena str2

• !!:gs/str1/str2/ (global substitute) Repite la última orden reemplazando todas las


ocurrencias de la cadena str1 por la cadena str2

• !$ Es el último argumento de la orden anterior que se haya tecleado.

pushd
Cambia de directorio, recordando el directorio actual.
popd
Retorna al directorio desde donde se hizo pushd la última vez.
repeat count command
Repite count veces el comando command.
rehash
Rehace la tabla de comandos (hash table)
set variable = VALUE
36
a diferencia de los comandos que provienen de un ejecutable situado en alguno de los directorios de
la variable PATH
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 23

Asigna el valor de una variable del Shell.


set variable
Muestra el valor de la variable
setenv VARIABLE VALUE
Permite asignar el valor de una variable de entorno.
source file
Ejecuta las órdenes del fichero file en el Shell actual.
unset variable
Desasigna el valor de una variable del Shell
unsetenv VARIABLE VALUE
Permite desasignar el valor de una variable de entorno.
umask value
Asigna la máscara para los permisos por omisión.
unalias name
Elimina un alias asignado.

5.3.4 Variables propias del Shell


Existe un conjunto de variables denominadas shell variables, que permiten modificar
el funcionamiento del Shell.
filec (FILE Completion)
ES una variable toggle que permite que el Shell complete automáticamente el nombre
de un fichero o un directorio37 . Para ello, si el usuario introduce sólo unos cuantos
caracteres de un fichero y pulsa el TAB el Shell completa dicho nombre. Si sólo existe
una posibilidad, el completado es total y el Shell deja un espacio tras el nombre. En
caso contrario hace sonar un pitido38 . Pulsando Ctrl-D el Shell muestra las formas
existentes para completar. prompt
Es una variable de cadena que contiene el texto que aparece al principio de la lı́nea de
comandos.
savehist
permite definir el número de órdenes que se desea se almacenen al abandonar el shell.
Esto permite recordar las órdenes que se ejecutaron en la sesión de otro dia.

5.4 SH y BASH
Sólo bash puede considerarse un Shell interactivo (:-) ), permitiendo la edición de
la lı́nea de comandos, y el acceso a la historia de órdenes (readline). En uso normal
(historia y editor de lı́nea de comandos) BASH es compatible con TCSH y KSH.
El modo de completado (file completion) es automático (usando TAB sólo) si el SHELL
es interactivo.
37
tcsh permite no sólo completar ficheros/directorios sino también comandos
38
BEEP para los amigos
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 24

5.4.1 Comandos propios del Shell


umask , source , pushd , popd , history , unalias , hash 39 como en TCSH.
help Ayuda interna sobre los comandos del Shell.
VARIABLE=VALUE
Permite asignar el valor de una variable de entorno. Para que dicha variable sea
”heredada”es necesario emplear:
export VARIABLE
o bien combinarlas:
export VARIABLE=VALUE
alias En BASH alias sólo sirve para substitución simple de una cadena por otra,
Por ejemplo:
alias ls=’ls -F’.
Para crear aliases con argumentos se usan funciones. Las funciones se definen con
() y los comandos a realizar entre llaves {}. El empleo de los argumentos se realiza
mediante $0. . . N, siendo $# el número de argumentos.
Por ejemplo:
setenv() {
if [ $# -gt 1 ]; then
export \$1=‘‘\$2’’
else
env
fi
}
Define una función igual que el setenv de TCSH. El siguiente defina un funciona equiv-
alente al alias ffind de TCSH

ffind() {
if [ $# != 1 ]; then
echo Error, falta arguemnto
else
find . -name $1 -print
fi
}

Las funciones pueden usar todas las órdenes de SH y UNIX y presenta una forma
muy potente para construir aliases.

6 Ayuda y Documentación
Para obtener ayuda sobre comandos de UNIX, se puede emplear la ayuda on-line, en
la forma de páginas de manual40 .
39
En BASH/SH la hash table se va generando dinámicamente a medida que el usuario va empleando las
órdenes. Ası́ el arranque del shell es más rápido, y el uso de orden equivalente
hash -r
casi nunca hace falta
40
En IBM/AIX la mejor orden es info
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 25

man comando : proporciona la ayuda sobre el comando deseado.


man -k word : proporciona las cabeceras de manuales donde aparezca la palabra
word
por ejemplo, para leer el manual de los shells, puedes entrar:
man sh csh tcsh bash
la orden formatea las páginas y te permite leer los manuales en el orden pedido.

7 Procesos
En una máquina existen multitud de procesos que pueden estar ejecutándose simultánemente.
La mayorı́a de ellos no corresponden a ninguna acción realizada por ti y no merecen
que les prestes mayor atención.
Los programas suelen tener uno de estos dos modos de ejecución :

• foreground: Son aquellos procesos que requieren de la interacción y/o atención


del usuario mientras se están ejecutando, o bien en una de sus fases de ejecución
(i.e. Introducción de datos ). Ası́ por ejemplo una consulta de una página de
manual es un proceso que debe ejecutarse claramente en foreground.

• background: Son aquellos procesos que no requieren de la interacción con el


usuario para su ejecución. Si bien el usuario desearı́a estar informado cuando
éste proceso termine. Un ejemplo de este caso serı́a la impresión de un fichero.

Sin embargo esta división que a primera vista pueda parecer tan clara y concisa, a
menudo en la práctica aparece la necesidad de conmutar de un modo al otro, detención
de tareas indeseadas, etc. Ası́ por ejemplo puede darse el caso de que estemos leyendo
una página de manual y de repente necesitemos ejecutar otra tarea.
Un proceso viene caracterizado por:

• process number

• job number

Veamos algunas de las órdenes más frecuentes para la manipulación de procesos:

• comando & Ejecución de un comando en el background41

• Ctrl-Z Detiene el proceso que estuviera ejecutándose en el foreground y lo


coloca detenido en el background

• Ctrl-C Termina un proceso que estuviera ejecutándose en el foreground

• Ctrl-\ Matar. Termina de forma definitiva un proceso que estuviera eje-


cutándose en el foreground

• ps x lista todos los procesos que pertenezcan al usuario, incluyendo los que
no están asociados a un terminal

• jobs lista los procesos que se hayan ejecutado desde el shell actual, mostran-
do el job number
41
Por omisión un comando se ejecuta siempre en el foreground.
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 26

• fg job number pasa a ejecución en foreground un proceso que se hallase en


background

• bg job number pasa a ejecución en background un proceso que se hallase


detenido con Ctrl-Z

• kill process number envı́a una señal42 a un proceso UNIX.


En particular kill -KILL envı́a la señal de término a un programa, pero no
hace falta al ser la señal por defecto.

Cuando se intenta abandonar una sesión con algún proceso aún detenido en el
background del Shell, se informa de ello con un mensaje del tipo:
There are stopped jobs
si no te importa, puedes intentar abandonarlo de nuevo y el Shell matará los jobs,
o puedes utilizar fg o bg para terminar/dejarlos.

8 Editores
Un editor es un programa que permite crear y/o modificar un fichero. Existen multitud
de editores diferentes, y al igual que ocurre con los shells, cada usuario tiene alguno
de su predilección.
Mencionaremos algunos de los más conocidos:

• vi – El editor standard de UNIX.

• emacs – Editor muy configurable en Lisp.


Existen multitud de modos para este editor (lector de mail, news, www,. . . )
que lo convierten en un verdadero shell para multitud de usuarios. Las últimas
versiones del mismo permiten la ejecución desde X-windows o terminal indistin-
tamente con el mismo binario.
Posee un tutorial en lı́nea: C-H t
El fichero de configuración personalizada es: $HOME/.emacs

• jove – Basado en Emacs, (Jonathan’s43 Own Version of Emacs).


Posee tutorial en una utilidad asociada: teachjove
El fichero de configuración personalizada es: $HOME/.joverc

• jed – Editor configurable en S-Lang.


Permite la emulación de editores como EMACS, EDT 44 y Wordstar45 .
Posee una ayuda en lı́nea C-H C-H.
El fichero de configuración personalizada es: $HOME/.jedrc

• xedit – Editor estándar del X Windows system.

• textedit – Standar Editor OpenLook del X Windows system.


42
Para ver las señales disponibles entra la orden kill -l (l==list).
43
El Jonathan éste es otro :-)
44
for VMS lusers
45
Para los Turbo C lusers :-)
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 27

• xjed – Versión de jed para el X Windows system.


Presenta como ventaja que es capaz de funcionar en modos (lenguaje C, Fortran,
TeX, Spice, Verilog, VHDL,. . . ) reconociendo palabras clave y signos de pun-
tuación, empleando un colorido distinto para ellos. El fichero de configuración
personalizada es el de jed: $HOME/.jedrc

Dado que los editores xedit y textedit disponen de menús autoexplicativos, dare-
mos a continuación unas ligeras nociones sobre el resto.

8.1 Editores modo EMACS


El editor GNU Emacs es uno de los que tienen mayor aceptación entre los usuarios
de UNIX, estando disponible bajo licencia GNU GPL46 para una gran cantidad de
arquitecturas. Dentro de los “inconvenientes” que presenta es que NO viene por defecto
incluı́do en la mayorı́a de los sistemas UNIX.
Este editor consta de tres zonas:

• La zona de edición: donde aparece el texto que está siendo editado y que ocupa la
mayor parte de la pantalla.

• La zona de información: es una barra que esta situada en la penúltima lı́nea de


la pantalla.

• La zona de introducción de datos: es la última lı́nea de la pantalla.

EMACS es un editor que permite la edición visual de un fichero (en constraste con el
modo de edición de vi). La mayorı́a de los comandos de EMACS se realizan empleando
la tecla de CONTROL o la tecla META47 . Emplearemos la nomenclatura: C-key para
indicar que la tecla key debe de ser pulsada junto con control y M-key para indicar que
la tecla Meta debe de ser pulsada junto a key (en este último caso NO es necesario pul-
sar simultáneamente las teclas ESC y key, pudiendo pulsarse secuencialmente ESC y
luego key).
A parte de las teclas rápidas que comentaremos, existen comandos que es posible eje-
cutar por nombre.
Ficheros

C-X C-F cargar fichero C-X 2 dividir ventana actual en 2 partes

C-X S salvar fichero C-X 1 sólo 1 ventana

C-X C-W salvar con nombre C-X O conmutar siguiente ventana

C-X C-C salir C-X B conmutar de buffer


C-X C-I insertar fichero C-G aborta

46
La licencia de GNU, da el permiso de libre uso de los programas con su fuentes, pero los autores
mantienen el Copyright (también conocido como Copyleft) y no es permitido distribuir los binarios sin
acesso a sus fuentes, los programas derivados de dichos fuentes heredan la licencia GNU.
47
Dado que la mayorı́a de los teclados actuales no poseen la tecla META se emplea como alternativa
ESC
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 28

(NOTA): Para salvar ficheros es válido tanto C-X S como C-X C-S, sin embargo debe
evitarse esta última opción en los terminales de texto, pues C-S provoca la detención
(Stop Scroll) del terminal. Para restaurar el terminal en este caso se emplea C-Q.
Comandos de movimiento

C-B izquierda M-F avanza una palabra


C-F derecha M-B retrocede una palabra

C-P arriba una línea C-V avanza una página


C-N abajo una ínea M-V retrocede una página

C-A principio línea C-L refresca pantalla

C-E fin de línea


M-> fin documento

M-< principio documento

Debe de comentarse que si el terminal lo acepta es posible el movimiento empleando


las teclas de cursor
Comandos de inserción y borrado
Al ser un editor en modo visual, las modificaciones se pueden hacer en el texto sin
necesidad de entrar en ningún modo especial.
Definición de regiones y reemplazo

C-space Comienzo región C-S Búsqueda hasta fin texto


M-W Copia región C-R Búsqueda hasta comienzo texto

C-W Corta región M-Q Búsqueda y sustitución


pide confirmación para sustituir (y/n)
C-Y Pega región

M-Y Rotación regiones


Aparecen las distintas regiones
seleccionadas con anterioridad

El editor conserva un conjunto de las últimas zonas seleccionadas durante la edición,


pudiendo recuperarse una antigua a pesar de haber seleccionado una nueva zona (LI-
FO).
Definición de macros

C-X ( Comienza la definición de una macro

C-X ) Termina la definición de una macro


C-X E Ejecuta una macro definida

Se entiende por macro a una sucesión de órdenes que se desea realizar.


Repetición
Cuando se desee repetir una órden un cierto número de veces se teclea previamente:
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 29

ESC number

Comandos
Aparte de los ya comentados existen muchas otras órdenes que no tienen necesaria-
mente una tecla rápida (bindkey) asociada. Para su ejecución debe de teclearse previ-
amente:

ESC X

y a continuación en la zona inferior de la pantalla se introduce el comando deseado.


Empleando el TAB se puede completar dicho comando.
Es conveniente conocer las secuencias de control basico de emacs (C-P, C-N, C-
B, C-F, C-Y, C-W, C-K, C-T, C-D) que también funcionan en el SHELL, mu-
chos programas de texto y las ventanas de diálogo de las aplicaciones de X Windows. A
su vez, los editores jed, xjed, jove, xedit también usan por defecto estas com-
binaciones.

9 El X windows system
El ‘X windows system’ es el sistema estándar de ventanas en estaciones de trabajo. Es
corriente que el sistema de ventanas sea arrancado automáticamente cuando tu entras
en tu cuenta. En caso contrario, la orden para arrancarlo es startx.
En el sistema X-windows deben distinguirse dos conceptos:

• server : Es un programa que se encarga de escribir en el dispositivo de vı́deo y de


capturar las entradas (por teclado, ratón, etc). Asimismo se encarga de mantener
los recursos y preferencias de las aplicaciones.
Sólo puede existir un server para cada pantalla!!

• client : Es cualquier aplicación que se ejecute en el sistema X Windows.


No hay lı́mite (en principio) en el número de clientes que pueden estarse ejecu-
tando simultáneamente. Los clientes pueden ser locales o remotos.
Window Manager (WM) Es un cliente con “privilegios especiales”: Controla el
comportamiento (forma,tamaño,..) del resto de clientes.
Existen varios, destacando :

– fvwm : F* Virtual Window Manager, el instalado por omisión.


– olwm : Open Look Window Manager, propio de SUN
– twm : Tab Window Manager, suministrado con la distribución X11R* del
MIT
– mwm : Motif Window Manager, suministrado con el OSF/Motif Toolkit

El ‘look and feel’ (o GUI) de X windows es muy configurable, y puede parecer muy
distinto, pero esto se debe al WM que se esté usando, no que las aplicaciones sean
distintas.

Para configurar tu sesión es necesario saber qué programas estas usando y ver las
páginas de manual. Los ficheros pricipales son:
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 30

.xinitrc ó .xsession fichero leı́do al arrancar X windows. Aqui se pueden definir los
programas que aparecen al inicio de tu sesión.

.fvwmrc fichero de configuración del fvwm. Ver las páginas de fvwm.

.olwmrc fichero de configuración del olwm. Ver las páginas del manual de olwm.

.Xdefaults Configuración general de las aplicaciones de X windows. Aquı́ puedes definir los
Resources que encontrás en los manuales de las aplicaciones de X.

.rhosts Fichero no de X windows, pero de permiso de acceso remoto, contiene los nombres
de otras máquinas desde donde puedes login sin uso de un password. Ver man
rhosts.

En caso de que tengas que correr una aplicación de X que no esté disponible en la
máquina que estas usando, eso no representa un problema. Las ordenes necesarias
son (por ejemplo para arrancar un xterm remoto):

unix1% xhost +unix2 #permite ventanas desde maquina unix2


unix1% rlogin unix2 #login remoto a otra maquina
Password: #Dar tu password (si es necesario)
unix2% setenv DISPLAY unix1:0 #definir el camino a tu pantalla
unix2% xterm #arranca la aplicacion en tu pantalla

Si todo está configurado correctamente, es posible que no haga falta dar un pass-
word (ver el fichero .rhosts), y en este caso puedes utilizar la orden rcmd para hacelo.
Por ejemplo, lo de arriba se harı́a con:
rcmd unix2 xterm
Cuando quieres salir, normalmente puedes encontrar la opción SALIR, en un menú
en la zona libre de la pantalla. Es corriente ver errores de tipo ‘IO error’ al salir.
Esto es porque has terminado tu sesión antes de terminar todos los programas que
tienes corriendo. Ignora este tipo de error.

9.1 Uso del ratón


El ratón es un dispositivo esencial en el uso de programas X, sin embargo la función
que realiza en cada uno de ellos no está normalizada. . .
Comentaremos la pauta seguida por la mayorı́a de las aplicaciones, pero debe tenerse
presente que es muy frecuente encontrar aplicaciones que no las respetan48 .

• Botón izquierdo (LB): Seleccionar. Comienza el bloque de selección.

• Botón central (MB): Pegar. Copia la selección en la posición del cursor.

• Botón derecho (RB): Ajustar. Delimita la selección.


Existen dos modos para determinar cuál es la ventana activa (aquella que recibe las
entradas de teclado):
48
Las aplicaciones que son conscientes de un uso anormal y están relizadas por programadores in-
teligentes, muestran en pantalla la función de cada botón cuando son posibles varias alternativas

También podría gustarte