在国产化信息技术应用创新的大背景下,银河麒麟服务器操作系统(Kylin Server OS)凭借自主可控的技术架构、高等级的安全防护能力以及对国产化软硬件生态的深度适配,已成为政府、金融、能源等关键行业核心业务部署的首选操作系统之一。对于运维工程师而言,熟练掌握其基础语法与核心操作,是高效开展国产化系统运维工作的核心前提。本文将从银河麒麟系统基础认知、Shell 基础语法、系统核心操作命令三个维度,结合实战代码示例与详细原理讲解,帮助运维人员夯实银河麒麟服务器运维的基础能力,快速实现从理论到实操的落地。
一、银河麒麟服务器操作系统基础认知
银河麒麟服务器操作系统是基于 Linux 内核进行深度定制与优化的国产化服务器操作系统,由麒麟软件有限公司研发,分为针对不同场景的版本体系,其中服务器版重点面向企业级关键业务场景,全面兼容 x86、ARM、LoongArch 等主流硬件架构,同时对飞腾、鲲鹏、龙芯等国产化芯片,以及金仓、达梦、东方通等国产化软件形成了完善的生态适配体系。
1.1 系统核心特性
- 自主可控性:拥有完全自主知识产权,支持 SM4、SM2 等国密算法,符合等保 2.0、分级保护等国家信息安全标准,可有效保障核心业务的数据安全与系统可控性。
- 生态兼容性:不仅兼容主流 Linux 应用程序与开发工具,还通过了海量国产化软硬件产品的兼容性认证,实现了从底层硬件到上层应用的全栈国产化适配。
- 高可靠运行:针对服务器 7×24 小时不间断运行的场景需求,对内核调度、内存管理、IO 处理等核心模块进行了专项优化,具备高可用性与故障自愈能力。
1.2 系统目录结构
银河麒麟系统的目录结构严格遵循 FHS(文件系统层次结构标准),清晰的目录划分是高效运维的基础,核心目录的功能定位如下:
| / | 根目录,作为所有文件和目录的顶级入口,是文件系统的基础框架 |
| /bin | 存放系统级基础可执行命令(如 ls、cat、cp),所有用户均可执行 |
| /etc | 存放系统配置文件与应用程序配置项(如 sysctl.conf、passwd、nginx.conf),是运维配置修改的核心目录 |
| /var | 存放可变数据,包括系统日志(/var/log)、数据库文件(/var/lib)、缓存文件(/var/cache)等 |
| /usr | 存放用户级应用程序、库文件与文档,是系统软件安装的主要目录 |
| /home | 普通用户的家目录,用于存储用户个人文件与配置 |
| /root | 超级管理员(root)的专属家目录,仅 root 用户可访问 |
| /dev | 存放设备文件,如磁盘设备(/dev/sda)、串口设备(/dev/ttyS0)等,是系统与硬件设备交互的接口 |
掌握目录结构的设计逻辑与功能划分,能够帮助运维人员快速定位文件位置,例如修改系统内核参数需进入/etc/sysctl.conf,查看服务运行日志需访问/var/log目录,这是开展后续运维操作的重要前提。
二、Shell 基础语法:银河麒麟运维的核心工具
银河麒麟服务器操作系统默认采用 Bash(Bourne-Again Shell)作为命令行解释器,它不仅是执行系统命令的交互界面,更是实现自动化运维的核心工具。Shell 脚本通过将一系列命令按逻辑组合,可高效完成批量操作、故障监控、数据备份等重复性运维工作。本节将围绕 Shell 的核心语法点,结合示例进行深度解析。
2.1 变量定义与使用
变量是 Shell 脚本中存储数据的基本单元,银河麒麟系统中的变量分为系统预定义变量和用户自定义变量两类,其使用规范直接影响脚本的可读性与执行效率。
2.1.1 自定义变量
语法规则:
- 变量名由字母、数字、下划线组成,首字符不能为数字,建议采用大写字母命名(如LOG_PATH)以区分系统变量。
- 变量赋值时,等号=两侧禁止有空格,若变量值包含空格需用双引号或单引号包裹。
- 调用变量时,需在变量名前加$符号,使用${变量名}的形式可有效避免变量名与后续字符混淆,是工业级脚本的推荐写法。
代码示例:
# 定义字符串变量,值包含空格时使用双引号包裹
SYS_NAME="Kylin Server OS"
# 定义数值变量,直接赋值无需引号
SYS_VERSION=V10SP1
# 定义路径变量,采用大写命名提升可读性
LOG_PATH=/var/log/messages
# 调用变量,两种方式均可,${变量名}更推荐
echo "系统名称:$SYS_NAME"
echo "系统版本:${SYS_VERSION}"
echo "核心日志路径:${LOG_PATH}"
# 修改变量值,直接重新赋值即可
SYS_VERSION=V10SP2
echo "更新后的系统版本:${SYS_VERSION}"
# 取消变量,使用unset命令释放变量内存
unset SYS_VERSION
echo "取消后的版本变量:${SYS_VERSION}" # 输出为空,变量已释放
2.1.2 系统变量
系统变量由操作系统预定义,用于存储系统运行的基础信息,可直接在脚本或命令行中调用,常用系统变量如下:
| $PWD | 当前工作目录的绝对路径 |
| $USER | 当前登录用户的用户名 |
| $HOME | 当前用户的家目录路径 |
| $PATH | 系统命令的搜索路径,决定了命令的执行优先级 |
| $? | 上一条命令的执行返回值(0 表示执行成功,非 0 表示执行失败) |
代码示例:
echo "当前工作目录:$PWD"
echo "当前登录用户:$USER"
echo "用户家目录:$HOME"
# 执行一条正确的命令,查看$?的返回值
ls -l /etc > /dev/null
echo "上一条命令执行结果:$?" # 输出0,代表执行成功
# 执行一条错误的命令,查看$?的返回值
ls -l /nonexistent > /dev/null
echo "上一条命令执行结果:$?" # 输出非0,代表执行失败
2.2 运算符与表达式
Shell 支持算术运算、字符串运算和比较运算三大类运算,其中算术运算需借助特定命令或语法实现,这是与高级编程语言的重要区别。
2.2.1 算术运算
银河麒麟系统中,实现算术运算的常用方式有$(( ))、let命令和expr命令,其中$(( ))因其语法简洁、执行高效,成为最常用的算术运算方式。
代码示例:
# 定义参与运算的数值变量
a=10
b=5
# 使用$(( ))进行基本算术运算,支持+、-、*、/、%等运算符
sum=$((a + b))
sub=$((a – b))
mul=$((a * b))
div=$((a / b))
mod=$((a % b))
echo "加法运算:$a + $b = $sum" # 输出15
echo "减法运算:$a – $b = $sub" # 输出5
echo "乘法运算:$a * $b = $mul" # 输出50
echo "除法运算:$a / $b = $div" # 输出2
echo "取余运算:$a % $b = $mod" # 输出0
# 使用let命令进行运算,直接修改变量值
let c=a*3
echo "let运算结果:c = $a * 3 = $c" # 输出30
2.2.2 比较运算
比较运算用于判断变量或数据的关系,是流程控制的基础,分为数值比较和字符串比较两类,其运算符与判断逻辑需严格区分。
| 数值比较 | -eq | 等于(equal) |
| 数值比较 | -ne | 不等于(not equal) |
| 数值比较 | -gt | 大于(greater than) |
| 数值比较 | -lt | 小于(less than) |
| 数值比较 | -ge | 大于等于(greater or equal) |
| 数值比较 | -le | 小于等于(less or equal) |
| 字符串比较 | = | 等于 |
| 字符串比较 | != | 不等于 |
| 字符串比较 | -z | 检测字符串是否为空(长度为 0) |
| 字符串比较 | -n | 检测字符串是否非空(长度大于 0) |
代码示例:
# 数值比较示例
x=20
y=15
if [ $x -gt $y ]; then
echo "数值比较结果:$x 大于 $y"
else
echo "数值比较结果:$x 小于等于 $y"
fi
# 字符串比较示例
str1="kylin"
str2="linux"
if [ $str1 = $str2 ]; then
echo "字符串比较结果:$str1 等于 $str2"
else
echo "字符串比较结果:$str1 不等于 $str2"
fi
if [ -n $str1 ]; then
echo "字符串检测结果:$str1 非空"
else
echo "字符串检测结果:$str1 为空"
fi
2.3 流程控制:条件判断与循环
流程控制是 Shell 脚本实现逻辑判断与批量处理的核心,包括if-else条件判断、for循环、while循环等核心语法,是构建复杂运维脚本的基础。
2.3.1 if-else 条件判断
基本语法:
if [ 条件表达式 ]; then
# 条件成立时执行的语句
执行语句
elif [ 条件表达式 ]; then
# 第二个条件成立时执行的语句
执行语句
else
# 所有条件均不成立时执行的语句
执行语句
fi
代码示例:判断文件类型与存在性
# 定义待检测的文件路径
file=/etc/sysctl.conf
# 依次判断文件是否为普通文件、目录,否则判定为不存在
if [ -f $file ]; then
echo "文件检测结果:$file 是普通配置文件"
elif [ -d $file ]; then
echo "文件检测结果:$file 是目录"
else
echo "文件检测结果:$file 不存在或为特殊设备文件"
fi
2.3.2 for 循环
for循环适用于遍历列表或实现固定次数的数值循环,是批量处理任务的常用语法。
基本语法:
# 语法1:遍历列表(文件、字符串、数值集合等)
for 变量 in 列表; do
执行语句
done
# 语法2:数值循环(类似C语言的for循环)
for (( 初始值; 循环条件; 步长 )); do
执行语句
done
代码示例 1:遍历目录下的配置文件
# 遍历/etc目录下所有.conf后缀的配置文件
for conf_file in /etc/*.conf; do
echo "发现配置文件:$conf_file"
done
代码示例 2:数值循环计算累加和
# 计算1到10的累加和
sum=0
for (( i=1; i<=10; i++ )); do
sum=$((sum + i))
done
echo "1到10的累加和:$sum" # 输出55
2.3.3 while 循环
while循环适用于根据条件持续执行任务,直到条件不成立时终止,常用于读取文件内容、监控系统状态等场景。
基本语法:
while [ 条件表达式 ]; do
执行语句
done
代码示例:逐行读取文件内容
# 定义待读取的文件
file=/etc/passwd
# 使用文件描述符重定向实现文件读取
exec < $file
# 逐行读取文件内容,直到文件结束
while read line; do
echo "文件行内容:$line"
done
# 关闭文件描述符,释放系统资源
exec >&-
三、银河麒麟系统核心操作命令:日常运维高频使用
银河麒麟服务器操作系统的核心操作命令与主流 Linux 发行版一脉相承,但针对国产化场景进行了部分优化与定制。掌握这些高频命令,是开展日常运维工作的必备技能,本节将按运维场景分类讲解核心命令的使用方法与实战技巧。
3.1 文件操作命令
文件操作是运维工作中最基础、最频繁的操作,涵盖文件查看、复制、移动、删除等核心动作,常用命令包括ls、cat、cp、mv、rm等。
3.1.1 查看文件与目录信息
# 查看当前目录文件的详细信息(权限、所有者、大小、修改时间)
ls -l
# 查看目录下所有文件(包括隐藏文件,以.开头的文件)
ls -a
# 查看目录的总大小(人性化显示单位)
du -sh /etc
# 查看文件的全部内容(适用于小文件)
cat /etc/os-release
# 查看文件的前10行内容(适用于大文件快速预览)
head -10 /etc/passwd
# 查看文件的后10行内容(常用于查看日志最新记录)
tail -10 /etc/passwd
# 实时跟踪文件内容更新(核心运维命令,用于监控日志)
tail -f /var/log/messages
3.1.2 复制、移动与删除文件
# 复制单个文件到指定目录
cp /etc/sysctl.conf /tmp/
# 递归复制目录及其所有子文件(-r表示递归)
cp -r /etc/yum.repos.d /tmp/
# 移动文件(可实现重命名功能)
mv /tmp/sysctl.conf /tmp/sysctl.bak
# 强制删除文件(-f表示强制,避免交互提示)
rm -f /tmp/sysctl.bak
# 递归强制删除目录(慎用,避免误删重要数据)
rm -rf /tmp/yum.repos.d
3.2 用户与权限管理
银河麒麟系统遵循 Linux 的用户与权限模型,通过精细化的用户管理和权限控制,保障系统安全,常用命令包括useradd、passwd、chmod、chown等。
3.2.1 用户与用户组管理
# 创建普通用户(-m表示创建家目录,-s指定登录Shell)
useradd -m -s /bin/bash kylin_user
# 为用户设置密码(交互模式输入,保障密码安全)
passwd kylin_user
# 修改用户的所属主组
usermod -g root kylin_user
# 查看用户的详细信息(UID、GID、所属组)
id kylin_user
# 删除用户并同步删除家目录(-r表示递归删除)
userdel -r kylin_user
3.2.2 文件权限管理
Linux 文件权限分为读(r,4)、写(w,2)、执行(x,1)三个维度,分别对应文件所有者、所属组、其他用户三类对象,通过chmod命令可修改文件权限。
# 查看文件的权限与所有者信息
ls -l /etc/passwd
# 修改文件权限(赋予所有者读、写、执行权限,组和其他用户读权限)
chmod 744 /tmp/test.sh
# 修改文件的所有者与所属组(root:root表示所有者为root,所属组为root)
chown root:root /tmp/test.sh
3.3 进程管理
进程管理用于监控和控制系统运行的程序,常用命令包括ps、top、kill等。
# 查看系统中所有进程的详细信息(e表示所有进程,f表示全格式)
ps -ef
# 过滤查看指定进程(如nginx)的运行状态
ps -ef | grep nginx
# 实时监控进程的资源占用情况(CPU、内存、IO等)
top
# 根据PID终止指定进程(1234为进程PID)
kill 1234
# 强制终止进程(-9表示强制信号,用于终止无响应进程)
kill -9 1234
3.4 系统信息查看
查看系统硬件与运行状态信息,是排查故障、优化性能的基础,常用命令包括uname、free、df、lscpu等。
# 查看系统内核版本
uname -r
# 查看系统版本信息(银河麒麟专属标识)
cat /etc/os-release
# 查看主机名
hostname
# 查看内存使用情况(人性化显示单位)
free -h
# 查看磁盘挂载与使用情况
df -h
# 查看CPU的详细信息(型号、核心数、架构等)
lscpu
四、总结与学习建议
本文从银河麒麟服务器操作系统的基础认知出发,系统讲解了 Shell 基础语法与核心运维命令,覆盖了国产化系统运维的基础核心知识点。对于运维人员而言,想要真正掌握银河麒麟系统的运维技能,需做到以下几点:
银河麒麟服务器操作系统的运维基础与传统 Linux 运维一脉相承,但也具备自身的国产化特性。只有夯实基础,结合实际业务场景持续实践,才能成为一名合格的国产化系统运维工程师,为关键业务的稳定运行提供坚实保障。
网硕互联帮助中心
评论前必须登录!
注册