我的孩子(4 岁和 5 岁)在电脑上玩游戏时会大喊大叫。我找到了一种有效的治疗方法。当我听到很大的噪音时,我会进入游戏计算机并执行以下操作:
chvt 3; sleep 15; chvt 7
Run Code Online (Sandbox Code Playgroud)
这将在 Linux 上关闭屏幕 15 秒。我告诉他们电脑不喜欢大声喧哗。他们完全相信这一点,并请求计算机原谅。他们变得更安静了,但没有达到我会高兴的程度,所以我需要继续这个教育过程。但是,我并不总是手动执行此操作。
是否可以自动执行此操作?麦克风附在盒子上。如果响度水平超过某个阈值,那么我想运行一个命令。
$ whatis source
source: nothing appropriate.
$ man source
No manual entry for source
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
Run Code Online (Sandbox Code Playgroud)
它存在,并且可以运行。为什么 Ubuntu 中没有关于它的任何文档?它有什么作用?如何安装有关它的文档?
我想要一种快速而简单的方法来在文件更改时执行命令。我想要一些非常简单的东西,我会在终端上运行并在我完成处理该文件时关闭它。
目前,我正在使用这个:
while read; do ./myfile.py ; done
Run Code Online (Sandbox Code Playgroud)
然后Enter,每当我将该文件保存在我的编辑器中时,我都需要转到该终端并按。我想要的是这样的:
while sleep_until_file_has_changed myfile.py ; do ./myfile.py ; done
Run Code Online (Sandbox Code Playgroud)
或任何其他简单的解决方案。
顺便说一句:我正在使用 Vim,我知道我可以添加一个自动命令来在 BufWrite 上运行一些东西,但这不是我现在想要的那种解决方案。
更新:如果可能的话,我想要一些简单的、可丢弃的。更重要的是,我想在终端中运行一些东西,因为我想查看程序输出(我想查看错误消息)。
关于答案:感谢您的所有回答!他们都非常好,每个人都采用与其他人截然不同的方法。因为我只需要接受一个,所以我接受了我实际使用过的一个(它简单、快速且易于记忆),尽管我知道它不是最优雅的。
使用以下方法分配用户的次要组列表时:
# usermod -G <grouplist> <user>
Run Code Online (Sandbox Code Playgroud)
是否可以在不注销所有正在运行的会话的情况下强制此组分配生效?
这在Screen会话存在许多正在运行的 shell的情况下非常有用,因为本质上需要销毁整个会话才能使组分配生效。
我想我可以使用newgrp命令在正在运行的 shell 中更改用户的主要组- 是否有一些适用于次要组的替代方法?
理想情况下,我想要一些可以在每个 shell 中生效的东西,而无需在每个 shell 中手动运行,但如果失败,可能是某种强制 Screen 在每个 shell 中执行相同命令的方法。
我正在编写一个 makefile,它将在编译结束时清理一些无用的文件。如果已经创建了一个目标,它当然会跳过该目标,而无用的文件可能不存在。所以如果我这样做:
rm lexer.ml interpparse.ml interpparse.mli
Run Code Online (Sandbox Code Playgroud)
我可能会收到错误,因为其中一个文件不存在。有没有办法告诉rm忽略这些文件?
在阅读手册页时,我看到以下选项:
-f Attempt to remove the files without prompting for confirma-
tion, regardless of the file's permissions. If the file does
not exist, do not display a diagnostic message or modify the
exit status to reflect an error. The -f option overrides any
previous -i options.
Run Code Online (Sandbox Code Playgroud)
这听起来几乎是我想要的,但我不太确定权限部分。有没有办法做到这一点?
我在 Ubuntu 上使用 Tilda(下拉式终端)作为我的“命令中心”——几乎就像其他人使用 GNOME Do、Quicksilver 或 Launchy 的方式一样。
但是,我正在努力解决如何将进程(例如 Firefox)与启动它的终端完全分离 - 即防止这样的(非)子进程
例如,为了在“正确的”终端窗口中启动 Vim,我尝试了一个简单的脚本,如下所示:
exec gnome-terminal -e "vim $@" &> /dev/null &
Run Code Online (Sandbox Code Playgroud)
但是,这仍然会导致污染(而且,传递文件名似乎不起作用)。
我正在尝试使用以下命令更改符号链接的用户/组:
$ chown -h myuser:mygroup mysymbolic/
Run Code Online (Sandbox Code Playgroud)
但它并没有改变。我以 root 身份登录。当前用户/组设置为 root:root。什么地方出了错?
如果我有一个进程的 PID 号(在 UNIX 机器上),我怎样才能找到其关联进程的名称?
我需要做什么?
当我在没有 tmux 的情况下运行 shell(在 Gnome 终端中)时,鼠标滚动在tmux 中不起作用。似乎 tmux 发送鼠标滚动事件就像我按下向上/向下键一样。但我希望它通过 shell输出历史滚动。有没有办法让 tmux 像这样工作?
注意:我知道如何使用键盘滚动(感谢这里的另一个问题)。
我尝试在两个版本的 tmux 中进行鼠标滚动: