Linux Shell基础:变量、重定向与实战练习
需积分: 0 125 浏览量
更新于2024-08-05
收藏 302KB PDF 举报
在这个关于Linux Shell编程的练习中,我们将会深入探讨以下几个核心知识点:
1. **默认Shell及修改**:
默认Shell在Linux系统中通常是bash,它是基于命令行的交互环境。要修改默认Shell,可以编辑`/etc/passwd`文件,找到对应用户的行,然后使用`usermod`命令更改shell字段。例如,`usermod -s /bin/zsh username`将用户的默认Shell设置为zsh。另外,也可以使用`useradd`命令创建新用户时指定shell路径。
2. **系统预设变量**:
六个常见的Linux系统预设变量包括:
- `$USER`:当前登录用户的用户名。
- `$HOME`:用户的主目录。
- `$PATH`:环境变量,定义了执行命令时搜索可执行文件的路径。
- `$HOSTNAME`:主机名。
- `$IFS`:输入字段分隔符,用于处理输入流中的数据分割。
- `$SHLVL`:运行的shell层次级别。
3. **输出重定向**:
- 将标准输出(`STDOUT`)和错误输出(`STDERR`)重定向到同一位置,可以使用`>`符号,如`command > output.txt`。这将覆盖原有文件,`>>`则追加内容至文件末尾。
- 将标准输出重定向到`/dev/null`,意味着丢弃输出,通常用于抑制输出,如`command > /dev/null`。
4. **脚本中的读取输入和排序**:
学习如何使用`read`命令从用户那里获取输入,通过`read -p`提示用户输入,并利用条件语句(如if判断)比较整数大小进行排序。例如,使用`num1=$(read -p "Enter first number: ")`获取用户输入并赋值给`num1`。
5. **石头、剪刀、布游戏脚本**:
创建一个交互式脚本,模拟石头、剪刀、布游戏,涉及变量初始化、用户输入、随机计算机选择、结果判断以及用户提示。
6. **网络状态检测**:
使用循环遍历IP范围(192.168.4.0/24),通过ping检查每个主机的可达性,判断其状态。
7. **打印乘法表**:
使用嵌套循环和`echo -n`来打印乘法表,避免每一项结束后自动换行。`echo -n "$i*$j=$[i*j]"`用于输出计算结果,`echo`会在每次循环结束时添加换行。
8. **CPU信息检测**:
通过分析`/proc/cpuinfo`文件中的`vendorid`行来识别CPU制造商。这个任务涉及到文件I/O操作和字符串处理,可能需要解析文件内容。
以上这些知识点涵盖了基础的Shell编程、变量管理、输入输出控制、脚本设计以及文件系统操作,对于理解和实践Linux系统管理与自动化任务非常关键。通过这些练习,不仅可以提升Shell编程能力,也有助于理解Linux系统内部工作原理。
2021-10-10 上传
2023-04-14 上传
2023-06-08 上传
2023-05-24 上传
2023-08-10 上传
2023-05-25 上传
2023-06-06 上传
2023-07-09 上传
2023-07-14 上传
![](https://profile-avatar.csdnimg.cn/bb7de9155e4943b1b3499ef30f48a46e_weixin_35759015.jpg!1)
黄浦江畔的夏先生
- 粉丝: 15
- 资源: 299
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景