Linux使用sed命令对进行文件行操作

1、删除文档的第一行 sed -i ‘1d’ 2、删除文档的最后一行 sed -i ‘$d’ 3、在文档指定行中增加一行 例如文档如下: echo “1”; echo “2”; echo “4”; echo “5”; 想要在echo “2”;后面加上一条echo “3”;可以用如下命令 sed -i ‘/echo “2”;/aecho “3”;’ 之所以用分号,是因为文本中本来就有。也就是说分号不是必须的! 抽象出来就是: sed -i ‘/* /a*’ 4、删除文件中的一行 sed -i ‘3d’ 5、删除文件中包含某个关键字开头的所有行 sed -i ‘/^QWQ/d’ 6、删除文件中包含某个关键字的所有行 sed -i ‘/QWQ/d’

CentOS7 使用SystemD实现开机自启动和服务管理

CentOS7 可以在SystemD管理服务Service方式实现服务的自启动 SystemD即为System Daemon,是linux下的一种init软件,开发目标是提供 更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动, 同时达到降低Shell的系统开销的效果。 这里假设需要启动 # /usr/share/autostartup/foobar.sh STEP1.创建SystemD管理服务使用的.service文件 /usr/share/autostartup/foobar.service 以下是测试service文件,.service的具体编写,参考systemd相关文档 [Unit] Description=foobar Documentation=http://www.doc.com/doc.html After=network.target [Service] Type=simple WorkingDirectory=/home/foobar ExecStart=/usr/share/autostartup/foobar.sh ExecStop=/bin/kill -s QUIT $MAINPID Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=foobar User=foobar Group=foobar Environment= [Install] WantedBy=multi-user.target

CentOS6 使用rc.local实现开机自启动

CentOS6 可以在rc.local中增加启动shell脚本实现开启自启动 这里假设需要启动 /usr/share/autostartup/demo-service.sh STEP1. 将需要开启启动的脚本设置为标记为可执行文件 chmod +x /usr/share/autostartup/demo-service.sh STEP2. 执行如下命令将/etc/rc.d/rc.local文件标记为可执行文件 chmod +x /etc/rc.d/rc.local 在CentOS7 中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的。 将需要执行的脚本写入到 /etc/rc.d/rc.local echo “/usr/share/autostartup/demo-service.sh” >> /etc/rc.d/rc.local

CentOS使用run-as-user.sh处理运行环境的用户不同问题

很多时候,部署运行环境的用户和实际运行的用户是不同的, 当因为环境限制,当时碰到以下场景的时候,就比较麻烦了,需要编写一个脚本来实现运行。 1.不能使用su和sudo时 2.用户没有shell不支持login时,比如nobody,服务用户 3.使用Docker等容器时 4.使用SSH远程执行命令,但是不能使用登陆用户 实现前提 1.需要运行用户的用户名和用户分组以及密码 2.需要运行用户的PUID和PGID 使用前请修改代码中实际运行的用户名,且用户存在 ./run-as-user.sh 命令 命令参数

CentOS一键编译安装 NodeJS脚本

如题 CentOS一键编译安装 NodeJS脚本,使用NodeJS源代码编译,适用于CentOS和Debian, 默认安装的Nodejs版本已经老掉牙了 脚本支持选择node的版本和prefix 两个编译变量 NODE_VERSION=v8.11.3 NODE_PREFIX=/usr/local 使用了系统vCPU数量来控制NPROC数量,支持各种虚拟机的情况 NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) 对于物理机编译安装,建议按实际CPU数量*单个CPU核心数量进行参数设置 另外使用国内的taobao作为NPM的第一来源镜像。 #!/bin/bash ############################################################################## # Build develop enviroment for running npm and nodejs # # version=”1.0.0″ # node=”v8″ # os=”CentOS v7.4″ # user=“dev” # description=”Node v8 compiled from source running on CentOS v7.4″ ############################################################################## ############################################################################## # If is root …

CentOS6.x/7.x配置Nginx系统服务

使用源代码编译方式安装Nginx的时候,肯定不如用用yum方式安装来得便捷,CentOS的系统服务需要自行配置。 自行配置Nginx为CentOS的系统服务时,出于进程管理考虑需要首先配置pid,出于安全考虑建议修改nginx的运行用户。 创建nginx.pid文件用于nginx主进程 touch /usr/local/nginx/logs/nginx.pid 修改conf/nginx.conf,设置pid和user user nobody; pid logs/nginx.pid; CentOS6.x配置nginx系统服务 创建一个/etc/init.d/nginx文件 touch /etc/init.d/nginx chmod 755 /etc/init.d/nginx /etc/init.d/nginx文件中写入以下内容, 源文件取自yum方式安装后的文件,不过需要自己修改一下nginx的指向位置 nginx=”/usr/local/nginx/sbin/nginx” NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”

Tomcat进程无法正常stop问题

CentOS使用Catalina.sh 来管理Tomcat运行时,Catalina.sh run 之后产生的tomcat进程会无法使用 Catalina.sh stop -force关闭。如果Catalina.sh的默认内容来配置tomcat服务,/etc/init.d/tomcat stop 也将会失效 查看Catalina.sh文件后找到以下代码,原来需要stop的话,需要CATALINA_PID文件配合。 Catalina.sh 468行 if [ ! -z “$CATALINA_PID” ]; then if [ -f “$CATALINA_PID” ]; then if [ -s “$CATALINA_PID” ]; then kill -0 `cat “$CATALINA_PID”` >/dev/null 2>&1 if [ $? -gt 0 ]; then echo “PID file found but no matching process was found. Stop …