小编les*_*ana的帖子


获取通过管道传输到另一个进程的退出状态

我有两个进程foo和bar,用管道连接:

$ foo | bar
Run Code Online (Sandbox Code Playgroud)

bar总是退出 0;我对foo. 有什么办法可以得到吗?

shell pipe exit

392
推荐指数
11
解决办法
20万
查看次数

如何否认正在运行的进程并将其关联到新的屏幕外壳?

我在 SSH shell 上有一个正在运行的程序。我想暂停它并在我回来时能够取消暂停它的执行。

我想到的一种方法是将其所有权转移到屏幕外壳,从而使其在那里运行。

是否有不同的方式进行?

ssh gnu-screen terminal job-control disown

181
推荐指数
8
解决办法
13万
查看次数

如何暂停和恢复进程

在 bash 终端中,我可以点击Control+Z来暂停任何正在运行的进程......然后我可以输入fg以恢复该进程。

如果我只有 PID,是否可以暂停进程?如果是这样,我应该使用什么命令?

我正在寻找类似的东西:

suspend-process $PID_OF_PROCESS
Run Code Online (Sandbox Code Playgroud)

然后恢复它

resume-process $PID_OF_PROCESS
Run Code Online (Sandbox Code Playgroud)

command-line bash job-control

178
推荐指数
2
解决办法
22万
查看次数

如何移动文件并查看进度(例如使用进度条)?

使用 移动大目录时mv,有没有办法查看进度 (%)?cpgentoo 上的命令有一个-g显示进度的开关。

command-line progress-information mv

155
推荐指数
6
解决办法
19万
查看次数

将 webp 转换为 jpg 错误:“此图像格式没有解码委托”和“缺少图像文件名”

我正在使用 ubuntu 12.04。我已经安装libwebp2&libwebp-dev

目前网上还没有找到将 webp 转为 jpg 的例子。

一些 webp 文件可以通过使用 imagemagick 和命令轻松转换

convert file.webp file.jpg
Run Code Online (Sandbox Code Playgroud)

但是很多 webp 文件无法转换并出现错误:

convert: no decode delegate for this image format `file.webp' @ error/constitute.c/ReadImage/532.
convert: missing an image filename `file.jpg' @ error/convert.c/ConvertImageCommand/3011.
Run Code Online (Sandbox Code Playgroud)

- - - - 添加

这是文件:http : //www.filedropper.com/file_144

imagemagick image-manipulation images

104
推荐指数
4
解决办法
7万
查看次数

如何对除当前目录和父目录之外的每个隐藏文件进行 glob

我想 glob 每个隐藏文件和目录,但不是当前 ( .) 和父目录 ( ..)。

我正在使用 bash。

观察当前行为:

$ ls -a
.  ..  ...a  ...aa  ..a  ..aa  .a  .aa  .aaa  a
$ echo *
a
$ echo .*
. .. ...a ...aa ..a ..aa .a .aa .aaa
Run Code Online (Sandbox Code Playgroud)

我想.*表现得像这样

$ echo .*
...a ...aa ..a ..aa .a .aa .aaa
Run Code Online (Sandbox Code Playgroud)

有外壳选项 dotglob

$ shopt -s dotglob
Run Code Online (Sandbox Code Playgroud)

这在某种程度上起作用;现在我可以使用*glob 的所有内容(隐藏或不隐藏)但不能.和..

$ echo *
...a ...aa ..a ..aa .a .aa .aaa a
Run Code Online (Sandbox Code Playgroud)

但现在我无法区分隐藏与否。此外, …

command-line shell bash

88
推荐指数
6
解决办法
3万
查看次数

如何在 bash 中仅打印定义的变量(shell 和/或环境变量)

bash 内置命令set,如果不带参数调用,将打印所有 shell 和环境变量,以及所有定义的函数。这使得输出对人类无法使用并且难以使用grep。

如何使 bash 内置命令set仅打印变量而不打印函数?

是否有其他命令只打印 shell 变量而不打印函数?

注意:bash 区分 shell 变量和环境变量。请参阅此处环境变量和 bash 中导出的环境变量之间的差异

bash environment-variables

62
推荐指数
5
解决办法
3万
查看次数

awk '!a[$0]++' 如何工作?

这种单行从文本输入中删除重复的行,无需预先排序。

例如:

$ cat >f
q
w
e
w
r
$ awk '!a[$0]++' <f
q
w
e
r
$ 
Run Code Online (Sandbox Code Playgroud)

我在互联网上找到的原始代码如下:

awk '!_[$0]++'

这让我更加困惑,因为我认为_awk 中有一个特殊的含义,就像在 Perl 中一样,但结果证明它只是一个数组的名称。

现在,我理解了单行背后的逻辑: 每个输入行都用作散列数组中的键,因此,在完成后,散列包含按到达顺序排列的唯一行。

我想了解的是 awk 究竟是如何解释这个符号的。例如,爆炸符号 ( !) 的含义以及此代码片段的其他元素。

它是如何工作的?

awk text-processing

59
推荐指数
3
解决办法
3万
查看次数

导出的 shell 变量和不在 bash 中的变量之间的区别

Bash 似乎区分已导出的变量和未导出的变量。

例子:

$ FOO=BAR
$ env | grep FOO
$ set | grep FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)

set看到变量但env没有。

$ export BAR=FOO
$ env | grep FOO
BAR=FOO
$ set | grep FOO
BAR=FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)

set看到两个变量,但env只看到导出的变量。

我知道这set是一个内置的 bash 而env不是。

导出的变量和不导出的变量之间有什么区别?

shell environment-variables

52
推荐指数
1
解决办法
2万
查看次数