ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

命令行的艺术(The Art of Command Line):一份系统化的 Linux 命令行技能全指南

命令行的艺术(The Art of Command Line):一份系统化的 Linux 命令行技能全指南 文档教程【免费下载链接】the-art-of-command-lineMaster the command line, in one page项目地址https://gitcode.com/GitHub_Trending/th/the-art-of-command-line点击查看免费下载《The Art of Command Line》命令行的艺术是一份以单页 Markdown 形式组织的开源技术指南本文档仓库中保存着该指南的英文原版 README.md 以及 乌克兰语翻译版 README-uk.md 等 18 种语言版本。命令行熟练度是一项常被忽视甚至被视为神秘学问的技能但它会在显性与隐性的层面同时提升工程师的灵活性与生产力。阅读本文后你将系统掌握 Bash 交互式使用的基础功、日常高频技巧、文本与数据处理流水线、系统调试手段、单行命令组合以及一批冷门却关键的工具从而构建起完整的命令行知识体系。这份指南在讲什么定位、目标与阅读方式在深入具体命令之前先理解这份指南的设计哲学能帮助你更高效地使用它。适用范围与设计目标从文档Опис描述一节可以明确这份指南的定位面向两类读者既服务初学者也服务经验丰富的用户。它有三个核心目标——广度覆盖所有重要方面、实用性针对最常见场景给出具体示例、简洁性不纠缠可在别处查到的非必要细节。以 Linux 为主正文针对 Linux 用户编写例外是文末的仅适用于 OS X与仅适用于 Windows两节其余内容大多适用于其他 UNIX 或 macOS甚至 Cygwin环境。聚焦交互式 Bash指南聚焦于交互式 Bash 的使用但大量技巧同样适用于其他 shell 以及一般的 Bash 脚本编写。命令选取标准既收录标准 Unix 命令也收录那些需要额外安装包的命令——只要其价值足以被收录。安装新程序时按你的发行版选择apt-get、yum、dnf、pacman、pip或brewmacOS。组织方式与查阅建议全部信息保存在单个文件中便于检索、翻译与导航。指南刻意以引用方式隐含包含内容即每个条目只点出思想或命令名细节留给你自行查阅。文档顶部插图中的命令组合curl ... | egrep -o \w | tr -d | cowsay -W50 本身就是一条示范抓取 README 原文、用正则提取所有反引号包裹的命令名、再交给 cowsay 展示——这正是文中所讲管道组合思想的趣味演示。指南是众多作者与译者协作的成果英文原版最初源自 Quora 上的若干问答随后迁移到 GitHub由社区持续改进乌克兰语版由 Dmytro Kovalov 与 Stepan Babala 等人翻译维护各语言版本均通过 CONTRIBUTING.md 规定的流程与英文原版保持同步。基础篇命令行的地基这一节是整份指南的第一章其要点是先建立对 Bash 本身、文档查阅、I/O 重定向、进程与文件系统的完整认知再谈技巧。先学会查阅文档通读man bash直接在终端输入man bash并至少通览一遍。其他 shell如 zsh、fish固然不错但 Bash 功能强大且永远可用——只学 zsh、fish 会在使用现有服务器等场景中处处受限。掌握 man 手册的章节体系man man会列出手册章节号例如 1 是普通命令、5 是文件/约定、8 是系统管理命令。用apropos按关键词搜索手册页。区分外部命令与 Bash 内建命令有些命令不是可执行文件而是 Bash 内建命令需要用help与help -d获取帮助。用type 命令可以判断某命令到底是可执行文件、shell 内建命令还是别名alias。I/O、通配符与引号重定向与管道用、重定向输入输出用|连接管道。务必记住会覆盖目标文件才是追加。同时要理解 stdout标准输出与 stderr标准错误的区别。文件名展开glob掌握*以及?与[...]的通配语义。引号区分双引号与单引号的差异——双引号内仍会做变量展开单引号内则全部字面化。这一差异直接影响后续的变量处理。进程、SSH 与文件系统作业管理熟悉、ctrl-z挂起、ctrl-c中断、jobs、fg、bg、kill等进程管理手段。远程登录掌握ssh及免密认证的基础——ssh-agent、ssh-add等。文件管理会用ls和ls -l尤其要能解读ls -l每一列的含义less、head、tail、tail -f更好的替代是less Fln与ln -s理解硬链接与软链接的差异与各自优势chown、chmoddu快速查看磁盘占用du -hk *。文件系统管理方面df、mount、fdisk、mkfs、lsblk。还要知道 inode 是什么用ls -i或df -i查看。网络基础ip、ifconfig、dig、traceroute或route。版本控制学习并使用一种版本控制系统例如git。正则表达式扎实掌握正则表达式并熟悉grep/egrep的各类选项至少要知道-i忽略大小写、-o仅输出匹配部分、-A匹配后 n 行、-B匹配前 n 行。包管理学会用apt-get、yum、dnf、pacman取决于发行版搜索与安装软件包同时确保装有pip用于安装 Python 编写的命令行工具文中的不少工具通过pip安装最方便。日常使用篇让终端成为日常主战场这一节集中了交互式 Bash 的高频操作从行编辑快捷键、历史记录到进程与网络检查是提升日常效率最快的地方。行编辑与历史记录Tab 补全与历史搜索用Tab自动补全参数用ctrl-r在命令历史中搜索反复按ctrl-r可循环切换更多匹配。常用行编辑快捷键ctrl-w删除最后一个单词ctrl-u删除光标到行首的全部内容alt-b/alt-f按单词移动ctrl-k删除到行尾ctrl-l清屏。查阅man readline可看到 Bash 的全部默认按键绑定数量非常多——例如alt-.循环切换上一条命令的最后一个参数alt-*展开通配符。vi 风格按键如果你偏爱 vi 风格执行set -o vi用set -o emacs可以切回。用编辑器编辑长命令设置好编辑器如export EDITORvim后按ctrl-xctrl-e会在编辑器中打开当前命令行进行多行编辑vi 风格下则是escape-v。历史展开缩写history查看历史!$表示上一条命令的最后一个参数!!表示上一条命令。不过这些缩写往往用ctrl-r和alt-.就能替代。目录跳转cd回主目录~表示主目录前缀如~/.bashrc在 sh 脚本中用$HOME引用主目录cd -跳回上一个工作目录。半途改主意命令打到一半改变想法时按alt-#会在行首加上#把它作为注释提交之后还能从历史里找回。xargs、进程与端口检查xargs或parallel非常强大注意可以用-L控制每行执行的条目数、用-P控制并行度不确定行为是否正确时先用xargs echo演练。-I{}也很实用find . -name *.py | xargs grep some_function cat hosts | xargs -I{} ssh root{} hostname进程树与进程查找pstree -p以树状展示进程ps aux | grep postgresql之类可查进程 PID按名称查找或发送信号则用pgrep与pkill-f选项很实用。信号了解可发送给进程的各种信号例如挂起进程用kill -STOP [pid]完整列表见man 7 signal。后台常驻想让后台进程持续运行用nohup或disown。端口监听netstat -lntp或ss -plat查看哪些进程在监听端口TCP加-u看 UDP。lsof与fuser则用于查看已打开的套接字与文件。系统运行状态uptime或w显示系统已运行多长时间。配置持久化与变量安全别名alias llls -latr为常用命令创建快捷别名。把常用的别名、shell 设置和函数保存到~/.bashrc使其在所有 shell 会话中可用。登录配置把需要登录时执行的环境变量设置与命令放进~/.bash_profile注意图形界面登录与cron任务启动的 shell 可能需要不同的配置。建议用 Git 在多台机器间同步.bashrc与.bash_profile。变量与文件名中的空格这是最容易踩坑的地方。Bash 变量务必加双引号$FOO优先用-0或-print0以空字符null分隔文件名例如locate -0 pattern | xargs -0 ls -al、find / -print0 -type d | xargs -0 ls -alfor 循环遍历含空格文件名时把 IFS 只设为换行符IFS$\n。脚本编写严格模式与 Bash 特性调试与严格模式脚本调试用set -x或set -v后者记录包括未展开变量与注释在内的原始输入能用严格模式就尽量用——set -e出错即停非零退出码、set -u检测未设置变量的使用、set -o pipefail让管道中的错误也能中止执行。复杂脚本再用trap处理 EXIT 或 ERR。推荐的开头模板set -euo pipefail trap echo error: Script failed: see failed command above ERR子 shell 分组圆括号子 shell 是分组命令的便捷方式典型用法是临时切换工作目录而不影响当前目录# 在当前目录做某事 (cd /some/other/dir other-command) # 回到原目录继续变量展开的多种形态检查变量是否存在${name:?error message}——例如脚本只需要一个参数时可写input_file${1:?usage: $0 input_file}算术展开i$(( (i 1) % 5 ))序列{1..10}字符串裁剪${var%suffix}与${var#prefix}——若varfoo.pdf则echo ${var%.pdf}.txt输出foo.txt。花括号展开{...}能减少重复输入并自动组合。mv foo.{txt,pdf} some-dir同时移动两个文件cp somefile{,.bak}展开为cp somefile somefile.bakmkdir -p test-{a,b,c}/subtest-{1,2,3}展开所有组合并创建目录树。进程替换(some command)把某命令的输出当作文件处理。例如对比本地与远程的/etc/hostsdiff /etc/hosts (ssh somehost cat /etc/hosts)heredoc掌握cat EOF ...的 heredoc 语法用于一次性重定向多行输入。输出与错误同时重定向some-command logfile 21经常还要追加/dev/null确保命令不会因持有指向终端的 stdin 句柄而阻塞。编码表、终端复用与 SSH 优化编码表man ascii提供带十六进制与十进制值的 ASCII 表man unicode、man utf-8、man latin1提供常见编码信息。终端复用screen或tmux在一个终端里开多个屏幕在 SSH 会话中尤其有用可随时分离/重新附加会话byobu为 screen/tmux 提供更多信息与更易用的管理更轻量的替代是dtach。SSH 端口隧道掌握-L与-D偶尔-R的隧道用法例如从远程服务器访问网站。SSH 配置优化在~/.ssh/config中加入如下配置可避免某些网络环境下的连接断开、启用压缩低带宽下scp尤其受益、并复用同一服务器的连接通道TCPKeepAliveyes ServerAliveInterval15 ServerAliveCountMax6 Compressionyes ControlMaster auto ControlPath /tmp/%r%h:%p ControlPersist yes谨慎使用的安全相关项StrictHostKeyCheckingno、ForwardAgentyes这类选项对安全影响很大应仅在特定子网、特定主机或可信网络中小心启用。mosh考虑用基于 UDP 的mosh作为 ssh 的替代方案可避免连接中断需在服务器端安装。八进制权限ls无法直接显示八进制权限可用stat -c %A %a %n /etc/timezone获取对系统配置有用的权限信息。交互式选择对另一条命令的输出做交互式选择用percol或fzf对git等命令输出的文件列表做交互式操作用fppPathPicker。临时起一个 HTTP 服务器python -m SimpleHTTPServer 7777Python 2或python -m http.server 7777Python 3即可在当前目录含子目录向局域网提供文件服务。以其他身份执行sudo以 root 执行sudo -u指定其他用户su或sudo bash切换为该用户的 shellsu -模拟该用户的全新登录环境。文件与信息处理篇文本即数据在 Unix 的世界里一切都是文件在命令行专家的手里一切文本都是可加工的数据。这一节系统覆盖了查找、格式转换、文本加工与编码处理。查找与搜索按名查找当前目录下find . -iname *something*-iname忽略大小写全盘查找用locate something注意updatedb可能尚未索引刚创建的文件。按内容搜索除grep -r外更快的源码/数据搜索工具是agThe Silver Searcher。HTML 转文本lynx -dump -stdin。通用文档转换HTML、Markdown 及各类文档格式转换可尝试pandoc。XML / JSON / YAML / CSVXML 用老牌工具xmlstarletJSON 用jqYAML 用shyamlExcel/CSV 用csvkit提供in2csv、csvcut、csvjoin、csvgrep等子命令。云存储Amazon S3 用s3cmd便捷或s4cmd更快其他 AWS 相关任务用标准awsCLI 及增强版saws。文本加工的核心工具箱sort 与 uniq掌握uniq的-u只输出不重复行与-d只输出重复行选项还可试试comm。cut / paste / join处理文本文件的列操作三件套很多人用cut却忘了join。wc-l数换行、-m数字符、-w数单词、-c数字节。tee从 stdin 复制到文件并同时输出到 stdout如ls -al | tee file.txt。locale 的隐性影响语言/区域设置会悄悄影响很多命令——排序顺序collation乃至性能。多数发行版会把LANG自动设为适合你地区的值导致排序结果不可预测且 i18n 例程可能让排序慢很多倍。在集合运算等场景下可安全忽略 i18n改用传统逐字节排序export LC_ALLC。为单条命令临时设置环境用前缀方式如TZPacific/Fiji date。awk 与 sed掌握基础用法用于简单数据加工。例如求文本文件第三列所有数字之和awk { x $3 } END { print x }——这比用 Python 实现快约 3 倍、代码少约 3 倍。批量替换、重命名与同步原地批量替换在单文件或多文件中替换所有子串出现perl -pi.bak -e s/old-string/new-string/g my-files-*.txt批量重命名简单重命名用rename复杂重命名含目录与文件内容可借助repren# 恢复备份文件 foo.bak - foo rename s/\.bak$// *.bak # 完整重命名文件名、目录与内容 foo - bar repren --full --preserve-case --from foo --to bar .rsync 的高效删除技巧rsync 不仅用于跨机器同步本地同样好用它还是删除海量文件最快的办法之一mkdir empty rsync -r --delete empty/ some-dir rmdir some-dir排序细节与二进制/编码工具sort 选项详解数字排序用-n人类可读数字如du -h输出用-h掌握键位用法-t分隔符与-k键。特别注意按第一字段排序要写-k1,1只写-k1会按整行排序。稳定排序sort -s也有用——先按字段 2 排序、再按字段 1 次级排序sort -k1,1 | sort -s -k2,2。输入制表符命令行中要输入制表符字面量如 sort 的-t参数时按ctrl-v再按[Tab]或写$\t后者更优便于复制粘贴。diff 家族diff与patch是修补源码的标准工具diffstat输出 diff 统计、sdiff做并排对比diff -r递归处理整个目录diff -r tree1 tree2 | diffstat输出变更汇总vimdiff边对比边编辑。二进制文件hd、hexdump、xxd做十六进制转储bvi、hexedit、biew做二进制编辑strings配合grep等从二进制中提取文本片段二进制差异增量压缩用xdelta3。编码转换iconv转码uconv支持更复杂的 Unicode 处理。例如下面这条命令把文件转为小写并去除所有重音符号uconv -f utf-8 -t utf-8 -x ::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] ; ::Any-NFC; input.txt output.txt文件切分split按大小切分csplit按模式/正则切分。日期时间日期加减与解析可用dateadd、datediff、strptime来自dateutils工具集。压缩文件直读zless、zmore、zcat、zgrep用于直接操作 gzip 压缩文件无需先解压。系统调试篇当程序不听话时这一节给出了一套由浅入深的诊断工具箱先看状态量再看实时流量最后落到系统调用与内核层面。系统状态速览Web 调试curl与curl -I只取响应头或wget或更现代的httpie。磁盘 / CPU / 网络iostat、netstat、top更好用htop与dstat。iostat -mxz 15可获取基础 CPU 与各分区磁盘详细统计。内存free与vmstat。特别注意free输出中的 cached 值是被内核用作文件缓存的内存实际应计入可用free范畴。综合面板glances在单个终端窗口同时展示多种子系统统计监控多台系统时尤其方便。网络质量mtr结合 traceroute 与 ping 统计用于定位网络问题iftop或nethogs查看哪个套接字/进程在占用带宽。磁盘占用ncdu交互式定位磁盘空间去向比du -sh *省时得多。Web 性能Apache 自带的ab适合快速粗略压测更严肃的负载测试用siege。深度抓包wireshark、tshark命令行版与ngrep网络层 grep。系统调用与内核观测strace / ltrace程序崩溃、挂起而原因不明时或用-c做性能剖析、-p附加到运行中的进程时这两个工具至关重要。ldd查看程序依赖的系统共享库。gdb附加到运行进程并获取堆栈回溯。/proc 伪文件系统调试运行中程序时出奇有用。例如/proc/cpuinfo、/proc/xxx/cwd、/proc/xxx/exe、/proc/xxx/fd/、/proc/xxx/smapsxxx为进程 id。历史性能sar展示 CPU、内存、网络等的历史统计排查过去某个时刻发生了什么时很有价值。深度分析stapSystemTap、perf与sysdig用于更复杂的系统与性能分析。确认系统信息uname/uname -a查看内核信息lsb_release -a查看发行版信息。dmesg出现诡异问题硬件、驱动等时先看dmesg的内核日志。单行命令篇用管道把命令缝成一把瑞士军刀单行命令one-liners是把多个命令通过管道组合成一条命令的艺术。这一节给出的都是可直接复制使用的实战范例。集合运算并集、交集、差集利用sort/uniq可以对文本文件做集合的并、交、差运算。这非常快且适用于任意大小的文件包括数 GB 级别——排序不受内存限制但如果/tmp所在分区过小可能需要加-T指定临时目录。下面例子刻意不用sort -u以便展示uniq语义cat a b | sort | uniq c # c 是 a 与 b 的并集 cat a b | sort | uniq -d c # c 是 a 与 b 的交集 cat a b b | sort | uniq -u c # c 是集合差 a - b其他经典组合快速查看目录内全部文件内容grep . *逐行输出并附上文件名适合/sys、/proc、/etc这类满是配置项的目录。求第三列之和awk { x $3 } END { print x } myfile递归查看文件大小/日期find . -type f -ls相当于更易读的递归ls -lR。统计日志中某字段的出现次数假设访问日志中每行出现acct_id参数统计各 id 的出现次数并降序排列cat access.log | egrep -o acct_id[0-9] | cut -d -f2 | sort | uniq -c | sort -rnxargs 与 parallel再次强调xargs或parallel的威力-L控制每行条数、-P控制并行度不确定时先用xargs echofind . -name *.py | xargs grep some_function cat hosts | xargs -I{} ssh root{} hostnametaocl 函数从本文档随机抽取一条技巧。把下面函数写入 shell 后每次调用都会抓取英文原版 README、经 pandoc 转 HTML、用 xmlstarlet 提取列表项并随机返回一条function taocl() { curl -s https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md | pandoc -f markdown -t html | xmlstarlet fo --html --dropdtd | xmlstarlet sel -t -v (html/body/ul/li[count(p)0])[$RANDOM mod last()1] | xmlstarlet unesc | fmt -80 }冷门但有用篇小众命令清单这一节罗列了一批看似冷门但关键时刻救命的命令按功能可大致归类文本与数据处理expr算术/布尔/正则表达式求值、m4宏处理器、fmt段落格式化、pr分页/分栏排版、fold限制行宽、column文本对齐成表格、expand/unexpand制表符与空格互转、nl行号、seq数字序列、cut/paste/join、tr字符级变换、sponge先读完全部输入再写出——grep -v something some-file | sponge some-file可原地过滤、look查以指定字符串开头的行、comm逐行比较两个已排序文件、tac倒序输出文件、shuf随机洗牌/取样、pv管道进度监视。计算与转换bc计算器、factor因数分解、units单位换算定义见/usr/share/units/definitions.units、iconv/uconv编码转换、split/csplit文件切分。文件与存储dd文件/设备间搬运数据、file识别文件类型、tree递归树状列目录、stat文件元信息、lockfile创建只能被rm -f删除的标记文件、logrotate日志轮转压缩、7z高压缩比归档、rsync本地或经 SSH 的文件同步。系统观测env/printenv环境变量、watch周期重复执行命令并高亮差异、time测量命令执行时间、timeout超时终止命令、lsof文件描述符与套接字、dstat、glances、iostat磁盘 I/O、mpstatCPU 统计、vmstat内存统计、htop、last登录历史、w当前在线用户、id用户/组信息、sar、iftop/nethogs、ss套接字统计、dmesg、sysctl运行时查看/调整内核参数、hdparmSATA/ATA 磁盘设置、lsblk块设备树、lshw/lscpu/lspci/lsusb/dmidecode硬件信息CPU、BIOS、RAID、显卡等、lsmod/modinfo内核模块列表与详情。网络与安全gpg加密与签名、nc网络调试与数据传输、socat套接字转发/端口重定向类似 netcat、slurm网络流量可视化、mtr网络调试用 traceroute、cssh图形界面下并行执行命令、wireshark/tshark、ngrep、host/digDNS 查询、abApache 自带压测工具、strace/wrk系统调用跟踪/压测。杂项yes无限输出 yes、cal日历、toeterminfo 终端表、apg密码生成、nm目标文件符号表、ldd动态库依赖、fortune、ddate、sl——正如原文档所调侃这取决于你是否认为蒸汽机车和 Zippy 引言有用。;)平台专属篇macOS 与 Windows 下的命令行事原文档专门为 macOS 与 Windows 用户各设一节内容如下。仅适用于 macOS包管理brewHomebrew与portMacPorts可安装本文提到的大部分程序。剪贴板pbcopy把命令输出复制到图形剪贴板pbpaste把剪贴板内容粘贴进终端。打开文件/应用open或open -a /Applications/Whatever.app。Spotlight 命令行化mdfind在命令行搜索文件mdls查看元数据例如照片的 EXIF 信息。BSD 差异macOS 基于 BSD Unixps、ls、tail、awk、sed等命令与 Linux 的 GNU 版本存在细微差异可留意手册页标题是否为 BSD General Commands Manual必要时可安装 GNU 版本如gawk、gsed。编写跨平台 Bash 脚本时尽量避开这些有差异的命令改用 Python 或perl或仔细验证。仅适用于 WindowsUnix shell 环境安装 Cygwin 即可在 Windows 上使用 Unix shell并用 Cygwin 包管理器安装各类 Unix 程序。终端与剪贴板用mintty作为终端用/dev/clipboard访问 Windows 剪贴板。文件与路径cygstart用默认程序打开文件regtool操作 Windows 注册表C:\盘在 Cygwin 中对应/cygdrive/c/对应C:\cygwin用cygpath在 Windows 与 Cygwin 路径间转换。系统管理掌握wmic即可在命令行执行并自动化大部分 Windows 管理任务。更多资源与社区协作指南的英文原版 README.md 是内容的事实源头所有翻译版本包括 中文版 README-zh.md、乌克兰语版 README-uk.md 等 18 种语言均遵循 CONTRIBUTING.md 规定的流程与其保持同步——内容变更先改英文版再逐语言翻译每个翻译版本由 AUTHORS.md 中登记的维护者负责审校该文件由 admin/authors-info.yml 生成。延伸阅读资源包括awesome-shellshell 工具精选集、awesome-osx-command-linemacOS 命令行深度指南、关于 Bash 严格模式Strict Mode的文章、shellcheckbash/sh/zsh 的静态分析工具相当于 shell 的 lint、以及讨论 shell 中文件名处理细节的 Filenames and Pathnames in Shell 一文。结语与许可如原文档免责声明所言除了少量例外这里的代码都是为了让别人能读懂而写的。某件事能用 Bash 写绝不意味着它就该用 Bash 写。;) 这份指南的价值不在于背下命令而在于建立知道存在什么、何时该用、如何组合的完整心智模型。本文档及其乌克兰语翻译遵循 Creative Commons Attribution-ShareAlike 4.0 International License 许可协议分发。赞分享文档教程【免费下载链接】the-art-of-command-lineMaster the command line, in one page项目地址https://gitcode.com/GitHub_Trending/th/the-art-of-command-line点击查看免费下载相关推荐命令行的艺术基于 the-art-of-command-line 的 Linux 命令行实战全指南命令行的艺术基于 the art of command line 的 Linux 命令行实战全指南 熟练使用命令行常常被忽视甚至被认为难以掌握但它会直接提文档教程PyMC 贝叶斯分位数回归用不对称拉普拉斯分布刻画数据分布全貌PyMC 贝叶斯分位数回归用不对称拉普拉斯分布刻画数据分布全貌 均值回归只回答平均会是多少但风控、库存这类决策真正关心的是分布的尾巴。本文用 PyMC人工智能机器学习科学计算深度解析 Lightdash Playground Bundle基于 DuckDB 与 dbt 的教学仓库构建流水线深度解析 Lightdash Playground Bundle基于 DuckDB 与 dbt 的教学仓库构建流水线 导读 scripts/playgroun文档教程上一篇游戏语言壁垒终结者XUnity.AutoTranslator自动翻译插件深度解析下一篇3分钟快速上手使用XUnity.AutoTranslator让外文游戏秒变中文版创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表