Wie kann ich erreichen, dass der GNU-Bildschirm in meinem Home-Verzeichnis unter OS X nicht gestartet wird?

11

GNU Screen ( screen) verhält sich unter OS X 10.5 (Leopard) und 10.6 (Snow Leopard) anders als unter Linux (mindestens Ubuntu, Red Hat und Gentoo) und OS X 10.4 (Tiger). In 10.5 und 10.6 platzieren mich neue Bildschirme (erstellt mit screenoder ^A c) immer in meinem Home-Verzeichnis ~. Unter Linux und OS X Tiger haben neue Bildschirme einen Ort, pwdan dem der Bildschirm ursprünglich erstellt wurde.

Erfundene Beispiele, um zu veranschaulichen, was ich meine:

Tiger:

$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben/foo
$ screen # or ^A c
$ pwd
/Users/ben/foo

Leopard, Schneeleopard:

$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben
$ screen # or ^A c
$ pwd
/Users/ben

Wie bringe ich Leopard und Snow Leopard dazu, sich wie Tiger zu verhalten?

Benjamin Oakes
quelle

Antworten:

7

Eine bessere Möglichkeit, um zu überprüfen, was genau ausgeführt wird, wenn Sie eingeben screen, ist die Ausführung command -V screen. Hier erfahren Sie, ob eine Binärdatei (in diesem Fall wird der vollständige Pfad angegeben) oder ein Shell-Alias, eine Funktion usw. ausgeführt wird.

Sie können auch überprüfen, ob chdirin Ihrem ~/.screenrcoder im gesamten System ein Befehl vorhanden ist screenrc.

Jamessan
quelle
3
Endlich herausgefunden, was es tat. Ich hatte shell -$SHELLin einem Abschnitt von einem Kollegen kopiert. Das Problem verschwand, als es entfernt wurde. Es verhält sich nicht so wie unter Linux usw.
Benjamin Oakes
3

Die screen(1)Manpage beschreibt den chdirBefehl Bildschirm .

   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. …

Meine Bildschirmkonfiguration für eine Programmiersitzung enthält den Befehl

chdir "$HOME/Projects"
große Nase
quelle
2

Der erste Schritt besteht darin, sicherzustellen, dass der Bildschirm kein Alias ​​ist.

Tippe aliasund suche screen. Seien Sie gewarnt, dass diese Liste lang sein könnte. Möglicherweise möchten Sie tippen alias | grep screen, um die Spreu vom Weizen zu trennen.

Wenn screensich herausstellt, dass es sich um einen Alias ​​für so etwas handelt cd ~ && screen, können Sie diesen mit entfernen unalias screen.

elf81
quelle
Noch besser: benutzetype screen
thiagowfx