IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【shell命令总结】 -> 正文阅读

[系统运维]【shell命令总结】


学习shell脚本时,总结出来的

1、如何将一个命令的结果赋值给一个变量

使用$() 将命令包括起来 或者使用``

localIP=$(ifconfig eth0 |awk '/inet /{print $2}’)
localIP=`ifconfig eth0 |awk '/inet /{print $2}'`

2、函数返回值

getLocalIP(){
     localIP=$(ifconfig eth0 |awk '/inet /{print $2}')
     localIP=${localIP:0:-2}
     echo $localIP
}
IP=$(getLocalIP)
echo $IP

函数:如果是使用 function 定义,函数名与{}之间应该有空格

3、表达式

表达式计算

COUNT=`expr $COUNT + 1`   #  在表达式的上面加``
let COUNT+=1      #  在表达式的前面加let      

4、seq 相关

`seq 9`    #表示1~9的所有整数
`seq 7 9`  #表示7,8,9的所有整数
`seq 1 2 9` #表示1 ,3 ,5,7,9,的所有整数

5、字符串去尾巴

字串去尾:
从右向左:最接近的一个匹配:
${变量%关键字}
从右向左:最远的一个匹配:
${变量%%关键字}
${i%.*}   #将 aaa.xsl 中的.以后的都去掉

6、快捷键

ctrl +a  :到该行命令的最前端
ctrl +e  :到该行命令的最后端
ctrl +c  :准备执行的命令撤销掉
ctrl + l  :清屏
Tab      :补齐

7、echo

-e  : 扩展颜色属性
-n : 不换行

8 、重定向

>   : 重定向 (只重定向正确的,无法重定向错误的)
>> : 追加
2> : 将错误信息进行重定向
2>> : 将错误信息进行追加
&>: 将正确、错误的信息都进行重定向
l    :管道 (将管道前后进行组合)
&   : 程序放后台运行

9、环境变量

test=aaa :等号两边没有空格
unset  test :取消环境变量
export test=test1 :全局变量定义
${变量:-关键字} : 变量没有值将赋值初始化关键字,如:${X:-123}  

10、预定义环境变量

一般配合 echo 使用

$?  :判断上依据命令是否执行正确,执行成功返回0,非0表是不成功    可以用户条件判断
$0  :   当前执行脚本的名称
$$  :   当前进程号的PID
$#  :   脚本位置参数的个数
$*   :   变量输入的所有内容
wait :等待脚本结束后再执行下一个
&   : 将程序放入后台执行
$!  :  最后一个后台进程的进程号  kill  $!  可杀死该进程

11、引号

“”:可以识别变量,将变量的值给出来
‘’:不可识别变量,屏蔽特殊符号,直接输出
``与$()等价: 将命令执行的输出结果赋予变量 ,相当于表达式的值

12、read 命令

-s 隐藏输入显示 ,通常用于密码输入
-t  定义输入失效事时间
-p 后面跟打印在控制台的提示信息

定义一个变量,需要执行脚本者进行手动输入

#!/bin/bash
read -p "请输入用户名:" name
read -p "请输入密码:" -s  pass
useradd "$name"
echo "$pass" | passwd --stdin "$name"

13、判断比较

字符串比较: 0为真 1为假     使用 help test 来查看参数
基本语法: 使用 echo $? 来判断比较的情况
是否为空: [ -z string ]
等于:[ string1 == string2 ]
不等于:[ string1 != string2 ]

注意:方括号前后与比较符号与字符串之间必需有至少一个空格,有变量名的需要注意变量名不要写错(写错会找到你怀疑人生)

整数值比较:
基本语法: [整数值1 操作符 整数值2] eg : [ 3 -le 2 ]
在这里插入图片描述
[ 操作符 文件或目录 ]
在这里插入图片描述

14、条件组合

;   按顺序没有,都要执行
&&  顺序,前一条成功才执行后一条
||   前面执行成功,后面不执行,前面不成功,执行后面

15、其他

tr -s :删除多余重复的字符串
cut : 过滤数据 (列) -d : 以“:”进行分割   -f1 表示取第一个列。f2 第二列
grep :过滤行

在这里插入图片描述
条件判断: 注意 条件0表示真,非0表示假 , 如果if than 在同一行,则条件和 than 之间必须加分号;如果不在同一行,则不需要
单条件

16、字符串

替换

替换第一个旧字符
${变量/旧字符/新字符}
替换所有旧字符
${变量//旧字符/新字符}
echo ${A//x/a}

注意:(变量本身没有变换,只是当前运算的变化了)

截取

${变量:起始位置:长度}
${#变量}     #统计变量长度
${phone:4:-2} #截取中间:    从第四位(从第五位开始显示),并且去掉后两位

位置编号从0开始,只有位置将从该位置一直到末尾

掐头去尾

${变量#*关键字}  #从左向右:最接近的一个匹配,匹配第一个
${变量##关键字} #从左向右:最远的一个匹配
echo ${A##:*}

${变量%关键字} # 从右向左:最接近的一个匹配
${变量%%关键字} #从右向左:最远的一个匹配
echo ${A%:*}

17、正则表达式

在这里插入图片描述
拓展正则符号 grep -E
在这里插入图片描述
兼容正则符号 grep -P
在这里插入图片描述
定位符
在这里插入图片描述

在这里插入图片描述
send命令不使用-i 选项,源文件不被修改
在这里插入图片描述

默认只修改第一个
g :全部替换
数字 :指定每行第几个
&  :无需输入,就前面的旧字符
S:前面加数字:定位行

列过滤

awk :  可进行列过滤
-F:默认以空格或者以tab健为分割,改参数可进行指定分割符
awk  -F: '{print $1,$3}' /etc/passwd  #以:进行分割
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:32:08  更:2021-11-18 11:33:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:38:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码