GNU sed

瞬态服务

半腔热情 提交于 2019-12-21 13:30:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 瞬态服务 有些服务,平时用户的访问并不多,可能一天只有一两次被访问或者这一天都没有被访问,但是被访问的时间也不确定,有可能是半夜或者什么时候来被访问。这时,如果把这个服务设为开机启动,就会白白浪费了系统很多资源,如何来解决这个问题呢?在Centos老的版本中有一种解决方案,就是 “ 瞬态服务 ”。与 瞬态服务对立的就是独立服务,启动与关闭不影响别人。 瞬态服务不能独立服务,它要依赖于别的服务。 瞬态服务的逻辑就是平时不启动,启动的时候由它依赖的服务给激活启动。 瞬态服务的程序由一个代理的服务程序就叫做超级守护进程 xinetd yum install telnet-server -y (会自动安装 xinetd服务) xinetd服务程序对应的瞬态服务程序列表 telenet 服务接收 xinetd服务的代理 sed -ri '/disable/s @yes @no @' /etc/xinetd.d/telnet 或 chkconfig telnet on service xinetd start 此时会拉起 telnet 的23 端口 没人访问 telnet 服务不会开启 在另一台主机访问 telnet 服务 在服务器上查看 如果没人访问,telnet 进程就会关闭。 来源: oschina 链接:

如何查找MySQL中具有特定列名的所有表?

泪湿孤枕 提交于 2019-12-19 18:44:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我有2-3个不同的列名称,我想在整个数据库中查找并列出所有具有这些列的表。 任何简单的脚本? #1楼 在没有 information_schema (旧版本或某些ndb)的版本中,您可以转储表结构并手动搜索列。 mysqldump -h$host -u$user -p$pass --compact --no-data --all-databases > some_file.sql 现在使用您首选的文本编辑器搜索 some_file.sql 的列名,或使用一些漂亮的awk脚本。 还有一个简单的sed脚本来查找列,只需将 COLUMN_NAME 替换为您的: sed -n '/^USE/{h};/^CREATE/{H;x;s/\nCREATE.*\n/\n/;x};/COLUMN_NAME/{x;p};' <some_file.sql USE `DATABASE_NAME`; CREATE TABLE `TABLE_NAME` ( `COLUMN_NAME` varchar(10) NOT NULL, 您可以直接在sed中管道转储,但这很简单。 #2楼 更简单地在一行SQL中完成: SELECT * FROM information_schema.columns WHERE column_name =

jira 8.6.0 jre11 Dockerfile

时光总嘲笑我的痴心妄想 提交于 2019-12-19 15:49:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> jira 8.6.0 jre11 Dockerfile include atlassian-agent 中国时区 1、download atlassian-agent tar到lib目录下 2、Dockerfile FROM adoptopenjdk/openjdk11:alpine-jre ENV JIRA_HOME /var/atlassian/jira ENV JIRA_INSTALL /opt/atlassian/jira ENV JIRA_VERSION 8.6.0 RUN set -x \ && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk upgrade --no-cache \ && apk --no-cache add curl bash ttf-dejavu tomcat-native \ && mkdir -p "${JIRA_HOME}" "${JIRA_INSTALL}" \ && chown -R daemon:daemon "${JIRA_HOME}" \ && chown -R daemon:daemon "${JIRA_INSTALL}" \ &&

postgrep修改存储目录

萝らか妹 提交于 2019-12-17 10:21:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 此篇文档为转载,来自赵熠东的csdn博客,地址暂时未找到 安装yum源 yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm 安装客户端和服务端 yum install -y postgresql10-server postgresql10 安装完会在系统中创建postgres用户,并在其.bash_profile中设置PGDATA=/var/lib/pgsql/10/data 在/usr/lib/systemd/system/目录创建postgresql-10.service用于支持 systemd 调用 systemd设置开机启动原理 支持 systemd 启动的程序会在/usr/lib/systemd/system/下建立.service启动脚本 systemctl enable postgresql-10.service Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-10.service to /usr/lib/systemd

如何将输出重定向到文件和标准输出

孤者浪人 提交于 2019-12-16 20:38:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在bash中,调用 foo 将在stdout上显示该命令的所有输出。 调用 foo > output 会将该命令的所有输出重定向到指定的文件(在本例中为“ output”)。 有没有一种方法可以将输出重定向到文件 并 在stdout上显示? #1楼 您可以主要使用 Zoredache 解决方案 ,但是如果您不想覆盖输出文件,则应使用-a选项编写tee,如下所示: ls -lR / | tee -a output.file #2楼 对我有用的另一种方法是 <command> |& tee <outputFile> 如 gnu bash手册中 所示 例: ls |& tee files.txt 如果使用'|&',则command1的 标准错误 (除了其 标准输出 )还通过管道连接到command2的标准输入; 它是 2>&1 |的 简写 。 将标准错误隐式重定向到标准输出是在命令指定的任何重定向之后执行的。 有关更多信息,请参考 重定向 #3楼 补充一下... 软件包解缓冲在fedora和redhat UNIX发行版中对某些软件包有支持问题。 排除烦恼 以下对我有用 bash myscript.sh 2>&1 | tee output.log 谢谢 ScDF 和 马修, 您的输入为我节省了很多时间。 #4楼

sed -i linux 批量替换命令

放肆的年华 提交于 2019-12-14 21:36:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 批量替换 /usr/local/rocketmq/conf 目录下 的 xml 里头的 ${user.home} 替换为 /usr/local/rocketmq # mkdir -p /usr/local/rocketmq/logs # cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml sed -i命令详解 [root @www ~]# sed [-nefr] [动作] 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法) -i :直接修改读取的文件内容,而不是输出到终端。 动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数

大数据教程(2.7):Linux脚本shell编程入门

老子叫甜甜 提交于 2019-12-10 16:36:25
工作中,我们玩过服务器的人都知道,在linux系统中程序的启动一般都是通过运行一个Shell脚本来实现的;Shell脚本不光在启动程序方面有所作为,在大数据、自动化脚本等方面都是我们的必备知识之一。Shell脚本到底是一种什么样的语言?能干啥呢?接下来博主将为大家详细讲述,并带领大家深入到linux编程中一探究竟。 一、Shell概念 Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell;Shell也是一门编程语言<解释型的编程语言>,即Shell脚本;一个系统可以存在多个Shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的。 二、shell入门详解 (1)shell脚本的执行: 第一种:输入脚本的绝对路径或相对路径(首先要赋予+x权限)执行 /root/helloWorld.sh . /helloWorld.sh 第二种:bash或sh +脚本执行 sh /root/helloWorld.sh sh helloWorld.sh 第三种:在脚本的路径前再加". ",表示在当前的shell进程中执行(pstree可以查看进程之间的派生关系) . /root/helloWorld.sh . ./helloWorld.sh 区别:第一种和第二种会新开一个bash

69.for while循环 continue break exit

允我心安 提交于 2019-12-10 16:26:36
20.10 for循环 20.11/20.12 while循环 20.13 break跳出循环 20.14 continue结束本次循环 20.15 exit退出整个脚本 扩展 select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.10 for循环: for循环会以空格或回车作为一个分隔符来遍历的。如果for循环一个文件的话,文件名含有空格,他会认为这个两个文件 ~1.语法:for 变量名 in 条件; do …; done ~2.for循环案例1(需求:计算1-100所有数字的和) #!/bin/bash sum=0 #首先赋予sum的值等于0,稍后引用这个sum for i in `seq 1 100` #for循环出1-100的数字 do #然后做什么? sum=$[$sum+$i] #赋予这个sum的变量,等于0+1到100。也就是利用上面那个sum赋予这个sum相加的动作 echo $i #显示出1到100这个循环。不加上的话,直接显示相加的总数字 done #结束 echo $sum #最后显示$sum这个变量 ~3.for循环案例2(需求:把etc目录做遍历。把etc目录下的子目录全部列一下) 文件列表循环 #!/bin/bash cd /etc/ for a in `ls /etc/` do if

在Bash中循环浏览文件内容

折月煮酒 提交于 2019-12-10 16:00:52
如何使用 Bash 遍历文本文件的每一行? 使用此脚本: echo "Start!" for p in (peptides.txt) do echo "${p}" done 我在屏幕上得到以下输出: Start! ./runPep.sh: line 3: syntax error near unexpected token `(' ./runPep.sh: line 3: `for p in (peptides.txt)' (后来我想用 $p 来做一些比只输出到屏幕更复杂的事情。) 环境变量 SHELL 是(来自env): SHELL=/bin/bash /bin/bash --version 输出: GNU bash, version 3.1.17(1)-release (x86_64-suse-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. cat /proc/version 输出: Linux version 2.6.18.2-34-default (geeko@buildhost) (gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)) #1 SMP Mon Nov 27 11:46:27 UTC 2006 肽文件.txt文件包含: RKEKNVQ

【2018.07.13学习笔记】【linux高级知识 20.10-20.15】

雨燕双飞 提交于 2019-12-09 21:12:32
20.10 for循环 语法格式: for 变量 in 条件(值范围); do 语句 ;done 示例:计算1到10的累加和 #!/bin/bash sum=0 for i in 'seq 1 10' //seq 1 10 为结果集,是以空格号或回车为间隔遍历值。 do sum=$[$sum+$i] done echo $sum 示例:针对文件的循环,遍历每个ls的结果值判断是否为目录,然后ls该目录。 #!/bin/bash cd /etc/ for a in 'ls /etc/' //a是ls /etc/ 结果里的值每个遍历,是以空格为间隔的 do [-d $a] && ls $a done 示例:/lgs/ 目录下 touch 1 2 touch 3\ 4.txt (文件名是3 4.txt,脱义字符后是空格) for i in 'ls ./' do echo $i done ##执行结果是 1 2 3 4.txt //会把文件3 4.txt 当成两个文件 3和 4.txt。验证出是以空格为间隔遍历条件里的值 20.11/20.12 while循环 语法: while 条件 ;do 语句; done 示例: #!/bin/bash //为了让脚本不意外中止,用screen中运行脚本 while : //while true或者while 1的意思,表示永久循环 do load=