实验目的
1. 掌握Shell基本功能与基本概念
2. 掌握Linux的基本命令
实验内容
一. Shell基本功能
- 练习shell命令格式与命令行编辑特性,教材3.5节。
- 练习标准流与I/O重定向:
- 观察你的系统根目录下各目录的文件名、权限与属性,并保存结果到~/rootfile中。
- 执行命令:cat /etc/crontab /etc/csuft,观察输出结果;
- 执行命令:cat /etc/crontab /etc/csuft > list,对比上一条命令,输出结果有何变化?为什么有此变化? 输出结果只有标准错误输出了,因为将标准输出重定向到list文件,所以不会在命令行输出而是写入list文件。
- 执行命令,将stdout与stderr分别存到 list_right 和list_error文件中;
- 执行命令,将错误的数据丢入/dev/null,屏幕上显示正确的数据;
- 执行命令:$ cat /etc/crontab /etc/csuft > list 2> list(将数据全部写入list文件),查看list文件,与步骤(b)有何不同?为什么? 标准输出和标准错误输出都写入了list,但是写入的顺序混乱,这是因为命令将标准输出和标准错误输出都重定向到list文件,导致二者同时写list文件造成了内容的交错。
- 执行指令,实现上一步的正确结果。将错误输出合并到标准输出然后重定向到list文件,这样顺序就正确了。
- 练习教材1.8、1.9的相关内容。
二. Linux系统基本命令
1. 练习教材3.2.1节目录操作基本命令ls、mkdir、rmdir、cd、pwd。
- 练习教材3.2 文件操作基本命令cat、more、less、wc、head/tail、mv、rm。
3. 练习文件和目录复制命令cp:
- 用root身份,将主文件夹下的 .bashrc 复制到 /tmp 下,并更名为 bashrc;
- 变换目录到/tmp,并将/var/log/wtmp复制到/tmp并观察文件属性差异;如何将文件所有特性都复制?使用-p参数可以保持源文件属性。
- 练习cp命令其他选项。
实验总结
- 在家目录下使用ls加通配符查找以s开头的文件时,出现了原本不在家目录下且不以s开头的文件firefox,用find命令查找firefox发现它在家目录下单snap文件夹下,出现的原因是snap匹配了之后递归显示了snap文件夹下的文件
- 重定向写的先后顺序也很重要,执行时按照先左后右,避免多个输出写入同一个位置导致内容错位或覆盖
- cp是复制文件,mv是移动文件,cp复制后原文件还在原来的目录,mv移动后原文件不在原来的目录而是在新目录。
- 命令可以带有不同的参数以实现不同的效果,需要灵活运用