你可以写一个shell脚本
基本上,批量添加用户有两种方式:
一是用useradd + passwd命令配合脚本来添加;
二是用newusers+chpasswd来添加。
方法一、useradd + passwd命令配合脚本来添加
用户的初始密码被设为用户名+123
#!/bin/bash
#
#.list
#
forusernamein$(moreusers.list)
do
if[-n$username]
then
useradd-m$username
echo
echo$username"123"|passwd--stdin$username
echo
echo"User$username'spasswordischanger!"
else
echo"Theusernameisnull!"
fi
done
~
其中users.list文件内容如下:
johnson
lily
kelly
方法二、newusers+chpasswd批量添加用户
1、首先我们创建用户文件和密码文件;
我们要创建包含新用户的文件userfile.txt ;另一个是为新添加的用户设置密码的userpwdfile.txt;
[root@localhost ~]# touch userfile.txt
[root@localhost ~]# touch userpwdfile.txt
然后用文本编辑器打开文件userfile.txt,添加如下内容;
win00:x:520:520::/home/win00:/sbin/nologin
win01:x:521:521::/home/win01:/sbin/nologin
win02:x:522:522::/home/win02:/sbin/nologin
win03:x:523:523::/home/win03:/sbin/nologin
win04:x:524:524::/home/win04:/sbin/nologin
win05:x:525:525::/home/win05:/sbin/nologin
win06:x:526:526::/home/win06:/sbin/nologin
win07:x:527:527::/home/win07:/sbin/nologin
win08:x:528:528::/home/win08:/sbin/nologin
win09:x:529:529::/home/win09:/sbin/nologin
userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上 面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;
我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同且严格按照“用户名:密码”的格式来写,一个用户一行;也就是说我们先是添加了win00到win09的用户,现在要为这些用户更新密码;比如下面的;
win00:123456
win01:654321
win02:123321
win03:qweewq
win04:google
win05:adadwc
win06:wsscee
win07:xxec32
win08:543wew
win09:3ce3wf
2、用newusers批量添加用户,此时用户是没有密码的
[root@localhost ~]# newusers userfile.txt
2、执行命令/usr/sbin/pwunconv,将/etc/shadow产生的shadow密码解码,然后回写到/etc/passwd中, 并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消shadow password功能,关闭影子文件。
[root@localhost ~]#pwunconv
3、 用chpasswd批量修改密码
[root@localhost ~]# chpasswd < userpwdfile.txt
4、最后不要忘了恢复影子文件,保证安全,您可以通过下面的命令来映射到 /etc/shadow文件名
[root@localhost ~]# pwconv
2. linux中tail -100和tail -n 100的区别
tail -n +20 filename 是从文件第二十行开始显示 而不是显示前面二十行
3. 查看linux日志的工具有哪些
linux 日志查看
tail、head、 cat、tac、sed、less、echo
1、命令格式: tail [必要参数] [选择参数] [文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail -n 100 catalina.out 查询日志尾部最后100行的日志;
tail -n +100 catalina.out 查询100行之后的所有日志;
tail -fn 100 catalina.out 循环实时查看最后100行记录(最常用的)
配合着grep用, 例如 : tail -fn 100 catalina.out | grep -- '关键字'
如果一次性查询的数据量太大,可以进行翻页查看,
例如:tail -n 6000 catalina.out |more -100 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
--------------------------------------------------------------------------------------------------------------------------
2、head
head -n 1000 catalina.out //查询日志文件中的头10行日志;head -n -1000 catalina.out //查询日志文件除了最后10行的其他所有日志;
head其他参数与tail 类似
-----------------------------------------------------------------------------------------------------
3、cat
cat 是由第一行到最后一行连续显示在屏幕上
$ cat filename // 一次显示整个文件
$ cat > filename //从键盘创建一个文件
$cat file1 file2 > file //将几个文件合并为一个文件,只能创建新文件,不能编辑已有文件.
$cat -n textfile1 > textfile2 //将一个日志文件的内容追加到另外一个 :
$cat : >textfile2 // 清空一个日志文件
注意: >意思是创建, >>是追加。
cat其他参数与tail 类似
----------------------------------------------------------------------------------------------------------------------------------------
4.tac
tac 则是由最后一行到第一行反向在萤幕上显示出来
--------------------------------------------------------------------------------------------------------------------------------------
5.sed
这个命令可以查找日志文件特定的一段 , 也可以根据时间的一个范围查询
//按照行号
sed -n '2,100p'catalina.out
//这样你就可以只查看文件的第5行到第10行。
//按照时间段
sed -n '/2019-01-17 10:07:10/,/2019-02-14 16:54:01/p'catalina.out
-------------------------------------------------------------------------------------------------
6.less
less log.log
shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213shift+n 关键字之间进行切换
----------------------------------------------------------------------------------------------
附录1history // 所有的历史记录history | grep XXX // 历史记录中包含某些指令的记录history | more // 分页查看记录history -c // 清空所有的历史记录!! 重复执行上一个命令
查询出来记录后选中 :!323
-------------------------------------------------------------------------------------------------------------
7、echo
输出 echo "12345"
---------------------------------------------------------------------------------------------------------
附录2
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
---------------------------------------------------------------------------------------------------------------------
附录3
tomcat运行日志
1、先切换到:cd usr/local/tomcat3/logs
2、tail -f catalina.out
3、这样运行时就可以实时查看运行日志了
Ctrl+c 是退出tail命令。 alt+E+R重置
4. linux文件截取前几行,后几行,中间几行命令及查看端口命令
1. 如果你只想看文件的前100行,可以使用head命令,如
head -100 filename
2. 如果你想查看文件的后100行,可以使用tail命令,如:
tail -100 filename 或 tail -n 100 filename
3. 查看文件中间一段,你可以使用sed命令,如:
sed -n '100,200p' filename
这样你就可以只查看文件的第100行到第200行。
截取的文件可以用重定向输入到新的文件中:
head -100 filename >a.txt
也可以在robot里面使用read 打印出来
使用命令:
ps -aux | grep tomcat/8080
方法二:直接使用 netstat -anp | grep portno
即:netstat –anp | grep 8080
查看端口命令 https://www.cnblogs.com/CEO-H/p/7794306.html
linux替换目录下所有文件中的某字符串
比如,要将目录/moles下面所有文件中的zhangsan都修改成lisi,这样做:
sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /moles`
解释一下:
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
linux查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串
find .|xargs grep -ri "php"
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri "php" -l
ip addr 查看ip地址
5. 下面哪个是linux动态查看最新100行日志的方式
对于从事web开发的人员来说.服务器上的日志多如牛毛,如何快速从中找出所需信息非常重要,以下是我在工作中用到的查找日志的简单命令,希望能对您有所帮助:
...展开
工具原料
linuxSecureCRT
方法/步骤分步阅读
1
/7
先必须了解两个最基本的命令:
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
2
/7
场景1: 按行号查看---过滤出关键字附近的日志
因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.
我是这样做的,首先: cat -n test.log |grep "地形" 得到关键日志的行号
3
/7
<3>得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:
cat -n test.log |tail -n +92|head -n 20
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
1688
根据文章内容为您推荐
广告
¥4700 元
查看
¥4700 元
查看
¥9.9 元
查看
¥4700 元
查看
¥4700 元
查看
4
/7
场景2:那么按日期怎么查呢? 通常我们非常需要查找指定时间端的日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.
5
/7
关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志
这个根据时间段查询日志是非常有用的命令.
6
/7
如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:
(1)使用more和less命令, 如: cat -n test.log |grep "地形" |more 这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:
cat -n test.log |grep "地形" >xxx.txt
7
/7
这几个日志查看方法应该可以满足日常需求了.
6. LINUX 中 VIM怎么做命令实现for循环打印从1到100每个数字后面有回车
打开终端,新建一个.tcl文件,例如: test.tcl 。将如下代码粘贴到文件中,保存,退出。
for {set i 1} {$i <= 100} {incr i} {
puts $i
}
然后运行 tclsh test.tcl
7. linux虚拟机查看文件log.txt(非常大)中 含'1010' 最后100行
如果是查找da带’1010‘结果后的100行,y应该是grep '1010' |tail -n 100 这样才没有问题,
若是前100行中带有’1010‘的,则是 tail -n 100|grep '1010'