ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

银河麒麟系统终端与Shell实操指南:从基础命令到脚本排障

2026/8/31 22:19:54 拓冰建站 浏览量
银河麒麟系统终端与Shell实操指南:从基础命令到脚本排障 各位读者朋友大家好。在实际工作或项目迁移中很多人会从 Ubuntu、CentOS 转到国产化平台。提到国产操作系统银河麒麟Kylin是绕不开的一个名字。不管是银河麒麟桌面版还是服务器版日常维护、软件安装、服务部署都离不开终端和 Shell。今天这篇文章不聊虚的就围绕麒麟系统里的终端工具、Shell 基础操作、软件安装卸载、常见报错排查这几个核心方向展开把一套可以直接上手的实操流程整理出来希望能帮你少踩一些坑。1. 麒麟系统终端与 Shell 的基础认知1.1 什么是终端什么是 Shell在开始敲命令之前先把概念理顺。终端Terminal是一个字符界面的交互工具它提供一个窗口让用户输入命令并查看输出结果。在银河麒麟桌面版中你可以从开始菜单找到“终端”应用它本质上是一个图形化的终端模拟器底层调用系统的 Shell 来执行命令。Shell则是解释命令的程序。它接收用户在终端里输入的内容解析后交给操作系统去执行。Linux 下常见的 Shell 有bash、zsh、sh等银河麒麟默认使用的是bash。简单理解用户 - 终端终端模拟器 - Shellbash - Linux 内核 - 硬件你打开终端输入一条命令按下回车Shell 解析这条命令并调用系统接口完成操作再把结果显示在终端上。1.2 为什么使用麒麟系统要重点掌握 Shell麒麟系统虽然提供了图形化桌面但很多工作仍然离不开 Shell。一方面服务器版麒麟系统通常没有安装图形界面安装软件、配置服务、查看日志全部要通过命令行完成。另一方面在桌面版日常使用中终端也是解决图形界面故障的重要入口。比如软件商店无法正常打开、系统源需要更换、某些软件只能通过apt或dpkg安装这些场景都需要打开终端敲命令。更关键的是Shell 脚本能帮我们批量完成重复性工作。比如一天要检查多台服务器的磁盘空间、备份数据库、清理日志文件手动操作效率太低写成脚本后一次执行就行。1.3 麒麟系统与 Ubuntu 的关系银河麒麟 V10 与 Ubuntu 有一定渊源其软件生态大多兼容 Debian 系软件包因此apt、dpkg等包管理命令可以直接使用。这意味着你在 Ubuntu 上积累的大量命令经验大部分可以迁移到麒麟系统上。但要注意麒麟系统并不是 Ubuntu 的完全拷贝。内核版本、系统库、预装软件都有差异部分软件在 Ubuntu 上能正常安装放到麒麟上可能出现依赖缺失或兼容问题。因此掌握排查思路比死记命令更重要。2. 环境准备与版本说明2.1 本文演示环境本文的演示环境以银河麒麟桌面版 V10 为例操作同样适用于大部分 Debian 系 Linux 发行版。注意不同版本的麒麟系统在预装软件和内核版本上存在差异。比如银河麒麟 V10 SP1、SP2、SP3 之间就有细微差别。如果你的环境是服务器版终端界面会有所不同但 Shell 命令、apt 包管理逻辑基本一致。操作系统银河麒麟桌面版 V10x86_64 架构 终端工具系统自带终端Terminal Shellbash默认 包管理器apt / dpkg版本需要根据你的项目实际情况调整本文示例以常见环境为例重点演示配置思路。2.2 打开终端的几种方式在麒麟桌面版中打开终端有以下常见方式方式一开始菜单查找点击桌面左下角的开始菜单在搜索框中输入“终端”或“Terminal”点击图标打开这是最直观的方式。方式二快捷方式在桌面空白处右键部分版本会直接提供“打开终端”选项。如果没有可以先进入某个目录再在文件管理器空白处右键选择“打开终端”这种方式会直接定位到当前目录。方式三Ctrl Alt T这是 Linux 下比较通用的快捷键银河麒麟桌面版默认也支持。按一下就能快速唤起终端窗口适合日常高频使用。打开终端后你会看到一个类似这样的提示符kylinkylin:~$其中kylin是当前用户名后面的kylin是主机名~表示当前位于用户主目录$表示当前是普通用户权限。如果是 root 用户提示符末尾会是#。2.3 关于管理员权限很多命令需要管理员权限才能执行比如安装软件、修改系统配置文件。在终端中临时获取管理员权限最常用的方式是sudosudo apt update执行后会提示输入当前用户的密码输入时屏幕上不会显示任何字符这是正常现象输入完直接回车即可。也可以切换到 root 用户适合需要连续执行多条管理员命令的场景sudo -i输入密码后终端提示符会变成rootkylin:~#此时执行的命令都拥有最高权限。但需要注意在 root 状态下操作风险较高尤其涉及删除、修改系统文件的命令时一定要谨慎。建议能用sudo就尽量用sudo减少长时间以 root 身份操作的机会。3. 终端高频操作与常用命令3.1 目录切换与文件管理终端操作的第一步往往是查看当前位置和切换目录。# 查看当前所在目录 pwd # 查看当前目录下的文件列表 ls # 查看详细信息包括权限、所有者、文件大小 ls -l # 查看隐藏文件 ls -a # 切换到指定目录 cd /etc # 返回上一级目录 cd .. # 返回用户主目录 cd ~ # 返回上一次所在目录 cd -这里重点说明一下cd -。很多人在终端里来回切换目录时容易搞不清自己刚才在哪。cd -可以快速切回上一个目录并且终端会打印出切换后的路径方便确认。查看文件内容的常用命令# 查看文件全部内容 cat 文件名 # 分页查看文件内容按 q 退出适合长文件 less 文件名 # 查看文件末尾内容默认 10 行适合查看日志 tail 文件名 # 实时跟踪文件新增内容适合观察日志输出 tail -f 文件名3.2 系统信息查看排查问题第一步通常先确认系统基本信息。# 查看内核版本 uname -a # 查看操作系统版本信息 cat /etc/os-release # 查看 CPU 信息 lscpu # 查看内存信息 free -h # 查看磁盘空间 df -hfree -h和df -h中的-h表示 human-readable即以人类易读的格式显示GB、MB 等单位这个参数很常用建议养成习惯加上。3.3 安装软件的两种主要方式在麒麟系统上安装软件最常用的是apt命令。它类似于手机上的应用商店可以从软件源下载并安装软件同时自动处理依赖关系。先更新软件源缓存sudo apt update然后安装软件sudo apt install 软件包名例如安装网络工具curlsudo apt install -y curl-y参数表示自动确认不需要手动输入 Y。如果需要从本地 deb 安装包安装软件可以使用dpkgsudo dpkg -i 软件包名.debdpkg的缺点是它不会自动处理依赖。如果安装时报依赖缺失可以接着执行sudo apt -f install这个命令会自动修复依赖关系。建议在下载麒麟系统适用的软件时优先选择官网提供的 deb 包避免源里没有收录的情况。3.4 软件卸载与商店软件管理卸载软件同样使用aptsudo apt remove 软件包名如果希望连配置文件一起删除使用sudo apt purge 软件包名注意卸载软件是一个不可逆的操作执行前最好确认软件包名是否正确。如果不确定包名可以先搜索apt search 关键词在麒麟软件商店中安装的软件本质上也走的是apt或dpkg流程。所以当软件商店出现异常无法卸载某个软件时可以在终端中用apt命令完成卸载。3.5 终端其他使用技巧经常有人问“终端里怎么换到上一行”。在终端中如果一行命令太长或者粘贴了多行内容可以使用以下方式如果命令还没执行可以使用键盘的Home键跳到行首End键跳到行尾使用方向键左右移动光标。这不算真正意义的“上一行”但可以解决大部分编辑需求。如果粘贴的内容包含多行最后一行的内容会被自动合并执行这可能导致报错。安全做法是逐行粘贴或者先粘贴到文本编辑器中确认无误后再复制到终端。4. Shell 脚本入门与实战4.1 什么是 Shell 脚本Shell 脚本是把多条 Shell 命令按一定逻辑写入一个文件然后通过bash解释执行。它可以帮助我们实现自动化操作比如定时备份、批量重命名、环境部署等。一个最简单的 Shell 脚本就是一个文本文件里面按顺序写命令#!/bin/bash # 这是一个最简单的脚本示例 echo Hello, Kylin Shell4.2 创建和执行第一个脚本下面演示如何从零创建一个 Shell 脚本。第一步创建脚本文件vim hello.sh如果你不熟悉 vim可以使用nanonano hello.sh在文件中写入#!/bin/bash # 打印系统信息 echo 当前用户: $(whoami) echo 当前目录: $(pwd) echo 系统版本: $(cat /etc/os-release | grep PRETTY_NAME)第二步添加执行权限chmod x hello.sh第三步执行脚本./hello.sh也可以直接使用 bash 执行不需要添加执行权限bash hello.sh4.3 变量与输入输出Shell 中定义变量不需要写类型直接赋值即可#!/bin/bash name麒麟系统 echo 系统名称: $name注意等号两边不能有空格否则会报错。变量名只能包含字母、数字和下划线且不能以数字开头。读取用户输入使用read#!/bin/bash echo 请输入你的名字: read user_name echo 你好$user_name4.4 条件判断与循环Shell 脚本中if条件判断的语法稍微有些特殊方括号两边必须有空格#!/bin/bash # 判断当前用户是否为 root if [ $(whoami) root ]; then echo 当前是管理员用户 else echo 当前是普通用户 fifor循环示例遍历目录下的所有.log文件#!/bin/bash for file in /var/log/*.log; do echo 清理日志文件: $file donewhile循环常用于读取文件内容或实现死循环需要配合break或exit退出#!/bin/bash count1 while [ $count -le 5 ]; do echo 第 $count 次循环 count$((count 1)) done这里$((count 1))是 Shell 的算术运算写法。4.5 函数与参数传递Shell 脚本也可以定义函数提高代码复用性#!/bin/bash # 定义函数检查目录是否存在 check_dir() { if [ -d $1 ]; then echo 目录 $1 存在 else echo 目录 $1 不存在 fi } # 调用函数传入参数 check_dir /etc check_dir /nonexistent脚本本身也可以接收外部参数$1表示第一个参数$2表示第二个参数$#表示参数个数#!/bin/bash # 用法: ./args.sh 参数1 参数2 echo 参数个数: $# echo 第一个参数: $1 echo 第二个参数: $24.6 Shell 脚本常见坑点问题一执行脚本提示权限不够这是新手最容易遇到的问题。解决方案是给脚本添加执行权限chmod x 脚本名.sh问题二脚本在 Windows 上编辑后执行报错如果在 Windows 上编辑脚本再拷贝到麒麟系统脚本文件可能包含 Windows 换行符\r\n执行时会出现$\r: command not found的报错。可以使用sed命令去除\rsed -i s/\r$// 脚本名.sh问题三脚本包含中文乱码脚本文件编码需要是 UTF-8且文件头最好声明#!/bin/bash不要在脚本开头使用#!/bin/sh指向其他 Shell避免语法差异。问题四变量比较时忘记加引号在if判断中变量应使用双引号包裹否则变量为空时会出现语法错误# 推荐写法 if [ $name kylin ]; then echo ok fi # 不推荐写法 if [ $name kylin ]; then echo ok fi5. 麒麟系统软件安装实战5.1 三种常见安装方式对比麒麟系统上安装软件主要有三种方式apt在线安装、dpkg本地安装、源码编译安装。安装方式优点缺点适用场景apt 在线安装自动处理依赖操作简单软件源中不一定有最新版本安装常用软件dpkg 本地安装安装官网提供的 deb 包不处理依赖可能报错安装厂商提供的专用软件源码编译安装可定制功能版本最新依赖较多编译耗时长软件源中找不到时5.2 安装开发常用工具以安装编译工具gcc和make为例sudo apt update sudo apt install -y gcc make安装 Python 开发环境sudo apt install -y python3 python3-pip验证安装结果gcc --version python3 --version5.3 apt 源配置与更新在某些情况下麒麟系统默认的软件源可能连接不稳定或者某些软件包无法下载。这时可以考虑更换软件源。软件源配置文件位于/etc/apt/sources.list以及/etc/apt/sources.list.d/修改前先备份原文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后编辑配置文件将源地址替换为国内可用的镜像源地址。具体地址要根据你所使用的麒麟版本如 V10 SP1、V10 SP2确认。修改完成后执行sudo apt update如果输出正常没有出现大量错误说明源配置成功。这里要特别提醒不要把 Ubuntu 的源直接写入麒麟系统因为麒麟系统基于的 Ubuntu 版本不一定和你的系统匹配直接混用源可能引发严重依赖问题。5.4 软件商店错误代码 0006 排查不少用户在麒麟软件商店中安装软件时会遇到“错误代码 0006”的提示。这个问题通常与软件商店的底层包管理异常有关。排查步骤如下。第一步更新软件包缓存sudo apt update如果提示有损坏的依赖先修复sudo apt -f install第二步清理软件商店缓存麒麟软件商店的缓存目录一般位于用户主目录下的隐藏文件夹中可以使用以下命令清理rm -rf ~/.cache/kylin-software-center第三步重启软件商店如果软件商店进程卡死可以杀掉相关进程后重新打开pkill -f kylin-software-center完成以上操作后重新打开软件商店再次尝试安装软件。如果仍然报 0006 错误可以尝试卸载软件商店后重装sudo apt remove kylin-software-center sudo apt install kylin-software-center这个解决方案需要系统软件源可用如果源本身有问题重装也会失败。6. 高频问题与排查清单6.1 终端启动失败或打不开现象点击终端图标没有反应或者终端打开后瞬间退出。可能原因终端配置损坏、系统组件异常、Shell 环境变量配置错误。排查步骤使用Ctrl Alt F2切换到命令行登录界面用普通用户登录。查看目录下是否存在终端配置文件损坏ls -la ~/.bashrc尝试用其他终端模拟器如安装xtermsudo apt install -y xterm如果以上方案都无法解决可能是桌面环境组件损坏需要检查系统库文件或重新安装终端相关包。6.2 Shell 脚本执行时提示权限拒绝bash: ./test.sh: Permission denied原因脚本没有执行权限。解决方案chmod x test.sh6.3 apt 安装软件时提示依赖错误E: Unable to correct problems, you have held broken packages.原因软件包依赖关系冲突常见于源版本不一致或之前安装中断。解决方案sudo apt update sudo apt -f install sudo apt --fix-broken install如果仍无法解决检查是否有手动安装的 deb 包与源里的包版本冲突优先卸载手动安装的包。6.4 如何查看系统架构以选择正确安装包很多用户下载麒麟系统软件时不清楚该下载 x86 还是 arm64 版本的包。uname -m输出结果对应关系输出架构x86_6464 位 x86 架构aarch6464 位 ARM 架构armv7l32 位 ARM 架构根据结果下载对应架构的安装包能避免大量兼容性问题。6.5 排查问题通用思路日常使用中我建议按照这个顺序排查问题确认命令或软件包名是否正确。查看系统日志/var/log/syslog或/var/log/messages。执行sudo apt update刷新软件源。检查磁盘空间是否充足使用df -h查看。在互联网搜索报错信息关键词看是否有人遇到过相同问题。如果以上步骤都无法解决考虑软件版本兼容性问题尝试降低或升级版本。7. 工程实践与使用建议7.1 合理使用管理员权限在日常使用中强烈建议不要长时间以 root 身份执行命令。普通操作使用当前用户只有安装软件、修改系统文件时才使用sudo。原因很简单root 状态下误删一个系统文件可能直接导致系统无法启动。如果需要在 Shell 脚本中执行管理员操作可以在脚本内部使用sudo但脚本中的敏感信息如密码不要硬编码。更安全的做法是为脚本配置 NOPASSWD 的 sudo 规则但这需要管理员评估安全性后配置。7.2 Shell 脚本编写规范写 Shell 脚本时有几条经验值得遵守添加注释说明。脚本开头注明用途、作者、修改日期关键命令旁边写清楚做了什么方便自己一个月后回来看懂也方便他人接手。定义变量集中管理。把需要频繁修改的路径、文件名等定义为变量统一放在脚本开头后续修改只需要改一处。执行前检查参数。脚本如果依赖参数运行启动时先判断参数是否存在避免直接运行到一半才发现缺少必要信息#!/bin/bash if [ $# -lt 1 ]; then echo 用法: ./backup.sh 目录路径 exit 1 fi处理异常返回状态。每条命令执行后Shell 变量$?会保存上一条命令的执行结果0 表示成功非 0 表示失败。关键操作后可以检查返回值#!/bin/bash cp /etc/passwd /tmp/passwd.bak if [ $? -ne 0 ]; then echo 备份失败 exit 1 fi echo 备份成功7.3 日志管理与追溯在服务器维护中养成查看日志的习惯很重要。常用的日志查看命令# 持续跟踪某个日志文件 tail -f /var/log/syslog # 搜索日志中的特定关键词 grep error /var/log/syslog # 查看最近 200 行日志 tail -200 /var/log/syslog如果日志文件很大建议先使用grep过滤关键词再使用less分页查看避免终端卡顿。7.4 定时任务的编写与应用在运维工作中定时备份、定时清理日志是很常见的需求。麒麟系统使用crontab实现定时任务。查看当前用户的定时任务crontab -l编辑定时任务crontab -e比如每天凌晨 2 点执行/home/kylin/backup.sh0 2 * * * /home/kylin/backup.sh注意定时任务执行时使用的环境变量与手动执行不同。脚本中尽量不要依赖用户自定义的环境变量路径尽量写绝对路径。7.5 数据安全与备份意识在终端执行任何涉及删除、覆盖的操作前务必确认路径和文件名。一个比较稳妥的习惯是在删除文件之前先执行ls -l /完整/路径/文件名确认文件确实是要删除的目标后再执行删除命令。涉及修改重要配置文件时先备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak-$(date %Y%m%d)这样即使配置出错也可以快速恢复。8. 总结与后续学习方向这篇文章从麒麟系统终端的基础操作讲起覆盖了 Shell 脚本入门、软件安装卸载、常见报错排查和工程实践。核心要点可以概括为以下几个方面终端与 Shell 是所有 Linux 操作的入口无论桌面版还是服务器版掌握终端使用是基本功。apt 是麒麟系统安装软件的首选方式能够自动解决依赖问题dpkg用于安装本地 deb 包但需要配合apt -f install修复依赖。Shell 脚本是提升效率的关键工具变量、循环、条件判断是编写脚本的基础参数处理和异常检查决定了脚本的健壮性。遇到报错先分析原因再动手不要盲目执行网上的修复命令。更换软件源、卸载软件包属于系统级变更操作前必须确认后果。如果你刚接触麒麟系统下一步可以重点学习Shell 中文本处理三剑客grep、sed、awk进程管理与系统服务systemctl、ps、top网络配置与排查ip、ping、ss自动化运维Shell 脚本 crontab如果本文对你有帮助欢迎收藏备用。使用麒麟系统过程中如果遇到其他问题也可以在评论区和大家交流我会根据大家的反馈继续整理更多实战内容。