for循环
-
格式
for 要变的变量 in {变量要变化的值}
do
(要加$表示是一个变量)要做的事
done -
例:
批量创建用户并设置密码利用for循环
for username in oldboy {01…10}
do
$useradd oldboy && echo 123456|passwd - - stdin $username
done
创建不同用户并设置不同密码
思路一:先把密码整出来
用tr命令:
思路二:情况一:创建不同用户较多的情况
把要创建的用户名放入一个文件中,再编写for循环
例:
创建完成。
==========================================================
补充: ``用法说明 : 将反引号里面命令先执行, 将结果信息被反引号外面命令进行调用
例:
: which ssh
/usr/bin/ssh
:rpm -qf /usr/bin/ssh
openssh-clients-7.4p1-16.el7.x86_64
将两条命令整合为一条:====================================================-
情况二:创建用户较少的情况
思路三:创建用户和密码
编写脚本:并创建个文件用于放入用户对应的密码
脚本格式
- #!/bin/bash
强制停止进程方法: 三个杀手
-
kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。
-
方法一:
- kill 进程号码 — 杀死进程, 反复执行命令会有提示
kill -9 进程号码 — 强行无条件杀死进程(千万慎用)
- kill 进程号码 — 杀死进程, 反复执行命令会有提示
-
方法二:
- killall 进程名 — 杀死进程, 反复执行命令会有提示
-
方法三:
- pkill 信息 — 模糊杀进程
netstat -ltunp|grep 22
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况
ltunp
远程连接排错思路
- a 确认链路是否通畅
ping 10.0.0.200 - b 确认是否有阻止策略
- c 确认远程服务是否开启
telnet 10.0.0.200 22 - systemctl status sshd
ps -ef|grep sshd
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
e:列出程序时,显示每个程序所使用的环境变量
f:用ASCII字符显示树状结构,表达程序间的相互关系。
- pkill 信息 — 模糊杀进程
批量编辑多行信息 vim
-
添加注释信息:
- 第一个历程: 先将光标移动到要编辑内容的第一行
- 第二个历程: 进入视图块模式
ctrl+v - 第三个历程: 移动光标选中多行信息
- 第四个历程: 进入编辑模式
shift+i — 编辑信息 - 第五个历程: 退出编辑模式
esc
取消注释信息:
- 第一个历程: 先将光标移动到要编辑内容的第一行
- 第二个历程: 进入视图块模式
ctrl+v - 第三个历程: 移动光标选中多行信息
- 第四个历程: 删除选中的信息
d 或者 x
测试一个局域网中有哪些IP地址可以用
- 思路一:ping 多个地址
- 利用for循环
for IP in {1…100}
do
ping 192.168.20.$IP
done - 思路二:了解ping命令用法
- ping -c 3 -q 192.168.20.52 >>/tmp/ping.log
- 思路三:访问通或者不通要有提示说明
如果ping是通: 提示 xxx地址 正在使用 (绿色)
如果ping不通: 提示 xxx地址 未被使用 (红色) - 编写if语句:
-
if [ $? -eq 0 ]
then
echo -e “\e[32;1m提示 xxx地址 正在使用\e[0m”
else
echo -e “\e[31;1m提示 xxx地址 未被使用\e[0m”
fiecho -e “\e[31;1moldboy69\e[0m” 红色
echo -e “\e[32;1moldboy69\e[0m” 绿色编写脚本:
#!/bin/bashfor IP in {1…100}
do
ping -c 3 -q 192.168.20.$IP >>/tmp/ping.log
if [ KaTeX parse error: Undefined control sequence: \e at position 41: … echo -e "\̲e̲[32;1m提示信息: 192…IP 正在使用\e[0m"
else
echo -e “\e[31;1m提示信息: 192.168.20.$IP 未被使用\e[0m”
fi
done
-
如何实现日志切割?
实现日志切割
编写脚本
vim cut_log.sh
#!/bin/bash
mv /var/log/messages /var/log/messages_$(date “+%F_%T”)
systemctl restart rsyslog
0 15,20 * * * /bin/sh /server/scripts/cut_log.sh
实现系统发送邮件功能
linux系统 — 邮件服务器建立关系(QQ 330882721 163) — 其他人发送邮件
第一个历程: 注册一个邮件服务器
进行设置 — 开启smtp服务功能 — 生成一个授权码
第二个历程: linux系统配置发送邮件功能
vim /etc/mail.rc
set from=邮箱地址@163.com smtp=smtp.163.com <- 邮件发送邮件服务器域名,此处为163邮箱的发送服务器域名
set smtp-auth-user=邮箱账号 smtp-auth-password=登录邮箱密码 smtp-auth=login
set from=17778058507@163.com
set smtp=smtp.163.com
set smtp-auth-user=17778058507@163.com
set smtp-auth-password=oldboy123