Linux基础(四)

Linux基础(四)

一、文件压缩和打包
  1.gzip命令(应用广泛):可以解开compress,zip与gzip等软件所压缩的文件
   -c 将压缩的数据输出到标准输出(stdout)上
   -d 解压缩
   -t 可以用来检验一个压缩文件的一致性,看看文件有无错误
   -v 可以显示出原文件/压缩文件的压缩比的等信息
   -(1,2,…,9)压缩等级,1最快,但是压缩比较差;9最慢,但是压缩比最好,默认是6
   -l 查看压缩文件的压缩比:gzip -l *.gz
   eg:
    压缩:gzip -v install.log
    解压缩:gzip -d install.log.gz
    注意这方式无论压缩还是解压缩源文件都将不再存在
    gzip -c install.log直接输出到终端上
     gzip -c install.log > install.log.gz可以保留原文件并且可以将压缩文件之间改名
   2.zcat查看压缩文件内容
    zcat .gz 查看全部内容
    zcat .gz|head -n 查看前n行
    cat可以读取纯文本文件,那个zcat则可以读取纯文本文件被压缩后的压缩文件
   3.bzip2命令
    -c 将压缩的过程产生的数据输出到标准输出(stdout)
    -d 解压缩的参数
    -k 保留源文件,而不会删除原始的文件
    -z 压缩的参数
    -v 可以显示出原文件/压缩文件的压缩比等信息
    -(1,2,…,9)与gzip同样的,都是在计算压缩比的参数
    eg:
     压缩bzip2 -z install.log//删除源文件
      bzip2 -zk install.log//保留源文件
     解压bzip2 -d install.log.bz2//删除源文件
      bzip2 -dk install.log.gz2//保留源文件
   4.文件打包tar命令
    -c 建立打包文件
    -t 查看打包文件的内容含有哪些文件
    -x 解打包或解压缩的功能,可以搭配-C大写在特定到特定目录打开
    -j 通过bzip2的支持进行压缩/解压缩:此时文件最好为
.tar.gz2
    -z 通过gzip的支持进行压缩/解压缩:此时文件最好为
.tar.gz
    -v 在压缩/解压缩的过程中,将正在处理的文件名显示出来
    -f filename:-f 后面跟处理后文件的全名称(路径+文件名+后缀名)
    -C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以用这个选项
    -p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
    --exclude=FILE:在压缩的过程中,不要将那些文件打包
    -c -t -x不可同时出现在一串指令中

tar常用的指令组合
    1.打包和压缩
     tar -zcv -f [/路径/]filename.tar.gz被压缩的文件或目录
     tar -jcv -f [/路径/]filename.tar.bz2被压缩的文件或目录
    2.解压
     tar -zxv -f[/路径/]filename.tar.gz
     tar -jxv -f[/路径/]filename.tar.bz2
    解压到指定目录
     tar -zxv -f[/路径/]filename.tar.gz -C 指定目录
     tar -jxv -f[/路径/]filename.tar.bz2 -C 指定目录
     filename前带路径表示该路径下的,反之表示当前目录下
     查询shells文件在压缩包中是否存在 tar -ztv -f [/路径/]filename.tar.gz|grep ‘shells’
     仅解压出shells文件 tar -zxv -f etc01.tar.gz etc/shells
二、rpm安装软件
   1.安装
    rpm -ivh package_name
    选项与参数
     -i:install的意思
     -v 查看更细部的安装信息画面
     -h 以安装信息列显示安装进度
    安装多个rpm包 rpm -ivh a.rpm b.rpm
    安装网上某个位置rpm包 rpm -ivh http://website.name/path/pkgname.rpm
    小贴士:rz:从本机到虚拟机拷贝软件 sz从linux虚拟机到本机,如果输入rz提示命令没找到那么没有安装lrzsz程序,访问http://rpmfind.net/linux/rpm2html/serach.php?query=lrzsz 下载lrzsz-0.12.21-15.x86_64.rpm
    2.升级与更新
     rpm -Uvh <package_name> -Uvh后面接的软件如果没有安装过,系统会直接安装,若后面接的软件安转过但版本较旧,则更新至新版
     rpm -Fvh <package_name> -Fvh如果后面接的软件并未安装到linux系统上,则该软件不会被安装,只有已安装的软件才会被升级
    3.rpm查询
     rpm在查询的时候,其实查询的地方是在/var/lib/rpm这个目录下的数据库文件
     -q 仅查询,后面接的软件名称是否有安装
     -qa 列出所有的已经安装在本机Linux系统上面所有软件名称
     -qi 列出该软件的详细信息,包含开发商,版本和说明等
     -ql 列出该软件所有的文件与目录所在完整文件名
     -qc 列出该软件的所有配置文件
     -qd 列出该软件的所有说明文件
     -qR 列出和该软件有关的相依软件所含的文件
     -qf 由后面接的文件名,找出该文件,属于哪一个已安装的软件,查询某个RPM文件内含有的信息
     -qp[icdlR]注意 -qp后面接的所有参数以上面说明一致,但用途仅在与找出某个RPM文件内的信息,而非已安装的软件信息
     eg:
      查看是否安装jdk rpm -qa|grep jdk
      查找所有凶已经安装的包,前四个 rpm -qa|head -n 4
      查询lrzsz所包含的文件及目录 rpm -ql lrzsz
      查看安装软件的相关信息 rpm -qi jdk1.8.0_111-1.8.0_111-fcs.x86_64
      列出jdk的配置文件 rpm -qc jdk1.8.0_111-1.8.0_111-fcs.x86_64
      列出说明文件 rpm -qd apr
      查看需要依赖 rpm -qR apr
    4.rpm检查
     找出有关的软件名 rpm -qa|grep apr
     卸载软件 rpm -e apr
三、yum安删更软件
  1.配置epel
   1.确认版本 cat /etc/redhat-release
   2.下载epel的rpm安装包 
   wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
   3.安装 rpm -ivh
   4.更新yum源 yum repolist
  2.yum查询参数
   serach 查询某个软件名称或是描述的关键字
   list 列出目前yum所管理的所有软件名称与版本类似 rpm -qa
   info 同上,格式不太一样,不过有限类似 rpm -qai的执行结果
   eg:
    查找jdk相关的软件包 yum search jdk
    查看beakerlib软件包功能 yum info beakerlib
    列出yum服务器上提供的所有软件的详细信息20条  yum info|head -20
    列出yum服务器上面提供的所有软件名称100条 yum list|head -100
    列出目前服务器上可供本机进行升级的软件有哪些 yum install updates
    列出目前服务器上xz.x86_64可更新版本 yum list updates|grep xz.x86_64
   3.yum安装/升级/卸载软件
    yum [install|update|remove] 软件名
    install 后面要安装的软件
    update 后面接要升级的软件,若要升级整个系统就直接update即可
    remove:删除某个软件时,依赖于该软件并已经安装到系统中的其他软件或者包,会被一并删除
   4.yum安装hadoop分布式软件
    yum list|grep hadoop 发现没有需要在/etc/yum.repos.d下自己配置repo文件 http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo
   5.创建本地yum源
    1.rpm -qa|grep httpd检查是否有web服务器,如果没有则安装
    2.创建本地web服务yum intall httpd
    3.安装自带工具:yum install yum-utils createrepo
    4.在/var/www/html下执行 reposync -r cloudera-cdh5
    5.通过http://ip:port项目名来访问本地yum源
    6.最后修改/etc/yum.repos.d/xxx.repo 文件中的baseurl换成本地地址
四、shell基础
  1.变量读取
   1.通过echo读取
    命令格式:echo $ variable
    eg:
     读取登陆用户名:echo $ LOGNAME
     读取用户home目录:echo $ HOME
     读取当前系统默认的shell:echo $ SHELL
    2.另一种格式 echo $ {LOGNAME}
   2.环境变量
    1将普通变量变为环境变量
     1.export 变量名=值
     2.变量名1=值1 变量名2=值2 export 变量名1 变量名2
   3.局部变量的设置规则
    1.变量与变量内容以一个等号"=“链接(name=value)
    2.等号两边不能直接接空格符
    3.变量名称只能是英文字母,数字,下划线,但开头不能是数字
    4.变量内容若有空格符可使用双引号或单引号将变量内容结合起来
     1.双引号中的特殊字符保有原本的特性
     2.单引号中的特殊字符仅为一般字符
    5.可用转义字符”"将特殊字符变为一般字符
    6.把一个命令定义为一个变量
     1.version= $ (uname)
     2.cmd=date+%F
    7.数据重定向
     将某个命令行执行后应该要出现在屏幕上的数据,给他传输到其他地方,例如传输到文件或是其他命令
     执行命令时候会有标准输出和标准错误输出
     标准输出是指命令执行之后,传回正确信息的输出目标
     标准错误输出是命令执行失败后,所传回错误信息的输出目标
     标准输入(stdin):编号为0
     标准输出(stdout):编号为1
     标准错误输出(stderr):编号为2
     1>:以覆盖的方法,将正确的数据输出到文件;
     1>>:以累加的方法,将正确的数据输出到文件;
     2>:以覆盖的方法,将错误输出的数据输出到文件;
     2>>:以累加的方法,将错误输出的数据输出到文件;
    8.命令执行判断
     $ ?:命令回传值
     cmd1&&cmd2:若cmd1执行完毕且正确执行( $ ?=0),则开始执行cmd2,若cmd1执行完毕且为错误( $ ?≠ 0),则cmd2不执行。
     ||:若cmd1执行完毕且正确执行( $ ?=0),则cmd2不执行。
     若cmd1执行完毕且为错误($ ?≠0),则开始执行cmd2
     举例:如果/tmp/test存在,则创建/tmp/test/jinxf
     ls /tmp/test && touch /tmp/test/jinxf

猜你喜欢

转载自blog.csdn.net/qq_38019655/article/details/83869007