
实验报告_Shell及Shell编程.doc
5星
- 浏览量: 0
- 大小:None
- 文件类型:DOC
简介:
实验报告2 Shell及Shell编程重点研究了Bash shell的使用方法及其相关功能。该技术涉及shell scripting、configuration files以及common commands的编写与应用。Shell作为基于文本终端的编程语言,在Linux和Unix等操作系统中被广泛采用,并成为用户与操作系统的交互界面。其中,Bash shell因其易用性和功能强大而成为 most popular choice among shell tools.
**Bash配置文件**:
- 属于系统的初始配置文件,在所有用户登录时自动加载并执行。
- 用于设置个人工作环境的启动配置文件,在用户首次登录终端时被调用。
- 设计用于用户自定义命令和环境变量的初始配置文件,会在每次终端启动前运行。
- 执行用户注销操作前的重要参数设置流程。
2. **Bash常用命令**:
- `history`:列出用户的历史指令记录。
- `alias`:为常用指令创建替代名称,简化操作流程。
- 输入输出重定向功能包括:
- 使用`>`将指令的输出重定向到指定文件,
- 使用`<`从指定文件读取输入内容,
- 使用`>>`将额外的结果附加到目标文件尾部。
3. **Shell脚本格式**:
- 脚本的第一行通常是带有此shebang指令`#!binbash`的行,用于声明解释器。
- 通过适当的缩进与注释使代码更具可读性。
- 各条指令以独立的行呈现,便于执行和调试。
4. **Bash元字符**:
这些元字符包括`*`, `?`, `[`等,在脚本中用于文件名的扩展与模式匹配。在命令行界面中,$被用来引用当前目录中的变量。变量:
- 用户变量仅限于当前 shell 会话的范围。
- 环境变量可被所有子进程访问以实现信息传递功能。
- 使用 `= 运算符进行赋值操作,通过 `$ 变量名`实现变量引用。
- 内置变量包括像 `$scriptname` 这样的用于标识当前脚本名称的变量以及 `$args_count` 用于指示命令行参数数量的示例。
6. **Bash内置命令**:
- `eval`:将该字符串解释为并运行相应的 shell 命令。
- `echo`:将内容写入标准输出以供终端查看。
- `exec`:将该字符串作为参数传递给指定的 shell 命令文件,并运行相应的操作。
7. **Arithmetic Operations and Condition Testing**:
- The `let` operator is responsible for processing and calculating specified arithmetic expressions.
- Operators such as `test` along with square brackets (`[ ]`) are utilized to perform condition testing, including checks on file existence and numerical comparisons.
- Logical operations are executed using `-a`, which stands for AND (logical conjunction), and `-o`, representing OR (logical disjunction).
8. **控制结构**:
- `if`:由特定条件决定是否执行相应的代码块。
- `for`循环通常用于遍历序列以实现循环处理功能。
- `case`:通过多路分支来实现不同情况下的操作。9. **功能块与源指令**:
- 功能块:命名存储特定操作的代码片段。
- 源指令(`.`或`source`):执行脚本中的命令,将所需变量与当前Shell环境绑定起来。
在实习内容中,实践了这些知识点:
- 对.bash_profile进行调整,使其输出欢迎信息及目录列表,并通过`echo`命令实现这一功能。进一步优化后,脚本会根据用户权限显示相应的提示消息。
- 在使用`history`记录操作的同时,结合`alias`创建快捷方式,并将这些设置保存至`.bashrc`配置文件中。通过命令行工具`vim`, 可以轻松删除历史记录中的多余索引。
- 在.bashrc脚本末尾添加多条`alias`指令,这些别名在用户登录时就会生效。例如,将cp绑定为Sudo cop等常用操作的快捷方式。
- 通过分析相关代码文件,深入理解该脚本的功能模块。具体来说,包括身份验证流程以及消息传递机制两部分。
- 开发一个计数器程序,遍历指定目录下的所有文件,并根据其后缀名进行分类统计。
- 创建并完善`backup.sh`自动化备份脚本。该脚本能够识别文件类型,并将符合条件的文件复制至远程服务器指定目录下。
- 编写一个名为`mytar.sh`的自定义 archiving script,在运行前会对输入参数进行合法性验证。如果发现异常值,则会提前报错并终止执行。
通过一系列相关练习,学生能够在一定程度上掌握Shell语言的使用方法,并提升执行自动化的技能水平和效率。
全部评论 (0)


