(1)熟悉终端的使用和 shell 命令格式
(2)掌握获得帮助的方法及常用命令的使用
二、实验内容 注意:
本次实验操作均在普通用户模式下进行操作,不使用超级用户root;注意每一行代码中间有空格
作为分隔符,不要一行命令全连在一起,否则无法执行。
1.按照下图所示结构在自己的主目录中创建目录树,并使用相关命令验证实验结果。
#每一行为一个命令,敲完一行代码按回车键执行
mkdir ~/{myproj,mybook,work}
mkdir ~/mybook/{python,cpp}
mkdir ~/myproj/calc/{src,bin,doc}
mkdir ~/myproj/calc/src/{c,include,lib}
#用tree命令查看目录树,tree需要提前自行安装
tree -d -L 4 ~
2.获取passwd的简介或在man帮助中的分布情况,查找passwd二进制文件所在位置,然后切换当前工作目录到~/work子目录,使用 man 命令获取passwd文件和passwd命令的帮助信息并保存存到passwd.txt文件中。统计/dev目录下有多少个块设备和多少个字符设备,并显示到屏幕。
whereis -b passwd #查找passwd二进制文件所在位置 cd work #切换到work目录 man passwd > passwd.txt #将man passwd得到的信息覆盖到新创建在work目录下的passwd.txt文件里 cd ~ #切换到主目录 ls /dev |grep 'b' |wc -l #列出/dev目录下的文件目录信息,利用grep 'b'查找块设备,再用wc -l统计多少行即为设备个数 ls /dev | grep 'c' |wc -l #同理,grep 'c'即查找字符设备
3.以如下格式在屏幕上显示日期和时间信息:
当前日期: XXXX年XX月XX日
据1970.1.1日00:00:00时间流逝XXXXXXXX秒
今天是本年度的第 XXX 天,在第 XX 周
date +当前日期:%Y年%m月%d日%t当前时间:%H:%M:%S%n据1970.1.1日00:00:00时间流逝%s秒%n今天是本年度的第%j天,在第%U周 #本命令为一行,写命令时注意%后字母大小写
4.在~/work子目录中创建空目录myuser、mydata和myDoc,并将在上面生成的passwd.txt文件复制到myDoc目录中,然后删除原始文件。
mkdir ~/work/{myuser,mydata,myDoc}
#同时创建三个目录
cp ~/work/passwd.txt ~/work/myDoc
#cp命令复制时注意源文件与目的路径
rm ~/work/passwd.txt
#rm命令删除文件
ls ~/work
#查看work目录下是否还存在passwd.txt
ls ~/work/myDoc
#查看myDoc下是否有文件passwd.txt
5.获取目前正在登录系统的用户账号列表,并过滤出自己的账号记录,写入文件st.lst的同时也在屏幕上显示输出。
who | grep 'xxxxx' | tee st.lst #who命令查找登录用户,通过管道 #用grep搜索用户,'xxxx'即要搜索的用户 #tee三通,将信息打在屏幕上,同时录入到文件里
6.选取ifconfig命令输出的网卡配置ip地址并输出到标准输出。输出本机配置的所有网络接口的ipv4地址列表到mydata目录中的ipdata文件,统计网络接口数量并追加到ipdata文件中。
ifconfig | grep inet | grep -v inet6 | awk '{print $2}' | tee ~/work/mydata/ipdata |wc -l >> ~/work/mydata/ipdata
#我愿称之为代码的艺术,通过管道将多个命令用一行代码实现功能
#awk与sed ,grep被称为Linux“三剑客”,具体用法自行搜索
cat ~/work/mydata/ipdata
#cat命令查看ipdata文件的内容是否为你所提取的ip地址
7.在上述目录树的c目录中创建两个文件空文件 ex1.c 和 ex2.c,然后将下面的对应内容输入到文件中并保存。合并 ex1.c 与 ex2.c的内容 为ex3.c。
touch ~/myproj/calc/src/c/{ex1.c,ex2.c}
#创建两个新文件
cd ./myproj/calc/src/c
#切换到文件所处路径,便于后续操作
vi ex1.c ex2.c
#利用vi文本编辑器对两个文件进行操作
我是同时开启两个窗口进行编辑,' i '键进入编辑,esc键退出编辑。具体操作查询vi编辑器使用方法。
cat ex1.c ex2.c > ex3.c #因为刚才已经切换路径到文件所位置,直接对两个文件进行cat操作把内容输出到ex3.c里,此时新文件保存在当前目录里 cat ex3.c #查看ex3.c文件内容
8.将子目录c移动到~/work目录下。以彩色显示不同类型文件的形式查看用户主目录的目录树结构。
mv ~/myproj/calc/src/c ~/work #将c目录下内容移动到work目录下 tree -C ~ #注意是大写C,该命令实现将不同颜色列出主目录的目录树
9.以用户主目录为起点查找文件名以ex开头的文件,并复制到目录树中src子目录下。
find -name "ex*" -exec cp {} ~/myproj/calc/src/ ;
#代码的艺术又出现了,一行代码解决问题
#利用find的名字条件表达式-name以及动作表达式-exec解决问题
ls ~/myproj/calc/src
#查看此目录下是否有刚才复制的内容
10.将目录树中的calc目录及其子目录和文件打包并压缩为calc.tar.gz文件,并保存在work下的backup子目录中
mkdir ~/work/backup #在work下创建backup空目录 tar -czvf ~/work/backup/calc.tar.gz -c ~/myproj calc #利用tar命令进行文件打包压缩,注意打包文件末尾是.tar,打包压缩文件是.tar.gz三、实验总结
本次实验初步了解Linux下shell命令的基本操作格式,如何使用Linux终端,巧妙地利用好各个命令,可以达到十分便捷的操作效果。也同时熟悉了Linux的目录文件存放位置,在Linux下任何设备均以文件的形式存在,了解文件的存放规律,便于更好的管理计算机。



