说我有一个文件:
# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Run Code Online (Sandbox Code Playgroud)
我只想知道“foobar”后面出现什么词,所以我可以使用这个正则表达式:
"foobar \(\w\+\)"
Run Code Online (Sandbox Code Playgroud)
括号表示我对 foobar 后面的单词特别感兴趣。但是当我执行 a 时grep "foobar \(\w\+\)" test.txt,我得到了与整个正则表达式匹配的整行,而不仅仅是“foobar 之后的单词”:
foobar bash 1
foobar happy
Run Code Online (Sandbox Code Playgroud)
我更希望该命令的输出如下所示:
bash
happy
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉 grep 只输出与正则表达式中的分组(或特定分组)匹配的项目?
如何将目录中的所有文件(包括隐藏文件)移动到另一个目录?
例如,如果我有一个文件夹“Foo”,里面有文件“.hidden”和“notHidden”,我如何将这两个文件移动到名为“Bar”的目录中?以下不起作用,因为“.hidden”文件保留在“Foo”中。
mv Foo/* Bar/
Run Code Online (Sandbox Code Playgroud)
自己试试吧。
mkdir Foo
mkdir Bar
touch Foo/.hidden
touch Foo/notHidden
mv Foo/* Bar/
Run Code Online (Sandbox Code Playgroud) 我想看看rm在 linux 中执行 an 时会删除哪些文件。大多数命令似乎都有一个试运行选项来显示此类信息,但我似乎无法为rm. 这甚至可能吗?
当一个进程被一个可处理的信号杀死时,例如SIGINTorSIGTERM但它不处理该信号,该进程的退出代码是什么?
对于无法处理的信号,例如SIGKILL?
据我所知,杀死进程SIGINT可能会导致退出代码130,但这会因内核或外壳实现而异吗?
$ cat myScript
#!/bin/bash
sleep 5
$ ./myScript
<ctrl-c here>
$ echo $?
130
Run Code Online (Sandbox Code Playgroud)
我不确定如何测试其他信号...
$ ./myScript &
$ killall myScript
$ echo $?
0 # duh, that's the exit code of killall
$ killall -9 myScript
$ echo $?
0 # same problem
Run Code Online (Sandbox Code Playgroud) 我在 linux 中使用的大多数命令的行为都完全相同,无论我是否/在目录名称的末尾包含斜杠字符。
例如:
ls /home/cklein
ls /home/cklein/
cp foo bar
cp foo/ bar/
Run Code Online (Sandbox Code Playgroud)
这个尾部斜杠什么时候重要?尾部斜杠的语义是什么?
我想在机器上安装kubectl版本1.2.4。Kubernetes 文档推荐snap用于在 Ubuntu 上安装。
snap install --help不是很有用,一个有前途的参数--revision=不起作用:
$ sudo snap install --revision=1.2.4 kubectl
error: cannot decode request body into snap instruction: invalid snap revision: "\"1.2.4\""
Run Code Online (Sandbox Code Playgroud)
我怀疑这--revision需要 SHA 而不是 semver。
使用的apt-get约定package=1.2.3也不起作用:
$ sudo snap install kubectl=1.2.4
error: snap "kubectl=1.2.4" not found
Run Code Online (Sandbox Code Playgroud)
在使用文档似乎对这个问题保持沉默。
有人知道吗?
du并df做相当相似的事情,所以我总是发现自己打错了。
我想如果我知道“du”和“df”代表什么,它可能会更容易记住使用哪个。
有什么方法可以区分这两者,以便我记住哪个执行哪个操作?
使用像 sed 或 awk 这样的常用命令行工具,是否可以连接以给定字符结尾的所有行,如反斜杠?
例如,给定文件:
foo bar \
bash \
baz
dude \
happy
Run Code Online (Sandbox Code Playgroud)
我想得到这个输出:
foo bar bash baz
dude happy
Run Code Online (Sandbox Code Playgroud) 当我开始时screen,我收到一条消息,其中包含版本、版权和错误报告电子邮件地址。我不想每次开始都看到这个screen。搜索手册页似乎没有找到解决方案,我希望这里的专家知道绕过这个信息页的方法。
在我的机器上,当我运行这些命令时,我得到以下输出:
$ echo foos > myfile
$ hexdump myfile
6f66 736f 000a
Run Code Online (Sandbox Code Playgroud)
hexdump 的输出是小端的。这是否意味着我的机器是小端格式,还是 hexdump 总是使用小端格式?