shell编程工具完整免费版(119软件安装)
软件包
1、bin文件.bin bin直接运行就是安装
2、rpm包 已经编译之后的应用程序。
3、源码压缩包
安装软件的步骤:
1、检查是否已经安装
rpm -qa | grep jdk
2、下载软件包
3、安装
依赖 rpm不能解决安装过程中的依赖问题, yum可以解决
解决依赖问题
java中通过maven解决
linux中通过yum解决
yum在下载目标程序的同时,会将依赖程序一起下载
rpm安装:1、安装rpm -i /PATH/TO/PACKAGE_FILE
-h: 以#显示进度;每个#表示2%;
-v: 显示详细过程
-vv: 更详细的过程
rpm -ivh /PATH/TO/PACKAGE_FILE
--nodeps: 忽略依赖关系;
shell编程:脚本编程脚本:命令的堆砌。
shell :弱类型、 解释型语言
解释器:bash
脚本的执行方法一 ./filename
方法二 bash
bash -n shell文件 :检查文件是否有语法错误。
bash –x shell 文件 :debug 执行文件
变量bash的变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量:bash内置的用来保存某些特殊数据的变量。(也叫系统变量)
本地变量:只属于某一个bash的变量。
var_name=值
作用域:整个bash进程
局部变量:
local var_name =值,
作用域:当前代码段。
环境变量:
export 名字=值
作用域:当前的shell和其shell。
注意:脚本在执行时都会启动一个子shell进程:
命令行中启动的脚本会继承当前shell环境变量。
系统自动启动脚本(非命令行启动):则需要自我定义环境变量。
位置变量: 用于 脚本执行的参数,$1 表示第一个参数,以此类推
$1,$2….
特殊变量:
$? :上一个命令的执行状态返回值。 0表示成功 非0表示不成功
$# 传递到脚本的参数个数
$* 传递到脚本的参数,与位置变量不同,此选项参数可超过9个
$$ 脚本运行时当前进程的ID号,常用作临时变量的后缀,如 haison.$$
$! 后台运行的(&)最后一个进程的ID号
$@ 与$#相同,使用时加引号,并在引号中返回参数个数
$- 上一个命令的最后一个参数
$? 最后命令的退出状态,0表示没有错误,其他任何值表明有错误
撤销变量:
unset 变量名
查看变量
查看shell中变量:
set 命令
查看shell中的环境变量
printenv
env
export
引用变量:
${变量名},一般可以省略{} echo "${AA}s" 加了{}可以在后面加东西
单引号:强引用,不作变量替换
双引号:弱引用,做变量替换
反引号:``命令替换 echo "dir is `pwd`"
程序返回值:
执行结果
执行状态,$? : 0:表示正确,1-255:错误
输出重定向:
>覆盖重定向
>> 追加重定向
2> 错误覆盖重定向
2>>错误追加重定向
&> 全部重定向
条件判断:条件表达式:
1. [ expression ]
1. test expression
整数比较:字符串的比较用==
-eq : 比如:[ $A –eq $B ]
不等于 -ne ,大于 -gt , 小于 -lt, 大于等于 -ge, 小于等于-le
命令的逻辑关系:
在linux 中 命令执行状态:0 为真,其他为假
逻辑与: && 前面一个成立才执行后面一个
第一个条件为假时,第二条件不用再判断,最终结果已经有;
第一个条件为真时,第二条件必须得判断;
逻辑或: || 前面一个不成立才执行后面一个
逻辑非: !
命令执行的状态 的逻辑关系
实例:
新增用户并且设置用户密码,密码和用户名一致
两层逻辑判断
求三个数的最大值
控制结构:If 条件 ;then
语句
elif 条件 ; then
语句
else
语句
fi
-a : 逻辑与,并且 : if [ $# -gt 1 –a $# -lt 3 –o $# -eq 2 ] ; then
-o :或者
根据输入的用户名判断是管理员还是普通用户
根据历史记录数提示:
算术运算1. let 算术运算表达式
let C=$A $B
2、$[算术表达式]
C = $[$A $B]
3、$((算术表达式))
C=$(($A $B))
1. expr 算术表达式 ,注意:表达式中各操作数及运算符之间要有空格。而且要使用命令引用
C=`expr $A $B`
练习:给定一个用户,获取其密码警告期限,然后判断用户密码使用期限是否已经小于警告期限,如果小于,则是显示"WARN" ,否则显示密码还有多少天到期。
测试方法:
[ 表达式 ]
[[ 表达式 ]]
test 表达式
INT1=33
INT2=32
[ $INT1 -eq $INT2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2
测试文件:[ ] 需要中括号
-e FILE :测试文件是否存在
-f FILE :测试文件是否为普通文件
-d FILE :测试文件是否为目录
-r 读权限
-w 写权限
-x 可执行权限
字符串测试:== 等号两端需要空格
!=
-n string : 判断字符串是否为空
-s string : 判断字符串是否不空
练习: 判断当前主机的CPU生产商,(其信息保存在/proc/cupinfo文件中)。
循环:for循环
进入条件,退出条件
for 变量 in 列表 ; do
语句
done
比如: for I in 1 2 3 4 5 ;do
语句
done、
如何生成列表:
1、{1..100}
2、seq [起始数] [跨度数] 结束数
3、ls /etc 文件列表
练习:给定三个用户名,将此些用户的帐号信息提取出来,后放入/tmp/test.txt文件中,并给定行号。在行首。
练习:依次向/etc/passwd中的每个用户问好:hello 用户名,并显示用户的shell:
while 循环
格式一
while 条件;do
语句
[break]
done
格式二 死循环
while true
do
语句
done
格式三 死循环
while :
do
语句
done
格式四 死循环
while [ 1 ]
do
语句
done
格式五 死循环
while [ 0 ]
do
语句
done
case 语句case 变量 in
value1)
语句
;;
value2)
语句
;;
*)
语句
;;
esac
change –m 10 root
找出最大文件
ping
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com