Linux实习报告—实验二 shell及shell编程

这篇博客主要介绍了Bash脚本的学习目标和要求,包括熟悉Bash配置文件、常用命令、脚本格式和控制结构等。实习内容涵盖了从基本命令操作到编写脚本,如修改Bash配置文件、使用alias、编写脚本实现特定功能等。此外,还分析了一个检查用户登录状态并发送消息的脚本,以及编写统计目录文件类型的脚本。最后,提出了编写备份和归档压缩脚本的挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实习目的

  1. 学习shell的功能及相关配置文件,及Bash常用命令
  2. 学习shell脚本的编写格式
  3. 学习编写简单的Bash脚本
  • 实习要求
  1. 了解Bash相关配置文件:/etc/profile、$HOME/.bash_profile、$HOME/.bashrc、$HOME/.bash_logout
  2. 掌握Bash常用命令:history、alias、输入输出重定向
  3. 了解shell脚本的格式
  4. 掌握Bash中常见元字符的功能
  5. 掌握Bash中变量的概念:用户变量和环境变量的区别、变量的复制与引用及Bash的常用内置变量和环境变量
  6. 掌握Bash内置命令:eval、echo、exec
  7. 掌握Bash中的算术运算let、条件测试test和[ ]及各种测试和逻辑运算
  8. 掌握Bash的控制结构:if、for、case
  9. 了解Bash的函数、点命令
  • 实习内容
  1. 练习课本中有关shell的命令
  2. 修改Bash的配置文件,让所有用户登录后首先显示用户主目录中的所有内容,并致欢迎词。

 Vim .bash_profile  启动vi编辑器并在其后输入内容;

Ls -a   显示用户主目录下的所有文件;

Echo “welcome to come in!”  显示欢迎词。

3.将某用户最近使用过的20条命令行保存到一个文件中,并用vi编辑,删除命令行前的序号。

history 20 >>one.txt 将某用户最近使用过的20条命令行保存到one.txt中;

vim one.txt 启动编辑器并删除序号;

cat one.txt 查看文件信息。

4.为某个用户添加命令5个别名(具体命令自定),并使其在每次登录后就可以直接使用。

alias a='ls -a'

alias l='ls -l'

alias mk=mkdir

alias e=echo

alias w=wc

5.分析如下脚本功能(注释每条语句,并描述脚本功能):

username=$1//将第一个位置参数赋值给变量username。

[ -z $username ]&&read -p “Please Input Username:” username

//如果username值为空,则通过键盘再次给username赋值,并提示信息“Please Input Username:”。

w -h|grep -q “^$username” || { echo $username do not login;exit 1;}

//检查用户名为username值的用户是否登录,若没有登录,则输出“username do not login;exit 1;”。

echo -n Input Message to Send://在屏幕上显示“Input Message to Send:”且不换行。

read msg//读取键盘输入,并保存到msg变量中。

if echo $msg|write $username 2>/dev/null //将msg变量中的内容发送给username值指定的用户,并将错误信息存入/dev/null里,屏幕上不显示。

       then  echo Send Message successfully!!//若发送成功,则屏幕上显示该信息。

       else  echo Send Message fail!!//若发送失败,则显示该信息。

fi//脚本功能,给指定的用户发送指定信息,若用户没有登录,则显示用户未登录,否则将指定信息发送给用户,且显示成功与否。

6、编写脚本统计指定目录中普通文件的个数、目录的个数、链接文件的个数。

#!/bin/bash
[ $# -eq 0]&&{
echo 指定待统计目录的列表
exit 1;
}
fa=`ls -l"$@"|grep "^-"|wc -l`
fb=`ls -l "$@"|grep "^d"|wc -l`
fc=`ls -l "$@"|grep "^l"|wc -l`
echo "普通文件:$fa 目录文件: $fb 链接文件:$fc"
  1. 编写一个脚本名称为backup.sh,将第二个位置参数及其以后各参数所指定目录中的以.c和.sh结尾的,且文件大小不为0的文件复制到第一个位置参数所指定的目录中。 (注:要求检查位置参数的合法性)

8、编写脚本mytar.sh,将位置参数指定的所有文件(目录)进行归档并压缩,文件名格式:年月日(xxxx-xx-xx).tar.gz。要求检测位置参数个数,若为0,给出错误信息。

vim mytar.sh  启动vi编辑器并将脚本命名为mytar.sh;

在vi编辑器中输入命令代码;

在命令行中输入chmod a+x mytar.sh;

./mytar.sh feb.c将文件进行归档压缩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值