银河麒麟系统终端与Shell实操指南:从基础命令到脚本排障
2026/8/31 22:19:45 网站建设 项目流程

各位读者朋友,大家好。

在实际工作或项目迁移中,很多人会从 Ubuntu、CentOS 转到国产化平台。提到国产操作系统,银河麒麟(Kylin)是绕不开的一个名字。不管是银河麒麟桌面版还是服务器版,日常维护、软件安装、服务部署,都离不开终端和 Shell。今天这篇文章不聊虚的,就围绕麒麟系统里的终端工具、Shell 基础操作、软件安装卸载、常见报错排查这几个核心方向展开,把一套可以直接上手的实操流程整理出来,希望能帮你少踩一些坑。


1. 麒麟系统终端与 Shell 的基础认知

1.1 什么是终端,什么是 Shell

在开始敲命令之前,先把概念理顺。

终端(Terminal)是一个字符界面的交互工具,它提供一个窗口,让用户输入命令并查看输出结果。在银河麒麟桌面版中,你可以从开始菜单找到“终端”应用,它本质上是一个图形化的终端模拟器,底层调用系统的 Shell 来执行命令。

Shell则是解释命令的程序。它接收用户在终端里输入的内容,解析后交给操作系统去执行。Linux 下常见的 Shell 有bashzshsh等,银河麒麟默认使用的是bash

简单理解:

用户 -> 终端(终端模拟器) -> Shell(bash) -> Linux 内核 -> 硬件

你打开终端,输入一条命令,按下回车,Shell 解析这条命令并调用系统接口完成操作,再把结果显示在终端上。

1.2 为什么使用麒麟系统要重点掌握 Shell

麒麟系统虽然提供了图形化桌面,但很多工作仍然离不开 Shell。

一方面,服务器版麒麟系统通常没有安装图形界面,安装软件、配置服务、查看日志全部要通过命令行完成。另一方面,在桌面版日常使用中,终端也是解决图形界面故障的重要入口。比如软件商店无法正常打开、系统源需要更换、某些软件只能通过aptdpkg安装,这些场景都需要打开终端敲命令。

更关键的是,Shell 脚本能帮我们批量完成重复性工作。比如一天要检查多台服务器的磁盘空间、备份数据库、清理日志文件,手动操作效率太低,写成脚本后一次执行就行。

1.3 麒麟系统与 Ubuntu 的关系

银河麒麟 V10 与 Ubuntu 有一定渊源,其软件生态大多兼容 Debian 系软件包,因此aptdpkg等包管理命令可以直接使用。这意味着你在 Ubuntu 上积累的大量命令经验,大部分可以迁移到麒麟系统上。

但要注意,麒麟系统并不是 Ubuntu 的完全拷贝。内核版本、系统库、预装软件都有差异,部分软件在 Ubuntu 上能正常安装,放到麒麟上可能出现依赖缺失或兼容问题。因此掌握排查思路比死记命令更重要。


2. 环境准备与版本说明

2.1 本文演示环境

本文的演示环境以银河麒麟桌面版 V10 为例,操作同样适用于大部分 Debian 系 Linux 发行版。

注意,不同版本的麒麟系统在预装软件和内核版本上存在差异。比如银河麒麟 V10 SP1、SP2、SP3 之间就有细微差别。如果你的环境是服务器版,终端界面会有所不同,但 Shell 命令、apt 包管理逻辑基本一致。

操作系统:银河麒麟桌面版 V10(x86_64 架构) 终端工具:系统自带终端(Terminal) Shell:bash(默认) 包管理器:apt / dpkg

版本需要根据你的项目实际情况调整,本文示例以常见环境为例,重点演示配置思路。

2.2 打开终端的几种方式

在麒麟桌面版中,打开终端有以下常见方式:

方式一:开始菜单查找

点击桌面左下角的开始菜单,在搜索框中输入“终端”或“Terminal”,点击图标打开,这是最直观的方式。

方式二:快捷方式

在桌面空白处右键,部分版本会直接提供“打开终端”选项。如果没有,可以先进入某个目录,再在文件管理器空白处右键选择“打开终端”,这种方式会直接定位到当前目录。

方式三:Ctrl + Alt + T

这是 Linux 下比较通用的快捷键,银河麒麟桌面版默认也支持。按一下就能快速唤起终端窗口,适合日常高频使用。

打开终端后,你会看到一个类似这样的提示符:

kylin@kylin:~$

其中kylin是当前用户名,@后面的kylin是主机名,~表示当前位于用户主目录,$表示当前是普通用户权限。如果是 root 用户,提示符末尾会是#

2.3 关于管理员权限

很多命令需要管理员权限才能执行,比如安装软件、修改系统配置文件。在终端中临时获取管理员权限,最常用的方式是sudo

sudo apt update

执行后会提示输入当前用户的密码,输入时屏幕上不会显示任何字符,这是正常现象,输入完直接回车即可。

也可以切换到 root 用户,适合需要连续执行多条管理员命令的场景:

sudo -i

输入密码后,终端提示符会变成root@kylin:~#,此时执行的命令都拥有最高权限。但需要注意,在 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 -h

free -hdf -h中的-h表示 human-readable,即以人类易读的格式显示(GB、MB 等单位),这个参数很常用,建议养成习惯加上。

3.3 安装软件的两种主要方式

在麒麟系统上安装软件,最常用的是apt命令。它类似于手机上的应用商店,可以从软件源下载并安装软件,同时自动处理依赖关系。

先更新软件源缓存:

sudo apt update

然后安装软件:

sudo apt install 软件包名

例如安装网络工具curl

sudo apt install -y curl

-y参数表示自动确认,不需要手动输入 Y。

如果需要从本地 deb 安装包安装软件,可以使用dpkg

sudo dpkg -i 软件包名.deb

dpkg的缺点是它不会自动处理依赖。如果安装时报依赖缺失,可以接着执行:

sudo apt -f install

这个命令会自动修复依赖关系。建议在下载麒麟系统适用的软件时,优先选择官网提供的 deb 包,避免源里没有收录的情况。

3.4 软件卸载与商店软件管理

卸载软件同样使用apt

sudo apt remove 软件包名

如果希望连配置文件一起删除,使用:

sudo apt purge 软件包名

注意,卸载软件是一个不可逆的操作,执行前最好确认软件包名是否正确。如果不确定包名,可以先搜索:

apt search 关键词

在麒麟软件商店中安装的软件,本质上也走的是aptdpkg流程。所以当软件商店出现异常,无法卸载某个软件时,可以在终端中用apt命令完成卸载。

3.5 终端其他使用技巧

经常有人问“终端里怎么换到上一行”。在终端中,如果一行命令太长,或者粘贴了多行内容,可以使用以下方式:

如果命令还没执行,可以使用键盘的Home键跳到行首,End键跳到行尾,使用方向键左右移动光标。这不算真正意义的“上一行”,但可以解决大部分编辑需求。

如果粘贴的内容包含多行,最后一行的内容会被自动合并执行,这可能导致报错。安全做法是逐行粘贴,或者先粘贴到文本编辑器中,确认无误后再复制到终端。


4. Shell 脚本入门与实战

4.1 什么是 Shell 脚本

Shell 脚本是把多条 Shell 命令按一定逻辑写入一个文件,然后通过bash解释执行。它可以帮助我们实现自动化操作,比如定时备份、批量重命名、环境部署等。

一个最简单的 Shell 脚本就是一个文本文件,里面按顺序写命令:

#!/bin/bash # 这是一个最简单的脚本示例 echo "Hello, Kylin Shell"

4.2 创建和执行第一个脚本

下面演示如何从零创建一个 Shell 脚本。

第一步:创建脚本文件

vim hello.sh

如果你不熟悉 vim,可以使用nano

nano 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.sh

4.3 变量与输入输出

Shell 中定义变量不需要写类型,直接赋值即可:

#!/bin/bash name="麒麟系统" echo "系统名称: $name"

注意,等号两边不能有空格,否则会报错。变量名只能包含字母、数字和下划线,且不能以数字开头。

读取用户输入使用read

#!/bin/bash echo "请输入你的名字:" read user_name echo "你好,$user_name"

4.4 条件判断与循环

Shell 脚本中,if条件判断的语法稍微有些特殊,方括号两边必须有空格:

#!/bin/bash # 判断当前用户是否为 root if [ "$(whoami)" == "root" ]; then echo "当前是管理员用户" else echo "当前是普通用户" fi

for循环示例,遍历目录下的所有.log文件:

#!/bin/bash for file in /var/log/*.log; do echo "清理日志文件: $file" done

while循环常用于读取文件内容或实现死循环,需要配合breakexit退出:

#!/bin/bash count=1 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 "第二个参数: $2"

4.6 Shell 脚本常见坑点

问题一:执行脚本提示权限不够

这是新手最容易遇到的问题。解决方案是给脚本添加执行权限:

chmod +x 脚本名.sh

问题二:脚本在 Windows 上编辑后执行报错

如果在 Windows 上编辑脚本再拷贝到麒麟系统,脚本文件可能包含 Windows 换行符\r\n,执行时会出现$'\r': command not found的报错。可以使用sed命令去除\r

sed -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" fi

5. 麒麟系统软件安装实战

5.1 三种常见安装方式对比

麒麟系统上安装软件主要有三种方式:apt在线安装、dpkg本地安装、源码编译安装。

安装方式优点缺点适用场景
apt 在线安装自动处理依赖,操作简单软件源中不一定有最新版本安装常用软件
dpkg 本地安装安装官网提供的 deb 包不处理依赖,可能报错安装厂商提供的专用软件
源码编译安装可定制功能,版本最新依赖较多,编译耗时长软件源中找不到时

5.2 安装开发常用工具

以安装编译工具gccmake为例:

sudo apt update sudo apt install -y gcc make

安装 Python 开发环境:

sudo apt install -y python3 python3-pip

验证安装结果:

gcc --version python3 --version

5.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 环境变量配置错误。

排查步骤

  1. 使用Ctrl + Alt + F2切换到命令行登录界面,用普通用户登录。
  2. 查看目录下是否存在终端配置文件损坏:
ls -la ~/.bashrc
  1. 尝试用其他终端模拟器,如安装xterm
sudo apt install -y xterm
  1. 如果以上方案都无法解决,可能是桌面环境组件损坏,需要检查系统库文件或重新安装终端相关包。

6.2 Shell 脚本执行时提示权限拒绝

bash: ./test.sh: Permission denied

原因:脚本没有执行权限。

解决方案

chmod +x test.sh

6.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 排查问题通用思路

日常使用中,我建议按照这个顺序排查问题:

  1. 确认命令或软件包名是否正确。
  2. 查看系统日志/var/log/syslog/var/log/messages
  3. 执行sudo apt update刷新软件源。
  4. 检查磁盘空间是否充足,使用df -h查看。
  5. 在互联网搜索报错信息关键词,看是否有人遇到过相同问题。
  6. 如果以上步骤都无法解决,考虑软件版本兼容性问题,尝试降低或升级版本。

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.sh

0 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 脚本入门、软件安装卸载、常见报错排查和工程实践。核心要点可以概括为以下几个方面:

  1. 终端与 Shell 是所有 Linux 操作的入口,无论桌面版还是服务器版,掌握终端使用是基本功。
  2. apt 是麒麟系统安装软件的首选方式,能够自动解决依赖问题;dpkg用于安装本地 deb 包,但需要配合apt -f install修复依赖。
  3. Shell 脚本是提升效率的关键工具,变量、循环、条件判断是编写脚本的基础,参数处理和异常检查决定了脚本的健壮性。
  4. 遇到报错先分析原因再动手,不要盲目执行网上的修复命令。更换软件源、卸载软件包属于系统级变更,操作前必须确认后果。

如果你刚接触麒麟系统,下一步可以重点学习:

  • Shell 中文本处理三剑客:grepsedawk
  • 进程管理与系统服务:systemctlpstop
  • 网络配置与排查:ippingss
  • 自动化运维:Shell 脚本 +crontab

如果本文对你有帮助,欢迎收藏备用。使用麒麟系统过程中如果遇到其他问题,也可以在评论区和大家交流,我会根据大家的反馈继续整理更多实战内容。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询