
先说一句标题里的“manjao”大概率是“Manjaro”的笔误。如果你搜“manjao命令”搜到这篇文章说明你想找的就是Manjaro这个基于Arch Linux的发行版常用命令。我用了几年Manjaro从桌面日常维护到命令行折腾都踩过不少坑这篇就把我实际高频用到的命令整理出来按使用场景分好类附带一些文档里不会写的注意事项。无论你是刚从Ubuntu转过来还是已经在Manjaro上折腾了一阵子这份清单应该都能帮你少走弯路。1. 先搞明白Manjaro的命令体系与Arch的异同1.1 名字拼写问题和Manjaro的定位很多人第一次听到“Manjaro”这个词都会拼错manjao、manjaro、manjaruo都有。它其实是Manjaro Linux一个基于Arch Linux的滚动更新发行版。滚动更新的意思是你不需要像Ubuntu那样等大版本升级系统组件会持续收到更新装一次可以用到天荒地老前提是你别把系统搞坏。为什么要把Manjaro单独拎出来讲命令而不是直接看Arch Linux的教程因为Manjaro虽然继承了Arch的包管理体系但它做了自己的二次开发。最主要的区别在于Arch用的是纯pacman包管理器Manjaro底层也是pacman但增加了Manjaro专属的仓库分层stable、testing、unstable。Manjaro默认预装了很多桌面环境辅助工具比如mhwd硬件检测、manjaro-settings-manager系统设置面板这些在Arch里是没有的。Manjaro的内核切换、显卡驱动安装有自己的一套命令和Arch的手动方式不一样。所以如果你直接照搬Arch wiki里的命令有些能跑通有些会提示找不到工具还有些甚至会把系统搞坏。我下面列的命令全部在Manjaro上实测过。1.2 三条命令主线pacman、AUR helper、systemctlManjaro的命令操作绝大部分绕不开这三个体系pacman官方包管理器负责安装/卸载/更新来自官方仓库的软件。它的用法是pacman -参数 包名参数全是小写字母大小写敏感记错会出大问题。AUR helperAUR是Arch用户软件仓库里面有大量社区维护的软件包Manjaro默认没有安装AUR helper需要你自己装一个最常见的是yay或paru后面细说。装完之后AUR软件和官方软件的操作体验就统一了。systemctl系统服务管理工具用来启动、停止、开机自启各种守护进程。Manjaro沿用了systemd作为初始化系统所以这个命令体系也不会变。理解了这三条线后面所有命令基本都是它们的组合和延伸。2. pacman包管理命令装机后最先要背熟的这一套2.1 安装、卸载、更新最核心的增删改查我先说最常用的增删改查。pacman的语法是pacman [选项] [包名]注意选项前面只有一个横杠不像很多Linux工具用两个横杠。搜索软件包pacman -Ss 关键词比如我想装一个截图工具但是不确定叫什么名字可以pacman -Ss screenshot它会列出所有名称或描述里包含“screenshot”的包。这个搜索是模糊匹配结果可能很多所以关键词尽量精确。安装软件包pacman -S 包名-S是安装Synchronize的S后面跟精确的包名。安装时它会自动解析依赖把需要的东西一起装好。如果安装过程中提示某个依赖版本冲突不要硬来先看看是不是仓库源的问题。卸载软件包pacman -R 包名这是单纯卸载不删除依赖。我一般更常用这个pacman -Rns 包名-Rns三个参数含义分别是Removal移除包、nosave不保留配置文件、dependencies同时删除不再被其他包依赖的孤儿依赖。我实际用过之后感觉-Rns才是真正意义上的“卸载干净”-R卸载完有时候会残留一堆用不到的依赖库占空间不说还会让系统越来越乱。更新系统sudo pacman -Syu-Sy是刷新软件源数据库-u是升级所有可更新包。Manjaro因为是滚动更新我建议养成定期更新的习惯最好一两周一次不要几个月不更新然后一次性大跨度升级那样出问题的概率会高很多。更新前建议先看一眼Manjaro官方论坛或者官方博客的更新通知有时候官方会提示某些更新需要手动处理。2.2 查询与验证确认装了啥、文件属于哪个包这部分命令在排查问题的时候特别救命。列出所有显式安装的包pacman -Qe“显式安装”是指你自己主动装的而不是作为依赖被带进来的。批量备份软件清单时这个命令输出很好用。我换电脑时会把输出存成文件在新机器上重新安装。查看某个包安装了哪些文件pacman -Ql 包名输出会列出该包在系统里创建的所有文件路径。比如你想知道某个软件的配置文件到底放在哪就可以用这个查。查询某个文件属于哪个包pacman -Qo /路径/文件这个和上面刚好是反过来的。有时候你发现系统里多了一个不知道哪里来的文件或者某个命令提示“找不到命令”但是你又确定装过某个包就可以拿文件路径去反查。比如pacman -Qo /usr/bin/nvim就能查到这个nvim是哪来的。查看包详情pacman -Qi 包名这个会显示版本的版本号、依赖关系、安装日期、描述等信息。排查问题前我习惯先跑一下这个确认当前装的版本和依赖是否符合预期。查找孤儿依赖包pacman -Qdt这个命令列出所有不再被任何已安装包依赖的包。它们通常是软件卸载后留下的“尸体”清理掉能省不少空间。清理命令是sudo pacman -Rns $(pacman -Qdtq)-q参数让pacman -Qdt只输出包名不带表格再用-Rns统一删除。我每次都这么清理实测很安全因为是孤儿包才删不会动到正常软件。2.3 本地缓存清理install的包都堆在硬盘上pacman会把下载的安装包缓存在/var/cache/pacman/pkg/目录下。时间久了这个目录可能膨胀到几个GB里面全是旧版本的安装包。查看缓存占用du -sh /var/cache/pacman/pkg/清理缓存只保留最近版本sudo pacman -Sc这个命令会删除所有不再安装的软件包缓存保留当前安装版本的缓存。如果想要更激进一点只保留最近几个版本sudo paccache -rpaccache是pacman自带的一个工具-r表示保留最近版本默认保留3个版本其余全删。我现在的习惯是每两周执行一次paccache -r缓存占用控制在500MB以内既不浪费空间也不至于把缓存全清了导致想降级时找不到旧包。3. AUR仓库命令把社区软件装出“官方感”3.1 为什么Manjaro比Arch更需要AUR helperAURArch User Repository是Arch生态里一个巨大的软件仓库社区用户把自己打包的软件提交上去其他人通过特殊方式安装。很多软件官方仓库里没有但AUR里有——比如一些商业软件的Linux版、某些GitHub上的工具、还有一些国内软件的非官方打包。Manjaro虽然基于Arch但官方仓库比Arch滞后更新一些因为Manjaro要做自己的稳定性测试。这就导致部分软件在Manjaro官方仓库里没有但AUR里一定有。所以一个Manjaro用户如果不会用AUR很多软件就装不了。AUR的安装方式原本很繁琐需要手动克隆PKGBUILD、执行makepkgAUR helper就是把这个流程自动化。装上helper之后你可以用类似pacman的命令格式来装AUR包体验和官方仓库几乎一样。3.2 yay还是paru我选了paru常见的AUR helper有yay和paru两个都是主流功能几乎一样。我用过yay一段时间后来换成了paru主要原因是paru是Rust写的编译出来的二进制更干净而且paru对pacman新语法的支持更及时。但对新手来说装哪个都行选一个用熟就好没必要在两个之间纠结。安装paru的命令sudo pacman -S --needed base-devel git git clone https://aur.archlinux.org/paru.git cd paru makepkg -si安装yay的命令也是一样的流程把仓库地址换成https://aur.archlinux.org/yay.git即可。装好后日常使用就这么几条paru -Ss 关键词 # 搜索AUR和官方仓库 paru -S 包名 # 安装自动判断是官方还是AUR paru -Syu # 更新系统包括AUR包 paru -Rns 包名 # 卸载paru -S搜到同名包时会让选择装官方版还是AUR版默认会用AUR版。我习惯把paru当成主力命令因为它同时管理官方和AUR的更新一条paru -Syu通吃省得来回切。3.3 AUR安装实操与常见失败处理AUR安装失败了不要慌90%的情况是这几个原因原因一缺少base-devel编译工具链。AUR里的包大多数是源码打包需要在你机器上编译如果没装base-devel会报各种缺失依赖。解决办法是补上sudo pacman -S --needed base-devel原因二PGP签名校验失败。有些AUR包的PKGBUILD会校验作者签名的PGP key如果本机没有导入这个keymakepkg会报PGP signature could not be verified。解决方法是手动导入key报错信息里一般会给出指纹ID执行gpg --recv-keys 报错里显示的指纹ID然后再重新执行安装命令。原因三版本冲突或依赖源找不到。这种情况AUR里的包依赖了某个AUR包但那个依赖包没有更新或者和官方仓库的版本冲突。解决办法是先用paru -Syu把系统整体更新一遍再试如果还不行去AUR页面的评论区看看通常已经有人在回复里给了临时解决方案。我不建议新手一上来就装一堆AUR包因为AUR包的维护质量参差不齐。如果你用的是Manjaro作为主力系统优先用官方仓库AUR包尽量少装且只装口碑好的这样可以减少系统被搞坏的风险。4. 系统维护与升级命令Manjaro和Arch最大的区别在这里4.1 为什么不能无脑用Arch的方法直接升级很多从Arch转到Manjaro的人会犯一个错误直接用pacman -Syu也不看更新通知。Arch是纯滚动软件上游发布什么很快就到Manjaro有stable、testing、unstable三层仓库stable分支比Arch滞后大概两到四周这是在给Manjaro留时间验证兼容性。但也正因为这样有些软件在Manjaro stable仓库里的版本会偏旧如果你用paru -Syu把系统整体更新可能会遇到部分软件包被降级或者依赖版本不满足的情况。这是Manjaro的已知特性不是故障。我的建议是不要用Arch的镜像源替换Manjaro的源。网上有人为了追新把源换成Arch的短期看起来没问题长期一定出乱子。Manjaro的包被官方做过定制依赖混用Arch源会导致依赖解析混乱系统滚挂概率激增。升级前先看Manjaro官方论坛的Announcements板块它有每个更新包的通知帖如果里面有“需要手动干预”的说明按说明操作。4.2 更新内核和显卡驱动mhwd内核切换Manjaro最让我觉得省心的地方是内核切换非常简单不需要像Arch那样手动编译或管理mkinitcpio。查看当前内核版本uname -r查看Manjaro仓库里有哪些内核可用mhwd-kernel -l安装新内核例如安装6.6 LTS版本sudo mhwd-kernel -i linux66卸载旧内核例如卸载6.1时需要先确认当前没有在用这个内核sudo mhwd-kernel -r linux61整个过程会自动更新引导配置不用担心把启动器搞坏。显卡驱动的命令是mhwd。查看当前驱动的安装情况mhwd -l安装A卡/显卡的开源驱动sudo mhwd -a pci free 0300安装闭源驱动N卡sudo mhwd -a pci nonfree 03000300这个数字代表显卡设备类别。我建议除非游戏需求否则优先用开源驱动Manjaro自带的open source驱动对日常使用完全够而且不会因为驱动问题导致登录界面循环。4.3 诊断和修复系统pacman数据库和缓存锁用Manjaro时间长了难免遇到系统半残的情况。最常见的两个命令检查pacman的数据库一致性sudo pacman -Dk这个命令会扫描本地的包数据库检查是否存在依赖缺失、文件冲突之类的问题。如果输出有警告它会告诉你具体是哪个包有问题。我之前遇到过系统更新后部分命令失效跑这个命令发现是几个包的元数据损坏用sudo pacman -S 包名重新安装那几个包就修复了。清除pacman的进程锁sudo rm /var/lib/pacman/db.lckpacman在更新时会在/var/lib/pacman/下生成一个锁文件如果更新过程意外中断断电、窗口关闭、按了CtrlC这个锁文件会残留之后你再执行任何pacman命令都会提示unable to lock database。这个命令就是手动移除锁文件。但是注意移除之前一定要确认没有另一个pacman进程在运行否则可能损坏数据库。可以先看下进程ps aux | grep pacman确认没有输出除了grep自己再删。5. 日常实用命令硬件查询、服务管理、进程与端口排查5.1 systemctl服务管理开机自启和日志查看Manjaro用systemd日常管理服务就是systemctl。启动一个服务sudo systemctl start 服务名.service设置开机自启sudo systemctl enable 服务名.service查看服务状态systemctl status 服务名.service查看某服务的完整日志journalctl -u 服务名.servicejournalctl是systemd的日志查看器。配合-f参数可以实时跟踪日志输出调试服务启动失败时很常用journalctl -u 服务名.service -f我排查网络服务问题时的一个固定套路是先systemctl status看服务是否在跑如果死了journalctl -u 服务名 -xe看最近几十行日志基本都能定位问题。5.2 系统信息与硬件状态inxi和neofetchManjaro自带一个非常好用的系统信息工具inxi比neofetch的信息更详细也更适合排查问题。查看完整系统信息inxi -Fxxx这个会输出CPU、内存、主板、显卡、声卡、网络、分区、内核、桌面环境、显示服务器等所有关键信息一个命令全部搞定。如果在论坛求助发这个输出就够了。查看CPU信息lscpu查看内存和分区free -h df -h lsblkfree -h看内存占用df -h看磁盘空间lsblk看分区结构。系统变卡的时候我一般先跑这三个命令快速判断是内存爆了还是磁盘满了。查看显卡设备的实际驱动绑定lspci -k | grep -A 3 -i vga这个会显示显卡设备当前用的是哪个内核驱动模块。如果换了驱动后还是不生效用这个命令确认驱动模块绑没绑上一查一个准。5.3 进程与端口排查谁占用了我的端口查看所有监听端口ss -tlnpss命令在Manjaro上默认存在不需要装netstat。-t表示TCP-l表示监听中-n表示显示数字端口不解析服务名-p显示对应进程PID。比如你启动一个服务但它连不上去先跑这个看端口有没有监听。根据端口找进程ss -tlnp | grep 8080查看某个进程的资源占用top -p PID或者更友好的htophtop需要安装命令是sudo pacman -S htop。它的交互界面能直接看到每个进程的CPU、内存占用还能用F9直接杀进程。我排查性能问题的时候基本都用它。杀进程kill -9 PID-9表示强制结束只有正常kill PID不行时才用。强制杀进程可能导致数据丢失或配置损坏能不用尽量不用。6. 我踩过的几个坑以及对应的命令补救6.1 更新时强行中断结果半套系统待升级有一次我更新到一半电脑断电了重启之后很多常用命令都提示找不到共享库。当时我没意识到是更新没完成先跑了sudo pacman -Dk一堆警告然后发现自己当时还残留了db.lck锁文件。正确的处理流程是sudo rm /var/lib/pacman/db.lck sudo pacman -Syu重新执行-Syu让pacman把剩下的升级自动补完。系统恢复正常。这个坑的关键是断电或者中断更新后不要先重启再想着修复先重新跑一遍更新。6.2 从AUR装了一个不维护的软件导致依赖崩溃还有一次我装了一个AUR上的旧版软件它依赖了一个很老的库结果这个老库覆盖了官方仓库的文件导致几个系统的核心工具全坏了。解决办法是看pacman -Qo确认是哪个包的文件然后卸载那个AUR包和它带的依赖。现在我给自己定的规矩是AUR包安装前先看一眼AUR页面的更新时间超过一年没更新的包再想要也不装。如果一定要用先做好系统快照Manjaro自带Timeshift装一个不占多少空间这个习惯很重要。6.3 手动改了镜像源差点把自己坑出系统Manjaro的镜像源配置文件在/etc/pacman.d/mirrorlist。有一次我用了一个图形工具自动切换镜像源切完发现多了一些奇怪的源更新时总是报错。最后用Manjaro自带的manjaro-settings-manager重新选了国内的镜像源问题解决。这个坑的教训是不要手写镜像源列表用系统自带工具manjaro-settings-manager的“镜像源”选项卡来选择和排序它生成的文件格式才是Manjaro最兼容的。6.4 TTY终端显示中文是方块装个字体就好如果你在图形界面正常但CtrlAltF2进入命令行模式后发现中文显示成一堆方块不是系统坏了是TTY不支持中文字体渲染。解决办法是装一个包含中文字符的终端字体然后重启或者fc-cache -fv刷新字体缓存。我装的是wqy-microhei包sudo pacman -S wqy-microheiTTY里就能正常显示中文了。顺手说一句TTY分辨率不合适应时在/etc/default/grub里修改GRUB_GFXMODE参数也能调。6.5 别随便用“snap”软件包Manjaro虽然可以安装snap但因为Manjaro的某些内核模块和snap的挂载机制偶尔存在兼容性问题导致部分snap应用启动失败。如果你不是非某个软件不可建议优先用官方仓库或AUR版本不要在Manjaro上把snap当成主力安装方式。我踩过一次装了一个snap版的编辑器启动5次能挂3次换成AUR版之后一切正常。后来查了下问题通常出在snapd的挂载点与Manjaro的AppArmor配置不完全兼容上两条命令能够临时缓解sudo systemctl restart snapd sudo snap refresh但治标不治本能不用就不用才是正解。7. 最后一句命令记不住没关系记住怎么查Manjaro这类滚动更新的发行版最大的门槛不是命令本身而是出了问题时能不能找到靠谱的排查路径。命令是死的思路是活的。我用了这几年真正记在脑子里的命令反反复复就是pacman -Syu、pacman -S、paru -S、systemctl status、journalctl -xe、inxi -Fxxx这六条其他的都是查一下再用。个人强烈建议你把inxi -Fxxx这个命令的输出存一份备份在云盘里哪天系统坏了或者需要给远程求助的人提供环境信息直接甩出这份输出至少能省掉来回问两天“你什么配置、什么内核、什么驱动”的沟通成本。Manjaro可能不是最轻量、最稳定的发行版但它确实是把Arch的灵活性和新手的友好度结合得最平衡的那一个祝你用得顺手。