Linux
jimmyleeee
从事应用安全十余年,一直在努力......
展开
-
Linux 开机自启动服务的顺序指定
今天,在产品线上遇到一个问题:产品有两个服务,A.service和B.service,两个服务都是使用systemd来启动,两个服务之间有依赖关系,A.service必须在B.service起来之后,才能使用B.service提供的功能。所以,在设置系统的两个服务的启动时,必须要设置好两者的启动关系,必须保证在B.service彻底启动起来之后,才能启动A.service,否则,A.service启动会因为不能使用B.service提供的功能而启动失败。 看到Unit里面可...原创 2021-07-13 16:11:00 · 8220 阅读 · 2 评论 -
如何查看某个端口被什么进程占用?
1) Linux lsof -i:端口号 netstat -tunlp|grep 端口号2) Windows 首先打开【任务管理器】->【性能】,左下角有个资源监控器点击【侦听端口】里面可以列出所有进程打开哪一个端口,同时还可以监控实时流量。...原创 2021-07-01 16:35:17 · 318 阅读 · 0 评论 -
如何根据文件或库找到依赖的包
如果一个项目中有某个头文件,但是又不知道这个头文件是哪一个依赖库的,可以使用如下命令查询:1) 根据头文件找到哪些库有这个头文件,例如:ssl.h2) 根据一个库的名字libsll.so.10,找到在哪一个依赖包中通过yum provides可以查询文件在哪一个库里,就可以通过yun install来安装这个库来解决依赖库的问题了。 ...原创 2021-06-25 16:11:55 · 709 阅读 · 0 评论 -
CentOS 无法安装python-pip
执行yum install python-pip -y 安装pip时,提示信息“No package python-pip available.”:解决方案是:执行yum install epel-release -y ,再执行yum install python-pip -y 即可。原创 2020-09-27 10:24:52 · 512 阅读 · 1 评论 -
configure: error: C preprocessor “/lib/cpp“ fails sanity check
使用clang编译postgresssql时,遇到如下错误:configure: error: C preprocessor "/lib/cpp" fails sanity check查了网上的,都说没有安装glibc-headers 和gcc-c++, 但是,执行yuminstallglibc-headers和yuminstallgcc-c++,显示已经安装了。因为使用clang编译的,所以,怀疑很大可能是找不到clang编译器, 但是,已经把clang所在的路径...原创 2020-08-19 16:27:26 · 6209 阅读 · 1 评论 -
Kali 如何全屏显示
首先登录进入Kali之后,在右上角有个龙一样按钮:然后在输入框中输入:setting点击【Setting Manager】 在弹出的对话框中点击[Display]再在弹出的对话框中,选择合适的分辨率:设置完之后, 就可以全屏显示了。...原创 2020-08-11 11:55:47 · 4012 阅读 · 2 评论 -
如何查看Linux系统的版本
本文章以CentOS为例,说明如何查看linux操作系统的版本。一,使用cat /proc/version 命令Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016二,使用cat /etc/redhat-releaseC..原创 2020-07-10 17:52:56 · 356 阅读 · 0 评论 -
Kali 不能更新的问题
在执行sudo apt-get update 时,遇到错误如下:直接访问http://mirrors.neusoft.edu.cn/不能访问,说明此源不能再被使用,于是需要寻找新的源。经过验证 一下两个源可以被使用:#中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contribdeb-sr...原创 2020-04-20 14:35:13 · 2749 阅读 · 0 评论 -
如何在CentOS7系统上编译Object-C的项目-源码安装篇
源码安装相对于yum安装比较麻烦,就是在不停地遇到错误解决错误,网站(http://wwwmain.gnustep.org/resources/downloads.php?site=ftp%3A%2F%2Fftp.gnustep.org%2Fpub%2Fgnustep%2F#core)对于依赖的说明也不全面按照网站说明安装依赖,依然会缺少一些比较重要的依赖包,例如:xslt、gnutls等。如果...原创 2020-03-20 23:15:33 · 385 阅读 · 0 评论 -
如何在CentOS7系统上编译Object-C的项目-yum安装篇
第一、如果要在CentOS系统上编译Object-C项目,首先必须安装gcc-objc, 可以通过yum安装:yum installgcc-objc。 第二、安装GNUStep组件,安装方法一:yum安装通过 yum list \*step\*,可以看到虽然项目的名字是GNUstep,但是在yum的列表里确实gnustep,通过运行:yum install gnu...原创 2020-03-19 15:09:23 · 429 阅读 · 0 评论 -
CentOS 7 如何安装gcc
CentOS使用yum安装,首先执行 yum install gcc,安装gcc编译器,然后通过命令 gcc -v 检测是否安装成功。然后yum install gcc-c++ 安装g++,同样通过命令g++ -v 检测是否安装成功。...原创 2020-03-18 17:39:41 · 1607 阅读 · 1 评论 -
VirtualBox 如何映射端口---命令行
首先,需要 vboxmanage list vms,查看系统里有哪些虚拟机,找到自己的目标虚拟机,例如:VM1其次,执行一下命令映射端口:VBoxManage modifyvm "VM1" --natpf1 "my-ssh-rule, tcp,,3022,,22"VBoxManage modifyvm "VM1" --natpf1 "my-https-rule, tcp,,8443,,...原创 2020-02-19 17:46:11 · 743 阅读 · 0 评论 -
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
在CentOS7的64位操作系统上安装gcc8.3.0在configure遇到如下错误:configure: error: in `/opt/gcc-8.3.0/host-x86_64-pc-linux-gnu/gcc':configure: error: C++ preprocessor "/lib/cpp" fails sanity check解决方案: 执行 yum insta...原创 2019-12-16 15:21:50 · 427 阅读 · 0 评论 -
/usr/bin/ld: cannot find crt1.o: No such file or directory
最近在CentOS7的64位机器上,通过编译源代码安装gcc8.3.0时遇到一个问题如下;/usr/bin/ld: cannot find crt1.o: No such file or directory/usr/bin/ld: cannot find crti.o: No such file or directory看了好多网上的解决方案:有的是把crtl1.o的路径加入PATH,有...原创 2019-12-16 15:14:39 · 14692 阅读 · 7 评论 -
/usr/bin/ld.gold: --push-state: unknown option
编译一个工具时,编译都正常通过,但是,却在链接时发生如下错误:执行:ld.gold --help, 确实没有发现--push-state 选项。执行ld.gold -v 显示版本信息如下:由于gold链接是binutils的一部分,所以先从https://ftp.gnu.org/gnu/binutils/下载一个最新的版本,我下载的是2.33.1,解压之后,执行命令:...原创 2019-12-09 11:24:12 · 1099 阅读 · 0 评论 -
No usable m4 in $PATH or /usr/5bin
今天编译一个工具遇到错误:解决方案:1) 从https://pkgs.org/download/m4根据操作系统类型和版本下载安装包安装2) 执行 yum install m4再次执行编译命令,可以继续编译。...原创 2019-12-06 23:14:00 · 2764 阅读 · 0 评论 -
CentOS 如何卸载GCC
在CentOS系统中安装了gcc 4.8.5之后,发现版本太低,于是,就直接安装了gcc6.5.0,执行gcc -v命令显示如下:结果执行Cmake的时候,依然提示使用的还是4.8.5,如下图:使用 “rpm -e gcc-c++-4.8.5-39.el7.x86_64”,结果提示:于是,再执行rpm -e gcc-c++-4.8.5-39.el7.x86_64, 然后再...原创 2019-12-06 17:03:39 · 4480 阅读 · 3 评论 -
安装ninja遇到 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
从https://github.com/ninja-build/ninja/releases下载ninja,设置好PATH路径,执行ninja命令显示如下:[root@test bin]# ./ninja -v./ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by./ninja)./n...原创 2019-12-05 13:34:11 · 648 阅读 · 0 评论 -
libiberty 库
libiberty库的官方介绍在:https://gcc.gnu.org/onlinedocs/libiberty/,主要意思是自由软件库(library of free software),链接方式:-liberty。一般Linux系统并不自带此库,需要自己安装。yum 安装也没有此库。源代码可以从:https://github.com/gcc-mirror/gcc/tree/master/li...原创 2019-09-11 15:54:34 · 3149 阅读 · 0 评论 -
target_compile_features no known features for CXX compiler
编译一个项目报错如下:CMake Error at Rx/v2/test/CMakeLists.txt:125 (target_compile_features): target_compile_features no known features for CXX compiler "" version .经过调查,可能是由于target_compile_features ...原创 2019-09-19 10:23:32 · 6714 阅读 · 8 评论 -
Linux (CentOS)环境下安装Mingw
访问 https://github.com/Zeranoe/mingw-w64-build, 下载mingw-w64-build 脚本。在执行脚本的路径创建src和bld目录。然后在Linux上,根据系统的类型,直接执行 mingw-w64-build i686或者mingw-w64-build x86_64,进行安装。如果系统缺少某些组件,命令会报错如下:mingw-w64-bu...原创 2018-10-16 12:13:59 · 16567 阅读 · 4 评论 -
Solaris 10 如何解决:/usr/include/sys/siginfo.h:259: error: ‘ctid_t‘ is used as a type, but is not
/usr/include/sys/siginfo.h:259: error: ctid_t is used as a type, but is not defined as a type./usr/include/sys/siginfo.h:390: error: ctid_t is used as a type, but is not defined as a type.In原创 2011-06-27 16:22:00 · 1549 阅读 · 1 评论 -
安装与升级gcc
今天,安装了一个CentOS,居然没有gcc。于是安装GCC,并记录一下安装过程。使用yum直接安装gcc也可以,但是,由于默认的版本是4.8.5,执行yum list | grep gcc,查看如下图:太低,不符合需求,所以,就选择了安装最新的版本。使用源代码安装的一般比较麻烦的有两个方面:第一、一旦遇到编译错误,会比较难以排错;第二,如果不覆盖原来的文件的话,需要设置环境变量,比较...原创 2019-08-21 10:27:14 · 632 阅读 · 0 评论 -
undefined reference to `vtable for __cxxabiv1::__class_type_info'
今天编译一个程序需要使用虚函数的类,想探索一下虚函数表的结构,结果总是在链接的时候报错如下:undefined reference to `vtable for __cxxabiv1::__class_type_info'编译命令是:gcc virtualtable.cpp -o virtualtable经过探索,原来是在链接的时候,需要使用C++的库,而默认是不使用的,所以必须添...原创 2019-08-14 14:08:00 · 3923 阅读 · 1 评论 -
用Clang编译出现错误的解决方法
用Clang编译器编译opencv,遇到如下错误:In file included from /tool/app/gnu/gcc-8.2.0/lib/gcc/x86_64-redhat-linux/8.2.0/include/emmintrin.h:31:/tool/app/gnu/gcc-8.2.0/lib/gcc/x86_64-redhat-linux/8.2.0/include/xmm...原创 2019-05-14 10:59:26 · 7764 阅读 · 0 评论 -
Windows MAC 和Linux系统文件名的限制
Windows文件名中不能含有\ / : * ? | 这些字符。另外,大小写不敏感。MAC文件名中不能含有 : 字符,另外,文件名不能以 '.' 字符开头,大小写敏感。Linux允许使用除了 '/'以外所有的特殊字符,但是不建议用户这么做。最好文件名中不要包含 : ? @ # $&()\|; ‘’“”避免使用 + - 和. 作为文件名原创 2012-09-11 16:55:45 · 4276 阅读 · 0 评论 -
Linux root用户与一般用户的区别
root用户可以在Linux系统上做任何操作,权限没有收到任何限制。一般需要root权限的任务包括:移动文件或者文件夹in或者out of 系统目录,复制文件到系统目录,赋予或者收回用户权限,系统维护和安装一些应用程序,例如:安装RPM格式的软件通常需要root权限,因为需要写一些信息到系统目录。还有一个需要注意的就是,对于小于1024端口的知名端口,只有root用户才可以有权限侦听,如果应用程序原创 2012-08-20 16:15:32 · 14352 阅读 · 0 评论 -
AIX 下载与安装 GCC
现在链接: ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/gcc或者到 ibm的另一个下载网站:http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/download.html根据自己的AIX版本和GCC版本选择相应的gcc包。 rp原创 2011-06-29 10:27:00 · 3011 阅读 · 0 评论 -
安装Solaris系统的指导网站
http://gcc.gnu.org/ml/gcc/1999-08n/msg01022.html http://gcc.gnu.org/http://www.sunfreeware.com/原创 2011-06-28 15:52:00 · 488 阅读 · 0 评论 -
操作系统标识宏
查看gcc所定义的宏的命令:cpp -dM /dev/null命令一: cpp -dM /dev/null命令二: gcc -dM -E - 1:OS MACRO: WINDOWS: _WIN32、WIN32; UNIX/LINUX: unix、__unix、__unix__; SunOS/SOLARIS: __SVR4、__svr4__、sun、__sun、__sun__、sparc、__转载 2011-06-20 09:28:00 · 1339 阅读 · 0 评论 -
Linux 如何在路径下或者文件里查找指定内容
find yourpath -type f -print | xargs grep "Your search content"原创 2011-06-09 14:31:00 · 619 阅读 · 0 评论 -
ld.so.1: test: fatal: libstdc++.so.6: open failed: No such file or directory.
今天在solaris系统下,编译运行一个程序,总是遇到:ld.so.1: test: fatal: libstdc++.so.6: open failed: No such file or directory. 通过find命令: find / -name libstdc++.so.6 -print 发现 libstdc++.so.6这个包有在路径 /usr/local/lib 下,原创 2011-06-09 17:03:00 · 2678 阅读 · 1 评论 -
CentOS 如何启动 FTP service
1) 用root用户登录。2) cd /etc/xinetd.d vi gssftp 修改server_args = -l –a 去掉-a disable=yes改为disable=no3) cd /etc/rc.d/init.d/ service xinetd restart4) 如果没有安装 xinetd , 可以使用yum命令 安装, yum -y install xinetd*, 然后再运行 service xinetd restart 开启F原创 2011-04-12 10:54:00 · 941 阅读 · 0 评论 -
Linux系统下,如何将运行程序的用户从root转到一般用户?
在开发的过程中,一般的后台的服务程序,在开发初期没有规划好使用什么用户去运行,也没有考虑这个用户需要哪些权限,这就导致了一个很普通的现象发生,那就是,使用root,一切都可以搞定。大家都知道,使用root意味着这个程序所作的事情就没有限制啦,一旦,程序或者系统有缺陷而且被攻破,那么就可能导致攻击者可以控制整个系统,而且可以做任何事情。不过,大部分人还是不以为然,认为这样的事情不会落到自己头上,一直原创 2012-10-22 15:43:31 · 1633 阅读 · 1 评论 -
多系统,多种浏览器下:文件上下载的文件名和路径问题
当通过HTML实现上载文件时,通常使用组件,一般通过Windows的浏览器访问时,都会复制一个全路径的文件名,这时,就需要通过JavaScript解析,将文件名取出来,函数可能如下:function getFileName(input){ var tmpstr=""+input; var pos = tmpstr.lastIndexOf("/"); if(pos ==原创 2012-12-21 15:34:01 · 1083 阅读 · 0 评论 -
C、C++的几个编译错误和解决方案
今天编译一个下载的开源程序,遇到错误如下:1) error: ‘for’ loop initial declarations are only allowed in C99 mode解决方案:本机的gcc的版本是4.8.5的版本,升级一下gcc到最新版本,解决此问题。2) 接着又遇到另外一个错误:error: incompatible implicit declaration of b...原创 2018-11-14 16:30:33 · 1326 阅读 · 0 评论 -
Linux C/C++ 编译器cc\gcc\g++\c++区别
使用Linux系统的编译c或者c++的人,都知道Linux系统的编译器有cc\gcc\g++\c++,但是他们之间到底是什么关系呢?首先到系统的/usr/bin路径下,使用命令:ll | grep cc,可以看到如下:由此,可以知道LInux系统下,cc就是gcc。关于c++和g++也都在/usr/bin路径下,查看c++和g++的信息如下:两个文件的大小是一样的,再进一步...原创 2018-11-08 14:35:20 · 4944 阅读 · 0 评论 -
no member named ‘make_unique‘ in namespace ‘std‘
使用CentOS 7 系统自带编译器4.8.5,编译一个项目,项目的有一个编译选项是-std=c++14,报错:no member named 'make_unique' in namespace 'std'根据https://gcc.gnu.org/gcc-4.9/changes.html可以知道,到gcc的4.9版本之后才支持-std=c++1y选项。查找gcc的版本,当前已经...原创 2018-11-08 09:47:15 · 9626 阅读 · 0 评论 -
Linux 命令行如何安装和使用Virtual Box
1) Download VirtualBoxwget https://download.virtualbox.org/virtualbox/5.2.14/VirtualBox-5.2-5.2.14_123301_el6-1.x86_64.rpm2) Install VirtualBox:rpm -ivh VirtualBox-5.2-5.2.14_123301_el6-1.x86_64....原创 2018-07-09 15:10:25 · 3074 阅读 · 0 评论 -
LLVM: collect2: error: ld terminated with signal 9 [Killed]
使用虚拟机CentOS 64, 根据 http://clang.llvm.org/get_started.html一步一步地编译LLVM+Clang,编译LLVM总是出现错误:collect2: error: ld terminated with signal 9 [Killed]首先检查了虚拟机的硬盘,通过df命令发现硬盘已经100%,于是扩展硬盘40G。只再VMWare界面扩展没有...原创 2018-03-15 10:07:24 · 4449 阅读 · 0 评论