群里有人问“问个问题,Linux 命令行有没有快捷键一下从行末会到行头?经常敲了很多命令发现忘加 sudo 了,然后把命令删了重新敲一遍”。 自己还真不知道怎么操作,只知道历史命令可以使用上下光标切换。 正好早上微博有人科普,感谢龙浩的 blog 的总结,我也补充点知识,纠正一下百度知道上关于 “HISTFILESIZE” 和 “HISTSIZE” 的区别错误回答。 好吧,开始说说历史记录个数的 “HISTFILESIZE” 和 “HISTSIZE” 的区别 , 默认情况下 HISTFILESIZE 和 HISTSIZE的值都是 500,表示可以记录 500 条命令记录。 · HISTFILESIZE 表示记录在文件中的命令条数 · HISTSIZE 表示记录在内存中的命令条数 当我们在 shell 命令行执行命令的时候,近的 HISTSIZE 条命令被保存在内存当中可以使用上下光标或者 ctrl+p,ctrl+n 上下查找命令。 当退出 shell 时 HISTFILESIZE 条命令被保存到历史命令文件中,下次登录 shell 时会从历史命令文件中读取命令道内存历史命令道中。 当网络中断等异常时,你会发现之前的历史命令,下次登录时用上下光标找不到上次的历史命令,所以要正常退出或者发送探测包保持 shell 在线。 如果想增加历史命令保存的数量,可以在 ~/.bash_profile 中手动修改 HISTFILESIZE 和 HISTSIZE 这两个变量的值。 搜索操作快捷键 搜索历史命令的快捷键:Ctrl + r 它是通过关键字去匹配历史记录,执行后会提示:(reverse-i-search)`’: 输入你记得的关键字去匹配,如果出现你需要的命令,按Enter可以选择命令;如果不是请输入更精确的关键字去匹配。 移动操作快捷键 Ctrl + f– 向右移动一个字符,当然多数人用→ Ctrl + b– 向左移动一个字符, 多数人用← ESC + f– 向右移动一个单词,MAC下建议用ALT + → ESC + b– 向左移动一个单词,MAC下建议用ALT + ← Ctrl + a– 跳到行首 Ctrl + e– 跳到行尾 删除操作快捷键 Ctrl + d– 向右删除一个字符 Ctrl + h– 向左删除一个字符 Ctrl + u– 删除当前位置字符至行首(输入密码错误的时候多用下这个) Ctrl + k– 删除当前位置字符至行尾 Ctrl + w– 删除从光标到当前单词开头 命令切换操作快捷键 Ctrl + p– 上一个命令,也可以用↑ Ctrl + n– 下一个命令,也可以用↓ 其他操作快捷键 Ctrl + y– 插入近删除的单词 Ctrl + c– 终止操作 Ctrl + d– 当前操作转到后台 Ctrl + l– 清屏 (有时候为了好看) 学完这几个快捷键组合,回答一下开始的问题吧,相信大家自己也试过了,是ctrl+a快捷键能使光标回到行首。