Ich möchte etwas Ähnliches tun wie das, was geschrieben steht Hierohne zsh zu verwenden (ich verwende bash), aber wenn ich versuche, screen mit zu starten
screen 'cd /home/cataldo/Programs'
Ich erhalte die folgende Fehlermeldung:
Cannot exec 'cd home/cataldo/Programs': No such file or directory
Ohne Anführungszeichen nach exec geht es auch nicht. Doppelte Anführungszeichen machen keinen Unterschied. Die Verwendung von bash -c "cd .." funktioniert nicht.
Möglicherweise liegt ein Berechtigungsproblem vor, oder der Bildschirm führt beim Start Befehle als Sonderbenutzer aus?
Vielen Dank für Ihre Hilfe!
screen --version
Screen version 4.00.03jw4 (FAU) 2-May-06
cat /etc/debian_version
6.0.3
Antwort1
Es funktioniert nicht, weil cd
es sich um einen in der Shell integrierten Befehl handelt (versuchen Sie es which cd
). Screen hat einchdir-Befehldie Sie verwenden können, um Ihr Ziel zu erreichen: Fügen Sie Folgendes in Ihre .screenrc ein:
chdir /home/cataldo/Programs
Nun erscheint der Startbildschirm und Sie sollten sich im angegebenen Verzeichnis befinden.
Antwort2
screen
weiß nichts davon, cd
da es ein integriertes Shell-Element ist, screen
kann es also nicht ausführen. screen
Hat jedoch einen integrierten Befehl von chdir
. Wenn Sie chdir
es allein von der screen
Befehlszeile aus ausführen, screen
werden alle neuen Fenster in der Sitzung in Ihrem $HOME gestartet. Wenn Sie es chdir /home/cataldo/Programs
von der screen
Befehlszeile aus ausführen, screen
werden alle neuen Fenster in der Sitzung in gestartet /home/cataldo/Programs
.
screen
Wenn Sie beim Starten einer neuen Sitzung 3 Fenster in unterschiedlichen Verzeichnissen öffnen möchten , ~/.screenrc
definieren Sie in Ihrem das Verzeichnis mit chdir
und starten Sie dann sofort ein neues Fenster.
# Start these windows when screen starts up
chdir /home/cataldo/Programs
screen 0
chdir /usr/local/bin
screen 1
chdir /tmp
screen 2
chdir
Von man 1 screen
(achten Sie auf die letzte Zeile)
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.
Antwort3
Was Sie sagen, ergibt nicht viel Sinn. Selbst wenn es cd
sich um einen echten Befehl handeln würde, würde screen nur das Verzeichnis wechseln und dann sofort beendet werden, was niemandem etwas nützen würde.
Wenn Sie nur eine bestimmte Bildschirmsitzung in einem bestimmten Verzeichnis starten möchten:
(cd home/cataldo/Programs && screen)
Dadurch wird das Verzeichnis geändert, der Bildschirm wird mit einer Shell gestartet und Sie kehren zu Ihrem vorhandenen Verzeichnis zurück, wenn der Bildschirm beendet wird.
Antwort4
Sie können stuff "cd /home/cataldo/Programs^M"
Ihrer ~/.screenrc
oder an der Eingabeaufforderung ergänzen, indem SieC-a :