Linux--高级键盘技巧

本文详细介绍Bash命令行编辑技巧,包括光标移动、文本修改、剪切粘贴等功能,以及自动补齐和历史命令的高效使用方法,帮助提升用户在UNIX系统下的操作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


UNIX经常被戏称为“为喜欢敲键盘的人设计的操作系统”,当然UNIX中存在命令行的这一事实充分证明了这点。但是用户使用命令行时往往不喜欢敲入太多字,所以命令中存在很多类似cp、ls、mv和rm的短命令。
事实上,省事(laziness)(即用最少的击键次数执行更多的任务)是命令行最希望达到的目标之一。命令行的另一个目标是,用户在执行任务时手指无需离开键盘,更不需要使用鼠标。

1、编辑命令行

bash使用了一个名为Readline的库(供不同的应用程序共享使用的线程集合)来实现命令行的编辑。比如通过箭头键移动光标。除此之外,bash还有很多其他的功能,它们可以当作在工作中使用的附加工具。

1.1、光标移动

光标移动命令

组合键作用
Ctrl-A移动光标到行首
Ctrl-E移动光标到行尾
Ctrl-F光标向前移动一个字符,和右箭头作用一样
Ctrl-B光标向后移动一个字符,和左箭头作用一样
Alt-F光标向前移动一个字
Alt-B光标向后移动一个字
Ctrl-L清屏并把光标移到左上角;clear命令可以完成相同的工作
1.2、修改文本

文本编辑命令

组合键作用
Ctrl-D删除光标处的字符
Ctrl-T使光标处的字符和它前面的字符对调位置
Alt-T使光标处的字和它前面的字对调位置
Alt-L把从光标到字尾的字符转换成小写字母形式
Alt-U把从光标到字尾的字符转换成大写字母形式
1.3、剪切和粘贴(Killing and Yanking)文本

Readline文档中使用术语killing和yanking来指代通常所说的剪切和粘贴。被剪切的内容存放在一个称为kill-ring的缓冲区中。

组合键作用
Ctrl-K剪切从光标到行尾的文本
Ctrl-U剪切从光标到行首的文本
Alt-D剪切从光标到当前词尾的文本
Alt-Backspace剪切从光标到词头的文本。如果光标在一个单词的开头,则剪切前一个单词
Ctrl-Y把kill-ring缓冲区中的文本粘贴

2、自动补齐功能

shell的一种称为“自动补齐”的机制为用户提供了很大的帮助。在输入命令时按Tab键将触发自动补齐功能。
在这里插入图片描述
如果当前路径存在与所敲前缀匹配的文件或文件夹,此时按下Table键,就会自动补全。如果不存在,按下Table键,则只会出现哔哔声。
此外,如果存在模棱两可的前缀,自动补齐功能是不生效的,例如ls M,然后按Table,因为当前路径下存在多个以D打头的文件夹,此时编辑器不知道该补齐哪个,所以自动补齐 功能会失效。

自动补齐命令

组合键作用
Alt-$显示所有可能的自动补齐列表。在大多数系统中,可通过按两次Tab键实现
Alt-*插入所有可能的匹配项
除了以上这些,还有相当多的组个键,可以在bash man页面的READLINE部分获取更多的相关内容列表。

3、使用历史命令

bash会保存使用过命令的历史记录,这些命令的历史记录列表保存在用户主目录的.bash_history文件中。这些历史记录非常有用,可以大大减少用户敲打键盘的次数,特别是和命令行编辑组合使用的时候。

3.1、搜索历史命令

任何情况下,我们都可以通过如下命令查看历史记录的内容列表:
在这里插入图片描述
bash默认会保存用户最近使用过的500个命令。其中,500是个默认值。
在这里插入图片描述
假设我们想找到用来列出/usr/bin目录下内容的命令,我们可以这样做:
在这里插入图片描述

历史记录命令

组合键作用
Ctrl-P移动到前一条历史记录,相当于向上箭头键
Ctrl- N移动到后一条历史记录,相当于向下剪头键
Alt- <移动到历史记录列表的开始处
Alt- >移动到历史记录列表的结尾处,即当前命令行
Ctrl-R逆向递增地搜索。从当前命令向前递增搜索
Alt- P逆向非递增地搜索。按下这个组合键,接着输入待搜索的字符串,再按Enter键,搜索才真正开始执行
Alt- N向前非递增地搜索
Ctrl- O执行历史记录列表中的当前项,执行完调到下一项。若要把历史记录中的一系列命令重新执行一遍,使用该组合键将很方便
Ctrl- J用组合键Ctrl-R查找到内容时用这个组合键将命令复制到当前命令行以便进一步的编辑
3.2、历史记录扩展

shell提供了一种专门用来扩展历史记录项的方式–使用!字符。例如:
在这里插入图片描述
通过查找历史记录获知命令在历史记录中的行数,然后就可以使用!!89扩展为历史列表中第89行的内容。
历史记录扩展命令

序列行为
!!重复最后一个执行命令。按向上箭头键在按Enter键也可以实现相同的功能
!number重复历史记录中第number行的命令
! string重复最近的以string开头的历史记录
!?string重复最近的包含string的历史记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝勒里恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值