linux学习new.doc_第1页
linux学习new.doc_第2页
linux学习new.doc_第3页
linux学习new.doc_第4页
linux学习new.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 Linux安装1.1 Gz文件安装1.1.1 解压tar -zxvf xxx.tar.gz1.2 MySQL安装及远程连接1.2.1 MySQL二进制文件的安装1. 下载mysql安装包,我是在mysql网站上下载的,网址:,虽然需要注册,不过下载的安装包比较可靠,不会在安装的时候出现莫名其妙的错误。我下载的是mysql-5.1.41-linux-i686-icc-glibc23.tar.gz2.安装之前,最好看一下安装二进制说明文件,文件名叫:INSTALL-BINARY,在解压之后的根目录下(有的 在docs目录下,在readme文档里有说明)。3.建组和用户:lx_mingubuntu:$ groupadd mysqllx_mingubuntu:$ useradd -g mysql mysql4.解压文件到当前的目录下:lx_mingubuntu:$ cd /home/lx_ming/下载lx_mingubuntu:/home/lx_ming/下载$ tar -zxvf mysql-5.1.41-linux-i686-icc-glibc23.tar.gzlx_mingubuntu:/home/lx_ming/下载$ lsmysql-5.1.41-linux-i686-icc-glibc23(解压后的文件) starcraft(该文件夹下的其他无关文件)5.根据网上提示,要将文件拷贝到/usr/local/路径下,才能运行:这里系统提示,我的账户没有权限,所以要改为root账户来执行,从下面开始一直在使用root用户。lx_mingubuntu:$ su root输入密码rootubuntu:/home/lx_ming/下载# cp -rf mysql-5.1.41-linux-i686-icc-glibc23 /usr/local/6.删除以前安装过的文件(之前我没有安装过mysql,这里将网上的步骤贴在下面):rootlocalhost mysql# rpm qa | grep mysql 有的话一个一个删除掉,用rpm -e命令,然后查找一下残留的文件:rootlocalhost mysql# cd /rootlocalhost /# find / -name mysql如果查找到rm -rf filename删除.rootlocalhost /# find / -name f如果查找到删除,一般f是在/etc/f这里.7.链接mysql:rootubuntu:/home/lx_ming/下载# cd /usr/local/rootubuntu:/usr/local# ln -s mysql-5.1.41-linux-i686-icc-glibc23 mysql注:网上的方法都是链接/home/lx_ming/下载/路径下的mysql-5.1.41-linux-i686-icc-glibc23,这里我链接的是/usr/local/路径下的文件。8.初始化mysql表格,安装mysql默认数据库:rootubuntu:/usr/local# cd mysqlrootubuntu:/usr/local/mysql# scripts/mysql_install_db -user=mysql注:由于我开始的安装包是随便找地方下载的 ,所以安装时几乎所有的时间都浪费在这一步上了 ,遇到很多问题。遇到的是下面的错误:If you compiled from source, you need to run make install tocopy the software into the correct location ready for operation.If you are using a binary release, you must either be at the toplevel of the extracted archive, or pass the -basedir optionpointing to that location.网上说解决这个错误,可以使用如下命令,遇到这个错误的朋友不妨试试:rootubuntu:/usr/local/mysql# scripts/mysql_install_db -user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data我使用这个命令依然没有解决问题,最后发现解压后的文件根目录下没有bin和data两个文件夹,最后重新去下载了新的安装包,才解决这个问题。Installing MySQL system tables.OKFilling help tables.OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !To do so, start the server, then issue the following commands:./bin/mysqladmin -u root password new-password./bin/mysqladmin -u root -h localhost.localdomain password new-passwordAlternatively you can run:./bin/mysql_secure_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly recommended for production servers.See the manual for more instructions.You can start the MySQL daemon with:cd . ; ./bin/mysqld_safe &You can test the MySQL daemon with mysql-test-run.plcd mysql-test ; perl mysql-test-run.plPlease report any problems with the ./bin/mysqlbug script!The latest information about MySQL is available on the web atSupport MySQL by buying support/licenses at 9.修改目录权限:rootubuntu:/usr/local/mysql# cd ./rootubuntu:/usr/local/# chgrp -R mysql mysql-5.1.41-linux-i686-icc-glibc23rootubuntu:/usr/local/# chgrp -R mysql mysqlrootubuntu:/usr/local/# chown -R mysql mysql-5.1.41-linux-i686-icc-glibc23/datarootubuntu:/usr/local/# chown -R mysql mysql/datarootubuntu:/usr/local/# ln -s /usr/local/mysql/bin/* /usr/local/bin/10.启动mysql_safe:rootubuntu:/usr/local/# bin/mysqld_safe -user=mysql -socket=/tmp/mysql.sock -port=3306 &1 26860注:网上的步骤在这里要用netstat命令监测以下端口号,我没有进行此操作。11.添加到系统自动启动:rootubuntu:/usr/local/# cp mysql/support-files/mysql.server /etc/init.d/mysqld rootubuntu:/usr/local/# chkconfig -add mysqld 注:这里网上的命令是:cp mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld 12.启动mysql服务进程,如下:rootubuntu:/usr/local/# /etc/init.d/mysqld startStarting MySQL 13.给 root 指定密码为lx_ming,host为localhost ,如下:rootubuntu:/usr/local/# bin/mysqladmin -socket=/tmp/mysql.sock -port=3306 -u root -h localhost password lx_ming14.登录root,并给root授权!如下所示:rootubuntu:/usr/local/# bin/mysql -port=3306 -u root -p -S /tmp/mysql.sock输入密码Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 2Server version: 5.0.51a MySQL Community Server (GPL)Type help; or h for help. Type c to clear the buffer.mysql grant all privileges on *.* to rootlocalhost identified by lx_ming;Query OK, 0 rows affected (0.54 sec)#给使用localhost连接的root用户以所有权限mysqlflush privileges;Query OK, 0 rows affected (0.26 sec)#刷新用户权限列表,更新权限mysql exitBye15.接下来就是mysql上的操作了,新建用户等。感谢网上提供安装指南的朋友!1.2.2 远程连接mySqlmysql CREATE USER montylocalhost IDENTIFIED BY some_pass; mysql GRANT ALL PRIVILEGES ON *.* TO montylocalhost - WITH GRANT OPTION; mysql CREATE USER monty% IDENTIFIED BY some_pass; mysql GRANT ALL PRIVILEGES ON *.* TO monty% - WITH GRANT OPTION;2 linux的基本操作2.1 cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如DOS下的copy命令一样,功能非常强大。 语法: cp 选项 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。该命令的各选项含义如下:- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归拷贝目录,其作用等于dpR选项的组合。- d 拷贝时保留链接。- f 删除已经存在的目标文件而不提示。- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 - p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。- l 不作拷贝,只是链接文件。 需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。$ cp - i exam1.c /usr/wang/shiyan1.c该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为 shiyan1.c。若不希望重新命名,可以使用下面的命令:$ cp exam1.c /usr/ wang/$ cp - r /usr/xu/ /usr/liu/ 将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。2.2 mv命令用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。语法:mv 选项 源文件或目录 目标文件或目录 说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件 时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目 录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至 该文件的链接也将丢失。命令中各选项的含义为:- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用i选项。 需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并末增加,而cp对文件进行复制,文件个数增加了。 例1:将/usr/xu中的所有文件移到当前目录(用“.”表示)中:$ mv /usr/xu/ * .例2:将文件wch.txt重命名为wjz.doc$ mv wch.txt wjz.doc2.3 rm命令在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。rm命令的一般形式为:rm 选项 文件 如果没有使用- r选项,则rm不会删除目录。 该命令的各选项含义如下:- f 忽略不存在的文件,从不给出提示。 - r 指示rm将参数中列出的全部目录和子目录均递归地删除。- i 进行交互式删除。 使用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按了 回车键并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下一个例子中,用户要删除文件test和 example。然后会被要求对每个文件进行确认。用户最终决定删除example文件,保留test文件。$ rm - ii test example Remove test ?n Remove example ?y 3 启动Tomcat服务器3.1 简单的启动Tomcat的方法Sh startup.sh;/webservice/tomact/bin/startup.sh4 Svn4.1 Subversion1.6.1安装以及配置4.1.1 Subrsion安装# tar xvzf Subversion-1.3.2.tar.gz# cd Subversion-1.3.2#./configure-with-apxs=/usr/local/apache2/bin/apxs -prefix=/usr/local/subversion# make# make install4.1.2 Subversion的建立与使用仓库使用$mkdir /var/repos在这里,我们假设设置/var/repos目录下的svn1和svn2两个目录为仓库。用hgz用户运行(如果用root用户,则在运行完这两个程序之后要将这两个目录的所有者权限更改为用户hgz命令是:chown R hgz:hgz /var/repossvnadmin create /var/repos/svn1svnadmin create /var/repos/svn24.2 Httpd的安装4.2.1 解压缩# cd /usr/local/src # tar -zvxf httpd-2.2.6.tar.gz # cd httpd-2.2.6 4.2.2 创建安装目录# mkdir -p /usr/local/apache2 # ./configure -prefix=/usr/local/apache2 -enable-modules=so -enable-rewrite # make# make install 4.2.3 启动和关闭apache# /usr/local/apache2/bin/apachectl -k start / 启动 apahce 用浏览器查看 http:/localhost, 得到 it works ,说明 apache 已经配置成功了 . # /usr/local/apache2/bin/apachectl -k stop / 停止 apache Svn的路径rootlocalhost etc# find / -name svn/usr/bin/svn/usr/lib64/python2.4/site-packages/svn/usr/lib/python2.4/site-packages/svn Httpd路径rootlocalhost etc# find / -name httpd/usr/local/apache2/bin/httpdrootlocalhost etc#4.3 Httpd和Svn整合5 Liunx下解压文件5.1 Tar.bz2如果tar不支持j这个参数就先用 bzip2 -d xxx.tar.bz2 把它解压成.tar文件,然后再用 tar xvf xxx.tar 拆包。压缩解压 linux下怎么解后缀名是gzip的文件? 5.1.1 以.a为扩展名的文件: #tar xv file.a 5.1.2 以.z为扩展名的文件: #uncompress file.Z 5.1.3 以.gz为扩展名的文件: #gunzip file.gz 5.1.4 以.bz2为扩展名的文件: #bunzip2 file.bz2 5.1.5 以.tar.Z为扩展名的文件: #tar xvZf file.tar.Z 或 #compress -dc file.tar.Z | tar xvf - 5.1.6 以.tar.gz/.tgz为扩展名的文件: #tar xvzf file.tar.gz 或 gzip -dc file.tar.gz | tar xvf - 5.1.7 以.tar.bz2为扩展名的文件: #tar xvIf file.tar.bz2 或 bzip2 -dc file.tar.bz2 | xvf - 5.1.8 以.cpio.gz/.cgz为扩展名的文件: #gzip -dc file.cgz | cpio -div 5.1.9 以.cpio/cpio为扩展名的文件: #cpio -div file.cpio 或cpio -divc file.cpio 5.1.10 以.rpm为扩展名的文件安装: #rpm -i file.rpm 5.1.11 以.rpm为扩展名的文件解压缩: #rpm2cpio file.rpm | cpio -div 5.1.12 以.deb为扩展名的文件安装: #dpkg -i file.deb 13.以.deb为扩展名的文件解压缩: #dpkg-deb -fsys-tarfile file.deb | tar xvf - ar p file.deb data.tar.gz | tar xvzf - 5.1.13 以.zip为扩展名的文件: #unzip file.zip 在linux下解压Winzip格式的文件 要是装了jdk的话,可以用jar命令;还可以使用unzip命令。 直接解压.tar.gz文件 xxxx.tar.gz文件使用tar带zxvf参数,可以一次解压开。XXXX为文件名。 例如: $tar zxvf xxxx.tar.gz 各种压缩文件的解压(安装方法) 5.2 文件扩展名 解压(安装方法) .a ar xv file.a .Z uncompress file.Z .gz gunzip file.gz .bz2 bunzip2 file.bz2 .tar.Z tar xvZf file.tar.Z compress -dc file.tar.Z | tar xvf - .tar.gz/.tgz tar xvzf file.tar.gz gzip -dc file.tar.gz | tar xvf - .tar.bz2 tar xvIf file.tar.bz2 bzip2 -dc file.tar.bz2 | xvf - .cpio.gz/.cgz gzip -dc file.cgz | cpio -div .cpio/cpio cpio -div file.cpio cpio -divc file.cpio .rpm/install rpm -i file.rpm .rpm/extract rpm2cpio file.rpm | cpio -div .deb/install dpkg -i file.deb .deb/exrtact dpkg-deb -fsys-tarfile file.deb | tar xvf - ar p file.deb data.tar.gz | tar xvzf - .zip unzip file.zip bzip2 -d myfile.tar.bz2 | tar xvf tar xvfz myfile.tar.bz2 5.3 各个符号的意义u x 是解压 u v 是复杂输出 u f 是指定文件 u z gz格式 gzip gzip选项要压缩(或解压缩)的文件名 -c将输出写到标准输出上,并保留原有文件。 -d将压缩文件压缩。 -l对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小、压缩比、未压缩文件的名字 -r递归式地查找指定目录并压缩或压缩其中的所有文件。 -t测试压缩文件是正完整。 -v对每一个压缩和解压缩的文件,显示其文件名和压缩比。 -num-用指定的数字调整压缩的速度。 举例: 把/usr目录并包括它的子目录在内的全部文件做一备份,备份文件名为usr.tar tar cvf usr.tar /home 把/usr 目录并包括它的子目录在内的全部文件做一备份并进行压缩,备份文件名是usr.tar.gz tar czvf usr.tar.gz /usr 压缩一组文件,文件的后缀为tar.gz #tar cvf back.tar /back/ #gzip -q back.tar or #tar cvfz back.tar.gz /back/ 释放一个后缀为tar.gz的文件。 #tar zxvf back.tar.gz #gzip back.tar.gz #tar xvf back.tar 5.4 tar的使用方法: 5.4.1 压缩一组文件为tar.gz后缀 tar cvf backup.tar /etc 或gzip -q backup.tar.gz 5.4.2 释放一个后缀为tar.gz的文件 gunzip backup.tar.gz 或tar xvf backup.tar 5.4.3 用一个命令完成压缩 tar cvf -/etc | gzip -qc ; backup.tar.gz 5.4.4 用一个命令完成释放 gunzip -c backup.tar.gz | tar xvf - 5.4.5 如何解开ta.Z的文件 tar xvfz backup.tar.Z 或uncompress backup.tar.Z tar xvf backup.tar 5.4.6 如何解开.tgz文件 gunzip backup.tgz 5.4.7 如何压缩和解压缩.bz2的包 bzip2 /etc/smb.conf 这将压缩文件smb.conf成smb.conf.bz2 bunzip2 /etc/smb.conf.bz2 在当前目录下还原smb.conf.bz2为smb.conf6 linux创建用户useradd zhangpasswd zhanguserdel zhang7 查看文件7.1 查看文件权限Chmod777 文件名7.2 查看文件的方法cat foo.txt view foo.txt more foo.txt less foo.txt cat foo.txt|more cat foo.txt|less我试过 rpm -qa | grep -i httpd 和 rpm -e httpd 后,服务还在,是不是重启下服务器8 Linux虚拟机下挂载ISO镜像的方法 首先在你的VMware的setting里面设置CD是选到指定的ISO文件中,然后切换到虚拟机中,敲以下几个命令就OK。先看看你的光驱: ls -l /dev/cdrom |grep cdmkdir /mnt/cdrom ;先是建立一个挂载文件夹出来mount /dev/cdrom /mnt/cdrom ;将ISO所在的/dev/cdrom里面的文件挂载到指定/mnt/cdrom里面,完成挂载.9 SvnSVN是一种版本管理系统,前身是CVS,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题。 SVN中的一些概念 : a. repository(源代码库) 源代码统一存放的地方 b. Checkout (提取) 当你手上没有源代码的时候,你需要从repository checkout一份 c. Commit (提交) 当你已经修改了代码,你就需要Commit到repository d. Update (更新) 当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更 日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) ->作出自己的修改并调试成功 -> Commit(大家就可以看到你的修改了) 如果两个程序员同时修改了同一个文件呢?SVN可以Merge这两个程序员的改动,对,合并,实际上SVN管理源代码是 以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行呢,SVN会提示文件Confict, 冲突,需要手动确认。TortoiseSVN简介TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件 服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。SVN的配置 1,配置好yum,检查subversion安装包rootsvn # yum list |grep subversionsubversion.i386 1.4.2-4.el5_3.1 basesubversion-devel.i386 1.4.2-4.el5_3.1 base subversion-javahl.i386 1.4.2-4.el5_3.1 base subversion-perl.i386 1.4.2-4.el5_3.1 base subversion-ruby.i386 1.4.2-4.el5_3.1 base rootsvn # yum -y install subversion测试安装是否成功: #svnserve -version 回车显示版本说明安装成功 rootsvn # netstat nat 查看默认TCP 3690端口是否监听. 2,创建svn版本库rootsvn /# mkdir -p /data/svndatarootsvn /# svnadmin create /data/svndata/winne winne为版本库名称 3,svnserve配置文件概述 svnserve.conf - svn服务配置文件,该文件版本库目录的conf目录下。 passwd - 用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的。 authz - 权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的。 conf/svnserve.conf 文件 配置项分为以下5项: anon-access 控制非鉴权用户访问版本库的权限。 auth-access 控制鉴权用户访问版本库的权限。 password-db 指定用户名口令文件名。 authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件 注:1.4版本anon-access = read 参数的bug . anon-access = read时 客户端Checkout(提取)的时候会有Not authorized to open root of edit operation错误,改为none参数正常, conf /Passwd 文件 user1 = user1 user2 = user2 conf /authz 文件 groups 设置组admin = user1/ 根目录权限设置(就是“svndata”这个文件夹)user1 = rw 用户1权限是:可读写user2 = r 用户2权限是:可读,不可写admin = rw 设置组权限svndata:/winne 设置根目录下“winne”文件夹的权限user1 = rwuser2 = r以此类推 4,启动和停止SVN服务启动SVN服务:rootsvn # svnserve -d -r /data/svndata/-d表示后台运行-r 指定根目录是 /data/svndata/停止SVN服务:ps -aux |grep svnkill -9 进程杀掉客户端使用Windows客户端TortoiseSVN的使用1, TortoiseSVN 客户端的安装测试选择的是TortoiseSVN 1.6.5客户端 付中文汉化包.2,客户端的文件更新至服务器(user1操作)新建一个空目录,右键Checkout (提取)svn:/6/winne输入passwd文件中的授权用户帐号就可以了在目录中加入一些文件测试. 然后在空白地方右键点TortoiseSVN-> ADD 添加列表到服务器端.此时并没有真正拷贝到服务器上,需再在Commit(提交)操作才会拷贝在版本库浏览器中就可以看到刚才提交的文件了,此时提交的版本为1.3,客户端在服务器上拉读取数据(user2操作)User2 在机器上新建一个空目录user2 , 右键Checkout (提取)填入地址: svn:/6/winne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论