楼主: bnso

Linux Shell介绍

[复制链接]
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
101#
 楼主| 发表于 2006-8-13 18:57 | 只看该作者
第12章tr 用法
12.1 关于tr
t r用来从标准输入中通过替换或删除操作进行字符转换。t r主要用于删除文件中控制字符
或进行字符转换。使用t r时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。
t r刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
本章内容有:
• 大小写转换。
• 去除控制字符。
• 删除空行。
带有最常用选项的t r命令格式为:
t r - c - d - s [ " s t r i n g 1 _ t o _ t r a n s l a t e _ f r o m " ] [ " s t r i n g 2 _ t o _ t riannpsulta_t e _ t o " ]
f i l e
这里:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为A S C I I。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符
串。
I n p u t - f i l e是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
12.1.1 字符范围
使用t r时,可以指定字符串列表或范围作为形成字符串的模式。这看起来很像正则表达式,
但实际上不是。指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
/octal 一个三位的八进制数,对应有效的A S C I I字符。
[O*n] 表示字符O重复出现指定次数n。因此[ O * 2 ]匹配O O的字符串。
大部分t r变种支持字符类和速记控制字符。字符类格式为[:c l a s s ],包含数字、希腊字母、
空行、小写、大写、c n t r l键、空格、点记符、图形等等。表1 2 - 1包括最常用的控制字符的速
记方式及三位八进制引用方式。
当用一个单字符替换一个字符串或字符范围时,注意字符并不放在方括号里( [ ])。一些
系统也可以使用方括号,例如可以写成[“\ 0 1 2”]或“\ 0 1 2”,t r也允许不加引号,因此命令中
看到单引号而不是双引号时也不要感到奇怪。
像大多数系统工具一样, t r也受特定字符的影响。因此如果要匹配这些字符,需使用反斜
线屏蔽其特殊含义。例如,用\ {指定花括号左边可以屏蔽其特殊含义。
表12-1 tr中特定控制字符的不同表达方式
速记符含义八进制方式
\ a Ctrl-G 铃声\ 0 0 7
\ b Ctrl-H 退格符\ 0 1 0
\f Ctrl-L 走行换页\ 0 1 4
\n Ctrl-J 新行\ 0 1 2
\ r Ctrl-M 回车\ 0 1 5
\t Ctrl-I tab键\ 0 11
\ v Ctrl-X \ 0 3 0
12.1.2 保存输出
要保存输出结果,需将之重定向到一个文件。下面的例子重定向输出到文件r e s u l t s . t x t。
输入文件是c o p s . t x t。
现在看一些例子。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
102#
 楼主| 发表于 2006-8-13 18:57 | 只看该作者
12.1.3 去除重复出现的字符
下面文件包含了一些打印错误。这种情况时常发生,例如在v i编辑器中,偶尔按住一个键
不放。
如果要去除重复字母或将其压缩在一起,使用- s选项。因为都是字母,故使用[ a - z ]。输入
文件重定向到t r命令。
所有重复字符被压缩成一个。如果使用c a t命令,再将结果管道输出至t r,结果是一样的。
12.1.4 删除空行
要删除空行,可将之剔出文件。下面是一个文件p l a n e . t x t。文本间有许多空行。
120 第二部分文本过滤
下载
使用- s来做这项工作。换行的八进制表示为\ 0 1 2,命令为:
也可以使用换行速记方式\ n,这里用单引号(通常用双引号)。
12.1.5 大写到小写
除了删除控制字符,转换大小写是t r最常用的功能。为此需指定即将转换的小写字符[ a - z ]
和转换结果[ A - Z ]。
第一个例子,t r从一个包含大小写字母的字符串中接受输入。
同样,也可以使用字符类[:l o w e r:]和[:u p p e r:]。
将文本文件大写转换为小写并输出至一个新文件,格式为:
这里f i l e - t o - t r a n s l a t e保存即将转换的文件, n e w - f i l e - n a m e为保存结果的新文件名。例如:
12.1.6 小写到大写
转换小写到大写与上一节大写到小写过程刚好相反。以下有两个例子:
将文本文件从小写转换为大写并将结果存入一个新文件,格式为:
f i l e - t o - t r a n s l a t e保存即将转换的文件, n e w - f i l e - n a m e保存结果文件

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
103#
 楼主| 发表于 2006-8-13 18:57 | 只看该作者
12.1.7 删除指定字符
偶尔会从下载文件中删除只包含字母或数字的列。需要结合使用- c和- s选项完成此功能。
下面的文件包含一个星期的日程表。任务是从其中删除所有数字,只保留日期。日期有大
写,也有小写格式。因此需指定两个字符范围[ a - z ]和[ A - Z ],命令tr -cs "[a-z][A-Z]""[\012*]"将
第12章tr 用法121
下载
文件每行所有不包含在[ a - z ]或[ A - Z ](所有希腊字母)的字符串放在字符串1中并转换为一新
行。- s选项表明压缩所有新行, - c表明保留所有字母不动。原文件如下,后跟t r命令:
12.1.8 转换控制字符
t r的第一个功能就是转换控制字符,特别是从d o s向U N I X下载文件时,忘记设置f t p关于回
车换行转换的选项时更是如此。
下面是故意没有设置转换开关的一个文本文件,是关于文具需求的一部分内容。使用c a t
- v显示控制字符。
猜想‘^ ^ ^ ^ ^ ^’是t a b键。每一行以C t r l - M结尾,文件结尾C t r l - Z,以下是改动方法。
使用- s选项,查看A S C I I表。^的八进制代码是1 3 6,^ M是0 1 5,t a b键是0 11,^ Z是0 3 2 ,下
面将按步骤完成最终功能。
用t a b键替换^ ^ ^ ^ ^ ^,命令为" \ 1 3 6 " " [ \ 0 11 * ] "。将结果重定向到临时工作文件s t a t . t m p。
用新行替换每行末尾的^ M,并用\ n去除^ Z,输入要来自于临时工作文件s t a t . t m p。
最后去除所有的控制字符,文件就可以使用了。
12.1.9 快速转换
如果需要删除文件中^ M,并代之以换行。使用命令:
或者用下述命令得同样结果。
也可以用下述命令:
122 第二部分文本过滤
下载
另一个一般的D o s到U N I X转换是命令:
将删除所有^ M和^ Z,代之以换行。
要删除所有的t a b键,代之以空格,使用命令:
替换p a s s w d文件中所有冒号,代之以t a b键,可以增加可读性。将冒号引起来,指定替换
字符串中t a b键八进制值0 11,下面是p a s s w d文件,后跟t r命令结果:
或者用下述命令得同样结果。这里使用t a b键的速记符。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
104#
 楼主| 发表于 2006-8-13 18:57 | 只看该作者
12.1.10 匹配多于一个字符
可以使用[ c h a r a c t e r * n ]格式匹配多于一个字符。下述文件列出系统硬盘信息,其中包含了
系统已经注册的和未识别的。第一列是数字,如果不全是0,表明第二列相应硬盘已经注册。
有时全部为0看起来很烦人,找个吸引人注意力的符号来代替它,以便一眼就能看出哪个
硬盘已注册,哪个不可识别。原文件如下:
从文件列表中知道,有一个硬盘未注册,因此用星号代替所有的0。模式为[ 0 * 4 ],意即匹
配至少4个0,替换字符串为星号,过滤命令及结果如下:
现在从文件中可以直接看出哪个未注册。
12.2 小结
t r主要用于字符转换或者抽取控制字符。本章所有功能都可以用s e d来完成,但有些人宁
愿使用t r,因为t r更加快捷、容易。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
105#
 楼主| 发表于 2006-8-13 18:58 | 只看该作者
第三部分登录环境

第13章登录环境
登录系统时,在进入命令提示符前,系统要做两个工作。键入用户名和密码后,系统检
查是否为有效用户,为此需查询/ e t c / p a s s w d文件。如果登录名正确并且密码有效,开始下一
步过程,即登录环境。
本章内容有:
• 登录过程。
• 文件/ e t c / p a s s w d。
• $HOME.profile。
• 定制$ H O M E . p r o f i l e。
在进行下一步处理之前,先看看文件/ e t c / p a s s w d。这是一个文本文件,可以任意修改其中
的文本域,但要小心。此文本有7个域,并用冒号作分隔符,以下是其部分文件内容列表。在
顶端加有列号,这样各域标识得更加清晰。
现在来看看各域,第1域是登录名,第2域是加密的密码,第5域是用户全名。第6域是用
户根目录,第7域是用户使用的s h e l l。这里/ b i n / s h意即缺省为常规Bourne Shell。
P a s s w d文件可能还有其他格式。其中的一个版本即为实际p a s s w d域保存在另一个文件中。
以上即为最普通格式。
登录成功后,系统执行两个环境设置文件,第一个是/ e t c / p r o f i l e,第二个是. p r o f i l e,位
于用户根目录下。
系统还会处理其他的初始化文件。这里只涉及p r o f i l e文件。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
106#
 楼主| 发表于 2006-8-13 18:58 | 只看该作者
13.1 /etc/profile
用户登录时,自动读取/ e t c目录下p r o f i l e文件,此文件包含:
• 全局或局部环境变量。
• PAT H信息。
• 终端设置。
• 安全命令。
• 日期信息或放弃操作信息。
下面就来详细解释上述各项内容。设置全局环境变量便于用户及其进程和应用访问它。
第三部分登录环境
PAT H定位包含可执行文件,库文件及一般文本文件的目录位置,便于用户快速访问。终端设
置使系统获知用户终端的一般特性。安全命令包括文件创建模式或敏感区域的双登录提示。
日期信息是一个文本文件,保存用户登录时即将发生事件的记录或放弃登录的信息文件。
以下是文件/ e t c / p r o f i l e,列表后将予以讨论。
126 第三部分登录环境
下载
其中一些命令可能不好理解,不必担心,本书以后将陆续予以介绍。如果愿意,可以参
照这个列表建立自己的p r o f i l e文件。
第一行捕获两个信号,即使用Q U I T退出用户或< C t r l - c >键停止文件执行。
接下来导出L O G N A M E;然后指定系统额外增加的m a n页查询的位置。M A N PAT H将此位
置加入存在的m a n页查询列表中。
检查时区文件,如果存在,指定它作为时区源,设置终端类型为v t 2 2 0。
重新设置捕获信号,以便于用户读取日期文件信息,但此后必须再重新设置它。
建立邮件信息(当有新邮件到达时显示此信息)。
设置u m a s k值,使文件创建时带有一定的缺省权限位集。
初始化环境变量,设置路径并导出,以便于用户使用。
重新设置捕获信号< C t r l -C>和Q U I T。
保存缺省的s t t y设置,便于用户退出查询系统时能够重新初始化终端设置。
第13章登录环境127
下载
将所有连接注册到文件/ v a r / a d m / m e s s a g e s,即缺省系统注册文件中。
使用u l i m i t命令限制内存溢出或十六进制溢出数目。
下面的一小段脚本限制用户最多同时登录两次,但不包括三个人( i d n k,p s a l o m,d a v e),
如果有人试图登录超过两次,则令其退出登录进程。
最后设置命令提示符到登录名。
此环境设置为全局使用,下面在用户自己的p r o f i l e文件中定制环境。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
107#
 楼主| 发表于 2006-8-13 18:59 | 只看该作者
13.2 用户的$HOME.profile
/ e t c / p r o f i l e文件执行时,用户将被放入到自己的$ H O M E目录中,回过头来观察p a s s w d文
件,用户的$ H O M E目录在倒数第2列。
可以将之看作用户根目录,因为正是在这里存储了所有的私有信息。
如果. p r o f i l e已经存在,系统将参照此文件,意即对此过程并不创建另一个s h e l l,因而在
/ e t c / p r o f i l e下设置的环境不做改动,除非在. p r o f i l e中强制改动它。如果创建另一个进程,用户
本地的s h e l l变量将被覆盖。
回到. p r o f i l e,一般来说创建帐户时,一个p r o f i l e文件的基本框架即随之创建。不要忘了
在. p r o f i l e文件中可以通过设置相关条目以不同的值或使用u s e t命令来覆盖/ e t c / p r o f i l e文件中的
设置。如果愿意,可以定制用户自己的. p r o f i l e文件。先来看看标准的. p r o f i l e文件。
现在改动此文件。
现在加入两个环境变量,如E D I TO R,以使c r o n或其他应用获知正在使用的编辑器;将
T E R M变量设置为v t 1 0 0,而不是v t 2 2 0。
也可以创建b i n目录,将之加入路径( p a t h),目录结构中加一个b i n目录是一个好习惯。
在这里可以保存所有脚本,将之加入PAT H后,就不必写入脚本的文件路径名全称,只键入脚
本名即可。
几乎没有人想在命令提示符中显示自己的登录名,而宁愿使用现在的目录路径或是正在
使用的系统主机名做提示符。例如,下面显示了在命令提示符中如何设置主机名:
如果用户位于当前目录下:
如果上面的命令返回p w d,可使用如下命令:
我通常设置辅助命令提示符(一般用于命令提示符里的多行命令)为符号&copy;,它的A S C I I
代码值八进制数为2 5 1,十进制为1 6 9。
128 第三部分登录环境
下载
如果是L I N U X,那么⋯⋯
在e c h o命令中使用八进制值,方法为:
如果需要访问管理区/ u s r / a d m i n,可将之加入环境变量,这样可以很容易地进入此目录。
A D M I N = / u s r / a d m
如果要知道用户本身登录后系统用户数,使用w h o和w c命令。
将上述设置加入. p r o f i l e文件。如果要使. p r o f i l e或/ e t c / p r o f i l e文件改动生效,可以退出登录
然后再登入,或者参照此文件设置。要参照此文件设置,格式为:
. / p a t h n a m e / f i l e n a m e
要参照. p r o f i l e设置,键入:
$. .profile
如果未成功,试试:
$. ./profile
以下为改动过的. p r o f i l e文件。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
108#
 楼主| 发表于 2006-8-13 18:59 | 只看该作者
13.3 stty用法
s t t y用于设置终端特性。要查询现在的s t t y选项,使用stty -a。
第13章登录环境129
下载
设置终端时遇到的一个最普遍问题是退格键不起作用。这不是不可挽救的。本机s t t y命令
中^ ?即为退格键,使用< C t r l - H >可能会退格并删除前一个字符。在命令行中设置一个s t t y选项,
一般格式为:
stty name character
以下将退格设置为^ H:
$ stty erase '\^H'
在. p r o f i l e文件中使用上述命令可能会碰到一些问题,因为s t t y期望输入一个实际' C o n t r o l
H '序列,在v i编辑器环境下使用下述方法解决它:
按住C t r l键,同时按下V键,释放V键,再按下H键。
最常用的s t t y命令使用在下述设置上:
名称键含义
i n t r ^ C 终止进程
e c h o 打开e c h o功能
- e c h o 关闭e c h o功能
e o f ^ D 文件尾;注销
k i l l ^ Y 删除一行
s t a r t ^ Q 滚动屏幕文本
s t o p ^ S 停止滚动屏幕文本
s t t y的一个可用选项为:
stty -g。
此选项允许以可读格式保存s t t y现有设置,便于以后重置回s t t y。正像前面在文件
/ e t c / p r o f i l e中看到的一样。将stty -g内容放入一个变量中,工作完成后,任何改动的设置将被
写回s t t y。
在改变s t t y设置值并和终端打交道时,此方法很有用。这样可以很容易地存储其初始设置。
下面的例子将s t t y的现有设置保存。使用stty -g关掉e c h o,然后在脚本结尾处保存s t t y初始设
置。
如果是LINUX ,那么⋯⋯
要使L I N U X知道正在使用字符串中转义字符, e c h o命令应加入- e,即echo -e。
130 第三部分登录环境
下载
s t t y命令可以与终端、打印机、调制解调器打交道,功能十分丰富。使用s t t y时要慎重,
不要使用已经使用的键或无效值。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
109#
 楼主| 发表于 2006-8-13 18:59 | 只看该作者
13.4 创建.logout文件
使用Bourne shell与其他s h e l l不同,其缺点是不包含. l o g o u t文件。此文件保存有执行e x i t命
令时,在进程终止前执行的命令。
但是通过使用t r a p命令( t r a p和信号将在本书后面讨论),Bourne shell也可以创建自己的
. l o g o u t文件。方法如下:编辑. p r o f i l e文件,在最后一行加入下列命令,然后保存并退出。
trap "$HOME /.logout"0
再键入一个. l o g o u t文件,敲入下列执行命令。如果愿意,可以在此脚本中加入任何命令。
用户退出时,调用. l o g o u t文件。过程如下:用户退出一个s h e l l时,传送了一个信号0,意
即从现在s h e l l中退出,在控制返回s h e l l继续退出命令前, . p r o f i l e文件中t r a p行将捕获此信号并
执行. l o g o u t。
13.5 小结
可以定制用户本身的. p r o f i l e以满足需求,本章讲述了如何覆盖系统设置以满足用户需求。
从显示友好信息到终端特性设置,定制用户环境可以有许多方式。

使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
110#
 楼主| 发表于 2006-8-13 18:59 | 只看该作者
第14章环境和shell变量
为使s h e l l编程更有效,系统提供了一些s h e l l变量。s h e l l变量可以保存诸如路径名、文件
名或者一个数字这样的变量名。s h e l l将其中任何设置都看做文本字符串。
有两种变量,本地和环境。严格地说可以有4种,但其余两种是只读的,可以认为是特殊
变量,它用于向s h e l l脚本传递参数。
本章内容有:
• shell变量。
• 环境变量。
• 变量替换。
• 导出变量。
• 特定变量。
• 向脚本传递信息。
• 在系统命令行下使用位置参数。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表