软件包管理
压缩/解压
- 压缩:指通过某些算法,蒋文件尺寸进行相应的缩小,同时不损失文件的内容
- 打包:指将多个文件(或目录)合并成一个文件,方便传递或部署。
- linux系统中常见压缩文件后缀
- *.tar
- *.tar.gz
- *.gz
- *.tar.bz2
- *bz2
- linux系统的后缀名没什么作用,但对于压缩文件最好还是带上后缀名,因为Linux支持的压缩算法太多,所以加上后缀名也是为了给自己一个提示。
gzip
- 可以解开compress、zip与gzip等软件所压缩的文件
- 命令
- -c 将压缩的数据输出到标准输出(stdout)上
- -d 解压缩
- -t 可以用来检验一个压缩文件的一致性,看看文件有误错误
- -v 可以显示出源文件/压缩文件的压缩比等信息
- -(1,2…9)压缩等级,1最快,但是压缩比最差,9最慢,但是压缩比最好,默认是6
- -l 查看压缩文件的压缩比: gzip -l *.gz
- 在保证文件不丢失的前提下压缩文件
gzip -c install.log > install.log.gz
- 利用数据崇道乡的方式将数据输入至一个新的文件中
bzip2
- 在比较压缩比的前提下,gzip是为了取代compress并提供更好的压缩比,那么bzip2则是为了取代gzip并提供更佳的压缩比而来的。
- 选项
- -c 将压缩的过程产生的数据输出到标准输出(stdout)
- -d 解压缩的参数
- -k 保留源文件,而不会删除源文件
- -f 强制压缩
- -z 压缩的参数(有无均可)
- -v 可以显示出源文件、压缩文件的压缩比等信息
- -(1,2,…9)与gzip同样的,都是在计算压缩比的参数,-9最佳,-1最快
- 案例1
- 在保证源文件不丢失的前提下进行压缩,并显示压缩比信息
- bzip2 -kv install.log
- 因为bzip2本省由一个保留源文件的选项,所以并不需要使用数据重导向功能
- 案例2
- 在案例1的基础上完成压缩,因为已有压缩文件,要求覆盖,并要用最佳的压缩比进行压缩
- bzip2 -9kvf install.log
- 如果不加f选项,那么会提示压缩文件已存在,所以会拒绝完成压缩任务。
查看纯文本的压缩文件内容的命令
- zcat 用来查看gzip压缩文本文件的内容
- bzcat,用来查看bzip2压缩文本文件的内容
打包与解包
- tar用来打包/解包的命令,可以配合一些压缩算法来使用。例如gzip、bzip2
- 参数
- -c 建立打包文件
- -t 查看打包文件的内容含有哪些文件
- -x 解打包或解压缩的功能,可以搭配-C到指定目录解开
- -j 通过bzip2的支持进行压缩/解压,此时
- -z 通过gzip的支持进行压缩/解压,此时文件最好为*.tar.bz2
- -v 在压缩/解压的过程中,将正在处理的文件名显示出来
- -f filename -f后面跟处理后文件的全名称(路径+文件名+后缀名)
- -C目录 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
- -p 保留备份数据的原本权限与属性,常用语备份(-c)重要的配置文件
- exclude=FILE 在压缩的过程中,不要将那些文件打包
- 注意:-c,-t,-x不可同时出现在遗传指令列中
打包并压缩
- tar -zcvf linux.tar.gz ./linux 表示用gzip算法把当前目录下的linux目录 压缩成linux.tar.gz文件
- tar -jcvf linux.tar.bz2 ./linux 表示用bzip2算法把当前目录下的linux目录 压缩成linux.tar.bz2文件
- tar -zcvf /home/linux.tar.gz ./linux 表示用gzip算法把./linux文件或文件夹打包并压缩到/home/linux.tar.gz
解压缩
- tar -zxvf linux.tar.gz 表示通过gzip的算法解压一个压缩文件(在当前目录解压)
- tar -jxvf /temp/tar/linux.tar.bz2 表示通过bzip2算法解压一个其他目录的压缩文件到当前目录
- tar -zxvf linux.tar.gz -C /home 表示通过gzip算法压缩一个文件到 /home目录中去
- tar -jxvf /tmp/tar/linux.tar.bz2 -C /home 表示用过bzip2算法解压一个其他目录下的压缩文件到指定目录中
RPM软件包管理
rpm的安装
- -i 安装
- -v 啰嗦模式
- -h 进度条
- rpm -ivh package_name(可以跟多个rpm包,中间用空格隔开)
- 案例
- rpm -ivh http://网络路径/package.rpm
rpm的查询
- -q 仅查询某个软件是否安装
- -qa 查询本机上安装所有软件
-RPqi 列出该软件的详细信息,包含开发商、版本和说明等 - -ql 列出该软件所有的文件与目录所在完整文件名
- -qc 列出该软件的所有配置文件
- qd 列出该软件的所有说明文件、
- qR 列出和该软件有关的相依关键所含的文件
- qf 由后面接的文件名,找出该文件属于哪一个已安装的软件
rpm的卸载
rpm -e 查询到的软甲名称
- 例如:想要卸载jdk
- 需要先执行rpm -qa | grep jdk 查看jdk的完整名称
- rpm -e jdk1.8.0_111-1.8.0_111-fcs.x86_64
rpm的升级
- rpm -Uvh <package_name> 不关当前系统是否安装已经按照那个了该软件都升级到指定的最新版本
- rpm -Fvh <package_name> 仅在系统中安装了该软件后,才会更新到用户指定的最新版本
yum
- 可以帮助开发人员一次性解决软件的下载、以来、安装等问题
- install 安装
- remove 移除
- update 升级
- -y 表示在执行安装、升级、移除的过程中出现的yes/no均以yes执行
- yum install lrzsz -y 安装远程传输软件
Shell基础
什么是shell
- 用户与系统交互的工具,也是一个命令解释器,负责将用户的指令告诉系统应该调什么应用程序
- bash属于传统shelll的一个增强版。
- 环境变量对bash的影响,如果遇到command not found的情况下,表示两种情况,一个是命令输入错误,另外一种是环境变量出现问题。
变量规则
- 变量与变量之间用等号连接,不允许出现空格
- 变量名称只能是英文字母,数字下划线,但开头不能是数字
- 变量的内容中的空格需要单、双引号括起来才能使用
- 单引号:该引号中的内容会被当做文本(java中的string类型)来使用,例如,单引号的变量挥别当做字符使用。例如var=‘lang is $LANG’
- 双引号:该银海中的内容会保持其原本你的属性来使用,例如,双引号中的变量依然是变量。例如:var=“lang is $ANG”
- 可用转义字符""将特殊符号(如$、\、!等)变为一般字符
变量的读取和设置
- 读取
- echo $变量
- 例如
echo $LOGNAME
- 读取变量的另外一种格式:
echo ${LOGNAME}
- 通常来说大写的就是由系统内建的,用户自动以的通常使用小写
- 通过export这个关键来设置的
- 变量的内容由命令来提供,使用$(其他命令)
- 变量增加额外内容
version=$(uname)
version=$version-$(uname-p)
- echo $version
- 取消变量的设置:
unset version
- 如果取消的是系统环境变量需要去修改/etc/profile文件的内容,否则重启之后变量依然存在
- 把命令的结果定义成一个变量
- cmd=$(date+%F)
- cmd=`date+%F`
- 全局变量一般都为大写。例如,环境变量
- 定义变量的两种形式
- $(命令)新手推荐
- `命令`
- 注意
- 在linux系统中,如若变量和其他字符组成型的变量就必须给变量加上大括号,否则容易出错
- 例如
tar -zcvf etc_${fileName}
tar.gz /etc/
数据重定向
- 将某个命令执行后应该要出现在屏幕上的数据给他传输到其他地方,例如传输到文件或是其他命令。
- 标准输入(sddin): 编号为0
- 标准输出(stdout): 编号为1
- 标准错误输出(stderr): 编号为2
- echo $?:此命令可以用来显示命令的执行结果
-
:表示覆盖的方式
-
: 表示最佳的方式
管道流
前面命令的输出会作为后面命令的输入。
全局查找
- 命令格式
- find 路径 条件 名字
命令 | 解释 |
---|---|
find/ -name java | 按文件名查找java |
find/ -size 0 | 按大小查找为0的文件 |
find/ -perm 755 | 按照文件权限来查找文件 |
find~ -user root | 按照文件所有者来查找。次命令表示在%HOME下面面查找属于root的条件 |
find/ -group root | 按照文件所属的组来查找文件 |
find/ -mtime -5 | 查找5天之内修改的文件 |
find/ -mtime +5 | 查找5天以前修改的文件 |
find/ -nogroup | 查找没有属组的文件 |
find/ -type | 查找某一个类型的文件(可读,可写,可执行) |
find /etc -type d | 表示在/etc查找所有目录 |
!-type d | 表示查找非目录文件 |
grep: 文件检索工具(全面搜索正则表达式并把行打印出来)
命令 | 解释 |
---|---|
-b–byte–offset | 打印匹配行前面打印该行所在的块号码 |
-c,–count | 只打印匹配的行数,不显示匹配的内容 |
-f File,–file=File | 从文件中提取模板。空文件中包含0个模板,所以什么都不匹配 |
-h,–no-filename | 当搜索多个文件时,不显示匹配文件名前缀 |
-i, --ignore-care | 忽略大小写差别 |
-q, --quiet | 取消显示,只返回退出状态,0则表示找到了匹配的行 |
tail: 文件增长监视
- tail -F filename 一般用于日志文件或者程序启动时的观测