当 bash shell 忙(初始化、运行命令)时,可以在下一个提示出现之前键入。
如果 shell 启动了一个程序,该程序将捕获密钥,但如果没有程序运行或如果程序没有捕获输入,则在出现提示后会在 shell 中插入什么类型。
例如:键入sleep 5
,按 Enter,然后键入ls
并按 Enter。 ls
将在 sleep 完成后运行。在现实生活中,ls
会被cp
,rsync
或许多其他程序所取代。这是一个典型的Typeahead功能,当您提前知道要键入什么时,它可以节省大量时间。
它也非常好,因为它允许复制粘贴多个命令并让它们按顺序运行。
实际用例包括 shell 需要时间来初始化。可能是由于任何原因计算机速度变慢,或者外壳在网络链接上速度较慢,等等。
在 bash 提示符下,可以键入Ctrl-R
以搜索历史记录。
当重用一些旧的命令行,甚至命令行序列时,这是一个非常宝贵的时间节省。按Ctrl-R
,键入几个典型的搜索命令字符,按Ctrl-O
需要多次按从那里重播记录的命令。
但是,有一个限制。我经常使用上面的序列并发现如果我Ctrl-R ls
在 shell 提示实际出现之前输入例如,该Ctrl-R
部分会被忽略但ls
会显示该部分。
最终效果是在键入之前必须等待 shell 提示出现Ctrl-R
,从而节省了部分时间。
有没有办法在提前Ctrl-R
输入的情况下兑现?
SERVER:~ # df -mP /home/
Filesystem 1048576-blocks Used Available Capacity Mounted on
/dev/mapper/rootvg-home_lv 496 491 0 100% /home
SERVER:~ #
SERVER:/home # lsof | grep -i deleted | grep -i "home" | grep home
badprocess 4315 root 135u REG 253,2 133525523 61982 /home/username/tr5J6fRJ (deleted)
badprocess2 44654 root 133u REG 253,2 144352676 61983 /home/username/rr2sxv4L (deleted)
...
SERVER:/home #
Run Code Online (Sandbox Code Playgroud)
文件在仍在使用时被删除。所以它们仍然占用空间。但是我们不想重新启动“badprocess*”。操作系统是 SLES9,但我们“一般地”问这个。
问题:我们如何删除这些已删除的文件而不重新启动保存它们的进程,从而释放空间?
我在带有内置声卡的笔记本电脑上使用外置 USB 声音适配器。有一些问题:
默认情况下,应用程序继续使用内部声卡。我可以通过打开pavucontrol
:转到“输出设备”,找到适配器输出并单击“设置为后备”,有时在“播放”选项卡中找到已经在播放的应用程序并更改其接收器来手动解决此问题。
键盘音量按钮仍然在内部声卡上工作,而不是在外部适配器上。
pavucontrol
工作设置外部适配器的音量,但如果设置低于 35%,则根本没有声音。由于音量很大,35%对于安静的声源就可以了,对于响亮的源是不可接受的。我可以通过设置每个应用程序的音量限制(在pavucontrol
窗口中单击)来手动解决此问题,但它很乏味,并且每当应用程序启动新流时都必须重做。如何拥有:
系统是运行 XFCE 4.10 的 Ubuntu 14.10。适配器是“ID 0d8c:000c C-Media Electronics, Inc. 音频适配器”
audio-volume ×1
bash ×1
files ×1
linux ×1
pulseaudio ×1
readline ×1
stty ×1
terminal ×1
ubuntu ×1
xfce ×1