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

相关推荐
蝎子莱莱爱打怪1 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
简离2 天前
前端调试实战:基于 chrome://webrtc-internals/ 高效排查WebRTC问题
前端·chrome·webrtc
崔小汤呀2 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应2 天前
vi编辑器使用
linux·后端·操作系统
何中应2 天前
Linux进程无法被kill
linux·后端·操作系统
何中应2 天前
rm-rf /命令操作介绍
linux·后端·操作系统
何中应2 天前
Linux常用命令
linux·操作系统
葛立国2 天前
从 / 和 /dev 说起:Linux 文件系统与挂载点一文理清
linux
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
哇哈哈20212 天前
信号量和信号
linux·c++