【Linux】Bash是什么?怎么使用?

devtools/2025/3/19 14:04:33/

李升伟 整理

什么是 Bash?

BashBourne Again Shell)是一种 命令行解释器(Shell),广泛用于 UnixLinux 操作系统。它是 Bourne Shellsh) 的增强版,提供了更多的功能和特性。Bash 允许用户通过输入命令与操作系统交互,执行脚本,以及自动化任务。

Bash 的主要功能

  • 执行命令:

用户可以通过 Bash 输入命令来操作文件、运行程序、管理系统等。

  • 脚本编程:

Bash 支持编写脚本(Script),用于自动化任务或执行复杂的操作。

  • 环境变量:

Bash 允许用户设置和使用环境变量,用于存储配置信息或临时数据。

  • 管道和重定向:

支持将多个命令通过管道(|)连接,或将命令的输入/输出重定向到文件。

  • 作业控制:

支持后台运行任务、暂停任务、恢复任务等。

  • 自定义配置:

用户可以通过配置文件(如 .bashrc.bash_profile)自定义 Bash 的行为。

如何使用 Bash?

1. 启动 Bash
LinuxmacOS 上,打开 终端(Terminal) 即可使用 Bash。

Windows 上,可以通过安装 Git BashWindows Subsystem for Linux (WSL) 或 Cygwin 来使用 Bash。

2. 基本命令
以下是一些常用的 Bash 命令:
在这里插入图片描述
示例:

bash">ls -l  # 列出文件的详细信息
cd /home/user/Documents  # 切换到 Documents 目录
pwd  # 显示当前目录

3. 环境变量

  • 查看所有环境变量:
bash">printenv

4. 输入/输出重定向

  • 将命令输出保存到文件:
bash">echo "Hello" > output.txt
  • 将命令输出追加到文件:
bash">echo "World" >> output.txt
  • 从文件读取输入:
bash">cat < input.txt

5. 管道

  • 将一个命令的输出作为另一个命令的输入:
bash">ls -l | grep ".txt"  # 列出文件并过滤出 .txt 文件

6. 脚本编程
Bash 脚本是包含一系列命令的文本文件,通常以 .sh 为扩展名。以下是一个简单的 Bash 脚本示例:

bash">#!/bin/bash
echo "Hello, World!"
  • 保存为 hello.sh。
  • 赋予执行权限:
bash">chmod +x hello.sh
  • 运行脚本:
bash">./hello.sh

7. 条件判断和循环

  • 条件判断:
bash">if [ "$VAR" == "value" ]; thenecho "Match found!"
elseecho "No match."
fi
  • For 循环:
bash">for i in {1..5}; doecho "Iteration $i"
done
  • While 循环:
bash">count=1
while [ $count -le 5 ]; doecho "Count: $count"count=$((count + 1))
done

8. 函数

  • 定义函数:
bash">greet() {echo "Hello, $1!"
}
  • 调用函数:
bash">greet "Alice"

9. 作业控制

  • 在后台运行命令:
bash">sleep 10 &
  • 查看后台任务:
bash">jobs
  • 将后台任务切换到前台:
bash">fg %1

10. 自定义 Bash

  • 编辑 ~/.bashrc~/.bash_profile 文件来自定义 Bash 环境。
  • 示例:
bash">alias ll='ls -la'
export PATH=$PATH:/custom/path

示例 Bash 脚本

以下是一个简单的 Bash 脚本,用于列出文件并检查某个文件是否存在:

bash">#!/bin/bash# 列出当前目录下的文件
echo "Files in the current directory:"
ls# 检查文件是否存在
if [ -f "example.txt" ]; thenecho "example.txt exists!"
elseecho "example.txt does not exist."
fi

总结

  • Bash 是一个强大的命令行解释器,广泛用于 Unix 和 Linux 系统。

  • 你可以通过 Bash 执行命令、编写脚本、管理文件等。

  • 通过学习 Bash,你可以更高效地与操作系统交互,并自动化任务。

(来自deepseek问答。)


http://www.ppmy.cn/devtools/168358.html

相关文章

Joker靶机实战攻略

1.安装并开启靶机 2.获取靶机IP 3.访问靶机 4.扫描目录 5.扫描端口 6.访问目录和端口 http://192.168.40.144:8080/ http://192.168.40.144/secret.txt 根据提示应采用爆破登录8080端口网站 7.BP抓包进行密码爆破 导出密码字典&#xff1a;head -n 100 /usr/share/wordl…

使用 `Express.js` 和 `better-sqlite3` 的最佳实践指南

在构建基于 Express.js 和 better-sqlite3 的应用时&#xff0c;遵循一些最佳实践可以帮助你更高效地管理数据库连接、提高代码的可读性和可维护性&#xff0c;并确保应用的安全性和性能。以下是一些详细的建议和示例代码。 一、数据库连接管理 1. 单例模式管理数据库连接 创…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的起步依赖:快速构建 JavaWeb 项目

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、起步依赖…

使用静态库动态库也要头文件

是的&#xff0c;即使你使用了 QCustomPlot 的导入库&#xff08;例如 .lib 文件&#xff09;和动态链接库&#xff08;.dll 文件&#xff09;&#xff0c;仍然需要包含 qcustomplot.h 头文件。原因如下&#xff1a; 1. 头文件的作用 qcustomplot.h 是 QCustomPlot 的主要头文…

结合基于标签置信度的特征选择方法用于部分多标签学习-简介版

假设 部分多标签学习&#xff08;PML&#xff09;假设&#xff1a;假设样本的标签集合中存在伪正标签&#xff0c;即某些标签可能是错误的。目标是从候选标签集中识别出真实标签。特征与标签的关系假设&#xff1a;假设不同的标签对应的特征子空间可能是不同的&#xff0c;而不…

C++基础 [五] - String的模拟实现

目录 前言 string类的模拟实现 成员函数的实现 构造函数 拷贝构造函数 赋值运算符重载 析构函数 元素访问的实现 operator[ ] Iterator - 迭代器 容量大小的实现 size capacity reserve ​编辑resize 内容修改的实现 push_back append operator(char ch) …

C++动态库中的静态调用和动态调用,延迟加载

动态库&#xff08;Dynamic Library&#xff09;是包含可以由多个程序同时使用的代码和数据的文件。在Windows上&#xff0c;它们通常被称为DLL&#xff08;动态链接库&#xff09;&#xff0c;而在Linux和macOS上&#xff0c;它们通常被称为共享对象&#xff08;.so文件&#…

34个适合机械工程及自动化专业【论文选题】

论文选题具有极其重要的意义&#xff0c;它直接关系到论文的质量、价值以及研究的可行性和顺利程度。选题明确了研究的具体领域和核心问题&#xff0c;就像给研究旅程设定了方向和目的地。例如&#xff0c;选择 “人工智能在医疗影像诊断中的应用” 这一选题&#xff0c;就确定…