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. 善用管道、重定向、查找工具,提高工作效率。

相关推荐
嵌入式×边缘AI:打怪升级日志3 分钟前
嵌入式Linux开发:开源组件、第三方库与许可证详解
linux
计算机安禾4 分钟前
【Linux从入门到精通】第34篇:搭建FTP与Samba——跨平台文件共享解决方案
linux·运维·服务器
日取其半万世不竭11 分钟前
用 Netdata 实时监控服务器,比 Prometheus + Grafana 轻量得多
linux·服务器·网络·系统架构·负载均衡·zabbix·grafana
jamon_tan27 分钟前
Linux下cmake构建方法
linux
JiaWen技术圈32 分钟前
内核子系统 nf_tables 深度解析
linux·服务器·安全·运维开发
信徒_34 分钟前
负载均衡技术选型
运维·负载均衡
计算机安禾36 分钟前
【Linux从入门到精通】第32篇:Nginx入门——高性能Web服务器搭建
linux·服务器·nginx
动恰客流管家41 分钟前
动恰3DV3丨客流统计系统:旺季人手不够淡季闲人太多?客流统计帮你科学优化人力成本
大数据·运维·人工智能·3d
乐维_lwops1 小时前
智变2026:中国IT运维管理软件行业全景洞察——从AI重塑到信创深水区
运维·人工智能
ZenosDoron1 小时前
Linux 中,rm -r 和 -f
linux·运维·服务器