IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> LINUX实验---shell实验 -> 正文阅读

[系统运维]LINUX实验---shell实验


仅供参考

一、实验目的

1、掌握shell环境变量、管道、输入输出重定向使用方法;
2、掌握shell脚本建立和执行方法;
3、掌握shell脚本的基本结构;
4、掌握基本的shell编程方法。

二、实验环境:

一台运行GNOME图形用户界面的任意一种Linux操作系统的计算机。(我是Centos)

三、实验内容与步骤

PART 1 shell程序理解

1.建立一个shell脚本文件,内容为:
for username in test{1…10}
do
useradd u s e r n a m e e c h o " username echo " usernameecho"{username}abc" | passwd --stdin $username &> /dev/null
done
cat /etc/passwd | grep test
观察并分析程序运行结果。

程序分析:循环为变量username赋值为test1-test10,并利用这个变量建立一个以这个变量为用户名的账户,成功或者失败都将提示或者错误流丢弃到/dev/null(丢弃)。最后打开/etc/passwd文件,筛选带有test字符的信息。

运行结果:(一下结果为在root权限下进行)

在这里插入图片描述
2. 建立一个shell脚本文件,内容为:
if test “$USER” = “root”
then
yum -y install httpd
else
echo “您不是管理员,没有权限安装软件。”
fi
观察并分析程序运行结果。

程序分析:
去除USER环境变量判断是否为root,如果是则使用yum命令安装httpd反正在显示屏上显示提醒:您不是管理员,没有权限安装软件。

运行结果:
在这里插入图片描述
虽然此时我是管理员root账户,但是由于登陆时使用命令su root进行root登录,并没有切换到新的环境,而是在原本的环境下进行,所以环境变量USER任然是原本的student,使用命令su – root或者su - 命令可以切换到root账户并且切换到root下的环境

3.运行教材184页例7.13程序。
在这里插入图片描述
(这里由于我这个目录下没有任何.c程序,所以就这样)

4.运行教材184页例7.14程序。

在这里插入图片描述

PART 2 shell程序设计

  1. 编程实现如下功能:输入一个账号信息,如系统中无此账号,则输出提示“该账号不存在”,否则输出提示“是否删除该账号Y|N”,如输入y或Y,则删除该账号,输入N或n则不删除,输入其他字符,则重复出现提示“是否删除该账号Y|N”。
echo "输入一个账号名"
read account
#进行判断,如果在passwd目录下存在这个账号名则证明存在
if [ `cat /etc/passwd | grep -w $account` ]
	then echo "是否删除该账号Y|N"
	read determind			#读取决定
	if [ "$determind" = "Y" -o "$determind" = "y" ]	#进行删除
		then `userdel -r $account`	#连带目录和邮箱一起删除
	#如果输入的不是n或者y则重新进行输入和判断
	else 	#并重复提示是否删除Y|N
		while [ "$determind" != "N" -a "$determind" != "n" ]
		do
			echo "是否删除该账号Y|N"
			read determind
			if [ "$determind" = "Y" -o "$determind" = "y" ]
				then ` userdel - r $account`
				break;
			fi
		done
	fi
	
else
	echo "该账号不存在";
fi

  1. 编程实现如下功能:在用户家目录下建立10个目录,目录名称为xyz1,xyz2……xyz10,并设置每个目录的权限,其中文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读,执行;其他用户的权限为:读,执行。
#进入用户家目录
if [ "$USER" = "root" ]	#判断此时用户是否是root
	then cd /root		#root家目录
	else cd /home/$USER	#普通用户家目录
fi
for filename in xyz{1..10}
do
	mkdir $filename 
	chmod 755 $filename
done

  1. 建立一个文本文件,名为:user.txt,文件格式如下所示,每行的第一个字符串对应用户名,第二个字符串对应为初始密码,一共10行数据。
    aaa abc123456
    bbb cdef90800
    ccc 123abclin
    ……
    编程实现如下功能:建立10个账号信息,其中用户名和初始密码从文件user.txt中读取。为简化操作,假设系统中不存在重名账号。

#!/bin/bash

cat user.txt | while read userAndPasswd
do
	user="`echo $userAndPasswd |cut -d " " -f 1`"
	passwd="`echo $userAndPasswd | cut -d " " -f 2`"
	#echo -e "$user"  " \c"
	#echo "$passwd"
	useradd $user
	echo "$passwd" | passwd --stdin $user
done

4.编程实现如下功能:输入一个用户名,查找是否已登录系统,如已登录,则发送一个消息给他,消息内容为:“ hello,用户账号”;如未登录,则显示“用户尚未登录”。


read username
if [ -n `who | grep -m 1 -o $username` ]	#the user logined
then 	
	ttyStr=`who | grep $username | grep -m 1 pts | cut -d "/" -f 2`
	tty=pts/${ttyStr:0:1}
	 echo "hello,$username" | write $username $tty
else
	echo "用户尚未登录"
fi 

  1. 教材189页习题第6题。

if [ ! \( -d temp \) ]
then 
	mkdir temp
fi
for filename in `ls *.c`
do	

	cp $filename temp 	#指定目录为当前目录下的/temp目录
done
ls temp/ -Sl 	#从大到小排序输出,如果再加上r就是从小到大排序输出


  1. 教材189页习题第7题。

filename=$1
while [ -n "$2" ] 
do
	cat $2 >> $filename
	shift
done	


创作不易,球球了留个赞再走吧(っ °Д °;)っ

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:53:40  更:2021-10-12 23:54:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:46:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码