Linux基础之shell入门----进阶sre第一阶段(重温linux基础09)

再次声明:本专栏内容适合有基础的朋友观看
shell

格式要求
以#!/bin/bash打头声明语言类型
注意shell脚本需要有执行权限
执行shell脚本 (多种)
sh 文件名
bash 文件名
bash < 文件名	
./ 文件名
bash -n 对语法进行检查
bash -x 行行执行,解释性执行
扩展:也可放到系统PATH路径包含的文件夹下,此时可在系统任意位置执行此脚本
扩展 :将命令放到远程主机 可用curl下载再用管道方式将内容定向输入到bash执行

变量常识

变量的生效范围等标准划分变量类型
普通变量:生效范围为当前shell进程;对当前shell之外的其它shell进程
,包括当前shell的子shell进程均无效
环境变量:生效范围为当前shell进程及其子进程
本地变量:生效范围为当前shell进程中某代码片断,通常指函数

变量引用

$变量名
${变量名} 须分割变量时用到
命令执行结果也可赋值给变量
HOSTNAME='hostname'
变量赋值也支持通配符
变量也可进行追加:等于字符串相加+号

pstree -p

查看系统进程关系

exec

进程替换

环境变量:

可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量
一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程
一般只在系统配置文件中使用,在脚本中较少使用

export

查看所有环境变量

bash内建的环境变量

PATH
SHELL
USER
UID
HOME
PWD
SHLVL   #shell的嵌套层数,即深度
LANG
MAIL
HOSTNAME
HISTSIZE
_       #下划线  表示前一命令的最后一个参数

unset

取消环境变量

只读变量

只读变量:只能声明定义,但后续不能修改和删除,即常量

声明只读变量:
readonly name
declare  -r name

查看只读变量:
readonly  [-p]
declare -r

位置变量

位置变量:在bash shell中内置的变量, 在脚本代码中调用通过命令行传递给脚本的参数

$1, $2, ...  对应第1个、第2个等参数,shift [n]换位置
$0   命令本身,包括路径
$*   传递给脚本的所有参数,全部参数合为一个字符串
$@   传递给脚本的所有参数,每个参数为独立字符串
$#   传递给脚本的参数的个数
注意:$@ $* 只在被双引号包起来的时候才会有差异
清空所有位置变量
set --

退出状态码

进程执行后,将使用变量 $? 保存状态码的相关数字,不同的值反应成功或失败,$?取值范例 0-255
$?的值为0            #代表成功
$?的值是1到255      #代表失败
简单来说就是前一条命令执行的状态

自定义退出值:
exit 数字 
退出程序且保存指定状态值

逻辑运算使用不赘述

&|!
异或 ^
10

true

直接返回真
echo $? 
0

false

直接返回假
echo $?
1

短路运算

短路与
&&
根据命令1状态来判断是否执行下一条命令,真则执行,假则不执行,跳转执行
命令三

短路或
||
第一个命令为真那么后面则不用执行

条件测试指令shell

用来判断表达式最终真假

[]

也可和test达到一定效果
做比较须有空格否则会进行赋值
[$i = $k ]

(())

可直接输入<  , > ,= 符号进行比较
((i>j))

[[]]

升级版[] test
建议使用[[]]
最大特点支持通配符匹配和正则表达式匹配
使用可看帮助
help \[\[[]中的变量必须使用双引号,以避免不必要麻烦

(命令....)

在子进程中执行命令,影响范围,子进程
可再当前shell执行命令得到结果却不影响当前shell
(cd /data;ls;pws)
执行完成后并没有进入此文件夹

{命令....}

在当前shell环境中执行,影响范围当前shell

禁止所有普通用户登录

在etc下建立文件nologin
echo "Deny common user log" > /etc/nologin

read

将输入值分配给一个或多个变量(执行此操作会开启子shell进行操作)
不跟其他参数默认赋值给系统变量REPLAY
read NAME NV (多个变量同时赋值)
-p 给出提示信息
read -p "提示语句" 变量名
read -p "your are name:" NAME

shell登录方式

登录shell的方式会影响脚本执行顺序
可将脚本或者环境变量放到对应目录下,在登录账号时自动执行

交互式登录:
脚本执行顺序

马哥
非交互式:
马哥
用户退出时自动执行定义的脚本或命令

修改~/.bash_logout文件

回到主目录

首页
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

霖宇长清

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

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

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

打赏作者

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

抵扣说明:

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

余额充值