RHCSA教程命令解释器shell

shell简介

shell:壳,命令解释器,负责解析用户输入的命令。
命令分两类:

  • 内置命令 (shell内置),shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是大部分都差不多
  • 外置命令,在文件系统的某个目录下,有个与命令名称相同的文件

type 命令查看命令是file、alias还是builtin

  • type -a 列出当前命令可以如何执行
  • type -t 仅列出命令按照哪种方式执行

那shell如何知道命令的可执行文件在哪个路径下呢?系统为了让用户在命令行快速方便地执行命令,将可执行文件的路径存储在环境变量PATH中。

在众多环境变量里面有一个环境变量叫做PATH,当用户每次执行外部命令的时候都会去该变量所记录的路径下搜索和命令同名的二进制文件,如果有则执行该二进制文件,如果没有则提示命令找不到。
在这里插入图片描述

shell中的变量

普通变量

普通变量也可称为局部变量,只能在创建它们的Shell函数或Shell脚本中使用,普通变量一般由开发者在开发脚本程序时创建。

设置变量:

  • 变量命名的规则:只能使用数字、字母和下划线,且不能用数字开头
  • 变量名和变量值用“=”连接
  • 等号两边不能有空格符

变量的赋值,一般有五种写法:

name=value
name1='value'
name_2="value"
_name_3=`cmd`
_na_me_4=$(cmd)

案例
创建普通变量local_data=1并访问
在这里插入图片描述

环境变量

环境变量也可称为全局变量,可以在创建它们的Shell 及其派生出来的任意子进程 Shell 中使用,环境变量又可分为自定义环境变量bash 内置的环境变量。

(1)bash内置的环境变量:用于定义 Shell 的运行环境,保证 Shell 命令的正确执行,Shell 通过环境
变量来确定登录用户名命令路径终端类型登录目录
(2)自定义环境变量:自定义环境变量可以在命令行中设置和创建,但用户退出命令时这些变量值就会丢失。如果希望永久保存环境变量,可在用户家目录下的 .bash_profile.bashrc 文件中,或者全局配置 /etc/bashrc/etc/profile 文件中定义,在将环境变量放入上述的文件中后,每次用户登录时这些变量都将被初始化。

按照系统规范,所有环境变量的名字均采用大写形式

在命令行中设置环境

export 变量名=value
变量名=value ; export 变量名
declare -x 变量名=value

在文件中设置环境变量(永久生效)

root用户的环境变量配置文件:

创建环境变量ROOT_DATA=1, 只有root用户可以访问到

在这里插入图片描述在这里插入图片描述

创建环境变量USER_DATA=user, 只有普通用户可以访问到
在这里插入图片描述在这里插入图片描述

创建环境变量DATA=all, root用户和普通用户都可以访问到

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

显示与取消变量

通过 echo 或 printf 打印变量

在这里插入图片描述

显示默认的环境变量

终端输入一下命令:

[root@server ~]# env
[root@server ~]# set
[root@server ~]# declare | head

用 unset 消除本地变量和环境变量

在这里插入图片描述

Linux中的特殊符号

特殊符号功能说明
;可使用分号分隔多条命令在一行上输入和执行多条较短的命令,可使用分号来分隔命令
*匹配任意零个或者多个字符不能用于创建文件
?匹配任意单个字符不能用于创建文件
[ ]匹配方括号中的任意一个字符,表示范围可以用"-”不能用于创建文件
^ 或者 !匹配方括号中的任意一个字符或数字后进行取反用于查找和删除文件,不用于创建文件
{string,string}匹配括号中的任意一个字符串,表示一个范围时,字符串之间个"…"可用于创建、查看、删除文件
\使\后面的特殊字符失效例如:可以在命令行后面加一个\,再按回车键时并不表示执行该命令,而是表示换行,通过此方式将一个较长的命令分成多行表达,增强命令的可读性。换行后系统自动显示提示符 >
`反引号,一般用于引用命令,执行的时候反引号里面的命令会被执行,与$()作用相同
单引号,将单引号内的所有内容都原样输出所有特殊字符在单引号里面都会失去特殊含义
"双引号,除了几个特殊字符外,将双引号内的几乎所有内容都原样输出”$“和“\”以及“ ` ”在双引号里面仍然保留自己的特殊含义

案例
引号的使用举例: 无引号,单引号,双引号,反引号,$()

在这里插入图片描述

在一行上执行两个命令,打印123和从root切换到普通用户

在这里插入图片描述

命令别名

作用:别名是命令的快捷方式。对于需要经常执行,并需要很长时间输入的长命令创建快捷方式很有用。

命令格式: alias 别名 =’原命令 [选项]…… [参数]…

案例
创建3个文件test1.txt, test2.txt, test3.txt
使用find查找test1.txt,test2.txt, test3.txt
使用别名: 将上边命令命名为myfind
取消别名

在这里插入图片描述

命令历史

功能:history 命令可以查阅命令历史记录 ,也可在命令行利用向上或向下光标键来进行查询

语法:history [选项] [参数]

选项:
number:显示最近number条命令历史

  • -c:清空当前历史命令
  • -a [file]:后面没跟文件时,默认将缓冲区中历史命令写入~/.bash_history
  • -r [file]:将历史命令文件中的命令读入当前历史命令缓冲区中
  • -w:将当前历史命令缓冲区命令写入历史命令文件中;

查看最近使用的10条历史命令
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecure

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值