赞
踩
[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路。]
大家好,我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者
作者微信:WeiyiGeeker
公众号/知识星球:全栈工程师修炼指南
主页博客: https://weiyigeek.top - 为者常成,行者常至
文章目录:
描述:此 Linux 命令 | 系列
文章将作为《#运维从业必学》专栏辅助学习知识,这是也是每位Linux运维工程师必须掌握的基础知识,是作者耗费心力、时间进行总结,希望对大家有所帮助,所以若有帮助还请多多关注、转发、在看作者,鼓励作者创造更多实践文章吧。
所以若是在其他转发平台看到,此文章请一定要关注作者【全栈工程师修炼指南】公众号。
本文章将围绕 Linux 针对文件目录管理等基础命令进行学习,除此之外,包含了作者在日常运维工作中使用到的一些命令的注意事项总结,以及使用频率稍低的命令及参数,但是又非常高级使用的方法,相信各位看友学习之后都会有所收获,下面就跟随作者一起学习吧!
Linux 命令提示符格式说明:
- //示例:
- [root@localhost ~]#
-
- //说明:
- root: 当前登录用户 root是Linux中管理员用户
- localhost:主机名
- ~ 当前所在目录(家目录)
- # 超级用户的提示符
- $ 普通用户的提示符是
Linux 命令书写规范:
答:一条完整的linux基本由两部分组成,命令和参数,命令和参数之间用空格隔开,并用”-“或者”--“连接 例如,
hostname -i
温馨提示:命令与文件补全,在Bash(sh)中命令与文件补全是非常方便与常用的功能我们只要在输入命令或文件时,按Tab键就会自动进行补全。
文件通配符模式描述:文件通配符(Wildcard Patter
)可以用来匹配符合条件的多个文件,方便批量管理文件,其采用特定的符号,表示特定的含义,此符号称为元meta字符,常见的通配符如下:
- * 匹配任意多个字符,但不匹配"."开头的文件,及隐藏文件。
- ? 匹配任意一个字符,一个汉字与字符也算。
- ~ 当前用户家目录
- ~+ 当前工作目录
- ~- 当前目录的上一个目录
- ~weiyigeek 用户weiyigeek的家目录
- [0-9] 匹配数字范围
- [a-z] 匹配小写字母范围
- [A-Z] 匹配大写字母范围
- [weiyigeek] 匹配列表中任意一个字符
- [^weiyigeek] 排除匹配列表中任意一个字符,即匹配列表以外的字符。
除此之外,还支持 perl 正则中的内容匹配字符:
- [:space:]: 空格
- [:blank:]: 水平空白字符
- [:punct:]: 标点符号
- [:print:]: 可打印字符
- [:cntrl:]: 控制字符(不可打印)
- [:graph:]: 图形字符
-
- [:digit:]: 所有的数字 [0~9]
- [:lower:]: 小写字母 [a-z]
- [:upper:]: 大写字母 [A-Z]
- [:alpha:]: 所有字母 [a-zA-z]
- [:alnum:]: 所有的数字和字母 [0~9a-zA-z]
- [:xdigit:]: 十六进制字符 [0x0000-0xFFFF]
Linux 文件与目录的类型:
- -rwxr-xr-x :- 代表文件
- drwxr-xr-x :d 代表目录
- lrwxrwxrwx :l 软链接文件
- crw-rw---- :c 字符设备
- brw-rw---- :b 块设备
- prw------- :p 管道文件
- srw-rw-rw- :s 套接字文件
文件与目录的权限
- # 首位表示文件类型,后9位表示权限,每3个一组,其中rwx(数字表示:421)分别代表读(read)、写(write)、执行权限(execute),若有`-`表示对应无权限。
- d rwx rwx r-x.
- 所有者 所属组 其他人
-
- # 表示文件,权限为:所有者有读、写权限,而所属组,其他人只有读权限。
- $ ls -alh .bash_history
- -rw-r--r-- 1 weiyigeek weiyigeek 39 Mar 21 2022 .bash_history
-
- # 表示目录,权限为:所有者有读、写,进入权限,而所属组,其他人无权限。
- $ ls -la | grep -w "\.ssh"
- drwx------ 2 weiyigeek weiyigeek 4096 Mar 22 2022 .ssh
示例,创建一个文件及目录,查看其默认权限,由于UMASK变量值为022
,所以文件默认权限为644
,目录默认权限为755
。
- $ touch file.txt && mkdir file
-
- $ ls -alh | grep "file"
- drwxr-xr-x(777 - 022 2 weiyigeek weiyigeek 4.0K May 19 13:43 file
- -rw-r--r-- (666 - 022) 1 weiyigeek weiyigeek 0 May 19 13:43 file.txt
描述:在Linux系统中,每个Shell或系统进程都有一个当前工作目录(CWD, Current Work Directory
),我们可使用pwd
命令(Print Working Directory)可以显示当前工作目录的绝对路径。
语法参数
- pwd [-LP]
- # 参数
- -L :显示链接路径,默认值
- -P :显示真实路径而非使用连接(Link)路径
使用示例:
- # 1.获取当前目录位置
- [root@localhost home]$ pwd
- /home
-
- # 2.显示真实路径而非使用连接(Link)路径
- [root@localhost ~]$ ls -ld /var/lock
- lrwxrwxrwx 1 root root 9 Apr 23 14:40 /var/lock -> /run/lock
- ❯ cd /var/lock
- ❯ pwd
- /var/loc # 对比点
- ❯ pwd -P
- /run/lock # 对比点(真实路径)
知识扩展:搞过Windows运维与开发的一定知道, 文件目录可以用绝对路径
或相对路径
访问。
绝对路径(absolute
):由根目录(/)开始写起的文件名或目录名称,例如 /root/directory
;
相对路径(relative
):相对于目前路径的文件名写法, 例如 ./ssh
或 ~/directory
等等, 反正不是 /
开头就属于相对路径的写法。
描述:在Linux系统中,我们可使用cd
命令来切换当前工作目录,例如 cd /home/weiyigeek
,除此之外还有其他快捷方式进行切换。
常用命令:
- # 常规
- cd /目录
-
- # 五种特殊的目录
- cd ~ 或者 cd /root/ 回到家目录
- cd ~weiyigeek 直接到weiyigeek的家目录
- cd - 回到上次所在目录
- cd .. 回到上一级目录
- cd . 进入当前目录
- cd $_ 进入上一条命令最后参数的目录
使用示例:
- # 示例1. 添加weiyigeek目录进入家目录
- $ useradd -m weiyigeek
- $ cd ~weiyigeek
- $ cd /home/weiyigeek
- /home/weiyigeek
-
- # 示例2,进入上一条命令最后参数的目录。
- $ echo /tmp/ssh-XXXX3EKOYz/ /
- /tmp/ssh-XXXX3EKOYz/ /
- $ cd $_
- [root@rocky-server / 192.168.228.128 14:43]#
-
- # 示例3.进入/bin 真实路径,即 /usr/bin
- cd -P /bin
温馨提示: 使用快捷键 ctrl+L 清屏,按两下tab键目录/命令补全。温馨提示:相关环境变量有$PWD
表示当前目录,$OLDPWD
表示上一次所在目录。
描述: 主要用于显示、过滤、筛选,排序指定的Linux系统中的目录和文件(list dirctory) 。
语法参数:
- ls [选项][文件或目录]
-
- #[选项]
- -a, --all 同时显示出以.开头的内容,包括.目录(当前目录)和..目录(父目录).
- -A, --almost-all 同时显示出以.开头的内容,不包括.目录和..目录.
- --author 在使用-l参数时同时显示出文件创建者.
- -B, --ignore-backups 不显示以~结尾的文件(备份文件).
- -c, (默认)按最近修改时间来排列显示条目,新的在前面.-lt按最近修改时间排列条目,并显示修改时间.-l显示修改时间,但按字母顺序排列.
- -C ,当文件数超过8个时,以多列方式来显示.
- --color[=WHEN] 设置是否用颜色区分条目类别,WHEN可以为never,always和auto.never和always都很明了,auto是指标准输出和terminal绑定时才显示颜色.颜色由环境变量LS_COLORS决定.
- -d, --directory 之列出目录条目,且不列出快捷方式.
- -f 不排序列出,启用-aU,同时禁用-ls和--color,在文件数超过百万级别时使用.
-
- -F 针对不同文件类型(File type)附加不同的符号:*/=>@|
- -g 类似-l,但不显示除所有者.
- -G, --no-group 在-l中不列出组名.
- -h, --human-readable 在-l中以更易理解的方式列出文件大小. (e.g., 1K 20M)
- --si 同上,但倍数是1000而不是1024
- -i, --inode 显示出每个条目的index number.
- -I(i的大写), --ignore=PATTERN 不列出符合shell样式的条目.(不显示排除的文件)
- --hide=PATTERN 但是会被-a或-A覆盖.
- -l 以详细列表的模式展示信息.
- -m 所有项目用逗号分隔显示.
- -n, --numeric-uid-gid 类似-l,同时列出用户和分组信息.
- -o 类似-l,但不列出组信息.
- -p, --indicator-style=slash 在目录后面加上/
- -r, --reverse 反向排序显示.
- -R, --recursive 列出所有子目录.
- -s, --size 显示出每个文件被分配的空间.
- -S 按大小来排序文件.
- --sort=WORD 根据WORD来排序,可以为none,extension,size,time和version.
- --time=WORD 在-l里,根据WORD来替代修改时间,可以为atime,access,use,ctime,status.
- -t 根据修改时间排序,新的在前面.
- -U 不排序,根据系统原有(目录)顺序排列.
- -v 根据版本号排列.
- -x 按行的顺序排列.
- -X 根据扩展名排序.
- -1 一行只显示一个项目.
- --full-time : 以完整时间模式进行输入
- --time={atime,ctime} : 输出访问时间或改变权限属性时间(ctime)而非内容更改的时间(mtime)
- --color={never,always,auto} : 绝不/显示颜色/自行决定
-
- # 返回值
- 0 正常.
- 1 小问题(e.g., 不能进入子目录).
- 2 严重问题(e.g., 不能进入命令行参数显示的目录).
使用示例:
- # 0. 不显示. 与 .. 目录
- $ls -A
-
- # 1.显示除dingding.sh之外得文件与目录
- $ls -I dingding.sh
- dingding.py quartz_uninstall.sh startWechat.sh uninstall.sh
- $ls -I *.yml #不加单双引号将匹配显示同配置
- handlers.yml listen.yml notify.yml tag.yml test.yml version.yml
- $ls -I "*.yml" #即反向匹配显示
- listen.yml.save notify.yml.save test.txt
- $ls -I "*5" -I "*0" |xargs rm # 将要删除的文件作为参数通过xargs传给rm命令
-
-
- # 2.人性化显示所有文件以及文件inode
- $ls -ialh
- 131087 -rw------- 1 root root 16K May 31 12:32 .bash_history
-
- # 3.以人类可便读的单位显示目录使用空间,并列出用户和组的 ID 号(类似 -l)
- $ls -nh
- 总用量 1.1M
- -rw-------. 1 0 0 1.4K 3月 14 14:51 anaconda-ks.cfg
- srw-------. 1 0 0 0 3月 28 2024 test2
- -rw-r--r--. 1 0 0 19K 3月 28 2024 tmux-client-3523.log
- -rw-r--r--. 1 0 0 1.1M 3月 28 2024 tmux-server-3525.log
-
-
- # 4.按照扩展名排序显示文件
- $ls -X
- drwxr-xr-x 2 root root 4096 Mar 1 10:35 pythonDemo
- drwxr-xr-x 2 root root 4096 May 31 14:44 www
- -rwxr-xr-x 1 root root 994 May 13 22:40 dingding.py
- -rw-r--r-- 1 root root 5803476 May 6 2018 dingding.sh
-
- # 5.使用大小,时间来排序
- ls -1h --sort=size # 按照大小排序
- ls -lhs
- ll -Sh
- ls -1h --sort=time # 按照时间排序
- ls -lht
- ls -laht
- ls -lht -r # 按照时间反向排序
- ls -1h --sort=version # 按照版本排序
-
- # 6.不显示所有者/组和把权限转换成数字(uid/guid号)
- $ls -lG
- $ls -ln
-
- # 7.显示文件和目录得安全性上下文(Selinux)
- $ls -alhZd /root/ #ll -Zd .
- dr-xr-x---. root root system_u:object_r:admin_home_t:s0 /root/
-
- # 8.显示完整的文件的修改时间
- $ls -alh --full-time /etc/group
- -rw-r--r-- 1 root root 735 2020-05-09 17:10:25.795053900 +0800 /etc/group
-
- # 9.查看修改时间/访问时间/状态修改时间
- ❯ ls -al core-js-banners; ls -al --time=atime core-js-banners; ls -al --time=ctime core-js-banners
- -rw-r--r-- 1 root root 1 Oct 18 12:55 core-js-banners # 修改时间
- -rw-r--r-- 1 root root 1 Oct 10 09:48 core-js-banners # 访问时间
- -rw-r--r-- 1 root root 1 Oct 18 12:55 core-js-banners # 权限属性时间
-
- # 10.统计文件夹下文件个数包括子文件 和 统计文件夹下目录个数,包括子目录
- ls -lR | grep "^-"| wc -l
- ls -lR | grep "^d"| wc -l
-
- # 11.查看目录下的可执行文件。
- # 符号包括: / 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件
- ls -F | grep "/$"
- ls -F | grep "@$"
- ls -F | grep "*$"
- # mkreleasehdr.sh*
- # redis-benchmark*
- # redis-check-aof*
- # redis-check-rdb*
- # redis-cli*
- # redis-sentinel*
- # redis-server*
- # redis-trib.rb*
-
- # 12.查看目录下所有文件目录但不进行排序输出到 filelist.txt,在文件目录数过多时非常实用。
- ls -1 -f > ~/filelist.txt
-
- # 13.使用通配符方式过滤文件,只显示后缀以.txt结尾的文件
- ls -alh *.txt
-
- # 14.显示file1.txt~file10.txt以及a~z.txt文件
- ls file{1..10}.txt {a..z}.txt
-
- # 15.只显示当前目录下的隐藏目录
- l.
- . .bash_history .bash_profile .config .lesshst .tcshrc .viminfo
- .. .bash_logout .bashrc .cshrc .ssh .tmux.conf
知识扩展: 示例1.文件目录的三个主要的变动时间(创建,修改,访问)时间。
1.modification time : 即mtime
当文件内容数据发生改变时候将会被更新; 注意此处指的是文件的内容而不是文件的属性权限;
2.status time : 即ctime
当文件的状态发生改变时候将会被更新; 比如权限和属性被更改;
3.access time : 即atime
当文件的内容被读取时候将会被更新; 比如使用cat读取/etc/man.config便会更新;
- ❯ ls -lh /etc/manpath.config
- -rw-r--r-- 1 root root 5.1K Feb 26 2020 /etc/manpath.config # mtime
-
- ❯ ls -lh --time=atime /etc/manpath.config
- -rw-r--r-- 1 root root 5.1K Apr 23 14:41 /etc/manpath.config # atime
-
- ❯ ls -lh --time=ctime /etc/manpath.config
- -rw-r--r-- 1 root root 5.1K May 9 16:29 /etc/manpath.config # ctime
示例1:显示所有的文件并人性化显示大小以及列表结果的解析
- # 为例来说明:
- -rw-r--r--[10个字符] 1[硬连接] root root 5803476 May 6 2018 dingding.sh
-
- # 1.第一列为文件种类及权限:其中第一个字符表示文件的种类
- 即,-表示是普通文件,d表示为目录,c表示为字符设备,b表示为块设备,来表示连接文件
- 后面的九位:每3个字符为一块表示了此文件(目录)的属主、属组及others的权限
- 其中 r表示read,w表示write,x表示execute,-表示无权限
-
- # 2.第二列表示硬链接个数:
- 文件每增加一个硬链接,数字会增加1,默认从1开始
- 1表示无硬链接文件,
- 2表示他是目录,注意目录是不能做硬链接
-
- # 3.第三列为文件(目录)的属主(user)
- # 4.第四列为文件(目录)的属组(group)
- # 5.第五列为文件(目录)的大小,单为为字节(size)
- # 6.第六列为文件(目录)创建时间或最后一次访问时间
- 顺序为月、日、时间,如果该时间离现在过久则直接显示年份
-
- 注意:对目录如果没有w权限,即使里面的文件有写权限,也不能对文件进行移动,重命名操作,此时需要给目录加上w权限
示例2.自定义ls命令针对不同后续文件的颜色展示, 路径针对RHEL 、CentOS、Rocky 系统有效存在, 修改后查看相关变量。
- $ vim /etc/DIR_COLORS
- .jpg 01:31
-
- $ echo $LS_COLORS
温馨提示:CentOS 与 Ubuntu 系统中使用 ls 别名 ll命令
其展示效果是不同的,这是由于其ll别名中ls参数不一样,Ubuntu 会以不同的后缀作为区别其文件类型。
- # CentOS
- $ alias ll
- alias ll='ls -l --color=auto'
- # Ubuntu
- alias ll='ls -alF'
描述:dir 命令与ls 命令功能相差不多,所以此处简单介绍,不要求掌握日常运维中也是常使用ls命令。
语法参数:
- $ dir [选项][文件或目录]
-
- # 参数
- -a 显示所有文件,包括隐藏文件
- -l 显示详细信息
- -f 不进行排序,-aU 选项生效,禁用 -ls --color
- -d, --directory 当遇到目录时列出目录本身而非目录内的文件
- -h, --human-readable 人性化显示文件大小
- -i, --inode 显示inode
- -r, --reverse 逆序排列
- -R, --recursive 递归显示子目录
示例:
- # 示例1:显示所有的文件并人性化显示大小与inode
- $ dir -lhi
- total 5.6M
- 139002 -rwxr-xr-x 1 root root 994 May 13 22:40 weiyigek.py
- 139000 -rw-r--r-- 1 root root 5.6M May 6 2018 weiyigek.sh
-
- # 示例2.递归显示子目录及文件
- $ dir -R
描述:此tree命令可以以树形结构来显示Linux文件系统中的目录,其功能类似于Windows系统中的tree命令。
- usage: tree [-acdfghilnpqrstuvxACDFJQNSUX] [-H baseHREF] [-T title ]
- [-L level [-R]] [-P pattern] [-I pattern] [-o filename] [--version]
- [--help] [--inodes] [--device] [--noreport] [--nolinks] [--dirsfirst]
- [--charset charset] [--filelimit[=]#] [--si] [--timefmt[=]<f>]
- [--sort[=]<name>] [--matchdirs] [--ignore-case] [--fromfile] [--]
- [<directory list>]
-
-
- # 参数
- -d:只显示目录
- -L: 指定显示层级。
- -P pattern: 指定通配符匹配到的路径。
使用实例
- # 1.显示当前目录的树状结构:
- tree
- # .
- # ├── dir01
- # │ └── test.txt
- # ├── dir02
- # │ └── test.txt
- # ├── issue
- # ├── issue~
- # ├── issue.~1~
- # └── issue.~2~
-
- # 2.显示指定目录的树状结构:
- tree /path/to/directory
-
- # 3.显示指定目录下的所有文件,包括隐藏文件:
- tree -a /path/to/directory
-
- # 4.显示指定目录的树状结构,并限制显示的层级深度:
- tree -L 2 /path/to/directory
-
- # 5.显示文件夹和文件的权限信息:
- tree -p /tmp
- # .
- # ├── [drwxr-xr-x] dir01
- # │ └── [-rw-r--r--] test.txt
- # ├── [drwxr-xr-x] dir02
- # │ └── [-rw-r--r--] test.txt
- # ├── [-rw-r--r--] issue
- # ├── [-rw-r--r--] issue~
- # ├── [-rw-r--r--] issue.~1~
- # └── [-rw-r--r--] issue.~2~
- # 2 directories, 6 files
-
- # 6.显示文件夹和文件的大小:
- tree -s /path/to/directory
- # .
- # ├── [ 22] dir01
- # │ └── [ 5] test.txt
- # ├── [ 22] dir02
- # │ └── [ 5] test.txt
- # ├── [ 5] issue
- # ├── [ 23] issue~
- # ├── [ 5] issue.~1~
- # └── [ 5] issue.~2~
-
- # 7.以图形符号代替线条来绘制树状结构:
- tree -F /path/to/directory
-
- # 8.显示文件夹和文件的修改时间:
- tree -D /path/to/directory
- # ├── [Mar 24 15:44] dir01
- # │ └── [Mar 24 15:44] test.txt
- # ├── [Mar 24 15:44] dir02
- # │ └── [Mar 24 15:44] test.txt
- # ├── [Mar 24 15:44] issue
- # ├── [Mar 24 16:12] issue~
- # ├── [Mar 24 15:44] issue.~1~
- # └── [Mar 24 15:44] issue.~2~
描述:此mkdir(Make Directory)命令用于在Linux中创建单个目录或多个目录。
语法参数:
- mkdir -vp 目录名
-
- # 参数
- -p 用来递归创建
- -m 配置创建目录时候的权限而不需要看默认权限(umask)
- -v 显示建立过程
使用示例:
- # 示例0.建立单个目录
- mkdir weiyigeek
-
- # 示例1.递归建立多个目录
- mkdir -vp /tmp/{oa,bbs,video} #采用数组建立个目录
- mkdir: created directory ‘/tmp/oa’
- mkdir: created directory ‘/tmp/bbs’
- mkdir: created directory ‘/tmp/video’
-
- # 示例2.建立父目录然后再每个父目录中建立子目录
- mkdir -vp /tmp/{a,b,c}/{test1,test2}
- # mkdir: created directory '/tmp/a'
- # mkdir: created directory '/tmp/a/test1'
- # mkdir: created directory '/tmp/a/test2'
- # mkdir: created directory '/tmp/b'
- # mkdir: created directory '/tmp/b/test1'
- # mkdir: created directory '/tmp/b/test2'
- # mkdir: created directory '/tmp/c'
- # mkdir: created directory '/tmp/c/test1'
- # mkdir: created directory '/tmp/c/test2'
-
- # 示例3.批量创建dir1~dir100一百个目录。
- mkdir -v dir{1..100}
-
- # 示例4.在创建目录的同时指定权限
- mkdir -m 711 /tmp/weiyigeek # 新建权限rwx--x--x的weiyigeek目录
- ls -ld /tmp/weiyigeek
- # drwx--x--x 1 root root 4096 Oct 18 12:31 /tmp/weiyigeek
描述:touch命令不常用,一般在使用make的时候可能会用来修改文件时间戳或者新建一个不存在的文件。
语法参数:
- 用法:touch [选项] 文件
-
- # 参数
- -a 或--time=atime或--time=access或--time=use 只更改存取时间。
- -m 或--time=mtime或--time=modify 只更改变动时间。
- -t 使用指定的日期时间,而非现在的时间 use [[CC]YY]MMDDhhmm[.ss]
- -c 或--no-create 不建立任何文档。
- -d 使用指定的日期时间,而非现在的时间。
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
实际案例:
- # 示例1.建立文件与指定时间修改文件
- $ touch create.txt
- $ touch -t 201908031122 1.txt
- $ ls -lh
- -rw-r--r-- 1 root root 0 Aug 3 2019 1.txt
- -rw-r--r-- 1 root root 0 May 31 15:48 create.txt
-
- # 示例2.采用{}符号批量创建文件
- $ touch index-{1..10}.html
-
- # 示例3.时间调整将某个文件的认证修改为目前日期(mtime和atime)
- $ echo > hello.txt
- $ touch -d '2 day ago' hello.txt
- $ ls -alh hello.txt
- -rw-r--r-- 1 root root 1 Oct 16 17:37 hello.txt
- $ ls -ailh hello.txt; ls -alhi --time=atime hello.txt;ls -ailh --time=ctime hello.txt
- 13229323905543610 -rw-r--r-- 1 root root 1 Oct 16 17:37 hello.txt # 修改
- 13229323905543610 -rw-r--r-- 1 root root 1 Oct 16 17:37 hello.txt # 访问
- 13229323905543610 -rw-r--r-- 1 root root 1 Oct 18 17:37 hello.txt # 权限属性变更
描述:删除空目录(Remove Empty Directory),删除非空目录或文件; 温馨提示: 慎用 rm 命令,如果执行了 rm -rf /
会删掉根目录下的所有文件,如果是生产环境那就准备跑路吧声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。