我在任何地方看到有人需要获得一个排序的、唯一的列表,他们总是通过管道传输到sort | uniq
. 我从未见过有人使用的例子sort -u
。为什么不?有什么区别,为什么使用 uniq 比使用 unique 标志进行排序更好?
使用flock
,多个进程可以同时拥有一个共享锁,或者等待获取一个写锁。我如何获得这些进程的列表?
也就是说,对于给定的文件 X,理想情况下找到每个进程的进程 ID,该进程持有或正在等待文件锁定。尽管只是计算等待锁定的进程数,但这将是一个非常好的开始。
我一直在使用 git diff,它会产生彩色输出。但是,我现在发现我需要对某些东西使用普通的差异,并且由于缺少颜色,它产生了大量难以阅读的输出。如何让 diff 产生可读的彩色输出?理想情况下,同时将其管道化,以便轻松查看大文件。
我正在尝试做这样的事情:
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 中做到这一点?某种关键字意味着“现在继续进行下一个案例,就好像它匹配一样”?
我使用 rsnapshot 进行备份,它会生成一系列包含同名文件的文件夹。一些文件是硬链接的,而其他文件是分开的。例如,hourly.1/file1
andhourly.2/file1
可能硬链接到同一个文件,而hourly.1/file2
和hourly.2/file2
是完全独立的文件。
我想找到hourly.2
忽略任何文件的文件夹使用的空间量,这些文件是hourly.1
. 所以在上面的例子中,我想获得 file2 的大小,但忽略 file1。
我在 linux 上使用 bash,我想尽可能简单地从命令行执行此操作,因此请不要使用大型图形或其他操作系统解决方案。
我一直在尝试使用rsnapshot进行备份,但我发现它无法使用。虽然它能够在几分钟内区分一个目录 (50gb) 并复制它(硬链接每个文件),我可以在大约半小时内 cp 整个目录,但删除它需要一个多小时。即使直接使用rm -rfv
,我发现 rm 单个文件最多可能需要半秒钟,而cp
和link
命令会立即完成。
为什么 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) 我的理解是,在 ssl 协商期间,客户端(即 curl)向服务器发送一个密码列表,服务器用其首选选项进行回复。
如何查看 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 的。
通过向上按,我可以查看以前输入的命令。我注意到,如果我修改其中一个,就会改变历史。例如,如果我输入:
echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
Run Code Online (Sandbox Code Playgroud)
历史现在显示第二个命令是echo d
,不是echo b
。如何保持echo b
历史第一?
例如,假设我运行了一个非常长的命令,有很多选项。然后我想再次运行它,稍作改动,所以我回顾历史以找到它,进行更改,但后来意识到实际上我不需要重新运行它,只是想到了另一个选择来代替。然后,我想回去提醒自己我运行的命令是什么 - 但是等等,历史现在显示错误的东西!
这种情况很少出现,但一旦出现,我就觉得很烦人。有没有办法自动保留原始历史记录?
这个脚本:
#!/bin/bash
tmppipe=/tmp/temppipe
mkfifo $tmppipe
echo "test" > $tmppipe
cat $tmppipe
exit
Run Code Online (Sandbox Code Playgroud)
不终止。我假设该cat
命令正在等待EOF
来自管道的一个;我怎么寄?