Я хочу сделать что-то похожее на то, что написано здесьбез использования zsh (я использую bash), но если я попытаюсь запустить screen с помощью
screen 'cd /home/cataldo/Programs'
Я получаю следующую ошибку:
Cannot exec 'cd home/cataldo/Programs': No such file or directory
Без кавычек после exec тоже не работает. Двойные кавычки ничего не меняют. Использование bash -c "cd .." не работает.
Может быть, проблема с правами доступа или при запуске screen выполняет команды от имени специального пользователя?
Большое спасибо за Вашу помощь!
screen --version
Screen version 4.00.03jw4 (FAU) 2-May-06
cat /etc/debian_version
6.0.3
решение1
Это не работает, потому что cd
это встроенная команда оболочки (попробуйте which cd
). На экране естькоманда chdirкоторые вы можете использовать для достижения своей цели: Поместите следующее в ваш .screenrc:
chdir /home/cataldo/Programs
Теперь откройте начальный экран и вы должны оказаться в указанном каталоге.
решение2
screen
не знает о , cd
так как это встроенная команда оболочки, поэтому screen
не может ее выполнить. Однако, screen
имеет встроенную команду chdir
. Если вы выполните chdir
ее из screen
командной строки, все новые окна в screen
сеансе будут запускаться в вашем $HOME. Если вы выполните ее chdir /home/cataldo/Programs
из screen
командной строки, все новые окна в screen
сеансе будут запускаться в /home/cataldo/Programs
.
Если вы хотите открыть 3 окна в разных каталогах при запуске нового screen
сеанса, определите ~/.screenrc
каталог в файле , chdir
а затем сразу же откройте новое окно.
# Start these windows when screen starts up
chdir /home/cataldo/Programs
screen 0
chdir /usr/local/bin
screen 1
chdir /tmp
screen 2
chdir
От man 1 screen
(обратите внимание на последнюю строку)
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.
решение3
То, что вы говорите, не имеет особого смысла. Даже если бы cd
это была настоящая команда, screen просто сменил бы каталог и немедленно вышел бы, что не принесло бы никому никакой пользы.
Если вы хотите запустить только определенный сеанс экрана в определенном каталоге:
(cd home/cataldo/Programs && screen)
Это позволит сменить каталог, запустить screen с оболочкой и вернуться в существующий каталог после выхода из screen.
решение4
Вы можете добавить stuff "cd /home/cataldo/Programs^M"
в свой ~/.screenrc
или в командной строке, используяC-a :