‘壹’ linux下安装HornetQ
解压完成后HornetQ就可以直接启动了,但实际项目中需要做一些配置才能方便使用。
修改hornetq-beans.xml,将jnp.host改为本机IP地址,这样就可以被其他计算机访问
同上,将localhost改为本机IP地址,可以使用vim全局替换:
对于高手,还有一招更快捷的方法,不需要打开文件,直接在/config/stand-alone/non-clustered目录下执行如下perl命令代替步骤2和3:
hornetq-jms.xml主要是配置队列名称,队列配置不同于其他配置,它属于立即生效,不需要重启。在该文件中默认ExpiryQueue队列下添加队列即可。
日志中看到 Server is now live表示启动成功。
修改HQ的bin目录下的run.sh文件,在默认的java启动命令中加入三个参数:
参数具体含义可以参考Oracle的 官方文档
修改完成后,运行bin目录下的stop.sh文件停止服务,然后按照第四步重新启动HornetQ。
最后,打开JConsole连接刚才设置好的端口以及对应的IP,并输入服务器的用户名和密码:
连接成功之后,可以查看具体的信息:
‘贰’ linux中如何用rename命令重命名一个文件
用法如下:
$ rename [options] [perlexpr] [files]
PS:
(1)options
-v 显示成功重命名的文件-n 只显示将被重命名的文件,但是不进行重命名-f 如果文件已存在,覆盖-e 表明需要需要被执行的code,如果没有-e,那么第一个参数将被当成code。
(2)perlexpr
这是一个Perl表达式,文件名应当在其中被改变,没学过Perl也没关系,这个命令用到的语法很像sed,容易上手。
(3)files
需要重命名的文件。
linux中如何用rename命令重命名一个文件示例:
1、去除文件扩展名
$ rename 's/.bak$//' *.bak
2、去除文件名中的空格
$ rename 's/ //g' *
3、文件名转为小写
$ rename 'y/A-Z/a-z/' *
4、现在有一堆文件,他们的文件名模式是这样的第一部分-haha-第二部分.file ,现在要把中间的-haha- 删去并把第一部分的字符串和第二部分的字符串对调,可以这样:
$ rename 's/(.*)-haha-(.*)(.file)/$2$1$3/' *.file
‘叁’ Linux下批量修改文件名
Linux下修改文件名有mv和rename。 其中mv命令只能对单个文件重命名 , 这是mv命令和rename命令的在重命名方面的根本区别。
linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:
输入man rename 看到第一行是:
RENAME(1) Linux Programmer’s Manual RENAME(1)
这个就是C语言版本的
而如果出现:
RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了
C语言版本格式:rename 原字符串 新字符串 文件名
Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名
rename支持正则表达式
例子:
字母的替换 rename "s/AA/aa/" * // 把文件名中的AA替换成aa
修改文件的后缀 rename "s//.html//.php/" * // 把.html 后缀的改成 .php后缀
批量添加文件后缀 rename "s/$//.txt/" * // 把所有的文件名都以txt结尾
批量删除文件名 rename "s//.txt//" * // 把所有以.txt结尾的文件名的.txt删掉
在文件夹shell下创建文件10个文件
touch tmp_{1..10}.txt
找到含有“_“”的文件夹。
find ./ -name "*_*"
读取id, 用mv改名,$为自己理解为赋值后的id,格式为
‘肆’ 总结linux替换字符串的几种方法
一)通过vi编辑器来替换。
vi/vim 中可以使用 :s 命令来替换字符串。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
(二)直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
1.perl命令替换,参数含义如下:
-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F 指定-a的分隔符,可以使用正则表达式
-e 执行指定的脚本。
-i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
-l 对输入内容自动chomp,对输出内容自动添加换行
-n 自动循环,相当于 while(<>) { 脚本; }
-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }
用法示例:
perl -p -i.bak -e 's/foo/bar/g' *.c
将所有C程序中的foo替换成bar,旧文件备份成.bak
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”
perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2
将每个文件中出现的数值都加一
2.sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i "s/shan/hua/g" lishan.txt
把当前目录下lishan.txt里的shan都替换为hua 各个Linux详细命令介绍及应用可如下进行查找
‘伍’ Linux下的shell编程 如何替换文件中的内容
可以这样做:
方法1:sed -i 's/被替换的内容/要替换成的内容/' file
方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。
(5)linuxperl命令替换扩展阅读:
Shell编程的常用技巧:
一、自动补齐:在linux中对于命令或路径,可以TAB键进行自动补全,以下事项需要注意:
1、只存在一个该输入字符开头的命令或路径,此时自动补全;
2、存在多个该输入字符开头的命令或路径,此时第一次点击TAB键无效,此时再次点击TAB会罗列出所有该字符开头的命令或路径,继续输入直到仅仅剩一个时自动补全;
3、如果命令已经是完整的,TAB键则是本来的移动功能;而路径的话要看命令自身的行为决定后续动作。
二、历史命令
1、history命令可以显示历史执行过的命令;
2、使用!+序号执行该序号对应的命令;
3、使用!+字符执行该字符开头的最后一次执行的指令。
三、命令别名
1、实现别名:alias ddd="df -Th";
2、删除别名:unalias ddd;
3、显示所有别名命令列表:alias;
4、存放位置:~/.bashrc (加入该文件后,重启后不会消失)。
四、重定向
1、重定向标准输入:< 命令接收输入的途径由键盘改为文件;
2、重定向标准输出:> 将命令的执行结果输出到指定文件,而不是直接显示到屏幕;
3、重定向标准输出:>> 将命令的执行结果追加输出到指定文件;
4、重定向标准错误:2> 清除指定文件的内容,并把标准错误信息保存到指定文件;
5、重定向标准错误:2>> 标准错误信息追加到指定文件;
6、重定向标准输出和标准错误:&> 将标准输出、标准错误信息全部保存到指定文件,而不是直接显示在屏幕上。
‘陆’ linux批量替换文件夹名,文件名,文件内容命令
1.批量改名采用命令rename
rename 语法:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-v表示显示详细信息,-n表示不实际执行替换,只是看哪些文件会受影响。 -f 表示强制,不管是否有重名。
perlexpr是perl语法的表达式, files则是匹配项。因此,该命令执行结果与perlexpr有关,不一定就是改文件名。
实例: 将所有文件名*.html 改为对应的.htm
rename 's//.html$//.htm$/' *.html
去bak后缀
rename 's//.bak$//' *.bak
将文件名大写改为小写
rename 'y/A-Z/a-z/' *
但rename不能递归修改。
2.递归改名,用find+rename
将文件名的abc改为xyz
find . -name "abc*" -exec rename 's/abc/xyz/' {} /;
该命令可以将当前目录下所有子目录的文件都改名。
3.内容替换,用find+sed
将所有ablo 替换为ablozhou
find . -type f -exec sed -i -e "s/ablo/ablozhou/g" {} /;
sed 命令 -i 表示 --in-place,文件原地替换。-e 后跟替换表达式