RHCE 学习笔记(38 ) - Shell

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://beanxyz.blog.51cto.com/5570417/1611830

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 循环也很简单,比如输出一个乘法表

本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1611830

时间: 2024-09-17 04:41:14

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

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

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1593632 这一节跟老师学习了RHEL7的用户管理 在windows里面,用户信息和密码是保存C:\windows\system32\config\sam 中,类似的,RHEL是将信息保存在 /etc/passwd 和 /etc/shadow 里面 管理用户可以通过图形界面或者命令行,首先我们看看图形工具 安装 d

RHCE 学习笔记(17) 通配符和正则表达式

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1601050 这一节学习了通配符和正则表达式在grep里面使用. 首先看看Shell下的通配符.  最最常见的符号如下所示: 数字 [0-9] 字母 [a-z] 非字母[^a-z] 非数字[^0-9] 任意符号 * 转义符号 \ 大写 [[:upper:]]  小写 [[:lower:]] 数字 [[:digit:]

RHCE 学习笔记(22) 网络用户

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1602883 这一节主要学习了ldap的基本知识,并了解两个产品openldap和IPA的基本配置. ldap是轻量目录访问协议,以树的形式保存数据,支持跨平台的操作. 熟悉windows的管理员对活动目录并不陌生,AD基本上算是ldap的一种,微软对其集成了ldap和kerboros验证的功能.这里主要学习ldap

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

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1604763 这一节学习了grub的概念,开机调用顺序,如何自定义grub文件,以及对一些常见的系统启动错误如何排错等等. 之前学习了MBR分区的前446个字节存放的是系统引导程序grub,中间64字节是分区表,最后2个字节表示结束.那么什么是grub是怎么工作的呢? 简单的说,开机会经历以下几步: BIOS自检,检

shell脚本编程之if语句学习笔记_linux shell

我不是研究linux下的东西的,所以这里只对shell脚本的用法做一个介绍,把我自己在使用过程中出现的问题记录下来,同时也是写下一些shell脚本语法的规则,方便以后查看.先来学习一下条件语句if的用法,通过这一个简单的语法来说明一下shell脚本编程时候的东西. 复制代码 代码如下: #!/bin/sh echo "please input text1" read text1 echo "please input text2" read text2 #判断字符串等

RHCE 学习笔记(9) 网络管理

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1597852 n这一节本来按照教学大纲应该是学习SSH,不过SSH有很多网络相关的知识,因此老师把网络内容提前了一些.网络的基本知识例如IP,DNS,DHCP,路由协议等常识就不在此解释了. RHEL查看网卡的相关信息很容易,ifconfig就可以查看.注意 RHEL7里面的网卡名目方式从eth0,1,2的方式变成了

RHCE 学习笔记(10) 远程访问

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1598056 这一节学习了如何在Linux和windows下对RHEL进行远程访问.主要包括了SSH的密码,密钥访问,XShell以及VNC的使用 首先来看看Linux下如何远程访问另外一台服务器. 现在我有两条服务器 rhce7-00 和 rhce7-01,IP地址如下所示 rhce7-01 rhce7-00 从0

RHCE 学习笔记(18) 计划任务 at和 crontab

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1601420 正则表达式以后本来应该学习VIM,不过VIM的 相关知识以及在RH124学习过了,因此直接进入计划任务的学习. 计划任务主要有两个命令,at和crontab. at是一次性的,crontab是周期性的. 先来 看看at,at语法很简单 at + 时间 ,然后输入执行的内容,Ctrl+D保存退出即可 写个

RHCE 学习笔记(23) - 磁盘格式化和分区

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1603113 这一节学习RHEL7里面如何对磁盘进行分区和格式化,下一节会进一步学习如何配置LVM. 图形工具很简单,Disk工具打开就可以配置了,主要来看看命令行下如何配置MBR和GPT分区格式的硬盘. 传统的硬盘分区都是MBR格式,MBR分区位于0扇区,他一共512字节,前446字节是grub引导程序,这个会在后