
在国产操作系统逐步走进企业办公、政务生产和个人开发环境的过程中银河麒麟Kylin系统是出镜率非常高的一款。很多人第一次接触 Linux 就是从麒麟开始的但刚上手时最不习惯的就是终端和 shell。图形界面下装软件、改配置还能点一点一旦遇到软件商店报错、想批量处理文件、写自动化脚本就绕不开终端和 shell。这篇文章就以麒麟系统为背景系统梳理终端和 shell 的核心概念、常用操作、软件安装方法、shell 脚本入门和常见故障排查尽量让刚接触国产系统的读者能照着操作也让有 Linux 基础的开发者能快速对齐麒麟环境下的差异点。1. 终端和 shell 到底是什么1.1 终端不是黑框框而是操作系统的入口很多读者刚打开麒麟系统里的“终端”应用时看到的是一个类似黑色窗口的界面里面只有一个提示符比如kylinkylin:~$这个窗口其实就是终端模拟器。它本身并不执行命令而是提供一个交互界面把用户在键盘上输入的内容发送给 shell 程序再把 shell 返回的结果显示出来。你可以把它理解成“操作系统的文字入口”。在 Linux 系统中终端是运维、开发、问题排查绕不开的工具。图形界面能完成大部分日常操作但遇到下面这些场景时终端反而更高效批量重命名文件。查看系统运行状态。安装和卸载软件包。定位软件商店报错的原因。编写 shell 脚本实现自动化。在麒麟系统上终端的重要性并不比其他 Linux 发行版低。很多和系统底层、软件源、服务状态相关的操作通过终端能获得更直接的反馈。1.2 shell 是解释命令的程序shell 是一个命令行解释器。用户输入的命令最终由 shell 解释并转发给操作系统内核执行。bashBourne Again Shell是 Linux 系统中最常见的 shell麒麟系统默认使用的也是 bash。从用户视角来看shell 提供了几类核心能力执行普通命令比如ls、cd、cp。支持通配符比如*.txt表示匹配所有 txt 文件。支持重定向和管道比如cat a.txt | grep error。支持变量、条件判断、循环等编程语法把多条命令组织成脚本。对普通用户而言shell 是命令的翻译官对开发者和运维工程师而言shell 还是一种轻量级编程语言适合编写自动化运维脚本、数据处理脚本和系统管理工具。1.3 麒麟系统终端和 shell 的使用场景银河麒麟 V10 常见的使用场景有几类桌面办公安装办公软件、配置打印机、管理系统更新。开发测试部署中间件、运行 Python 或 Java 程序、操作数据库。运维管理查看服务状态、清理磁盘空间、管理用户和权限。信创适配将原本运行在 CentOS 或 Ubuntu 上的脚本迁移到麒麟系统。在这些场景里终端和 shell 几乎是绕不开的基础能力。2. 环境准备与版本说明2.1 银河麒麟常见版本银河麒麟系统目前最常见的是 V10 系列分为桌面版和服务器版。不同 CPU 架构还有不同版本例如x86_64Intel、AMD 平台。ARM64飞腾、鲲鹏平台。MIPS64龙芯平台。SW64申威平台。同一套命令在不同架构上基本一致差异主要集中在软件包来源和部分底层库。本文示例以银河麒麟桌面版 V10 为主多数命令和脚本在服务器版同样适用。如果系统版本不同个别软件源的地址或包管理器行为可能有差异。遇到问题时建议先确认系统版本cat /etc/os-release2.2 终端模拟器和 shell 环境麒麟桌面版自带终端模拟器一般可以在“开始菜单 - 系统工具 - 终端”中找到也可以在桌面空白处右键选择“打开终端”。默认 shell 是 bash可以执行下面命令确认echo $SHELL正常情况下会输出/bin/bash。如果需要在脚本中指定解释器在脚本第一行加上#!/bin/bash2.3 用户权限说明在使用终端时普通用户提示符通常是$root 用户提示符是#。很多管理类命令需要管理员权限有两种方式第一种是临时切换用户su - root第二种是使用sudo临时提权sudo 命令需要提醒的是日常操作尽量使用普通用户不要长期使用 root。涉及系统关键配置的修改先确认操作目的再执行命令避免误操作影响系统稳定性。3. 麒麟终端高频操作与核心命令3.1 打开终端和切换目录打开终端后通常停留在当前用户的家目录。查看当前目录pwd切换目录是终端里最高频的操作之一使用cd命令cd /etc # 进入 /etc 目录 cd ~ # 进入当前用户家目录 cd .. # 返回上一级目录 cd - # 返回上一次所在目录在命令行里~代表当前用户家目录.代表当前目录..代表上一级目录。这个约定在 Linux 中通用。3.2 终端换行和多行输入很多人在终端里遇到一个疑问命令行太长怎么换到下一行继续输入在 bash 中如果一行命令还没写完可以按反斜杠\再按回车shell 会在下一行继续等待输入echo hello \ world如果是想在已执行的命令中重新编辑可以使用方向键上下翻看历史命令也可以按Ctrl A跳到行首、Ctrl E跳到行尾。还有一种情况是脚本或命令中间不小心按了回车终端进入续行状态提示符变成。此时可以按Ctrl C取消当前输入重新开始。3.3 文件与目录管理日常操作中最常用的一组命令ls # 查看当前目录文件 ls -l # 查看详细信息 ls -a # 查看隐藏文件 cp file1 file2 # 复制文件 mv file1 dir/ # 移动文件 rm file1 # 删除文件 mkdir newdir # 创建目录需要注意的是rm删除的文件不会进入回收站直接删除。生产环境中尤其是 root 用户下执行rm之前要仔细检查路径。3.4 管理员权限和软件包管理麒麟系统安装软件常见有两种方式一种是在软件商店中搜索安装适合普通用户。但有时会遇到软件商店打不开、安装报错等问题。另一种是使用命令行工具安装更适合排查问题和批量部署。银河麒麟 V10 基于 Debian 体系底层包管理器是dpkg依赖管理使用apt。常用命令如下。更新软件源缓存sudo apt update升级已安装软件包sudo apt upgrade安装软件包sudo apt install 软件包名卸载软件包sudo apt remove 软件包名彻底卸载并清理配置sudo apt purge 软件包名安装本地 deb 安装包sudo dpkg -i 软件包名.deb如果 dpkg 安装时提示依赖缺失可以执行sudo apt -f install自动修复依赖关系后再安装。需要注意的是麒麟系统的软件源可能与企业内网、离线环境绑定。如果apt update报错优先检查网络、软件源配置和 DNS。3.5 查找命令和查看帮助记不住命令参数时可以查看帮助man ls也可以用命令自带的帮助参数ls --help想查找某个命令的位置which python3想查找系统里某个文件的位置find /etc -name *.conf4. 麒麟系统软件安装的完整示例4.1 通过软件商店安装银河麒麟桌面版自带软件商店相当于图形化的软件管理工具。适合安装常用办公软件、开发工具和日常应用。步骤很简单打开软件商店。在搜索框输入软件名称。点击安装按钮。输入管理员密码。这种方式适合新手但安装失败时不方便看到底层错误日志排查问题有一定局限。4.2 通过 apt 命令行安装软件以安装vim文本编辑器为例sudo apt update sudo apt install vim -y参数-y表示自动确认安装脚本中使用时比较方便。安装完成后执行vim --version可以确认安装是否成功。4.3 安装本地 deb 包如果你手里已经有一个.deb安装包比如某个适配麒麟系统的办公软件安装包安装方式如下sudo dpkg -i your-software.deb如果提示依赖缺失sudo apt -f install然后重新安装。这个过程建议在测试环境中先验证一次确认软件与原系统兼容后再批量部署。4.4 卸载和清理卸载软件时普通卸载sudo apt remove your-software如果希望连配置文件一起清理sudo apt purge your-software清理无用的依赖包sudo apt autoremove清理包管理器缓存sudo apt clean在生产环境或重要机器上执行卸载命令前建议先确认软件包名避免误删依赖组件。5. shell 脚本入门与实战5.1 第一个 shell 脚本shell 脚本本质上是把多条命令写入一个文件并赋予执行权限后运行。新建一个脚本文件vim hello.sh输入以下内容#!/bin/bash # 这是一个简单的 shell 脚本示例 echo Hello, Kylin Shell保存退出后赋予执行权限chmod x hello.sh执行脚本./hello.sh输出Hello, Kylin Shell这里需要解释一下脚本第一行的#!/bin/bash是 shebang告诉系统用哪个解释器来执行脚本。chmod x是添加可执行权限如果不加权限执行时会出现Permission denied错误。5.2 变量和用户输入shell 脚本中定义变量很简单#!/bin/bash namekylin echo 当前系统用户是 $name从用户输入读取内容可以使用read#!/bin/bash echo 请输入文件名 read filename echo 你输入的文件名是 $filename变量名不能包含空格赋值时等号两边不能有空格。这是新手比较容易踩的坑。5.3 for 循环批量处理文件shell 脚本中for循环非常实用。比如批量重命名当前目录下的.txt文件在前面加上日期前缀#!/bin/bash for file in *.txt do mv $file $(date %Y%m%d)_$file done这段脚本会遍历当前目录下所有以.txt结尾的文件并把文件重命名为类似20250101_oldname.txt的格式。使用变量时加上双引号可以避免文件名包含空格时出错。这是脚本健壮性的关键点。再来看一个批量创建目录的例子#!/bin/bash for i in {1..5} do mkdir folder_$i done循环执行完后当前目录下会生成folder_1到folder_5五个目录。5.4 条件判断条件判断用来控制脚本的分支逻辑。例如判断文件是否存在#!/bin/bash if [ -f /etc/hosts ] then echo 文件存在 else echo 文件不存在 fi[ -f 文件路径 ]是判断是否为普通文件。类似的判断还有[ -d 路径 ]判断是否为目录。[ -e 路径 ]判断是否存在。[ -z 字符串 ]判断字符串是否为空。在使用[ ]判断时注意方括号内侧必须有空格否则会报语法错误。5.5 忽略命令执行错误在脚本中如果某一条命令执行失败默认情况下脚本不会停止而是继续执行下一条。如果你希望在脚本中忽略某些步骤的错误继续执行可以在命令末尾追加|| true#!/bin/bash echo 开始执行 some_maybe_fail_command || true echo 忽略错误继续执行如果希望脚本只要遇到任何错误就立即退出可以在脚本开头加上set -e实际项目中可以根据需求选择不同的错误处理策略。对于自动部署脚本通常会先用set -e做严格检查再单独对允许失败的步骤做例外处理。6. 常见问题与排查思路6.1 麒麟软件商店错误代码 0006不少用户在使用麒麟系统时软件商店安装软件会提示错误代码 0006。这个错误通常和软件源、网络连接或软件仓库缓存有关。排查思路如下。第一步检查网络是否正常ping -c 4 mirrors.kylinos.cn第二步更新软件源缓存sudo apt update第三步清理缓存后重试sudo apt clean如果是在内网环境需要确认/etc/apt/sources.list中配置的软件源地址是否可访问。6.2 软件安装提示依赖缺失使用dpkg -i安装本地包时经常出现依赖缺失的提示。解决方法是先执行sudo apt -f install自动修复依赖然后重新安装软件包。也可以使用apt install ./软件包名.deb的方式直接安装本地包apt 会尝试处理依赖。6.3 终端提示权限不足执行命令时提示Permission denied或Operation not permitted通常有两种情况。第一命令需要管理员权限。检查当前用户身份非 root 用户需要加sudo。第二文件没有执行权限。如果是要执行脚本先加权限chmod x script.sh6.4 终端打不开或异常退出如果终端模拟器打不开可以先尝试从另一个终端执行kylin-terminal查看终端进程的报错信息。常见原因包括显卡驱动问题、中文输入法冲突、桌面环境组件异常。也可以尝试删除终端应用的残留配置后重启rm -rf ~/.config/kylin-terminal这个操作会重置终端配置适合配置损坏的场景但最好先备份原配置目录。6.5 常见问题一览问题现象常见原因解决思路软件商店提示错误代码 0006软件源不可达、缓存损坏检查网络、更新软件源、清理缓存apt update 报错软件源地址错误检查 /etc/apt/sources.list安装 deb 包提示依赖缺失依赖包未安装apt -f install 修复依赖执行脚本提示 Permission denied脚本没有可执行权限chmod x 脚本名终端字体或界面错乱终端配置损坏备份并重置终端配置命令找不到软件未安装或 PATH 缺失which 检查路径安装相应软件包7. 最佳实践与工程建议7.1 命令操作规范在终端执行命令时尽量养成几个好习惯。命令执行前先确认路径pwd删除操作前先查看ls -l 路径使用rm -rf时要格外谨慎最好先列目录确认内容再执行删除避免误删系统文件或用户数据。7.2 shell 脚本编写规范编写 shell 脚本时建议注意以下几点。脚本开头声明解释器#!/bin/bash变量命名使用小写字母和下划线避免与系统环境变量冲突file_path/home/kylin/data给关键步骤添加注释方便后期维护# 备份配置文件 cp /etc/app.conf /etc/app.conf.bak对路径加双引号防止空格导致错误cp $source_file $target_dir在生产环境中脚本里涉及远程服务器操作或数据库变更时先在小范围测试确认逻辑正确后再全量执行。7.3 日志记录与错误处理脚本运行出现问题后日志是排查的第一手资料。建议在脚本中增加输出重定向bash deploy.sh deploy.log 21这样标准输出和错误输出都会写入deploy.log文件。在脚本内部也可以对关键步骤做简单的日志追加echo $(date) 开始备份 deploy.log7.4 权限最小化在服务器或生产环境中不建议直接用 root 执行日常命令也不要给脚本授予过高的 sudo 权限。普通用户能完成的任务就用普通用户执行只有安装软件、修改系统配置时才临时提权。对于可能影响系统稳定性的操作比如替换软件源、修改内核参数、调整服务状态建议先备份原文件再执行修改。修改完成后确认系统功能正常再清理备份或保留在固定目录中。7.5 软件源与网络安全配置软件源时优先使用官方源或企业内部可信源。不要随意添加来源不明的软件源避免安装到被篡改的软件包。安装第三方软件时确认软件包来源可靠在测试环境验证后再部署到正式环境。8. 下一步学习建议终端和 shell 是 Linux 操作系统中适用范围很广的基础能力。读完这篇文章你应该已经可以完成几件事在麒麟系统中打开终端并执行基础命令、通过命令行安装和卸载软件、编写简单的 shell 脚本处理文件、面对软件商店报错时找到排查入口。如果还想继续深入建议从以下几个方向切入。掌握文本处理三剑客grep、sed、awk。这三个工具能帮你快速处理日志、提取数据、批量修改文件内容。理解用户和权限管理。useradd、usermod、chmod、chown是系统管理的基础。学会 systemd 服务管理。用systemctl管理服务状态、设置开机自启是服务器运维的常用技能。尝试编写一个完整的小型自动化脚本。比如每天定期备份指定目录保留最近 7 天的备份文件并把日志写入文件。这样一个脚本虽然不大但能把变量、循环、条件判断、时间处理、文件操作全部串起来对理解 shell 编程很有帮助。在动手过程中遇到报错不要急着搜索“复制粘贴”先看报错信息本身。终端给出的错误信息一般是直接原因比如文件不存在、权限不足、依赖缺失。如果信息不够完整可以用-v或--debug参数重试获取更详细的输出。国产操作系统处于快速迭代阶段不同小版本的软件源地址、软件包名称可能有细微差别。遇到问题时先确认版本再对照官方资料排查能少走很多弯路。希望这篇文章能帮你跨过终端和 shell 的第一道门槛在麒麟系统上更顺畅地工作。