FEATURED · 精选文章

Linux入门必知:高频基础指令与实战组合技巧全解析

发布时间 / 2026/9/8 0:45:21
来源 / 创域科博编辑部
栏目 / 资讯中心
Linux入门必知:高频基础指令与实战组合技巧全解析 刚整理完手头这批新人的Linux入门培训材料正好借这个标题把基础指令这块做个系统复盘。学Linux这事说难也难说简单也简单关键在方向和一套趁手的命令组合。这篇总结面向刚接触Linux的运维新手、转行做后端开发的程序员以及做嵌入式方向需要频繁操作Linux系统的同学。整理的是我这些年高频使用、真正能解决日常问题的核心指令不是把命令手册抄一遍而是讲讲每条命令在什么场景下用、怎么组合、有哪些坑要避开。1. 整体学习路径与思路拆解1.1 为什么先打牢基础指令的地基接触过的不少新人上来就折腾各种炫酷框架、容器编排结果连日志都不会翻进程都找不着。基础指令就像房子的地基打得牢不牢直接决定后面能盖多高的楼。Linux的基础指令是整个系统的操作入口。无论你是用命令行管理服务器还是开发调试代码本质都离不开对文件、进程、权限、网络这几个核心要素的操作。就算你用宝塔面板或者Web控制台最终落地到服务器上执行的操作底层还是这些指令在工作。而且有个很实际的原因——排查问题的效率。生产环境出了故障你能依赖的是命令行。我曾经遇到过一台机器负载飙高Page fault不断GUI界面早就卡死只有切到SSH终端敲命令才能定位问题。这种情况下基础指令就是唯一的救命稻草。1.2 学习路线的规划与取舍基础指令得学多少条才算够我的答案是先掌握60到80条高频指令覆盖日常百分之九十以上的操作场景。学习路线建议按这个顺序推进第一优先级文件与目录操作。ls、cd、cp、mv、rm、find这些是每天都要敲几十遍的先闭着眼睛都能打出来。第二优先级文本处理。cat、less、tail、grep、sed、awk。日志分析、配置修改都离不开它们。第三优先级权限与用户管理。chmod、chown、useradd、su、sudo。这直接关系到系统安全。第四优先级进程与系统监控。ps、top、kill、df、free、netstat。这条路线遵循的是够用—熟练—拓展的原则。基础阶段先把前面两个优先级练熟在实战中逐渐补齐后面的部分比一次性背一百条命令的收效好得多。1.3 常见的学习误区和心态调整很多初学者有个共性问题死记硬背命令参数。我今天明着说这样做效率极低而且忘得极快。命令参数没必要背用过两三次自然就记住了记不住就查man手册或者--help完全没有心理负担。还有一个误区是贪多求全。今天听说iptables好用明天听说nftables是趋势后天又迷上firewalld结果每个都是半吊子。我建议选定一套方案先用熟比如防火墙就先用firewalld或者直接iptables遇到不同系统的差异再针对性学习。调整好心态很关键。用Linux的前三个月感觉处处别扭是很正常的命令记不住、参数写错、权限报错这些都是必经之路并不是你学不会而是肌肉记忆还没建立起来。给自己留一点熟悉的时间坚持过这个阶段后面会越用越顺手。2. 核心指令详解与实操要点2.1 文件与目录操作每天高频使用的第一梯队文件操作命令是重中之重没什么捷径可走练习量就是一切。ls是最基础也是参数最丰富的命令之一。ls -l查看详细属性ls -a查看隐藏文件ls -lh人性化显示大小。我平时最常用的是ls -lht按修改时间倒序排列一眼就能看出最近改了哪些文件。排查问题时这个组合很好用比如在日志目录里快速找到最新的日志文件。cd和pwd是成对的概念。cd进入目录pwd确认当前位置。新人经常搞混相对路径和绝对路径。绝对路径从根目录/开始写比如/var/log/nginx/access.log相对路径从当前位置开始写比如../logs/。判断用哪个的标准很简单脚本和配置里尽量用绝对路径避免依赖当前所在目录纯手工操作可以灵活用相对路径省事。cp和mv要注意参数顺序和目标差异。cp source dest是把源文件复制到目标位置mv source dest是移动但如果目标是一个已存在的目录文件会被移进这个目录里。一个经常踩的坑是把目录复制给目录不加上递归参数-r会直接报错说omitting directory。所以复制目录时要记住cp -r。rm是所有命令里最危险的没有之一。我现在给自己定了个规矩批量删除前先ls确认当前目录再pwd确认绝对路径最后才动手。比如要清空一个临时目录里的所有文件先ls /tmp/test/看看里面是什么再rm -rf /tmp/test/*。这里的-f是force不用交互式确认-r是递归删除文件夹里面所有内容。这套保险流程在刚接触Linux的阶段尤其重要不小心删了生产数据这种事我见过太多回了。还有一个建议把alias rmrm -i加到~/.bashrc里删除前强制确认能拦下很多手误。find是个宝藏命令。按名字找文件用find /path -name filename按大小找用find /path -size 100M按修改时间找用find /path -mtime -7。配合-exec还能对找出来的文件直接操作。比如清理七天前的日志文件find /var/log/myapp -name *.log -mtime 7 -exec rm {} \;。这条命令里花括号{}代表前面找到的文件\;是-exec的结尾标记。日常运维处理日志过期非常实用。2.2 文本处理三剑客grep、sed、awk文本处理是Linux运维的必修课。日志分析、配置修改、数据统计全靠这三个工具。grep做文本过滤。最常用的姿势是grep keyword file把包含关键词的行列出来。加-i忽略大小写-v反向匹配排除-c计数。举一个很实际的场景排查接口报错时在日志里搜错误码grep 500 /var/log/nginx/error.log秒级定位问题。进阶一点是配合正则表达式做模糊匹配比如grep -E error|exception能同时搜多个关键词。sed做文本处理全称是stream editor流编辑器。它的默认工作方式是一行一行读入处理完输出不直接改原文件。最常用的场景是替换文本sed s/old/new/g file。这里s是替换操作old是原字符串new是替换后的字符串g是全局替换不加的话只替换每行第一个匹配结果。举一个真实案例。我曾经接手一台服务器应用配置里的数据库连接串指向旧地址需要批量改配置。用sed -i s/192.168.1.10:3306/192.168.1.20:3306/g /etc/myapp/config.properties一条命令搞定。注意这个-i参数加上它才是真正修改文件——如果不加结果只会打印到屏幕上文件不会有任何变化。第一次用sed的十个人里有八个栽在这个参数上。强调一点-i操作不可逆批量改之前先备份原文件这是最稳妥的做法。awk做文本格式化处理。默认按空格切分每一行可以通过$1、$2、$3引用第几个字段。最经典的用法是从命令输出里提取某一列。比如从df -h输出里只显示磁盘使用率df -h | awk {print $5}这句命令的作用是把df -h输出传给awk$5表示每行切分后的第五个字段也就是使用率那一列。新手先会用这种基础提取等需要做统计汇总时再深入awk的条件判断和循环。这三个工具的实际威力在于组合使用。管线符|可以把前一个命令的输出作为后一个命令的输入。比如我要统计日志里出现次数最多的IP地址一条命令搞定awk {print $1} access.log | sort | uniq -c | sort -rn | head -20这条命令干了四件事awk提取第一列IPsort排序uniq -c统计去重并计数sort -rn按数字倒序排最后head -20取前20条。一长串命令组合起来就是个简单有效的流量分析工具。2.3 权限与用户管理系统安全的基石Linux系统安全的核心机制就是权限控制。理解权限要先理解Linux里每个文件都有三组权限——所有者、所属组、其他人每组权限有读r、写w、执行x三种。权限状态的查看方式就是ls -l。输出里第一列像-rw-r--r--第一个字符是文件类型-是普通文件、d是目录、l是软链接后面九个字符每三个一组对应所有者、组、其他人的权限。chmod修改权限。两种方式一种是用数字一种是用字母。数字方式是最常用的r4w2x1把三个数字加起来。chmod 755 file表示所有者rwx7421、组rx和用户rx541。常见的权限组合就那几个755、644、700、600。新手只要记住几个常用的组合大部分场景都能覆盖。chown修改所有者。格式是chown user:group file。比如把一个web目录的所有者改成nginx用户chown -R nginx:nginx /var/www/html。这里的-R和chmod一样都是递归处理目录下所有子目录和文件。用户管理命令在搭建多用户服务器时很重要。useradd创建用户passwd设置密码usermod修改用户属性userdel删除用户。创建一个能用sudo权限操作的用户useradd -m deploy passwd deploy usermod -aG wheel deploy这段命令的含义-m给用户创建家目录passwd交互设置初始密码usermod -aG wheel把用户加进wheel组不同发行版管理组不同CentOS是wheelUbuntu是sudo。这样deploy用户就能通过sudo执行管理员命令。权限操作是事故高发区刚接触Linux时看到权限报错先别慌用ls -l看一下文件权限然后结合当前用户身份判断是被哪一层权限卡住了再去调整而不是直接chmod 777完事。2.4 进程与系统监控机器忙不忙一眼看明白服务器跑得好不好进程和资源是关键指标。这套排查思路是运维的基本功。ps查看当前运行的进程。最常用的是ps aux输出所有进程详情。然后配合grep过滤——比如找Java进程ps aux | grep java就能看到java进程的PID、CPU占用、内存占用、启动命令等信息。看到PID以后后续的kill、top -p就有目标了。top是动态实时的系统资源面板。一跑起来就能看到CPU总使用率、内存使用情况、负载平均值以及占用资源最多的进程列表而且每隔几秒自动刷新。排查CPU飙高问题top是第一个要敲的命令找到占用CPU最高的进程PID。再配合top -p PID单独看这个进程趋势变化一目了然。free看内存使用-h参数以人类可读的格式输出G、M为单位。df看磁盘空间-h同样以整数加单位的方式显示容量-i还能查看inode的使用情况——这是一个新版经常忽略的点磁盘显示还有空间但是写不进去文件多半是inode耗尽了。kill按PID结束进程。温和一点的用kill PID发送TERM信号让进程自己收尾某些进程不响应的话才用kill -9 PID强制终止。这里的-9是最强信号直接干掉进程不留给它保存状态的机会生产环境能不用就不用容易损坏数据。日常经验是先试普通kill等五六秒还在跑再考虑kill -9。2.5 网络相关指令连接状态和端口排查服务器上的网络排查也是基础指令的重点板块。网上有问题时先打开一个终端按顺序走完这几条问题范围基本能缩小一半。ping检查连通性。ping -c 4 baidu.com发送4个包然后自动停止。这里加-c限制次数是因为ping默认无限发CtrlC才能停。延迟在几十毫秒以内算健康丢包率超过1%就要注意网络质量了。netstat查看网络连接和端口监听状态。这是老牌命令虽然在一些新系统上被ss逐步替代但存量机器上还有大量应用。netstat -tlnp查看当前所有监听端口-t表示TCP-l表示监听-n是显示数字端口-p是显示对应进程。经常用到的场景是服务起不来提示端口被占用一条netstat -tlnp | grep 8080就能找到占用端口的进程PID然后按需处理。新系统里我更推荐ss执行速度比netstat快。用法几乎一样ss -tlnp查看监听端口。curl做HTTP请求测试。这命令不仅是测试接口的利器也是排查Web服务问题的主要手段。curl -I只查看响应头curl -v输出详细请求过程两者都能看到响应状态码、重定向过程、TLS握手信息。比如网站打开慢curl -o /dev/null -w %{time_total} https://example.com可以直接输出总请求耗时。这个命令的实际功能很多基础阶段先掌握它发请求和查看响应的能力后边越用越会发现它是排查连接问题的主力工具。3. 实操过程一个场景串联核心命令3.1 场景设计新服务器初始化检查现在把前面这些命令放到一个具体场景里串联一遍。假设接到一台新分配的Linux服务器目标是确认系统整体状态、规划目录、设置权限、查看日志为后续部署应用做准备。第一步先登录系统用pwd确认当前在一个可控的目录登录后的家目录接着uname -a查看内核版本cat /etc/os-release查看发行版信息。这些信息决定后面安装软件包时用哪个包管理器不同系统之间这是有差异的提前确认能避免很多麻烦。再查看系统资源总览free -h df -h nproc这三条分别看内存、磁盘、CPU核数。部署应用之前确认资源够不够这是决定方案选型的起点。3.2 目录规划与文件操作每台机器都应该有清晰的目录规划这是后期运维不混乱的前提。我个人习惯统一把应用安装到/opt下把日志输出到/var/log下把备份数据放到/data/backup下。创建目录结构mkdir -p /data/apps /data/logs /data/backup-p参数的作用是如果/data不存在会连同父目录一起创建。不用这个参数就会发现父目录不存在直接报错得先一层一层创建麻烦得多。如果想把目录结构调整一下mv直接移动就可以了比如mv /data/apps/myapp /data/apps/myapp_v2改个目录名。3.3 用户与权限配置如果这台机器要和其他人共用权限配置一步都不能省。创建一个deploy用户授予部署权限useradd -m deploy passwd deploy usermod -aG wheel deploy然后把应用目录的权限交给deploy用户管理chown -R deploy:deploy /data/apps /data/logs chmod -R 755 /data/apps目录归deploy所有意味着deploy可以在这个目录里自由创建文件755的权限让其他用户能读能进但没法改这样不同角色的权限边界就清晰了。3.4 日志查看与问题定位假设部署完应用后服务没有正常启动。此刻的排查路径是固定的看日志、看进程、看端口。先看日志文件是否存在ls -l /data/logs/myapp/ tail -f /data/logs/myapp/error.logtail -f是跟踪模式日志文件有新内容就自动滚动显示调试阶段非常方便。要是日志里看到了红字报错先复制报错关键词再结合grep把相关日志全部捞出来grep -n OutOfMemoryError /data/logs/myapp/error.log-n带上行号方便定位错误附近的其他日志。看完日志再看进程是否还活着ps aux | grep myapp如果进程没了说明Java或其他程序crash得翻崩溃日志如果进程还在但服务访问不了接下来查端口ss -tlnp | grep 8080看到端口监听正常就说明应用本身起来了问题可能在防火墙或者前端转发层看不到监听就得回查启动日志和配置。这一套组合下来大部分启动问题都能定位到原因。整个排查过程的思路可以概括为日志给线索进程确认存活端口确认对外状态防火墙和配置找问题。这个排查顺序比随手乱试命令要高效得多。4. 常见问题与排查技巧实录4.1 命令找不到command not found经常有新手发蒙明明照着网上的教程敲命令结果提示command not found。出现这个问题的原因分几类。第一类是命令没装。不同的Linux发行版最小化安装后很多常用命令不在默认安装列表里。比如ifconfig在部分新版本CentOS上默认没有telnet、lrzsz这类工具也经常要自己装。解决方案是用对应系统的包管理器安装Debian系用apt installRedHat系用yum install或dnf install。第二类是命令存在但不在PATH环境变量里。比如在/usr/local/bin下的命令如果PATH没包含这个目录shell就找不到。简单方案是用全路径直接执行/usr/local/bin/mytool。要长期生效就把导出PATH的语句写进/etc/profile或~/.bashrc。提供一个快速确认思路which 命令名找可执行文件的路径type 命令名查看shell如何解析命令。没输出就是没找到马上能判断是哪种情况。4.2 权限不足Permission denied权限报错是最常见的入门拦路虎。看到Permission denied先别崩溃按以下步骤排查绝大多数情况能在三分钟内解决。第一步ls -l查看文件属主和权限确定当前用户对于这个文件有没有相应权限。第二步whoami确认自己的用户名对比一下属主是谁。第三步判断是该切换用户还是修改权限。如果当前用户是普通用户要用root权限执行命令用sudo或者su -切换到root。如果是因为一些文件权限设置过窄只有root能读后续需要让其他用户也能访问就chmod调整权限。一个常见的操作是把密钥文件的权限改成600这样别的用户无从读取自己正常使用。这里多说一句遇到权限问题顺手chmod 777是特别不好的一种习惯。777会把文件变成任何人可读可写可执行生产环境的配置文件和脚本这么一搞安全隐患很大。正确做法是只开放必要的最小权限比如配置文件644、脚本755、密钥600。4.3 路径写错No such file or directory还有一类高频错误是No such file or directory。这个报错大多是目录或文件路径写错了但也有一个容易忽略的情况——动态链接库缺失。比如一个自己编译的程序运行时提示找不到libxxx.so可能是因为编译时用的库路径在当前环境里不存在。对于纯路径写错的场景用以下方法修正# 检查路径是否存在 ls -l /expected/path/to/file # 用tab补全路径降低手误概率 cat /etc/nginx/nginx.con对tab补全是个救命功能。命令行里按下tab键会自动补全文件路径比手打强多了我到现在都坚持用。凡是涉及路径的地方能tab就tab不会补就ls看一下目录里到底有什么。4.4 忘记命令参数man和--help是你的好帮手每个命令的具体参数总会忘记的。我写了这么多年Linux照样经常忘了tar的某些高级用法、find的某些表达式。忘记参数是常态关键是知道怎么查。两个手段man 命令名看完整帮助文档命令名 --help看简略参数列表。日常情况下--help就够了输出简洁、按需查看比如tar --help直接列出所有参数和示例。给个实用技巧man手册很长打开后按/键输入关键词搜索会快很多。比如忘了tar的排除参数怎么写man tar然后输入/exclude回车直接跳到匹配位置。说白了学会查文档比硬背参数列表有效得多。4.5 新人最容易踩的五个操作坑总结这几年看新人踩坑的经验几个高频错误提前避开能省下大量时间。第一个坑是rm -rf用得不谨慎。特别是在root用户下rm -rf /直接删系统根目录的例子不是段子是真有人干过。建议root环境下慎用-f切换用户前确认自己所处的目录和删除目标。第二个坑是修改配置文件前忘了备份。改/etc/nginx/nginx.conf、/etc/ssh/sshd_config这类系统关键配置动手前先复制一份备份cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak出问题能秒回滚。别嫌麻烦真出了事故备份能救命。第三个坑是awk、sed里用单引号和双引号分不清。引号用错会产生各种意想不到的展开问题。经验是命令里不想让shell解释的特殊字符$、*、?等用单引号包住防止shell展开在awk和sed表达式里基本用单引号最保险。第四个坑是看日志用vim而不是tail。日志文件特别大的时候vim会把整个文件读进内存机器内存小直接卡死。查看大文件正确姿势是tail -n 100取最后一百行或者less分页查看支持上下翻页和搜索性能表现也比vim好。第五个坑是输出重定向覆盖了文件内容。单箭头会覆盖双箭头才追加。写日志脚本时把误写成导致日志被清空的事情时有发生。基本原则是想保留原有内容就用确定要覆盖才用。尤其是脚本里加定时任务时这个细节特容易在半夜执行的时候出事故。4.6 几个实用的组合命令学基础指令的最高境界就是组合使用。三个管道加两个过滤器往往能解决让人头疼的日志统计需求。统计访问量最高的十个IP来源awk {print $1} access.log | sort | uniq -c | sort -rn | head -10查找当前系统内存占用最高的前五个进程ps aux | sort -rn -k4 | head -5-k4表示按第四列内存占用排序。查找一天内修改过的文件find /data -type f -mtime -1查找大文件大于500Mfind / -type f -size 500M这些命令单看每条之前都讲过但组合在一起就是一套完整的小工具。这也是Linux哲学最有魅力的地方——简单命令通过管道组合能迸发出很强的生产力。5. 不同发行版的指令差异与适配5.1 Debian系与RedHat系的核心差异写Linux命令时很多人忽略一个基本前提不同的发行版命令的行为有细微差别尤其是包管理器。Debian系Ubuntu、Debian、Linux Mint用apt作为软件包管理工具RedHat系CentOS、Rocky Linux、Fedora、RHEL用yum或dnf。同样是装个nginxDebian系敲apt install nginxRedHat系敲yum install nginx命令都不一样。不只是包管理系统服务管理也有差异。老一点的RedHat系用service命令现在绝大多数新系统都用systemctl了。systemctl start nginx、systemctl enable nginx、systemctl status nginx在主流新系统上基本通用学习的时候以systemctl为主遇到老系统再临时用兼容命令就能应对。防火墙命令差异更大。Debian系常见的ufw相对轻量RedHat系有firewalld底层实际操作都跳不过iptables。我的建议是在生产环境里尽量学习iptables语法本身尽管直接操作它稍显繁琐但通用性最高换了发行版也能上手网上各类博客教程也基本按这套写法为主。5.2 嵌入式环境下的指令精简思路嵌入式Linux是个比较特殊的场景很多小伙伴在arm板子上给的资源很紧张只有几百MB的存储空间。这种情况下基础指令也得做减法能用的命令本来就少功能也被裁剪过。嵌入式环境需要注意的几点top的选项很可能只剩最基本的top -dfree的输出格式也变简化甚至某些板子上ps默认不带aux参数只剩下ps -ef。碰到这种情况先敲busybox --list看当前固件内置了哪些命令别一上来就按通用系统的思路去敲。嵌入式环境下用文本处理命令占用资源要心里有数。日志太大的时候grep也扛不住建议先在设备端把日志按天切割或者定期归档到外部存储避免日志文件撑爆闪存。这几个经验在搞嵌入式开发或者板子调试时非常实用。5.3 中文环境和编码问题处理服务器上中文显示问题也得留心。默认的LANG环境变量很可能不是中文终端输出出现??或者乱码。临时解决方法是export LANGzh_CN.UTF-8设置成ZHS中文环境。但有些系统没安装中文字符集需要先确认locale -a里有没有zh_CN。日常使用里我建议系统环境变量保持英文LANGen_US.UTF-8即可。原因是编码问题容易引发脚本执行异常尤其是涉及日志分析或者文件内容匹配时。数据内容里的中文编码另说日志文件建议统一为UTF-8老项目如果出现GBK编码的文件用iconv -f GBK -t UTF-8 file做转换就好。6. 进一步的学习方向与指令进阶思路基础指令掌握之后怎么继续往前走我根据自己多年的经验梳理了几个方向。第一脚本化。把重复性的工作写成shell脚本是提高效率的主要手段。学for循环、if判断、函数定义再用crontab定时执行就能完成大量自动化的日常运维任务。写脚本的时候前面学的awk、sed、grep就有用武之地了它们通常是脚本里处理文本的主力。第二文本处理的深度进阶。awk的数组、多条件匹配、内置函数sed的多行模式grep的正则分组这些进阶内容能成倍提升文本处理能力尤其是面对几GB的大日志文件时写一个高效的awk命令比用编辑器打开找要快得多。第三组合服务和网络知识。学会用systemd管理服务、用ss分析连接状态、用curl调试接口后可以尝试自己部署一个完整的Web服务比如Nginx加一个后端应用加上日志配置、访问控制、定期备份脚本。这个综合实践阶段会自然暴露很多短板补全短板的过程就是进阶之路。第四理解系统底层。有了命令基础后可以看Linux的启动流程、文件系统结构FHS标准、进程调度原理等知识。这不是说让每个人都去啃源码了解系统是怎么运作的对排查疑难问题会很有帮助。我个人从带新人的经验看从敲命令到理解系统运作大概需要三到六个月的持续实践。保持每天敲几次命令、每周写一个脚本的节奏进步很快的。7. 实操心得与日常习惯养成最后这部分说说我这些年用Linux养成的工作习惯不涉及高深技术但对日常效率和安全性的提升立竿见影。先在~/.bashrc里设几个别名可以省掉很多重复敲击alias llls -lht alias lals -A alias grepgrep --colorauto alias rmrm -ils -lht列出详细信息的按时间倒序一眼看到最近修改的文件grep带颜色高亮匹配内容读日志时更容易找出关键词。这几个别名适应后效率提升非常明显。然后把自己的环境补全功能打开。很多发行版默认自带bash-completion如果没装执行yum install bash-completion或apt install bash-completion这样敲命令和路径时可以按tab补全既减少错误也加快输入速度。多窗口工作也值得养成习惯。用tmux或screen保持会话不中断SSH断线重连后还能恢复之前的工作界面。尤其在远程操作生产环境的时候这个习惯能避免不少意外中断造成的挫败感。随手记录遇到的问题也很重要。每解决一个报错把处理思路和最终方案笔记下来不用分类太细按日期记录即可。三个月后回头看你会惊讶于自己积累的速度。我曾经帮同事找一个问题翻旧笔记两分钟定位到是内核参数没生效这种积累的回报只有经历过才懂。Linux的学习本质上是命令—组合—脚本—理解系统的螺旋上升过程。基础指令是最重要的起点也是后续所有进阶能力的根基。希望大家在学习过程中多敲多试遇到问题多用man和搜索引擎持续积累自己的命令集和问题库把这些内容真正变成肌肉记忆。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻