以前记录的学习日志,做个记录,以资鼓励学习:
#批量自动 增加用户---------------------useradd.sh
#!/bin/bash
#program : this is program for adduser batch
accountfile=accountinfo.txt
cat /dev/null > $accountfile
test -e "accountfile" && rm -f "$accountfile"; touch "$accountfile" || touch "#accountfile"
read -p "Please input your majar : " majar
read -p "Please input your grade : " grade
read -p "Please input your start number :" start_nu
read -p "Please input your the user number :" user_nu
read -p "Please choice passwd stardand: 1) same as username 2) random: " pwd
if [ "majar" = "" ];then
echo "You should input the majar!!!";exit 1
fi
testing1=`echo $grade | grep [^0-9]`
testing2=`echo $start_nu | grep [^0-9]`
testing3=`echo $user_nu | grep [^0-9]`
if [ "$testing" != "" -o "$testging2" != "" -o "$itesting3" != "" ]; then
echo "The grade or start number or user number has include character";exit 1
fi
echo "Generate users ................."
for ((i=$start_nu;i< $(($start_nu + $user_nu));i++))
do
account=$majar$grade$i
if [ "$pwd" = "1" ]; then
password="$account"
else
password=""
test_nu=0
until [ "$test_nu" = "6" ]
do
temp_nu=$(($RANDOM*50/32767+30))
until [ "$temp_nu" != "60" ]
do
temp_nu=$(($RANDOM*50/32767+30))
done
temp_ch=`printf "\x$temp_nu"`
password=$password$temp_ch
test_nu=$(($test_nu+1))
done
fi
echo "$account":"$password" >> "$accountfile"
done
cat "$accountfile" | cut -d ":" -f1 | xargs -n 1 useradd #批量增加用户,逐行增加第一个field
chpasswd < "$accountfile" #批量增加密码,符合格式:win00:123456
cat "$accountfile"
pwconv #避免明码
echo "OK,Successful"
#批量自动 增加用户---------------------useradd.sh
#批量自动 删除用户---------------------userdel.sh
#需要与上面指定文件配合操作,文件路径
#!/bin/bash
cat "accountinfo.txt" | cut -d : -f1 | xargs -n 1 userdel -r
#需要与上面指定文件配合操作,文件路径
#批量自动 删除用户---------------------userdel.sh
#------强制踢出用户
方法一:
[root@Centos ~]# w
15:20:07 up 5:11, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.128.1 15:03 18.00s 0.42s 0.10s -bash
root pts/1 192.168.128.1 15:05 0.00s 0.07s 0.00s w
math2000 pts/2 192.168.128.1 15:13 2:39 0.04s 0.04s -bash
[root@Centos user]# pkill -kill -t pts/2
方法二:
ps -ef
501 4204 4202 0 15:32 ? 00:00:00 sshd: math20001@pts/2
kill -9 4204
#------强制踢出用户
#各种for 循环用法----------------------------------------
#!/bim/bash
echo "for((i=1;i<=10;i++));---------------"
for((i=1;i<=10;i++));
do
echo $(expr $i \* 4)
done
echo "for((i=1;i<=10;i++));---------------"
echo "for a in (seq 10)------------------ "
for a in $(seq 10)
do
echo "print a: "$a;
done
echo "for a in (seq 10)------------------ "
echo "ls variable------------------ "
ls=`ls /u01/study/`
for var in $ls
do
echo "print variable : "$var;
done
echo "==========for i in *.sh=============="
for sh in `ls *.sh`
do
echo "print sh file : $sh"
done
echo "========================="
for v in abc xxx yyy zzz 123 444
do
echo "print slef define variable ====" $v;
done
echo "-----------------------"
for x in {5..15}
do
echo "print number(5-15)=====" $x
done
echo "======(seq 2 11)=============="
for m in $(seq 2 11)
do
echo $m;
done
echo "==========for i in stringchar {1..10}"
for ii in {1..10}
do
echo $ii
done
echo "awk==============="
awk 'BEGIN{for(i=1;i<=10;i++)print i}'
#各种for 循环用法----------------------------------------
#各种for 循环用法2------阶乘----------------------------------
#!/bin/bash
list="We want to test shell script."
for a in $list; do
echo "print : $a"
done
for i in {1..10}; do
echo "test : $i"
done
echo "Test awk.........."
awk 'BEGIN{for(i=1;i<10;i++)print i}'
echo "--------------------------------"
for((i=1;i<=10;i++));do echo $(expr $i \* 4);done
#echo "print : $"
echo "----------------"
echo "----------------"
fact=1
for((i=1;i<=10;i++));
do
# echo $(expr $i \* 4);
fact=$(expr $fact \* $i);
echo "check fact value ===" $fact;
done
echo "print sum : " $fact
#各种for 循环用法2------阶乘----------------------------------
#文件比较运算符=======================
-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符
num1-eq num2 等于 [ 3 -eq $mynum ]
num1-ne num2 不等于 [ 3 -ne $mynum ]
num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]
num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]
#文件比较运算符=======================
#抽取所有的jpg文件图片,然后统一压缩成文档==================
find / -name *.jpg -type f -print | xargs tar -zcvf images.tar.gz
#抽取所有的jpg文件图片,然后统一压缩成文档==================
相关推荐
也许在目前许多学者都不知道如何分析Nginx日志,Linux系统日志下的Nginx 日志可以查看系统运行记录和出错说明,对Nginx 日志的分析可以了解系统运行的状态。那么Linux系统Nginx日志怎么分析呢?下面小编为你详解一下...
内容很简单,介绍了一个比较实用的日志函数。支持如下 1、多参数输入 2、每条日志都自动添加时间 适合初学者学习。 该资源来自于 C/C++/VC/MFC学习交流群【197778914】。 转载请注明出处,谢谢! PS:该群每周一晚...
主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络...
这也是针对愿意学习Linux内核模块编程的开发人员的学术项目,其中包含大量注释,checkpatch.pl扫描的代码,符合标准的Makefile和DKMS支持。 spy最初是为美国键盘(和兼容笔记本电脑)编写的。 默认情况下,它为按下...
9.4 日志记录 163 9.5 CGI和SSI 164 9.5.1 CGI 164 9.5.2 SSI 164 9.5.3 基本SSI指令 165 9.5.4 流控制 167 9.6 启动和停止服务器 167 9.6.1 手动启动服务器 167 9.6.2 /etc/rc.d httpd脚本 168 9.7 配置文件清单 ...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
9.10 学习Linux的常用工具 9.11 查看Linux内核状况 9.12 编程序检查系统状况 9.13 Linux编程环境 第10章 系统调用 10.1 一个简单的例子 10.2 系统调用基础知识 第11章 进程创建 11.1 进程是什么 11.2 进程的产生 ...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod...