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

相关推荐
Leinwin6 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382506 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇6 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7596 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
Thera7777 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
运维小欣7 小时前
智能体选型实战指南
运维·人工智能
yy55277 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ8 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔9 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密9 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器