1.shell分类及相关软件

 图形界面Shell(Graphical User Interface shell 即 GUI shell),如:GNOME、KDE

命令行式Shell(Command Line Interface shell ,即CLI shell),如:bash/sh/ksh/csh(Unix/linux 系统)

Shell软件有:Bourne shell 、cshell 、  Korn shell 、Bourne Again shell(bash)  、POSIX shell

AIX下是Korn Shell.    ---IBM

Solaris缺省的是Bourne shell.    ---SUN

FreeBSD缺省的是C shell     --免费

HP-UX缺省的是POSIX shell.    --惠普

Linux是Bourne Again shell.  ---bash

2.变量的声明与引用、撤销

定义本地变量: declare 
     
//内部命令,用来声明变量,并可以指定变量类型

     
  选项:   
   -i 
     
     
     
     
     
     
     
     
     
     
//声明为整型

-a
                 //声明为数组

-r
                 //声明变量为只读

-x
                 //声明环境变量

 注意:declare作用范围仅限于当前源程序文件(加了选项 -x除外),对SHELL来讲:仅对当前shell进程生效,对子进程或者其他shell无效。
注意:变量名只能包含字母,数字和下划线三类字符
注意:当变量声明为整型时,赋值字符型,其值为0

例子:

 [lbg@lbg root]$ declare -i a=123

[lbg@lbg
root]$ echo $a

123

[lbg@lbg
root]$ declare -i a=abc

[lbg@lbg
root]$ echo $a

0

进入子进程的方法:

 进入子进程的方法:直接输入bash即可:[lbg@lbg root]$
bash(可通过pstree命令验证查看)

定义环境变量:export

 export var_name=value 
 
 // 作用范围:当前shell及其子shell

例子:

 [lbg@lbg root]$ export
yy=111     
    ---定义环境变量yy,并赋值为111

[lbg@lbg
root]$ bash

[lbg@lbg
root]$ echo $yy

111

[lbg@lbg
root]$ exit

exit

[lbg@lbg
root]$ echo $yy

111

变量的引用:${a}

 $a   
     
     
     
 //引用变量a

规范做法是: ${a} 
   //花括号在有时候是可以省略的

例子:

 [lbg@lbg root]$ declare -i b=234

[lbg@lbg
root]$ echo $b

234

[lbg@lbg
root]$ echo ${b}

234

环境变量的查看:

 命令: env / printenv /export

[lbg@lbg
root]$ export

[lbg@lbg
root]$ env

[lbg@lbg
root]$ printenv

查看修改系统预设的环境变量:echo $PATH

[lbg@lbg
root]$ echo $PATH

撤销变量:unset 变量名

 unset 变量名               //撤销变量时不能加$符号

环境变量的撤销:unset:环境变量在哪个bash里声明的在哪撤销,否则撤销只在其shell进程生效,其他shell进程无影响,仍可用该变量。

注意:只读变量不能通过unset撤销.关闭当前shell或脚本运行完后自动撤销.

例子:

 [lbg@lbg root]$ echo ${b}

234

[lbg@lbg
root]$ unset b

[lbg@lbg
root]$ echo ${b}

[lbg@lbg
root]$

特别的环境变量:PS1/PS2/PS3/PS4

 [lbg@lbg root]$ echo $PS1

[\u@\h
\W]\$

[lbg@lbg
root]$ echo $PS2

>

[lbg@lbg
root]$ echo $PS3

[lbg@lbg
root]$ echo $PS4

+

变量PS1说明:

  PS1
  [\u@\h \W]\$ 
     
     
     
     
   //定义当前命令提示符,可以使用一些内置的宏来定义

\h
             //显示主机名第一个.之前的内容

\H
             //完整主机名

\W
             //基名  #basename
dir_name

\w
             //绝对路径

\$
             //uid=0-->#,非零为$

变量PS2 
     
>     
     
  :续航符。

 把一个预处理指示写成多行要用“\”续行,在击回车键之前输入“\”,即可实现多行命令输入。

[root@lbg
test]# ls


b  c

[root@lbg
test]# ls a \

> b
\

>
c


b  c

说明:PS3:不常见

说明:PS4 +:执行命令时,如果追踪命令执行的话,会在命令之前显示+

 shell 跟踪简单的来说就是跟踪 shell 脚本中的命令的执行。要打开 shell 跟踪,请使用 -x 调试选项。如:Bash -x
test.sh  

特殊变量?

 变量?存放程序执行的状态返回值,0表示正常状态,非0表示异常。

[root@lbg
test]# echo $?   
     
---为0说明上一个命令正常执行

0

变量$HOME表示家目录

 echo $HOME  --显示家目录

[root@lbg tmp]# echo $HOME

/root

变量$HISTSIZE表示history命令保存的记录数:

 [root@lbg tmp]# echo $HISTSIZE

1000

shell简介及变量的定义查看撤销的更多相关文章

  1. 3.1 shell简介、变量、运算符

    小知识: ipcs可以查看系统中创建的ipc进程间通信资源,例如信号量.共享内存等.示例如下: 什么是shell? shell是核心程序kernel之外的指令解析器,是一个程序,同时是一种命令语言和程 ...

  2. 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...

  3. 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...

  4. shell基础及变量符号

    kernel主要的功能: 1.内存的管理 2.设备驱动程序 3.文件系统的管理 4.进程的管理 5.网络系统   vim /etc/profile.d/ profile(主配置文件) .d(子配置文件 ...

  5. 一、shell编程与变量

    目录 命令是什么 命令是如何运行的: 基本语法 解释器 注释 如何执行 输入.输出流 重定向 管道符 | 变量 常见Shell变量的类型包括: 变量命名原则 单引号和双引号 反引号 变量作用范围 查看 ...

  6. (一)Linux Shell编程——简介、变量、字符串、数组

    1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...

  7. 01 shell编程之变量定义

    一.SHELL介绍 ㈠ 什么是shell脚本? 简单来说就是将需要执行的命令保存到文本中,按照顺序执行.它是解释型的,意味着不需要编译. 若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= s ...

  8. shell之路【第一篇】shell简介与入门

    shell简介 1.Shell 诞生于 Unix,Unix的第一个脚本语言,是与 Unix/Linux 交互的工具,单独地学习 Shell 是没有意义的,shell使用的熟练程度反映了用户对Unix/ ...

  9. Linux Shell编程、变量、控制语句

    为什么要学习Shell编程 1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. 2)对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些 ...

随机推荐

  1. linux centos 02

    1.PS1变量,命令提示符的修改 PS1="[\u@\h \W]\$" \u  代表 用户 @   占位符 \h  主机名 \W   工作路径的最后一位 \t  \w   工作路径 ...

  2. 【模拟】CF 796C Bank Hacking

    题目大意 洛谷链接 给定一棵带点权树,选出一个最佳的根节点,使得根节点的点权不变,它的儿子点权加1,其余点点权加2,并使最大点权最小,输出这个最小的最大点权. 其他见链接(懒). PS:原题面很不好总 ...

  3. linux(centos8):用fallocate快速生成大文件

    一,fallocate的用途? 1,用途 我们有时需要用大文件来测试下载速度, 有时需要用大文件来覆盖磁盘空间, 如果在网上搜索,很多文章讲的是使用dd等工具, 事实上linux系统已经内置了生成大文 ...

  4. centos8平台使用slabtop监控slab内存的状态

    一,slabtop 所属的包: [root@yjweb ~]# whereis slabtop slabtop: /usr/bin/slabtop /usr/share/man/man1/slabto ...

  5. 插件下载地址 ext

    ext2.2.0  http://files.cnblogs.com/files/chenghu/ext-2.2.zip http://files.cnblogs.com/files/chenghu/ ...

  6. 不死的小强 .net core 微服务 快速开发框架 Viper 限流

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  7. hystrix线程池隔离的原理与验证

    引子 幸福很简单: 今天项目半年规划被通过,终于可以早点下班.先坐公交,全程开着灯,买了了几天的书竟然有时间看了.半小时后,公交到站,换乘大巴车.车还等着上人的功夫,有昏暗的灯光,可以继续看会儿书.过 ...

  8. 从0实现python批量爬取p站插画

    一.本文编写缘由 很久没有写过爬虫,已经忘得差不多了.以爬取p站图片为着手点,进行爬虫复习与实践. 欢迎学习Python的小伙伴可以加我扣群86七06七945,大家一起学习讨论 二.获取网页源码 爬取 ...

  9. http与https随笔

    http: 超文本传输协议.使用TCP/IP协议 https: 安全超文本传输协议.使用TLS/SSL协议 不同: 1.安全 http是明文传输.http是具有安全性的SSL加密传输协议. https ...

  10. 使用ML.NET模型生成器来完成图片性别识别

    什么是ML.NET? ML.NET 使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中. 借助此功能,可以使用应用程序的可用数据进行自动预测. 机器学习应用程序利用数据中的模式来进行预测 ...