系统管理简介,cad块编辑器怎么用

编辑器 4
第1章 系统管理简介 一般的系统管理书籍开篇时总是提出一份系统管理任务列表。
笔者也曾多次这样做过。
不过要记住,对这种方法应当有所保留。
这种列表忽略了许多捉摸不定的内容,了解这些内容需要花费大量时间、精力并掌握相关知识,却没有在作业描述中说明。
这种列表也说明,即便管理的计算机环境差别甚大,系统管理仍然有一些相通之处。
尽管如此,同样的任务,在某个系统中很重要,但在其他地方的另一系统上或者在不同时间的同一系统中却不一定也很重要。
类似地,差异很大的系统其系统管理需求可能相似,而几乎完全相同的系统在不同环境下也可能需要截然不同的管理。
现在回到列表上来。
笔者使用下表来代替理想化的列表,这是笔者在作为全职系统管理员所担任的第一份工作中(笔者曾在一家财富500强的公司负责管理一些控制大量CAD/CAM工作站的中央系统)花费大量时间完成的工作,也反映了这些任务在这20年间的变化。
表1-1:典型的系统管理任务当时:20世纪80年代初添加新用户。
给静电绘图仪加色粉。
将系统备份到磁带上。
现在:21世纪初笔者仍在做这项工作,但这是自动化的,整个网络仅需要添加一次用户。
不过,转换成LDAP需要耗费大量时间。
打印机要省事得多,只需要排除偶尔的卡纸现象,但在更换墨水盒时会弄脏手。
备份仍然是极为重要的,但备份过程却是集中式的,现在使用CD,偶尔使用备用磁盘和磁带。
15 16 第1章 表1-1:典型的系统管理任务(续) 当时:20世纪80年代初 现在:21世纪初 从备份中恢复用户不小心删除或丢弃的文件。
这一点永远不会改变。
回答用户的问题(比如“怎么发电子邮件?”),通常都是反复回答。
用户总有问题要提。
抱怨也是有增无减:“为什么不能在桌面上建立连接?”或“为什么IRC不能透过防火墙工作?” 监视系统活动,并试着调整系统参数,使安装和升级硬件以适应不断增长的资源需求。
过载的系统能够像空闲系统那样快速响应。
在用户的抱怨或请求下违反规定(指移动作业,而不是抱怨),将打印队列中用户作业提前。
现在对于笔者来说这已经不成问题。
打印机很便宜,不再是需要管理的稀罕资源。
担心系统安全,堵住笔者接手时已有的有害漏洞。
安全总是令人担忧,关注安全通告和不断更新补丁花费不少时间。
安装程序和操作系统更新。
依然如故。
试图释放磁盘空间(尤其是连续的磁盘空间)。
重点转向采用高性能的磁盘I/O(磁盘空间很廉价):RAID等。
在崩溃后重新启动系统(总是在很晚或不便停机的时候)。
系统崩溃比以前少多了(谢天谢地)。
解除网络故障(“为什么哈姆雷特不能同奥菲莉娅对话?”)。
有时,这需要逐一检查楼房四周的以太网电缆,检查其中的每一个节点。
去年,笔者用双绞线电缆替换了最后的细电缆网络,且再也不希望看到后者。
然而,现在有时需要更换有故障的电缆段。
重新整理各设施以容纳新的设备;安装上述设备。
机器总是定期地搬进搬出,需要为其腾出空间。
找出某个程序、命令或某个账户突然神秘地停止工作的原因,尽管用户发誓他什么都没动过。
用户依然只是用户。
修复或者试着修复损坏的CAD/CAM二进制数据文件。
当前类似的工作是处理用户不知道如何访问的电子邮件附件。
保护用户防止其受到有害附件的潜在危害则是另一项工作。
参加会议。
没有会议,但不定期的谈话倒有很多。
向网络中添加新的系统。
毋庸多言:系统几乎都被添加到网络中。
编写脚本以尽可能地使上述行动自动化。
自动化仍然是管理员的救星。
系统管理简介 17 上表说明,系统管理的确是项五花八门的工作,除了计算机技术之外,还得靠一点人际沟通技巧。
在提供一些有关计算机技术的建议之前,笔者想说的是,学习怎么与人交流的最好的方法是观察别人怎么做,效仿他们的成功之处,避免重犯他们的错误。
目前,笔者在负责管理许多不同厂商的各种工作站,以及一些更大规模的(这里是指物理大小,而不是CPU能力)、带有PC和Mac机的系统。
尽管硬件变化巨大,但令人吃惊的是,仍有许多20世纪80年代初期所执行的行动现在仍然需要去做。
添加色粉现在变成了更换激光打印机上的色粉盒或喷墨打印机上的墨盒;备份到4毫米的磁带或CD上而不是备份到9磁道的磁带上;用户的问题和疑问可能涉及不同领域,但数量依然很多。
此外,尽管现在不必开会,但要移动更多的设施,要铺设更多的电缆。
当然,有些主题如移动设施或避免开会明显超出了本书的讨论范围。
有限的篇幅不允许对其他主题一一赘述;关于这些情形,本书会推荐相关书籍以供参考。
本书包含属于“系统管理”范畴内的大部分日常任务。
这些讨论与所使用的机器有关,究竟是单台PC(运行Unix),还是满屋子的主机,或是布满楼宇的互联工作站,抑或是几种类型的计算机组合。
这些主题并不是对每个人都适用,但笔者不会忽视特定用户的需求。
例如,人们通常会认为只有大型系统需要进程记录机制,但现在,以中等规模的Unix系统来处理计算需求,对于小型企业来说也很常见。
由于需要能够处理单独的顾客账单,因此需要跟踪每个顾客消耗的CPU和其他资源。
根本的原则是:汲取所需要的,舍弃不需要的;什么是相关的,什么是无关的,这一点您自己最清楚。
对系统管理的思索 笔者提及了系统管理的一些非技术方面的问题。
如果只是您和自己的PC,那么这些很可能不是问题,但如果与其他人打交道,则会遇到这些问题。
有一句俗话说,系统管理是一项吃力不讨好的工作。
有幅广为流传的漫画上的一个用户说道,“我要感谢您,但系统管理是吃力不讨好的工作”。
实际情况比这还复杂。
正如另一句俗话所说的那样,系统管理就像确保火车准时到达;准时到达时没有人会注意,除非晚点的时候。
系统管理需要在权威与义务以及服务和合作两方面取得平衡。
极端状态似乎总是比中间状态容易处理;法西斯式的独裁者以铁腕方式来管理“他们的系统”,而不顾用户的需要;与之相对的是一些系统管理人员因为用户的请求而忙得不可开交。
解决问题的办法是在这两者之间寻找平衡点:既要保证用户的需要,甚至是非分之想;同时还要维护权威,坚持维护整个系统利益的而制定的策略。
笔者认为,有效的系统管理能提供这样的环境:用户在满足安全性要求、其他用户的需要、系统固有的功能以及所在地区的实际环境和制约条件下,能够以尽可能简单有效的方式完成所需的工作。
18 第1章 更具体地说,成功而有效的系统管理的关键在于知道在什么时候使用如下命令来解决CPU超负荷使用的问题(注1): #kill-9'psaux|awk'$1=="chavez"{print$2}' (该命令结束用户chavez的所有进程。
)还应该知道何时使用: $writechavezYou'vegotalotofidenticalprocessesrunningondalton.AnyproblemIcanhelpwith?
^
D 以及何时走到她桌前与她面对面的交流。
第1种方法显示了Unix的灵巧和强制性的管理能力,两种策略都是相当合适的,而且有时是至关重要的。
在另一些场合,更简单更温和的方法除了解除用户的困惑外,还能够更好地解决系统的性能问题。
切记,有些问题不是使用Unix命令就能解决的。
进一步而言,虽然许多时候会有危机降临,但成功的系统管理需要仔细规划和习惯两者的结合。
处理危机的关键是具有远见,并花时间预计并规划刚刚出现的此种类型的紧急情况。
只要危机很少出现,就可以为之欣慰乃至振奋了。
另一方面,许多危机都可以通过执行所有精心设计的规程来避免:定期更改root密码、老老实实地做好备份(不管多么冗长乏味)、密切监控系统日志、确保注销登录并清除终端屏幕的习惯、在实际应用之前对任何更改进行多次测试、坚持为用户利益而制定的策略(而无论需要对系统执行何种操作)(爱默森说过:“愚蠢的固执就如没有头脑的魔鬼”,但这并非至理名言)。
笔者个人的系统管理哲学可归结为如下几条基本原则,事实上这些原则放之四海而皆准: ●明确系统如何运作。
如今,操作系统被标榜为几乎无需管理,大量易于使用的工具也使得新手管理系统变得简单明了。
但是,仍然需要有人理解系统实际运作的细微差别和详细情况,而这个人便是您。
●在做任何事之前先做好规划。
●确保操作是可逆的(备份对此大有裨益)。
●更改要逐级进行。
注1: 若是HP-UX系统,则命令是ps-ef。
Solaris系统则可运行其中的一种,这要取决于在搜索路径中首先出现的ps版本。
AIX和Linux可以模拟这两种版本,这取决于连字符后是带有选项(SystemV风格),还是不带选项(BSD风格)。
系统管理简介 19 ●在应用更改之前要进行反复测试。
笔者是从一位朋友那里认识到操作可逆性的重要性的。
他在一家博物馆工作,负责修补陶器碎片。
博物馆遵循可逆操作的惯例,因此,一旦将来有更先进的重建技术出现,就可以撤销当前所做的工作,并使用更好的方法。
笔者尽可能地把这种方法应用于计算机技术,逐渐地进行更改,并保留恢复路径。
举例来说,实现这种操作需要编辑系统配置文件。
Unix系统依赖于许多配置文件,而每个主要的子系统都有自己的配置文件(稍后会进行探讨),其中许多都需要经常修改。
笔者从不会修改原始的配置文件,不管这些文件是随系统而来的,还是接管系统时发现的。
相反,在第一次更改文件时,总是先以.dist为扩展文件名对这些文件进行备份,例如: #cd/etc#cpinittabinittab.dist#chmoda-winittab.dist 然后再将那些文件设置为写保护,这样就可以进行引用。
在支持cp命令的-p选项的系统中,使用它把文件的当前修改时间复制到副本中。
笔者在对当前配置文件进行任何更改之前也会创建该文件的副本,以便能够轻松地撤销不需要的更改,并给这些副本的文件名加上.old或.sav后缀。
同时,在头脑中构想好在更改出现问题这种最坏的结果时的修复计划(比如,启动到单用户模式并将旧版本文件复制回去)。
一旦作了必要的更改(或是所需的几项更改中的第一项重大更改),笔者就会尽可能在安全(非生产性的)环境下立即测试文件的新版本。
当然,测试并不一定能找到所有的错误,也不能防止所有的问题,但排除了大多数明显的错误。
每次只进行一项重要更改也会使测试变得容易些。
提示:有些管理员使用版本控制系统来跟踪对重要系统配置文件的更改(例如,CVS或RCS)。
这种程序包被设计为用来跟踪和管理由多个程序员对应用程序源代码所作的更改,也可用来记录对配置文件的更改。
使用版本控制系统允许您记录任何特定更改的作者和改动原因,也可以随时重构文件以前的任意版本。
本章剩下的部分将讨论一些重要的管理工具。
首先会介绍如何成为超级用户(Unix特权账户)。
由于笔者相信,优秀的系统管理员既要有专业的技术,也要具备与自己所 20 第1章 属的用户群体进行交流的良好意识和敏锐度,因此在本章就专门用一节内容来讲述Unix的通信命令。
这些讨论的目标(也即全书的主旨)就是强调系统管理员如何分析系统任务和问题,而不是简单地提供文字上的、参考手册般的常见问题解决方案。
成为超级用户 在Unix系统中,超级用户是指能够不受限制地访问所有文件,执行所有命令的特权账户,该账户的用户名是root。
许多管理任务及其相关命令的执行都要求具备超级用户身份。
有两种方法可以成为超级用户:第一种是直接用root账号登录系统;第二种则是在用其他账户登录后执行su命令。
使用su命令,在输入正确的密码后,用户可以从当前账户更改为不同用户的账户。
su命令需要带有与要登录账户对应的用户名作为其参数;在未提供参数时,root是默认的账户。
在键入命令su命令(不带参数)之后,系统会提示您输入root的密码。
如果密码输入正确,将可看到标准的root账户提示符(默认情况下是#符号),表示已成功成为超级用户,而通常限制文件访问和命令执行的规则都将不起作用。
例如: $supassword: # (输入密码时屏幕不会显示输入内容) 如果键入的密码不正确,系统就会提示错误信息并返回到一般命令提示符下。
可以用exit命令或是按CTRL-D键退出超级用户模式,也可以使用suspend命令挂起shell,将其置于后台;之后可用fg返回到shell。
执行su时,新的shell将继承当前的shell环境,而不是创建root账户登录后将进入的环境。
然而,可以使用下面的命令模拟实际的root登录会话: $su- 警告:和其他一些操作系统不同的是,UNIX的超级用户总是拥有全部的权限:对所有文件、命令等的访问。
因此,超级用户很容易使系统崩溃、毁坏重要的文件,不经意地造成严重后果。
为此,知道超级用户密码的人(包括系统管理员)不应该以超级用户的身份执行日常的工作,而只在必要的时候才使用超级用户的身份。
root账户必须设置密码,而且要定期更改该密码。
只有有经验且有特殊需求的Unix用户才能知道超级用户的密码,知道该密码的人数应该保持为最低限度。
系统管理简介 21 要设置或修改超级用户的密码,必须先成为超级用户,并执行以下命令之一: #passwd#passwdroot 适于大多数情况在Solaris和FreeBSD系统中使用su命令切换到root账户时 一般情况下,系统会要求您键入旧密码,并输入两次新密码。
如果知道root密码的人已经不再使用系统(比如调任、离职等),或者怀疑有未授权用户知晓该密码,那就应该更改密码。
第6章将详细讨论密码问题。
笔者尽力避免直接以root身份登录,而是在必要的时候使用su命令转换到root身份,在可能的时候退出或挂起超级用户shell。
或者,在窗口环境下,可以在单独创建的窗口中使用su转换到root,同样,只有在必要的时候才在那里执行命令。
出于安全性考虑,将任何已登录的会话置于无人值守的状态都是很不好的;显然,如果是root会话,情况就更加严重了。
笔者以root账户登录后需离开工作站时,总是注销登录或锁定屏幕,以防止他人潜入系统。
xlock命令将锁定X会话;要解除X会话的锁定,就必须输入运行xlock命令的用户的密码(在某些系统上,root密码也可以解锁其他用户锁定的会话)(注2)。
尽管屏幕锁定程序也有自身的安全性缺陷,但确实能够防止由于一时的懒惰而导致系统安全被投机取巧式地破坏。
注意:如果您在串行控制台上以root登录,则也应该使用操作系统提供的锁定工具。
在某些情况下,如果您在使用多个虚拟控制台,则需要进行逐个锁定。
对超级用户账户的访问控制 在许多系统上,任何知道root密码的用户都可以随时通过运行su命令成为超级用户。
这对于HP-UX、Linux和Solaris系统来说,一般情况下的确如此(注3)。
Solaris允许通过在/etc/default/su配置文件中的设置来配置命令执行的某些方式。
传统上,BSD系统限定只有组0(通常命名为wheel)的成员可以执行su命令;在FreeBSD系统上,如果wheel组的组文件(/etc/group)中用户列表为空,任何用户都可以使用su命令切换到root账户;否则,仅有wheel组的成员才可以使用该命令。
默认的配置是,wheel组只包含root账户。
注2:注3: 由于某些未知的原因,FreeBSD不提供xlock。
然而,xlockmore(请参阅http://www.tux.ort/~bagleyd/xlockmore.html)实用工具提供了相同的功能(实际上就是xlock的替代命令)。
使用PAM认证工具时,它控制对su的访问(参见第6章“使用PAM进行用户认证”)。
22 第1章 AIX允许系统管理员来逐一指定哪个账户可以使用su命令(没有做任何默认限制)。
以下命令显示了当前允许使用su命令切换到root账户的组,然后把相同的访问权限限定为system和admins组: #lsuser-asugroupsrootrootsugroups=ALL#chusersugroups="system,admins"root 大多数Unix版本也允许限制对特定终端直接使用root进行登录。
第12章将讨论该主题。
为何使用犰狳做封面 犰狳代表了成功的系统管理员所需具备的一种属性:厚皮。
犰狳依靠其力量和毅力才得以在恶劣的环境中生存,这也正是系统管理员大部分时间必须要做的事(有关犰狳的更多信息,请参阅本书底页的介绍)。
系统管理员还需要其他一些宝贵的品质,包括猫鼬的敏捷和机灵(Unix就是蛇)、小猫小狗的冒险和调皮,有时还需要变色龙那样对环境的适应能力,逃避众人的目光,即便您并没有错。
最后,正如一些读者所注意到的,犰狳还给系统管理员这样的警示:不要过于偏执,或者思考范围过于狭窄而忽视了关键问题。
那些未遵守此忠告的犰狳往往会被车辆撞死在路上。
以root账户运行单一命令 su命令还有一种模式,能够以root账户运行单一命令。
这种模式不适宜交互地执行超级用户命令,因此笔者认为这并不是su命令很重要的功能。
不过,在脚本中使用su-c命令却非常有用,记住目标用户不要求是root账户。
诚然,笔者还是发现该命令模式对于系统管理员来说有一个重要的用途:当您在用户工作站(或者不在您自己的系统旁)时,该模式允许您快速修复某个问题,而无需考虑要从su会话中退出(注4)。
有些用户绝不会放过这种疏忽,因此笔者对此保持谨慎。
您可以使用以下命令形式以root身份执行单一命令: $suroot-cmand" 在mand处填入欲执行的命令即可。
如果该命令中包含空白字符或特殊shell字符, 注4: 另一种方法是当需要在用户工作站执行操作时总是打开新的窗口。
这样很容易养成在离开时关闭窗口的习惯。
系统管理简介 23 则必须用引号将该命令括起来。
当执行这种形式的命令时,su会提示输入root密码。
如果输入的密码正确,就会以root账户执行指定的命令,接下的命令将从原来的shell上正常执行。
如果命令有错或是被终止(例如按了CTRL-C),则控制权会返回给无特权的用户shell。
以下示例解释了如何使用该形式的su命令来卸载并弹出在/cdrom目录中安装的CDROM: $suroot-c"eject/cdrom"Password:rootpasswordentered 不同系统上的命令和输出结果可能会略有差别。
可以通过在指定命令末尾(在引号内)包含&符号来以root账户运行后台命令,但在用户工作站运行后台命令之前,要顾虑到其安全性问题,因为用户可能将该命令置于前台运行。
sudo:选择性访问超级用户命令 标准的Unix系统采用极端的方式来准许root访问。
但是,实际想要的常常是折衷方式。
可免费获取的sudo工具允许特定用户以root账户运行特定的命令,而无需root密码(此工具可从/sudo/下载,注5)。
例如,非root用户可使用如下sudo命令来关闭系统: $sudo/sbin/shutdown...Password: sudo仅需要该用户自己的密码来运行命令,而无需root密码。
只要用户输入了正确的密码,sudo将在一段有限的时间内运行一些额外命令,而无需再次输入密码。
这段时间默认为5分钟,通过运行sudo-v命令,用户能够以相同的时间来延长这段时间。
sudo还可以运行sudo-K命令中止这段时间。
sudo使用配置文件(通常是/etc/sudoers)来决定哪些用户可以运行sudo命令,以及在启动sudo会话后的其他可用命令。
配置文件必须由系统管理员来设置。
以下是一个示例文件的起始部分: #Hostaliasspecifications:namesforhostlistsHost_AliasPHYSICS=hamlet,ophelia,laertesHost_AliasCHEM=duncan,puck,brutus 注5: 管理角色是另一种更复杂的区分root访问的方法。
在第7章“基于角色的访问控制”中将予以详细的讨论。
24 第1章 #Useraliasspecifications:namedgroupsofusersUser_AliasBACKUPOPS=chavez,vargas,smith #Commandaliasspecifications:namesmandgroupsCmnd_AliasMOUNT=/sbin/mount,/sbin/umountCmnd_AliasSHUTDOWN=/sbin/shutdownCmnd_AliasBACKUP=/usr/bin/tar,/usr/bin/mtCmnd_AliasCDROM=/sbin/mount/cdrom,/bin/eject 配置文件的这三段代码分别为成组的计算机、用户和命令定义了sudo别名,别名是大写字母组成的名称。
该示例文件定义了两组主机(PHYSICS和CHEM),一组用户(BACKUPS)和四个命令别名。
例如,MOUNT被定义为mount和unmount命令的别名。
遵循良好的安全性惯例,所有的命令都包括可执行文件的完全路径。
最后的命令别名说明了在命令列表中参数的使用。
该别名由加载CD到/cdrom上的命令以及从驱动器中弹出该CD的命令组成。
然而,要注意这并许可mount命令的一般性使用。
该文件的最后一段(参见下文)指定了哪些用户能使用该sudo命令、他们能利用sudo命令运行哪些命令以及他们能在哪些计算机上运行这些命令。
该片段的每一行都由用户名或别名组成,其后是一个或数个如下形式: mand(s) 其中host是主机名或主机别名;而mand(s)部分则是一个或数个命令或是其别名。
如果有多个命令或主机,则使用逗号隔开。
可以为单个用户指定多个访问规则,采用冒号隔开。
根据上下文的不同,别名ALL可表示所有的主机或命令。
以下是示例配置文件的最后一段: #Userspecifications:whocandowhatwhere root ALL=ALL %chem CHEM=SHUTDOWN,MOUNT chavez PHYSICS=MOUNT,achilles:/sbin/swapon harvey ALL=NOPASSWD:SHUTDOWN BACKUPOPS ALL,!
CHEM=BACKUP:/usr/local/bin 注释后的第1行授权root可以访问所有主机上的所有命令。
第2行应用在chem组(以起始的百分号表示)的成员上,该组成员可以在CHEM列表中的任意计算机上运行系统关闭和加载命令。
第3行指定用户chavez可在PHYSICS列表中的主机上运行加载命令,也可以在主机achilles上运行swapon命令。
下一行允许用户harvey在任意系统上运行shutdown命令,而且sudo不要求该用户输入其密码(在命令列表之前加上NOPASSWD:)。
系统管理简介 25 最后一行适用于指定别名为BACKOPS的用户。
在任何不在CHEM列表中的系统上(前面的感叹号表示排除),他们可以运行BACKUP别名中列出的所有命令以及/usr/local/bin目录下的任何命令。
用户可使用sudo-l命令形式来列出可通过sudo使用的命令。
警告:应谨慎地选择通过sudo而使用的命令。
特别地,不应使用shell脚本,也不应使用任何提供shell转义(指从运行中的交互式程序,如常见的编辑器、游戏、甚至more和less之类的输出显示工具中执行shell命令的能力)功能的工具。
理由如下:当用户使用sudo运行某个命令时,该命令以root账户而运行,因此如果该命令允许该用户通过shell转义程序执行其他命令,那么他从该工具中运行的任何命令也会以root账户而运行,而这恰恰违背了sudo命令的根本目的(即授权对超级用户命令的选择性访问)。
类似地,由于多数文本编辑器提供shell转义功能,任何允许用户调用编辑器的命令都应该被禁用。
一些管理工具(例如AIX的SMIT)也提供shell转义功能。
sudo包提供visudo命令来编辑/etc/sudoers。
该命令可以锁定文件,防止两个用户同时修改该文件,在编辑完成时还能执行语法检查(如果有错,则编辑器重新启动,但不会给出明确的错误信息)。
您可能还想按其他一些方式来自定义sudo。
例如,笔者想将免密码使用的时间期限设置得长一点。
要更改此类设置,就必须从源代码重建sudo。
这需要重新运行带选项的configure脚本。
如下命令为所有的sudo操作指定了日志文件,将免密码期限设置为10分钟,并告诉visudo使用EDITOR环境变量中指定的文本编辑器: #cdsudo-source-directory#./configure--with-logpath=/var/log/sudo.log\ --with-timeout=10--with-env-editor 一旦该命令执行完毕,就使用make命令重建sudo(注6)。
sudo的日志记录功能很重要也很有用,使您能够跟踪特权命令的运行。
因此,即使在限制root级命令的访问不成问题时,使用sudo命令有时比使用su命令更受青睐。
警告:sudo的一个缺点是没有集成远程访问密码保护。
因此,当您从不安全的远程会话中运行sudo时,该密码会在网络上传输,任何窃听者都能够得到该密码。
当然,使用SSH可以克服这个缺陷。
注6: 还有一些配置注意项:sudo也可以集成到PAM认证系统中(参见第6章中“使用PAM进行用户认证”)。
使用configure的--use-pam选项。
另一方面,如果系统不使用shadow密码文件,则必须使用--disable-shadow选项。

标签: #cad #箭头 #牌子 #c盘怎么分盘 #csgo #文件夹 #csgo #格式