linux -- shell基础
一、概述
1、shell 功能
2、shell 分类
二、脚本执行方式
1、echo
三、bash 基本功能
1、历史命令
配置文件:/etc/profile
命令格式:history [options] file
- c :清空历史命令
- w :把缓存中的历史命令写入历史保存文件 ~/.bash_history
2、别名设置
配置文件:/root/.bashrc
命令格式:
设置别名:alias 别名=‘原命令’(不可有空格存在)
查询别名:alias
删除别名:unalias
3、快捷键
3、输入 输出 重定向
概念理解:
键盘 -- /dev/stdin -- 0 -- 标准输入
显示器 -- /dev/sdtout -- 1 -- 标准输出
显示器 -- /dev/sdterr -- 2 -- 标准错误输出
输出重定向
标准输出重定向:
覆盖:命令 > 文件
追加:命令 >> 文件
标准错误输出重定向:
覆盖:错误命令 2> 文件
追加:错误命令 2>> 文件
正确输出与错误输出同时保存:
覆盖:命令 > 文件1 2> 文件2
追加:命令 >> 文件1 2>> 文件2
# &>/dev/null(黑洞,垃圾箱)
输入重定向:
4、多命令顺序执行 与 管道符
多命令: (;) (||)(&&)
管道符: (|)
命令1 | 命令2 # 命令1 的正确输出作为命令2 的操作对象
grep:
grep [options] “搜索内容” 文件名
[options]
- i :忽略大小写
- v:反转输出结果 example:grep -v "#" grep -v "^$"
- c:相当于将其传递给 wc 程序
- n:显示行号,多用于编译时使用
- w:精确匹配
- r:在目录里面递归搜索
- A,B,C:
--color=auto :搜索出的关键字用颜色显示
example:
5、通配符 与 其他特殊符号
通配符:
? 匹配任意一个字符
* 匹配任何内容
[] 匹配括号中的任意一个字符
[-] 匹配中括号钟任意一个字符,- 代表范围
# 注释
$ 用于调用变量的值
转义符,在跟 之后的特殊符号将失去特殊含义,变为普通字符
[^] 逻辑非,表示匹配不是中括号内的一个字符。
其他特殊符号:
’ ’ 在单引号中所有的特殊符号都没有特殊含义
“ ” 在双引号中特殊符号都没有特殊含义
但是“$”(调用变量的值)、“ ' ”(引用命令)、“”(转意符)是例外
$() 和反引号作用一样,用来引用系统命令
四、bash 变量(重难点)
1、用户自定义变量
1)、什么是变量
变量是计算机内存的单元,其中存放的值是可以改变的。
2)、变量设置规则
可以由字母,数字,下划线组成,但是不能以数字开头
变量的默认类型都是字符串型。
变量要用等号连接值,等号左右两侧不能有空格
变量的值如果有空格,需要使用单引号或者双引号包括
变量的值中,可以使用 “” 转义符
可以把命令的结果作为变量值赋予变量,则需要使用 反引号 或 $() 包含命令
如果是把命令的结果作为变量值,那么可以进行变量值得叠加。不过变量需要用 “$变量名” 或 ${变量名} 包含
环境变量名建议大写,便于区分
3)、变量分类(背)
用户自定义变量:自由定义(只要符合规则)
环境变量:这种变量中主要保存的是和操作系统环境相关的数据
预定义变量:是 Bash 中已经定义好的变量,变量名不能自定义,变量作用也是固定的
位置参数变量:这种变量主要是用来向脚本当中传递参数(严格来说是预定义变量中的一种)
4)、设置:变量名=变量值
5)、调用:echo
6)、变量查看:set
7)、变量删除:unset name
2、环境变量
1、定义:
用户自定义变量只是在当前的 shell 中生效,而环境变量会在当前 shell 和这个 shell 的所有子 shell 的所有子 shell 当中生效
如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的 shell 中生效
2、设置环境变量
概述: 环境变量,对于所有的环境都会影响
export: export 申明为全局变量
env:
unset:
pstree:进程树
3、系统常见环境变量
PATH:
系统查找命令的路径
example(临时生效)
(并不习惯如此)
(使用变量叠加的方式,把自己存放脚本的位置添加到环境变量当中)
PS1:
定义系统提示符的变量
3、位置参数变量
($* 和 $@ 的区别)
4、预定义变量
# 接收键盘输入
- p: “ 提示信息 ”,在等待 read 输入时,输出提示信息
- t : “ 秒数 ”,read命令会一直等待用户输入,使用此选项可以指定等待时间
- n: “ 字符数 ”,read命令只接受指定的字符数,就会执行
- s: “ 隐藏 ”, 隐藏输入的数据,适用于机密信息的输入
五、bash 运算符
1、数值运算 与 运算符
1)、linux 默认的变量是 字符串类型(integer)
2)、declare 声明变量类型
2、变量测试 与 内容替换
六、环境变量配置文件
1、环境变量配置文件简介
source命令:
定义:
类型:
2、环境变量配置文件作用