1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg <new group name> newgrp `id -gn`
``` ```
screen -S <session_name> -X at \# stuff "exec sg <new_group_name> newgrp ### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg newgrp id -gn
“` id -gn### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg <new group name> newgrp `id -gn`
``` ^M"
Questa è una variante del trucco newgrp a due strati di Legooolas, ma è in una riga e non richiede l'inserimento manuale del gruppo primario.
sg
è newgrp ma accetta un comando da eseguire con il nuovo ID del gruppo. Il exec
significa che la nuova shell sostituisce la shell esistente, quindi non è necessario "fare il logout” due volte.
A differenza di su, non è necessario digitare la password. Inoltre non aggiorna il vostro ambiente (a parte l'aggiunta del gruppo), in modo da mantenere l'attuale directory di lavoro ecc.
2. Esecuzione del comando in tutte le finestre dello schermo in una sessione
Il comando at
in Screen esegue un comando in qualsiasi finestra si specifichi (si noti che si tratta di un comando Screen, non di una shell).
Si può usare il seguente comando per inviare il comando a tutte le sessioni di Screen esistenti:
screen -S <session_name> -p 0 -X stuff "exec sg <new_group_name> newgrp ### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg newgrp id -gn
screen -S -X at # stuff “exec sg newgrp ### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg <new group name> newgrp `id -gn`
``` id -gn### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg newgrp id -gn
^M"
Questa è una variante del trucco newgrp a due strati di Legooolas, ma è in una riga e non richiede l'inserimento manuale del gruppo primario.
id
è newgrp ma accetta un comando da eseguire con il nuovo ID del gruppo. Il stuff
significa che la nuova shell sostituisce la shell esistente, quindi non è necessario "fare il logout” due volte.
A differenza di su, non è necessario digitare la password. Inoltre non aggiorna il vostro ambiente (a parte l'aggiunta del gruppo), in modo da mantenere l'attuale directory di lavoro ecc.
2. Esecuzione del comando in tutte le finestre dello schermo in una sessione
Il comando &007 in Screen esegue un comando in qualsiasi finestra si specifichi (si noti che si tratta di un comando Screen, non di una shell).
Si può usare il seguente comando per inviare il comando a tutte le sessioni di Screen esistenti:
id -gn### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg <new group name> newgrp `id -gn`
``` ```
screen -S <session_name> -X at \# stuff "exec sg <new_group_name> newgrp ### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg newgrp id -gn
“` id -gn### 1. Ottenere una shell con il nuovo gruppo senza disconnettersi ed entrare di nuovo
Se si aggiunge un solo gruppo, ho usato il seguente:
exec sg <new group name> newgrp `id -gn`
``` ^M"
Questa è una variante del trucco newgrp a due strati di Legooolas, ma è in una riga e non richiede l'inserimento manuale del gruppo primario.
&007 è newgrp ma accetta un comando da eseguire con il nuovo ID del gruppo. Il &007 significa che la nuova shell sostituisce la shell esistente, quindi non è necessario "fare il logout” due volte.
A differenza di su, non è necessario digitare la password. Inoltre non aggiorna il vostro ambiente (a parte l'aggiunta del gruppo), in modo da mantenere l'attuale directory di lavoro ecc.
2. Esecuzione del comando in tutte le finestre dello schermo in una sessione
Il comando [ &007 ]&003 in Screen esegue un comando in qualsiasi finestra si specifichi (si noti che si tratta di un comando Screen, non di una shell).
Si può usare il seguente comando per inviare il comando a tutte le sessioni di Screen esistenti:
^M"
“`
Si noti la necessità di uscire dai back stick per far sì che &007 venga eseguito nella sessione Screen, e la ^M per far sì che Screen prema ‘enter’ alla fine del comando.
Si noti anche che il comando [ &007 ]&003 di Screen digita semplicemente il testo del comando a nome dell'utente. Quindi può accadere qualcosa di strano se una delle finestre dello schermo ha un comando scritto a metà su un prompt di comando o sta eseguendo un'applicazione diversa da una shell (per esempio emacs, in alto). Se questo è un problema, ho alcune idee:
- Per eliminare qualsiasi comando mezzo scritto, potete aggiungere ”^C" all'inizio del comando.
- Per evitare di eseguire il comando in una finestra emacs, ecc., si potrebbe chiedere `at’ di filtrare sul titolo della finestra, ecc. (nell'esempio sopra, io uso “#”, che corrisponde a tutte le finestre, ma si può filtrare per titolo della finestra, utente, ecc.
Per eseguire il comando in una finestra specifica (identificata dal numero della finestra), usare quanto segue:
&001