Linux常用命令--命令行快捷键

摘要

  • 本文介绍常用的命令行快捷键

  • 本文基于CentOS8(x86_64)

最最常用的快捷键

  • tab (ctrl + i) : 命令补全

    有些命令如果想不起来怎么拼写了,可以只输入前面几个字符,然后按一次tab键,就会自动补全以输入前缀开头的命令
    按两次tab键,就会显示以输入前缀开头的全部命令

  • ctrl + c : 停止正在执行的任务 或者 取消当前命令行编辑(删除整行)

  • ctrl + l : 清除屏幕上所有内容,并开始新的一行,相当于执行clear命令

  • ctrl + a : 光标回到命令行首

  • ctrl + e : 光标回到命令行末

  • ctrl + insert : 复制选中内容,mac下是 command + c

  • alt + insert : 粘贴刚才复制的内容到当前光标处,mac下是 command + v

  • (ctrl + p) : 显示上一条历史命令

  • (ctrl + n ) : 显示下一条历史命令

  • !! : 执行上一条命令,相当于 ↑ + Enter

  • !key : 执行上一条以key开头的命令

  • backspace (ctrl + h) : 删除光标前一个字符,mac下是 delete

记住上面的的这些快捷键,基本上日常操作就没啥问题了,下面的快捷键可以使我们的命令行操作更加高效和便捷,能记多少就记多少吧。

剪切和删除

  • ctrl + k : 剪切光标处到行尾处的字符(有删除的作用)

  • ctrl + u : 剪切光标处到行首处的字符(有删除的作用)

  • ctrl + w : 剪切光标前的一个单词(有删除的作用)

  • alt + d : 剪切光标后的一个单词(有删除的作用),mac下是 Esc + d

  • ctrl + y : 粘贴ctrl + kctrl + uctrl + walt + d 剪切/删除的文本

  • ctrl + d : 删除光标所在处字符

搜索历史命令

  • ctrl + r : 搜索历史命令中的命令记录,输入一些关键字,会自动给出匹配到的结果,连续按ctrl + r,给出下一条匹配结果

    类似于 history | grep key,但是ctrl + r给出的结果会去重

  • Enter (ctrl + o) (ctrl + m) : 执行匹配结果中的命令

  • ctrl + g : 从正在执行ctrl + r的搜索中退出,ctrl + c也行

  • ->(Esc) (ctrl + j) : 将ctrl + r的搜索中的匹配结果粘贴到命令行,其实好多快捷键都可以达到该效果,随便记住一个吧

前台进程转到后台运行

  • 假设你发现前台运行的一个进程需要很长的时间,但是你需要干其他的事情,你就可以将当前进程转到后台运行

  • ctrl + z : 暂停正在运行行中的进程

    1
    [1]+ Stopped /root/bin/rsync.sh  # [1] 表示的是 jobnumber
  • bg : 将暂停中的进程转到后台运行

    把当前进程暂停后,可以输入使用bg将该程序转到后台运行
    如果有多个暂停中的程序,可以输入bg + jobnumber将指定序号的程序转到后台运行

  • jobs : 显示后台运行的进程信息

  • fg : 将后台运行的进程转到前台运行

    把后台运行的进程转到前台运行,可以输入使用fg将该程序转到前台运行
    如果有多个后台运行中的程序,可以输入fg + jobnumber将指定序号的程序转到前台运行

  • 要将一个进程在运行时就直接放到后台运行,可以在命令最后增加 & 符号,但这个仅在当前会话中有效,一旦会话关闭,当前进程就会中断执行

  • 可以在命令最前面加上nohup命令,这样进程就会一直在后台运行直到程序运行结束,而不会因为会话关闭而中断

    1
    nohup sh test.sh &

屏幕锁定、 解锁

  • ctrl + s : 锁定界面,停止屏幕打印内容,使终端发呆,静止,可以使快速输出的终端屏幕停下来

  • ctrl + q : 解开ctrl + s 的锁定界面,继续屏幕打印

光标移动

  • Esc + . : 获取上一条命令的最后部分(空格分隔)

  • Esc + b : 移动到当前单词的开头

  • Esc + f : 移动到当前单词的结尾

  • ->(ctrl + f) : 光标向右移动一个字符

  • <-(ctrl + b) : 光标向左移动一个字符

  • ctrl + t : 交换光标位置前的两个字符

其它

  • !$ : 显示最近的一个参数

    比如我先用 cat /etc/sysconfig/network-scripts/ifcfg-eth0,然后我想用 vim 编辑。
    一般的做法是先用 ↑ 显示最后一条命令,然后用 ctrl + a 移动到命令最前,删除 cat,然后再输入 vim 命令。
    其实完全可以用 vim !$来代替。