quiero hacer algo parecido a lo que esta escrito aquísin usar zsh (yo uso bash), pero si intento iniciar la pantalla con
screen 'cd /home/cataldo/Programs'
Obtuve el siguiente error:
Cannot exec 'cd home/cataldo/Programs': No such file or directory
Sin citas después del exec tampoco funciona. Las comillas dobles no hacen ninguna diferencia. Usar bash -c "cd .." no funciona.
¿Podría ser algún problema de permisos o la pantalla ejecuta comandos como un usuario especial al inicio?
¡Muchas gracias por su ayuda!
screen --version
Screen version 4.00.03jw4 (FAU) 2-May-06
cat /etc/debian_version
6.0.3
Respuesta1
No funciona porque cd
es un comando integrado en el shell (pruebe which cd
). La pantalla tiene uncomando chdirque puedes usar para lograr tu objetivo: coloca lo siguiente dentro de tu .screenrc:
chdir /home/cataldo/Programs
Ahora inicie la pantalla y debería estar en el directorio especificado.
Respuesta2
screen
No lo sabe cd
porque es un shell incorporado, por lo que screen
no puedo ejecutarlo. Sin embargo, screen
tiene un comando incorporado de chdir
. Si lo ejecuta chdir
solo desde la screen
línea de comando, todas las ventanas nuevas de la screen
sesión se iniciarán en su $HOME. Si ejecuta chdir /home/cataldo/Programs
desde la screen
línea de comando, todas las ventanas nuevas de la screen
sesión comenzarán en formato /home/cataldo/Programs
.
Si desea abrir 3 ventanas en directorios diferentes cuando inicia una nueva screen
sesión, defina ~/.screenrc
el directorio con chdir
y luego inicie inmediatamente una nueva ventana.
# Start these windows when screen starts up
chdir /home/cataldo/Programs
screen 0
chdir /usr/local/bin
screen 1
chdir /tmp
screen 2
chdir
De man 1 screen
(preste atención a la última línea)
chdir [directory]
Change the current directory of screen to the specified directory or,
if called without an argument, to your home directory (the value of
the environment variable $HOME). All windows that are created by means
of the "screen" command from within ".screenrc" or by means of "C-a :
screen ..." or "C-a c" use this as their default directory. Without a
chdir command, this would be the directory from which screen was invoked.
Hardcopy and log files are always written to the window's default
directory, not the current directory of the process running in the window.
You can use this command multiple times in your .screenrc to start
various windows in different default directories, but the last chdir value
will affect all the windows you create interactively.
Respuesta3
Lo que dices no tiene mucho sentido. Incluso si cd
fuera un comando real, la pantalla simplemente cambiaría de directorio y luego saldría inmediatamente, lo que no le haría ningún bien a nadie.
Si solo desea iniciar una sesión de pantalla específica en un directorio en particular:
(cd home/cataldo/Programs && screen)
Eso cambiará de directorio, iniciará la pantalla con un shell y regresará a su directorio existente cuando salga de la pantalla.
Respuesta4
Puede agregar stuff "cd /home/cataldo/Programs^M"
a su ~/.screenrc
o en el mensaje usandoC-a :