export HISTFILESIZE=20000
export HISTSIZE=10000
shopt -s histappend
# Combine multiline commands into one in historty
shopt -s cmdhist
# Ignore duplicates, ls without options and builtin commands
HISTCONTROL=ignoredups
export HISTIGNORE="&:ls:[bf]g:exit"
如果您是 vi 用户,请尝试 bash 的 vi 模式:
按 ESC 进入命令模式。从那里,您可以使用熟悉的 vi 命令(hjkl、w、^、$、i、A、c、d 等)导航命令行。您可以使用 / 搜索您的命令历史记录。您甚至可以按 v 来启动 vi 并编辑您当前的命令。
有关支持的 vi 命令列表,请参阅此备忘单。
不是小费,而是更多的元提示。在http://www.commandlinefu.com/上有很多很酷的 cli 接收器
这是我在 bash 中日常使用最多的东西
我使用最多的关键字快捷方式 - 当然是 tab 用于完成选项卡(设置 bash 完成以使其更好) - 上下导航历史记录 - ctrl-a 和 ctrl-e 用于行的开始和结束 - ctrl-r用于搜索您的历史记录(只需开始键入命令的开头) - ctrl-g 取消搜索 - alt-f 将光标向前移动一个单词 - alt-b 将光标向后移动一个单词 - 然后 esc 。将最后一个命令的最后一个参数添加到当前命令(再次执行此操作会转到之前命令的最后一个参数) - alt-d 删除光标当前位置前面的单词 - ctrl-w 删除光标当前位置后面的单词 - ctrl-u 删除从光标当前位置到行首的所有内容 - ctrl-k 删除从当前位置到行尾的所有内容
最重要的是,确保你有一个 color ls 设置,我将 git 分支添加到我的提示符中
我的 .bash_aliases 文件中也总是有 reload 功能(这显然来自我的 .bashrc 或 .bash_profile 文件)
我处理很多不同的机器,所以我最喜欢的一个是我需要经常通过 SSH 连接到的每台机器的别名:
.ssh/config
设置好密钥和ssh 密钥也很有用,可以使机器之间的跳转更加容易。我最喜欢的另一个别名是用于向上移动目录:
ls
还有一些用于(和错别字)的常用变体:历史记录可能非常有用,但默认情况下,在大多数发行版中,您的历史记录会被每个退出的 shell 吹走,而且一开始并没有太多意义。我喜欢有10,000行历史:
这样,如果我知道我以前做过某事但不记得具体细节,那么快速
history | grep foo
将有助于我的记忆。我经常发现自己通过管道输出
awk
以获取输出的某一列,例如df -h | awk '{print $2}'
查找每个磁盘的大小。为了使这更容易,我fawk
在我的 .bashrc 中创建了一个函数:我现在可以运行
df -h|fawk 2
,这可以节省大量打字。可能最简单、最有用的事情之一就是学习 readlin 快捷方式。所以^h代表退格,^u删除光标前的一行,^k删除光标后的一行。这里有完整的快捷方式列表 [这里][1] http://www.bigsmoke.us/readline/shortcuts。
除此之外,在 debian/ubuntu 上(至少,没有任何其他 linux 可以对其进行测试,将其添加到您的 .bashrc 将启用 bash 中的智能完成,就像在 zsh 中一样,以便常见命令的参数(如查找等)将是选项卡可完成的