小编Ben*_*ird的帖子

“sort -u”和“sort | uniq”有什么区别?

我在任何地方看到有人需要获得一个排序的、唯一的列表,他们总是通过管道传输到sort | uniq. 我从未见过有人使用的例子sort -u。为什么不?有什么区别,为什么使用 uniq 比使用 unique 标志进行排序更好?

bash sort uniq

149
推荐指数
5
解决办法
22万
查看次数

如何列出进程锁定文件?

使用flock,多个进程可以同时拥有一个共享锁,或者等待获取一个写锁。我如何获得这些进程的列表?

也就是说,对于给定的文件 X,理想情况下找到每个进程的进程 ID,该进程持有或正在等待文件锁定。尽管只是计算等待锁定的进程数,但这将是一个非常好的开始。

process lock files

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

如何将彩色差异输出减少到更少?

我一直在使用 git diff,它会产生彩色输出。但是,我现在发现我需要对某些东西使用普通的差异,并且由于缺少颜色,它产生了大量难以阅读的输出。如何让 diff 产生可读的彩色输出?理想情况下,同时将其管道化,以便轻松查看大文件。

less colors diff

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

bash case 语句可以级联吗?

我正在尝试做这样的事情:

case $level in
    3)
        echo "Level Three"

    2)
        echo "Level Two"

    1)
        echo "Level one"
        ;;
esac
Run Code Online (Sandbox Code Playgroud)

如果 $level = 3,它将输出

Level Three
Level Two
Level One
Run Code Online (Sandbox Code Playgroud)

而如果 $level = 1,它只会输出

Level One
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时,我收到错误,syntax error near unexpected token ')'因为我没有包含;;.

我知道的所有其他语言都允许这样做,有没有办法在 bash 中做到这一点?某种关键字意味着“现在继续进行下一个案例,就好像它匹配一样”?

bash shell-script

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

如何在忽略硬链接的情况下获取文件夹大小?

我使用 rsnapshot 进行备份,它会生成一系列包含同名文件的文件夹。一些文件是硬链接的,而其他文件是分开的。例如,hourly.1/file1andhourly.2/file1可能硬链接到同一个文件,而hourly.1/file2hourly.2/file2是完全独立的文件。

我想找到hourly.2 忽略任何文件的文件夹使用的空间量,这些文件是hourly.1. 所以在上面的例子中,我想获得 file2 的大小,但忽略 file1。

我在 linux 上使用 bash,我想尽可能简单地从命令行执行此操作,因此请不要使用大型图形或其他操作系统解决方案。

size hard-link disk-usage files

23
推荐指数
4
解决办法
2万
查看次数

为什么 rm 在具有 50Gb 文件的外部存储驱动器(通过 USB 连接,类型为 fuseblk)上速度很慢?

我一直在尝试使用rsnapshot进行备份,但我发现它无法使用。虽然它能够在几分钟内区分一个目录 (50gb) 并复制它(硬链接每个文件),我可以在大约半小时内 cp 整个目录,但删除它需要一个多小时。即使直接使用rm -rfv,我发现 rm 单个文件最多可能需要半秒钟,而cplink命令会立即完成。

为什么 rm 这么慢?有没有更快的方法来递归删除硬链接?复制文件比删除文件花费的时间更少对我来说没有意义。

我正在使用的文件系统是一个外部存储驱动器,通过 USB 连接并键入 fuseblk(我认为这意味着它是 ntfs)。我的电脑运行的是 ubuntu linux。

从顶部输出:

Cpu(s):  3.0%us,  1.5%sy,  0.0%ni, 54.8%id, 40.6%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   8063700k total,  3602416k used,  4461284k free,   557604k buffers
Run Code Online (Sandbox Code Playgroud)

performance external-hdd rm

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

如何查看 curl 密码列表?

我的理解是,在 ssl 协商期间,客户端(即 curl)向服务器发送一个密码列表,服务器用其首选选项进行回复。

如何查看 curl 发送的密码列表?

ssl curl https

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

如何将 ssl 密码转换为 curl 格式?

官方的ssl文档列出密码在不同的格式卷曲发生。例如,如果我想让 curl 使用密码 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,我必须通过它curl --ciphers ecdhe_rsa_3des_sha。我知道一些映射是什么,但不是全部 - 例如,我必须传递什么才能让 curl 使用密码 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256?

有什么地方可以找到显示 ssl 文档中的密码名称如何映射到 curl 接受的密码名称的文档?

编辑:我最终发现我的 curl 是由 NSS 支持的,而不是 OpenSSL,这个问题的具体原因是没有关于使用 NSS 支持的 curl 的良好文档,而它需要一个与 OpenSSL 不同的参数来使用相同的密码。所以我的问题是针对 NSS 的。

configuration ssl openssl curl nss

15
推荐指数
2
解决办法
4万
查看次数

有没有办法撤消bash历史修改?

通过向上按,我可以查看以前输入的命令。我注意到,如果我修改其中一个,就会改变历史。例如,如果我输入:

echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
Run Code Online (Sandbox Code Playgroud)

历史现在显示第二个命令是echo d,不是echo b。如何保持echo b历史第一?

例如,假设我运行了一个非常长的命令,有很多选项。然后我想再次运行它,稍作改动,所以我回顾历史以找到它,进行更改,但后来意识到实际上我不需要重新运行它,只是想到了另一个选择来代替。然后,我想回去提醒自己我运行的命令是什么 - 但是等等,历史现在显示错误的东西!

这种情况很少出现,但一旦出现,我就觉得很烦人。有没有办法自动保留原始历史记录?

bash command-history

12
推荐指数
1
解决办法
2084
查看次数

为什么这个带有 FIFO 管道的脚本不会终止?

这个脚本:

#!/bin/bash
tmppipe=/tmp/temppipe
mkfifo $tmppipe
echo "test" > $tmppipe
cat $tmppipe
exit
Run Code Online (Sandbox Code Playgroud)

不终止。我假设该cat命令正在等待EOF来自管道的一个;我怎么寄?

bash pipe shell-script fifo

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