Linux软件编程: Linux 操作系统基础与shell脚本

📘 Linux 操作系统基础

一、操作系统概念

  • 作用:屏蔽底层硬件差异,为上层应用提供统一的运行环境和接口。

  • Linux 组成

    1. 内核(Kernel)

    2. Shell(命令行解释器)

    3. 库函数(系统调用接口)


🖥️ 常用 Shell 命令总结

1. 基本文件与目录操作

命令 说明 示例
ls 列出目录内容 ls -l
cd 切换目录 cd /home
mkdir 创建目录 mkdir test
rmdir 删除空目录 rmdir test
touch 创建空文件 touch file.txt
rm 删除文件或目录 rm -rf dir/
pwd 显示当前目录 pwd
cp 复制文件或目录 cp source dest
mv 移动或重命名文件 mv old new

2. 文件查看与搜索

命令 说明 示例
cat 查看文件内容 cat file.txt
head/tail 查看文件开头/结尾 head -n 5 file.txt
grep 搜索文本 grep "error" log.txt
find 查找文件 find /home -name "*.txt"

3. 管道与重定向

bash

复制代码
# 管道示例
ps -ef | grep bash

# 输出重定向
ls > list.txt
ls >> list.txt  # 追加

# 错误重定向
command 2> error.log

4. 权限管理

bash

复制代码
# 修改权限
chmod 755 script.sh
chmod +x script.sh

# 修改所属组
chgrp groupname file

# 修改所有者
chown username file

5. 压缩与解压

bash

复制代码
# tar.bz2
tar -jcvf archive.tar.bz2 dir/
tar -jxvf archive.tar.bz2

# tar.gz
tar -zcvf archive.tar.gz dir/
tar -zxvf archive.tar.gz

6. 系统与网络命令

命令 说明 示例
ps 查看进程 ps -ef
top 动态查看进程 top
ifconfig 查看网络配置 ifconfig
ping 测试网络连通性 ping 8.8.8.8
sudo 提权执行命令 sudo apt update
date 显示日期时间 date
whoami 当前用户 whoami

📦 软件包管理

1. dpkg(Debian 系)

bash

复制代码
sudo dpkg -i package.deb
sudo dpkg -l | grep package
sudo dpkg -P package

2. apt-get(高级包管理)

bash

复制代码
sudo apt update
sudo apt install package
sudo apt remove package --purge

🐚 Shell 编程基础

1. 脚本开发流程

bash

复制代码
# 1. 创建脚本
vim hello.sh

# 2. 添加内容
#!/bin/bash
echo "Hello World"

# 3. 赋予执行权限
chmod +x hello.sh

# 4. 执行
./hello.sh

2. 变量

bash

复制代码
# 环境变量
echo $HOME
echo $PATH

# 位置变量
echo $0  # 脚本名
echo $1  # 第一个参数

# 自定义变量
name="Linux"
echo $name

3. 分支结构

bash

复制代码
# if 语句
if [ $1 -eq 10 ]; then
    echo "参数是10"
elif [ $1 -lt 10 ]; then
    echo "参数小于10"
else
    echo "参数大于10"
fi

# case 语句
case $1 in
    start)
        echo "启动服务"
        ;;
    stop)
        echo "停止服务"
        ;;
    *)
        echo "用法: $0 {start|stop}"
        ;;
esac

4. 循环结构

bash

复制代码
# for 循环
for i in {1..5}; do
    echo "数字: $i"
done

# while 循环
count=1
while [ $count -le 5 ]; do
    echo "计数: $count"
    ((count++))
done

5. 数组

bash

复制代码
arr=("a" "b" "c")
echo ${arr[1]}  # 输出 b
echo ${arr[@]}  # 输出所有元素

🔗 补充说明

1. 解释型 vs 编译型语言

  • 解释型:如 Shell、Python,边解释边执行,适合系统管理。

  • 编译型:如 C、C++、Java,先编译后执行,适合高性能计算。

2. Shell 脚本中的引号

  • 双引号:变量替换

  • 单引号:原样输出

  • 反引号:执行命令

bash

复制代码
name="World"
echo "Hello $name"   # Hello World
echo 'Hello $name'   # Hello $name
echo `date`          # 输出当前时间

✅ 总结建议

  1. 多练习基础命令,理解每个命令的常用选项。

  2. 掌握 Shell 编程基础,能编写自动化脚本。

  3. 理解权限、进程、网络配置,这是系统管理的核心。

  4. 善用管道、重定向、查找工具,提高工作效率。

相关推荐
嵌入式小站11 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
神奇椰子11 小时前
[特殊字符] 服务器搭建网站完整教程
运维·服务器
慧都小妮子11 小时前
告别看图抓数据:DeviceXPlorer OPC Server 助力数据自动化管理
运维·物联网·自动化·takebishi·dxpserver·opc server
Wpa.wk11 小时前
APP自动化-Appium环境安装
运维·appium·自动化
快乐的哈士奇11 小时前
LangFuse 自托管实战:选型理由、Docker 部署与常用配置全解析
运维·人工智能·docker·容器
数智化管理手记11 小时前
精益生产3步实操,让现场从混乱变标杆
大数据·运维·网络·人工智能·精益工程
代码AC不AC11 小时前
【Linux】线程概念
linux·线程
志栋智能12 小时前
超自动化巡检:为智能运维(AIOps)铺平道路
运维·安全·自动化
武汉知识图谱科技12 小时前
智慧电厂AI中台:从燃料价值链到设备知识图谱的一体化智能运维
运维·人工智能·知识图谱
神奇小梵12 小时前
关于finalshell的使用
linux·服务器·网络