shell小结和一些linux常用命令

常用语法

头 #!/bin/bash
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

数值对比

less great than equal
-eq 测试两个整数是否相等
-ne 测试两个整数是否不等
-gt 测试一个数是否大于另一个数
-lt 测试一个数是否小于另一个数
-ge 大于或等于
-le 小于或等于

表达式

[ expression ] 括号两端必须要有空格
[[ expression ]]
&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错 [ ] 用 -a -o

与或非

-a: and
-o: or
!: 非
逻辑与:&&
逻辑或:||

字符串比较

== 等于 两边要有空格

判断if

// 单条件
if [ expression ];then
    statement1
    statement2
    .......
fi
// 双条件
if 判断条件;then
    statement1
    statement2
    .....
    else
    statement3
    statement4
fi
// 多条件
if [[ 判断条件 ]];then
	statement1
    statement2
elif [[ 判断条件 ]];then
	statement1
    statement2
elif [[ 判断条件 ]];then
	statement1
    statement2
else
	statement1
    statement2
fi

命令

grep

shell脚本Demo

创建新用户并 初始化密码

$? : 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)

> 覆 盖 方 式 将 正 确 错 误 输 出 覆 盖 到 目 标 文 件 , > 覆盖方式将正确错误输出覆盖到目标文件 , >>>追加方式将正确错误输出覆盖到目标文件
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”

#!/usr/bin/bash
read -p "Please input a username: " user
id $user &>/dev/null
if [ $? -eq 0 ];then
  echo "user $user alreafy exist"
else
  useradd $user &>/dev/null
  echo "123456" | passwd --stdin $user &>/dev/null
  if [ $? -eq 0 ];then
    echo "user $user create successful"
  else
    echo "user $user create failed"
  fi  
fi 

查看系统状态

grep 正则表达式 filename
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -, grep 指令会从标准输入设备读取数据(管道)。awk 也是

.匹配字符 ^ 匹配开头 $匹配结束

awk ‘{[pattern] action}’ {filenames} # 行匹配语句 awk ‘’ 只能用单引号

// 每行按空格或TAB分割,输出文本中的1、4项
awk '{print $1,$4}' 

awk -F 指定分割符号

// 每行用,分割,输出文本中的1、4项
awk -F,  '{print $1,$2}'
awk -F ',' '{print $1,$2}'

awk ‘NR2’
NR - Number of Record - 当前处理的行是第几行 一个换行符算一行
FNR - File Number of Record 当后面接多个文件时 。 当前文件的第n行

awk 'NR==2{print $2}'

正则表达式

// [G ]+ 意思是匹配 G或者空格中的任意一个  +代表数量,可以是GGG.... 或者空格空格空格
// (AB)+ 意思是匹配 AB  +代表数量,可以是ABABABAB 不是任意指定了。。

df -h|grep /$|awk -F '[G ]+' '{print $1 $3}'

```powershell
#!/usr/bin/bash
System=$(hostnamectl |grep "System"|awk -F ':' '{print $2}')
Kernel=$(hostnamectl |grep "Kernel"|awk -F ':' '{print $2}')
vt=$(hostnamectl |grep "Virtualization"|awk -F ':' '{print $2}')
static_Hostname=$(hostnamectl |grep "Static hostname"|awk -F ':' '{print $2}')
#Domain_Hostname=$(hostnamectl |grep "Transient"|awk -F ':' '{print $2}')
Network_Total=$(ls /etc/sysconfig/network-scripts/|grep ifcfg|wc -l)
Network_Sum=$(ls /etc/sysconfig/network-scripts/|grep ifcfg|awk -F '-' '{print $2}'|xargs)
Network_ens33=$(ifconfig ens33|awk 'NR==2{print $2}')
Network_W=$(curl -s icanhazip.com)

echo "当前系统版本是:$System"
echo "当前内核版本是:$Kernel"
echo "当前虚拟平台是: $vt"
echo "当前静态主机名是:$static_Hostname"
#echo "当前动态主机名是:$Domain_Hostname "
echo "当前总网络IP又多少:$Network_Total"
echo "当前网卡名称分别是:$Network_Sum "
echo "当前ens33网卡IP地址是:$Network_ens33"
echo "当前外网IP地址是:$Network_W"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值