Mi solución actual para la edición de archivos en un servidor web remoto es utilizar Fetch para navegar por la máquina remota y TextWrangler a realizar las modificaciones. Pero como me siento más cómodo navegando por la línea de comando en la máquina remota (pero no lo suficientemente cómodo como para usar VIM ...), me gustaría poder escribir algo como 'abrir nombre de archivo.txt' en la máquina remota y tener abierto TextWrangler en mi máquina local. Escuché el término "túnel inverso" como una opción, pero no tengo idea de qué hacer a continuación. Cualquier sugerencia es muy apreciada, ¡gracias!apertura de un archivo remoto con TextWrangler
Respuesta
Creo que lo que usted se refiere se llama "la expedición X11" a través de ssh. Eche un vistazo a la página de manual de ssh_config (5) para la configuración (o simplemente use 'ssh' con el parámetro '-X'). Por lo que yo sé, esto solo funciona con los programas X11 (gvim, xemacs, etc.), porque el editor se está ejecutando en el host al que se está conectando, solo sucede con la visualización en su máquina local. Entonces, TextWrangler no es una opción, porque no es un programa X11.
utilizo Interarchy (de nolobe) para la edición remota. Es un cliente ftp/sftp bastante avanzado que le ofrece una vista del buscador de sus archivos remotos y le permite usar su editor favorito para trabajar en esos archivos.
Si no te gusta pagar por un programa de este tipo, hay un programa de código abierto llamado "Fugu" disponible en la Univerity de Michigan que también se puede utilizar.
Personalmente, uso Cyberduck como mi navegador S/FTP. En las preferencias de Cyberduck, puede definir un editor de texto predeterminado para editar archivos remotos. Ahora puedo presionar Cmd + K cuando tengo un archivo seleccionado, y se abrirá en TextWrangler. Cada vez que guardo, los cambios se transfieren automáticamente al archivo remoto.
realidad estaba tratando de hacer lo mismo, y nadie lo había escrito, así que me di cuenta de esto hoy.
No se requieren 2 y 3 partes opcionales a esto:
- Habilitar inicio de sesión SSH en ambos equipos (requerido)
- configurar un túnel SSH de la máquina remota a su máquina (requerido)
- configurar un alias para el túnel SSH (opcional)
- configurar un alias para TextWrangler en la máquina remota (opcional)
- configurar las claves SSH para que no tenga que introducir su contraseña cada vez (opcional)
Debe poder pasar ssh de local a remoto para ejecutar los comandos, y debe poder pasar ssh de remoto a local para poder enviar comandos a TextWrangler.
Para configurar el túnel ssh, necesita ejecutar un comando en el equipo local como:
ssh -f -N -R 10022:localhost:22 [username on remote machine]@[remote machine hostname]
El -f y -N banderas ponen ssh a un segundo plano y te dejan en su máquina. El indicador -R vincula un puerto en la computadora remota a un puerto en su computadora local. Cualquier cosa que entre en contacto con la máquina remota en el puerto 10022 será enviada al puerto 22 en su computadora local. El puerto remoto puede ser cualquier cosa que desee, pero debe elegir un puerto> 1024 para evitar conflictos y para que no tenga que ser root. Elegí 10022 porque es similar al puerto predeterminado de ssh de 22. Reemplace los corchetes con su nombre de usuario y nombre de máquina.
Deberá ejecutarlo una vez después de iniciar sesión.Para hacer el comando más fácil para usted, puede agregar un alias en su perfil de bash. Añadir lo siguiente a su local de ~/.bash_profile
:
alias open-tunnel='ssh -f -N -R 10022:localhost:22 [username on remote machine]@[remote machine hostname]'
Por supuesto, se puede elegir cualquier nombre de alias que te gusta.
Una vez que haya configurado el túnel, se puede utilizar un comando como el siguiente en la máquina remota:
ssh -p 10022 [username on local machine]@localhost "edit sftp://[username on remote machine]@[remote machine hostname]//absolute/path/to/file.txt"
La bandera -p dice que use el puerto 10022 (o el puerto que eligió anteriormente). Esto hará que la máquina remota se conecte a su máquina local y ejecute el comando entre comillas dobles sin abrir una sesión ssh interactiva. El comando en las comillas es el comando que ejecutaría en su máquina local para abrir el archivo remoto en TextWrangler.
Para hacer el comando más fácil para usted, puede agregar una función en su perfil de bash. Añada lo siguiente a su control remoto ~/.bash_profile
:
function edit { if [[ ${1:0:1} = "/" ]]; then abs_path="$1"; else abs_path="`pwd`/$1"; fi; ssh -p 10022 [username on local machine]@localhost "edit sftp://[username on remote machine]@[remote machine hostname]/$abs_path"; }
Esto es suponiendo que usted no tiene las herramientas de línea de comando TextWrangler instalados en la máquina remota. Si lo hace, debe nombrar la función algo distinto de edit
. Por ejemplo, tw
. Aquí, ${1:0:1}
mira el primer carácter del primer parámetro de la función, que debería ser la ruta del archivo. Si no comienza con /
, calculamos la ruta absoluta al agregar el directorio de trabajo actual (pwd
) al principio. Ahora, si estás en la máquina remota en /home/jdoe/some/directory/
y ejecutar edit some/other/directory/file.txt
, se ejecutará el siguiente en el equipo local:
edit sftp://[username on remote machine]@[remote machine hostname]//home/jdoe/some/directory/some/other/directory/file.txt
Por último, se deben establecer las claves ssh en ambas direcciones lo que no está solicitó una contraseña cada vez. He aquí una guía a otra persona escribió: http://pkeck.myweb.uga.edu/ssh/
que se ve como una buena solución. Pero, ¿para qué sirve el túnel? ¿No puedes hacer la segunda conexión ssh (la que ejecuta el comando de edición) directamente en tu computadora en lugar de hacerlo por este túnel? – Vortexfive
Me gusta el enfoque aquí, aunque es intimidante –
no creo que esto va a permitir la apertura de la línea de comandos, pero
Eclipse con Remote-System-Explorer también es compatible con la edición de archivos a través de conexión ssh
Esta versión ofrece esta funcionalidad bien. You can download it here. Una vez que se haya conectado a su sftp, puede hacer clic derecho en el archivo de texto y abrirlo con el editor de texto que elija.
respuesta Mínimo
Puede utilizar AppleScript.Así que desde la línea de comandos ejecutar este:
osascript <<EOF
tell application "TextWrangler"
activate
open location {"sftp://myusername:@my.server:22222//home/username/.bashrc"}
end tell
EOF
Notas
- obvio que no se desee escribir un documento de aquí en cada llamada, así que mi sugerencia sería poner esta lógica dentro de una shell script normal:
osascript <<EOF tell application "TextWrangler" activate open location {"$1"} end tell EOF
continuación, se invoca el script como el siguiente:
sh ~/bin/textwrangler.sh "sftp://myusername:@my.server:22222//home/username/.bashrc"
- especificar una ruta de host cualificada puede resultar tedioso cada vez para codificar ya sea que en el script, o se unen la invocación script a un golpe de teclado a través de su cáscara. Para bash:
bind '"\et":"sh ~/bin/textwrangler.sh \"sftp://myusername:@my.server:22222/\""'
Ahora se generan la mayor parte del comando presionandoAlt-t
- 1. Lectura de un archivo remoto con Java
- 2. Perl: Archivo de apertura
- 3. Excepción Manejo y apertura de un archivo?
- 4. Apertura de un archivo para anexar
- 5. simple TextWrangler Grep Reemplazar
- 6. archivo jar de apertura con privilegios de administrador
- 7. apertura de un archivo en el modo de 'A +'
- 8. Apertura de un archivo JSON grande en Python
- 9. Comentando/Descomponiendo un bloque de código Python en TextWrangler
- 10. C# archivo de apertura en una solución
- 11. ¿Cómo asignar un archivo remoto a Carrierwave?
- 12. Cargar archivo xml remoto
- 13. ¿Cómo puedo alinear un archivo remoto?
- 14. incluyendo un archivo remoto en PHP
- 15. cargar un archivo remoto para Google Drive
- 16. ¿Cómo incluir un archivo JavaScript remoto condicionalmente?
- 17. Obtiene un solo archivo de un repositorio remoto de git
- 18. Obtenga un solo archivo de un repositorio mercurial remoto
- 19. PHPUnit falló la apertura del archivo requerido
- 20. Apertura de un archivo relacionado con rails.vim en una nueva ventana
- 21. ¿Cómo verifico si existe un archivo en un control remoto?
- 22. buscar/reemplazar el uso de grep y Textwrangler
- 23. Efecto puerta de apertura con Core Animation
- 24. Apertura de archivo CSV delimitado por punto y coma
- 25. Obtener la última fecha de modificación de un archivo remoto
- 26. ¿Cómo extraer un solo archivo de un archivo de almacenamiento remoto?
- 27. ¿Cómo puedo saber si un archivo está en un sistema de archivos remoto con Perl?
- 28. AVURLAsset no se puede cargar con el archivo remoto
- 29. Guarde el archivo img remoto en el servidor, con php
- 30. Crear un proyecto remoto con PyDev
hombre, texto Wranger es tan práctica y su capacidad para editar archivos a través de SSH y no está expuesta a través de la línea de comandos :( –