system
文章平均质量分 56
10km
这个作者很懒,什么都没留下…
展开
-
maven:解决release错误:Artifact updating: Repository =‘releases:Releases‘ does not allow updating
今天执行maven命令将项目发布到maven中央仓库,命令显示执行成功了,但在后台按release意思就是'releases'仓库不允许上传制品。以前遇到的问题是失败,这都好理解,但现在是上传制品已经成功,在后台按close按钮执行制品验证也没问题,就是在按release按钮执行发布时出了错,这种情况第一次遇见。我将版本回退,并在后台删除上传的制品,重新执行一次,反复几次还是同样的问题。根据错误提示在网上找到下面这个讨论。原创 2024-07-17 17:19:35 · 445 阅读 · 0 评论 -
bat:windows bat脚本修改文件内容
linux下命令行修改文件有很多工具,比如sed,但Windows下就没那么方便,不过for和move命令为命令修改文件提供一个途径,虽然不好用,但总比没有强啊。简单的修改还是可以的。原理就是for循环读取文件中的每一行,处理后输出到临时文件,然后用move命令将临时文件改名,覆盖原文件内容。以下是一个示例,修改一个Java代码,如果对以public static final NativeLibrary和public static final AppauthLibrary开头的行,添加//注释符rem原创 2022-03-07 16:17:14 · 7376 阅读 · 1 评论 -
linux:sed修改xml中的值示例
利用sed指定搜索范围的正则表达式匹配(类似 /1,5s/hello/world/1) 实现对XML文档中指定字段的修改基本的思路就是要在指定范围内进行搜索替换。首先确定搜索范围:通过在xml中查找server的起始标记和结束标记来确定搜索起始行号和结束行号然后在搜索范围内进行正则表达式匹配替换原创 2021-12-17 11:24:41 · 3103 阅读 · 7 评论 -
linux shell:bash 正则表达式判断操作符 =~ 的问题
本文描述了在开发一个shell脚本的小项目时,通过在macOS,windows/MSYS,ubuntu,CentOS 下测试发现bash 4.3.48以前的版本在处理正则表达判断操作符=~时存在一个bug,并说明了避开这个bug的方法原创 2021-12-05 00:03:09 · 2933 阅读 · 0 评论 -
macOS:sed -i报错:sed: 1: “xxxxx“: extra characters at the end of p command
在stackoverflow上找到这个帖子《sed command with -i option (in-place editing) works fine on Ubuntu but not Mac》[^1],总算知道了原因:macOS属于类unix,与linux还是有差异的,这个问题就是macOS与linux之间差异造成的。简言之,就是BSD/macOS 的sed和linux(GNU)下的sed 对于`-i`参数的处理有微小的差异。`-i` 即inplace,即对文件原地修改,`-i` 后面可以原创 2021-12-04 15:47:30 · 3175 阅读 · 1 评论 -
linux shell:提取正则表达式捕获组(catch group)匹配的字符串
目前大部分shell(如bash)都提供了正则表达式判断操作符`=~`,如下就可以对一个字符符判断是否匹配正则表达式:```bash$ [[ "hello world" =~ wor(ld)? ]] && echo matchmatched```其实基于上面的表达式不仅可以判断是否匹配正则表达,还可以通过上面表达式创建的变量 `BASH_REGEX`(数组)提取捕获组(catch group)原创 2021-12-03 17:47:15 · 6316 阅读 · 0 评论 -
linux shell:字符串分割并反序输出
我想将一个以.分割的字符串(`com.sun.java`)反序输出为(`java.sun.com`),在这里《Reverse order of dot-delimited elements in a string》找到不少办法,挑了两个简单的通用性好的而且我能看得懂的。原创 2021-12-02 18:25:04 · 1593 阅读 · 0 评论 -
linux shell:find命令批量删除文件或文件夹
linux的find命令功能很强大,本文列举在用find删除文件的示例原创 2021-12-01 13:31:42 · 12031 阅读 · 3 评论 -
linux shell:将蛇形命名法(snake-case)变量字符串转为驼峰命名法(camel-case)变量字符串
最近的工作有一个需求,需要利用linux shell脚本将_或-作连字符的变量名字符串转为驼峰命名法(camel-case)的字符串,其实吧,'_'做连字符的命名方式有专门的名字,蛇形命名法(snake-case).'-'做连字符的命名方式也有专门的名字,脊柱命名法(spinal-case),也有叫kebab-case(kebab-烤肉串,也挺形象的).关于这些命名方式的由来本文未尾的参考资料1 2 3都有详细说明,我也是这次为了解决这个问题查资料才知道这些名词,以前孤陋寡闻了。通过搜索引擎找到stack原创 2021-11-29 18:11:05 · 2148 阅读 · 0 评论 -
docker:mysql启动时自动执行初始建表脚本
默认情况下,mysql镜像创建的docker容器启动时只是一个空的数据库实例,为了简化docker部署,我们需要 在docker创建mysql容器的时,数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后数据库就可用了。这就需要容器启动时能自动执行sql脚本。 在mysql官方镜像中提供了容器启动时自动执行/docker-entrypoint-initdb.d文件夹下的脚本的功能原创 2018-01-12 18:04:50 · 9366 阅读 · 1 评论 -
virtualbox:摄像头无显示:V4L2_CORE: Could not grab image (select timeout): Resource temporarily unavailable
virtual box虚拟机中要使用usb设备,需要对virtual box增加usb支持,网上这样的文章很多,参见《virtualbox的USB识别》。照着上面的步骤完成了usb支持,执行ls /dev/video*已经可以找到usb摄像头设备了。然后执行sudo apt-get install guvcview安装guvcview。 运行guvcview检查摄像头是否正常工作。结果却...原创 2018-08-25 17:38:13 · 3516 阅读 · 0 评论 -
Win7/Win10移动用户文件夹(C:\Users)移到非系统盘(如D:)
Windows的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中保存着所有的用户个人数据,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\你的用户名\Desktop\目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:\Users\用户名\Documents目录之中)。用户文件夹处于系统盘的坏处在于,如若系统盘一旦坏掉,就可能连带用...原创 2019-06-02 14:53:08 · 90450 阅读 · 46 评论 -
MSYS2下:unix路径和window路径之间的转换
今天在写MYSYS2下的脚本(bash shell)遇到一个问题:MSYS2环境下获取到的路径都是’/'开头的unix路径,需要把它转为’C:\Windows\system’这样的windows路径。万能的google给了我答案,找到stackflow上这篇文章:《msys path conversion (or cygpath for msys?)》 。由文中可知,MSYS提供了一个程序c...原创 2019-07-15 13:35:46 · 4823 阅读 · 1 评论 -
MSYS2:PID与windows 进程ID
MSYS2下启动的进程ID分两种:MSYS2空间的PID和windows的PID以mysql为例,在MSYS2窗口启动mysqld$ mysqld --console如下我们在windows CMD窗口用netstat查找3306端口的进程ID为2356C:\>netstat -aon | findstr 0.0.0.0:3306 TCP 0.0.0.0:3306 ...原创 2019-07-15 17:42:27 · 590 阅读 · 1 评论 -
maven:linux shell获取项目版本号(project.version)的方法
今天写linux shell脚本时需要获取maven项目的版本号,也就是pom.xml中的${project.version}。在Stack OverFlow上找到这个帖子:《How to get Maven project version to the bash command line》大神们提供了好几种方法。摘要如下,经实测都可用,挑一个自己喜欢的就好。mvn org.apach...原创 2019-07-18 14:02:08 · 3413 阅读 · 1 评论 -
MSYS2:获取本机的ip地址
MSYS2虽然是个linux shell环境,但如果要获取网卡的信息,还是需要windows平台提供的命令参照这篇文章 《bat脚本 - 获取局域网内的本机IP》可以实现在MSYS2环境下获取本机IP,示例如下$ route print -4 |grep -E '0.0.0.0\s+0.0.0.0' | awk '{print $4}'...原创 2019-07-20 11:46:54 · 429 阅读 · 1 评论 -
MSYS2:windows下获取ip地址对应的网卡名
基本的原理就是用netsh interface ipv4 show address命令列出所有网卡的地址信息,然后用sed过滤掉无用的内容,具体实现如下:$ netsh interface ipv4 show address |\ sed -E -e '/(DHCP enabled|Subnet Prefix|InterfaceMetric|Default Gateway|Gateway M...原创 2019-07-20 16:11:18 · 1125 阅读 · 1 评论 -
docker:利用maven镜像启动服务的一个示例
制作一个docker镜像如果从头开始做就实在太麻烦也没必要了,以下的示例是基于maven官方镜像用maven启动一个自定义的应用服务的示例. 如何通过maven启动自定义服务参见前一篇博文《maven:通过自定义maven插件运行启动自定义应用服务》详细的解释参见Dockerfile中的注释:# docker image of facelog service# versio原创 2018-01-17 23:01:51 · 2416 阅读 · 1 评论 -
ubuntu16.04下NVIDIA GTX965M显卡驱动PPA安装
这两天在笔记本(神舟Z7M-SL7D2)下安装ubuntu16.04, 执行ubuntu安装程序时,经常会在最开始选择语言的界面时鼠标键盘无响应,死机概率30%。 安装完成后,点重启按钮也会导致系统无响应,死机概率(99%)。 启动系统后输入密码登录无法显示桌面,鼠标键盘无响应,死机概率(90%). 前面两种死法,还能忍受,但第三种不能忍啊。 反复尝试失败后,感觉似乎ubuntu对这个型原创 2017-03-10 11:16:28 · 28539 阅读 · 13 评论 -
java:执行linux sudo命令
我们知道java中执行控制台命令,都是通过 Runtime.exec系列方法。 如果要执行root权限的命令需要用到sudo,需要输入sudo密码,这个也好解决,使用echo可以向sudo输入密码,同时sudo要加-S参数指定从标准输入读取密码,示例如下: echo ‘sudopassword’ | sudo -S cat /etc/profile但是在java中通过 Runtime.exe原创 2017-12-27 16:33:02 · 7018 阅读 · 1 评论 -
win10 ubuntu16 双系统共用蓝牙鼠标
最近给新笔记本电脑装了win10+ubuntu16双系统,发现原来在win10下已经配对的蓝牙鼠标,在ubuntu下配对后,win10就不能用了,需要重新配对才行,反之亦然。 每次切换系统后蓝牙鼠标都要重新配对真的好麻烦,参考《Ubuntu win10共享蓝牙鼠标》实现了两个系统共用蓝牙鼠标。 方法如下:步骤一在win10下建立与鼠标的蓝牙配对。步骤二切换到ubuntu下,再将蓝牙鼠标与系统连接原创 2017-03-10 18:01:07 · 27203 阅读 · 17 评论 -
群联PS2251-07主控(Kingston64G)量产CD-ROM+移动磁盘模式过程记录
最近在京东新买了个Kingston64g U盘,打算把它量产成CD-ROM光驱+移动磁盘模式。 U盘量产真是个折磨人的体力活儿,主要的原因是这些量产工具软件都是为特定型号U盘、特定生产环境设计的,并不是面向大众的产品,所以通用性很差,软件的容错性也很差,如果找不准正确的量产工具版本,正确的使用流程,怎么做都是徒劳。 上一次玩量产还是几年前了,过程几乎忘光了,而且过去的时间太长,以前的经验也没用了原创 2016-11-16 18:58:13 · 58221 阅读 · 23 评论 -
Intel B150芯片组(usb3.0)主板的电脑上安装Win7
我们知道,原生的Win7安装盘并没有支持usb3.0driver,而Intel B150芯片组的USB芯片是是usb 3.0标准的,所以在这种比较新的主板上用u盘装Win7时,一进入安装界面就报错:找不到CD-Rom驱动。。。。 怎么办呢? 其实主板厂商早已经为这个问题提供了解决方案,就是提供一个实用工具软件将usb3.0driver加入win7的安装盘(或iso)。 我最近新换的台式机电脑主原创 2016-11-14 14:09:56 · 19844 阅读 · 2 评论 -
VisualSVN:允许修改svn提交日志(pre-revpro-change hook)
我们的svn服务器是使用windows平台的VisualSVN Server,有时SVN提交之后,发现忘记写提交说明了,这时需要修改日志信息,然后就报错了:错误提示的意思说Repositories不接受修改日志,需要要创建一个 pre-revpro-change hook才行,问了度娘,搞清楚了。 hook,顾名思义,就是svn在执行一个动作之前调用的用户自己定义代码(用户没有自定义的情况下就使用原创 2016-12-13 11:12:40 · 6869 阅读 · 1 评论 -
eclipse.ini:修改-vm参数让eclipse可以直接锁定到任务栏
一般的程序,运行时如果没有锁定在任务栏,鼠标右击程序图标时右键菜单中都会显示”将此程序锁定到任务栏”这个选项,点击它,就可以将该程序锁定在任务栏,方便下次打开。 但今天新装eclipse的时候,发现鼠标右击eclipse图像居然没有这个选项。 虽然可以直接如下图右击eclipse.exe,点击”锁定到任务栏”来实现, 但这样以来在运行eclipse时任务栏会有两个eclipse的图标。这令原创 2016-11-27 19:14:19 · 6400 阅读 · 1 评论 -
windows:subst 映射文件夹为盘符塈设置开机启动执行bat脚本
在做开发的过程中(尤其是java开发),因为很多第三文件工具和库都是免安装的版本,解开就能用,所以我会以一个文件夹为根目录在此文件夹下保存所有的第三方工具和库,这样的好处是如果哪天要换电脑工作,只要把这个文件夹备份迁移到另一台电脑,基本上就可以开始工作了。 如下图文件夹j下面所有项目代码,开发工具及第三方库都放在这里 并且,将这个j文件夹映射成windows盘符J: 这样,我可以以J盘原创 2016-11-26 18:36:03 · 9649 阅读 · 0 评论 -
ubuntu14:vim语法高亮的简单办法--安装vim-gtk版本
默认安装ubuntu14后,vim编辑器是不支持语法高亮的,黑乎乎一片,用起来非常不习惯,而且一些键的定义也与我以前熟悉的centos6上的习惯不一样,很不方便,网上有很多文章描述了如何设置vim的语法高亮,但感觉都好复杂,要改好多配置,看着我头痛,就没有一种简单的办法吗?为神马我用centos6.5的时候,就没有对vim做过任何修改,就能支持基本的语法高亮呢? 偶然在一个贴吧文章中找到方向(ht原创 2016-11-11 10:51:59 · 6083 阅读 · 1 评论 -
vsphere(esxi):解决vmware虚拟机无法全屏显示
最近在exsi服务器上新建了一个centos7的虚拟机和一个ubuntu14虚拟机,centos7虚拟机正常安装了vmware-tools,ubuntu14虚拟机正常安装了open-vm-tools,但都无法进入全屏状态(ubuntu14进入全屏时直接挂了),自然虚拟机分辨率也不能自动Autofit Window。百思不得其姐。。。很久之前装的centos6.5都一直很正常呀。 后来想到两个不同操原创 2016-11-08 10:25:48 · 16408 阅读 · 0 评论 -
esxi(vsphere):打开虚拟机和主机之间的copy/paste功能
在VMware Workstation中运行的虚拟机如果安装了vmware-tools(如何安装vmware-tools网上有很多教程,这里不再说明),基本上就可以正常使用主机和虚拟机之间的copy/paste文本粘贴,但在(vsphere4.0以后)exsi上因为安全限制更高,所以安装vmware-tools后默认是将copy/paste功能禁用的。如果要想启用copy/paste功能需要打开相应原创 2016-11-07 14:48:50 · 35836 阅读 · 1 评论 -
RabbitVCS(0.14.2)不显示右键设置(settings)菜单,AttributeError: ‘gtk.VBox‘ object has no attribute ‘set_visible
RabbitVCS是Linux的svn客户端,对于在windows下用惯了TortoiseSVN的人来说,在linux下使用纯命令行的svn命令实在是太折磨人了,RabbitVCS就是一个类似于TortoiseSVN的linux平台工具。 我的linux平台是CentOS6.5,安装RabbitVCS已经好久了,是用yum install安装的0.14.2版本。 当时安装一切正常,但是突然有一天原创 2016-09-29 12:02:59 · 2785 阅读 · 0 评论 -
CentOS6.5:升级了python,把输入法给玩坏了
我用的linux是CentOS6.5,预装的python是2.6,前几天因为要编译Caffe,把python升级到2.7.12。一直没在意,中间又做了好多操作,当我想用输入法(五笔)输入中文的时候,发现输入法不能使用了。 输入法图标不见了,在系统菜单中选择”系统->首选项->输入法”,死活调不出下面的”输入法配置工具”(后来知道这个是ibus-setup的界面) 开始并不知道是什么原因的导致的,原创 2016-09-28 15:54:59 · 1326 阅读 · 1 评论 -
CentOS6.5:login后循环显示“starting filemanager“的问题
之前我的CentOS6.5系统一直使用正常,我也没搞清楚我做什么升级操作,导致登录入系统后,下面的状态条反复显示”starting filemanager”,无法显示桌面,但是可以正常打开终端。。。 从google上找了半天,有了收获: http://forums.fedoraforum.org/showthread.php?t=243445解决的办法就是删除 nautilus再重装。 sud原创 2016-09-28 11:07:14 · 2100 阅读 · 0 评论 -
emacs:输出下划线
今天在用emacs写文档的时候,发现类似JAVA_HOME这样的字符串,在生成htmla时,会将_后面的HOME以下标方式输出。这里写代码片 如果你并不常用到下标,要解决这个问题,需要修改.emacs,添加一行(setq org-export-with-sub-superscripts (quote {})) 这样以来如果要输入下标,就要加{} 例如: 输入 X_{Y}, Y成为下标; 而原创 2016-08-06 19:09:44 · 1308 阅读 · 1 评论 -
ubuntu apt-get:有 1 个软件包没有被完全安装或卸载
用apt-get安装软件时,居然报错了: $ sudo apt-get install -y git 正在读取软件包列表… 完成 正在分析软件包的依赖关系树 正在读取状态信息… 完成 git 已经是最新版 (1:2.7.4-0ubuntu1)。 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 242 个软件包未被升级。 有 1 个软件包原创 2017-03-15 10:02:54 · 15735 阅读 · 0 评论 -
centos6.5:glibc 简单升级到2.14
升级glibc的过程都大同小异,下面这个过程简单点,好处是不需要手工ln创建软连接,缺点嘛,就是直接安装到系统文件夹/lib64下,想换回来就比较麻烦。# 下载 glibc 2.14源码wget wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz# 解压上一步下载后的源码 tar xvf glibc-2.14.tar.gzcd glibc-原创 2017-12-25 14:52:53 · 4104 阅读 · 0 评论 -
centos6.5:gcc 升级(5.2.0)过程记录
安装前准备如果系统中还没有安装gcc,g++编译器(4.4.7),要先安装#安装旧版本的gcc、c++编译器sudo yum install gcc gcc-c++编译安装# 下载gcc 5.2.0源码wget http://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2# 源码解压tar xvf gcc-4.9.0.tar.bz2 cd g原创 2017-12-25 16:18:11 · 2434 阅读 · 0 评论 -
ubuntu14/ubuntu16/centos7:解决可以ping ip却ping不通主机名
最近装了两台linux虚拟机分别CentOS7和Ubuntu14,都装了samba服务,文件共享都正常,虚拟机上互联网也正常,能以ping 通局域网的ip,却都ping不通主机名,其他电脑(windows/linux)都能ping 通这两台虚拟机的主机名。 最终找到原因:没有安装winbind,也没有配置/etc/nsswitch.conf 下面分别说明CentOS7和Ubuntu14下的步骤。原创 2016-11-11 13:00:25 · 11127 阅读 · 1 评论