我正在使用postfixmaildir 格式。存储在 maildir 中的消息的文件名如下所示:
1386021659.27745_1.alpha:2,S
Run Code Online (Sandbox Code Playgroud)
我知道第一部分是纪元时间,其余部分不确定。但我想要一些对人更友好的名字,比如
2013-12-18__120502.sender_or_subject_of_the_message:2,S
Run Code Online (Sandbox Code Playgroud)
我需要经常操作单个消息/文件(这就是我首先使用 maildir 的原因)。有一些更具描述性的文件名会有所帮助。
我可以设置这个postfix吗?
我的 bash 脚本(让我们称之为myscript)从标准输入(管道)获取输入,或者形成一个常规文件(如果文件名作为参数提供)
a) someprog | myscript
or
b) myscript file.txt
Run Code Online (Sandbox Code Playgroud)
然后,逐行处理数据。目前,我的代码如下所示:
if [ -t 0 ] ; then
while read LINE
do
prog_1
prog_2
...
prog_n
done
else
while read LINE
do
prog_1
prog_2
...
prog_n
done < $1
fi
Run Code Online (Sandbox Code Playgroud)
这个脚本工作正常,但似乎有太多的口是心非。我想知道是否有更好(更优雅)的方法来做到这一点。所有步骤1来n都是一样的。唯一的区别是< $1末尾是否有a 。没有更好的方法吗?
我注意到当我通过ssh以下方式执行命令时:
ssh myserver.mydomain.com "w"
Run Code Online (Sandbox Code Playgroud)
并且命令失败,ssh不打印任何错误。可以说,我拼错了我的服务器的主机名并且myserver.mydomain.com不存在。我会期望,ssh报告一些关于unable to connect to server. 但事实并非如此。相反,ssh只是不打印任何内容。现在,我知道我可以使用$?. 但这还不够。我在脚本中使用它,如果ssh更具体,我将不胜感激。其中man ssh有 option -v,但它用于调试并打印太多信息。
有什么办法可以让sshprint成为不成功的原因吗?
我有一个简单的bash脚本。我的脚本的一行与 grep 匹配“模式”并为匹配颜色
grep -i --color=always -- "$1"
Run Code Online (Sandbox Code Playgroud)
我需要修改它,以便它只为匹配着色,如果该行不是注释(即,如果它不以 开头#)。换句话说:我仍然希望 grep 匹配注释行,但不对其进行着色。
假设我有以下文本文件(添加了行号)
1 aaa PATTERN
2 bbb ccc PATTERN ddd
3 # eee PATTERN
4 fff ggg
Run Code Online (Sandbox Code Playgroud)
我需要 grep 表达式来匹配第 1、2、3 行,但只为未注释的行(1 和 2)着色
我的笔记本电脑上的键盘太敏感(打字时,我经常输入两个字符而不是一个)。
我一直在谷歌搜索并发现kbdrate。但由于某种原因,kbdrate无法正常工作:
# kbdrate
Typematic Rate set to 10.9 cps (delay = 250 ms)
# kbdrate -r 2
Typematic Rate set to 2.0 cps (delay = 250 ms)
# kbdrate
Typematic Rate set to 10.9 cps (delay = 250 ms)
Run Code Online (Sandbox Code Playgroud)
一开始,kbdrate设置为10.9 cps。当我将其更改为 2 时,它会报告已更改,但当我kbdrate再次运行时,它又是旧值10.9 cps。
如何修改键盘的灵敏度?我使用 Debian Wheezy 和 LXDE 桌面环境在终端模拟器 Terminator 中运行这些命令。
我应该补充一点,无论我使用什么值,即kbdrate -r 2 -d 500,我看不到任何效果
我已经libnotify-bin安装了,但是当我输入时
notify-send "hello"
Run Code Online (Sandbox Code Playgroud)
没发生什么事。没有错误,没有消息我有必要的包:
# dpkg -l | grep notify
ii libnotify-bin
ii libnotify4:amd64
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
我在 Debian Wheezy 上使用 LXDE
虽然@Anthon 建议的解决方案有效(安装notification-daemon),但我不确定这是否是“最佳”解决方案。我期待,这是足有libnotify-bin和libnotify4和dbus安装。Inedeed,在我的另一台机器上,notify-send 没有notification-daemon.
有人可以澄清是否notification-daemon有必要吗?
我正在使用启用的grsecurity内核CONFIG_GRKERNSEC_SOCKET_SERVER:
[*] Socket restrictions
[ ] Deny any sockets to group (NEW)
[ ] Deny client sockets to group (NEW)
[*] Deny server sockets to group
Run Code Online (Sandbox Code Playgroud)
这可以防止用户创建“服务器”套接字(即启动 Apache),但允许打开客户端套接字(即 Firefox)。
实际上,所有网络客户端都可以正常工作(Firefox、telnet、ssh、nc、w3m 等)。只有 Chrome 浏览器 (Chromium) 不起作用。
从命令行启动 chrome 时,出现以下错误:
ERROR:address_tracker_linux.cc(138)] Could not bind NETLINK socket: Permission denied
libudev: udev_monitor_enable_receiving: bind failed: Permission denied
FATAL:udev_linux.cc(31)] Check failed: 0 == ret (0 vs. -1)
Aborted
Run Code Online (Sandbox Code Playgroud)
在日志中,我看到:
grsec: denied bind() by /usr/lib/chromium/chromium[NetworkChangeNo:3920]
grsec: denied bind() by /usr/lib/chromium/chromium[WorkerPool/3922:3922]
grsec: denied bind() …Run Code Online (Sandbox Code Playgroud) 我有一个破折号脚本,我需要解析$1,它是一个包含由 ' :'分隔的两部分的字符串,例如foo:123. 我想存入foo$X 和123$Y。
我以为我可以使用read:
$ echo "foo:123" | tr ':' ' ' | read X Y
Run Code Online (Sandbox Code Playgroud)
但这不起作用(没有给出错误)
$ echo $X
Run Code Online (Sandbox Code Playgroud)
给出空行作为输出。
为什么我的read构造不起作用?我怎样才能实现我的目标(任何解决方案,都不必使用读取)
格式化字符%s品牌stat打印以字节为单位的文件大小
# stat -c'%A %h %U %G %s %n' /bin/foo
-rw-r--r-- 1 root root 45112 /bin/foo
Run Code Online (Sandbox Code Playgroud)
ls可以配置为使用“千分隔符”打印字节大小数字,即45,112代替通常的45112.
# BLOCK_SIZE="'1" ls -lA
-rw-r--r-- 1 root root 45,112 Nov 15 2014
Run Code Online (Sandbox Code Playgroud)
我可以类似地格式化 stat 的输出,以便文件大小有千位分隔符吗?
我stat首先使用的原因是,我需要输出 like ls,但没有时间,因此-c'%A %h %U %G %s %n'.
或者有没有其他方法可以在ls没有时间的情况下打印类似输出?
我想禁用insert键盘上的键,因为我在打字时经常不小心碰到它,它会弄乱我的文字。
我发现我可以用来xmodmap完全禁用插入键:
xmodmap -e "keycode 106 ="
Run Code Online (Sandbox Code Playgroud)
这有效,但还有另一个问题。事实证明,midnight commander将insert密钥用于完全不同的目的。不是为了像在文本编辑器中那样切换改写,而是为了选择多个文件。
这个功能mc实际上很有用,我经常使用它。
有什么方法可以禁用insert文本编辑器中的键作为改写 ON/OFF 的角色,但将其保留为“选择文件”的第二个角色mc?