shell

Shell脚本
shell:是命令解释器
shell的种类:sh、ksh、csh、bash(区别:功能不一样)
查看当前系统支持的shell类型:cat /etc/shells
查看当前使用shell:echo $SHELL

用户添加:sudo useradd [参数] 名字 -s 修改用户登陆后命令解释器 -c comment 备注 -d home dir 家目录
用户修改:sudo usermod 参数 名字 同上 + -l 改名login name
用户删除:sudo userdel 用户名

修改密码:passwd 用户名

bash功能:环境变量名词,效果执行一个命令会去“环境变量”设置的目录中挨个找该命令的可执行程序(1-找到了直接执行,2-找不到则报错)

【Shell变量 - 本地变量】
语法:变量名=变量值 (注:等号不能有空格)
输出:echo $变量名 (多学一招:避免混淆 ${变量名})
语法:unset 变量名

【Shell变量 - 环境变量】
语法:export 变量名=变量值

全局都生生效的环境变量(修改配置文件)
步骤1:打开配置文件 vi /etc/profile
source /etc/profile (让环境变量立刻生效 不需要重启)

【Shell变量 - 局部变量】
语法
function 函数名() {
local 变量名=变量值
}
调用:函数名

【Shell变量 - 位置变量】
作用:接受指定shell传递的参数
语法:sh 路径及文件名 参数1 … 参数n
脚本
输出:echo $1 / echo $1 代表第几个参数


命令代换: ( 命 令 ) 或 者 反 引 号 算 术 代 换 : (命令) 或者 反引号 算术代换: ()((算术)) 或者 $[算术]


条件测试
语法:test 值1 条件 值2 (成立返回0 失败返回1)
语法:[ 值1 条件 值2 ]

判断
if 条件
then
命令
elif 条件
then
命令

else
命令
fi

判断成绩(>=90优秀,>=80良好,>=60及格,>=0不及格)

SCORE=$1

if [ $SCORE -ge 90 ]
then
echo ‘优秀’
elif [ $SCORE -ge 80 ]
then
echo ‘良好’
elif [ $SCORE -ge 70 ]
then
echo ‘一般’
elif [ $SCORE -ge 60 ]
then
echo ‘及格’
elif [ $SCORE -ge 0 ]
then
echo ‘不及格’
else
echo ‘有瑕疵’
fi

//-------------------------

case $变量名 in
“值1”)
命令
;;
“值2”)
命令
;;

“值3”)
命令
;;
*)
命令
;;
esac


循环

for 变量 in 数据1 数据2 数据3 … 数据n
do
命令
done

while 条件
do
命令
done

//需求:输出1-10

i=1

while [ $i -le 10 ]
do
echo i i = i i= ii=(($i+1))
done
统计命令(wc)
语法:wc 选项 文件名
参数:1 - 统计行, w - 统计单词数, m - 统计字符数
2、查看文件(tail)
语法:tail 参数 路径及文件名
参数:
-数字 #查看后n行
-f #实时监控文件更新内容
3、查看文件
语法:head 参数 路径及文件名
参数:
-n 查看前n行
-c 前n个字节
Linux文本三剑客
grep:文本过滤./搜索工具
sed:文本编辑工具(行)
awk:文本报告生成器
1.grep
说明:grep命令是一种强大的文本搜索工具
作用:使用正则表达式搜索文本,并把匹配的行打印出来
语法:grep 【参数】 内容 路径及文件名 (支持正则)
参数 grep --help
-c 只输出匹配行的计数
-i 不区分大小写
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
–color 可以将找到的关键字部分加上颜色的显示
正则
^ 开头 如:’^grep’匹配所有以grep开头的行。
$ 结束 如:'grep$'匹配所有以grep结尾的行。
. 匹配一个非换行符的字符 如:'gr.p’匹配gr后接一个任意字符,然后是p。

  • 匹配零个或多个先前字符
    [] 匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。
    [^] 匹配一个不在指定范围内的字符,如:’[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
    (…) 标记匹配字符,如’(love)’,love被标记为1。
    \ 锚定单词的开始,如:’\匹配包含以grep开头的单词的行。
    > 锚定单词的结束,如’grep>'匹配包含以grep结尾的单词的行。
    x{m} 重复字符x,m次,如:'0{5}'匹配包含5个o的行。
    x{m,} 重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。
    x{m,n}重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5–10个o的行。

目录文件关键字匹配
语法: grep -r 【其他选项】 内容 路径
作用: 到目录所有文件中匹配含有指定内容的数据
举例 到/home 目录下匹配内容含有#!/bin/bash的文件

sed (行)
说明:sed 是一个文本编辑工具
作用:匹配修改。删除文件行数据
语法: sed 选项 ‘规则’ 路径及文件名
参数
-n 终端输出,不修改源文件
-i 直接修改读取的文件内容,而不是输出到终端
规则(修饰符)
a append 追加 /旧数据/a \新数据 当前行追加文本
i insert 插入 /旧数据/i \新数据 当前行上面插入文本
d delete 删除 /旧数据/d
s replace 替换 s/旧数据/新数据/g 注:不写g则只处理每行匹配的第一个结果
awk(列)
说明:awk是一个文本处理工具(文本报告生成器)
作用:提取列数据
语法:awk ‘条件{动作1},…,条件2{动作2}’ 路径及文件名
说明:默认制表符分隔每列,更改BEGIN{FS=“:”}
说明:文件扫描前进行的操作BEGIN{} 或 后面扫描后进行的操作END{}

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页