Linux命令
RunBoying
这个作者很懒,什么都没留下…
展开
-
linux进程间通信之 管道,命名管道,协同进程区别
管道 只能有一个进程创建,并写入值,而子进程只能读。必须是相关的2个进程。 就是只能将stdout绑定到对应的进程。命名管道可以支持不相关的进程之间使用这个管道协同进程 允许一个进程将其stdin及stdout2个标准IO绑定到对应的进程。可以向一个进程写入数据,()并从里面读回数据。原创 2011-11-23 09:05:02 · 813 阅读 · 0 评论 -
Linux系统内存错误产生的原因及调试方法
总而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由转载 2011-11-23 23:33:34 · 1162 阅读 · 0 评论 -
fedora所有历史版本的下载地址
fedora在官网首页隐藏了老版本的下载地址。坑爹啊。还是被我找到了。供朋友些使用!下面是种子地址合集!打开看吧你懂得!最稳定的版本 fedora10 种子地址 http://torrent.fedoraproject.org/torrents//Fedora-10-x86_64-DVD.torrent http://torrent.fedoraproject.org/原创 2011-11-23 22:20:54 · 5527 阅读 · 0 评论 -
linux 打印参数调用栈和入参信息
方法1 #include #include #include /* Obtain a backtrace and print it to stdout. */voidprint_trace (void){void *array[10];size_t size;char **strings;size_t i;size = backtrac转载 2011-11-23 22:59:37 · 1345 阅读 · 0 评论 -
gcc -rdynamic参数解释
选项 -rdynamic 用来通知链接器将所有符号添加到动态符号表中(目的是能够通过使用 dlopen 来实现向后跟踪)-rdynamicPass the flag ‘-export-dynamic’ to the ELF linker, on targets that supportit. This instructs the linker to add all symbols,原创 2011-11-23 23:23:41 · 34332 阅读 · 0 评论 -
常见linux 路径备注及说明
/etc/passwd 登录名及相关信息原创 2011-11-28 10:41:21 · 831 阅读 · 0 评论 -
如何查看gdb子命令的帮助
比如 输入help x 显示(gdb) help xExamine memory: x/FMT ADDRESS.ADDRESS is an expression for the memory address to examine.FMT is a repeat count followed by a format letter and a size letter.Form原创 2011-11-28 16:12:50 · 643 阅读 · 0 评论 -
调用API的时候需小心处理fgets里面的'\n'换行符
调用API的时候需小心处理fgets里面的'\n'换行符#include "apue.h"#include int main(void){ char buf[MAXLINE]; pid_t pid; int status; printf("%%"); while (fgets(buf, MAXLINE, stdin) != NULL) {//这里的目的是如果字原创 2011-11-28 16:43:13 · 1138 阅读 · 0 评论 -
linux判断一个文件是否存在
1 #include 2 #include 3 4 int main(void) 5 { 6 7 int fd; 8 fd = open("a1.out", O_RDONLY | O_CREAT | O_EXCL); 9 if (fd < 0) 10 printf("file is exists!"); 11 return 0; 12原创 2011-11-28 17:46:54 · 1233 阅读 · 0 评论 -
5种shell的名字及默认路径
Bourne shell /bin/shBourne-again shell /bin/bashc shell /bin/cshkorn shell /bin/kshtenex c shell /bin/tcsh原创 2011-11-28 10:58:17 · 1033 阅读 · 0 评论 -
linux 进程的前后台切换及进程的暂停终止bg,fg,nohup
参考自:http://www.cnblogs.com/wangbin/archive/2009/05/07/1451502.htmlhttp://www.cnblogs.com/snowleung/archive/2011/06/27/2091526.html让程序在前台后台之间切换。 Linux 提供了 fg 和 bg 命令,让你轻松调度正在运行的任务。假设你发现前台运行转载 2011-11-29 14:02:11 · 6296 阅读 · 0 评论 -
关于linux中进程打开同一文件操作的一点分析
关于linux中进程打开同一文件操作的一点分析按照系统的设计,每个进程自己维护一张打开表 索引 文件描述符 文件指针 0 close_on_exec 0x..... .............然后内核会维护一张表,这个表表示所有打开的文件,每个文件一行不会重复。里面存储有文件的当前状态,也就是为什么有进程锁定后,其他进程不能写。状态值就是写在这里原创 2011-11-29 11:31:57 · 3169 阅读 · 0 评论 -
linux文件和目录
文件和目录1.获取文件的属性 #include stat 获取指定路径的文件,文件未打开,如果文件是符号链接,分析的是符号链接指向的那个文件的属性 fstat 获取在某个描述符上打开的文件属性 lstat 同stat,区别是如果文件是符号链接,那么就是分析符号链接文件本身的属性 2.ls -ls 命令列出的结果 第一列说明了文件类型原创 2011-12-02 08:04:44 · 991 阅读 · 0 评论 -
进程与文件访问权限 几个关联的用户ID
实际用户ID: 就是当前运行进程的用户的id有效id: 默认是当前运行进程的用户, 但是如果文件设置了标志位"保存的设置用户ID",那么在执行进程(该文件)的时候,会 读入文件的所有者id存入有效id,从而不是文件的拥有者也可以执行该文件保存的设置用户id: 就是文件st_mode中的一个标记位而已------原创 2011-12-02 08:04:02 · 1453 阅读 · 0 评论 -
linux shell 中2&1含义
转载自网络脚本是: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是转载 2011-12-06 17:37:37 · 828 阅读 · 0 评论 -
linux 进程控制说明
内核进程进程id 名字 说明 0 swap 用于交换 系统进程 1 init 用于启动系统 非系统进程 程序文件sbin/init 读配置文件/etc/init.d 2 pagedaemon 页守护进程 系统进程进程相关函数的重要说明1) fork之后,父子进程没有规定谁先执行,依赖于系统调度原创 2011-12-06 17:41:00 · 669 阅读 · 0 评论 -
文件
根目录文件名字叫'/'目录文件的属性是没有存在目录中的,因为硬链接目录的时候,多个副本之间同步很麻烦文件名中不能存在'/'和空操作符null每个目录文件中存在2个文件,'.'代表自己,'..'代表父目录原创 2011-12-06 17:41:46 · 339 阅读 · 0 评论 -
LINUX修改IP地址
以前都是使用自动IP动态分配获取IP的,虽然每次获得的ip都是相同的,但我还是决定自己设置一个IP。输入命令:[root@localhost ~]# ifconfig eth0 219.246.177.160 netmask 255.255.255.0 upping以下177网段的ip是可以ping通的,但是ping别的网段无法ping通[root@localhost ~]# ping转载 2011-12-06 17:39:18 · 779 阅读 · 0 评论 -
c里面宏定义的一个很有用的符号#
#include #include #include #define IsMan(name) pr_value(#name, name) //关键点在于 #name,会将"\""+name+"\""创给pr_value#define WANGYONG 1#define YONGXIN 2void pr_value(char* name, int type){ s原创 2011-12-06 11:59:30 · 510 阅读 · 0 评论 -
关于linux重定向的解析
关于linux重定向的解析apue书中 p64程序清单3.4有4种调用方式及结果---------------------------------------------./a.out 0 read only./a.out 1 > temp.foowrite only./a.out 2 2>>temp.foowrite only, append./a.out 5原创 2011-12-06 13:42:29 · 1793 阅读 · 0 评论 -
linux内存泄漏检查工具
Valgrind内存检测工具1. ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。 2. Dmalloc-Debug Malloc Library. 3. Electric Fence-Linux分发版中由Bruce Perens编写的malloc()调试库。 4. Leaky-Linux下检测内存泄漏的程序。 5.转载 2011-12-06 17:40:29 · 3668 阅读 · 0 评论 -
linux 进程间的关系
1.伪终端的概念 即能处理终端login,又能处理网络login2.进程组是一组进程的集合,进程组的id就是进程组长的进程id3.只有进程组里面的最后一个进程结束,这个进程组的生命周期才结束(疑问?如果父进程结束了,那么子进程的父进程已经变成了init,那么这个时候都不是原来的进程组了!)4.多个进程组组成了一个会话session,一个会话里面有前台进程和后台进程,所有del原创 2011-12-06 17:42:50 · 610 阅读 · 0 评论 -
linux命令技巧归纳2
ls -l(显示符号链接文件的值)dircdmvrmod 查看文件内容cat 查看文件内容>>>mkdirrmdir delete directory/fileremove same as the aboverename \ 输入换行命令cp -r(保留原来的所有文件) -f(覆盖同名文件)chownman c原创 2011-11-29 08:16:35 · 646 阅读 · 0 评论 -
c里面可变参数实现日志系统的大概思路
#include #include #define LOG(format, p) f(format, p, __FILE__, __LINE__)void f(char* p,...){ char buf[256] = {0}; //memset(buf, 1, 256); va_list list; va_start(list, p); vsp原创 2011-12-06 13:40:16 · 1293 阅读 · 0 评论 -
vi/vim 十分常用的命令
vi十分常用的命令替换字符串 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new 在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g 在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g 在文件内替换所有的字符串 old 为新原创 2011-12-05 09:03:48 · 473 阅读 · 0 评论 -
linux 时间类型
linux时间类型日历时间time_t类型保存 表示从1970年1月1日 0:0:0经过的秒数进程Cpu时间 clock_t 时钟时间 进程运行的总的时间 用户CPU时间 执行用户指令需要的时间 系统CPU时间 内核执行的时间通过time命令可以获取进程cpu时间 time_t 包含的是经过的秒原创 2011-12-06 17:41:22 · 737 阅读 · 0 评论 -
kill与kill -9与killall
很多时候,会有人建议你,如果kill杀不掉一个进程,就用kill -9. 为什么?kill是Linux下常见的命令。其man手册的功能定义如下:kill – send a signal to a process明朗了,其实kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以ki原创 2011-12-18 09:20:40 · 7323 阅读 · 1 评论 -
Fedora10 允许root登录及设置密码
1.为root设置密码装好fedora10后,root密码这个时候空的。需要登录到普通帐号。然后输入passwd root 按照提示输入新密码即可。2.允许root登录 su root 输入root密码 然后vi /etc/pam.d/gdm 按a 在#auth required pam_succeed_if.so user != ro原创 2011-12-18 09:20:10 · 2551 阅读 · 0 评论 -
linux makefile写法的学习
本文转载自CSDN博客,http://blog.csdn.net/Sunboy_2050/archive/2010/07/06/5717253.aspx1.无makefile的编译过程 gcc -c file.c -o file.o gcc -o file file.o file2.o2.初级makefile的写法 Make命令会默认调用makefile文件转载 2011-12-17 17:27:46 · 1641 阅读 · 0 评论 -
设置网卡混杂模式
设置网卡混杂模式 参考http://blog.csdn.net/aaa6695798/article/details/4008340转载 2011-12-08 17:56:17 · 822 阅读 · 0 评论 -
GDB工具如何使用断点信息
在Linux平台下,使用最多的就是调试工具GDB.通过命令gcc -g test.c 。默认会生成a.out文件,这个文件由于参数-g的原因加入了调试信息。所以可以使用gdb来加载并调试,但是在使用断点的时候,你会很郁闷。真的。比如下面先来看这个过程。/******test.c 代码********/ 1 #include 2 3 void docout()原创 2011-12-08 23:38:20 · 2970 阅读 · 0 评论 -
Linux命令技巧归纳
/etc/services 存放常见程序的端口号 grep telnet /etc/services grep domain /etc/servicesifconfig -a 查看网络接口信息netstat -i 查看接口信息netstat -n 查看主机信息netstat -rnarp -a 查看本地arp高速缓存数据津arp -d 清空 a原创 2011-11-10 23:03:46 · 453 阅读 · 0 评论 -
linux进程通信的几种方式
一 管道 1有名管道 popen函数建立 所有进程按权限取得管道文件的访问权限 一直存在文件系统里面,有实际的目录地址,能被所有进程访问. 2无名管道 pipe函数建立 只有相关的进程,及创建管道(pipe)的进程及其子进程可以访问 偏移信息没有像文件那样存在,所以进程不能lseek管道,即不能随机读管道 所有进程结束使用管道,内核原创 2011-12-10 17:11:28 · 507 阅读 · 0 评论 -
LINUX标准io默认都是阻塞的
#include #include #include int main(){ int s_in, s_out, s_err; s_in= fcntl(STDIN_FILENO, F_GETFL); s_out= fcntl(STDOUT_FILENO, F_GETFL); s_err= fcntl(STDERR_FILENO, F_GETFL); if (O_NONBL原创 2011-12-21 11:31:53 · 651 阅读 · 0 评论 -
linux打印出信号值对应的字符串值
linux打印出信号值对应的字符串值 1 #include 2 #include 3 4 5 int main() 6 { 7 8 printf("%s\n", strsignal(SIGUSR1)); //函数 9 printf("%s\n", sys_siglist[SIGUSR1]); //数组 10 ret原创 2011-12-14 14:58:55 · 1423 阅读 · 0 评论 -
undefined reference to `pthread_create'
转载自 http://www.cnblogs.com/feefk/archive/2009/12/09/1620557.html刚刚学习linux,今天在试一个线程例子时,结果出现如下错误:pthread.c:(.text+0x58): undefined reference to `pthread_create'pthread.c:(.text+0xab): undefine转载 2011-12-14 16:02:25 · 575 阅读 · 0 评论 -
LINUX 线程基础, 线程同步,线程控制
一 线程基础 1)线程全称控制线程 2)多线程的优势: a) 比进程方便,可以共享相同的内存空间及文件描述符 b) 可以用于多个任务,而这些任务如果用单进程来实现是串行, 在多线程里面由于CPU的调度可以实现穿插执行 c) 用于交互程序,将用户输入输出与其他部分分开,优化性能 3)如何知道系统是否多线程pth原创 2011-12-23 15:47:08 · 831 阅读 · 0 评论 -
vim快速格式化和注释代码
gg=Ggg —— 到达文件最开始 = —— 要求缩进 G —— 直到文件尾 :help gg :help = :help G :help 'formatprg' :help C-indenting指令格式 :起始行,终止行s/要替换的字符/替换为字符/g 如, C++源文件中原创 2011-12-23 15:48:07 · 1087 阅读 · 0 评论 -
linux 获取远程系统时间的例子
linux进程通信 获取远程系统时间的例子server.c--------------------#include #include #include #include #include #include #include #include #include #include #include#define LOCAL_IP "192.168.59.194"原创 2011-12-23 15:48:46 · 2359 阅读 · 0 评论 -
linux时间类型
linux时间类型日历时间time_t类型保存 表示从1970年1月1日 0:0:0经过的秒数进程Cpu时间 clock_t 时钟时间 进程运行的总的时间 用户CPU时间 执行用户指令需要的时间 系统CPU时间 内核执行的时间通过time命令可以获取进程cpu时间 time_t 包含的是经过的秒数 t原创 2011-11-28 17:20:10 · 668 阅读 · 0 评论