ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

RHEL之(八)Red Hat Linux Shell编程基础 I :初识Linux Shell

2021-05-04 23:34:14  阅读:178  来源: 互联网

标签:shell 定义 系统 用户 Shell RHEL Linux 环境变量


Linux Shell编程基础

  一、什么是Shell

  Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系:

   

 

 

 

  Shell也是一门编程语言,即shell脚本,shell是解释执行的脚本语言,可直接调用linux命令。

  一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的。

  利用Shell功能,结合控制语句写的一种程序,主要用于帮我们维护系统。

 

  二、Shell的种类 

  操作系统内核(kernel)与shell是独立的套件,而且都可被替换。不同的操作系统使用不同的shell;同一个kernel之上可以使用不同的shell。

  常见的shell分为两大主流:

  sh:

    Bourne shell(sh),Solaris,hpux默认shell

    Bourne again shell(bash),Linux系统默认shell

  csh:

    C shell(csh)

    tc shell(tcsh)

 

  三、环境变量定义

  临时环境变量

  所谓临时变量是指在用户在当前登陆环境生效的变量,用户登陆系统后,直接在命令行上定义的环境变量便只能在当前的登陆环境中使用。当退出系统后,环境变量将不能下次登陆时继续使用。

   

  将环境变量永久生效

  通过将环境变量定义写入到配置文件中,用户每次登陆时系统自动定义,则无需再到命令行重新定义。定义环境变量的常见配置文件如下:

  /etc/profile (针对系统所有用户生效,此文件应用于所有用户每次登陆系统时的环境变量定义)

  $HOME_name/.bash_profile  针对特定用户生效,$HOME为用户的宿主目录,当用户登陆系统后,首先继承/etc/profile文件中的定义,再应用$HOME/.bash_profile文件中的定义。

 

  系统预定义的环境变量

  系统环境变量对所有用户有效,如:$PATH、$HOME、$SHELL、$PWD等等,如下用echo命令打印上述的系统环境变量:

   

 

  (1)定义变量

   

  Tips:注意事项:

  ①等号左右两边不能有空格

  ②变量名不能以数字开头 

  ③变量名可以使用 _ 开头( 如:[root@servera ~]# _var=value )

  ④如果变量的值含有空格,必须使用引号: 单引号 或者 双引号

         (如:[root@servera ~]# var1="test var shell"

 

  Tips:

  如果你的内容没有特殊字符,单双引号都行; 如果含有特殊字符

  单引号和双引号的区别:

    现象:单引号里的内容会全部原样输出,而双引号里的内容会有变化(执行特殊字符)

    原因:单引号会将所有特殊字符脱意

    NUM=10    

    SUM="$NUM hehe"     echo $SUM     输出10 hehe

    SUM2='$NUM hehe'     echo $SUM2    输出$NUM hehe

  

 

   

       

  ⑤可以把一个命令的结果赋予一个变量。使用 符号 `

   

 

   

 

  ⑥ 变量的类型

  局部变量:不能被子进程调用(var1=`hostname`)

  全局变量:可以被子进程调用(export var1=`hostname`)

    

 

 

 

  ⑦变量的值类型

  7-1、字符串型

    

         7-2、数字:通过declare来声明定义变量的类型(-i int 整型)

    

 

  ⑧进行简单数学运算

   

 

 

  可以用let命令来实现简单的数学运算: 

   

 

   

 

  read:标准输入读取

   

 

标签:shell,定义,系统,用户,Shell,RHEL,Linux,环境变量
来源: https://www.cnblogs.com/zylSec/p/14730614.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有