如果您使用此代码:
echo -e '\t\t\tString' | grep '^[\t]*String'
Run Code Online (Sandbox Code Playgroud)
结果是空白,因为它不匹配,但是:
echo -e '\t\t\tString' | grep $'^[\t]*String'
Run Code Online (Sandbox Code Playgroud)
作品。我发誓我一定在我的脚本和终端中使用了第一行的代码一百次,从来没有使用过这样的“$”字符,而且它似乎总是有效。最近有什么变化吗?为什么需要“$”字符?还是我做错了什么?
是否可以用八进制值表示 +X 符号权限?chmod(1) 手册页说:
仅当文件是目录或已对某些用户具有执行权限时才执行/搜索
这意味着chmod -R g+X仅当已经为用户、组或其他设置了执行位时才会添加组执行权限。您当然可以使用 find 以艰难的方式做到这一点:
find . -perm /ugo=x -exec chmod g+x {} \;
Run Code Online (Sandbox Code Playgroud)
然而,在不使用find或test首先检查文件权限的情况下,如何用八进制模式做同样的事情并不明显。这是可能的,还是有些区域符号和八进制权限不重叠?
我正在使用 Ubuntu 12.10 和 xserver-xorg/quantal 1:7.7+1ubuntu4。
我有一台带有内置键盘的笔记本电脑,无法识别某些字母。我目前正在通过打开终端并运行以下 shell 函数来禁用内置键盘:
disable_keyboard () {
xinput --set-int-prop $(
xinput --list |
ruby -ane 'if /AT.*keyboard/ then puts $_.match(/(?<==)\d+/) end'
) "Device Enabled" 8 0
}
Run Code Online (Sandbox Code Playgroud)
这通过禁用内置的AT Translated Set 2 键盘同时允许我的外部Chicony USB 键盘继续工作来工作(尽管是手动的)。但是,我真的希望在 X11 会话期间自动发生这种情况。
我尝试如下修改我的 X.org 配置:
# /etc/X11/xorg.conf.d/disable_keyboard
Section "InputClass"
Identifier "disable built-in keyboard"
MatchIsKeyboard "on"
MatchProduct "AT Translated Set 2 keyboard"
Option "Ignore" "on"
EndSection
Run Code Online (Sandbox Code Playgroud)
然而,这要么不是 X11 启动时的来源,要么不是正确的咒语。如何正确配置 X11 以仅 …
我偶尔会有需要在维护窗口中使用的防火墙规则,但不希望在其余时间处于活动状态(因此会消耗 CPU 周期或减慢网络接口速度)。我在需要时添加规则,然后想要将其清除并阻止 iptables 对流经过滤器链的数据包和字节进行计数。
我第一次在详细模式下检查 iptables 时,数据包和字节计数始终为零。例如:
$ sudo iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Run Code Online (Sandbox Code Playgroud)
然而,一旦过滤器表被初始化,刷新表或重置计数器并不会阻止表继续对数据包和字节进行计数。例如:
$ sudo iptables -F; sleep 5; sudo iptables -L -n …Run Code Online (Sandbox Code Playgroud)