红联Linux门户

Linux帮助
  • shell脚本中将输出内容赋值给一个变量时的换行问题

    2017-07-13 - 如题,将某命令的输出结果赋值给一个变量 a 如果使用 echo $a 输出变量,则变量中的 换行都会被忽略掉,所有内容输出到一行 而使用 echo $a 可正常输出变量中的换行 当我们要将命令的输出保存到一个变量,再对每一行遍历进行某些操作时不能使用 for item in...

  • java本地调用cmd,shell命令,远程调用Linux执行命令方法总结

    2017-07-13 - 有时候经常会碰到需要远程调用Linux或者本地调用linux或者本地调用cmd的一些命令,最近小结了一下这几种用法。 本地调用cmd命令 @Test public void testCmd()throws Exception{ String cmd=cmd /c date; //命令的前面必须要有cmd /c execCmd(cmd); } public...

  • Linux中Jenkins+Git+Gradle自动化打包AndroidLinux中Jenkins+Git+Gradle自动化打包Android

    2017-07-13 - 我们在Android的开发中常常需要:开发环境、测试环境和生产环境三个环境下测试我们的应用,经常会遇到这样的情况,测试人员给我们开发人员说能不能给我打一个XXX的环境的包,我需要测试,再工作不忙或者偶尔一次的情况下,开发人员还是很乐意给测试人员打包...

  • Linux上Qt程序闪退的BUG

    2017-07-10 - 问题现象 输出信息 [xcb] Unknown request in queue while dequeuing [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called [xcb] Aborting, sorry about that 问题背景 我把一个Qt的Windows程序,移植到Linux上,然后...

  • 建议linux下使用stat()获取文件大小建议linux下使用stat()获取文件大小

    2017-07-07 - Linux下的stat函数是专门用来获取文件状态的API,需要一个结构体struct stat 定义如下: struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number...

  • 开发一个Linux调试器(三):寄存器和内存开发一个Linux调试器(三):寄存器和内存

    2017-07-04 - 上一篇博文(http://www.linuxdiyf.com/linux/31737.html)中我们给调试器添加了一个简单的地址断点。这次,我们将添加读写寄存器和内存的功能,这将使我们能够使用我们的程序计数器、观察状态和改变程序的行为。 注册我们的寄存器 在我们真正读取任何寄存器...

  • 自学的程序员如何找到好工作?自学的程序员如何找到好工作?

    2017-07-03 - 2016 年有位年轻的程序员在 Quora 上提问求助: 我今年 17 岁,从 14 岁开始编程。我主要关注 Java 语言,并在 AP 计算机科学这门课上拿了 5 分。我相当精通 Java(比如语法、主要类、GUI/JFrame 等),HTML5 和 CSS3 也不错。我感觉自己缺乏很多有用的技能...

  • java利用wkhtmltopdf实现html转化pdf

    2017-07-01 - 最近做项目涉及到了合同的签订,原来用的wordxml格式的ftl模板转doc来完成的合同的签署,但是想在公司新需求需要以html格式的模板可以在线编辑合同,这样原来的模式就已经不适合了,在网上查了查,结果发现了wkhtmltopdf,下面就是我用的一些心得分享给大家...

  • linux下eclipse编译带有math.h库的项目

    2017-06-29 - linux下,如果程序包含 math.h,在gcc时必须加入 lm 例如:gcc -o main.o main.c -lm 但是在eclipse下面编译,项目回自动生成makefile ,无论如何手动修改makefile,在编译的时候也会被eclipse修改成原来的样子。 这个lm的设置方法如下: 选择project proper...

  • Linux下重启多个tomcat服务的脚本

    2017-06-29 - 由于修改tomcat的配置文件或手动操作数据库数据后,tomcat的缓存和redis的缓存很严重,需要经常重启tomcat来释放缓存,经常就是手动重启。 1、查找tomcat的进程ID ps -ef | grep tomcat 2、根据路径去查找进程ID,然后逐个杀掉(毕竟一台服务器上面是会有多...

  • 命令行执行R命令和R脚本

    2017-06-29 - 脚本开发阶段还可以使用编辑器和IDE,但写好后的脚本还是要有终端执行的方式才行。命令行才是王道,R脚本应该也一样了。打开Linux终端敲一下 R --help 发现,R的命令行执行方式也是很简单。借用R自带的 mtcars 数据试一下,完全OK! ①直接执行R命令 root@ub...

  • 开发一个Linux调试器(二):断点开发一个Linux调试器(二):断点

    2017-06-27 - 在该系列的第一部分(http://www.linuxdiyf.com/linux/31643.html),我们写了一个小的进程启动器,作为我们调试器的基...

  • 在Linux与Windows上获取当前堆栈信息

    2017-06-26 - 在编写稳定可靠的软件服务时经常用到输出堆栈信息,以便用户/开发者获取准确的运行信息。常用在日志输出,错误报告,异常检测。 在Linux有比较简便的函数获取堆栈信息: #include stdio.h #include execinfo.h #include signal.h #include stdlib.h #include...

  • Linux Shell简单编程之求出n以内的素数

    2017-06-26 - 输入整数n,在终端中打印输出n以内的素数。 打开Linux终端,我这里用的操作系统是Ubuntu linux,在终端或者桌面新建一个扩展名为 .sh的shell文件,输入以下代码: #get a prime from 1~value echo enter a value : read value isPrime(){ local var=$1 for((...

  • linux shell进程监视脚本

    2017-06-26 - 用linux那么久,到现在算是能写出来一点实用的脚本。记录一下。 这个脚本用来监视TARGET指明的程序,如果程序没有运行,则运行相应的启动脚本run.sh。并且,如果进程的cpu使用率达不到预期,可以杀死进程重新启动程序。功能比较简单,稳定性还在测试当中,ru...

  • 移植vim到ARM开发板

    2017-06-25 - 1.下载源码 vim:ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2 ncurses: https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.0.tar.gz 2.解压到项目主目录 $ tar -jxvf ../../../tar/vim-7.4.tar.bz2 vim74/ -C ./ $ tar -zxvf ../../../tar/ncurses-6.0.ta...

  • linux下编译源码和运行程序时include文件和lib库文件的注意事项

    2017-06-24 - 1.include文件 编译时,用而非引用的头文件,会在源码所在的目录中搜寻头文件。用引用的头文件一般会在usr/include,usr/local/include等中搜寻。 2.lib动态库文件 编译时引用的库文件一般会在usr/lib,usr/local/lib等中搜寻。 3.有些库或头文件并不在默认的...

  • 如何用Python做一个微信自动拉群机器人?如何用Python做一个微信自动拉群机器人?

    2017-06-23 - 微信群的用户添加逻辑是 当群人数达到100人后,用户无法再通过扫描群二维码加入,只能让用户先添加群内联系人微信,再由联系人把用户拉进来。这样,联系人员的私人微信会添加大量陌生人,给其带来不必要的打扰,而且纯人工操作,也容易出现纰漏。 那么,是否...

  • 开发一个Linux调试器(一):准备环境

    2017-06-21 - 任何写过比 hello world 复杂一些的程序的人都应该使用过调试器(如果你还没有,那就停下手头的工作先学习一下吧)。但是,尽管这些工具已经得到了广泛的使用,却并没有太多的资源告诉你它们的工作原理以及如何开发,尤其是和其它那些比如编译器等工具链技术...

  • Linux下OpenCV打开USB接口的UVC摄像头及索引号是202的原因

    2017-06-21 - 一般来说,USB的UVC摄像头在Linux平台下通过V4L驱动来使用。OpenCV打开USB的UVC摄像头一般也通过V4L驱动来打开。打开方法网上都有,一般就是通过VideoCapture的open(int index)函数来打开,其中index设为202。如下: VideoCapture cap; Mat frame; if(!cap...

  • Linux Qt程序打包成一个可执行文件

    2017-06-21 - 最近用Qt写了一个上位机, 而且是跨平台(Windows, Linux, ARM-linux), 开发完成后需要对程序进行打包, windows的打包非常容易,选择非常多, 但是linux下面的选择就少了些. 方案的选择 Qt官方有页面专门说明Linux X11的deployment(https://wiki.qt.io/Deployin...

  • 使用Python 2.7中pycurl模块编写探测多节点Web服务质量脚本

    2017-06-19 - pycurl安装与说明 pycurl说明 PycURl是一个C语言写的libcurl的Python绑定库。libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库。它的功能很强大,在PyCURL的主页上介绍的支持的功能有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and...

  • JVM调优之jstack找出最耗cpu的线程并定位代码JVM调优之jstack找出最耗cpu的线程并定位代码

    2017-06-19 - jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps、top、printf、jstack、grep。 第一步先找出Java进程ID,服...

  • 基于Linux和win,纯java后台结合phantomjs丶highchart生成图表基于Linux和win,纯java后台结合phantomjs丶highchart生成图表

    2017-06-18 - Highcharts 是一个用纯JavaScript编写的一个图表库。能够很简单便捷的在web网站或是web应用程序添加有交互性的图表。所以Highcharts图表的出现必然有强大的前端浏览器做为其强大的支撑。 但是问题来了,如果要单纯的依赖后台生成图表呢?此时必须要依赖phant...

  • Linux中高效编写Bash脚本的10个技巧Linux中高效编写Bash脚本的10个技巧

    2017-06-18 - Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式。尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能。 本文中,我们将分享 10 个写出高效可靠的 bash 脚本的实用技巧,它们包括: 1...

  • 我是如何开始踏上bash脚本编程之路的?我是如何开始踏上bash脚本编程之路的?

    2017-06-18 - 通过一些简单的 Google 搜索,即使是编程入门者也可以尝试编写代码将以往枯燥和冗长的任务自动化。 我前几天写了一个脚本。对于一些人来说,这句话听起来没什么了不起的。而对于另一些人来说,这句话意义重大。要知道,我不是一个程序员,而是一个作家。 我...

  • Linux下jira自启动设置Linux下jira自启动设置

    2017-06-17 - jira 的启动主要依靠的是bin目录下的catalina.sh脚本,提供了如init脚本的start,stop等参数。 #!/bin/bash # # chkconfig: 2345 85 15 # description: jira # processname: jira # source function library . /etc/init.d/functions #下面一行比较重要,为j...

  • Linux一键安装tomcat的shell脚本

    2017-06-17 - 最近闲来无事,写了个简单的一键安装tomcat和环境配置。 1,准备工作 (1)先下载两个包,apache-tomcat-7.0.68和jdk1.7.0_79(名称要改成对应) (2)建立一个内网下载地址把上面两个包放进去,或者找到外链也可以。注意记得脚本修改wget地址 (3)会自动安...

  • linux获取多机CPU,Disk,mem信息脚本linux获取多机CPU,Disk,mem信息脚本

    2017-06-17 - 主要是通过 /proc/cpuinfo,/proc/meminfo等来查看相关信息。 #!/bin/bash host=ip1 ip2 ip3 rm -rf tt.log for i in $host do echo -e \033[33m-------${i} info-------\033[0m tt.log ssh $i $(${@// /\\ } 21 | sed s/^/$i:/) echo -e \033[31m------disk...

  • linux下protobuf下载并cmake编译安装全过程脚本

    2017-06-16 - protobuf源码下载 github上下载最新版本的protobuf源码zip包,并解压缩到本地 fetch_protobuf.sh ########################### #!/bin/bash shell_folder=$(cd $(dirname $0);pwd) pushd $shell_folder #如果指定的文件/文件夹存在则删除,删除失败则中止脚...

  • linux下通过user-config.jam指定编译器编译boostlinux下通过user-config.jam指定编译器编译boost

    2017-06-16 - bjam是boost的编译工具,类似于gnu make,boost就是用bjam编译的,bjam很聪明,在编译boost的时候,会自动从系统中寻找合适的编译器来完成boost编译。 但是如果系统中存在多个编译器的时候,就有点麻烦了,比如: 系统的默认编译器是/usr/bin/g++ ,另外我又...

  • linux下boost编译安装全过程脚本塈bzip2编译安装全过程脚本

    2017-06-16 - boost编译安装 build_boost.sh ##################################### #!/bin/bash shell_folder=$(cd $(dirname $0);pwd) pushd $shell_folder # 上一条命令执行出错则中止脚本执行 exit_on_error(){ if [ ! $? -eq 0 ] then echo exit for error exit -1...

  • linux下用cmake通过MinGW-w64交叉编译生成windows版本静态库

    2017-06-16 - ubuntu16下,先要安装mingw sudo apt-get install mingw-w64 如果没有安装cmake,记得安装, sudo apt-get install cmake 做交叉编译时要指定toolchain文件 Toolchain-mingw.cmake # 设置交叉编译的目标操作为windows SET(CMAKE_SYSTEM_NAME Windows) # 指定c/...

  • 定位内核模块crash的方法

    2017-06-15 - 在内核模块开发过程中,常发生系统崩溃的现象,此时系统死机,无法定位和分析问题。 常见的定位方法是安装kdump-tools,kdump-tools可以把死机前的内核日志保存下来,以便开机后能分析上次死机的日志。 这里不介绍kdump-tools的安装配置方法,介绍如何分析cr...

  • 利用图片中的exif元数据批量查找图片中所包含的GPS信息利用图片中的exif元数据批量查找图片中所包含的GPS信息

    2017-06-15 - 在图片的exif(交换图像文件格式)中标准定义了如何存储图像和音频文件的标准,而在这些标签中往往存在了一些容易被人们忽视却又重要的东西。 有一款工具名为exiftool,可以快速的解析所有标签,并将结果显示出来。 在ubuntu中可以这样下载:apt-get install...

  • 主动化脚本ssh以及telnet发送命令并退出(windows和linux都适用)

    2017-06-12 - 须要安装putty,用到的命令是plink: PuTTY Link: command-line connection utility Unidentified build, Jun 11 2017 11:43:58 Usage: plink [options] [user@]host [command] (host can also be a PuTTY saved session name) Options: -V print version info...

  • Linux上从Java程序中调用C函数

    2017-06-12 - 原则上来说,100%纯Java的解决方法是最好的,但有些情况下必须使用本地方法。特别是在以下三种情况: 1].需要访问Java平台无法访问的系统特性和设备; 2].通过基准测试,发现Java代码比其他语言编写的等价代码慢得多; 3].其他语言编写的代码已经经过大量测...

  • 掌握Git之美掌握Git之美

    2017-06-12 - 使用 7 条简单的 Git 命令开始你的软件开发之旅。 你是否曾经想知道如何学好 Git?你长期以来都是跌跌撞撞地在使用 Git。最终,你总需要掌握它的窍门。这就是我写这篇文章的原因,我将带你去启蒙之旅。这儿是我关于如何加快 Git 学习过程的基本指南。我将介...

  • 在Clion的IDE中指定命令行参数

    2017-06-11 - 最近在linux上使用Clion这个C++ IDE,感觉很好,JetBrain的产品都很不错。 但是在跑简单例子的时候,使用到thread对象,直接build会出错,报错是: thread::threadvoid ()(int), int(void ()(int), int):pthread_create未定义的引用 就是说头文件的函数原型...

  • linux获取U盘可用空间大小,U盘大小——statfs的使用linux获取U盘可用空间大小,U盘大小——statfs的使用

    2017-06-09 - 当U盘挂载成功后,知道了U盘的挂载路径,比如/sda/sda1挂载到路径/mnt/abc下,那么如果想知道sda1的可用空间和总大小,可以传/mnt/abc进statfs函数,然后计算而得。 #include sys/vfs.h /* 或者 sys/statfs.h */ int statfs(const char *path, struct statfs...