shell基础-1

本文详细介绍了Shell脚本的执行方式,包括echo命令的使用,如何通过history查看和使用历史命令,以及alias命令别名的设定。此外,讲解了Bash中的grep、find命令以及括号的用法。还阐述了Bash变量的定义、调用、查看和删除,以及环境变量的设置、查询和删除,特别强调了PATH变量的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 一、Shell 脚本的执行方式

1、echo 命令 : echo 的内容就会打印到屏幕上

[root@localhost ~]# echo [选项] [输出内容]
选项:
-e: 支持反斜线控制的字符转换(具体参见表 11-2)
-n: 取消输出后行末的换行符号(就是内容输出后不换行)

在 echo 命令中如果使用了“-e”选项,则可以支持控制字符,如图 所示:
在这里插入图片描述

  • 二、 Bash 的基本功能

2、history :历史命令的查看

[root@localhost ~]# history [选项] [历史命令保存文件]
选项:
-c: 清空历史命令
-w: 把缓存中的历史命令写入历史命令保存文件。如果不手工指定历史命令保存文 件,则放入默认历史命令保存文件~/.bash_history 中

如果想要使用原先的历史命令有这样几种方法:
 使用上、下箭头调用以前的历史命令
 使用“!n”重复执行第 n 条历史命令
 使用“!!”重复执行上一条命令
 使用“!字串”重复执行最后一条以该字串开头的命令
 使用“!$”重复上一条命令的最后一个参数

3、alias:命令别名

命令格式: [root@localhost ~]# alias
#查询命令别名
[root@localhost ~]# alias 别名=‘原命令’
#设定命令别名

例如: [root@localhost ~]# alias
#查询系统中已经定义好的别名
alias cp=‘cp -i’
alias l.=‘ls -d .* --color=auto’
alias ll=‘ls -l --color=auto’
alias ls=‘ls --color=auto’
alias mv=‘mv -i’
alias rm=‘rm -i’
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde’

命令执行时的顺序是
这样的:
1、 第一顺位执行用绝对路径或相对路径执行的命令。
2、 第二顺位执行别名。
3、 第三顺位执行 Bash 的内部命令。
4 第四顺位执行按照$PATH 环境变量定义的目录查找顺序找到的第一个命令。
为了让这个别名永久生效,可以把别名写入环境变量配置文件“~/.bashrc”。命令如下:

[root@localhost ~]# vi /root/.bashrc

4、 grep:行提取命令

grep 命令是在文件当中搜索符合条件的字符串,如果需要模糊查询,使用正则表达式进行匹配,
搜索时字符串是包含匹配

> [root@localhost ~]# grep [选项] “搜索内容” 文件名

选项:
-A 数字: 列出符合条件的行,并列出后续的 n 行
-B 数字: 列出符合条件的行,并列出前面的 n 行
-c: 统计找到的符合条件的字符串的次数
-i: 忽略大小写
-n: 输出行号
-v: 反向查找
–color=auto 搜索出的关键字用颜色显示

例子:

[root@localhost ~]# grep “/bin/bash” /etc/passwd
#查找用户信息文件/etc/passwd 中,有多少可以登录的用户

5、find:搜索符合条件的文件名
find 命令是在系统当中搜索符合条件的文件名,如果需要模糊查询,使用通配符进行匹配,搜索时文件名是完全匹配

在这里插入图片描述
在这里插入图片描述
6、小括号、中括号和大括号

如果是用于一串命令的执行,
那么小括号和大括号的主要区别在于:
 ()执行一串命令时,需要重新开一个子 shell 进行执行
 {}执行一串命令时,是在当前 shell 执行;
 ()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开;
 ()最后一个命令可以不用分号;
 {}最后一个命令要用分号;
 {}的第一个命令和左括号之间必须要有一个空格;
 ()里的各命令不必和括号有空格;
 ()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的
所有命令。

三、Bash 的变量和运算符

1、在定义变量时,有一些规则需要遵守:
 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。
 在 Bash 中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。
 变量用等号连接值,等号左右两侧不能有空格。
 变量的值如果有空格,需要使用单引号或双引号包括。如:“test=“hello world!””。其中双引号括起来的内容“KaTeX parse error: Undefined control sequence: \” at position 4: ”、“\̲”̲和反引号都拥有特殊含义,而单引…变量名"或用${变量名}包含变量名。

2、用户自定义变量
1)、变量定义

[root@localhost ~]# 2name="shen chao"

2)、 变量调用

[root@localhost ~]# name="shen chao"
#定义变量 nam

3)、 变量查看

[root@localhost ~]# set [选项]
选项:
-u: 如果设定此选项,调用未声明变量时会报错(默认无任何提示)
-x: 如果设定此选项,在命令执行之前,会把命令先输出一次

4)、 变量删除

[root@localhost ~]# unset 变量名

3、环境变量

1)、环境变量设置

[root@localhost ~]# export age="18"

2)、环境变量查询和删除
env 命令和 set 命令的区别是,set 命令可以查看所有变量,而 env 命令只能查看环境变量。

[root@localhost ~]# unset gender
#查看环境变量
[root@localhost ~]# env | grep gender
#删除环境变量 gender

3)、系统默认环境变量

[root@localhost ~]# env

env 命令可以查询到所有的环境变量,可是还有一些变量虽然不是环境变量,却是和 Bash 操作接
口相关的变量,这些变量也对我们的 Bash 操作终端起到了重要的作用。这些变量就只能用 set 命令来查看了,

[root@localhost ~]# set

  • PATH 变量:系统查找命令的路径

[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值