1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg <new group name> newgrp `id -gn`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。sg
は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の exec
コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
screen -S <session_name> -X at \# stuff "exec sg <new_group_name> newgrp ### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg newgrp id -gn
“`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。at
は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の id
コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
id -gn### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg <new group name> newgrp `id -gn`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。stuff
は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の [ &007 ]&003 コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
^M”
“`
screen -S <session_name> -p 0 -X stuff "exec sg <new_group_name> newgrp ### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg newgrp id -gn
”`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。&007 は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の [ &007 ]&003 コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
screen -S <session_name> -X at \# stuff "exec sg <new_group_name> newgrp ### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg newgrp id -gn
“`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。&007 は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の [ &007 ]&003 コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
id -gn### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg <new group name> newgrp `id -gn`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。&007 は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の [ &007 ]&003 コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
^M”
“`
id -gn### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg <new group name> newgrp `id -gn`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。&007 は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の [ &007 ]&003 コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
screen -S <session_name> -X at \# stuff "exec sg <new_group_name> newgrp ### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg newgrp id -gn
”`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。&007 は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の [ &007 ]&003 コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
id -gn### 1. 1.ログアウトと再ログインをせずに新しいグループのシェルを取得する
exec sg <new group name> newgrp `id -gn`
これはLegooolasの2層のnewgrpのトリックのバリエーションですが、1行にまとめられていて、手動でプライマリグループを入力する必要はありません。&007 は新しいシェルが既存のシェルを置き換えることを意味しているので、二度も「ログアウト」する必要はありません。また、環境の更新(グループの追加以外)もないので、現在の作業ディレクトリなどはそのまま保持されます。2. セッション内のすべてのウィンドウでコマンドを実行する
Screen の [ &007 ]&003 コマンドは、指定したウィンドウでコマンドを実行します (これはシェルコマンドではなく Screen コマンドです)。
^M"
“`
^M”
“`
&007 がスクリーンセッションで実行されるようにするためにはバ ックティックをエスケープする必要があることと、コマンドの最後に ‘enter’ を押すためにスクリーンを取得するために ^M が必要であることに注意してください。したがって、スクリーンウィンドウのいずれかがコマンドプロンプトで中途半端に書かれたコマンドを持っていたり、シェル以外のアプリケーション (例えば emacs, top) を実行していたりすると、何か奇妙なことが起こるかもしれません。もしこれが問題であるならば、私はいくつかのアイデアを持っています:
- 中途半端に書かれたコマンドを取り除くには、コマンドの先頭に”^C “を追加することができます。
- emacs のウィンドウなどでコマンドを実行しないようにするには、`at’ にウィンドウのタイトルなどでフィルタをかけることができます (上の例では、すべてのウィンドウにマッチする ”#“ を使っていますが、ウィンドウのタイトルやユーザなどでフィルタをかけることもできます)。
特定のウィンドウ (ウィンドウ番号で識別) でコマンドを実行するには、次のようにします:
&001