shell脚本命令

a=123
echo "${a}" 显示的石123
echo "$a bc" 显示 123 bc
echo "${a}bc" 显示123bc
vim 123.txt 创建一个123.txt的文档
chmod 777 123.txt 给123.txt赋权限
#!/bin/bash 申明文档类型(首行)
echo " $1" 直接打印参数 $0 是文件名称 $? 取上步执行状态码,0是成功,1是失败 $# 传递参数个数
env 查看所有的环境变量
>>插入重定向 >覆盖重定向
ls -al >>123.txt 查询的结果插入到123中
rmdir ttt >>123.txt 2>&1 不管失败和成功的信息都插入,默认1直插入成功信息
export a=123 设置a=123为环境变量
unset a 注销环境变量
/etc/passwd 查看有多少个访问用户
vi ~/.bash -history 查看使用的历史命令
bash -x ./123.txt debug执行

-eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge 大于或等于 -le 小于或等于
添加5个用户 密码为user1-user5
echo "-----add 5 users-----"for i in {1..5}; do username=user$i if useradd $username &> /dev/null; then --then代表IF开始 echo "$username"|passwd --stdin $username #脚本中通常这样比较容易修改用户密码 if [ $? -eq 0 ]; then --then代表IF开始 echo "add $username successful" else echo "$username added, change password failure " fi --fi代表if结束 else echo "add $username failure " fidone

添加5个用户 密码为user1-user5
#!/bin/bash

for i in {1..5} ; do do代表循环开始
user="user$i"
id $user >>/dev/null 2>&1 不打印信息
flag="$?"
if [ $flag -eq 0 ] ; then then代表判断开始
echo "user $user is exists!"
continue
fi fi代表判断结束
groupadd $user >>/dev/null 2>&1
useradd -g $user $user >>/dev/null 2>&1
echo "$user" | passwd $user --stdin >>/dev/null 2>&1
echo "add user $user successful!"
done

判断输入用户能否创建成功
#!/bin/bash

user=$1 取当前输入的用户

useradd $user && echo "add user successful !" ||echo "user $user exists !"

删除用户
#!/bin/bash

user=$1
userdel -r $user >>/dev/null 2>&1
echo "deluser $user successful!"

判断是普通用户还是管理员
#!/bin/bash

num=`id -u $1`
if [ $num -eq 0 ]
then
echo "user $1 is admin"
else
echo "user $1 is normal"
fi

判断用户是否和用户组相同
#!/bin/bash

groupid=`id $1 | sed -r 's@.*gid=\w+\((\w+)\).*@\1@g'`

[ $groupid == $1 ] && echo "same" || echo "nothing"

判断路径是否是文件
#!/bin/bash

if [ -f $1 ]
then
echo "$1 is a file"
else
echo "$1 is not a file"
fi

判断输入的三个数字谁最大 ./123.txt 10 7 5
#!/bin/bash

if [ $# -lt 3 ]
then
echo "wrong number args!"
kill -9 $$
fi

max=$1
min=$1
if [ $2 -gt $max ]
then
max=$2
elif [ $2 -lt $min ]
then
min=$2
fi
if [ $3 -gt $max ]
then
max=$3
elif [ $3 -lt $min ]
then
min=$3
fi
echo "max is $max min is $min"

判断输入的文件是否大于50行 ./123.txt /opt/local/aaa.txt
#!/bin/bash

number=`cat $1 | wc -l`
[ $number -gt 50 ] && echo "big file !"|| echo "small file !"

判断有多少个可访问执行用户
#!/bin/bash

bash=`cat /etc/passwd|cut -d: -f7`
count=0
for i in $bash
do
if [ $i == "/bin/bash" ]
then
count=$[$count + 1]
fi
done
echo "user count is $count !"

判断主机CPU生产商 (信息保存在/proc/cpuinfo中)
#!/bin/bash

flag=`cat /proc/cpuinfo | grep vendor_id|head -1|cut -d: -f2`

[ $flag=~GenuineIntel ] && echo "intel"||echo "AMD"

猜你喜欢

转载自blog.csdn.net/u011418530/article/details/80248406