shell一些操作

news2024/12/23 14:28:49

文章目录

  • 【检查脚本目录】
    • 示例
  • 【时间和时区】
    • 修改时间
    • 修改时区
      • 修改时区
      • 查看时区
    • 脚本从服务器同步
      • client主动同步
      • client被动同步
    • docker-compose 时区设置
    • kubernetes设置时区
  • 【按时间备份】
    • 实例
    • date命令
  • 【历史命令和快捷键】
    • 历史命令
    • 快捷键
  • 【重定向】
    • 相关符号
    • 脚本输出到黑洞
    • cat输入
    • dd命令创建文件
  • 【进程使用的文件】
    • 看进程使用的文件
    • 看文件被哪个进程使用
  • 【查看各种链接】
  • 【服务器查看外网出口ip】
  • 【开机自启动脚本】
  • 【/porc下查看资源】

【检查脚本目录】

cd `dirname $0`
dir_home     

# 变量截取
## 语法
```shell
${变量名 选项 要删除部分 分隔符}
  • 选项
    ‘#’ 从左最短删除
    ‘##’ 从左最大上传
    % 从右最短删除
    %% 从右最大删除

示例

  • 域名截取
url=www.baidu.com

echo ${url#*.}
baidu.com

echo ${url##*.}
com

echo ${url%.*}

www.baidu
echo ${url%%.*}
www

【时间和时区】

修改时间

  • 手动修改
date -s 14:36:00
date -s "2017-06-30 18:31:00"
  • 同步阿里云(ntpdate)
yum install ntpdate -y
ntpdate ntp1.aliyun.com

修改时区

修改时区

mv /etc/localtime /tmp
  • 修改为上海时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 修改成雅加达时间:
cp /usr/share/zoneinfo/Asia/Jakarta /etc/localtime

查看时区

date -R
Fri, 05 Jan 2018 07:27:19 +0800

脚本从服务器同步

client主动同步

  • 配置密钥,使client非交互登录server
  • client设置脚本从server器同步
#!/bin/bash
date_server=`/usr/bin/ssh -p 17822 10.10.10.10 "date '+ %Y-%m-%d %H:%M:%S'"`
date -s "$date_server"
  • 设置定时任务

client被动同步

思路同上,过程略。

docker-compose 时区设置

    volumes:
      - /tmp
      ##容器时间设置
      - /etc/localtime:/etc/localtime
      ### 容器中java服务时间设置
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone

kubernetes设置时区

spec:
  containers:
    volumeMounts:
    -  name: timez
       mountPath: /etc/localtime
       readOnly: true
   volumes:
    - name: timez
       hostPath:
           path: /etc/localtime

【按时间备份】

实例

#!/bin/bash

####### 修改变量 #############
cd `doirname $0`
work_dir=`pwd`
# 时间标记设置如下
data_time=`date '+%Y%m%d-%H%M%S'`

########################
echo "开始更新后台"
cd ${work_dir}
docker-compose down
# 时间标记使用如下
mv screenos-web.jar screenos-web.jar-${data_time}
cp /tmp/screenos-web.jar ${work_dir}
docker-compose up -d
echo "后台已启动"

date命令

%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 市区。
%a 星期的缩写。
%A 星期的完整名称。
%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小时(必要)
mm 分钟(必要)
ss 秒(选择性)

【历史命令和快捷键】

历史命令

  • !历史记录编号
  • !cat 以cat开头的上一条命令
  • !$上一次使用路径

例:

ls /usr/local/nginx
cd !$
  • !!上一条命令

快捷键

  • 结束服务
    ctrl + c 正常结束
    ctrl + d 退出
    ctrl + z 挂起到后台

  • 命令行
    ctrl + a 命令行首
    ctrl + e 命令行尾
    ctrl + l 清屏
    ctrl + s 锁屏
    ctrl + q 解锁

说明:锁屏之后命令仍会执行,仅屏幕不显示了。

【重定向】

相关符号

  • 0 输入
  • 1标准输出
  • 2错误输出
  • > , >> 正确输出
  • 2> , 2>> 错误输出
  • &> 合并重定向
  • < , << 输入

脚本输出到黑洞

说明:将错误合并到正确,并且输入黑洞。

./test.sh  > /dev/null 2>&1

cat输入

回车输入,直到行尾出现ABC。
注意结尾符前边是 << ,不是<。

cat > 文件名 << EOF
aaaaaaa
bbbbbbb
cccccccc
EOF

dd命令创建文件

dd if=/dev/zero of=/tmp/1.txt bs=1M count=2

【进程使用的文件】

看进程使用的文件

lsof -p ID号

看文件被哪个进程使用

fuser -m 目录名   

如umount不能卸载的时候,查看哪个进程在使用,然后kill掉(见psmisc工具)

【查看各种链接】

### 统计服务器各种连接

netstat -n|awk '/^tcp/{++S[$NF]}END{for (key in S) print key,S[key]}'

说明:

  • NF表示该行字段数
  • ++S[$NF] 表示最后一列每个字串出现的次数
awk -F : '{print ++S[$NF]}' /etc/passwd
  • key in S 则key就是每行的最后一列
    最后打印了key 和 S

【服务器查看外网出口ip】

curl http://ifconfig.me

【开机自启动脚本】

  • 编写脚本
# cat /etc/init.d/test.sh
#!/bin/sh
# chkconfig: 2345 96 14
#description:test.sh
date > /root/date.txt

说明:
2345: 代表设置在哪个level中是on的,需要在rc2.d~rc5.d目录下,创建名字为 S96test.sh 的文件连接,连接到/etc/rc.d/init.d目录下的的test.sh脚本,查看如下:

#ll /etc/rc2.d
lrwxrwxrwx. 1 root root 17 45 05:23 S96test.sh -> ../init.d/test.sh

96/14:分别代表启动和关闭顺序

  • 设置开机启动
chmod a+x /etc/init.d/test.sh
chkconfig --add test.sh
chkconfig test.sh on
chkconfig list

【/porc下查看资源】

  • 内存
cd /proc && for i in `ls |awk '{print $8}'|grep '^[0-9]'`;do  grep -H  VmRSS $i/status 2>/dev/null;done|sort -k 2 -rn|head|awk  -F [/:] '{print $1,$4}'

注意:|awk ‘{print $8}’ 这里是因为ls设置了别名,实际执行了ll 因此这里加了一个截取。

  • swap分区使用
for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'`;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10

如果ls别名设置为ll,则也需要这awk截取一下。


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/422482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

android studio 页面布局(1)

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schemas.android.com/too…

论文阅读 - ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning

目录 摘要 1 简介 2 问题陈述 3 PROPOSED ANEMONE FRAMEWORK 3.1 多尺度对比学习模型 3.1.1 增强的自我网络生成 3.1.2 补丁级对比网络 3.1.3 上下文级对比网络 3.1.4 联合训练 3.2 统计异常估计器 4 EXPERIMENTS 4.1 Experimental Setup 4.1.1 Datasets 4.1.2 …

Ethercat学习-QT添加SOEM主站

文章目录简介环境搭建1.QT安装2.VS安装3.Win10 Debuggers4.QT配置SOEM移植&#xff11;.lib库生成2.文件移植1.文件整理2.添加文件至QT工程测试简介 QT版本5.14.2 VS版本2017 系统Win10 环境搭建 环境搭建很简单&#xff0c;就是安装几个软件就好了&#xff0c;没有特殊的…

快速排序及优化

快速排序及优化 概要 关于快速排序的原理不赘述&#xff0c;可以查看912. 排序数组 - 力扣&#xff08;Leetcode&#xff09; 本篇文章旨在提供快速排序的C#实现&#xff0c;并通过随机pivot&#xff0c;三数取中&#xff0c;小区间使用插入排序&#xff0c;栈实现&#xff…

Makefile学习

什么是Makefile 使用 GCC 编译器在 Linux 进行 C 语言编译&#xff0c;通过在终端执行 gcc 命 令来完成 C 文件的编译&#xff0c;如果我们的工程只有一两个 C 文件还好&#xff0c;需要输入的命令不多&#xff0c;当文件有几十、上百甚至上万个的时候用终端输入 GCC 命令的方…

NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_01---大数据之Nifi工作笔记0033

然后我们来看如何把mysql数据实时同步到hive中去 可以看到,其实就是使用 CaptureChangeMySql来获取mysql中变化的数据,具体就是增删改数据 然后再用RouteOnAttribute通过属性,也就是根据是增删改的话,根据这个属性进行路由 把数据路由到不同的位置 然后再用EvaluateJsonPa…

创客匠人人物访谈:客户,如何反推创业发展? |

古语有云&#xff1a;“君者&#xff0c;舟也&#xff1b;庶人者&#xff0c;水也&#xff1b;水则载舟&#xff0c;水则覆舟”。 从创业的角度来看&#xff0c;客户&#xff0c;就是创业这艘小船在市场的海洋里能够安稳航行的必要条件。 在创业的过程中&#xff0c;一定是先有…

STC89C52串口通信当中的UART

1.串口介绍 串口是一种应用十分广泛的通讯接口&#xff0c;串口成本低、容易使用、通信线路简单&#xff0c;可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信&#xff0c;极大的扩展了单片机的应用范围&#xf…

Vue 也能复用模板了

文章目录Vue 也能复用模板了1. 怎么用1.1 基本使用1.2 传递参数2. 怎么实现的3. 注意事项4. 未来发展Vue 也能复用模板了 相信很多使用 Vue 的同学会遇到这样一个问题&#xff1a; “组件里有几个部分的模板&#xff08;html 结构&#xff09;是相同的&#xff0c;要想复用的…

使用线性回归构建波士顿房价预测模型

使用线性回归构建波士顿房价预测模型 描述 波士顿房价数据集统计了波士顿地区506套房屋的特征以及它们的成交价格&#xff0c;这些特征包括周边犯罪率、房间数量、房屋是否靠河、交通便利性、空气质量、房产税率、社区师生比例&#xff08;即教育水平&#xff09;、周边低收入…

前馈PID控制(热交换器/反应釜温度控制)

如何利用PID进行温度控制请参看下面博客文章: 博途PID 1200/1500PLC PID_Compact比例作用权重b微分作用权重c解读(PI-D控制器 I-PD控制器)_RXXW_Dor的博客-CSDN博客很多人会问PLC自带的PID指令和我们自己设计的PID有什么区别,这个问题要看你和什么PID控制器作对比,PID负反…

python真的如此好吗?

作为一名合格的&#xff08;准&#xff09;程序员&#xff0c;必做的一件事是关注编程语言的热度&#xff0c;编程榜代表了编程语言的市场占比变化&#xff0c;它的变化更预示着未来的科技风向和机会&#xff01; Python霸占榜首 只因它真的很强 Python&#xff0c;年龄可能比…

2023年的深度学习入门指南(5) - HuggingFace Transformers库

2023年的深度学习入门指南(5) - HuggingFace Transformers库 这一节我们来学习下预训练模型的封装库&#xff0c;Hugging Face的Transformers库的使用。Hugging Face的库非常活跃&#xff0c;比如支持LLaDA大规型的类&#xff0c;是在本文开始写作的前一天发布的。 库新到这种…

JavaWeb——锁策略, cas和synchronized优化过程

目录 一、锁策略 1、悲观锁和乐观锁 2、轻量级锁和重量级锁 3、自旋锁和挂起等待锁 4、互斥锁和读写锁 5、可重入锁和不可重入锁 6、公平锁和非公平锁 二、cas和synchronized 优化过程 1、CAS&#xff08;compare and swap&#xff09; &#xff08;1&#xff09;、原…

企业网站架构部署与优化

系列文章目录 文章目录系列文章目录一、LAMP概述与简介1.LAMP2.各组件的主要作用如下&#xff1a;二、1.编译安装Apache http服务2.编译安装 Mysql 服务3.编译安装 PHP 解析环境总结一、LAMP概述与简介 1.LAMP LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协…

如何高效建立知识库?

建立知识库是为了更好地管理和传承知识&#xff0c;提高团队的效率和成果。在建立知识库的过程中&#xff0c;需要注意一些关键点&#xff0c;以确保知识库的高效性和可持续性。本文将介绍如何高效建立知识库以及需要注意的事项。 一、建立知识库的步骤 1.明确知识库的目的和…

SpringBoot 默认数据库连接池 HikariCP

目录 引言 1、问题描述 2、SpringBoot默认的数据库连接池 3、HikariCP是什么 4、测试依赖 5、配置文件 5.1、数据库连接参数 5.2、连接池数据基本参数 5.3、连接检查参数 5.4、事务相关参数 5.5、JMX参数 6、HikariCP源码浅析 6.1、HikariConfig--连接池配置的加载…

Observability:使用 OpenTelemetry 和 Elastic 监控 OpenAI API 和 GPT 模型

作者&#xff1a;David Hope ChatGPT 现在很火&#xff0c;它打破了互联网。 作为 ChatGPT 的狂热用户和 ChatGPT 应用程序的开发者&#xff0c;我对这项技术的可能性感到无比兴奋。 我看到的情况是&#xff0c;基于 ChatGPT 的解决方案将呈指数级增长&#xff0c;人们将需要监…

Shiro概述

文章目录1.权限的管理1.1 什么是权限管理1.2 什么是身份认证1.3 什么是授权2.Shiro概述2.1 什么是Shiro2.2 Shiro 与 SpringSecurity 的对比2.3 基本功能3.shiro的核心架构4.shiro中的认证4.1 认证4.2 shiro中认证的关键对象4.3 身份认证流程4.4.登录认证实例4.5 自定义Realm5.…

Python标记数组的连通域

文章目录连通域标记structure参数操作连通域定位连通域连通域标记 通过label函数&#xff0c;可以对数组中的连通区域进行标注&#xff0c;效果如下 from scipy.ndimage import label import numpy as np a np.array([[0,0,1,1,0,0],[0,0,0,1,0,0],[1,1,0,0,1,0],[0,0,0,1,0…