1867
- 收藏
- 点赞
- 分享
- 举报
bash脚本入门学习进行时
学习脚本之前我们将grep深入的学习和操作了下,后期马上就上了for循环,下面初步练习for循环脚本;
for VAR_NAME in 元素1 元素2 ....
do
语句1
语句2
...
done
例子;
1, 新建用户user1-3,并且给他们设置密码分别是他们的用户名!
#!/bin/bash
for UserName in user1 user2 user3;
do
useradd $UserName
echo $UserName |passwd --stdin $UserName > /dev/null
done
2,显示 /etc/inittab,/etc/rc.d/rc.sysinit,/etc/fstab 三个文件各有多少行
#!/bin/bash
for FileName in /etc/inittab,/etc/rc.d/rc.sysinit,/etc/fstab;
do
wc -l $FileName
done
3,使用for循环创建目录/tmp/1.dir,/tmp/2.dir和/tmp/3.dir的最近一次修改时间为2010年3月3号3点3分3秒
#!/bin/bash
for Dir in /tmp/1.dir /tmp/2.dir /tmp/3.dir; do
stat $Dir
touch -m -t 201003030303.03 $Dir
stat $Dir
done
4,使用for循环统计/etc/fstab,/etc/rc.d/rc.sysinit,/etc/inittab文件中各自以#开头的行的行数
#!/bin/bash
for showd in /etc/fstab /etc/rc.d/rc.sysinit /etc/inittab; do
grep "^#" $showd | wc -l
done
for showd in /etc/fstab /etc/rc.d/rc.sysinit /etc/inittab; do
LINES='grep "^#" $showd | wc -l'
echo "$showd: $LINES"
done
5 使用for循环显示用户user1,user2和user3各自的id号
#!/bin/bash
for User in 1 2 3; do
id -u user$User
done
#!/bin/bash
for User in 1 2 3; do
echo "user$User: `id -u user$User`"
done
6,使用for循环分别统计/usr,/var,/bin,/sbin目录下各自的文件个数
#!/bin/bash
for Dir in /usr /var /bin /sbin; do
ls $Dir | wc -l
done
7. 使用for循环分别将user1,user2和user3加入到testgrp组中,以其为额外组
#!/bin/bash
groupadd tetgrp
for Dir in user1 user2 user3; do
usermod -a -G testgrp $Dir
done
8. 使用for循环,将"Hello linux","Hello [url]www.51cto.com[/url]","GNU is Not Unix"三行内容添加至
/tmp/test.txt文件
#!/bin/bash
for Line in "Hello linux" "Hello [url]www.51cto.com[/url]" "GNU is Not Unix"; do
echo $Line >> /tmp/test.txt
done
cat /tmp/test.txt
9.使用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
Fileneme=`basename $File`
cp $File /tmp/$Fileneme-`date +%F`
done
10,写一个脚本添加10个用户user1到user10,密码间用户名:
#!/bin/bash
for I in {1..10}; do
useradd user$I;
echo user$I | passwd --stdin user$I
done
~
11,显示当前系统上所有默认shell为/bin/bash的用户名,ID号及其在/etc/passwd文件中的行号
显示/etc/passwd文件中第1,3,6,12个用户的用户名,ID和shell
#!/bin/bash
for Line in 1 3 6 12; do
use=`head -$Line /etc/passwd | tail -l | cut -d: -f1`
Uid=`head -$Line /etc/passwd | tail -l | cut -d: -f3`
Shelld=`head -$Line /etc/passwd | tail -l | cut -d: -f7`
echo "user: $use, UID is $Uid, Shall: $Shalld"
done
好了,也就这么多了,估计练习练习 基础也掌握的差不多了,多练习练习也就熟练了!
for VAR_NAME in 元素1 元素2 ....
do
语句1
语句2
...
done
例子;
1, 新建用户user1-3,并且给他们设置密码分别是他们的用户名!
#!/bin/bash
for UserName in user1 user2 user3;
do
useradd $UserName
echo $UserName |passwd --stdin $UserName > /dev/null
done
2,显示 /etc/inittab,/etc/rc.d/rc.sysinit,/etc/fstab 三个文件各有多少行
#!/bin/bash
for FileName in /etc/inittab,/etc/rc.d/rc.sysinit,/etc/fstab;
do
wc -l $FileName
done
3,使用for循环创建目录/tmp/1.dir,/tmp/2.dir和/tmp/3.dir的最近一次修改时间为2010年3月3号3点3分3秒
#!/bin/bash
for Dir in /tmp/1.dir /tmp/2.dir /tmp/3.dir; do
stat $Dir
touch -m -t 201003030303.03 $Dir
stat $Dir
done
4,使用for循环统计/etc/fstab,/etc/rc.d/rc.sysinit,/etc/inittab文件中各自以#开头的行的行数
#!/bin/bash
for showd in /etc/fstab /etc/rc.d/rc.sysinit /etc/inittab; do
grep "^#" $showd | wc -l
done
for showd in /etc/fstab /etc/rc.d/rc.sysinit /etc/inittab; do
LINES='grep "^#" $showd | wc -l'
echo "$showd: $LINES"
done
5 使用for循环显示用户user1,user2和user3各自的id号
#!/bin/bash
for User in 1 2 3; do
id -u user$User
done
#!/bin/bash
for User in 1 2 3; do
echo "user$User: `id -u user$User`"
done
6,使用for循环分别统计/usr,/var,/bin,/sbin目录下各自的文件个数
#!/bin/bash
for Dir in /usr /var /bin /sbin; do
ls $Dir | wc -l
done
7. 使用for循环分别将user1,user2和user3加入到testgrp组中,以其为额外组
#!/bin/bash
groupadd tetgrp
for Dir in user1 user2 user3; do
usermod -a -G testgrp $Dir
done
8. 使用for循环,将"Hello linux","Hello [url]www.51cto.com[/url]","GNU is Not Unix"三行内容添加至
/tmp/test.txt文件
#!/bin/bash
for Line in "Hello linux" "Hello [url]www.51cto.com[/url]" "GNU is Not Unix"; do
echo $Line >> /tmp/test.txt
done
cat /tmp/test.txt
9.使用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
Fileneme=`basename $File`
cp $File /tmp/$Fileneme-`date +%F`
done
10,写一个脚本添加10个用户user1到user10,密码间用户名:
#!/bin/bash
for I in {1..10}; do
useradd user$I;
echo user$I | passwd --stdin user$I
done
~
11,显示当前系统上所有默认shell为/bin/bash的用户名,ID号及其在/etc/passwd文件中的行号
显示/etc/passwd文件中第1,3,6,12个用户的用户名,ID和shell
#!/bin/bash
for Line in 1 3 6 12; do
use=`head -$Line /etc/passwd | tail -l | cut -d: -f1`
Uid=`head -$Line /etc/passwd | tail -l | cut -d: -f3`
Shelld=`head -$Line /etc/passwd | tail -l | cut -d: -f7`
echo "user: $use, UID is $Uid, Shall: $Shalld"
done
好了,也就这么多了,估计练习练习 基础也掌握的差不多了,多练习练习也就熟练了!
我来回答
回答0个
时间排序
认可量排序

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2018-12-14 10:12:13
-
2013-08-25 19:25:07
-
2013-08-25 12:02:13
-
2019-12-18 21:22:30
-
2018-04-14 11:08:13
-
2018-06-19 15:51:08
-
2010-05-22 07:47:49
-
2013-11-30 22:09:28
-
2020-05-20 12:12:34
-
2023-06-19 13:54:44
-
22013-11-19 20:22:34
-
2018-12-07 17:20:24
-
2020-02-26 19:36:15
-
12019-04-23 11:50:43
-
02013-07-10 12:17:31
-
2012-12-24 14:36:04
-
2018-12-13 13:59:17
-
2013-08-29 15:02:43
-
2012-12-04 11:22:20
无更多相似问答 去提问

点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认