版权声明: https://blog.csdn.net/weixin_37254888/article/details/79703931
一、Linux软件管理
-》压缩文件管理
-》常见压缩格式
-》zip/rar
-》zip/.tar.gz/.tar.bz2
-》unzip
-》tar:打包或者解包的命令
-》gzip
-》后缀:.gz
-》压缩:gzip filename
压缩以后不保留源文件
-》解压:gunzip filename.gz
-》bzip2
-》后缀:.bz2
-》不支持压缩文件夹
-》gzip打包并且压缩:tar -zcvf target.tar.gz /directory
-》解压:tar -zxvf source.tar.gz -C /target_dir
.tar.gz / .tgz
-》bzip打包并且压缩:tar -jcvf target.tar.bz2 /directory
-》解压:tar -jxvf source.tar.bz2 -C /target_dir
-》常用参数
z:压缩为gzip格式
j:压缩为bzip2格式
c:打包
x:解包
v:显示
f:档名 ,如果使用该参数,该参数必须是最后一个参数,该参数后面一定要跟文件名
t:text用于查看压缩文件中的内容
-》软件安装
-》windows上的软件类型:exe、msi、文件夹、bat(脚本)
-》Linux的软件类型:rpm、dpkg、文件夹、源码
-》rpm:Redhat系列最常见的一种软件格式
-》名称
软件名称-版本.操作系统.操作系统版本.格式
zlib-1.2.3-29.el6.i686.rpm
zlib-1.2.3-29.el6.x86_64.rpm
zlib-devel-1.2.3-29.el6.i686.rpm
zlib-devel-1.2.3-29.el6.x86_64.rpm
devel、lib、util
-》查看:qa
rpm -qa | grep java
-》安装:ivh
rpm -ivh ****.rpm
rpm -ivh Packages/zlib-devel-1.2.3-29.el6.x86_64.rpm
-》卸载:e
rpm -e zlib-devel-1.2.3-29.el6.x86_64
rpm -e --nodeps tzdata-java-2014g-1.el6.noarch java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
--nodeps:表示不考虑依赖
-》查看某个文件的安装包:qf
rpm -qf command
rpm -qf /bin/ls
-》查看某个软件的安装文件
rpm -ql
-》rpm无法解决软件安装依赖的问题
-》yum:通过安装源进行安装,自动解决依赖的问题
-》安装源=软件库(本地的、联网)
-》查看:
yum list : 查看当前yum源可安装的所有软件
-》国内的:网易163、搜狐、阿里
Centos-6-Default.repo
/etc/yum.repo.d
-》查看已安装的软件
yum list installed
-》卸载:
yum remove [-y] soft_name
-》安装:
yum install [-y] soft_name
-》文件夹
-》解压=安装
-》配置=修改文件
-》启动
-》源码
-》c/c++
-》预编译:configure
./configure --prefix=/usr
-》编译:make
-》安装:make install
-》java
-》Maven
mvn complie
二、运算符与表达式
-》环境变量
-》全局环境变量:对所有用户都生效
/etc/profile
-》用户环境变量:只对该用户生效
~/.bash_profile
-》Linux脚本中的变量
-》定义变量的格式
var=value
-》打印变量
echo ${var}
$var
-》变量类型:没有类型
a=1
a=aaaa
a="hello world"
-》预定义的变量
-》$1-$9:表示脚本的第一个到第九个参数
-》$0:表示当前脚本的名称
-》$!:表示当前进程的pid
-》$?:表示上一条命令执行的结果
0:执行成功
非0:不成功
-》$#:参数总个数
-》$@:所有参数,分割
-》$*:所有参数,整体
-》编写脚本:
-》头部:#!/bin/bash
-》内容
-》定义变量:
-》变量名称可读
-》系统变量大写
-》通配符与正则
-》通配符
*:匹配多个字符
?: 匹配单个字符
ls find cp
-》正则表达式
^:表示以什么开头
$:表示以什么结尾
.:匹配单个字符
*:匹配多个字符
.*
[]:范围
[0-9]:表示0-9之间的任意一个数字
[a-z]
[A-Z]
\:转义
-》支持的命令
grep:过滤数据行
grep 'r..t' /etc/passwd
grep '[0-9]:[0-9]' /etc/passwd
sed:用于数据行的处理
sed 's/root/roooot/g' /etc/passwd
ifconfig | grep 'inet addr' | grep -v '127.0.0.1' | sed 's/inet addr://g' | sed 's/Bc.*//g' | sed 's/ //g'
awk:用于数据列的处理
awk -F ':' '{print $1}' passwd
awk '/^root/{print $3}' passwd
-》逻辑连接符
-》并列:&&,A执行成功的情况下,B才会执行
ls /etc/passwdd && cat /etc/passwd
-》或者:||,A执行失败的情况下,B才会执行
ls /etc/passwd || cat /etc/passwd
-》没有关系:; A的结果不影响B
-》数值运算
-》中括号
$[ a+b ] $[ $a+$b]
-》圆括号
$((a+b)) $(($a+$b))
-》内置判断测试
-》字符串
= 、 != 、 \>、 \< 、 -z、 -n
[ $a = $b ]
-z : 判断是否为空,如果为空返回true,如果不为空返回false
-n:判断是否不为空,不为空返回true,如果为空返回false
-z $a
-》数值
中括号:eq nq gt lt ge le
[ $a -eq $b]
圆括号:==,!= ,>,<
-》文件判断:
-e : 判断某个文件是否存在
-f :判断是否为一个文件
-d : 判断是否为一个目录
-r :判断是否可读
-w :判断是否可写
-x : 判断是否可执行
-》表达式逻辑连接符
-a :与
-o :或
[] -a []
-》时间日期命令
-》查看时间:
date yyyy-MM-dd HH:mm:ss
date +"%Y-%M-%d"
获取昨天的日期:date -d '1 days ago' +"%Y-%m-%d"
date -d '-1 day' +"%Y-%m-%d"
-》设置时间
date -s "YYYY-MM-dd HH:mm:ss"
三、shell脚本的开发
-》批处理
-》自动化执行
-》开发:
-》头部
#!/bin/bash
-》内容
-》变量
-》循环
for
while
-》判断
if
case
-》函数
-》退出
exit
-》执行:
-》执行文件:./filename.sh
-》文件必须有可执行权限
-》必须写头部
-》通过命令执行文件
sh
bash
-》for循环
for 条件
do
exec command
done
for((i=1;i<y;i++))
do
exec command
done
-》判断
if []
then
exec
elif []
elif []
else
fi
case 变量 in
value1)
exec command1;;
value2)
exec command;;
*)
exec command;;
esac
四、Linux定时任务
—》方便定时去执行Linux任务
-》安装crontab
-》编辑定时任务:crontab -e
-》格式
* * * * * command/shell
分 时 日 月 周
00-59 00-23 1-31 1-12 0-7
-》特殊情况
每2小时:* */2 * * *
每天3,4,5点执行:00 3,4,5 * * *
每天3到5点执行:* 3-5 * * *
-》删除定时任务
crontab -e 删除对应的任务即可
crontab -r :删除所有定时任务