首页 > 系统相关 >shell脚本

shell脚本

时间:2024-08-09 23:49:53浏览次数:11  
标签:脚本 bin shell script echo etc bash dir

                                            添加用户和组的练习

 

 

1、创建一个用户mandriva,其ID号位2002,基本组位distro(组ID位3003),附加组位linux

#groupadd -g 3003 distro;groupadd linux;useradd -u 2002 -g 3003 -G linux mandriva

 

2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh

#useradd -c "Fedora Community" -s /bin/tcsh fedora

 

3、修改mandriva的ID号位4004,基本组位linux,附加组为distro和fedora

#usermod -u 4004 -g linux -a -G distro,fedora

 

4、给fedora加密码,并设定其密码最短使用期限位2天,最长为50天

#passwd -n 2 -x 50 fedora

 

5、将mandriva的默认shell改为/bin/bash

#usermod -s /bin/bash  mandriva

 

6、新建一个用户openstack,但不给其创建家目录

#useradd -M openstack

echo pwd123 | passwd --stdin openstack

 

7、复制/etc/skel目录为/home/openstack

#cp -r /etc/skel  /home/openstack

8、改变/home/openstack及其内部的属组均为openstack

#chown openstack:openstack   /home/openstack

 

9、/home/openstack及其内部的文件,属组和其它用户没有任何访问权限

#chown go=--- /home/openstack

 

 

作业:

 (1)新建系统组mysql;新建系统用户mysql,要求其没有家目录且shell为/sbin/nologin;

     #usermod -r -M -s /sbin/nologin mysql

 (2)新建GID为600的组magedu;新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;

     #groupadd -g 600 magedu; mkdir /users ;useradd -d /users/gentoo gentoo ;echo gentoo | passwd --stdin gentoo

 (3)新建用户centos,其家目录为/users/centos,密码同用户名;

     #useradd -d /users/centos ;echo centos | passwd --stdin centos

 (4)新建用户www,其家目录为/users/www;删除www用户,但保留其家目录;

     #useradd -d /users/www  www;userdel www

 (5)用户gentoo和centos均以magedu为其附加组;

     #usermod -G magedu gentoo;usermod -G magedu centos

 

完成以下任务:

       (1) 切换至centos用户,定义本地变量FirstVar,其值为"test variable";

       #su - centos; FirstVar="test variable"

       (2) 另启一个终端,使用gentoo用户查看FirstVar变量的值;如果没有值,为什么?

       #su - gentoo; echo $FirstVar 发现什么也没有,因为本地变量只对shell有效

       (3) 声明一个变量CurTime,其值为当前系统时间;

       #CurTime=`date`

       (4) 使用echo命令显示"The current time is:",is后跟上CurTime变量的值;

       #echo "The current time is:$CurTime"

       (5) 回至centos用户的终端:复制/etc/pam.d目录至/tmp目录中,并重命名为test;

       #su - centos;cp -r /etc/pam.d   /tmp/test

       (6) 声明变量FileName,其值为刚才复制的目录/tmp/test;

       #FileName=/tmp/test

       (7) 修改变量FileName所表示的目录及其内部所有文件的其它用户均没有任何访问权限;

       #chmod -R o=--- $FileName

       (8) centos用户是否可以修改变量FileName所表示的目录的属主和属组?如果能,将其改为gentoo用户和gentoo组;如果不能,则使用root用户修改;

       #centos 用户不能使用chown命令

       #su - root

       #chown gentoo:gentoo $FileName

 

 

 

 

 

                                                    grep的练习

 

1、显示/proc/meminfo文件中以不区分大小的s开头的行;

 

2、显示/etc/passwd中以nologin结尾的行;

 

3、取出默认shell为/sbin/nologin的用户列表

 

4、取出默认shell为bash,且其用户ID号最小的用户的用户名

 

 

6、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;

 

7、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;

 

8、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;

 

 

10、显示/etc/rc.d/rc.sysinit中符合形为"任意单个字符n任意字符任意单个字符n"模式的行;即任意单个字符后面跟了个n,n后面有任意长度的任意字符,

   而后是任意单个字符后面跟了个n;

 

11、显示/etc/rc.d/rc.sysinit中符合形为"任意单个字符n任意字符任意单个字符n"模式的行;即任意单个字符后面跟了个n,n后面有任意长度的任意字符,

而后是任意单个字符后面跟了个n,但后面的n之前的字符要与前面的n之前的字符相同;

 

12、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;

 

13、找出某文件中的,1位数,或2位数;

 

14、找出ifconfig命令结果中的1-255之间的整数;

 

 

15、查找当前系统上名字为student(必须出现在行首)的用户的帐号的相关信息, 文件为/etc/passwd        

 

16、统计/usr/bin/目录下的文件个数;

 

17、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;

 

18、思考:如何显示/var/log目录下每个文件的内容类型?

 

19、取出/etc/inittab文件的第5行;

 

20、取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中;

 

21、显示/etc目录下所有以pa开头的文件,并统计其个数;

 

22、不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文尾部;

 

22、显示/proc/cpuinfo中的processor开头且后面跟了至少1个空白字符的行;而后统计相关的行数;

 

23、显示/var/log/secure文件中包含"Failed password"或"FAILED LOGIN"的行;而后统计相关的行数;

 

24、显示/var/log/secure文件中记录的属于当前系统时间的前一天的信息中包含"Failed password"或

"FAILED LOGIN"的行;而后统计相关的行数;

 

25、找出netstat -tan命令执行的结果中以TIME_WAIT或ESTABLISHED结尾的行;

 

 

 

 

 

 

                                           for脚本的练习

 

练习1:写一个脚本,显示/etc/inittab, /etc/rc.d/rc.sysinit, /etc/fstab三个文件各有多少行;

#!/bin/bash

cat > /root/test/1.txt <<EOF

/etc/inittab

/etc/rc.d/rc.sysinit

/etc/fstab

EOF

for File in `cat /root/test/1.txt`;do

 echo "$File has: ` wc -l $File | cut -d' ' -f1` rows"

done

 

#!/bin/bash

#this script count file rows.

for File in /etc/inittab /etc/rc.d/rc.sysinit /etc/fstab;do

Row=`wc -l $File | cut -d' ' -f1`

echo "$File has: $Row rows"

done

 

练习2:写一个脚本

       使用for循环创建目录/tmp/1.dir,/tmp/2.dir和/tmp/3.dir,并将它们的权限均修改为750;

#!/bin/bash

for Dir in 1 2 3;do

if [ -d /tmp/$Dir.dir ];then

rm -rf /tmp/$Dir.dir

echo "remove direcotry is ok"

else

mkdir /tmp/$Dir.dir

echo " /tmp/$Dir.dir  create sucessful."

chmod 750 /tmp/$Dir.dir

fi

done

[root@l

 

练习3:写一个脚本

       使用for循环修改目录/tmp/1.dir,/tmp/2.dir和/tmp/3.dir的最近一次修改时间为2010年3月3号3点3分3秒;

#!/bin/bash

for Dir in 1 2 3;do

if [ -d /tmp/$Dir.dir ];then

touch -m -t 201003030303.03 $Dir

echo "/tmp/$Dir.dir  information is: "

stat $Dir

else

echo " connot find directory"

fi

done

       

练习4:写一个脚本

       使用for循环统计/etc/fstab、/etc/rc.d/rc.sysinit、/etc/inittab文件中各自以#开头的行的行数;

#!/bin/bash

for File in /etc/inittab /etc/fstab /etc/rc.d/rc.sysinit;do

 

echo "$File has: `grep "^#" $File |wc -l | cut -d' ' -f1` rows"

done        

 

练习5:写一个脚本

       使用for循环统计/etc/fstab、/etc/rc.d/rc.sysinit、/etc/inittab文件中各自以#开头的行的行数和空白行数;

#!/bin/bash

for File in /etc/inittab /etc/fstab /etc/rc.d/rc.sysinit;do

echo "$File start with "#" has: `grep "^#" $File |wc -l | cut -d' ' -f1` rows""

echo "$File start with "^$" has: `grep "^$" $File |wc -l | cut -d' ' -f1` rows""

done

 

练习6:写一个脚本

       使用for循环分别将/proc/cpuinfo、/proc/meminfo、/proc/uptime三个文件中的所有小写字符显示为大写;

#!/bin/bash

for File in /proc/cpuinfo /proc/meminfo /proc/uptime;do

echo "$File `tr 'a-z' 'A-Z' < $File`"

done

 

练习7:写一个脚本

       使用for循环显示用户user1、user2和user3各自的id号;

#!/bin/bash

for User in `seq 1 3`;do

useradd user$User

ID=`grep "\<user$User\>" /etc/passwd | cut -d: -f3`

echo "user$User id is $ID"

done

 

练习8:写一个脚本

       使用for循环分别统计/usr、/var、/bin、/sbin目录下各自的文件个数;

#!/bin/bash

for File in /usr /var  /bin /sbin;do

echo "$File has:`ls $File| wc -l` files"

done

 

练习9:写一个脚本

       使用for循环,分别将user1、user2和user3加入到testgrp组中,以其为额外组;

#!/bin/bash

if [ testgrp == `grep "\<testgrp\>" /etc/group | cut -d: -f1` ];then

groupdel testgrp

else

groupadd testgrp

echo "Add group sucessful"

fi

for User in `seq 1 3`;do

usermod -G testgrp user$User

echo "user$User is add testgrp"

done

       

练习10:写一个脚本

   使用for循环,将"Hello Linux.","Hello www.magedu.com ", "GNU is Not Unix."三行内容添加至/tmp/test.txt文件;

添加完成后,显示/tmp/test.txt文件的内容;

#!/bin/bash

for State in "Hello Linux." "Hello www.magedu.com ." "GUN is Not Unix.";do

 echo "$State" >> /tmp/test.txt

done

 echo -e "/tmp/test.txt :\n`cat /tmp/test.txt`"

 

练习11:写一个脚本

  使用for循环,复制/etc/fstab、/etc/inittab和/etc/rc.d/init.d/functions文件至/tmp/目录中,并重命名为原有的名称

  之后加当前日期,如第一个文件为/tmp/fstab-2013-07-15;

#!/bin/bash

for File in /etc/fstab /etc/inittab /etc/rc.d/init.d/functions;do

Basename=`basename $File`

Date=`date +%F`

cp $File /tmp/$Basename-$Date

ls -l /tmp | grep "$Basename-$Date"

done  

 

练习12:写一个脚本

       显示当前系统上所有默认shell为/bin/bash的用户名、ID号及其在/etc/passwd文件中的行号;

 显示格式为:行号:ID:用户

 

 

练习13:写一个脚本

       显示/etc/passwd文件中第1、3、6、12个用户的用户名、ID和shell;

 

 

 

练习14:写一个脚本

       显示/etc/passwd文件中第1、3、6、12个用户的用户名、ID和基本组的组名;

 

练习15:写一个脚本::

a)设定变量FILE的值为/etc/passwd

b)依次向/etc/passwd中的每个用户问好,并显示对方的shell,形如:  Hello, root, your shell: /bin/bash

c)统计一共有多少个用户

 

 

练习16:写一个脚本:

1、添加10个用户user1到user10,密码同用户名;统计这10个用户的ID号之和;

 

2、写一个脚本,分别显示当前系统上所有默认shell为bash的用户和默认shell为/sbin/nologin的用户,并统计各类shell下的用户总数。显示结果形如:

BASH,3users,they are:

root,redhat,gentoo

 

NOLOGIN, 2users, they are:

bin,ftp

 

#!/bin/bash

Shell=`grep "$1\>" /etc/passwd | cut -d: -f7 | uniq`

if [ $Shell == "/bin/bash" ] &> /dev/null;then

   num=`grep "$1\>" /etc/passwd | cut -d: -f1 |wc -l`

   echo "BASH,$num"users",they are:"

   User=`grep "$1\>" /etc/passwd | cut -d: -f1`

   for Name in $User;do

   echo -n "$Name,"

   done

 

elif [ $Shell == "/sbin/nologin" ] &> /dev/null;then

   num=`grep "$1\>" /etc/passwd | cut -d: -f1 |wc -l`

   echo "NOLOGIN,$num"users",they are:"

   User=`grep "$1\>" /etc/passwd | cut -d: -f1`

   for Name in $User;do

   echo -n "$Name,"

   done

else

  echo -n "no $1 shell"

fi

echo

 

 

                                if条件语句和for循序语句的综合练习

                                                               

1、练习:写一个脚本:

       如果指定的用户存,先说明其已经存在,并显示其ID号和SHELL;否则,就添加用户,并显示其ID号;

 

2、练习:写一个脚本,实现如下功能:

       如果设备/dev/sda3已经挂载,就显示其挂载点;否则,就说明其未挂载或设备不存在;

#!/bin/bash

#

Device='/dev/sda3'

 

if mount | grep "^$Device" &> /dev/null; then

 mount | grep "/dev/sda3" | cut -d' ' -f3

else

 echo "$Device not mounted or not exist."

fi

 

3、练习:写一个脚本,生成两个随机数,比较其大小;显示大数;

#!/bin/bash

#

A=$RANDOM

B=$RANDOM

 

if [ $A -ge $B ]; then

 echo "Max number is $A."

else

 echo "Max number is $B."

fi

 

4、练习:写一脚本,随机生成一个整数,判定,显示其奇偶性;

#!/bin/bash

#

A=$RANDOM

 

if [ $[$A%2] -eq 0 ]; then

 echo "$A: Even"

else

 echo "$A: Odd"

fi

 

5、练习:给定一个用户,如果其ID号大于499,就说明其是普通用户,否则,就说明其是管理员或系统用户;

#!/bin/bash

#

UserName=daemon

 

Uid=`id -u $UserName`

 

if [ $Uid -gt 499 ]; then

 echo "A common user: $UserName."

else

 echo "admin user or system user: $UserName."

fi

 

 

6、练习:求200以内所有为3的整数倍的整数之和;

#!/bin/bash

#

Sum=0

 

for I in {1..200}; do

 if [ $[$I%3] -eq 0 ]; then

   Sum=$[$Sum+$I]

 fi

done

 

echo "Sum: $Sum."

 

 

7、练习:给定一个用户,如果其UID等于GID,就说明这是个"good guy",否则,"Bad guy."

#!/bin/bash

#

UserName=user1

 

if [ `id -u $UserName` -eq `id -g $UserName` ]; then

 echo "Good Guy."

else

 echo "Bad Guy."

fi

 

 

8、写一个脚本:

计算100以内所有奇数的和以及所有偶数的和;分别显示之;

 

#!/bin/bash

#

EvenSum=0

OddSum=0

 

for I in {1..100}; do

 if [ $[$I%2] -eq 0 ]; then

   EvenSum=$[$EvenSum+$I]

 else

   OddSum=$[$OddSum+$I]

 fi

done

 

echo "EvenSum is: $EvenSum. OddSum is: $OddSum."

 

9、写一个脚本:

计算N以内所有奇数的和以及所有偶数的和;分别显示之;N是通过参数传递过来的正整数;

 

#!/bin/bash

#

EvenSum=0

OddSum=0

 

for I in `seq 1 $1`;do

 if [ $[$I%2] -eq 1 ]; then

   OddSum=$[$OddSum+$I]

 else

   EvenSum=$[$EvenSum+$I]

 fi

done

 

echo "EvenSum: $EvenSum."

echo "OddSUm: $OddSum."

 

echo "Sum: $[$EvenSum+$OddSum]"

 

10、练习:通过参数传递n个正整数给脚本,求其和;

#!/bin/bash

#

Sum=0

for I in `seq 1 $#`; do

 Sum=$[$Sum+$1]

 shift

done

 

echo $Sum

 

11、练习,写一个脚本,完成以下要求:

1、添加10个用户user1, user2, ..., user10;但要先判断用户是否存在,不存在而后再添加;

2、添加完成后,显示一共添加了几个用户;当然,不能包括因为事先存在而没有添加的;

3、最后显示当前系统上共有多少个用户;

#!/bin/bash

#

Count=0

 

for I in {1..10}; do

 if id user$I &> /dev/null; then

   echo "user$I exists."

 else

   useradd user$I

   echo "Add user$I successfully."

   Count=$[$Count+1]

 fi

done

 

echo "Add $Count new users."

echo "Total users: `wc -l /etc/passwd | cut -d' ' -f1`."

 

 

12、练习,写一个脚本,完成以下要求:

1、通过参数传递一系列用户名给脚本,让脚本添加这些用户;但要先判断用户是否存在,不存在而后再添加;

2、添加完成后,显示一共添加了几个用户;当然,不能包括因为事先存在而没有添加的;

 

 

13、练习,写一个脚本,完成以下要求:

给定一个用户:

       1、如果其UID为0,就显示此为管理员;

       2、否则,就显示其为普通用户;

 

14、练习:写一个脚本,完成以下要求:

通过参数传递一个磁盘设备文件给脚本,让脚本来判断其是否有扩展分区;有则显示有,否则显示为无;

 

 

15、练习:写一个脚本

给定一个文件,比如/etc/inittab

判断这个文件中是否有空白行;

如果有,则显示其空白行数;否则,显示没有空白行。

 

 

 

16、练习:写一个脚本;(要求:不使用id命令获得其id号;)

给定一个用户,判断其UID与GID是否一样

如果一样,就显示此用户为"good guy";否则,就显示此用户为"bad guy"。

 

 

17、练习:写一个脚本

给脚本传递两个参数(整数);

显示此两者之和,之乘积;

 

 

 

18、写一个脚本,分别显示当前系统上所有默认shell为bash的用户和默认shell为/sbin/nologin的用户,并统计各类shell下的用户总数。显示结果形如:

BASH,3users,they are:

root,redhat,gentoo

 

NOLOGIN, 2users, they are:

bin,ftp                                                                

 

#!/bin/bash

Shell=`grep "$1\>" /etc/passwd | cut -d: -f7 | uniq`

if [ $Shell == "/bin/bash" ] &> /dev/null;then

   num=`grep "$1\>" /etc/passwd | cut -d: -f1 |wc -l`

   echo "BASH,$num"users",they are:"

   User=`grep "$1\>" /etc/passwd | cut -d: -f1`

   for Name in $User;do

   echo -n "$Name,"

   done

 

elif [ $Shell == "/sbin/nologin" ] &> /dev/null;then

   num=`grep "$1\>" /etc/passwd | cut -d: -f1 |wc -l`

   echo "NOLOGIN,$num"users",they are:"

   User=`grep "$1\>" /etc/passwd | cut -d: -f1`

   for Name in $User;do

   echo -n "$Name,"

   done

else

  echo -n "no $1 shell"

fi

echo

执行  sh shell.sh  bash

 

 

 

 

 

写一个脚本:可以接受一个参数,其使用形式如下:

       script.sh {start|stop|restart|status}

如果参数为start,创建空文件/var/lock/subsys/script,并显示"Starting script successfully.";

如果参数为stop,则删除文件/var/lock/subsys/script,并显示"Stop script finished.";

如果参数为restart,则删除文件/var/lock/subsys/script后重新创建,并显示"Restarting script successfully.";

如果参数为status,那么:

       如果/var/lock/subsys/script文件存在,则显示为"script is running."

       否则,则显示为"script is stopped."

其它任何参数:则显示"script.sh {start|stop|restart|status}"

 

进一步:修改start的机制为:

       如果参数为start,且/var/lock/subsys/script文件不存在,则创建空文件/var/lock/subsys/script,并显示"Starting script successfully.";

       否则,显示"script is already running."

 

进一步:修改stop的机制为:

       如果参数为stop,且/var/lock/subsys/script文件存在,则删除文件/var/lock/subsys/script,并显示"Stop script finished.";

       否则,显示"script is stopped yet."

version1.sh

#!/bin/bash

#Author:litaotao

dir=`basename $0`

if [ $1 == "start" ];then

  touch /var/lock/subsys/$dir

  echo "Starting script successfully."

elif [ $1 == "stop" ];then

  rm /var/lock/subsys/$dir &> /dev/null

  echo "Stop script finished."

elif [ $1 == "restart" ];then

 rm /var/lock/subsys/$dir &> /dev/null

 touch /var/lock/subsys/$dir

 echo "Restarting script sucessfully."

elif [ $1 == "status" ];then

   if [ -e /var/lock/subsys/$dir ];then

      echo "script is running."

   else

      echo "script is stopped."

   fi

else

  echo "$dir.sh {statr|stop|restart|status}"

fi

 

version2.sh

#!/bin/bash

#Author:litaotao

dir=`basename $0`

if [ $1 == "start" ];then

  if [ -e /var/lock/subsys/$dir ];then

      echo "script is already running."

  else

    touch /var/lock/subsys/$dir

    echo "Starting script sucessfully."

  fi

elif [ $1 == "stop" ];then

  rm /var/lock/subsys/$dir &> /dev/null

  echo "Stop script finished."

elif [ $1 == "restart" ];then

 rm /var/lock/subsys/$dir &> /dev/null

 touch /var/lock/subsys/$dir

 echo "Restarting script sucessfully."

elif [ $1 == "status" ];then

   if [ -e /var/lock/subsys/$dir ];then

      echo "script is running."

   else

      echo "script is stopped."

   fi

else

  echo "$dir.sh {statr|stop|restart|status}"

fi

 

version3.sh

#!/bin/bash

#Author:litaotao

dir=`basename $0`

if [ $1 == "start" ];then

  if [ -e /var/lock/subsys/$dir ];then

      echo "script is already running."

  else

    touch /var/lock/subsys/$dir

    echo "Starting script sucessfully."

  fi

elif [ $1 == "stop" ];then

  if [ -e /var/lock/subsys/$dir ];then

     rm /var/lock/subsys/$dir &> /dev/null

     echo "Stop script finished."

  else

     echo "script is stopped yet."

  fi

elif [ $1 == "restart" ];then

 rm /var/lock/subsys/$dir &> /dev/null

 touch /var/lock/subsys/$dir

 echo "Restarting script sucessfully."

elif [ $1 == "status" ];then

   if [ -e /var/lock/subsys/$dir ];then

      echo "script is running."

   else

      echo "script is stopped."

   fi

else

  echo "$dir.sh {statr|stop|restart|status}"

fi

                                                                

标签:脚本,bin,shell,script,echo,etc,bash,dir
From: https://www.cnblogs.com/smoke520/p/18351735

相关文章

  • ./执行shell脚本提示“No such file or directory”
     ./执行shell脚本时提示如下,而关键在前半句,"/bin/sh^M:badinterpreter"错误的解释器。^M符号使得系统无法正确判断shell解释器为/bin/sh。这其实是Windows系统下编辑脚本,换行带来的'\r'。$./test.sh-bash:./test.sh:/bin/sh^M:badinterpreter:Nosuchfileordire......
  • 脚本执行报错 cp: cannot stat '/home/dar/app/log_back'$'\r''/nohup.out': No
    背景针对线上nohup日志较大,需要进行拆分,所以写了一个脚本文件,用来定时执行(或者手动执行)脚本一log_dir="/home/dar/app/log_back"#拷贝日志文件到昨天的log中cp$log_dir/nohup.out$log_dir/nohup-$(date+"%Y%m%d_%H%M%S").log#清空nohup.out日志truncate-s0$log_d......
  • Milvus 实践(2) --- 2.4.x 安装,脚本分析,数据存储解析
    目录背景Milvus2.4.x安装脚本分析etcd组件container_nameimage参数注意问题environmentvolumes实体化command参数注意事项healthcheck参数作用下载minio组件container_nameimage参数注意事项environment参数ports参数注意事项volumes参数实例co......
  • Python-和-PowerShell-协作教程-全-
    Python和PowerShell协作教程(全)原文:PowerShellandPythonTogether协议:CCBY-NC-SA4.0一、面向调查人员的PowerShell简介PowerShell提供了一个强大的获取引擎,可以从实时系统、服务器、外围设备、移动设备和数据驱动的应用程序(如ActiveDirectory)中获取大量信息。......
  • Jenkins 的 Shell 命令中执行一个 JAR 包时,日志没有显示,如何禁用输出缓冲
    在Jenkins的Shell命令中执行JAR包时,如果日志没有显示且你想禁用输出缓冲,可以尝试使用以下方法之一来禁用输出缓冲:1.使用 stdbuf 命令:stdbuf 是用于修改标准I/O缓冲机制的命令,可以用来调整输出的缓冲方式。你可以尝试使用 stdbuf 命令来禁用输出缓冲,例如:stdbuf-o......
  • jenkins的shell command中如何让python 实时显示执行日志
    在使用Jenkins的shellcommand里面执行python脚本时,我们希望在构建shell脚本时可以实时输出日志,但是在构建python脚本时,是等到python执行完成以后,才显示结果,这个对于我们判断脚本执行状态非常不友好。而之所以会出现这种情况,是因为python默认是有缓存的,所以我们需要禁用输入......
  • onnx转engine工具(包含量化) python脚本
    量化工具在网上搜索五花八门,很多文章没有说明使用的版本导致无法复现,这里参考了一些写法实现量化,并转为engine。具体实现代码见下方,欢迎各位小伙伴批评指正。tensorrt安装参考windows11下安装TensorRT,并在conda虚拟环境下使用_tensorrt免费吗-CSDN博客pycuda安装参考GPU......
  • 录屏方法剖析,记录脚本跑测不再难
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前言很多同学在跑测过程中都希望可以不用一直盯着跑测画面,又希望可以在跑测后复核跑测结果,那么Airtest所提供的录屏方法会是很好的选择。目前该录屏方法已经......
  • Windows Server 任务计划执行bat脚本,无法正常自动执行的解决方案
    注意点如下:1、请点击“创建任务”而不是“创建基本任务” 2、运行任务时,请使用System账户 3、配置:请选择:windowsserver2016或2003,xp,2000。注意千万不要选择2008 4、在“程序或脚本”中请填写脚本的名称,而不是路径;在“起始于(可选)”中请填写文件路径,注意后面不要跟文......
  • 常见 反弹shell的方法
            在渗透测试的过程中,在拿到webshell以后,如果目标主机是Windows主机,则是通过开3389端口在远程连接,如果目标主机是linux服务器,一般我们都会选择反弹shell来进行操作。在这里总结下反弹shell常见的几种姿势。Bash反弹1.1方法一攻击者主机上执行监听:nc-lvvp......