交互式shell提示?

什么是你最喜欢的shell提示? 让你的日常命令行使用起来更容易的东西?

我的,为bash

将其添加到您的主目录中的.inputrc文件中:

"\e[A": history-search-backward "\e[B": history-search-forward 

现在,当您在提示符处开始input内容时,方向键将search您的历史logging,以查找以您input的内容开头的其他命令。

不是小费,而是更多元提示。 有很多很酷的cli reciipies在http://www.commandlinefu.com/

如果您是vi用户,请尝试vi模式进行bash:

 set -o vi 

按ESC进入命令模式。 从那里,您可以使用熟悉的vi命令(hjkl,w,^,$,i,A,c,d等)来浏览命令行。 您可以使用/search您的命令历史logging。 你甚至可以按v来启动vi并编辑你当前的命令。

请参阅此备忘单以获取支持的vi命令列表。

这里是我在日常工作中用得最多的东西

关键字快捷键我使用最多的选项卡当然选项卡完成(安装bash完成,使这更好​​) – 向上和向下导航的历史 – ctrl-a和ctrl-e行的开始和结束 – ctrl-r用于search历史logging(只需input命令的开始) – 按Ctrl-g取消search – alt-f将光标向前移动一个单词 – alt-b将光标移回单词 – esc然后。 将最后一个命令的最后一个参数添加到当前命令中(之前再次执行该命令的最后一个参数) – alt -d删除光标当前位置前面的单词 – ctrl-w删除光标当前位置后面的单词 – ctrl-u删除光标当前位置到行首的所有内容 – ctrl-k删除从当前位置到行尾的所有内容

最重要的是,确保你有一个颜色LS设置,我添加git分支到我的提示

我也总是有我的.bash_aliases文件(这显然来自我的.bashrc或.bash_profile文件)的重载function,

 reload() { if [ -f ~/.bashrc ]; then source ~/.bashrc else source ~/.bash_profile; fi } 

我处理了很多不同的机器,所以我最喜欢的是我需要经常SSH连接的每台机器的别名。

 alias claudius="ssh dinomite@claudius" 

设置一个好的.ssh/config和ssh密钥以使机器间的跳跃更容易,这也是非常有用的。

另一个我最喜欢的别名是移动目录:

 alias ..="cd .." alias ...="cd ../.." alias ....="cd ../../.." alias .....="cd ../../../.." 

还有一些针对ls (和拼写错误)的常用变体:

 alias ll="ls -l" alias lo="ls -o"alias lh="ls -lh" alias la="ls -la" alias sl="ls" alias l="ls" alias s="ls" 

历史可以是非常有用的,但是在大多数发行版中默认情况下,每个shell退出的历史都会被吹走,而且它并没有太多的开始。 我喜欢有一万行的历史:

 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" 

这样,如果我知道我已经做了一些事情,但是不记得具体细节,那么一个快速的history | grep foo history | grep foo将有助于缓慢的记忆。

我经常发现自己通过awk输出pipe道以获得输出的某一列,如在df -h | awk '{print $2}' df -h | awk '{print $2}'来查找每个磁盘的大小。 为了更容易,我在.bashrc中创build了一个函数fawk

 function fawk { first="awk '{print " last="}'" cmd="${first}\$${1}${last}" eval $cmd } 

我现在可以运行df -h|fawk 2 ,这样可以节省很多打字的时间。

也许最简单和最有用的东西之一就是学习阅读器。 所以^ h退格,^ u删除一行到光标,^ k删除光标后的行。 这里有快捷方式的完整列表[这里] [1] http://www.bigsmoke.us/readline/shortcuts

除此之外,在debian / ubuntu(至less,没有任何其他的Linux来testing它,添加到您的.bashrc将启用bash中的智能完成,如在zsh中,所以常见命令的参数(如find等)将是标签完整

 if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi