`
oboaix
  • 浏览: 268973 次
社区版块
存档分类
最新评论

Linux学习日志记录001

 
阅读更多

以前记录的学习日志,做个记录,以资鼓励学习:

 

#批量自动 增加用户---------------------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文件图片,然后统一压缩成文档==================

分享到:
评论

相关推荐

    Linux系统怎么分析Nginx日志

    也许在目前许多学者都不知道如何分析Nginx日志,Linux系统日志下的Nginx 日志可以查看系统运行记录和出错说明,对Nginx 日志的分析可以了解系统运行的状态。那么Linux系统Nginx日志怎么分析呢?下面小编为你详解一下...

    调试篇之打造自己的日志函数

    内容很简单,介绍了一个比较实用的日志函数。支持如下 1、多参数输入 2、每条日志都自动添加时间 适合初学者学习。 该资源来自于 C/C++/VC/MFC学习交流群【197778914】。 转载请注明出处,谢谢! PS:该群每周一晚...

    LINUX操作系统(电子教案,参考答案)

    主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络...

    spy:Linux内核模式debugfs键盘记录器

    这也是针对愿意学习Linux内核模块编程的开发人员的学术项目,其中包含大量注释,checkpatch.pl扫描的代码,符合标准的Makefile和DKMS支持。 spy最初是为美国键盘(和兼容笔记本电脑)编写的。 默认情况下,它为按下...

    RED HAT LINUX 6大全

    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 配置文件清单 ...

    JSPSmart系统-权限管理与日志记录模块的设计与开发(源代码+论文).rar

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    基于jsp实现的Smart系统-权限管理与日志记录模块的设计与开发(源代码+论文).rar

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    边干边学Linux__第二版_doc格式

    9.10 学习Linux的常用工具 9.11 查看Linux内核状况 9.12 编程序检查系统状况 9.13 Linux编程环境 第10章 系统调用 10.1 一个简单的例子 10.2 系统调用基础知识 第11章 进程创建 11.1 进程是什么 11.2 进程的产生 ...

    [检测统计]牛仔IIS日志蜘蛛爬行记录分析器 v1.1_iis_rz.rar

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    检测统计牛仔IIS日志蜘蛛爬行记录分析器 v1.1-iis-rz.rar

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    Linux shell编程指南

    本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod...

Global site tag (gtag.js) - Google Analytics