Este es el comando gnuclient.emacs que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
gnuserv, gnuclient - Servidor y clientes para Emacs y XEmacs
SINOPSIS
gnucliente [-display display] [-q] [-v] [-l biblioteca] [-batch] [-f function] [-eval form]
[-h nombre de host] [-p puerto] [-r nombre-ruta-remota] [[+ línea] archivo] ...
gnudoito [-Q] formulario
gnuserv
adjuntar Eliminado a partir de gnuserv 3.x
DESCRIPCIÓN
gnucliente permite al usuario solicitar un proceso Emacs o XEmacs en ejecución para editar el nombre
archivos o directorios y / o evaluar formularios lisp. Dependiendo de su entorno, puede ser
un marco X o un marco TTY. Un uso típico de esto es con una conexión de acceso telefónico a un
máquina en la que se está ejecutando un proceso Emacs o XEmacs.
gnudoito es una interfaz de script de shell para `` gnuclient -batch -eval form ''. Su uso es
obsoleto. Intente acostumbrarse a llamar a gnuclient directamente.
gnuserv es el programa de servidor que se ejecuta en Emacs o XEmacs para manejar todos
solicitudes entrantes y salientes. Por lo general, no se invoca directamente, sino que se inicia desde
Emacs o XEmacs cargando el gnuserv paquete y evaluando el formulario Lisp (gnuserv-
comienzo).
adjuntar ya no existe.
OPCIONES
gnucliente soporta tantas opciones de línea de comandos de Emacs como tenga sentido en este
contexto. Además, agrega algunos propios.
Las opciones con nombres largos también se pueden especificar utilizando un guión doble en lugar de un solo
.
-monitor monitor, --monitor la visualización
Si se da esta opción o se establece la variable de entorno "DISPLAY", entonces
gnuclient le dirá a Emacs que edite archivos en un marco en el dispositivo X especificado.
-q Esta opción informa gnucliente para salir una vez realizada la conexión con el
Proceso XEmacs. Normalmente gnucliente espera hasta que todos los archivos del comando
La línea ha sido terminada con (sus búferes eliminados) por el proceso XEmacs, y todos
Se han evaluado los formularios.
-v Cuando se especifica esta opción gnucliente solicitará que los archivos especificados sean
visto en lugar de editado.
-l bibliotecas
Dígale a Emacs que cargue la biblioteca especificada.
-lote Dígale a Emacs que no abra ningún marco. Simplemente cargue las bibliotecas y evalúe el código lisp. Si
no hay archivos para ejecutar, funciones para llamar o formularios para evaluar se dan usando el -l,
-fo -evaluar opciones, luego los formularios para evaluar se leen desde STDIN.
-f función,
Haga que Emacs ejecute la función lisp.
-evaluar formulario
Haga que Emacs ejecute la forma lisp.
-h hostname
Usado solo con sockets de dominio de Internet, esta opción especifica la máquina host
que debería estar funcionando gnuserv. Si no se especifica esta opción, el valor de
la variable de entorno GNU_HOST se usa si se establece. Si no se especifica un nombre de host, y
la variable GNU_HOST no está configurada, no se intentará una conexión a Internet.
NB: gnuserv NO permite conexiones a Internet a menos que la autenticación XAUTH sea
utilizado o la variable GNU_SECURE se ha especificado y apunta a una lista de archivos
todos los hosts de confianza. (Consulte SEGURIDAD a continuación).
Tenga en cuenta que se puede especificar una dirección de Internet en lugar de un nombre de host que
acelerar las conexiones al servidor bastante, especialmente si el cliente
la máquina está ejecutando YP.
Tenga en cuenta también que un nombre de host de UNIX se puede utilizar para especificar que la conexión a
el servidor debe usar un socket de dominio Unix (si es compatible) en lugar de un conector de Internet
socket de dominio.
-p Puerto Usado solo con sockets de dominio de Internet, esta opción especifica el puerto de servicio
utilizado para comunicarse entre el servidor y los clientes. Si no se especifica esta opción,
entonces se usa el valor de la variable de entorno GNU_PORT, si se establece, de lo contrario un
El servicio llamado `` gnuserv '' se busca en la base de datos de servicios. Finalmente, si no
se puede encontrar otro valor para el puerto, luego se usa un puerto predeterminado que es
generalmente 21490 + uid.
Tenga en cuenta que desde gnuserv no permite opciones de línea de comandos, el puerto para ello
deben especificarse mediante uno de los métodos alternativos.
-r ruta
Usado solo con sockets de dominio de Internet, el argumento de nombre de ruta puede ser necesario para
informar a Emacs cómo llegar al directorio raíz de una máquina remota. gnucliente
antepone esta cadena a cada argumento de ruta dado. Por ejemplo, si estuvieras intentando
para editar un archivo en una máquina cliente llamada otter, cuyo directorio raíz era
accesible desde la máquina del servidor a través de la ruta / net / otter, entonces este argumento
debe establecerse en '/ net / otter'. Si se omite esta opción, se toma el valor
de la variable de entorno GNU_NODE, si se establece, o de la cadena vacía en caso contrario.
[+ n] presentar
Esta es la ruta del archivo que se va a editar. Si el archivo es un directorio, entonces el
En su lugar, se suelen invocar los navegadores de directorio dired o monkey. El cursor se pone
en la línea número 'n' si se especifica.
CONFIGURACIÓN
gnuserv está empaquetado de manera estándar con versiones recientes de XEmacs. Por lo tanto, deberías ser
capaz de iniciar el servidor simplemente evaluando el formulario XEmacs Lisp (gnuserv-start), o
equivalentemente escribiendo 'Mx gnuserv-start'.
CONFIGURACIÓN
El comportamiento de este conjunto de programas se controla principalmente en el lado lisp en Emacs y
su comportamiento se puede personalizar en gran medida. Escriba `Mx personalizar-grupo RET gnuserv
RET 'para un fácil acceso. Se puede encontrar más documentación en el archivo `gnuserv.el '
EJEMPLO
gnuclient -q -f mh-smail
gnuclient -h cuco -r / ange @ nutria: / Tmp /*
gnuclient ../src/listproc.c
Se proporcionan más ejemplos y scripts de contenedor de muestra en el directorio etc / gnuserv del
Instalación de Emacs.
SYSV IPC
SysV IPC se utiliza para comunicarse entre gnucliente y gnuserv si el símbolo SYSV_IPC es
definido en la parte superior de gnuserv.h. Esto es incompatible tanto con el dominio Unix como con Internet
comunicación de socket de dominio como se describe a continuación. Un archivo llamado / tmp / gsrv ??? se crea como un
clave para la cola de mensajes, y si se quita provocará la comunicación entre el servidor y
cliente fallará hasta que se reinicie el servidor.
DOMINIO UNIX ENCHUFES
Se utiliza un socket de dominio Unix para comunicarse entre gnucliente y gnuserv si el simbolo
UNIX_DOMAIN_SOCKETS se define en la parte superior de gnuserv.h. Un archivo llamado
/ tmp / gsrvdir ???? / gsrv se crea para la comunicación. Si el símbolo USE_TMPDIR se establece en
la parte superior de gnuserv.h, $ TMPDIR, cuando se establece, se usa en lugar de / tmp. Si ese archivo es
eliminado, o TMPDIR tiene valores diferentes para el servidor y el cliente, comunicación
entre el servidor y el cliente fallará. Solo el usuario que ejecute gnuserv podrá
conectar al enchufe.
DOMINIO DE INTERNET ENCHUFES
Los sockets de dominio de Internet se utilizan para comunicarse entre gnucliente y gnuserv si el
El símbolo INTERNET_DOMAIN_SOCKETS se define en la parte superior de gnuserv.h. Ambos dominios de Internet
y los sockets de dominio Unix se pueden utilizar al mismo tiempo. Si se especifica un nombre de host mediante -ho
a través de la variable de entorno GNU_HOST, gnucliente establecer conexiones usando internet
socket de dominio. De lo contrario, se intenta una conexión local a través de un socket de dominio Unix o
SYSVIPC.
SEGURIDAD
Al utilizar sockets de dominio de Internet, se necesita una forma de seguridad más sólida que no
necesario con sockets de dominio Unix o SysV IPC. Actualmente, dos autenticación
Los protocolos son compatibles para proporcionar esto: MIT-MAGIC-COOKIE-1 (basado en el X11 autenticación x(1)
programa) y un simple mecanismo de control de acceso basado en host, en adelante llamado GNUSERV-1. los
El protocolo GNUSERV-1 siempre está disponible, mientras que el soporte para MIT-MAGIC-COOKIE-1 puede o puede
no se han habilitado (a través de un #define en la parte superior de gnuserv.h) en tiempo de compilación.
gnuserv, utilizando GNUSERV-1, realiza una forma limitada de control de acceso a nivel de máquina.
De forma predeterminada, no se abre ningún socket de dominio de Internet. Si se puede encontrar la variable GNU_SECURE
in gnuserv's, y nombra un nombre de archivo legible, luego este archivo se abre y
se supone que es una lista de hosts, uno por línea, desde los cuales el servidor permitirá solicitudes.
Se rechazarán las conexiones de cualquier otro host. Incluso la máquina en la que gnuserv is
La ejecución no está permitida para hacer conexiones a través de la toma de Internet a menos que su nombre de host
se especifica explícitamente en este archivo. Tenga en cuenta que un host puede ser una dirección IP numérica
o un nombre de host, y que any el usuario en un host aprobado puede conectarse a su gnuserv y
ejecute elisp arbitrario (por ejemplo, elimine todos sus archivos). Si este archivo contiene muchos
nombres de host, el servidor puede tardar bastante en iniciarse.
Cuando el protocolo MIT-MAGIC-COOKIE-1 está habilitado, una toma de Internet is abierto por defecto.
gnuserv aceptará una conexión de cualquier host y esperará una "cookie mágica"
(esencialmente, una contraseña) que debe presentar el cliente. Si el cliente no presenta el
cookie, o si la cookie es incorrecta, se considera que la autenticación del cliente tiene
fallido. En este punto. gnuserv recurre al protocolo GNUSERV-1; Si el cliente es
llamando desde un host listado en el archivo GNU_SECURE, la conexión será aceptada,
de lo contrario, será rechazado.
Gracias a MIT-MAGIC-COOKIE-1 autenticación
Cuando el gnuserv se inicia el servidor, busca una cookie definida para mostrar 999 en
la máquina donde está funcionando. Si se encuentra la cookie, se almacenará para su uso como
la cookie de autenticación. Estas cookies se definen en un archivo de autorización (generalmente
~ / .Xauthority) que es manipulado por el X11 autenticación x(1) programa. Por ejemplo, una maquina
"kali" que ejecuta un emacs que invoca gnuserv debe responder de la siguiente manera (en el
indicador de shell) cuando se configura correctamente.
lista de kali% xauth
GS65.SP.CS.CMU.EDU:0 MIT-MAGIC-COOKIE-1 11223344
KALI.FTM.CS.CMU.EDU:999 MIT-MAGIC-COOKIE-1 1234
En el caso anterior, el archivo de autorización define dos cookies. El segundo, definido
para la pantalla 999 en la máquina servidor, se usa para la autenticación gnuserv.
En el lado de la máquina cliente, el archivo de autorización debe contener una línea idéntica,
especificando el del servidor Galleta. En otras palabras, en una máquina "foobar" que desea
conectarse a "kali", la salida de `xauth list 'debe contener la línea:
KALI.FTM.CS.CMU.EDU:999 MIT-MAGIC-COOKIE-1 1234
Para crear la cookie, puede usar un comando como
xauth agrega `nombre de host`: 999 MIT-MAGIC-COOKIE-1` head -c512 / dev / urandom | md5sum`
Para obtener más información sobre los archivos de autorización, consulte la autenticación x(1X11) página de manual,
o invoque xauth de forma interactiva (sin ningún argumento) y escriba "ayuda" en el indicador.
Recuerde ese caso en el nombre del protocolo de autorización (es decir, `MIT-MAGIC-
GALLETA-1 ') is ¡significativo!
MEDIO AMBIENTE
DISPLAY Dispositivo X predeterminado para colocar el marco de edición.
Use gnuclient.emacs en línea usando los servicios de onworks.net