Este es el comando virt-edit 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
virt-edit: edita un archivo en una máquina virtual
SINOPSIS
virt-editar [--opciones] -d domname archivo [archivo ...]
virt-edit [--options] -a disk.img [-a disk.img ...] archivo [archivo ...]
virt-edit [-d nombre_dominio | -a disk.img] archivo -e 'expr'
Viejo estilo:
virt-edit archivo domname
virt-edit disk.img [disk.img ...] archivo
ADVERTENCIA
Usando "virt-edit" en máquinas virtuales en vivo, o al mismo tiempo con otras herramientas de edición de disco,
puede ser peligroso y potencialmente causar daños en el disco. La máquina virtual debe estar cerrada
down antes de usar este comando, y las imágenes de disco no deben editarse al mismo tiempo.
DESCRIPCIÓN
"virt-edit" es una herramienta de línea de comandos para editar "archivo" donde cada "archivo" existe en el nombre
máquina virtual (o imagen de disco).
Se pueden dar varios nombres de archivo, en cuyo caso se editan uno por uno. Cada
El nombre del archivo debe ser una ruta completa, comenzando en el directorio raíz (comenzando con '/').
Si solo desea ver un archivo, use virt-gato(1).
Para casos más complejos, debe mirar el pez invitado(1) herramienta (consulte "USO DE GUESTFISH"
abajo).
"virt-edit" no se puede utilizar para crear un nuevo archivo. pez invitado(1) puede hacer eso y mucho más.
EJEMPLOS
Edite los archivos nombrados de forma interactiva:
virt-edit -d midominio /boot/grub/grub.conf
virt-edit -d midominio / Etc / passwd
Para los invitados de Windows, se entienden algunas rutas de Windows:
virt-edit -d mywindomain 'c: \ autoexec.bat'
Si Perl está instalado, también puede editar archivos de forma no interactiva (consulte "NO INTERACTIVOS
EDICIÓN "a continuación). Para cambiar el nivel predeterminado de inicio a 5:
virt-edit -d midominio / etc / inittab -e 's / ^ id:. * / id: 5: initdefault: /'
OPCIONES
--ayuda
Muestra ayuda breve.
-a presentar
--agregar presentar
Agregar presentar que debería ser una imagen de disco de una máquina virtual. Si la máquina virtual
tiene varios dispositivos de bloque, debe suministrarlos a todos con -a .
El formato de la imagen del disco se detecta automáticamente. Para anular esto y forzar un
formato particular utilice el --format = .. .
-a URI
--agregar URI
Agregue un disco remoto. Consulte "AÑADIR ALMACENAMIENTO REMOTO" en pez invitado(1).
-b extensión
--respaldo extensión
Crea una copia de seguridad del archivo original in los invitado disco imagen. La copia de seguridad tiene el
nombre de archivo original con "extensión" agregada.
Normalmente, el primer carácter de "extensión" sería un punto "". entonces escribirías:
virt-edit -b .orig [etc.]
De forma predeterminada, no se realiza ningún archivo de copia de seguridad.
-c URI
--conectar URI
Si usa libvirt, conéctese al dado URI. Si se omite, nos conectamos al
hipervisor libvirt predeterminado.
Si especifica dispositivos de bloqueo de invitados directamente, libvirt no se usa en absoluto.
-d invitado
--dominio invitado
Agregue todos los discos del invitado libvirt nombrado. Los UUID de dominio se pueden utilizar en lugar de
Nombres
- teclas de eco
Al solicitar claves y frases de contraseña, virt-edit normalmente desactiva el eco para que pueda
no puede ver lo que está escribiendo. Si no le preocupan los ataques de la tempestad y
no hay nadie más en la sala, puede especificar esta bandera para ver lo que está escribiendo.
-e EXPR
--editar EXPR
--expr EXPR
En lugar de iniciar el editor externo, aplique de forma no interactiva la expresión Perl
"EXPR" a cada línea del archivo. Consulte "EDICIÓN NO INTERACTIVA" a continuación.
Tenga cuidado de citar correctamente la expresión para evitar que sea alterada por el
cáscara.
Tenga en cuenta que esta opción solo está disponible cuando Perl 5 está instalado.
--format = raw | qcow2 | ..
--formato
El predeterminado para el -a La opción es detectar automáticamente el formato de la imagen del disco. Utilizando
esto fuerza el formato del disco para -a opciones que siguen en la línea de comando. Utilizando
--formato sin argumento vuelve a la detección automática para las siguientes -a .
Por ejemplo:
virt-edit --format = raw -a archivo disk.img
fuerza el formato sin procesar (sin detección automática) para disco.img.
virt-edit --format = raw -a disk.img --format -a another.img file
fuerza el formato sin procesar (sin detección automática) para disco.img y vuelve a la detección automática para
otro.img.
Si tiene imágenes de disco de invitado de formato sin procesar que no son de confianza, debe usar esta opción para
especifique el formato del disco. Esto evita un posible problema de seguridad con
invitados (CVE-2010-3851).
- llaves-de-stdin
Lea los parámetros de clave o frase de contraseña de stdin. El valor predeterminado es intentar leer
frases de contraseña del usuario abriendo / dev / tty.
-m dev [: punto de montaje [: opciones [: fstype]]]
--montar dev [: punto de montaje [: opciones [: fstype]]]
Monte la partición nombrada o el volumen lógico en el punto de montaje dado.
Si se omite el punto de montaje, el valor predeterminado es /.
Especificar cualquier punto de montaje deshabilita la inspección del invitado y el montaje de su
root y todos sus puntos de montaje, así que asegúrese de montar todos los puntos de montaje necesarios para
trabajar con los nombres de archivo dados como argumentos.
Si no sabe qué sistemas de archivos contiene una imagen de disco, puede ejecutar guestfish
sin esta opción, enumere las particiones, los sistemas de archivos y los LV disponibles (consulte
"list-particitions", "list-filesystems" y "lvs" comandos), o puede utilizar el
sistemas de archivos virt(1) programa.
La tercera (y rara vez se usa) parte del parámetro de montaje es la lista de opciones de montaje
utilizado para montar el sistema de archivos subyacente. Si no se da, entonces las opciones de montaje
son la cadena vacía o "ro" (este último si el --ro se utiliza la bandera). Por
al especificar las opciones de montaje, anula esta opción predeterminada. Probablemente el único
El tiempo que usaría esto es para habilitar ACL y / o atributos extendidos si el sistema de archivos
puede apoyarlos:
-m / dev / sda1: /: acl, user_xattr
Usar esta bandera es equivalente a usar el comando "mount-options".
La cuarta parte del parámetro es el controlador del sistema de archivos que se utilizará, como "ext3" o
"ntfs". Esto rara vez es necesario, pero puede ser útil si varios controladores son válidos para un
sistema de archivos (por ejemplo: "ext2" y "ext3"), o si libguestfs identifica erróneamente un sistema de archivos.
-v
--verboso
Habilite los mensajes detallados para la depuración.
-V
--versión
Muestra el número de versión y sale.
-x Habilite el seguimiento de las llamadas a la API de libguestfs.
VIEJO ESTILO COMANDO LÍNEA ARGUMENTOS
Las versiones anteriores de virt-edit le permitían escribir:
virt-edit disk.img [disk.img ...] archivo
or
virt-edit archivo de nombre de invitado
mientras que en esta versión deberías usar -a or -d respectivamente para evitar el caso confuso
donde una imagen de disco puede tener el mismo nombre que un invitado.
Por compatibilidad, el estilo antiguo todavía es compatible.
NO INTERACTIVO EDICIÓN
"virt-edit" normalmente llama a $ EDITOR (o vi) para que el administrador del sistema pueda
edite el archivo de forma interactiva.
También hay dos formas de utilizar "virt-edit" de los scripts para realizar ediciones automáticas.
a archivos. (Tenga en cuenta que aunque can use "virt-edit" así, es menos propenso a errores
escribir scripts directamente usando la API libguestfs y Augeas para el archivo de configuración
edición.)
El primer método es establecer temporalmente $ EDITOR en cualquier script o programa que desee ejecutar.
El script se invoca como "$ EDITOR tmpfile" y debería actualizar "tmpfile" en su lugar.
le gusta.
El segundo método es utilizar el -e parámetro de "virt-edit" para ejecutar un breve fragmento de Perl en
el estilo de SED(1). Por ejemplo, para reemplazar todas las instancias de "foo" con "bar" en un archivo:
virt-edit -d nombre_dominio nombre_archivo -e 's / foo / bar /'
Se puede utilizar todo el poder de las expresiones regulares de Perl (ver Perlre(1)). Por ejemplo para
eliminar la contraseña de root que podría hacer:
virt-editar -d nombre de dominio / Etc / passwd -e 's / ^ root:. * ?:/ Root:: / '
Lo que realmente sucede es que el fragmento se evalúa como una expresión de Perl para cada línea de
el archivo. La línea, incluida la "\ n" final, se pasa en $ _ y la expresión debe
actualice $ _ o déjelo sin cambios.
Para eliminar una línea, establezca $ _ en la cadena vacía. Por ejemplo, para eliminar el usuario "apache"
cuenta desde el archivo de contraseña puede hacer:
virt-edit -d midominio / Etc / passwd -e '$ _ = "" si / ^ apache: /'
Para insertar una línea, antepóngala o añádala a $ _. Sin embargo, agregando líneas al final de la
archivo es bastante difícil de esta manera ya que no existe el concepto de "última línea del archivo" -
tu expresión simplemente no se vuelve a llamar. Es posible que desee utilizar el primer método
(configurando $ EDITOR) si desea hacer esto.
La variable $ lineno contiene el número de línea actual. Como es tradicional, la primera línea
en el archivo es el número 1.
El valor de retorno de la expresión se ignora, pero la expresión puede llamar "morir" en
para abortar todo el programa, dejando intacto el archivo original.
Recuerde que cuando haga coincidir el final de una línea, $ _ puede contener la "\ n" final, o (para DOS
files) "\ r \ n", o si el archivo no termina con una nueva línea, entonces ninguno de estos. Así para
coincidir o sustituir algún texto al final de una línea, use esta expresión regular:
/ algún texto (\ r? \ n)? $ /
Alternativamente, use la función perl "chomp", teniendo cuidado de no mordisquear $ _ en sí mismo (ya que
que eliminaría todas las líneas nuevas del archivo):
my $ m = $ _; chomp $ m; $ m = ~ / algún texto $ /
VENTANAS RUTAS
"virt-edit" tiene una capacidad limitada para comprender las letras y rutas de las unidades de Windows (p. ej.
E: \ foo \ bar.txt).
Si y solo si el invitado está ejecutando Windows, entonces:
· Los prefijos de letras de unidad como "C:" se resuelven en el Registro de Windows para
sistema de archivos correcto.
· Cualquier carácter de barra invertida ("\") en la ruta se reemplaza con barras inclinadas hacia adelante para que
libguestfs puede procesarlo.
· La ruta se resuelve sin distinción entre mayúsculas y minúsculas para ubicar el archivo que debe editarse.
Hay algunas deficiencias conocidas:
· Es posible que algunos enlaces simbólicos NTFS no se sigan correctamente.
· No se siguen los puntos de unión NTFS que cruzan los sistemas de archivos.
USO PESCADO INVITADO
pez invitado(1) es una herramienta de nivel inferior más potente que puede utilizar cuando "virt-edit"
no funciona.
Usar "virt-edit" es aproximadamente equivalente a hacer:
guestfish --rw -i -d nombre de dominio editar / archivo
donde "domname" es el nombre del invitado libvirt, y /expediente es la ruta completa al archivo.
El comando anterior usa la función de inspección de invitados de libguestfs y, por lo tanto, no funciona en
invitados que libguestfs no puede inspeccionar, o en cosas como imágenes de disco arbitrarias que no
contener invitados. Para editar un archivo en una imagen de disco directamente, use:
guestfish --rw -a disk.img -m / dev / sda1 editar / archivo
donde disco.img es la imagen del disco, / Dev / sda1 es el sistema de archivos dentro de la imagen del disco para
editar y /expediente es la ruta completa al archivo.
"virt-edit" no puede crear archivos nuevos. Utilice los comandos de guestfish "tocar", "escribir" o
"cargar" en su lugar:
guestfish --rw -i -d domname touch / newfile
guestfish --rw -i -d domname write / newfile "nuevo contenido"
guestfish --rw -i -d nombre_dominio cargar archivo local / archivo nuevo
MEDIO AMBIENTE VARIABLES
"EDITOR"
Si se establece, esta cadena se utiliza como editor. Puede contener argumentos, por ejemplo. "emacs -nw"
Si no se establece, se utiliza "vi".
SALIR ESTADO
Este programa devuelve 0 si tiene éxito, o distinto de cero si hubo un error.
Use virt-edit en línea usando los servicios de onworks.net