随笔分类 -  linux

摘要:光标移动:上k 下j 左h 右l0 行首 ctrl+$ 行尾w(word) 移动到下一单词 b(before) 移动到前一单词ctrl + % 光标放左括号时,跳转到右括号处查找:光标在需要查找的单词上shift + # 每按一次向前查找一次该单词shift + * 每按一次向后查找一次该单词s/xxx/g 也可以搜索xxx替换(substitute)::[range]s/pattern/stringrange 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後一行,也就是整篇文章,也可以 % 代表。還記得嗎? % 是目前編輯的文章,# 是前一次編輯的文章。p... 阅读全文
posted @ 2013-08-27 10:15 iyjhabc 阅读(201) 评论(0) 推荐(0)
摘要:LINUX下进程间通信的方式主要有:管道、有名管道、消息队列、信号量、共享内存,此外还有信号和套接字。管道只能用于亲缘进程(如父子进程)的通信。有名管道可用于非亲缘进程通信。信号量主要用于同步(线程同步与进程同步分别用两组函数操作信号量)。消息队列克服了信号量传递信息少、管道只能传送无类型字节流的弱点。信号类似于软件中断,用于事件通知。共享内存是最快的IPC方式,配合其他方式使用(一般是配合信号量)。1、管道管道是单向的传输方式,创立管道后系统分配一定大小的缓冲区,数据从输入管道进入缓冲区的头位置,输出管道从管道的未位置取出数据。fd[0]为读管道,fd[1]为写管道,读前关闭写管道,写前关闭 阅读全文
posted @ 2013-07-02 16:06 iyjhabc 阅读(269) 评论(0) 推荐(0)
摘要:信号是一种软件中断,也是进程间唯一的异步通信方式。信号可通过硬件发送,如键入CTRL+C,或者程序发送。软件可通过signal函数捕捉信号,针对信号编写信号处理函数,进行异步操作。在终端可用kill命令发送信号。信号有优先级,高优先级的首先处理。1、signal(int signum,void (*f)(int))第一个参数为需要处理的信号,第二个参数为信号处理函数的指针。函数要求必须含一个int参数和返回void。#include "signal.h"void sig_process(int sig_no){ printf("signal has been re 阅读全文
posted @ 2013-07-02 11:38 iyjhabc 阅读(2011) 评论(0) 推荐(0)
摘要:进程是正在运行的程序,是系统分配资源的单位。使用ps命令可以查看系统正在运行的进程。1、创建进程fork()fork()函数可以创建一个子进程。程序从调用fork时开始分叉为两个进程,因此fork函数返回两次,一次返回0,表示子进程正在运行,一次返回子进程的PID。当进程创建失败,返回-1 pid_t id; id=fork(); switch(id){ case 0: printf("son process is running\n"); break; case -1: printf(... 阅读全文
posted @ 2013-06-30 17:10 iyjhabc 阅读(253) 评论(0) 推荐(0)
摘要:使用gdb可以在命令行方便地调试,并且能以命令程序的方式调试源代码。常用命令简写print-p,step-s,next-n进入gdb//方式一gdb test//test 为可执行文件,使用-g编译得到//方式二gdb -q //不显示版权信息file test //file命令打开文件退出gdbquit //退出命令显示源代码list//显示最初10行list get_sum//显示函数list 5,10//显示5到10行list//再次用list,显示接下来11~20行list test.c:get_sum//多文件工程时,显示test.c的函数查找search 字符串//向后查找第一个匹 阅读全文
posted @ 2013-06-30 16:27 iyjhabc 阅读(278) 评论(0) 推荐(0)
摘要:UDP属于非连接传输,因此不需要进行连接操作,直接可根据IP地址与端口发送数据服务器端:char buf[1024]; int i=0; int fd = socket(AF_INET,SOCK_DGRAM,0); struct sockaddr_in dest_addr; bzero(&dest_addr,sizeof(dest_addr)); socklen_t addrlen; dest_addr.sin_family=AF_INET; dest_addr.sin_port=htons(10... 阅读全文
posted @ 2013-06-26 20:08 iyjhabc 阅读(658) 评论(0) 推荐(0)
摘要:简介:使用makefile记录项目各个文件的依赖关系,make程序会根据依赖关系从底层开始执行编译命令,最后生成最终目标文件。使用makefile可以方便编译多个相互依赖的源文件最终生成目标文件。makefile格式:makefile以命令为单位组成,2行组成一个命令。第一行冒号前的是本命令的目标生成文件,冒号后面是依赖文件。第二行是生成目标文件需要执行的指令,注意指令前要空TAB。file:file1.o file2.o 附属行(文件的依存关系) gcc -o file1.o file2.o 命令行file1.o:file1.c ... 阅读全文
posted @ 2013-06-26 16:11 iyjhabc 阅读(492) 评论(0) 推荐(0)
摘要:1、常用函数介绍int socket(int domain,int type,int protocol);/*domain:AF_INET设为IPV4type:SOCK_STREAM对应TCP,SOCK_DGRAM对应UDPprotocol:设0返回值:返回一个套接字,失败返回-1*/int bind(int sockfd,struct sockaddr *my_addr,int addrlen);/*sockfd:由socket()调用返回的需要绑定的套接字my_addr:sockaddr类型的地址addrlen:sizeof(sockaddr)。返回值:成功返回0;失败返回-1*/stru 阅读全文
posted @ 2013-06-25 17:47 iyjhabc 阅读(726) 评论(0) 推荐(1)
摘要:shell scripts语法#!/bin/bash 规定使用bash语法解释scripts#Program: 表明程序开始主程序部分exit 0 表明程序结束 #用sh执行脚本会新开一个子进程bash来执行,脚本中产生的变量不存在与父进程#用source 执行脚本会直接在本进程中执行脚本,变量会保留。 注意如果用SOURCE执行就不要加exit 0了,因为它会关闭父进程。sh 脚本文件 参数一 参数二 。。。 $0文件名 $1参数一 $#参数个数 $@显示所有参数date1=$(date -d '-1 day' +'%Y%m%d%A') date指令-d 阅读全文
posted @ 2012-10-18 11:36 iyjhabc 阅读(184) 评论(0) 推荐(0)
摘要:第十二章 正则表达式grep进阶用法export | grep -A3 -B2 'TERM' 把目标的前2行 后3行也显示出来 before after在~/.bashrc中加入alias grep='grep --color=auto' ,并source ~/.bashrc 即可每次都别名生效grep -vn 'the' regular_express.txt 打印不包含the的行 -v 反向搜索grep -n 't[ae]st' regular_express.txt 查找 test 或 tastegrep -n '[ 阅读全文
posted @ 2012-10-17 10:43 iyjhabc 阅读(466) 评论(0) 推荐(0)
摘要:第五章:TAB键 命令补全,目录补全功能CTRL C 终止运行功能 命令输入错误时也用来退出CTRL D 终止输入end of fileman q结束 space翻页 /查找关键字shutdown reboot 关机,重启忘记ROOT密码的修复方法 P170第六章cd 目标目录 转移当前目录到目标目录cp 源文件(可多个) 目标文件 -i如目标文件已经存在,覆盖前先询问。 -r用于递归复制整个目录rm 删除目录或文件 -r递归删除目录所有文件 -i询问后删除 可用通配符删除多个文件 ?代表一个字符 *代表0到多个字符touch 目标文件 建立一个空文件 或 修改文件的状态mv 源(可多个).. 阅读全文
posted @ 2012-10-11 11:41 iyjhabc 阅读(202) 评论(0) 推荐(0)