我有两个问题。
Q1. 我读了一篇文章http://www.thegeekstuff.com/2014/05/linux-keybindings/comment-page-1/#comment-1750752在此 cntrl+/ 可以完美地重做上次撤消的编辑,但 Cntrl+? 不行。我的系统详细信息是
[mike@localhost rshare]$ lsb_release -a
LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Release: 5.4
Codename: Tikanga
和终端设置是
[mike@localhost rshare]$ stty
speed 9600 baud; line = 0;
erase = ^H;
-brkint ixoff -imaxbel
请提供 bash 键盘快捷键的良好参考。
Q2.$ echo *
打印当前目录中的所有文件,而$ echo .
仅打印"."
(不带引号)。我的问题是为什么它不打印当前目录中的所有文件(包括隐藏文件)?
答案1
1. 按键绑定
正如该文章中所建议的,bind -p
列出了键绑定。
$ bind -p | egrep 'redo|undo'
"\C-x\C-u": undo
"\C-_": undo
# vi-redo (not bound)
请注意,bash 有 vi 模式和 emacs 模式。按键的行为会根据您选择的模式而有所不同。
2. shell通配符扩展
.
不是 shell 通配符(但它是正则表达式中的元字符)。相反,我会使用
echo .*
或者
echo .??*
因为我通常对此不感兴趣.
,并且..
没有名称很小的隐藏文件。
迈克尔·柯约林指出了一种更优越的模式:
echo .[^.]*
只需输入几个字符即可。