《鸟哥的Linux私房菜基础篇》---6 认识与学习BASH

目录

1. Bash的定位与特点​

2. 核心功能​

3. 与Shell的关系​

4. 实际应用场景​

5. 如何验证当前Shell?​

6、Bash shell 的操作环境

7、数据流重导向(redirect)

8、管线命令(pipe)


Shell 和 Bash 的关系可以概括为:​Bash 是 Shell 的一种具体实现,而 Shell 是一个通用的概念,指代所有用于与操作系统交互的命令行解释器。

以下是其核心要点:

1. Bash的定位与特点

  • Shell的一种实现​:Shell是用户与操作系统内核交互的接口程序,而Bash是Shell的一种具体实现(其他还有sh、zsh等)。
  • 功能增强​:兼容Bourne Shell语法,同时扩展了交互式功能(如命令补全、历史记录)和脚本编程能力(如数组、正则表达式)。
  • 跨平台性​:可运行于Linux、macOS,甚至通过Cygwin/MinGW移植到Windows。

2. 核心功能

  • 交互式操作​:
    • 支持命令行编辑(Tab补全)、历史命令(history)、别名(alias)等
    • 示例:输入ls -l可列出文件详情,cd ~切换到家目录
  • 脚本编程​:
    • 支持变量、条件判断(if)、循环(for/while)、函数等
    • 示例脚本:
#!/bin/bash
echo "Hello, $USER!"  # 输出当前用户名
  • ​管道与重定向​:

    • 通过|连接命令(如ls | grep "txt"),用>>>重定向输出

3. 与Shell的关系

  • 包含关系​:Bash是Shell的子集,属于其最流行的实现之一。
  • 区别​:

(1)​Shell​:(壳)​​

  • 本质:用户与操作系统内核之间的命令行交互界面,负责解析用户输入的命令并调用系统功能。
  • 泛指所有命令行解释器(如sh、csh、zsh)。

(2)​Bash​:(Bourne Again Shell)​​

  • 定位:是 ​Bourne Shell(sh)的扩展版本,由 GNU 项目开发,目前是大多数 Linux 发行版和 macOS 的默认 Shell。
  • 特点:兼容 sh 语法,同时增强功能(如命令补全、历史记录、脚本编程支持等)
  • 特指Bourne Again Shell,功能更丰富(如支持数组、进程控制)

我这个使用者什么时候可以取得shell来工作呢?

当我们在终端界面登入Linux时候,系统就会给我一个shell让我来工作了。而这个登入取得的shell就记录在/etc/passwd这个档案内。

4. 实际应用场景

  • 系统管理​:批量处理文件、监控进程。
  • 自动化任务​:通过脚本定时备份日志或部署服务。
  • 开发环境​:配置环境变量、编译程序。

5. 如何验证当前Shell?​

echo $SHELL    # 显示默认Shell(如/bin/bash)
ps -p $$      # 查看当前会话使用的Shell

6、Bash shell 的操作环境

(1)路径与指令搜寻顺序

(2)bash 的进站与欢迎讯息:/etc/issue、/etc/motd

(3)环境配置文件:login、non-login shell、/etc/profile、~/.bash_profile、source、~/.bashrc

(4)终端机的环境设定:stty,set

//将这个串口在按波特率9600打开,并设置为输入状态,下一句可以接收数据
stty -F /dev/ttysWL1 speed 9600 cs8 cread clocal
echo -ne '\x1B\x0D\x4C'  > /dev/ttysWL1

(5)通配符与特殊符号

通配符

bash环境种的特殊符号

7、数据流重导向(redirect)

数据流重导向就是将某个指令执行后应该要出现在屏幕上的数据,给他传输到其他的地方。

8、管线命令(pipe)

(1)撷取命令:cut、grep

//筛选进程列表中包含 T 的行
ps -ef|grep T

(2)排序命令:sort、uniq、wc

// 先排序,重复元素的只显示一次
cat /etc/passwd | sort |uniq -c

wc 相当于一个工具组,当你想知道目前你的账号档案中有多少个账号,就使用这个方法:

//账号档案中有多少个账号,因为这个文档一行代表一个使用者
cat /etc/passwd | wc -l

//账号里面有多少个字符
cat /etc/passwd | wc -c

(3)双向重导向:tee

tee 可以让standard output转存一份档案内并将同样的数据继续送到屏幕去处理。这样除了可以让我们同时分析一份数据并记录下来之外,还可以作为处理一份数据的中间暂存盘记录之用。

(4)字符转换命令:tr、col、join、paste、expand

tr可以用来删除一段讯息当中的文字,或者是进行文字讯息的替换!

col大多数是用来简单的处理[tab]按键取代为空格健!

join可以将有关系的资料放置在一起。但是要经过排序(sort)处理。

paste 比join简单点,直接将两行贴在一起,且中间以[tab]键隔开。

expand 就是在将[tab]按键转成空格键。

(5)分割命令:split

(6)参数代换:xargs

(7)关于减号:的用途

总结​:Bash是功能强大的Shell实现,兼具交互便利性与脚本编程能力,是Linux生态的核心工具之一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值