Bash 简介

Bash (Bourne Again SHell)是 Linux 和 macOS 系统中最常用、最强大的命令行解释器(Shell)。它不仅是用户与操作系统内核交互的接口,也是脚本编程的重要工具。

1. 什么是 Bash

了解什么是Bash,需要理解与之相关的几个概念:

  • Shell:是操作系统的"外壳",负责接收用户输入的命令,将其翻译成内核能理解的指令,并返回结果。
  • Bash:是 GNU 项目开发的 Shell,是大多数 Linux 发行版的默认 Shell。它兼容早期的 Bourne Shell(sh),并增加了许多新功能(如命令历史、自动补全、脚本编程等)。
  • 终端(Terminal):是你输入 Bash 命令的软件界面(如 GNOME Terminal、iTerm2、Windows Terminal)。

✅ 简单理解:你在黑窗口里敲的每一行字,都是 Bash 在帮你执行。Bash将你输入的命令翻译成内核能理解的指令,并返回结果。


2. 常用 Bash 命令

2.1 📁 文件与目录操作

命令 全称 功能说明 示例
ls list 列出目录内容 ls -la(显示隐藏文件和详细信息)
cd change directory 切换目录 cd /home/usercd ..(返回上一级)
pwd print working directory 显示当前所在路径 pwd
mkdir make directory 创建新目录 mkdir my_folder
rm remove 删除文件或目录 rm file.txtrm -rf folder/(强制删除目录,⚠️谨慎使用)
cp copy 复制文件/目录 cp src.txt dest.txt
mv move 移动或重命名文件 mv old.txt new.txt
touch - 创建空文件或更新时间戳 touch new_file.txt

2.2 🔍 文件查看与搜索

命令 功能说明 示例
cat 一次性显示整个文件内容 cat config.yaml
less / more 分页查看大文件(支持上下滚动) less large_log.log(按 q 退出)
head / tail 查看文件开头/末尾几行 tail -f app.log(实时追踪日志变化)
grep 在文件中搜索特定文本 grep "error" app.log
find 按名称、大小、时间等查找文件 find . -name "*.py"

2.3 📊 系统信息与进程管理

命令 功能说明 示例
ps 查看当前运行的进程 ps aux
top / htop 实时监控系统资源(CPU、内存) top(按 q 退出)
kill 终止进程 kill 1234(1234 是进程 PID)
df 查看磁盘空间使用情况 df -h(以人类可读格式显示)
free 查看内存使用情况 free -h
uname 显示系统信息 uname -a

2.4 🌐 网络相关

命令 功能说明 示例
ping 测试网络连通性 ping google.com
curl 发送 HTTP 请求或下载文件 curl https://example.com
wget 从网络下载文件 wget https://example.com/file.zip
ssh 安全远程登录服务器 ssh user@192.168.1.100
scp 安全复制文件到远程主机 scp file.txt user@host:/path/

2.5 🔧 权限与管理

命令 功能说明 示例
chmod 修改文件权限 chmod +x script.sh(赋予执行权限)
chown 修改文件所有者 sudo chown user:group file.txt
sudo 以超级管理员(root)身份执行命令 sudo apt update

2.6 实用技巧与快捷键

快捷键 功能
Tab 自动补全命令或文件名(按两次可显示所有匹配项)
/ 浏览历史命令
Ctrl + C 中断当前正在运行的命令
Ctrl + Z 将当前命令挂起到后台
Ctrl + L 清屏(等同于 clear 命令)
!! 重复执行上一条命令(常用于忘记加 sudo 时:sudo !!
!$ 引用上一条命令的最后一个参数

3. Bash 的强大特性

管道与重定向 是 Bash 最精髓的部分,允许你将多个命令组合起来完成复杂任务。

3.1 管道

管道(Pipe |):将前一个命令的输出,作为后一个命令的输入。

bash 复制代码
# 示例:查找包含 "error" 的行,并统计数量
grep "error" app.log | wc -l

3.2 重定向

重定向(Redirect >>>):

  • **>:**将输出写入文件(覆盖原有内容)
  • **>>:**将输出追加到文件末尾
  • **<:**从文件读取输入
bash 复制代码
# >:将标准输出写入文件(覆盖模式);
# 如果文件已存在,原有内容会被完全清空并替换;如果文件不存在,则创建新文件 
# 将 "Hello World" 写入文件 output.txt; 
echo "Hello World" > output.txt

#------------------------------------------------------------
# >>:将标准输出追加到文件末尾(追加模式)
# 如果文件已存在,保留原有内容,新内容接在后面;如果文件不存在,则创建新文件。
echo "Hello World" >> output.txt

#------------------------------------------------------------
# <:从文件读取输入(输入重定向)
# 让命令从指定文件读取输入,而不是从键盘(标准输入 stdin)读取;配合需要交互式输入的命令,或用于数据处理工具(如 sort, wc, mail 等)。

# 正常用法:wc -l 从键盘等待输入,按 Ctrl+D 结束;使用 < 重定向:直接从文件读取
wc -l < myfile.txt 
# 输出: 42   (表示 myfile.txt 有 42 行)

3.3 Bash 脚本

可以将一系列命令保存为 .sh 文件,实现自动化任务。

bash 复制代码
#!/bin/bash
# 这是一个简单的 Bash 脚本示例

echo "开始备份..."
cp important_data.txt backup_$(date +%Y%m%d).txt
echo "备份完成!"

运行方式:

bash 复制代码
chmod +x backup.sh   # 赋予执行权限
./backup.sh          # 执行脚本

3.4 Bash里调用Python解释器

当你在 Bash 中输入:

bash 复制代码
python3 script.py arg1 arg2

Bash 会:

  1. 找到 python3 可执行文件(通常在 /usr/bin/python3 或通过 PATH 查找)
  2. 启动它,并把 script.py, arg1, arg2 作为参数传给它
  3. Python 解释器读取并执行 script.py

用户是在 Bash 终端里输入的命令,看起来像"Bash 命令",但并不是 "Bash 执行了Python 脚本",而是 在 Bash 终端中调用 Python 解释器去执行 Python 脚本。

这里Bash 是"外壳",Python 是"程序":

  • Bash 是命令行解释器(Shell),它负责接收你的输入,然后启动其他程序。
  • python3 是一个独立的可执行程序(Python 解释器)。

类似的还有:

bash 复制代码
gcc hello.c -o hello
./hello

也不是"Bash 编译 C 语言",而是 Bash 调用了 gcc./hello 这两个程序。

相关推荐
MATLAB代码顾问1 天前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
万粉变现经纪人1 天前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒1 天前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼1 天前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
小郑加油1 天前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
AC赳赳老秦1 天前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
KuaCpp1 天前
C++面向对象(速过复习版)
开发语言·c++
wbs_scy1 天前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
2zcode1 天前
基于MATLAB元胞自动机(CA)的AZ80A镁合金动态再结晶(DRX)过程模拟
开发语言·matlab·动态再结晶
iCxhust1 天前
微机原理实践教程(C语言篇)---A001闪烁灯
c语言·开发语言·汇编·单片机·嵌入式硬件·51单片机·微机原理