RHCE 学习笔记(38 ) - Shell

Shell脚本的参考书从基础到高级可以找几百本出来,豆子这里过为了整个学习笔记的完整性,还是厚颜把最最基本的语法回顾一遍。最基本包括变量,比较,运算符,条件语句,循环语句。

变量分为本地变量,环境变量,位置变量

首先看看本地变量, 变量名=值的方式赋值,不过只在当前的shell里面有效

比如,子shell里面就无法识别了

可以通过export的方式配置环境变量,这样子shell里面也可以识别

不过上面的配置只是临时生效,重启就没了

可以通过修改配置文件的方式永久生效。登录家目录的时候,会自动加载家目录下的这些隐藏文件。

上面只是对当前用户生效,如果对所有用户都生效,可以修改/etc/bashrc 文件。

这些文件的加载的顺序如下所示。

Shell里面已经有预先配置的环境变量了,比如

可以根据需要修改,比如我需要提示符前面显示整个路径,可以修改$PS1 变量

此外,还有针对位置的变量,比如$1,$2分别代表第一个位置和第二个位置的变量。如果是10要括弧起来

我还可以用 $# 统计所有的变量数目,$* 输出所有变量

例如:输出第一个位置值(程序本身名字) 第二个位置的值(其实是第一个参数)

输出的时候注意区别,单引号,双引号和反引号

还有一些预定义的变量有特殊意义, $?表示上一次的命令的返回值,0表示成功,其他数字表示失败

比较主要可以对数值,字符比较;注意这个和其他很多语言是反的,-eq ,-gt之类的比较的是数字;==,< 反而比较的是字符。

除此还可以判断文件,目录是否存在。

对于数值运算,可以通过declare,(()),let和bc来操作。但是只有bc可以进行浮点运算,其他都是整数运算。

条件判断语句一般有两种 if ..else 或者 case 的形式。

比如判断一个用户名是否存在

根据case 判断

循环比较常用 while 和 for

比如从1加到10

可以通过read读取文件或者屏幕输入

比如 输出 passwd的内容

类似的,读取test.txt的内容,创建用户

如果想中断循环,可以用break;

for 循环也很简单,比如输出一个乘法表

时间: 2024-11-05 22:36:30

RHCE 学习笔记(38 ) - Shell的相关文章

[原创]java WEB学习笔记38:EL 中的 11个 隐含对象 详解

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Linux学习笔记(二)-Shell教程

1. Shell教程 1. Shell教程 Shell是一个用c语言编写的程序,是用户使用Linux的桥梁.Linux既是一种命令语言,又是一种程序设计语言. Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.. shell脚本:Shell脚本是一种为了Shell编写的脚本程序. shell环境:Shell编程跟Java,Php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以. 来自为知笔记(Wiz)

Linux学习笔记(三)-Shell命令机制

切换命令行:ctrl+alt+f1-f6 切换到图形界面:ctrl+alt+f7 ls-list(win下的dir) 白色:普通文件 蓝色:目录文件 绿色:可执行文件 执行步骤: 输入ls 在相关目录下去找命令程序(path,环境变量:/etc/environment),whereis+命令:查找该命令的可执行文件的位置 基于shell的基本类库Bash 底层的交互 GNU,FSF,Bash,Coreutils 来自为知笔记(Wiz)

Linux学习笔记(17) Shell编程之基础

1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find.cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了. (2) 基础正则表达式 元字符 作用 * 前一个字符匹配0次或任意多次 . 匹配除了换行符外任意一个字符 ^ 匹配行首,如:^hello会匹配以hello开头的行 $ 匹配行尾,如:hello$会匹配以hello结尾的

RHCE 学习笔记(5)- 本地用户和组的管理

这一节跟老师学习了RHEL7的用户管理 在windows里面,用户信息和密码是保存C:\windows\system32\config\sam 中,类似的,RHEL是将信息保存在 /etc/passwd 和 /etc/shadow 里面 管理用户可以通过图形界面或者命令行,首先我们看看图形工具 安装 df -h 查看挂载点 切换用户到root,安装rpm包 打开图形工具 打开界面如下所示 看看用户的属性, 注意login Shell的区别,默认是/bin/bash, 如果设定成/sbin/nol

linux学习笔记之shell(二)——自动化脚本

本文参考:shell脚本学习指南 本文阅读前提为:知道shell指令,但不知道如何完成一个自动化的shell脚本. 因为编辑本文时,作者也是一个新手.所以,在一些理论上,可能存在错误.如果存在错误,希望指出(可发送email:[email protected]). 此文会定时更新.直到有一个相对完善的版本. 一:如何让系统识别,以及一些前期细节. 1,系统如何识别:当系统执行一个可执行文件时,发现不是可执行格式.内核会收到一个错误消息:此文件不是可执行文件.此时,会尝试调用调用解释器. 2,如何

RHCE 学习笔记(27) grub 和开机排错

这一节学习了grub的概念,开机调用顺序,如何自定义grub文件,以及对一些常见的系统启动错误如何排错等等. 之前学习了MBR分区的前446个字节存放的是系统引导程序grub,中间64字节是分区表,最后2个字节表示结束.那么什么是grub是怎么工作的呢? 简单的说,开机会经历以下几步: BIOS自检,检查硬件: 激活MBR,MBR上不存在文件系统,可以视作硬件一部分,因此可以被直接读取 grub加载到内存,生成一个微系统,微系统内置了精简版的文件系统 通过这个微系统,他会去引导分区,比如默认一般

linux学习笔记之shell

本文参考:shell脚本学习指南 本文阅读前提为:知道shell指令,但不知道如何完成一个自动化的shell脚本. 因为编辑本文时,作者也是一个新手.所以,在一些理论上,可能存在错误.如果存在错误,希望指出(可发送email:[email protected]). 此文会定时更新.直到有一个相对完善的版本. 一:如何让系统识别,以及一些前期细节. 1,系统如何识别:当系统执行一个可执行文件时,发现不是可执行格式.内核会收到一个错误消息:此文件不是可执行文件.此时,会尝试调用调用解释器. 2,如何

Linux学习笔记之shell编程基础

编程语言: 机器语言.汇编语言 .高级语言 静态语言:编译性语言 ,特点: 强类型(变量在使用前,必须先声明,甚至还需要初始化):事先转换成可执行文件.包含语言如: C .C++.JAVA.C# 动态语言:解释性语言 ,特点: 弱类型(变量用时声明,甚至不区分类型):边解释边执行.包含语言如: ASP.ASP.NET .PHP .SHELL .Python .PERL 编程能力: 面向过程 :Shell.C 面向对象:Python .Perl .JAVA .C++ Bash :变量 类型 环境变