shell中文件路径用变量定义_Shell和Vi编辑器

一. 操作目的:

1. 熟悉shell的各项功能;

2. 掌握Linux系统终端方式使用的编辑器vi;

3. 学习vi的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查找/替换等命令。

二. 操作内容:

1. 练习使用shell的各项功能;

2. 熟练掌握vi编辑器的使用。

三. 实际操作:

1. Vi编辑器

1) 熟悉vi编辑起的使用

  • 在/root这个目录下建立一个名为vitest的目录

sudo mkdir /root/vitest

06d1e6de76a2459c61d22019016a11b8.png
  • 进入vitest目录,将/etc/manpath.config复制到当前目录

su root cd /root/vitest sudo cp /etc/manpath.config /root/vitest .

cfcd94d6cbd372265cae0e9ceee3bbb3.png
  • 使用vi打开当前目录下的manpath.config

vi manpath.config

9434c4bcb9005d74e8e525906aa66ae3.png
  • 在vi中设置行号

:set nu

6a66ce05d4a3ab604cdc78e8387d7f7b.png
  • 移动光标到第一行,并向下搜索pager这个字符串,请问它是第几行?

:/pager

20e943e68f020482236bfaba6d5de33e.png
  • 将50-100行之间man替换炒年糕MAN,并且要求逐个修改

:50,100s/man/MAN/g

48a721dba69b068f7fa4b4e0a3dd6bb2.png

4fb4d896847606733a983a9ff2ea1168.png
  • 修改完成后全部恢复

u

ab7c941fb84748bc34c2b6c05c30981e.png
  • 复制66-75行的10行内容到最后一行之后

66G 10yy G p

1b6fb29f752ce9f26bcb7a6f7e4cd23c.png

26c12772a8e02bbc48b1d6e94dda8910.png

616a842ba6cd31a219f32cf6eb2f388b.png

b077bc73780c877f64ac0dfaa5eb6c11.png
  • 删除第 11-30行之间的20行

11G 20dd

98ebedc63405eb938a6f6b75066b51a5.png

ade51334888c429d55c5eff34e7eea89.png
  • 将文件另存为一个manpath.test.config

w manpath.test.config

3cddd33d86d4db033c14395b85f79c5f.png
  • 将光标移到第29行,并且删除第15个字符

29G 15<space> x

4204e5c97a5a7f9e8abc5e58b314b771.png

df24f125a69b1fab9a53a2a8ee446619.png

2e452c2f11bfaad594216022ba2dce5e.png
  • 统计目前的文件有多少行及多少文字?

:!wc –l –c manpath.config

22f57e8558eff8236201b9b2180abed9.png
  • 保存退出

:wq

2) 在vi中编写一个abc.c程序,具体如下;对程序进行编译、连接、运行。

c222a2babdc5ecabdbac084ed1da0a92.png

0c0907d3f0c7bc23830692cc48f72653.png

c984fa72d304608612ed1c938d714657.png

3) 编写一个程序解决“鸡兔同笼”问题。对程序进行编译、连接、运行。

4851c1f3ce64f20842437701d78b9d73.png

7c5189a2259e11620425fbeb06df162e.png

64889caa714201801fb3c6818f3e2479.png

2. 熟悉Shell环境,使用Shell的各种功能

1) 命令补齐功能

  • 用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。

9c9412a0197fb98e0d201f8856ae4fc6.png
  • 用mkdir命令创建新的目录。首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。
  • 再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。

be098523a172cb831fec78e49c8d7f9e.png
  • 在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。
  • 最后输入要创建的目录名,按回车键执行命令。

25f85b0f9c59fb4858b6896cc587e42a.png
  • 多试几个命令利用tab键补齐。

0ec929ba9e89023aaf72e558d7c5ec2f.png

2) 命令别名功能

  • 输入alias命令,显示目前已经设置好的命令的别名。

51849059220d2aea366359b111e16d93.png
  • 设置别名ls为ls –l,以长格形式显示文件列表:#alias ls=‘ls -l’。
  • 显示别名ls代表的命令,确认设置生效:#alias ls。

472c58f599585999d9057a8c5f3842f4.png
  • 使用别名ls显示当前目录中的文件列表。

f04e972633fbf5fd4833e4f3f24a592d.png
  • 在使定义的别名不失效的情况下,使用系统的ls命令显示当前目录中的命令列表:#ls。

c524c338a9ac58e46dea38ce1f35ae67.png
  • 删除别名ls:#unalias ls。
  • 显示别名ls,确认删除别名已经生效:#alias ls。

0a360a9f1508259b39ed56ee548ad6ab.png
  • 最后再用命令ls 显示当前目录中的文件列表。

42582570efd8a427c57631ce1b15daf2.png

3) 输入、输出重定向和管道

(1) 输出重定向

  • 用ls命令显示当前目录中的文件列表:#ls –l。

4af05dafbef4fb6a30a517288bb3c094.png
  • 使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:( ls > list )。
  • l 查看文件list中的内容,注意在列表中会多出一个文件list,其长度为0。这说明shell是首先创建了一个空文件。( cat list )

dbaa3519b7145ee76bbb8454cbd1b815.png
  • 再次使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中。这次使用管道符号>>进行重定向:( ls >> list)。
  • 查看文件list的内容,可以看到用>>进行重定向是把新的输出内容附加在文件的末尾,注意其中两行list文件的信息中文件大小的区别:cat list。

f3760065951d9daa20bc61b40be474e3.png

(2) 输入重定向

  • 使用输入重定向,把上面生成的文件list用mail命令发送给自己:#mail root < list。
  • 查看新邮件,看看收到的新邮件中其内容是否为list文件中的内容。

edc6c7f368c0651ef2ebe8c70c0b974f.png

ae6a96400e50fb227116c4269b0e2928.png

71a15eda4973ea310bb8931c7fb66543.png

(3) 管道

  • 利用管道和wc命令,计算文件list中的行数、单词数和字符数:#cat list | wc

21683a569177abdea7758910619100f0.png

(4)查看和修改Shell变量

  • 用echo命令查看环境变量PATH的值:( echo $PATH)

8eb5f8794ecde84288059f28ba70d8ec.png
  • 设置环境变量PATH的值,把当前目录加入到命令搜索路径中去

export PATH=/home/zq:$PATH

  • 用echo命令查看环境变量PATH的值

echo $PATH

  • 比较前后两次的变化。

d527b9f486c838ca6e5546f3336ce959.png

4) shell编程并显示运行结果

  • 创建一个简单的 shell 程序,其功能为:
  • 显示计算机sell路径名以及显示系统日期和时间。
  • 环境变量PATH的值;把当前目录加入到PATH值中,显示PATH的新值
  • 定义一个变量str,赋值“Waiting for a minutes…”,并在屏幕输出;
  • 4)长格式显示主目录下的文件和目录,输出重定向到主目录下的file.txt文件中,并显示文件内容。

fe55a80342866cfd7dd56041bfd539d3.png

917b66a9956da80f22c3ad7ad6fc9361.png

b6c28cc969eac01ddd71cefdebeffdd0.png

4e374bcd35908f4d9db6d8775ed29167.png

3813a4cd6167bd646b4c8db6b9b87bcc.png

e472be0c13e6a9e9474241a362ed962b.png

e76c06bde088f6f33423f087091a17a1.png
  • 编写一个 shell 程序,要求:根据从键盘输入的学生成绩,显示相应的成绩等级,其中60 分以下为“Failed!”,60-79 分为“Passed!”,80-100分为“Excellent!”。

67703f85fdd20856984408ef741822c7.png

a5528038fdba445393009ad1189f377f.png

6a373ba85feaf89f42306c0da99fbf18.png

64bb2b002c2f02bab5507c1a0d722f67.png

016e185f111b387ea1fdd0203d7abe78.png

105c8292d303fb4a1cbf58bfb7ebbf9b.png

4d85cf2c789e7de8495feba5a6c6f07c.png
  • 设计一个 shell 程序,添加一个新组 class1,然后添加属于这个组的 30 个用户,用户名的形式为std??,其中??从 01 到 30

48c4b8b7fd795a44365b111ba0206909.png

6c8caf5ef89cb988c33e5893fae91030.png

ef21413d501602dfd2aded4e5b442428.png

485d4dd5efae201bfe620f9a41f69944.png

c32fbc31280277d853fded80b2821c50.png

c0be87cbe1919139e3ee7ca47f26a0c9.png

(图片有点多,看到这里谢谢大家啦)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值