linux软件编程: Linux 操作系统基础与shell脚本
📘 Linux 操作系统基础
一、操作系统概念
-
作用:屏蔽底层硬件差异,为上层应用提供统一的运行环境和接口。
-
Linux 组成:
-
内核(Kernel)
-
Shell(命令行解释器)
-
库函数(系统调用接口)
-
🖥️ 常用 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` # 输出当前时间
✅ 总结建议
-
多练习基础命令,理解每个命令的常用选项。
-
掌握 Shell 编程基础,能编写自动化脚本。
-
理解权限、进程、网络配置,这是系统管理的核心。
-
善用管道、重定向、查找工具,提高工作效率。
本文地址:https://www.yitenyun.com/5968.html
上一篇:多头自注意力(基础)
下一篇:JS变量名混淆原理(AST混淆)






