Befehl kann beim Start des GNU-Bildschirms nicht ausgeführt werden

Befehl kann beim Start des GNU-Bildschirms nicht ausgeführt werden

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 cdes 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

screenweiß nichts davon, cdda es ein integriertes Shell-Element ist, screenkann es also nicht ausführen. screenHat jedoch einen integrierten Befehl von chdir. Wenn Sie chdires allein von der screenBefehlszeile aus ausführen, screenwerden alle neuen Fenster in der Sitzung in Ihrem $HOME gestartet. Wenn Sie es chdir /home/cataldo/Programsvon der screenBefehlszeile aus ausführen, screenwerden alle neuen Fenster in der Sitzung in gestartet /home/cataldo/Programs.

screenWenn Sie beim Starten einer neuen Sitzung 3 Fenster in unterschiedlichen Verzeichnissen öffnen möchten , ~/.screenrcdefinieren Sie in Ihrem das Verzeichnis mit chdirund 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 cdsich 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 ~/.screenrcoder an der Eingabeaufforderung ergänzen, indem SieC-a :

verwandte Informationen