博客
关于我
菜鸟学Linux 第008篇笔记 bash及其特性
阅读量:797 次
发布时间:2023-03-29

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

bash 及其特性

bash 是 Unix/Linux 系统中的一个重要组成部分,它是一种 shell,可以理解为一个可执行程序。Shell 提供了用户与系统交互的接口,支持命令执行、文件管理等多种功能。

shell 的类型

Shell 可以分为 GUI 和 CLI(图形用户界面与命令行用户界面)。

  • GUI:常见的有 Gnome、KDE、Xfce 等。
  • CLI:常见的有 sh、csh、ksh(付费版和社区版)、bash、tcsh、zsh 等。

在 CLI 中,bash 和 zsh 是比较流行的选择。

shell 与子shell

Shell 和子shell 之间有一定的互相关联性。shell 的设定会影响子shell,而子shell 的设定也会反过来影响 shell。因此,用户应注意 shell 与子shell 之间的设置。

进程与 bash 的关系

程序是固定的,但进程可以有多个。进程是程序的一个副本,主要用于理解程序的运行方式。注意:此处仅为理解性解释。

bash 的特性

bash 具有多种功能,可以自定义工作环境(默认环境与自定义环境一致)。

1. 命令行编辑

bash 提供了丰富的命令行编辑功能,包括光标操作:

  • Ctrl + a:移动到行首
  • Ctrl + e:移动到行尾
  • Ctrl + u:删除从光标到行首的内容
  • Ctrl + k:删除从光标到行尾的内容
  • Ctrl + l:清屏

2. 命令历史

bash 记录用户的命令历史,方便复查和重复执行命令。命令历史默认保存 1000 条记录。

  • 查看命令历史:history
  • 清空命令历史:history -c
  • 删除指定位置的命令:history -d offset [n]
  • 保存命令历史:history -w(默认保存至 ~/.bash_history
  • 命令重用:
    • !n:执行第 n 条命令
    • !-n:执行倒数第 n 条命令
    • !!:执行上一条命令
    • !string:执行最近一个以指定字符串开头的命令
    • !$:引用上一条命令的最后一个参数(按 Esc + . 或 Alt + . 也可实现)

3. 命令补全与路径

bash 提供命令补全功能,支持路径和文件名通配。

  • 命令补全

    • bash 会搜索 PATH 环境变量指定的路径,找到与输入命令匹配的可执行文件。
    • 按两次 TAB 查看所有匹配文件;单次 TAB 直接选择默认文件。
  • 路径补全

    • bash 会补全路径中的文件名。

4. 命令别名

bash 允许定义命令别名。定义别名仅在当前 shell 的生命周期内有效。

  • 定义别名:alias command="COMMAND [options] [arguments]"
  • 查看别名:alias
  • 取消别名:unalias aliasname

5. 命令替换

bash 支持命令替换,通过反引号()和强引用(""`)实现变量替换。

  • 弱引用($()):将命令替换为其执行结果。
    • 示例:touch ./file-$(date +%F-%H-%M-%S).txt
  • 强引用(""):保留变量原样,不完成替换。

6. 文件名通配

bash 支持文件名通配(globbing)。

  • 通配符:
    • *:匹配任意长度的任意字符
    • ?:匹配任意一个字符
    • [abc]:匹配指定范围内的任意单个字符
    • [:space:][:punct:][:lower:][:upper:][:alpha:][:digit:][:alnum:]:匹配具体字符类型
    • [^]:匹配不在指定范围内的任意单个字符

7. 环境变量

bash 支持环境变量的使用。常见的环境变量包括:

  • PATH:命令搜索路径
  • HISTORY:命令历史大小(默认 1000)

bash 的优势

bash 不仅是一个简单的 shell,还支持丰富的功能,如脚本编写、管道重定向、命令行展开等。这些功能使得 bash 成为 Linux 系统中不可或缺的工具。

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

你可能感兴趣的文章
Objective-C实现IIR数字滤波器(附完整源码)
查看>>
Objective-C实现insertion sort插入排序算法(附完整源码)
查看>>
Objective-C实现integer partition整数分区算法(附完整源码)
查看>>
Objective-C实现integerPartition整数划分算法(附完整源码)
查看>>
Objective-C实现interpolation search插值搜索算法(附完整源码)
查看>>
Objective-C实现Interpolation search插值查找算法(附完整源码)
查看>>
Objective-C实现intersection交集算法(附完整源码)
查看>>
Objective-C实现intro sort内省排序算法(附完整源码)
查看>>
Objective-C实现inversions倒置算法(附完整源码)
查看>>
Objective-C实现isalpha函数功能(附完整源码)
查看>>
Objective-C实现islower函数功能(附完整源码)
查看>>
Objective-C实现isPowerOfTwo算法(附完整源码)
查看>>
Objective-C实现isupper函数功能(附完整源码)
查看>>
Objective-C实现ItemCF算法(附完整源码)
查看>>
Objective-C实现ItemCF算法(附完整源码)
查看>>
Objective-C实现iterating through submasks遍历子掩码算法(附完整源码)
查看>>
Objective-C实现jaccard similarity相似度无平方因子数算法(附完整源码)
查看>>
Objective-C实现Julia集算法(附完整源码)
查看>>
Objective-C实现k nearest neighbours k最近邻分类算法(附完整源码)
查看>>
Objective-C实现k-Means算法(附完整源码)
查看>>