小编chi*_*cks的帖子

`--`(双破折号)参数记录在哪里?

有一些实用程序接受--(双破折号)作为“选项结束”的信号,当文件名以破折号开头时需要:

$ 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 的火焰战争,它是一个有效的,而且我相信,有用的关注。

无论是catmved(我相信许多人)文件中的手册页这样的选择,我可以找到。

请注意,这./-file是使用--. 例如,source(dot) 命令(并写为.)(通常)不适用于--参数:

$ echo 'echo "Hello World!"' >-file

$ . ./-file
Hello World! …
Run Code Online (Sandbox Code Playgroud)

shell documentation options

53
推荐指数
2
解决办法
7502
查看次数

无法使用 Ctrl+C 停止 bash 脚本

我编写了一个带有循环的简单 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)

bash terminal signals

47
推荐指数
5
解决办法
4万
查看次数

Vim:所有可能的交换文件扩展名是什么?

当您在 vim 中编辑文件时,它会生成一个与当前文件同名但带有.swp扩展名的交换文件。

如果.swp已经被占用,那么它会生成一个.swo一个。如果这已经被采用,那么你会得到.swa,等等。

我找不到任何关于这些文件的确切命名回退顺序的文档,谁能澄清选择扩展名的约定?

vim filenames

32
推荐指数
5
解决办法
6232
查看次数

为什么`TZ=Asia/Kolkata date --date="1/1/1906"` 无效?

当我运行时:

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 年不是。任何线索为什么?

date timezone

27
推荐指数
1
解决办法
2023
查看次数

这个终端窗口图形技巧的名称是什么,它在突出显示的文本周围显示重音边缘?

我注意到一些在线终端窗口的屏幕截图,它们在状态栏或突出显示的行周围显示突出显示的细边缘。在以下示例中,请注意第 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 终端窗口的屏幕截图。

colors terminal emacs

19
推荐指数
1
解决办法
570
查看次数

如何实时更新`wc -l`?

我有一个命令<streaming ls> | wc -l,它工作正常,但<streaming ls>需要一段时间,这意味着直到几分钟后我才能得到最终的行数。

wc -l有没有办法可以实时得到 update 的输出?

shell-script wc

19
推荐指数
2
解决办法
3129
查看次数

双叉() - 为什么?

我在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)

在 github 上查看

我不明白为什么不简单地

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()

c fork daemon

17
推荐指数
1
解决办法
4573
查看次数

为什么oot在usleep -o中说“嘿”?

在 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”呢?

编辑: 当然这是一个复活节彩蛋,但它似乎可能是一个有故事的。

centos timeout

16
推荐指数
1
解决办法
1505
查看次数

Bash,总是检查 $PWD 作为路径的一部分?

背景:我的一位没有 Linux 背景的同事问我使用./before 一些命令而不是其他命令,所以我向他解释了如何PATH工作以及如何选择运行二进制文件。他的回答是这很愚蠢,他只是想不需要./在命令前打字。

问题:有没有办法轻松修改 shell 的行为,使其$PWD始终是第一个项目PATH

shell usability

16
推荐指数
2
解决办法
2197
查看次数

使用 Alt-Tab 获得窗口焦点的视觉反馈?(肉桂)

我经常遇到基于窗口的桌面(如 Cinnamon 或 XFCE)出现的问题,尤其是在多台显示器上。

我经常误读Alt-之后哪个窗口具有焦点Tab。所以我将开始打字,结果却出现在错误的窗口中。

肉桂有许多的选项Alt- Tab

  • "仅图标",
  • "仅缩略图",
  • "图标和缩略图",
  • "图标和窗口预览",
  • "窗口预览(无图标)",
  • "覆盖流 (3D)",
  • “时间线(3D)”。

然而:

  • 图标和/或缩略图没有提供足够的反馈,这是新的活动窗口。
  • 窗口预览越来越接近我的需要,但启动时间太长,而且视觉上太重。
  • Coverflow 和 Timeline 实在是太重了,混淆起来比帮助还多。

我想一个不错的解决方案是以某种方式为非活动窗口提供微妙的不同颜色。并且可能会显示一个“聚光灯”从一个窗口跳到另一个窗口。

这可能更适合功能请求。但是有人知道该问题的现有解决方案吗?

(Mint 17.1,'Rebecca',Cinnamon 64 位)

desktop window-manager cinnamon

15
推荐指数
1
解决办法
1212
查看次数