
Linux开发
文章平均质量分 86
Linux开发
百里杨
码农想飞~~
展开
-
GDB调试命令使用详细介绍
GDB调试命令使用详细介绍一、使用GDB调试一个简单的程序二、GDB命令详细介绍一、使用GDB调试一个简单的程序helloworld.c,代码如下:#include <stdio.h>int main(){ printf("hello world\n"); return 0;}编译,注意必须使用-g,以生成带调试信息的可执行程序gcc -g helloworld.c -o hello对hello程序,进行调试gdb hello运行hellor也可以在启动前通原创 2021-03-26 18:32:43 · 523 阅读 · 0 评论 -
Ubuntu使用root登录系统界面、免密码、添加开机启动
以下测试环境为Ubuntu 16.04一、使用root登录系统界面Ubuntu在命令行模式下,是可以登录root的。为了安全,在图形界面模式下,默认不允许使用root登录系统。可以通过修改50-unity-greeter.conf文件,使其允许root登录。gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf添加如下内容:greeter-show-manual-login=trueallow-guest=false如原创 2020-12-04 18:01:11 · 5617 阅读 · 0 评论 -
Linux异步IO实现方案总结
一、glibc aio1、名称由于是glibc提供的aio函数库,所以称为glibc aio。glibc是GNU发布的libc库,即c运行库。另外网上还有其他叫法posix aio,都是指glibc提供的这套aio实现方案。2、主要接口glibc aio主要包含如下接口:函数功能int aio_read(struct aiocb *aiocbp);提交一个异步读int aio_write(struct aiocb *aiocbp);提交一个异步写int ai原创 2020-10-20 20:47:33 · 2991 阅读 · 3 评论 -
linux 上查询cache 大小的方法
一.命令查询a). 直接查看文件$ cat /sys/devices/system/cpu/cpu0/cache/b). getconf 命令$ getconf -a | grep CACHELEVEL1_ICACHE_SIZE 32768LEVEL1_ICACHE_ASSOC 8LEVEL1_ICACHE_LINESIZE 64LEVEL1_DCACHE_SIZE转载 2020-08-31 17:14:15 · 6077 阅读 · 0 评论 -
linux常用命令总结
在根目录下查找xxx文件:find / -name xxx列出执行main.out程序搜索所需库时需要的路径,可以在程序提示找不到库时进行查看搜索路径:LD_DEBUG=libs ./main.out查看ssh服务是否启动:systemctl status sshd.service启动ssh服务:service sshd start或systemctl start sshd.service重启ssh服务:systemctl restart sshd.service...原创 2020-08-22 18:46:59 · 490 阅读 · 0 评论 -
linux下查看所有处理器core占用率
sar -P ALL 1 10 使用sar命令,sar -P ALL 1 10 表示统计CPU的使用情况,每间隔1秒钟统计一次,总共统计10次查询结果:%user 用户空间的CPU使用%nice 改变过优先级的进程的CPU使用率%system 内核空间的CPU使用率%iowait CPU等待IO的百分比%steal 虚拟机的虚拟机CPU使用的CPU%idle 空闲的CPU...原创 2020-06-30 17:50:39 · 2442 阅读 · 0 评论 -
Shell编程总结
Shell编程总结:1.变量被定义时为空,即参加算术运算时可以直接与数值相加,被看做初值为02.使用变量时,需要在变量前加$,即$a3.中括号相当于test,在if语句中,if test –f $1 与 if[ -f $1 ]作用相同,但是需要注意中括号前部和后部的空格不能少4.使用算术运算符进行计算时,运算符的两侧必须要有空格。 对变量赋值时等号两边不能有空格原创 2013-09-11 14:19:02 · 553 阅读 · 0 评论 -
linux访问windows共享目录(跨平台开发尝试)
背景:开发支持跨平台软件,一份代码,需要在不同平台下编译。大部分时间在windows上开发编译,需要在linux下编译执行时,这份代码不用繁琐地每次windows->linux拷贝。so想到一个idea,利用windows共享目录,linux也可以同步访问到代码。1、windows共享目录设置windows共享目录即samba共享。首先设置windows下D:/workspa...原创 2020-04-03 13:04:37 · 733 阅读 · 0 评论 -
Linux下nohup命令实现退出终端后程序继续后台运行
Unix/Linux下一般想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行;但如果要想在退出终端后,程序依然还在后台运行,则要用nohup与&组合来实现。nohup 命令用途:不挂断地运行命令语法:nohup Command [ Arg ... ] [& ]描述:nohup 命令运行由 Command参数和任何相关的Arg参数指定的命令,忽略所有挂断原创 2013-10-28 17:27:59 · 1621 阅读 · 0 评论 -
通过进入单用户模式解决linux中的rc.local修改后无法启动的问题
问题:本想将teamviewer这个软件随linux自启动,所以将其启动命令放在rc.local中,但是重启后发现linux启动不起来了,系统前面都是正常启动的,就是无法进入帐户登陆界面,无法输入root帐号密码,不能登陆到系统.按了ctrl+c,ctrl+z,quit,exit都无效.解决办法:通过单用户模式进入linux,修改系统配置。在使用GRUB引导程序的时候原创 2013-10-28 11:47:23 · 2172 阅读 · 0 评论 -
常用压缩解压
压缩:sudo tar -zcvf rootfs.tar.gz rootfs/解压:sudo tar -zxvf rootfs.tar.gztar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2tar –xvf file.tar //解压原创 2013-09-11 15:17:40 · 969 阅读 · 0 评论 -
工作中用到的命令
1.查看指定进程:ps aux|grep 进程名ps aux|grep -v "grep" flow-interface:显示flow-interface进程,并且过滤掉grep flow-interface有时也可以使用ps aux|grep flow-interfacetop -p 21538查看ID为21538的进程kill -9 PID1 PID2原创 2013-09-11 13:49:54 · 676 阅读 · 0 评论 -
linux系统移植
1.清除临时文件、中间文件和配置文件make clean移除所有产生的文件并保留配置文件make mrproper移除所有产生的文件和配置文件make distclean移除所有产生的文件和配置文件,以及编辑备份和补丁文件2.配置内核make config:基于文本模式的交互式配置make menuconfig:基于文本模式的菜单型配置make oldcon原创 2013-09-11 15:14:03 · 779 阅读 · 0 评论 -
linux下gcc编译生成.out,.o,.a,.so文件
1、文件类型介绍.out是可执行文件,相当于win上的exe;.o是编译中间目标文件,相当于win上的.obj;.a是静态库,多个.o练链接得到,用于静态链接;.so是共享库,用于动态链接,相当于win上.dll;2、out可执行文件生成main.cpp#include <stdio.h> int main() { printf("hello wor...原创 2020-03-31 18:31:26 · 42033 阅读 · 7 评论 -
linux内存映射的使用
Linux提供了内存映射函数mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改,先来看一下mmap的函数声明:头文件:原型: void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offsize);返回原创 2013-10-10 11:33:37 · 1059 阅读 · 0 评论 -
进程和线程编程之一
【代码1】fun.c#include #include #include #include int main(int argc, char *argv[]){ char *p; if (!(p = getenv("TT"))) fprintf(stderr, "getenv : cannot found the enviroment variable!\n"); prin原创 2013-09-11 16:00:06 · 715 阅读 · 0 评论 -
进程和线程编程之二
【代码1】test_mutex.c#include #include #include #include #include #include #include int global1 = 0;int global2 = 0;pthread_mutex_t mutex;void *thread1(void *arg){ while(1) {#ifdef _MUTE原创 2013-09-11 16:12:00 · 645 阅读 · 0 评论 -
进程和线程编程之三
【代码1】test_alarm.c#include #include #include #include #include #include #include int main(int argc, char *argv[]){ alarm(1); pause(); exit(0);}【代码2】test_kill_raise.c#include "header.h原创 2013-09-11 16:17:05 · 676 阅读 · 0 评论 -
进程和线程编程之四
【代码1】msg_recv.c#include "header.h"int main(int argc, char *argv[]){ key_t key; if (0 > (key = ftok(".", 'b'))) err_exit("ftok"); printf("key is %x\n", key); int msgid; if (0 > (msgid = ms原创 2013-09-11 16:19:36 · 591 阅读 · 0 评论 -
网络编程之一
【代码1】byte_order.c#include int main(int argc, char *argv[]){ int i = 0x12345678; char *p = (char *)&i; int k; printf("%x\n", i); for (k = 0; k < 4; k++) printf("%x", p[k]); printf("\n");原创 2013-09-11 16:21:45 · 718 阅读 · 0 评论 -
网络编程之二
【代码1】header.h#include #include #include #include #include /* See NOTES */#include #include #include /* superset of previous */#include #include #define err_exit(function) \原创 2013-09-11 16:26:13 · 730 阅读 · 0 评论 -
文件i/o编程之二
【代码1】//directory operation!!#include #include #include #include #include #include #include #include #include #define DIR_NAME_SIZE 100#define ABSOLUTE_PATHNAME_SIZE 100int main (int arg原创 2013-09-11 15:40:46 · 713 阅读 · 0 评论 -
文件i/o编程之三
【代码1】fun.c#include void fun(void){ int k = 0; k++; int j = 0; j--; printf("k is %d, j is %d\n", k, j); printf("hello world!\n");}【代码2】main.cextern void fun(void);int main(int argc, ch原创 2013-09-11 15:45:03 · 537 阅读 · 0 评论 -
网络编程之四
【代码1】test_gethostbyname.c#include "header.h"extern int h_errno;int main(int argc, char *argv[]){ if (2 > argc) { fprintf(stderr, "Usage : %s + hostname\n", argv[0]); exit(1); } struct原创 2013-09-17 13:09:19 · 771 阅读 · 0 评论 -
网络编程之五
【代码1】test_unix_client.c#include #include #include #include #include #include #include #include //#include #define UNIX_DOMAIN_SOCKET "unix.socket"int main(int argc, char *argv[]){ in原创 2013-09-17 13:11:16 · 757 阅读 · 0 评论 -
网络编程之三
【代码1】chat_tcp_client1.c#include "header.h"int main(int argc, char *argv[]){ int connfd = -1; if (0 > (connfd = socket(AF_INET, SOCK_STREAM, 0))) err_exit("socket"); struct sockaddr_in原创 2013-09-17 12:45:30 · 840 阅读 · 0 评论 -
文件i/o编程之一
【代码1】#include #include #include #include int main(void){ FILE *fp = NULL; if (NULL == (fp = fopen("1.txt", "r"))) { fprintf(stderr, "fopen : %s\n", strerror(errno)); exit(1); } int te原创 2013-09-11 15:35:41 · 624 阅读 · 0 评论