hxivxfrk

hxivxfrk

0个粉丝

4

问答

0

专栏

0

资料

hxivxfrk  发布于  2013-11-24 21:58:55
采纳率 0%
4个问答
2758

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

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

!/bin/bash

groupadd tetgrp

for Dir in user1 user2 user3; do usermod -a -G testgrp $Dir done

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

!/bin/bash

for Line in "Hello linux" "Hello www.51cto.com" "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. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区