GNU sed

Centos7脚本一键优化

十年热恋 提交于 2020-07-27 07:02:16
我把优化centos7的脚本分享给大家,建议刚安装完服务器的朋友执行如下优化脚本 [root@test2 yum.repos.d]# cat centos7.sh #!/bin/bash #author junxi by #this script is only for CentOS 7.x #check the OS platform =`uname -i` if [ $platform != "x86_64" ];then echo "this script is only for 64bit Operating System !" exit 1 fi echo "the platform is ok" cat << EOF +---------------------------------------+ | your system is CentOS 7 x86_64 | | start optimizing....... | +---------------------------------------+ EOF #添加公网DNS地址 cat >> /etc/resolv.conf << EOF nameserver 223.6.6.6 EOF #Yum源更换为国内阿里源 yum install wget -y mv /etc/yum.repos.d/CentOS

Docker 定制ssh、java等基础服务镜像

点点圈 提交于 2020-07-27 05:58:55
1、启动一个基于centos镜像的容器 # docker run –p 10022:22 - ti centos bash [root@f743588bbeef /]# -p: 本地端口映射容器22端口,是为了后面启动ssh后测试能否正常登陆 2、在容器中安装openssh-server、java等 [root@f743588bbeef /]# yum install -y -q openssh-server java-1.7.0-openjdk net-tools 3、修改sshd_config配置文件 [root@f743588bbeef /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ ssh /ssh_host_rsa_key -N '' [root@f743588bbeef /]# ssh-keygen -q -t ecdsa -f /etc/ ssh /ssh_host_ecdsa_key -N '' [root@f743588bbeef /]# ssh-keygen -t dsa -f /etc/ ssh /ssh_host_ed25519_key -N '' [root@f743588bbeef /]# sed -i " s/UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g "

centos7搭建redis集群

陌路散爱 提交于 2020-07-27 05:16:40
搭建环境 系统: centos 7.4 服务器金山云 安装ruby环境 [root@jsy-bj-test00 ~]# yum install -y ruby rubygems 复制6份redis服务 [work@jsy-bj-test00 ~]$ cp -rp redis redis1 [work@jsy-bj-test00 ~]$ cp -rp redis redis2 [work@jsy-bj-test00 ~]$ cp -rp redis redis3 redis配置文件修改 #六个节点需做如下更改 [work@jsy-bj-test00 ~]$ vim redis1/etc/redis.conf [work@jsy-bj-test00 ~]$ sed -i 's/port 6379/port 6380/g' redis5/etc/redis.conf #修改端口 port 6380 #打开注释,开启集群模式 cluster-enabled yes #集群的配置文件 cluster-config-file nodes-6380.conf [work@jsy-bj-test00 ~]$ sed -i 's/cluster-config-file nodes-6379.conf/cluster-config-file nodes-6380.conf/g' redis5/etc

shell常用脚本

人走茶凉 提交于 2020-07-27 01:58:26
前言 网上收集整理,感谢老男孩及各路大神,经常看他们的博客和视频,脚本绝对是自己纯手打,有什么不足之处,还请各位大神指点。若觉得有侵权地方,请及时联系本人,本人立即删除!! 再次感谢老男孩,虽然没报您的学习班,但是看过好多您出的视频和您的博客。人要懂得感恩,尽管不是您的学生! 部分题目链接:http://oldboy.blog.51cto.com/2561410/1632876 在/chbo/目录下批量创建以10个随机小写字母开头_固定字符串.html文件 [root@web ]# cat create_chbo.sh #!/bin/sh randpw(){ < /dev/urandom tr -dc a-z | head -c${1:-10}; echo; } [ ! -d /chbo ]&& mkdir -p /chbo for i in `seq 9` do result=`randpw` touch /chbo/${result}_chbo.html done [root@web ]# sh create_chbo.sh2 [root@web ]# ls /chbo/ arwyievjgn_chbo.html eoxtksdqhl_chbo.html jbtpvjadia_chbo.html bzkhbwtgmw_chbo.html hhrptuucgr_chbo.html

php ZeroMQ 的使用

匆匆过客 提交于 2020-07-26 09:51:16
一、ZeroMQ简介 ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 Socket Library,他使得 Socket 编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ 的明确目标是“成为标准网络协议栈的一部分,之后进入 Linux 内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD 套接字之上的一层封装。ZMQ 让编写高性能网络应用程序极为简单和有趣。 与 RabbitMQ 相比,ZMQ 并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,它更像是一个底层的网络通讯库,在 Socket API 之上做了一层封装,将网络通讯、进程通讯和线程通讯抽象为统一的 API 接口。 它是个类似于Socket的一系列接口,它跟Socket的区别是:普通的Socket是端到端的(1:1的关系),而ZMQ却是可以(N:M 的关系),人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。 二、ZMQ三种基本模型 1、Request-Reply 2、Publisher

shell常用语法案例

为君一笑 提交于 2020-07-23 22:11:37
一、 正则表达式: 正则表达式(或称 Regular Expression ,简称 RE )就是由普通字符(例如字符 a 到 z )以及特殊字符(称为元字符)组成的文字模式。 该模式描述在查找文字主体时待匹配的一个或多个字符串。 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为, 正则表示式通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻 / 删除 / 取代某特定字符串的处理程序。 vim 、 grep 、 find 、 awk 、 sed 等命令都支持正则表达式。 常用正则表达式: 1 、 . 代表 任意单个 字符 , 如: /l..e/ 与包含一个 l ,后跟两个字符,然后跟一个 e 的行相匹配 grep ‘ l..e ’ test awk ‘ /l..e/ ’ test cat test (查看文件) l ee e t laat lae 2 、 ^ 代表行的开始。 ^love 如:与所有 love 开头的行匹配 3 、 $ 代表行的结束。 love$ 如:与所有 love 结尾的行匹配 那么 ‘^$’ 就表示空行 4 、 [ … ] 匹配括号中的字符 之一 [abc] 匹配 单个 字符 a 或 b 或 c [123] 匹配 单个 字符 1 或 2 或 3 [a-z] 匹配 小写

Linux sed 命令字符串替换使用方法详解

核能气质少年 提交于 2020-05-09 09:50:15
1. sed替换的基本语法 sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义。 2. 单引号” ‘ ’”是没有办法用反斜线”\”转义的 这时候只要把命令中的单引号改为双引号就行了, 这点和正则表达式类似, 格式如下: # 要处理的字符包含单引号 sed "s/原字符串包含'/替换字符串包含'/" 3. 替换分隔符 命令中的三根斜线分隔符可以换成别的符号,有时候替换目录字符串的时候有较多斜线,这个时候换成其它的分割符是较为方便,只需要紧跟s定义即可。 # 将分隔符换成问号”?”: sed 's?原字符串?替换字符串?' 4. 匹配关键字g 可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如: # 替换所有匹配关键字 sed 's/原字符串/替换字符串/g' 5. 一些特殊字符的使用 ”^”表示行首 ”$”符号如果在引号中表示行尾,但是在引号外却表示末行(最后一行)    # 注意这里的 " & " 符号,如果没有 “&”,就会直接将匹配到的字符串替换掉 sed 's/^/添加的头部&/g'      #在所有行首添加 sed 's/$/&添加的尾部/g'      #在所有行末添加 sed '2s/原字符串/替换字符串/g'  #替换第2行 sed '$s/原字符串/替换字符串/g'

去除 UTF-8 文件 BOM 头

回眸只為那壹抹淺笑 提交于 2020-05-08 23:42:46
什么是 BOM? BOM 全称是 Byte Order Mark(字节顺序标记)。出现在文本文件头部,Unicode 编码标准中用于标识文件是采用哪种格式的编码。比如:当用记事本保存一个以 UTF-8 编码的文件时,会自动在文件开始自动插入三个不可见字符“0xEF 0xBB 0xBF”,但是通常情况下不需要这个头部来识别文件的编码,在PHP代码中存在BOM,会导致网页的首行存在预料外的间隙。 去除 BOM 方法 【方法一】打开 vim 键入 :set bomb ,回车,显示 bomb 表示文件有 BOM,nobom 表示文件无 BOM; 键入 :set nobomb ,并回车。 【方法二】打开 notepad++ 依次点击菜单栏【格式】-【以 UTF-8 无 BOM 格式编码】,并保存。 【方法三】sed 命令 utf-8 编码文件的 BOM 是 “0xEF 0xBB 0xBF”(更多 BOM 请 点击 ),针对 utf-8 编码文件去掉 BOM: // 生成新文件 sed '1s/^\xEF\xBB\xBF//' < orig.txt > new.txt 或 // 直接覆盖老文件 sed -i '1s/^\xEF\xBB\xBF//' orig.txt 参考链接: How can I remove the BOM from a UTF-8 file?( https://unix

Linux之systemd服务配置及自动重启

隐身守侯 提交于 2020-05-08 04:46:42
Linux之systemd服务配置及自动重启 0 背景 在linux上开发时,往往需要将自己的程序做成服务,并且实现服务开机自动重启,以及服务崩溃后自动重启功能,本文就对该功能的实现做简单介绍,实现方法很简单,使用linux系统的systemd即可实现 1 systemd介绍 历史上,linux的启动一直采用init进程,比如 $ sudo /etc/init.d/apache2 start 或者 $ service apache2 start 这种方法有两个缺点。 一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。 二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。 Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。 根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。 systemctl是 Systemd 的主命令,用于管理系统。对于用户来说,最常用的是下面这些命令,用于启动和停止 Unit(主要是 service)。

Linux 常用命令不间断更新

狂风中的少年 提交于 2020-05-08 02:09:40
前提:Linux 命令 大小写敏感 1、 mkdir   make directory(ies)  若指定目录不存在则创建目录   -p, --parents no error if existing, make parent directories as needed 2、 ls   list  列出有关文件的信息(默认为当前目录)    -a, --all do not ignore entries starting with .   -d, --directory list directory entries instead of contents, and do not dereference symbolic links   -F, --classify append indicator (one of */=>@|) to entries     --full-time like -l --time-style=full-iso   -h, --human-readable with -l, print sizes in human readable format (e.g., 1K 234M 2G)   -i, --inode print the index number of each file   -l use a long listing format