有一些实用程序接受--
(双破折号)作为“选项结束”的信号,当文件名以破折号开头时需要:
$ echo "Hello World!" >-file
$ cat -- -file
Hello World!
$ cat -file # cat - -file fails in the same way.
cat: invalid option -- 'f'
Try 'cat --help' for more information.
Run Code Online (Sandbox Code Playgroud)
但是其中一些实用程序在手册页中没有显示这样的选项。
该man
页面cat
没有一个文件的使用(或有效性)--
的说法在任何OS'es的。这并不意味着是 Unix-Linux 的火焰战争,它是一个有效的,而且我相信,有用的关注。
无论是cat
,mv
,ed
(我相信许多人)文件中的手册页这样的选择,我可以找到。
请注意,这./-file
是使用--
. 例如,source
(dot) 命令(并写为.
)(通常)不适用于--
参数:
$ echo 'echo "Hello World!"' >-file
$ . ./-file
Hello World! …
Run Code Online (Sandbox Code Playgroud) 我编写了一个带有循环的简单 bash 脚本,用于打印日期和 ping 到远程机器:
#!/bin/bash
while true; do
# *** DATE: Thu Sep 17 10:17:50 CEST 2015 ***
echo -e "\n*** DATE:" `date` " ***";
echo "********************************************"
ping -c5 $1;
done
Run Code Online (Sandbox Code Playgroud)
当我从终端运行它时,我无法使用Ctrl+C. 它似乎将 发送^C到终端,但脚本并没有停止。
MacAir:~ tomas$ ping-tester.bash www.google.com
*** DATE: Thu Sep 17 23:58:42 CEST 2015 ***
********************************************
PING www.google.com (216.58.211.228): 56 data bytes
64 bytes from 216.58.211.228: icmp_seq=0 ttl=55 time=39.195 ms
64 bytes from 216.58.211.228: icmp_seq=1 ttl=55 time=37.759 ms
^C <= That is Ctrl+C …
Run Code Online (Sandbox Code Playgroud) 当您在 vim 中编辑文件时,它会生成一个与当前文件同名但带有.swp
扩展名的交换文件。
如果.swp
已经被占用,那么它会生成一个.swo
一个。如果这已经被采用,那么你会得到.swa
,等等。
我找不到任何关于这些文件的确切命名回退顺序的文档,谁能澄清选择扩展名的约定?
当我运行时:
TZ=Asia/Kolkata date --date="1/1/1906"
Run Code Online (Sandbox Code Playgroud)
我得到:
date: invalid date ‘1/1/1906’
Run Code Online (Sandbox Code Playgroud)
在这里我可以找到一篇很好的文章: 加尔各答时间
但混淆也来自于 1905 年是一个有效日期这一事实。只有 1906 年不是。任何线索为什么?
我注意到一些在线终端窗口的屏幕截图,它们在状态栏或突出显示的行周围显示突出显示的细边缘。在以下示例中,请注意第 1、5 和 389 行周围的浅灰色边缘:
在此示例中,请注意 Emacs 模式行(状态栏)周围的黄色边缘:
此效果的名称是什么,在 OS X 10.10 下使用 iTerm 2 是否可能?
更新
在做了一些研究和挖掘 Emacs自定义界面主题代码后,我发现了一些定义边缘的代码。在 Emacs 的说法中,它被称为:box
,它的属性之一是line-width
。这是在主题中定义的框线示例:
'(modeline ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed))))
Run Code Online (Sandbox Code Playgroud)
对于文档:box
可以在Emacs手册的发现面部属性的文件,尽管它没有提到它是如何工作的,或终端支持。
我开始认为这可能是 Emacs 的 GUI 版本的一个特殊功能(例如Aquamacs,但我很确定我已经看到了具有类似框高亮显示的 Ubuntu Unity 终端窗口的屏幕截图。
我有一个命令<streaming ls> | wc -l
,它工作正常,但<streaming ls>
需要一段时间,这意味着直到几分钟后我才能得到最终的行数。
wc -l
有没有办法可以实时得到 update 的输出?
我在catwm(一个简约的窗口管理器)的源代码中发现了以下函数:
void spawn(const Arg arg) {
if(fork() == 0) {
if(fork() == 0) {
if(dis)
close(ConnectionNumber(dis));
setsid();
execvp((char*)arg.com[0],(char**)arg.com);
}
exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么不简单地
void spawn(const Arg arg) {
if(fork() == 0) {
if(dis)
close(ConnectionNumber(dis));
setsid();
execvp((char*)arg.com[0],(char**)arg.com);
}
}
Run Code Online (Sandbox Code Playgroud)
?在这里使用 double 有什么好处吗fork()
?
在 Centos 6.6 机器上,我注意到了这一点......
[root@abcd /]# usleep --help
Usage: usleep [microseconds]
-v, --version Display the version of this program, and exit
-o, --oot oot says hey!
Help options:
-?, --help Show this help message
--usage Display brief usage message
[root@abcd /]# usleep -o
oot says hey!
Run Code Online (Sandbox Code Playgroud)
虽然手册页没有提到它......
OPTIONS
--usage Show short usage message.
--help, -?
Print help information.
-v, --version
Print version information.
Run Code Online (Sandbox Code Playgroud)
那么,为什么oot说“ hey
”呢?
编辑: 当然这是一个复活节彩蛋,但它似乎可能是一个有故事的。
背景:我的一位没有 Linux 背景的同事问我使用./
before 一些命令而不是其他命令,所以我向他解释了如何PATH
工作以及如何选择运行二进制文件。他的回答是这很愚蠢,他只是想不需要./
在命令前打字。
问题:有没有办法轻松修改 shell 的行为,使其$PWD
始终是第一个项目PATH
?
我经常遇到基于窗口的桌面(如 Cinnamon 或 XFCE)出现的问题,尤其是在多台显示器上。
我经常误读Alt-之后哪个窗口具有焦点Tab。所以我将开始打字,结果却出现在错误的窗口中。
肉桂有许多的选项Alt- Tab:
然而:
我想一个不错的解决方案是以某种方式为非活动窗口提供微妙的不同颜色。并且可能会显示一个“聚光灯”从一个窗口跳到另一个窗口。
这可能更适合功能请求。但是有人知道该问题的现有解决方案吗?
(Mint 17.1,'Rebecca',Cinnamon 64 位)