博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高效Linux bash快捷键及alias总结
阅读量:5891 次
发布时间:2019-06-19

本文共 3891 字,大约阅读时间需要 12 分钟。

bash快捷键

习惯使用编辑的快捷键可以大大提高效率,记忆学习过程要有意识的忽略功能键、方向键和数字小键盘。以下快捷键适用在bash处于默认的Emacs模式下。如果你有set -o vi,就处于 vi 模式就不适用了。

另外下面的内容并不包含所有快捷键,只是我个人适用频率最高的几种,但相信已经可以大大提高工作效率了:

  • Ctrl + l :清除屏幕,同clear
  • Ctrl + a :将光标定位到命令的开头
  • Ctrl + e :与上一个快捷键相反,将光标定位到命令的结尾
  • Ctrl + u :剪切光标之前的内容,在输错命令或密码
  • Ctrl + k :与上一个快捷键相反,剪切光标之后的内容
  • Ctrl + y :粘贴以上两个快捷键所剪切的内容。Alt+y粘贴更早的内容
  • Ctrl + w :删除光标左边的参数(选项)或内容(实际是以空格为单位向前剪切一个word)
  • Ctrl + / :撤销,同Ctrl+x u

  • Ctrl + f :按字符前移(右向),同→

  • Ctrl + b :按字符后移(左向),同←
  • Alt + f :按单词前移,标点等特殊字符与空格一样分隔单词(右向),同Ctrl+→
  • Alt + b :按单词后移(左向),同Ctrl+←
  • Alt + d :从光标处删除至字尾。可以Ctrl+y粘贴回来
  • Alt + \ :删除当前光标前面所有的空白字符
  • Ctrl + d :删除光标处的字符,同Del键。没有命令是表示注销用户
  • Ctrl + h :删除光标前的字符

  • Ctrl + r :逆向搜索命令历史,比history好用

  • Ctrl + g :从历史搜索模式退出,同ESC
  • Ctrl + p :历史中的上一条命令,同↑
  • Ctrl + n :历史中的下一条命令,同↓
  • Alt + .:同!$,输出上一个命令的最后一个参数(选项or单词)。
    还有如Alt+0 Alt+. Alt+.,表示输出上上一条命令的的第一个单词(即命令)。
    另外有一种写法 !:n,表示上一命令的第n个参数,如你刚备份一个配置文件,马上编辑它:cp nginx.conf nginx.confvi !:1,同vi !^!^表示命令的第一个参数,!$最后一个参数(一般是使用Alt + .代替)。

这里提一下按字符或字符串,向左向后搜索字符串的命令:

  • Ctrl + ] c :从当前光标处向定位到字符 c 处
  • Esc Ctrl + ] c :从当前光标向定位到字符 c 处。( bind -P 可以看到绑定信息)
  • Ctrl + r str :可以搜索历史,也可以当前光标处向定位到字符串 str,Esc后可定位继续编辑
  • Ctrl -s str :从当前光标处向定位到字符串 str 处,Esc 退出。注意,Ctrl + S默认被用户控制  ,需要在终端里执行stty -ixon或加入profile。

注意上述所有涉及Alt键的实际是Meta键,在xshell中默认是没有勾选“Use Alt key as Meta key”,要充分体验这些键带来的快捷,请在对应的terminal设置。

参考: , 。

常用alias

以下bash中别名设置我还并没有完全使用,也是个人觉得非常有用的(多了记起来也麻烦),所以收集在一起,习惯就好。

/etc/profile.d/alias.sh

alias wl='ll | wc -l'alias l='ls -l'alias lh='ls -lh'alias grep='grep -i --color' #用颜色标识,更醒目;忽略大小写alias vi=vimalias c='clear'  # 快速清屏alias p='pwd'# 进入目录并列出文件cdl() { cd "$@" && pwd ; ls -al; }alias ..="cdl .."alias ...="cd ../.."   # 快速进入上上层目录alias .3="cd ../../.." alias cd..='cdl ..'# alias cp="cp -iv"      # interactive, verbosealias rm="rm -i"      # interactive# alias mv="mv -iv"       # interactive, verbosealias psg='ps aux | grep -v grep | grep -i --color' # 查看进程信息alias hg='history|grep'alias netp='netstat -tulanp'  # 查看服务器端口连接信息alias lvim="vim -c \"normal '0\""  # 编辑vim最近打开的文件alias tf='tail -f '  # 快速查看文件末尾输出# 自动在文件末尾加上 .bak-日期 来备份文件,如 bu nginx.confbak() { cp "$@" "$@.bak"-`date +%y%m%d`; echo "`date +%Y-%m-%d` backed up $PWD/$@"; }# 级联创建目录并进入,如 mcd a/b/cmcd() { mkdir -p $1 && cd $1 && pwd ; }# 查看去掉#注释和空行的配置文件,如 nocomm /etc/squid/squid.confalias nocomm='grep -Ev '\''^(#|$)'\'''# 快速根据进程号pid杀死进程,如 psid tomcat, 然后 kill9 两个tab键提示要kill的进程号alias kill9='kill -9';psid() {  [[ ! -n ${1} ]] && return;   # bail if no argument  pro="[${1:0:1}]${1:1}";      # process-name –> [p]rocess-name (makes grep better)  ps axo pid,user,command | grep -v grep |grep -i --color ${pro};   # show matching processes  pids="$(ps axo pid,user,command | grep -v grep | grep -i ${pro} | awk '{print $1}')";   # get pids  complete -W "${pids}" kill9     # make a completion list for kk}# 解压所有归档文件工具function extract { if [ -z "$1" ]; then    # display usage if no parameters given    echo "Usage: extract 
.
" else if [ -f $1 ] ; then # NAME=${1%.*} # mkdir $NAME && cd $NAME case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.tar.xz) tar xvJf $1 ;; *.lzma) unlzma $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x -ad $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *.xz) unxz $1 ;; *.exe) cabextract $1 ;; *) echo "extract: '$1' - unknown archive method" ;; esac else echo "$1 - file does not exist" fifi}# 其它你自己的命令alias nginxreload='sudo /usr/local/nginx/sbin/nginx -s reload'

要去掉别名,请用unalias aliasname,或者临时执行不用别名,执行原始命令\alias 。

参考: 

欢迎补充评论补充~

转载地址:http://cabsx.baihongyu.com/

你可能感兴趣的文章
SILK 的 Tilt的意思
查看>>
Html学习笔记3
查看>>
批处理学习笔记8 - 深入学习For命令1
查看>>
Object-c学习之路二(oc内存管理黄金法则1)
查看>>
python开发_python文件操作
查看>>
iPhone 已停用
查看>>
CSS3之边框图片border-image
查看>>
图片轮换cycle插件的运用
查看>>
【Oracle】两个表Join关联更新
查看>>
ActiveX控件的安全初始化和脚本操作 和 数字签名SIGN
查看>>
Eclipse console文本换行
查看>>
微信支付开发(11) Native支付
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
【设计模式】—— 代理模式Proxy
查看>>
ejabberd
查看>>
博客园博客自动生成三级目录(generate three levels content using JS in cnblogs)
查看>>
联通高管频频出走:通信业已成鸡肋?
查看>>
关于多线程的那些事
查看>>
js 将json字符串转换为json对象的方法解析
查看>>
1. Two Sum
查看>>