1. 获得一个带新组的shell,而不需要再登录和再次登录
如果你只增加一个组,我用的是:
exec sg <new group name> newgrp `id -gn`
这是Legooolas的两层newgrp技巧的变种,但它是在一行中,不需要你手动输入主组。
sg
的意思是新的shell取代了现有的shell,所以你不需要两次 “注销"。
与使用su不同的是,你不需要输入密码。它也不会刷新你的环境(除了添加组之外),所以你保留了当前的工作目录等。
2. 在一个会话中的所有Screen窗口中执行命令
Screen中的exec
命令在你指定的任何窗口中运行命令(注意这是Screen命令,不是shell命令)。
您可以使用下面的命令将命令发送到所有现有的Screen会话中:
screen -S <session_name> -X at \# stuff "exec sg <new_group_name> newgrp ### 1. 获得一个带新组的shell,而不需要再登录和再次登录
如果你只增加一个组,我用的是:
exec sg newgrp id -gn
”`
这是Legooolas的两层newgrp技巧的变种,但它是在一行中,不需要你手动输入主组。
at
的意思是新的shell取代了现有的shell,所以你不需要两次 “注销"。
与使用su不同的是,你不需要输入密码。它也不会刷新你的环境(除了添加组之外),所以你保留了当前的工作目录等。
2. 在一个会话中的所有Screen窗口中执行命令
Screen中的id
命令在你指定的任何窗口中运行命令(注意这是Screen命令,不是shell命令)。
您可以使用下面的命令将命令发送到所有现有的Screen会话中:
id -gn### 1. 获得一个带新组的shell,而不需要再登录和再次登录
如果你只增加一个组,我用的是:
exec sg <new group name> newgrp `id -gn`
这是Legooolas的两层newgrp技巧的变种,但它是在一行中,不需要你手动输入主组。
stuff
的意思是新的shell取代了现有的shell,所以你不需要两次 "注销"。
与使用su不同的是,你不需要输入密码。它也不会刷新你的环境(除了添加组之外),所以你保留了当前的工作目录等。
2. 在一个会话中的所有Screen窗口中执行命令
Screen中的[&007]&003命令在你指定的任何窗口中运行命令(注意这是Screen命令,不是shell命令)。
您可以使用下面的命令将命令发送到所有现有的Screen会话中:
^M”
“`
注意,需要转义回车,让&007在Screen会话中运行,并在命令结束时用^M让Screen点击 "回车"。因此,如果屏幕窗口中的一个窗口在命令提示符上有一个半写的命令,或者运行的是shell以外的应用程序(例如emacs, top),可能会发生一些奇怪的事情。如果这是一个问题,我有一些想法: