Linux Bash Shell编程(二):Bash基本功能(历史、补全、快捷键)

Linux Bash Shell编程(二):Bash基本功能(历史、补全、别名、快捷键)

  上一节简单介绍了Linux Shell并用echo命令编写了第一个Bash脚本Hello World。本节我们来认识一下熟悉的Bash命令解释器的基本功能:命令历史、命令\文件补全、命令别名、常用快捷键

历史命令

有关历史命令操作主要由history命令和!历史命令快捷键构成

 history命令

history [options] <filename>
options description
-c clear 清空历史命令(仅缓存)
-w write 将缓存中的历史命令写入保存文件.默认(~/.bash_history)
null 查看历史命令

注意事项

  • 历史命令记录先写入缓存,终端退出后再写入命令历史文件(默认为~/.bash_history)
  • -c选项只能删除缓存中的命令,需要另外手动删除命令历史文件以清空所有命令历史

 历史命令快捷键

快捷键 作用
(键盘方向键) 调用以前的历史命令
!! 重复执行上一条
!n 执行第n条历史命令
! 重复执行最后一条以该字符串开头的历史命令
  • 快捷键中的!n中历史命令序号在history命令返回值中可以找到

补全

  • 使用Tab键可以补全文件和命令名称
  • 如果按下一次Tab键没有发生补全说明前部符合该部分的命令\文件有很多,再次按下Tab可以查看所有依次开头的命令\文件,继续补充字符串到只有一个匹配时可以发生补全
  • 建议多使用命令补全,既能提高命令输入效率又能提高正确率(输入错误不能补全)

命令别名

 alias命令

  别名设置主要用到设置\显示命令别名命令alias,每个用户的别名配置一般不相同

alias #此命令直接显示当前环境中可以使用的别名
alias <别名>='<原命令>' #此命令将单引号内的原命令赋予一个别名
unalias <别名> #此命令取消别名设置
  • 命令行中设置的别名仅在当前会话中生效,若要使别名永久生效需要修改配置文件~/.bashrc,文件格式与命令格式相同(也可使用shell语句,后面会讲到)。配置完成重启会话后生效

 Linux命令执行顺序

  我们在分配别名的过程中经常出现覆盖另一条命令的情况,那为什么最后执行的是别名命令呢?这要从Linux命令执行顺序说起

  1. 第一顺位执行通过绝对路径或相对路径执行的命令
  2. 第二顺位执行命令别名 (ls默认彩色就是定义了别名 )
  3. 第三顺位执行Bash的内部命令
  4. 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

  原来执行别名的顺序要高于执行内部\外部命令,这就是别名覆盖后仍然有效的原因


Bash常用快捷键

^A 将光标移动到命令行开头
^E 将光标移动到命令行末尾
^c 强制中止当前命令
^C 复制
^V 粘贴
^L 清屏(新终端中不同于clear,上滚仍可看到命令)
^u 删除或剪切光标前的命令
^K 删除或剪切光标后的命令
^Y 粘贴U/K剪切的内容(与C/V不冲突)
^R 历史命令搜索界面
^D 退出当前终端
^Z 暂停并放入后台(工作管理,后面讲到)
  • ^为ctrl组合键,大写字母一般为大写(ctrl + shift),小写字母只能为小写(仅ctrl),部分大写快捷键大小写均可

  下一节,我们将认识重定向、多命令顺序、管道符和其他特殊符号

你可能感兴趣的:(Linux)