首页 > 代码库 > shell基础使用笔记

shell基础使用笔记

创建10用户user1-user10;
[root@mini ~]#  vim user.sh
#!/bin/bash #注释为bash
for((i=1;i<=10;i++))#条件
do        #动作
  useradd user$i  # 添加用户,$i为变量(i=i+1,一直执行到i<=10)  
  echo "user$i" | passwd --stdin user$i  #打印出来,创建用户密码同用户名一致

  echo "jiejie" | passwd --stdin user10#给用户user10密码为jiejie;
done #完成

[root@mini ~]# vim file.sh
#!/bin/bash
touch file{10..19}#创建10个空文件file10-file19


打印九九乘法表
[root@mini ~]# vim Multiplicationtable.sh
#!/bin/bash
for((i=1;i<=9;i++))#条件语句

   do
     for((j=1;j<=$i;j++))#条件语句
        do
            echo -e -n "$j*$i=$[$i*$j]\t"#显示以行为首
        done
   echo""
   done


[root@mini ~]# vim passwd.sh
#!/bin/bash
read -p "please input your password >" num #交互式
echo "your password $num"

每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
[root@mini ~]# mkdir /stats; touch memory.txt
[root@mini ~]# crontab -e
1 */2 * * * grep -E "^S" /proc/meminfo >> /stats/memory.txt


写一个脚本,使用ping命令探测192.168.0.1-192.168.0.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
#!/bin/bash
ipaddr="192.168.0."
for i in {1..254}
do
   ping -c 1 $ipaddr$i &> /dev/null;
   if [ $? -eq 0 ]
   then
       echo -e "\e[1;32m$ipaddr$i\e[0m"
   else
       echo -e "\e[1;41m$ipaddr$i\e[0m"
   fi
done
echo选项:
使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;


read选项

-p:指定读取值时的提示符;

-t:指定读取值时等待的时间(秒)




shell基础使用笔记