Comment faire de GNU Écran démarrer une nouvelle fenêtre dans le répertoire de travail ACTUEL?
Par défaut, lorsque vous créez une nouvelle fenêtre dans GNU Écran, il va commencer dans le répertoire où l'écran est invoquée. Je veux commencer une nouvelle fenêtre dans GNU Screen dans le répertoire de travail en cours de la fenêtre, je suis actuellement dans. Comment faire? Merci!
- GNU Écran: "un libre multiplexeur de terminal qui permet à un utilisateur d'accéder à de multiples séparer les sessions terminal à l'intérieur d'une simple fenêtre de terminal ou terminal distant session." en.wikipedia.org/wiki/GNU_Screen
Vous devez vous connecter pour publier un commentaire.
Voir la gnu écran
chdir
de commande. Toutes les nouvelles fenêtres créé dans l'écran de l'utiliser comme leur répertoire initial. À l'aide de ce que vous pouvez faire quelque chose commeEt votre nouvelle fenêtre (avec toutes les futures créé sous windows) sera dans le répertoire. Si c'est toujours le travail en cours dir vous pouvez être en mesure de définir quelque chose dans votre
screenrc
à le faire en une seule commande.Voir la gnu écran de la page de man, c'est assez complet.
L'écran de commande chdir
Écran ne peut pas accéder à votre variable d'environnement ni exécuter backticked commandes. Le plus proche que je peux arriver à le faire en un seul clic avec un petit script bash comme ce
ou de manière plus compacte
screen -X
envoie la commande à la cours d'exécution écran session. La première ligne crée une variable appeléecurrentdir
. La deuxième ligne envoie lecurrentdir
à lachdir
de commande, puis crée une nouvelle fenêtre de l'écran..screenrc
droit? La deuxième partie de la ligne de commande?La solution la plus simple est de mettre les chaînes de caractères suivantes dans votre ~/.screenrc et puis nous C-x pour ouvrir de nouvelles fenêtres:
http://www.michaelkelleher.info a plus de conseils pour niveau intermédiaire/avancé de l'écran des utilisateurs.
Depuis que le site semble avoir disparu, vous pouvez trouver l'archive ici: Michael Kelleher Site Personnel sur Archive.org
Je n'ai pas trouvé de solution qui fonctionne lorsque vous avez déjà un processus qui s'exécute dans une fenêtre, alors je suis venu avec ma propre idée. J'ai ajouté les lignes suivantes dans mon .bash_profile:
L'écran du répertoire de travail est mis à jour chaque fois que vous changez de répertoire. Quelqu'un peut ne pas aimer cette approche, mais il fonctionne comme un charme.
C'est peut-être spécifique à Byobu, mais tout simplement en tapant
screen
ouvre une nouvelle fenêtre dans le répertoire courant.Pour faire écran à ouvrir un nouvel onglet/fenêtre dans le répertoire courant, vous pouvez ajouter le code suivant à votre
.screenrc
fichier:Ce sera la cause de l' Ctrl + un c commande pour ouvrir de nouveaux onglets/fenêtres dans le répertoire de la fenêtre/onglet.
Remarque: vous devez Vous assurer que
screen
ne pas démarrer une le shell de connexion par défaut, parce que cela va provoquer la coquille de démarrage dans le répertoire par défaut pour un shell de connexion plutôt que le répertoire courant. Cela signifie que Dans votre.screenrc
fichier, votreshell
commande ne peut pas inclure un tiret ('-') caractère.Par exemple, c'est faux (c'est à dire qu'il va démarrer un shell de login):
Mais c'est à droite (c'est à dire pas démarrer un shell de connexion):
Note 2: Malheureusement, cette méthode ne se comportent pas exactement comme la valeur par défaut de la nouvelle fenêtre/onglet commande en
screen
. Au lieu de cela, il écrit la commande de la fenêtre en cours et l'exécute pour créer la nouvelle fenêtre/onglet, de sorte qu'il ne fonctionne pas pendant une longue exécution de processus du shell. En d'autres termes, ce raccourci clavier ne peut être exécutée que lorsque les commandes du shell peut être exécutée.Note 3: Si vous voulez
screen
d'ouvrir de nouvelles fenêtres/onglets dans le répertoire courant et ouvrir un shell de connexion, vous pouvez ajouter le code suivant à votre.screenrc
fichier:Vous pouvez également exécuter:
Ou si vous voulez commencer une nouvelle fenêtre dès que vous définissez chdir, utilisation:
Dans votre
.screenrc
mettre une ligne qui utilise lachdir
de commande si vous voulez la même chose à chaque fois.Si vous utilisez une session écran à l'intérieur de cette session, vous pouvez taper:
Sans argument, il sera votre répertoire home, le même résultat en tapant
cd
.Si vous avez un script (c'est une programmation de q&un site) ou en dehors de l'écran et l'écran est en cours d'exécution, vous pouvez question:
Qui vous aurez probablement suivre l'exécution de certains nouveaux processus sur l'écran avec:
Je n'ai pas encore trouvé un moyen de savoir ce que c'était et de le modifier (dans un script) donc si quelqu'un voudrais mettre à jour cette réponse, veuillez le faire.
J'ai une presque parfaite solution pour bash. 🙂
Si vous n'utilisez jamais
password
pour définir l'écran de verrouillage de mot de passe, il suffit d'ajouter ce pour$HOME/.bash_profile
:Besoin de mot de passe? avec cette:
Espère juste que les développeurs de l'écran ajouter la variable d'environnement
PWD
dès que possible.