Linux Shell入门:set命令详解与脚本编程

需积分: 10 1 下载量 150 浏览量 更新于2024-07-14 收藏 1011KB PPT 举报
"Linux shell编程是系统管理员和开发者必备的基础技能之一,本文档主要介绍了Linux下的set命令以及shell编程的入门知识。set命令是Linux shell中的一个重要工具,它用于设置和管理环境变量,能够改变当前会话的属性。通过set命令,我们可以为shell传递参数变量,如`set abc def 123`,然后通过$1, $2, $3等引用这些参数。例如,`echo $2`会打印出`def`。 文档首先解释了shell的基本概念,它是用户与Linux系统交互的接口,具有强大的功能,包括bash,它是GNU项目的一部分,是Linux系统的主要shell,因为其开源特性,便于移植和定制。bash特别适合编写小型工具,虽然执行效率可能不如其他编译后的语言,但其易用性和灵活性使得它在很多场景下非常实用。 接着,文档介绍了shell中的关键概念,如管道和重定向。重定向包括输出重定向(如`ls -l > out.txt`)和输入重定向,以及标准输出和错误输出的单独处理。使用管道可以连接多个命令,如`pkillsleep | pkill out.txt 2>&1`,将输出重定向到指定文件,并合并标准输出和错误输出。 shell还可以作为程序设计语言,通过循环、条件判断和函数实现交互式和脚本式编程。如交互式程序示例展示了如何遍历目录,查找包含特定内容的文件,并显示符合条件的文件内容。脚本编程则是将这些操作封装在一个文件中,通过`#!/bin/sh`定义脚本执行的环境,`exit 0`确保脚本正常结束并返回正确的退出状态,文件后缀通常为.sh。 通配符在shell编程中扮演着重要角色,`*`代表任何字符串,`?`代表单个字符,`[set]`和`[^set]`用于匹配集合,而花括号`{}`则允许动态范围的匹配。此外,双引号````也有特殊用途,如嵌套命令行执行。 创建脚本时,需要理解`#!/bin/sh`的含义,注释的使用,以及如何正确设置脚本执行。最后,通过命令行或者加上执行权限来运行脚本,如`/bin/sh first.sh`或`chmod +x first.sh && ./first.sh`。 这个文档涵盖了Linux shell基础、set命令应用、管道和重定向技巧,以及脚本编程的方方面面,对初学者来说是一份有价值的入门指南。通过掌握这些内容,读者可以更好地理解和操作Linux系统,进行高效的自动化任务处理。"

为什么会这样[user_mongo@nosql01 replicaset]$ cd /opt [user_mongo@nosql01 opt]$ ll total 0 drwxr-xr-x. 3 root root 25 Mar 16 17:08 servers drwxr-xr-x. 2 root root 51 Mar 16 17:10 software [user_mongo@nosql01 opt]$ tar -zxvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/MPL-2 tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/MPL-2: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/README tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/README: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos: Cannot open: No such file or directory tar: Exiting with failure status due to previous errors [user_mongo@nosql01 opt]$ tar -zcvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ tar: Cowardly refusing to create an empty archive Try `tar --help' or `tar --usage' for more information.

2023-06-01 上传