精华内容
下载资源
问答
  • Linux压缩命令

    千次阅读 2012-03-13 15:10:51
    几种常见的压缩格式 *.Z compress 程序压缩的文件; *.gz gzip 程序压缩的文件; *.bz2 bzip2 程序压缩的文件; *.tar tar 程序打包的数据,并没有压缩过; *.tar.gz tar 程序打包的文件,其中并且经过 ...

    一. 几种常见的压缩格式

    *.Z       compress 程序压缩的文件; 
    *.gz      gzip 程序压缩的文件; 
    *.bz2     bzip2 程序压缩的文件; 
    *.tar     tar 程序打包的数据,并没有压缩过; 
    *.tar.gz  tar 程序打包的文件,其中并且经过 gzip 的压缩!

    1. 最早期的要算是 compress 这个家伙了。
    2. 后来的 GNU 计划开发出新一代的压缩指令 gzip ( GNU zip ) 用来取代 compress 这个老牌的压缩指令。
    3. 再来还有 bzip2 这个压缩比更好的压缩指令!不过,这些指令通常仅能针对一个文件来压缩与解压缩,如此一来,每次压缩与解压缩都要一大堆文件,岂不烦人?
    4. 此时,那个所谓的 [打包软件] 就显的很重要啦!在 Unix-Like 当中,有个软件很好玩,他就是 tar 这命令!这个 tar 可以将很多文件 [打包]成为一个文件!甚至是目录也可以这么玩。不过,单纯的 tar 功能仅是[打包]而已,亦即是将很多文件集结成为一个文件,事实上,他并没有提供压缩的功能。
    5. 后来, GNU 计划中,将整个 tar 与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能!

    二. 压缩指令

    下面我们就来谈一谈这些在 Linux 底下基本的压缩指令吧!

    1. compress (压缩与解压*Z文件)
    语法:
    [root @test /root ]# compress [-d] filename  
    参数说明:  
    -d  :解压缩的参数!  
    范例:  
    先 copy /etc/man.config 到 root 底下,再将他压缩看看
    [root @test /root]# cp /etc/man.config /root
    [root @test /root]# compress man.config
    [root @test /root]# compress -d man.config.Z  
    [root @test /root]# uncompress man.config.Z

    现在很少用了

    使用的时候需要特别留意的是,当你以 compress 压缩之后,如果没有下达其它的参数,那么原本的文件就会被后来的 *.Z 所取代!以上面的案例来说明:原本压缩的文件为 man.config ,那么当压缩完成之后,将只会剩下 man.config.Z 这个经过压缩的文件啰!

    解压缩除了可以使用 compress –d 这个参数之外,也可以直接使用 uncompress !ompress –d =uncompress。

    2. gzip, zcat (压缩与解压*gz文件)
    语法:
    [root @test /root ]# gzip [-d#] filename <==压缩与解压缩
    [root @test /root ]# zcat filename.gz     <==读取压缩档内容
    参数说明:  
    -d  :解压缩的参数!  
    -#  :压缩等级, 1 最不好, 9 最好, 6 是默认值!  
    范例:  
    [root @test /root]# gzip man.config       
    会产生 man.config.gz 这个文件  
    
    [root @test /root]# zcat man.config.gz
    会读取出 man.config 的内容
    
    [root @test /root]# gzip -d man.config.gz  
    [root @test /root]# gunzip man.config.gz
    解压缩,产生 man.config 这个文件
    
    [root @test /root]# gzip -9 man.config      
    以最大压缩比压缩 testing 这个文件!

    gzip 也提供 压缩比的服务! -1 是最差的压缩比,但是压缩速度最快,而 -9 虽然可以达到较佳的压缩比(经过压缩之后,文件比较小一些!),但是却会损失一些速度!预设是 -6 这个数值! gzip 也是相当常使用的一个压缩指令呢!

    zcat 则是用来读取压缩文件数据内容的指令!假如我们刚刚压缩的文件是一个文字文件,那么你还记得如何读取文字文件吗?!没错!就是使用 cat ,那么读取压缩档呢?呵呵!就是使用 zcat 啰!由于 gzip 这个压缩指令主要想要用来取代 compress 的,所以 compress 的压缩文件也可以使用 gzip 来解开喔!同时, zcat 这个指令可以同时读取 compress 与 gzip 的压缩档呦!

    解压缩,gzip -d = gunzip

    3. bzip2, bzcat (压缩与解压*bz2文件)
    语法:
    [root @test root]# bzip2 [-dz] filename <==压缩解压缩指令
    [root @test root]# bzcat filename.bz2   <==读取压缩文件内容指令
    参数说明:
    -d  :解压缩的意思!
    -z  :压缩的意思!
    范例:
    同样的,我们以刚刚拷贝过来的 /root/man.config 这个文件为例
    [root @test root]# bzip2 –z man.config
    [root @test root]# bzcat man.config.bz2
    [root @test root]# bzip2 –d man.config.bz2
    [root @test root]# bunzip2 man.config.bz2

    压缩用bzip2 –z ,那么刚刚的 man.config 就会自动的变成了 man.config.bz2 这个档名啰!

    读取内容压缩文件的内容,可以使用简便的 bzcat 这个指令来读取内容!例如上面的例子中,我们可以使用 bzcat man.config.bz2 来读取数据而不需要解开!

    解压缩时,这个文件的名称为 .bz, .bz2, .tbz, .tbz2 等等,那么就可以尝试使用 bzip2 -d来解看看啦!当然啰,也可以使用 bunzip2 = bzip2 –d 。


    4. tar:
    语法:
    [root @test /root ]# tar [-zxcvfpP] filename  
    [root @test /root ]# tar -N 'yyyy/mm/dd' /path -zcvf target.tar.gz source  
    参数说明:  
    -c  :建立压缩文件的参数命令(create的意思)
    -x  :解压缩文件的参数命令。
    -t  :查看tarfile里的文件。
    注意 :c/x/t只能有一个,不可同时存在,因为不可能同时压缩与解压缩。
    
    -z  :是否同时具有 gzip 的属性?即是否要用gzip压缩?  
    -j  :是否同时具有 bzip2的属性?即是否要用bzip2压缩?
    -v  :压缩的过程中显示文件!  
    -f  :使用文件名,请留意,在 f 之后要立即接文件名喔!不要再加参数!
       例如使用[tar -zcvfP tfile sfile]就是错误的写法,要写成
              [tar -zcvPf tfile sfile]才对!
    
    -p  :使用原文件的原来属性(属性不会依据使用者而变)  
    -P  :可以使用绝对路径  
    -N  :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!  
    --exclude FILE:在压缩的过程中,不要将 FILE 打包!  
    
    范例:
    [root @test /root]# tar -cvf /tmp/etc.tar /etc  
    将/etc目录下的文件全部打包成为 /tmp/etc.tar  
    
    [root @test /root]# tar -zcvf /tmp/etc.tar.gz /etc  
    除打包外,同时以 gzip 压缩
    
    [root @test /root]# tar -xvf  /tmp/etc.tar  
    解 tar 的封包,请注意,由于没有 gzip 的作用,所以只要使用 –xvf 即可!
    
    [root @test /root]# tar -zxvf /tmp/etc.tar.gz  
    这个就是有加上 gzip 的压缩的结果!所以需要加上 –z 呦!
    
    [root @test /root]# tar –ztvf /tmp/etc.tar.gz
    这个 t 可以用来查看 tar 里面的文件信息呢!而不需要将他解开!
    
    [root @test /root]# tar -zcvPf home.tar.gz /home  
    则建立起来的压缩档内文件为绝对路径  
    请注意,使用这个 P 的参数时,不要将 P 加在 f 后面,因为
    f 之后要立即接文件名才行喔!
    
    [root @test /root]# tar -N '2002/06/25' -zcvf home.tar.gz /home  
    上面是说 在 /home 这个目录中,
    比 2002/06/25 日还要新的文件才会被打包进入 home.tar.gz 这个文件中!  
    
    [root @test /root]# tar -zcvf host.tar.gz / --exclude /mnt --exclude /proc  
    上面是说,将根目录的所有数据都打包进 host.tar.gz 这个文件中,但是 /mnt 及 /proc 则不打包!  
    
    [root @test /root]# tar -cvf - /home | tar -xvf -
    上面的意思是[ 将 /home 打包之后,直接解压缩在 /root 底下! ]
    嘿嘿!不需要再建立一次中间文件!不过,使用上面的语法最好使用[ 绝对路径 ],比较不会有问题!
    这个方式适合不想要建立中间文件时!

    tar 可以将整个目录或者是规定的文件都整合成一个文件!例如上面的第三个范例,他可以将 /home/test 底下的文件全部整合成一个文件!而第一个范例中,则是将目录整合成一个文件!同时, tar 可以配合 gzip (这个 gzip 的功能已经已经附加上 tar 里面去了),同时整合并压缩!呵呵!很方便吧![ tar 用来作备份是很重要的指令! ] 而由于 tar 整合过后的文件我们通常会取名为 *.tar ,而如果还含有 gzip 的压缩属性,那么就取名为 *.tar.gz!取这个文件名只是为了方便我们记忆这个文件是什么属性罢了!并没有实际的意义在! 

    绝对路径与权限的问题

    需要注意的是,在使用的参数方面,有还有几个有用的参数需要来了解一番,亦即是 -p 与 -P 这两个!如果你曾经在 crontab 里面下达过一些备份的指令时,那么常常会收到 root 的信件,就是说,系统会告诉你 [我将 / 的 tar 里头的内容拿掉了!] 也就是说,原本你备份的文件是 /home/test ,但是由于担心未来你在解开压缩的时候,会产生一些困扰,因为在 tar 里面的文件如果是具有 [ 绝对路径 ] 的话,那么你解开的文件将会 [ 一定 ] 在该路径下也就是 /home/test,而不是绝对路径(这里请用心的想一想!),这样子的最大困扰是,万一有人拿走了你的这个文件,并且将该文件在他的系统上面解开!万一他的系统上面正巧也有 /home/test 这个目录,哈哈!他的文件就会[ 正巧 ]被覆盖了!所以啰,在预设的情况中,如果是以 [ 绝对路径 ] 来建立打包文件,那么将会自动的将 / 拿掉!这是为了刚刚说明的 [安全] 为前提所做的默认值。好了!但是你就是要以绝对路径来建立打包的文件!那么就加入 -P 这个参数吧(请注意!是大写字符)!这样就可以啦!那么 -p 是什么(小写字符)?呵呵!那个 -p 是 permission 的意思,也就是[ 权限 ]啦!使用 -p 之后,被打包的文件将不会依据使用者的身份来改变权限喔!

    文件的更新日期

    这里还有一个值得注意的参数呦!那就是在备份的情况中很常使用的 -N 的这个参数!你可以参考一下上面的例子就可以知道啦!在这个例子当中,相当重要的就是那个日期啦!在备份的情况当中,我们都希望只要备份较新的文件就好了,为什么呢?因为旧的文件我们已经有备份啰!干嘛还要再备份一次,浪费时间也浪费系统资源!这个时候此一参数就显的相当的重要了啊! 

    标准输入输出

    在上面的例子中,最后一个例子很有趣[ tar cvf - /home | tar -xvf -  ]!他是直接以管线命令[ pipe ]来进行压缩、解压缩的过程!在上面的例子中,我们想要[ 将 /home 底下的数据直接 copy 到目前所在的路径,也就是 /root 底下来 ],但是又觉得使用 cp -r 有点麻烦,那么就直接以这个打包的方式来打包,其中,指令里面的 - 就是表示那个被打包的文件啦!由于我们不想要让中间文件存在,所以就以这一个方式来进行复制的行为啦!

    tarfile 与 tarball

    tar 的功能相当的多,而由于他是经由[ 打包 ]之后再处理的一个过程,所以常常我们会听到 tarball 的文件,那就是经由 tar 打包再压缩的文件啦!此外, tar 也可以用在备份的储存媒体上面,最常见的就是磁带机了!假设我的磁带机代号为 /dev/st0 ,那么我要将我的 /home 底下的数据都给他备份上去时,就是使用 tar /dev/st0 /home 就可以啦!很不错吧!

    在 Linux 当中, gzip 已经被整合在 tar 里面了!但是 Sun 或者其它较旧的 Unix 版本中, 当中的 tar 并没有整合 gzip ,所以如果你需要解压缩的话,就需要这么做:

    gzip -d testing.tar.gz
    tar -xvf testing.tar 
    第一个步骤会将文件解压缩,第二个步骤才是将数据解出来!与其它压缩程序不太一样的是, bzip2, gzip 与 compress 在没有加入特殊参数的时候,原先的文件会被取代掉,但是使 用 tar 则原来的与后来的文件都会存在

    5. cpio:
    语法:
    [root @test /root ]# cpio -covB  > [file|device]<==备份
    [root @test /root ]# cpio -icduv < [file|device]<==还原
    参数说明:  
    -o :将资料 copy 输出到文件或装置上  
    -i :将数据自文件或装置 copy 出来系统当中  
    -t :查看 cpio 建立的文件或装置的内容  
    -c :一种较新的 portable format 方式储存  
    -v :让储存的过程中文件名称可以在屏幕上显示  
    -B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes !  
       这样的好处是可以让大文件的储存速度加快(请参考 i-nodes 的观念)  
    -d :自动建立目录!由于 cpio 的内容可能不是在同一个目录内,
         如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,
         就可以自动的将需要的目录建立起来了!  
    -u :自动的将较新的文件覆盖较旧的文件!  
    范例:  
    [root @test /root]# find / -print | cpio -covB > /dev/st0  
    将搜寻到的文件存到磁带机  
    
    [root @test /root]# cpio -icduv < /dev/st0  
    将磁带机的数据还原回来!  
    
    [root @test /root]# cpio -icdvt < /dev/st0 > /tmp/content  
    将磁带机的内容(文件名而已)转存到 /tmp/content  
    
    [root @test /root]# find / -type -f | cpio -o > /tmp/root.cpio  
    [root @test /root]# cpio -i < /tmp/root.cpio  
    上面这个例子可以马上实作看看!先输出到 /tmp/root.cpio 这个文件,然后再给他还原回来!

    这个 cpio 还蛮神奇的呢!他最适用于备份的时候使用的一个指令了!为什么呢?因为他并不像 cp 一样,可以直接的将文件给他 copy 过去,例如 cp * /tmp 就可以将所在目录的所有文件 copy 到 /tmp 底下,在 cpio 这个指令的用法中,由于 cpio 无法直接读取文件,而是需要[ 每一个文件或目录的路径连同文件名一起 ]才可以被记录下来!因此, cpio 最常跟 find 这个指令一起使用了!

    这个 cpio 好像不怎么好用呦!但是,他可是备份的时候的一项利器呢!因为他可以备份任何的文件,包括 /dev 底下的任何装置文件!呵呵!所以他可是相当重要的呢!!您说是吧! 而由于 cpio 必需要配合其它的程序,例如 find 来建立档名,所以, cpio 与管线命令及命令重导向的相关性就相当的重要了!

    备份:在备份的用法当中,他可以直接跟输出到文件或者是装置当中,但是如前面说过的,你必须要配合 find 这个指令较好呦!那个 -o 表示将文件或目录输出到右边去的意思!还记得命令重导向吗?对啦!就是那个东西啰!在上面的例子中,我们将备份的数据给他 copy 到磁带机里头去!那个磁带机的装置代号就是 /dev/st0 啰!

    还原:那么如何给他反过来解开呢?呵呵!可以直接给他下达 cpio -i 就是 input 就对啦!例如上头的例子啰!这个指令可以多看看呢。



    展开全文
  • Linux下解压缩命令

    2016-01-24 20:25:09
    Linux下,很多时候我们需要对文件进行解压缩操作。...在此,对Linux下解压缩命令做一个总结。 (一)、压缩文件形式 在Windows下,压缩文件后缀常见的有".zip"、".rar"、".iso"等;而Linux下,压缩文件

    在Linux下,很多时候我们需要对文件进行解压缩操作。尤其是在获取软件源码或安装包时,常常需要对文件进行解压操作。和Windows不同,Linux下的压缩文件形式更多、更复杂,操作方式往往以命令的形式进行。在此,对Linux下解压缩命令做一个总结。


    (一)、压缩文件形式

    在Windows下,压缩文件后缀常见的有".zip"、".rar"、".iso"等;而Linux下,压缩文件的类型众多,常见的后缀如下:

    ".tar"".gz"、".tar.gz"、".tgz"、".bz2"、".tar.bz2"、".Z"、".tar.Z"、".zip"、".rar"

    总共10种压缩文件。每种压缩文件,对应的解压缩命令分别不同。


    (二)、解压命令

    各种压缩文件的解压命令分别如下:

    1、*.tar 用 tar –xvf 解压 

    2、*.gz 用 gzip d或者gunzip 解压 

    3、*.tar.gz 用 tar –xzf 解压

    4、*.tgz 同*.tar.gz一样,用 tar –xzf 解压 

    5、*.bz2 用 bzip2 d或者用bunzip2 解压 

    6、*.tar.bz2用tar –xjf 解压 

    7、*.Z 用 uncompress 解压 

    8、*.tar.Z 用tar –xZf 解压 

    9、*.zip 用 unzip 解压

    10、*.rar 用 unrar e解压 


    (三)、压缩命令

    1、*.tar

    用tar -cf命令进行压缩,例如:

    tar -cf cpfile.tar *.txt --- 表示将当前目录下所有.txt文件压缩成一个.tar文件,文件名为:cpfile.tar。

    2、*.gz

    用gzip命令进行压缩,例如:

    gzip cpfile.gz *.txt --- 表示将当前目录下所有.txt文件压缩成一个.gz文件,文件名为:cpfile.gz。

    3、*tar.gz

    用tar -czf命令进行压缩,例如:

    tar –czf cpfile.tar.gz *.txt --- 表示将当前目录下所有.txt文件压缩成一个.tar.gz文件,文件名为:cpfile.tar.gz。

    4、*tgz

    用tar -czf命令进行压缩,例如:

    tar –czf cpfile.tgz *.txt --- 表示将当前目录下所有.txt文件压缩成一个.tgz文件,文件名为:cpfile.tgz。

    5、*bz2

    用bzip2命令进行压缩,例如:

    bzip2 cpfile.bz2 *.txt --- 表示将当前目录下所有.txt文件压缩成一个.bz2文件,文件名为:cpfile.bz2。

    6、*tar.bz2

    用tar -cjf命令进行压缩,例如:

    tar –cjf cpfile.tar.bz2 *.txt --- 表示将当前目录下所有.txt文件压缩成一个.tar.bz2文件,文件名为:cpfile.tar.bz2。

    7、*.Z

    用compress命令进行压缩,例如:

    compress cpfile.Z *.txt ---表示将当前目录下所有.txt文件压缩成一个.Z文件,文件名为:cpfile.Z。

    8、*.tar.Z

    用tar –cZf命令进行压缩,例如:

    tar –cZf cpfile.tar.Z *.txt --- 表示将当前目录下所有.txt文件压缩成一个.tar.Z文件,文件名为:cpfile.tar.Z。

    9、*.zip

    用zip命令进行压缩,例如:

    zip cpfile.zip *txt --- 表示将当前目录下所有.txt文件压缩成一个.zip文件,文件名为:cpfile.zip。

    10、*.rar

    用rar a命令进行压缩,例如:

    rar a cpfile *.txt --- 表示将当前目录下所有.txt文件压缩成一个.rar文件,文件名为:cpfile.rar。




    展开全文
  • Linux常用命令

    万次阅读 多人点赞 2018-11-08 11:49:23
    目录 一、基本命令 1.1 关机和重启 1.2 帮助命令 二、目录操作命令 2.1 目录切换 cd ...2.3.3目录修改【改】mv 和 cp 2.3.4搜索目录【查】find 三、文件操作命令 3.1 文件操作【增,...

    目录

     

    一、基本命令

    1.1 关机和重启

    1.2 帮助命令

    二、目录操作命令

    2.1 目录切换 cd

    2.2 目录查看 ls [-al]

    2.3 目录操作【增,删,改,查】

    2.3.1 创建目录【增】 mkdir

    2.3.2 删除目录或文件【删】rm

    2.3.3 目录修改【改】mv 和 cp

    2.3.4 搜索目录【查】find

    三、文件操作命令

    3.1 文件操作【增,删,改,查】

    3.1.1 新建文件【增】touch

    3.1.2 删除文件 【删】 rm

    3.1.3 修改文件【改】 vi或vim

    3.1.4 文件的查看【查】

    3.2 权限修改

    四、压缩文件操作

    4.1 打包和压缩

    4.2 解压

    五、查找命令

    5.1 grep

    5.2 find

    5.3 locate

    5.4 whereis

    5.5 which

    六、su、sudo

    6.1 su

    6.2 sudo

    七、系统服务

    八、网络管理

    8.1 主机名配置

    8.2 IP 地址配置

    8.3 域名映射

    九、定时任务指令crontab 配置

    9.1 命令格式

    9.2 配置说明、实例

    十、其他命令

    10.1 查看当前目录:pwd

    10.2 查看进程:ps -ef

    10.3 结束进程:kill

    10.4 网络通信命令:

    10.5 配置网络

    10.6 重启网络

    10.7 切换用户

    10.8 关闭防火墙

    10.9 修改文件权限

    10.10 清屏

    10.11 vi模式下快捷键

    十一、Linux项目部署

    11.1 安装jdk1.8

    11.2 安装MySQL5.6

    11.2.1 上传MySQL5.6的tar包

    11.2.2 安装

    11.2.3 开机自动启动设置

    11.2.4 开启远程访问

    11.3 安装tomcat部署项目

    11.3.1 创建ucenter用户

    11.3.2 安装Tomcat

    11.3.3 部署用户管理项目

    11.4 Linux下使用FastDFS

    11.4.1 安装gcc

    11.4.2 安装libevent

    11.4.3 安装libfastcommon-master

    11.4.4 安装fastdfs

    11.4.5 配置并启动tracker服务

    11.4.6 配置并启动storage服务

    11.5 安装fastdfs-nginx-module

    11.5.1 解压

    11.5.2 修改config

    11.5.3 配置nginx与FastDFS关联配置文件

    11.6 安装Nginx的插件

    11.6.1 如果没有安装过nginx

    11.6.2 如果已经安装过nginx

    11.6.3 启动nginx

    11.6.4 设置nginx开机启动

    11.7 安装Elasticsearch

    11.7.1 新建一个用户leyou

    11.7.2 上传安装包,并解压

    11.7.3 修改配置

    11.7.4 运行

    11.7.5 错误1:内核过低

    11.7.6 错误2:文件权限不足

    11.7.7 错误3:线程数不够

    11.7.8 错误4:进程虚拟内存

    11.7.9 重启终端窗口

    11.8 安装RabbitMQ

    11.8.1 安装Erlang

    11.8.2 安装RabbitMQ

    11.8.3 设置配置文件

    11.8.4 启动、停止

    11.8.5 开启web界面管理工具

    11.8.6 设置开机启动

    11.8.7 防火墙开放15672端口

    11.9 redis安装和配置

    11.9.1 安装

    11.9.2 配置

    11.9.3 启动或停止

    11.9.4 设置开机启动


    一、基本命令

    1.1 关机和重启

    关机
        shutdown -h now        立刻关机
        shutdown -h 5        5分钟后关机
        poweroff            立刻关机
    重启
        shutdown -r now        立刻重启
        shutdown -r 5        5分钟后重启
        reboot                立刻重启

    1.2 帮助命令

    --help命令
      shutdown --help:
      ifconfig  --help:查看网卡信息
     
    man命令(命令说明书) 
      man shutdown
      注意:man shutdown打开命令说明书之后,使用按键q退出

    二、目录操作命令

    2.1 目录切换 cd

    命令:cd 目录

    cd /        切换到根目录
    cd /usr        切换到根目录下的usr目录
    cd ../        切换到上一级目录 或者  cd ..
    cd ~        切换到home目录
    cd -        切换到上次访问的目录

    2.2 目录查看 ls [-al]

    命令:ls [-al]

    ls                查看当前目录下的所有目录和文件
    ls -a            查看当前目录下的所有目录和文件(包括隐藏的文件)
    ls -l 或 ll       列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
    ls /dir            查看指定目录下的所有目录和文件   如:ls /usr

    2.3 目录操作【增,删,改,查】

    2.3.1 创建目录【增】 mkdir

    命令:mkdir 目录

    mkdir    aaa            在当前目录下创建一个名为aaa的目录
    mkdir    /usr/aaa    在指定目录下创建一个名为aaa的目录

    2.3.2 删除目录或文件【删】rm

    命令:rm [-rf] 目录

    删除文件:
    rm 文件        删除当前目录下的文件
    rm -f 文件    删除当前目录的的文件(不询问)

    删除目录:
    rm -r aaa    递归删除当前目录下的aaa目录
    rm -rf aaa    递归删除当前目录下的aaa目录(不询问)

    全部删除:
    rm -rf *    将当前目录下的所有目录和文件全部删除
    rm -rf /*    【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

    注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包

    2.3.3 目录修改【改】mv 和 cp

    一、重命名目录
        命令:mv 当前目录  新目录
        例如:mv aaa bbb    将目录aaa改为bbb
        注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行    重命名的操作

    二、剪切目录
        命令:mv 目录名称 目录的新位置
        示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面     mv /usr/tmp/aaa /usr
        注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

    三、拷贝目录
        命令:cp -r 目录名称 目录拷贝的目标位置   -r代表递归
        示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面     cp /usr/tmp/aaa  /usr
        注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不    用写-r递归

    2.3.4 搜索目录【查】find

    命令:find 目录 参数 文件名称
    示例:find /usr/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件

    三、文件操作命令

    3.1 文件操作【增,删,改,查】

    3.1.1 新建文件【增】touch

    命令:touch 文件名
    示例:在当前目录创建一个名为aa.txt的文件        touch  aa.txt

    3.1.2 删除文件 【删】 rm

    命令:rm -rf 文件名

    3.1.3 修改文件【改】 vi或vim

    【vi编辑器的3种模式】
        基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
    1) 命令行模式command mode)
          控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
          命令行模式下的常用命令:
          【1】控制光标移动:↑,↓,j
          【2】删除当前行:dd 
          【3】查找:/字符
          【4】进入编辑模式:i o a
          【5】进入底行模式::
          
    2) 编辑模式(Insert mode)
          只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
          编辑模式下常用命令:
          【1】ESC 退出编辑模式到命令行模式;
          
    3) 底行模式(last line mode)
         将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
         底行模式下常用命令:
         【1】退出编辑:   :q
         【2】强制退出:   :q!
         【3】保存并退出:  :wq

    打开文件

    命令:vi 文件名
    示例:打开当前目录下的aa.txt文件     vi aa.txt 或者 vim aa.txt

    注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。

    编辑文件

    使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。

    i:在光标所在字符前开始插入
    a:在光标所在字符后开始插入
    o:在光标所在行的下面另起一新行插入

    保存或者取消编辑

    保存文件:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:wq     保存并退出编辑

    取消编辑:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:q!     撤销本次修改并退出编辑

    3.1.4 文件的查看【查】

    文件的查看命令:cat/more/less/tail

    cat:看最后一屏

    示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
    cat sudo.conf

    more:百分比显示

    示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
    more sudo.conf

    less:翻页查看

    示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上    和向下翻页,q结束查看
    less sudo.conf

    tail:指定行数或者动态查看

    示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束  
    tail -10 sudo.conf

    3.2 权限修改

    rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。

    示例:给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------

    第一位:-就代表是文件,d代表是文件夹
    第一段(3位):代表拥有者的权限
    第二段(3位):代表拥有者所在的组,组员的权限
    第三段(最后3位):代表的是其他用户的权限

       421  421  421
    -  rw-   ---     ---

    命令:chmod +x aaa.txt
    或者采用8421法
    命令:chmod 100 aaa.txt

    四、压缩文件操作

    4.1 打包和压缩

    Windows的压缩文件的扩展名  .zip/.rar
    linux中的打包文件:aa.tar      
    linux中的压缩文件:bb.gz    
    linux中打包并压缩的文件:.tar.gz

    Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
    而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

    命令:tar -zcvf 打包压缩后的文件名 要打包的文件
    其中:z:调用gzip压缩命令进行压缩
      c:打包文件
      v:显示运行过程
      f:指定文件名
      
    示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
    tar -zcvf ab.tar aa.txt bb.txt 
    或:tar -zcvf ab.tar  *

    4.2 解压

    命令:tar [-zxvf] 压缩文件    
    其中:x:代表解压
    示例:将/usr/tmp 下的ab.tar解压到当前目录下

    示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
    tar -xvf ab.tar -C /usr------C代表指定解压的位置

    五、查找命令

    5.1 grep

    grep命令是一种强大的文本搜索工具

    使用实例:

    ps -ef | grep sshd  查找指定ssh服务进程 
    ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 
    ps -ef | grep sshd -c 查找指定进程个数 

    5.2 find

    find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。 

    find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

    使用实例:

    find . -name "*.log" -ls  在当前目录查找以.log结尾的文件,并显示详细信息。 
    find /root/ -perm 600   查找/root/目录下权限为600的文件 
    find . -type f -name "*.log"  查找当目录,以.log结尾的普通文件 
    find . -type d | sort   查找当前所有目录并排序 
    find . -size +100M  查找当前目录大于100M的文件

    5.3 locate

    locate 让使用者可以很快速的搜寻某个路径。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。如果数据库中没有查询的数据,则会报出locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory该错误!updatedb即可!

    yum -y install mlocate 如果是精简版CentOS系统需要安装locate命令

    使用实例:

    updatedb
    locate /etc/sh 搜索etc目录下所有以sh开头的文件 
    locate pwd 查找和pwd相关的所有文件

    5.4 whereis

    whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

    使用实例:

    whereis ls    将和ls文件相关的文件都查找出来

    5.5 which

    which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

    使用实例:

    which pwd  查找pwd命令所在路径 
    which java  查找path中java的路径 

    六、su、sudo

    6.1 su

    su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

    su test:切换到test用户,但是路径还是/root目录
    su - test : 切换到test用户,路径变成了/home/test
    su : 切换到root用户,但是路径还是原来的路径
    su - : 切换到root用户,并且路径是/root

    su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

    退出返回之前的用户:exit

    6.2 sudo

    sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

    进入sudo配置文件命令:

    vi /etc/sudoer或者visudo
    案例:
    允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
    hadoop  ALL=(ALL)   ALL 
    
    案例:
    只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。 
    配置文件中: 
    hadoop  ALL=NOPASSWD:  /bin/ls, /bin/cat 

    七、系统服务

    service iptables status  --查看iptables服务的状态
    service iptables start  --开启iptables服务
    service iptables stop  --停止iptables服务
    service iptables restart  --重启iptables服务
    
    chkconfig iptables off  --关闭iptables服务的开机自启动
    chkconfig iptables on  --开启iptables服务的开机自启动

    八、网络管理

    8.1 主机名配置

    [root@node1 ~]# vi /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=node1

    8.2 IP 地址配置

    [root@node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

    8.3 域名映射

    /etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用。所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的ip地址。

    [root@node1 ~]# vi /etc/hosts
    #### 在最后加上
    192.168.52.201  node1
    192.168.52.202  node2
    192.168.52.203  node3

    九、定时任务指令crontab 配置

    crontab是Unix和Linux用于设置定时任务的指令。通过crontab命令,可以在固定间隔时间,执行指定的系统指令或shell脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。

    crontab安装:

    yum install crontabs

    服务操作说明:

    service crond start   ## 启动服务 
    service crond stop    ## 关闭服务 
    service crond restart ## 重启服务

    9.1 命令格式

    crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

    参数说明:

    -u user:用来设定某个用户的crontab服务  

    file:file是命令文件的名字,表示将file做为crontab的任务列表文件

    并载入crontab。

    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前

    用户的crontab文件。

    -l:显示某个用户的crontab文件内容。如果不指定用户,则表示显示当前

    用户的crontab文件内容。

    -r:删除定时任务配置,从/var/spool/cron目录中删除某个用户的crontab

    文件,如果不指定用户,则默认删除当前用户的crontab文件。

    命令示例:

    crontab file [-u user] ## 用指定的文件替代目前的crontab
    crontab -l [-u user]  ## 列出用户目前的crontab
    crontab -e [-u user]  ## 编辑用户目前的crontab

    9.2 配置说明、实例

    命令:*   *    *   *   *   command  

    解释:分  时  日  月  周  命令

    第1列表示分钟1~59 每分钟用*或者 */1表示    

    第2列表示小时0~23(0表示0点)

    第3列表示日期1~31  

    第4列表示月份1~12  

    第5列标识号星期0~6(0表示星期天)  

    第6列要运行的命令

    配置实例:

    先打开定时任务所在的文件:
    crontab -e
    
    每分钟执行一次date命令 
    */1 * * * * date >> /root/date.txt
    
    每晚的21:30重启apache。 
    30 21 * * * service httpd restart
    
    每月1、10、22日的4 : 45重启apache。  
    45 4 1,10,22 * * service httpd restart
    
    每周六、周日的1 : 10重启apache。 
    10 1 * * 6,0 service httpd restart
    
    每天18 : 00至23 : 00之间每隔30分钟重启apache。
    0,30   18-23    *   *   *   service httpd restart
    晚上11点到早上7点之间,每隔一小时重启apache
    *  23-7/1    *   *   *   service httpd restart

    十、其他命令

    10.1 查看当前目录:pwd

    命令:pwd     查看当前目录路径

    10.2 查看进程:ps -ef

    命令:ps -ef    查看所有正在运行的进程

    10.3 结束进程:kill

    命令:kill pid 或者 kill -9 pid(强制杀死进程)           pid:进程号

    10.4 网络通信命令:

    ifconfig:查看网卡信息

    命令:ifconfig 或 ifconfig | more

    ping:查看与某台机器的连接情况

    命令:ping ip

    netstat -an:查看当前系统端口

    命令:netstat -an

    搜索指定端口
    命令:netstat -an | grep 8080

    10.5 配置网络

    命令:setup

    10.6 重启网络

    命令:service network restart

    10.7 切换用户

    命令:su - 用户名

    10.8 关闭防火墙

    命令:chkconfig iptables off

    或者:

     iptables -L;
     iptables -F;
     service iptables stop

    10.9 修改文件权限

    命令:chmod 777

    10.10 清屏

    命令:ctrl + l

    10.11 vi模式下快捷键

    esc后:

    保存并退出快捷键:shift+z+z

    光标跳到最后一行快捷键:shift+g

    删除一行:dd

    复制一行内容:y+y

    粘贴复制的内容:p

    十一、Linux项目部署

    11.1 安装jdk1.8

    先卸载open-jdk

    java -version
    rpm -qa | grep java

    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
    rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

    开始安装:
    mkdir /usr/local/src/java
    rz 上传jdk tar包
    tar -zxvf jdk-8u181-linux-x64.tar.gz

    yum install glibc.i686

    配置环境变量:
     vi /etc/profile

     在末尾行添加
      #set java environment
      JAVA_HOME=/usr/local/src/jdk8/jdk1.8.0_181
      CLASSPATH=.:$JAVA_HOME/lib.tools.jar
      PATH=$JAVA_HOME/bin:$PATH
      export JAVA_HOME CLASSPATH PATH
      
    保存退出
    source /etc/profile  使更改的配置立即生效
    java -version  查看JDK版本信息,如果显示出1.8证明成功

    11.2 安装MySQL5.6

    11.2.1 上传MySQL5.6的tar包

    创建目录:mkdir /usr/local/src/mysql5.6

    上传:MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar 到上面的目录中

    11.2.2 安装

    第一步:解压

         命令:tar -xvf MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar

    第二步:检测是否已经安装了mysql

         命令:rpm -qa | grep mysql   

         如果已经安装了,将其卸载,如:

         rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x86_64

    第三步:安装MySQL的服务端

         命令:rpm -ivh MySQL-server-5.6.34-1.rhel5.x86_64.rpm

    第四步:安装MySQL的客户端

         命令:rpm -ivh MySQL-client-5.6.34-1.rhel5.x86_64.rpm

    第五步:查看MySQL服务运行状态

         命令:service mysql status

    第六步:启动MySQL服务

         命令:service mysql start

    第七步:使用root账号登录mysql

    在安装mysql server时有句提示:

    注意:这个密码是不安全的,所有需要修改初始密码。

    1. 使用密码登录mysql账号:mysql -uroot -p
    2. 修改root密码:SET PASSWORD = PASSWORD('root');

    11.2.3 开机自动启动设置

    加入到系统服务:

    chkconfig --add mysql

    自动启动:

    chkconfig mysql on

    查询列表:

    chkconfig

    说明:都没关闭(off)时是没有自动启动。

    11.2.4 开启远程访问

    登录:

    mysql -uroot –proot

    设置远程访问(使用root密码):

    grant all privileges on *.* to 'root' @'%' identified by 'root';

    flush privileges;

    退出mysql,在centos环境下打开3306防火墙

    /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

    /etc/rc.d/init.d/iptables save

    /etc/init.d/iptables status

    11.3 安装tomcat部署项目

    准备工作:将web项目打成war包,改名为ROOT.war

    11.3.1 创建ucenter用户

    一般情况下,发布应用程序都不是使用root用户的,需要创建一个普通用户来发布程序;

    创建ucenter用户:

    useradd -d /ucenter ucenter

    设置密码:

    passwd ucenter (密码 ucenter)

    切换用户:

    su - ucenter

    11.3.2 安装Tomcat

    tomcat只要解压就可以使用。

    1、创建web目录
    mkdir /ucenter/web

    2、上传apache-tomcat-7.0.57.tar.gz

    3、解压:tar -xvf apache-tomcat-7.0.57.tar.gz

    4、重命名:mv apache-tomcat-7.0.57 itcast-usermanage

    5、启动tomcat:
         cd itcast-usermanage/bin/
         ./startup.sh 或者 sh startup.sh

    6、查看日志:
         tail -f ../logs/catalina.out

    7、查看效果 http://192.168.0.160:8080/

    发现无法访问:

    8、防火墙打开 8080 端口
         /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

         /etc/rc.d/init.d/iptables save

    9、安装成功

    11.3.3 部署用户管理项目

    1、上传usermanage.sql和ROOT.war到/ucenter/web

    2、执行数据库脚本

         cat user_manager.sql | mysql -uroot -p123456

    3、部署web程序

    3.1 删除webapps下的所有文件

         cd /ucenter/web/usermanage/webapps

         rm -rf *

    3.2 拷贝ROOT.war到webapps

         cp /ucenter/web/ROOT.war .

    3.3 重新启动tomcat

         cd ../bin/

         sh startup.sh && tail -f ../logs/catalina.out

    3.4 启动浏览器测试

    注意事项:Centos环境下部署项目中文乱码问题解决方案

        今天在一台新的CentOS机器上使用c3p0连接池操作mysql数据库出现中文乱码问题,具体表现为:查询时无中文乱码问题,写数据时中文乱码,查看了机器上数据库字符集也是UTF8,应该不会出现中文乱码才对,最后在c3p0配置文件中 jdbcUrl后加上:?useUnicode=true&amp;characterEncoding=UTF8 中文就不会乱码了。

    【C3P0配置文件】

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
      <default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
    	<property name="jdbcUrl">jdbc:mysql://localhost:3306/user_manager_yun6?useUnicode=true&amp;characterEncoding=UTF8 </property>
    	<property name="user">root</property>
    	<property name="password">root</property>
    	<property name="acquireIncrement">2</property>
    	<property name="initialPoolSize">5</property>
    	<property name="minPoolSize">1</property>
    	<property name="maxPoolSize">5</property>
      </default-config>
    </c3p0-config>

    11.4 Linux下使用FastDFS

    相关的安装包我打包到云盘上了,链接:https://pan.baidu.com/s/13NDYYil4mgLhkb5CYsc2Ww  提取码:66tn

    单节点FastDFS

    整个安装过程非常复杂,很容易出错,建议进行多次备份。

    我们这里不打算安装多台虚拟机,因此会把tracker和storage都安装在一起。

    11.4.1 安装gcc

    GCC用来对C语言代码进行编译运行,使用yum命令安装:

    yum -y install gcc

    后面会用到解压命令(unzip),所以这里可以用yum把unzip 也装一下

    yum install -y unzip zip

    11.4.2 安装libevent

    yum -y install libevent

    11.4.3 安装libfastcommon-master

    解压刚刚上传的libfastcommon-master.zip
    unzip libfastcommon-master.zip

    进入解压完成的目录
    cd libfastcommon-master

    编译并且安装:
    ./make.sh 
    ./make.sh install

    11.4.4 安装fastdfs

    tar -zxvf FastDFS_v5.08.tar.gz
    cd FastDFS
    ./make.sh
    ./make.sh install

    如果安装成功,会看到/etc/init.d/下看到提供的脚本文件:

    ll /etc/init.d/ | grep fdfs

    • fdfs_trackerd 是tracker启动脚本

    • fdfs_storaged 是storage启动脚本

    能够在 /etc/fdfs/ 目录下看到默认的配置文件模板:

    ll /etc/fdfs/

    • tarcker.conf.sample 是tracker的配置文件模板

    • storage.conf.sample 是storage的配置文件模板

    • client.conf.sample 是客户端的配置文件模板

    11.4.5 配置并启动tracker服务

    1)首先将模板文件复制

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

    2)修改复制后的配置文件:

    vim /etc/fdfs/tracker.conf 

    # 修改的内容如下:

    base_path=/项目名/tracker                 # 存储日志和数据的根目录

    3)新建目录:

    mkdir -p /项目名/tracker

    注意:关闭防火墙:

    chkconfig iptables off

    4)启动和停止

    service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop

    检查FastDFS Tracker Server是否启动成功:

    ps -ef | grep fdfs_trackerd

    设置tracker服务开机启动:

    chkconfig fdfs_trackerd on

    11.4.6 配置并启动storage服务

    1)首先将模板文件复制

    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

    2)修改复制后的配置文件:

    vim /etc/fdfs/storage.conf

    # 修改的内容如下:

    base_path=/项目名/storage                 # 数据和日志文件存储根目录 
    
    store_path0=/项目名/storage           # 第一个存储目录 
    
    tracker_server=192.168.56.101:22122       #  tracker服务器IP和端口 

    3)新建目录:

    mkdir -p /项目名/storage

    注意关闭防火墙: chkconfig iptables off

    4)启动和停止

    service fdfs_storaged start  # 启动fdfs_storaged服务,停止用stop

    设置storage服务开机启动:

    chkconfig fdfs_storaged on

    ps -ef | grep fdfs

    11.5 安装fastdfs-nginx-module

    11.5.1 解压

    tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

    11.5.2 修改config

    1)进入src目录

    cd fastdfs-nginx-module/src/

    2)编辑config

    vim config

    使用以下底行命令:

    :%s+/usr/local/+/usr/+g

    将所有的/usr/local替换为 /usr,这个才是正确的目录:

    11.5.3 配置nginx与FastDFS关联配置文件

    复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

    cp /usr/local/项目名/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
    
    vi /etc/fdfs/mod_fastdfs.conf

    修改以下配置:

    connect_timeout=10                       # 客户端访问文件连接超时时长(单位:秒)
    
    tracker_server=192.168.56.101:22122    # tracker服务IP和端口
    
    url_have_group_name=true                # 访问链接前缀加上组名
    
    store_path0=/leyou/storage            # 文件存储路径

    复制 FastDFS 的部分配置文件到/etc/fdfs 目录

    cd /usr/local/项目名/FastDFS/conf/
    cp http.conf mime.types /etc/fdfs/

    11.6 安装Nginx的插件

    11.6.1 如果没有安装过nginx

    1、安装nginx的依赖库

    yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

    2、解压安装包

    tar -zxvf nginx-1.10.0.tar.gz

    3、配置nginx安装包,并指定fastdfs-nginx-model

    cd nginx-1.10.0
    
    ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/leyou/fastdfs-nginx-module/src

    注意:在执行./configure配置nginx参数的时候,需要将fastdfs-nginx-moudle源码作为模块编译进去。

    4、编译并安装

    make && make install

    11.6.2 如果已经安装过nginx

    1、 进入nginx目录:

    cd /usr/local/项目名/nginx-1.10.0/

    2、 配置FastDFS 模块

    ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/项目名/fastdfs-nginx-module/src

    注意:这次配置时,要添加fastdfs-nginx-moudle模块

    3、编译,注意,这次不要安装(install)

    make

    4、替换nginx二进制文件:

    备份:

    mv /usr/bin/nginx /usr/bin/nginx-bak

    用新编译的nginx启动文件替代原来的:

    cp objs/nginx /usr/bin/

    11.6.3 启动nginx

    配置nginx整合fastdfs-module模块

    我们需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

    vim  /opt/nginx/conf/nginx.conf

    将文件中,原来的server 80{ ...} 部分代码替换为如下代码:

    server {
        listen       80;
        server_name  image.项目名.com;
    	# 监听域名中带有group的,交给FastDFS模块处理
        location ~/group([0-9])/ {
            ngx_fastdfs_module;
        }
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    启动nginx:

    nginx	# 启动nginx
    
    nginx -s stop	# 停止nginx
    
    nginx -s reload	# 重新载入配置文件

    # 可通过ps -ef | grep nginx查看nginx是否已启动成功

    11.6.4 设置nginx开机启动

    创建一个开机启动的脚本:

    vim /etc/init.d/nginx

    添加以下内容:

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    nginx="/usr/bin/nginx"
    prog=$(basename $nginx)
    
    NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
    
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    
    lockfile=/var/lock/subsys/nginx
    
    make_dirs() {
       # make required directories
       user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
       if [ -n "$user" ]; then
          if [ -z "`grep $user /etc/passwd`" ]; then
             useradd -M -s /bin/nologin $user
          fi
          options=`$nginx -V 2>&1 | grep 'configure arguments:'`
          for opt in $options; do
              if [ `echo $opt | grep '.*-temp-path'` ]; then
                  value=`echo $opt | cut -d "=" -f 2`
                  if [ ! -d "$value" ]; then
                      # echo "creating" $value
                      mkdir -p $value && chown -R $user $value
                  fi
              fi
           done
        fi
    }
    
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        make_dirs
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    
    restart() {
        configtest || return $?
        stop
        sleep 1
        start
    }
    
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        RETVAL=$?
        echo
    }
    
    force_reload() {
        restart
    }
    
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
        status $prog
    }
    
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac

    修改文件权限,并加入服务列表

    # 修改权限
    chmod 777 /etc/init.d/nginx 
    # 添加到服务列表
    chkconfig --add /etc/init.d/nginx 

    设置开机启动

    chkconfig nginx on

    11.7 安装Elasticsearch

    需要虚拟机JDK1.8及以上

    11.7.1 新建一个用户leyou

    出于安全考虑,elasticsearch默认不允许以root账号运行。

    创建用户:

    useradd leyou

    设置密码:

    passwd leyou

    切换用户:

    su - leyou

    11.7.2 上传安装包,并解压

    我们将安装包上传到:/home/leyou目录

    解压缩:

    tar -zxvf elasticsearch-6.2.4.tar.gz

    我们把目录重命名:

    mv elasticsearch-6.3.0/ elasticsearch

    进入,查看目录结构:

    11.7.3 修改配置

    我们进入config目录:cd config

    需要修改的配置文件有两个:

    1、jvm.options

    Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。

    编辑jvm.options:

    vim jvm.options

    默认配置如下:

    -Xms1g
    -Xmx1g

    内存占用太多了,我们调小一些:

    -Xms512m
    -Xmx512m

    2、elasticsearch.yml

    vim elasticsearch.yml

    修改数据和日志目录:

    path.data: /home/leyou/elasticsearch/data # 数据目录位置
    path.logs: /home/leyou/elasticsearch/logs # 日志目录位置

    我们把data和logs目录修改指向了elasticsearch的安装目录。但是这两个目录并不存在,因此我们需要创建出来。

    进入elasticsearch的根目录,然后创建:

    mkdir data
    mkdir logs

    修改绑定的ip:

    network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问

    默认只允许本机访问,修改为0.0.0.0后则可以远程访问

    11.7.4 运行

    进入elasticsearch/bin目录,可以看到下面的执行文件:

    然后输入命令:

    ./elasticsearch

    或者后台运行:

    ./elasticsearch -d

    11.7.5 错误1:内核过低

    修改elasticsearch.yml文件,在最下面添加如下配置: 然后重启

    bootstrap.system_call_filter: false

    11.7.6 错误2:文件权限不足

    我们用的是leyou用户,而不是root,所以文件权限不足。

    首先用root用户登录。直接输入exit命令

    然后修改配置文件:

    vim /etc/security/limits.conf

    添加下面的内容:

    * soft nofile 65536
    
    * hard nofile 131072
    
    * soft nproc 4096
    
    * hard nproc 4096

    11.7.7 错误3:线程数不够

    [1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

    继续修改配置:

    vim /etc/security/limits.d/90-nproc.conf 

    修改下面的内容:

    * soft nproc 1024

    改为

    * soft nproc 4096

    11.7.8 错误4:进程虚拟内存

    [3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

    vm.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件, :

    vim /etc/sysctl.conf 

    添加下面内容:

    vm.max_map_count=655360

    然后执行命令:

    sysctl -p

    11.7.9 重启终端窗口

    所有错误修改完毕,一定要重启你的 Xshell终端,否则配置无效。

    11.8 安装RabbitMQ

    cd /usr/local/myapp
    
    mkdir rabbitmq
    
    cd rabbitmq
    

    11.8.1 安装Erlang

    1、在线安装

    yum install esl-erlang_17.3-1~centos~6_amd64.rpm
    
    yum install esl-erlang-compat-R14B-1.el6.noarch.rpm

    2、离线安装

    依次执行命令:

    1)rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps

    2)rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps

    3)rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps

    11.8.2 安装RabbitMQ

    安装:

    rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

    11.8.3 设置配置文件

    cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example
    /etc/rabbitmq/rabbitmq.config

    开启用户远程访问

    vi /etc/rabbitmq/rabbitmq.config

    注意要去掉后面的逗号。

    11.8.4 启动、停止

    service rabbitmq-server start
    
    service rabbitmq-server stop
    
    service rabbitmq-server restart

    11.8.5 开启web界面管理工具

    rabbitmq-plugins enable rabbitmq_management
    
    service rabbitmq-server restart

    11.8.6 设置开机启动

    chkconfig rabbitmq-server on

    11.8.7 防火墙开放15672端口

    /sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
    
    /etc/rc.d/init.d/iptables save

    11.9 redis安装和配置

    11.9.1 安装

    解压

    tar -xvf redis-4.0.9.tar.gz

    编译安装

     mv redis-4.0.9 redis
     cd redis
     make && make install

    11.9.2 配置

    修改安装目录下的redis.conf文件

    vim redis.conf

    修改以下配置:

    #bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问
    protected-mode no # 把yes改成no,允许外网访问
    daemonize yes # 把no改成yes,后台运行

    11.9.3 启动或停止

    redis提供了服务端命令和客户端命令:

    • redis-server 服务端命令,可以包含以下参数: start 启动 stop 停止

    • redis-cli 客户端控制台,包含参数: -h xxx 指定服务端地址,缺省值是127.0.0.1 -p xxx 指定服务端端口,缺省值是6379

    11.9.4 设置开机启动

    1) 输入命令,新建文件

    vim /etc/init.d/redis

    输入下面内容:

    #!/bin/sh
    # chkconfig:   2345 90 10
    # description:  Redis is a persistent key-value database
    PATH=/usr/local/bin:/sbin:/usr/bin:/bin
    
    REDISPORT=6379
    EXEC=/usr/local/bin/redis-server
    REDIS_CLI=/usr/local/bin/redis-cli
    
    PIDFILE=/var/run/redis.pid
    
    CONF="/usr/local/leyou/redis/redis.conf"
    
    case "$1" in  
        start)  
            if [ -f $PIDFILE ]  
            then  
                    echo "$PIDFILE exists, process is already running or crashed"  
            else  
                    echo "Starting Redis server..."  
                    $EXEC $CONF  
            fi  
            if [ "$?"="0" ]   
            then  
                  echo "Redis is running..."  
            fi  
            ;;  
        stop)  
            if [ ! -f $PIDFILE ]  
            then  
                    echo "$PIDFILE does not exist, process is not running"  
            else  
                    PID=$(cat $PIDFILE)  
                    echo "Stopping ..."  
                    $REDIS_CLI -p $REDISPORT SHUTDOWN  
                    while [ -x ${PIDFILE} ]  
                   do  
                        echo "Waiting for Redis to shutdown ..."  
                        sleep 1  
                    done  
                    echo "Redis stopped"  
            fi  
            ;;  
       restart|force-reload)  
            ${0} stop  
            ${0} start  
            ;;  
      *)  
        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
            exit 1  
    esac

    然后保存退出

    注意:以下信息需要根据安装目录进行调整:

    EXEC=/usr/local/bin/redis-server # 执行脚本的地址

    REDIS_CLI=/usr/local/bin/redis-cli # 客户端执行脚本的地址

    PIDFILE=/var/run/redis.pid # 进程id文件地址

    CONF="/usr/local/src/redis-3.0.2/redis.conf" #配置文件地址

    2)设置权限

    chmod 755 /etc/init.d/redis

    3)启动测试

    /etc/init.d/redis start

    启动成功会提示如下信息:

    Starting Redis server...
    Redis is running...

    4)设置开机自启动

    chkconfig --add /etc/init.d/redis
    chkconfig redis on

     

    展开全文
  • linux压缩命令

    千次阅读 2010-05-12 23:42:00
    压缩文件 压缩单个文件 tar zvfc a.tar.gz a.txt压缩文件夹 tar zvfc a.tar.gz 文件夹路劲 解压缩 tar xvf FileName.tar如果是 .tar.gz文件首先需要 解压1:gunzip FileName.gz解压2:gzip -d FileName.gz ...

    压缩文件

     

    压缩单个文件

      tar zvfc  a.tar.gz  a.txt

    压缩文件夹

     tar zvfc  a.tar.gz 文件夹路劲

     

     

    解压缩

     

    tar xvf FileName.tar

    如果是 .tar.gz文件首先需要

     

    解压1:gunzip FileName.gz
    解压2:gzip -d FileName.gz

     

    在tar 一下 就行了

     

     

    其他转载

     

     

    .tar
    解包: tar xvf FileName.tar
    打包:tar cvf FileName.tar DirName
    (注:tar是打包,不是压缩!)
    ---------------------------------------------
    .gz
    解压1:gunzip FileName.gz
    解压2:gzip -d FileName.gz
    压缩:gzip FileName
    .tar.gz
    解压:tar zxvf FileName.tar.gz
    压缩:tar zcvf FileName.tar.gz DirName
    ---------------------------------------------
    .bz2
    解压1:bzip2 -d FileName.bz2
    解压2:bunzip2 FileName.bz2
    压缩: bzip2 -z FileName
    .tar.bz2
    解压:tar jxvf FileName.tar.bz2
    压缩:tar jcvf FileName.tar.bz2 DirName
    ---------------------------------------------
    .bz
    解压1:bzip2 -d FileName.bz
    解压2:bunzip2 FileName.bz
    压缩:未知
    .tar.bz
    解压:tar jxvf FileName.tar.bz
    压缩:未知
    ---------------------------------------------
    .Z
    解压:uncompress FileName.Z
    压缩:compress FileName
    .tar.Z
    解压:tar Zxvf FileName.tar.Z
    压缩:tar Zcvf FileName.tar.Z DirName
    ---------------------------------------------
    .tgz
    解压:tar zxvf FileName.tgz
    压缩:未知
    .tar.tgz
    解压:tar zxvf FileName.tar.tgz
    压缩:tar zcvf FileName.tar.tgz FileName
    ---------------------------------------------
    .zip
    解压:unzip FileName.zip
    压缩:zip FileName.zip DirName
    ---------------------------------------------
    .rar
    解压:rar a FileName.rar
    压缩:r ar e FileName.rar

    rar请到: http://www.rarsoft.com/download.htm 下载!
    解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
    [root@www2 tmp]# cp rar_static /usr/bin/rar
    ---------------------------------------------
    .lha
    解压:lha -e FileName.lha
    压缩:lha -a FileName.lha FileName
    lha请到: http://www.infor.kanazawa-it.ac.jp/.../lhaunix/下载!
    >解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
    [root@www2 tmp]# cp lha /usr/bin/
    ---------------------------------------------
    .rpm
    解包:rpm2cpio FileName.rpm | cpio -div
    ---------------------------------------------
    .tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh
    .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
    解压:sEx x FileName.*
    压缩:sEx a FileName.* FileName
    sEx只是调用相关程序,本身并无压缩、解压功能,请注意!
    sEx请到: http://sourceforge.net/projects/sex下载!
    解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
    [root@www2 tmp]# cp sEx /usr/bin/
    展开全文
  • linux系统文件解压缩命令总结

    千次阅读 2014-09-18 19:54:30
    linux系统操作中的各种压缩、解压缩命令的全面总结,方便你我的学习和工作。
  • linux tar .gz .zip 打包 解压缩 压缩命令 tar解压到指定的目录 用tar命令打包到指定的目录
  • linux 解压与压缩命令

    2013-04-28 13:55:33
    linux解压命令,linux压缩命令分别如下: tar 解包:tar xvf FileName.tar //linux解压命令 打包:tar cvf FileName.tar DirName //linux压缩命令 (注:tar是打包,不是压缩!) ————————————...
  • Linux cp scp命令使用

    千次阅读 2013-09-25 15:30:54
    scp 是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。 cp命令: - a 该选项通常在拷贝...
  • Linux下压缩的压缩命令

    千次阅读 2017-12-24 00:10:53
    tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全...# tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思tar -czf all.tar.gz *.jpg这条命令是将所有.jpg的文件打成一个tar...
  • linux打包压缩命令汇总

    千次阅读 2015-01-26 18:14:06
    tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的...
  • Linux 各种压缩、解压命令

    万次阅读 2020-03-03 10:02:38
    tar 只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。 tar.gz tgz (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理...Linux压缩比率较tgz大,即压缩后占用更小...
  • Linux 文件夹压缩解压缩命令总结

    千次阅读 2011-11-24 09:07:21
    Linux压缩文件的读取 · *.Z compress 程序压缩的档案; · *.bz2 bzip2 程序压缩的档案; · *.gz gzip 程序压缩的档案; · *.tar tar 程序打包的数据,并没有压缩过; · *.tar.gz tar 程序...
  • Linux命令scp详解及cp和scp命令的使用方法 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下...
  • 例如:打包Linux下的/etc/目录 首先我们在操作中不可打包真正的/etc/目录,我们通过拷贝命令 cp -a /etc/ /tmp/把/etc/目录拷贝至/tmp/目录下;然后打包/etc/ tar -cvf /tmp/etc.tar /etc/ 使用tar命令进行...
  • 2012-2-9 星期4 linux 常用命令:压缩解压命令 -gz 命令的英文原意:Gnu zip ...解压缩命令:gunzip 语法:gunzip选项[压缩文件] 功能描述:解压缩.gz的压缩文件 范例:gunzip file1.gz 压
  • linux下文件的压缩与解压 1、gzip/gunzip gzip/gunzip:主要是进行单个文件的压缩和解压缩命令。 示例:gzip hello.txt #执行压缩hello.txt ls hello.txt.gz #查看文件信息 gunzip hello.txt.gz #解压文件命令 2、...
  • linux 下各种解压缩命令

    千次阅读 2012-08-18 12:07:44
    大致总结了一下linux下各种格式的压缩包的压缩、解压方法。但是部分方法我没有用到,也就不全,希望大家帮我补充,我将随时修改完善,谢谢!整理:会游泳的鱼来自:www.LinuxByte.net最后更新时间:2005-2-20.tar...
  • Linux打包命令_tar tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。 常用格式: 单个文件压缩打包 tar czvf my.tar.gz file1 多个文件压缩打包 tar czvf my.tar.gz file1 file2,…(file*)(也可以...
  • 初学Linux,记录资料,以备留存,亲手测试了一部分,有的正确,不正确的也改了,没有全部测试,如有误,望大神们不吝赐教! 开发常用命令 查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件...
  • linux系统下C语言 利用线程池技术实现CP命令 压缩包包含:源代码+开发说明PPT 线程池头文件: //任务 struct task { void *(*task)(void *arg); void *arg; struct task *next; }; //线程池 typedef struct ...
  • Linux命令压缩及其他

    千次阅读 2013-12-21 21:54:10
    提供了强大的压缩、解压缩命令,常用的tar命令。 (2)在Linux中,如果要使用储存设备(硬盘、光驱、移动存储等),必须先将设备挂 载上,当设备挂载上之后,就可以把它当成一个目录来进行访问。挂载设备使用...
  • linux 文件压缩解压命令

    千次阅读 2013-05-01 19:23:12
    linux 文件压缩解压命令 01-.tar格式 解包:[*******]$ tar xvf FileName.tar 打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!) 02-.gz格式 解压1:[****...
  • Linux基本操作之gzip与bzip2压缩命令

    千次阅读 2018-09-26 17:28:00
    1、命令作用:可以对文件进行压缩、可以解开compress、zip与gzip等软件所压缩的文件。 2、选项参数 -c:(compress)将压缩的数据输出到标准输出(stdout)上 -d:(decompress)解压缩 -t :(test)可以用来...
  • linux和unix下常用解压和压缩命令

    千次阅读 2011-06-16 16:24:00
    .tar解包: tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------------------------------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:...
  • ".gz"格式是 Linux中最常用的压缩格式,使用 gzip 命令进行压缩,其基本信息如下: 命令名称:gzip。 所在路径:/bin/gzip。 执行权限:所有用户。 功能描述:压缩文件或目录。 将/etc/services复制到/tmp/目录...
  • Linux压缩打包命令

    万次阅读 2007-06-04 12:29:00
    <!--google_ad_client = "pub-0241434510974184";/* auto-http.cn 右边 ,468x60 */google_ad_slot = "0902256228";google_ad_width = 468;google_ad_height = 60;// -->tar命令 [root@linux ~]#
  • Linux文件操作高频使用命令

    万次阅读 多人点赞 2019-08-28 16:47:38
    文章目录0.新建操作:1.查看操作2.删除操作3.复制操作4.移动操作:5.重命名操作:6.解压压缩操作 0.新建操作: ...mkdir abc #新建一个...cat|head|tail命令 cat abc.txt #查看abc的内容 head -5 abc.txt #...
  • Linux压缩解压命令详解

    千次阅读 2008-11-17 23:05:00
    tar命令[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,454
精华内容 33,781
关键字:

cp压缩命令linux

linux 订阅