---------------------Linux shell脚本基础---------------------------
shell脚本即基础组成,bash有上下翻历史命令(doskey功能),help获得帮助,tab
自动补全等基础使用脚本
111-shell脚本编程
shell-----》
bash---->默认的shell
csh
ksh
tsh-
zsh
112-bash的三个特征:
1.有doskey功能,可以保存最近使用的命令,上/下翻
2.可以用help命令或得帮助
3.可以通过TABLE键查询相似的命令---自动补全
113--bash 中history命令的使用:
114--shell中自动补全功能
115--shell中PATH环境变量设置
116--shell中常用符号:
| -------管道符
> >> ----输出重定向(tee与>相似)
< -----输入重定向
? -----一个
* -----一个或多个
[]----全部
{}----任选一个
117--shell中位置参数:
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
118--shell重定向的使用
>: ----输入重定向,覆盖
>>:----输入重定向,追加
<: ----输出重定向
1>:----当执行正常,才重定向到指定文件
1>>
2>:----当执行错误,才重定向到指定文件
2>>
&>:----正确与错误,都重定向到指定文件
&>>
l >1.txt 2>&1 :正确、错误都重定各到同一个文件
119--shell作业控制
; :命令与命令分开,把多条命令写在一行
echo "1:----------"; cat 1.txt ; sleep 3; echo "2:------------";grep 'root' passwd ;sleep 3;echo "3:------------"; wc 100
ctrl +z:暂停一个任务或作业
ctrl +c:取消当前运行的作业
jobs:查看后台的任务或作业,公查看当前会话的作业
bg [id]:把任务调到后台或作业
fg [id]:把任务调到前台
&:运行时把任务直接丢到后台
120--shell中经常配合使用的命令
cut:-d:指定分隔符; -f:指定分隔符后的第段; -c:指定第几个字符
121-- wc: -l:行数;-m:字符数 ; -w:单词数
sort: 以第一个数字或字符排序,-r:反向排序
uniq:去重,配置sort一起使用,-c:显示出现的次数
122--
tee:重定向(tee -a:追加)
tr:替换字符
123--
split:切割文件
-b: 10M --- 100M
-l: 1000000
split -b 10M pwd.log ora
124--shell脚本的执行
文件名:脚本后缀---->.sh
.sh ----->bash
一个shell脚本:
#!/bin/bash ----->第一行,告知这是一个shell脚本
在shell中:
# ---->注释
执行脚本:
chmod +x t2.sh(修改权限可执行)
1-->./t2.sh
2-->bash t2.sh
3-->sh t2.sh
125--命令执行的顺序选择
|| 和 && ,用于命令之间
|| 前面的命令执行成功,后面的命令就不再执行,
前面的命令失败,就执行后面的命令;
&& 只有前面的命令执行成功了,才会执行后面的命令;
128--date命令的技巧
date +%Y-%m-%d,=== date +%F----年份取4位
date +%y-%m-%d ----年份取2位
date +%H:%M:%S = date +%T 时间
date +%s 时间戳
date -d "+1day" 一天后
date -d "-1 day" 一天前
date -d "-1 month" 一月前
date -d "-1 min" 一分钟前
date +%w------一周的星期几
date +%W ------一年的第几周
129--shell中环set-env-export三者的区别
set--shell的本地变量,与shell类型有关,不同shell有自己的环境变量
env--是当前用户的环境变量
export---可以将shell的环境变量导出成用户变量
aaa='oracle'
echo $aaa
env |grep aaa
set |grep aaa
export |grep aaa
export aaa
env |grep aaa
https://blog.csdn.net/huayangshiboqi/article/details/80150842
130--shell中环境变量配置文件
1--系统级别的参数配置文件
/etc/profile
source /etc/profile ====刷新配置文件,立即生效,或重启系统后生效
2--某个用户的参数配置文件
~/.bashrc
~/.bash_profile
3--当前会话有效的---命令设置
export AAA='hello world'
131--shell中设置环境变量常用的命令
echo $变量名 ----显示变量的值
export
set
unset---清除变量值
declare--声明
readonly ---将变量设置成只读变量,不可清除,不可修改
env--在修改后的环境中运行程序
132--shell环境变量配置文件读取顺序
linux系统用户读取环境变量配置文件的顺序:
1-- ~/.bash_profile
2-- ~/.bashrc
3-- ~/.bash_logout
linux shell(bash)初始化过程:
1-- /etc/profile
2-- ~/.bash_profile
3-- ~/.bash_login
4-- ~/.profile