Linux拾遗
鱼虾一整碗
网络安全服务器研发工程师
展开
-
Linux上使用ftp
ftp 12.12.12.12在输入用户名/密码>cd 路径>bi>put test>get test>close>bye说明:bi意思是以二进制的模式传输,若传输的文件为图像、可执行文件等非文本的文件,则需要二进制模式传输。put test为上传test文件,get test为下载test文件。完!...原创 2019-04-16 10:20:13 · 386 阅读 · 0 评论 -
僵尸进程的解决方法
当子进程执行失败时,可能不会发送个父进程结束的指令,因此会产生一个僵尸进程。解决方法如下:# include <stdio.h> # include <stdlib.h> # include <sys/types.h> # include <sys/wait.h> # include <unistd.h> int m...原创 2017-09-19 20:44:40 · 623 阅读 · 0 评论 -
Linuxc链接动态库
在linux下,C程序中引用动态库的方法:程序中引用:例子:#include //必须添加的头文件char *p = dlopen("./lib/test.so",RTLD_LAZY); //打开 p = dlerror(void);p = dlsym(void *handl原创 2016-12-21 12:21:24 · 360 阅读 · 0 评论 -
获取系统年份
int main(){struct tm *tmptr;time_t yearnow;time(&yearnow);int year1=0;tmptr=localtime(&yearnow);year1=tmptr->tm_year+1900;sprintf("%d",year1);}主要要加上1900完!原创 2017-09-22 11:49:16 · 361 阅读 · 0 评论 -
C 语言使用access函数 判断是否有该文件及权限
函数原型:int access(const char *path,int mode);参数说明:path:为路径和文件名mode:0 是否存在1 是否可执行2 是否可写4 是否可读返回值:可返回0 不可返回-1完!!原创 2017-09-22 16:02:04 · 585 阅读 · 0 评论 -
linux下使用valgrind对程序进行检查
今天在做snmpd的时候,程序连续运行40分钟左右出现错误,错误的原因是popen函数出错。怀疑是内存泄漏,所以使用valgrind对程序进行检查。发现是在某个popen时,内存没有被释放,因此次数多了,程序就出错了。简单说下valgrind的用法。先去官网下载源码包,安装valgrind。三部曲:./configure && make && make install转载 2017-09-23 18:59:17 · 867 阅读 · 1 评论 -
linux多文件编译—makefile
说到linux下多文件编译。大多是c语言,因为linux内核以及许多的自由软件都是c语言编写的。当然还有c++语言,区别就是c语言使用gcc,而c++语言使用g++。那么本文以c语言为例讲解。c++那么就能融汇贯通了将gcc改为g++就好了。1,单个文件的编译,比如有test.c 直接输入命令#gcc test.c -o test执行,直接输入#./t原创 2016-11-30 10:21:59 · 2435 阅读 · 0 评论 -
使用popen时,若最多执行100次而不pclose,将会出错
使用popen时,应记住使用完后一定要pclose();今天犯了一个错误,意思是for(i=0;i{popen(command,"r");}pclose();这样的话会被告知pclose失败,原因就是循环了1000次,让popen执行1000次(实际上执行到100次的时候就不再执行了)所以应该改为:for(i=0;i{popen(co原创 2017-09-22 11:58:45 · 2772 阅读 · 0 评论 -
linux 计算CPU使用率(C代码)
int getcpuutilization(char *cpuutilization){ int sum1[2]={0}; int sum2[2]={0}; int i=0; for(i=0;i if(i==1) { sleep(3); } FILE原创 2017-10-18 14:48:41 · 1608 阅读 · 0 评论 -
linux 查看端口被占用情况
linux 查看端口被占用情况例子:查看80端口占用情况方法一:netstat -lanp | grep 80方法二:fuser -n tcp 80想要干掉占用的程序 直接 kill -9 pid完!原创 2017-11-08 15:38:53 · 327 阅读 · 0 评论 -
linux 简单的cpu压力测试
计算圆周率即可命令 echo "scale=5000; 4*a(1)" | bc -l -q完!!原创 2017-10-18 13:37:50 · 5666 阅读 · 0 评论 -
linux 僵尸进程defunct ps auxf
当我们在程序中使用popen或者fopen时,容易出现僵尸进程。原因可能是没有fclose或者pclose,或者其他原因。当我们ps auxf查看时,就能看到如下root 29587 0.0 0.0 117280 3580 ? S 18:02 0:00 /bin/snmpd -c /conf/snmpd.confroot 29622原创 2017-09-19 18:03:51 · 2167 阅读 · 0 评论 -
gcc详解
在网上查GCC命令方面的资料,发现两篇文章写得比较合我意,冲突不大,特放在一起学习,希望对我及大家有益。第一篇主要讲GCC原理,第二篇主要详解GCC命令的参数。第一篇文章:Linux GCC常用命令1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3转载 2017-02-16 14:30:47 · 529 阅读 · 0 评论 -
错误解决:apachectl: line 78: 5160 段错误 $HTTPD -k $ARGV
今天将php版本由5.6升为7.0时(源码安装),apache重启时出现了这个问题[root@localhost mysc]# /usr/local/apache2/bin/apachectl restart /usr/local/apache2/bin/apachectl: line 78: 5160 段错误 $HTTPD -k $ARGV原创 2016-12-06 12:36:06 · 5706 阅读 · 0 评论 -
lilinux 命令修改文件内容
find -name 'test.txt' | xargs perl -pi -e 's|要被替换的字符|替换后的字符|g'完!!原创 2019-04-10 14:28:44 · 526 阅读 · 0 评论 -
nginx重启时端口被占用
ps查看进程如下:~ # ps aux | grep nginxroot 1916 0.0 0.0 22012 2756 ? Ss 16:34 0:00 nginx: master process /www/bin/nginxroot 5533 0.0 0.2 28576 8108 ? S 16:58 0:...原创 2019-03-07 17:34:13 · 1405 阅读 · 0 评论 -
linux软连接
建立目录软连接ln -s /test/ /target删除目录软连接rm /target (不可是/target/)完原创 2018-12-27 14:07:36 · 662 阅读 · 0 评论 -
Linux系统路由route的添加与删除
默认路由添加:route add default gw 192168.11.1删除:route del default查看:route -n 完!!原创 2018-11-13 16:31:46 · 2830 阅读 · 0 评论 -
popen与system
popen与system都可在C语言代码中实现shell命令的执行。popen是不堵塞的,也就是说不会等待子进程的结束并杀死子进程,即不会管理进程。这样就需要我们认为的去杀死或忽略子进程等操作。还有就是popen会将执行的结果返回到buf中。system是堵塞的,会自动对进程进行管理,无需我们再去对进程进行管理。另外,system不会返回执行的结果,只是会返回执行是否成功。若想要获取s...原创 2018-10-29 11:10:47 · 3557 阅读 · 0 评论 -
linux shell 重定向
之前对shell重定向的了解是模棱两可的,遇到重定向相关的知识总是需要翻书或者google,因此在这里总结一下shell的重定向一 输出重定向> 表示覆盖; >> 表示追加Command > filename 把标准输出重定向到一个新文件中(此命令等价于:Command 1> filename. #注意:"1"和">"中间没有空格. 系统默认的就是1...转载 2018-10-29 11:00:54 · 315 阅读 · 0 评论 -
scp错误解决:WARING:REMOTE HOST IDENTIFICATION HAS CHANGED!
解决方法:ssh-keygen -R 目标ip完!!原创 2018-08-21 17:19:36 · 419 阅读 · 0 评论 -
linux 权限控制 递归子目录
加参数R例如chmod 777 -R /home/ 完!!原创 2018-08-23 18:04:37 · 662 阅读 · 0 评论 -
linux人为增加cpu使用率或load值
cpu使用率和load值是相通的,其一增加,另一也增加。可以通过计算圆周率的方式来增加也可执行该条语句dd if=/dev/zero of=/dev/null使用uptime命令即可查看load值使用top命令可查看cpu使用率完!!...原创 2018-07-05 16:48:26 · 5124 阅读 · 0 评论 -
samba使用
[root@sslvpn-development tftpboot]# /etc/init.d/smb statussmbd is stoppednmbd is stopped[root@sslvpn-development tftpboot]# /etc/init.d/smb startStarting SMB services: ...原创 2018-07-11 11:10:06 · 224 阅读 · 0 评论 -
Linux系统产生随机数 /dev/random和/dev/urandom
/dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。这两个设备的差异在于:/dev/random的randompool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待...原创 2018-04-16 15:06:19 · 5597 阅读 · 1 评论 -
vi编辑器如何替换
在命令模式下输入:%s/a/b/g意思为将全文的a替换为b完!原创 2017-09-18 17:47:22 · 815 阅读 · 0 评论 -
shell 字符串的截取
a="abcdefghigklmn"截取第几个字符之后的几个字符b=`echo {a:0:5}` 意为截取第0位之后的5位 结果为:fghigklmn截取d之前的所有字符b=`echo ${a#*b}` 结果为efghigklmn截取e之后的所有字符b=`echo ${a%e*}` 结果为abcd如果不是所有省略*号即原创 2017-07-26 18:54:04 · 601 阅读 · 0 评论 -
linuxC系统编程——文件的I/O操作
非缓冲文件操作针对小规模文件的读写,或者是实时设备。#include#include#include#include#define LENGTH 2000int main(){char a[LENGTH];char b[LENGTH]={"1234567890"};//open fileint fp,i,j=0;fp=open("./test.txt",O_RDWR,L原创 2017-01-03 14:19:51 · 366 阅读 · 0 评论 -
linuxC系统编程——进程管理
代码:#include#include#include#include#include#include#include#includeint main(){int status;pid_t pc,pr;pc=fork(); //创建进程if(pc<0) //判读进程是否存在{ perror("creat fork er原创 2017-01-03 15:19:05 · 307 阅读 · 0 评论 -
虚拟机安装vm-tools
step1:切换到root用户step2:点击虚拟机->安装VM-Tools(或者点击更新VM-Tools)step3:此时会发现在虚拟机的系统里桌面上出现了一个VM-Tools文件夹step4:将该文件夹复制到/tmp目录下step5:进入该文件夹会发现一个压缩包,解压后进入step6:执行./vmware-install.plstep7:此时开始安装,可以选择一些需要的原创 2016-12-22 10:22:36 · 338 阅读 · 0 评论 -
suse添加源
最近接触suse,第一个问题就把我难住了,没法下载软件。解决方法如下:一、查看源和仓库1、查看repos (软件仓库)zypper lr 2、查看services(软件源)zypper ls二、删除源和仓库1、删除软件仓库zypper rr name2、删除软件源zypper rs name三、添加源和仓库#zypper sa -t YaST h原创 2016-12-21 15:05:24 · 2427 阅读 · 0 评论 -
nm命令
linux中的nm命令,这个命令是很简单也很实用的一个命令。一般来讲做linux开发的人会用到这个命令。当然nm不是ni ma,不是ni mei,更不是ni da ye它是names的缩写。不多说,先看一个例子[taoge@localhost learn_nm]$ nm a.out 08049538 d _DYNAMIC 08049604 d _GLOBAL_OFFSET原创 2016-12-02 17:15:50 · 831 阅读 · 0 评论 -
Ubuntu认证失败
从普通用户切换到root用户时出现这个问题:mike@mike-vm:~$ su密码: su:认证失败密码肯定输对了,那么解决方案如下:mike@mike-vm:~$ sudo susudo: 无法解析主机:mike-vm[sudo] password for mike: root@mike-vm:/home/mike# 如上所示使用sudo su命令即可原创 2016-12-13 14:14:41 · 815 阅读 · 0 评论 -
问题解决Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 38218371 bytes)
今天在使用php传参时出现了这个有三个可能的原因:1,所要输出或者所要查询的数据太大2,php.ini文件中memory_limit设置的数字太大,可以将其改的大一点,或者直接memory_limit=-1,意为不设限3,就是出现了死循环经排查,我的问题是第一条,修改代码后,问题解决。完!!原创 2016-12-06 12:52:02 · 31601 阅读 · 2 评论 -
LINUX下PHP生成并调用C的.so文件
1,安装PHP环境到/usr/local/php2,进入源码包cd /usr/local/php-5.5.33,建立要生成的.so文件的扩展骨架 cd /usr/local/php-5.5.3 ./ext_skel --extname=test test就是你要生成的.so的名字,例如test.so4,修改配置文件/test/config.m4原创 2016-11-29 17:54:59 · 2908 阅读 · 0 评论 -
linux下java程序的编译过程
1 vi Mysqljava.java[root@localhost java]# vi Mysqljava.java2javac Mysqljava.java[root@localhost java]# javac Mysqljava.java此时会在当前路径生成 Mysqljava.class[root@localhost java]# lsMysqljava.class原创 2016-11-18 17:15:30 · 669 阅读 · 0 评论 -
cannot find -lxxx
一个常见的错误:cannot find -lxxx,,例如cannot find -lcrypto解决方案:1 cd / ***********进入根目录2 find -name libcr原创 2016-11-30 19:49:46 · 282 阅读 · 0 评论 -
安装第三方yum源
使用centos6.4系统,使用yum安装php,搜了一下版本,最高是php3.3版。当时很无语啊,php都已经出php7.0了好不好。百度资料后,发现是yum源有问题,解决方法很简单,安装第三方yum源。#rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm#rpm -Uvh h原创 2016-11-30 19:37:03 · 3655 阅读 · 0 评论 -
linuxC系统编程——线程管理
例子:#include#include#include#include#includevoid *thread_function(void *arg);char message[]="THREAD_TEST";int main(){int res;pthread_t a_thread;void *thread_result;res=pthread_creat原创 2017-01-05 10:32:33 · 306 阅读 · 0 评论 -
linuxC系统编程——socket编程
例子:server端:#include#include//包含套接字函数库#include#include//包含AF——INET相关结构#include//包含AF——INET相关操作的函数#includeint main(){int server_sockfd,client_sockfd;//用于保存服务器和客户套接字标识符int server_len,cli原创 2017-01-05 11:13:34 · 293 阅读 · 0 评论