Linux
文章平均质量分 60
chenmiao0924
未来的程序猿
展开
-
Linux中的软件下载(g++,gdb,TagList插件,WinManager ,ctags)
首先,简单介绍一个核心yum Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 总的来说,基本的原创 2017-04-06 16:24:26 · 849 阅读 · 0 评论 -
Linux之工具------sed
sed 概念:流编辑器。 在命令行基本格式: ①sed [options] ‘command’ file1 file2 ……. ②sed [options] -f scriptfile file1 file2 …… sed处理的文件,既可以由命令行输入,如①。也可以编写一个脚本文件,用-f指定脚本文件。如②。 command:编辑命令格式为/pattern/action 其原创 2017-07-03 17:37:43 · 327 阅读 · 0 评论 -
Linux工具---awk
概念 grep和sed工具只能以行为默认单位,相对于他俩而言,awk不仅仅可以以行为单位,也可以以列为单位。 awk默认的行分隔符是\n,默认的列分隔符是连续的空格和Tab。 awk命令行的基本形式为: ①awk option ‘script’ file1 file2 … ②awk option -f scriptfile file1 file2 … 和sed的用法基本一样。awk可原创 2017-07-04 11:51:20 · 299 阅读 · 0 评论 -
linux中反引号`与$()得区别
反引号与$()都是命令替换 结果为: 最大的区别为:转义字符的使用不同。 反引号中:若要使用转自字符需要\\ $()中:若要使用转义字符用\例1:反引号使用1个\,$()使用1个 结果为: 例2:反引号使用2个\,$()使用1个 结果为: 总结:反引号与$()都是命令替换 唯一的区别就是转义字符的使用不一样。 建议使用$(),因为反引号容易敲错。原创 2017-06-26 17:34:08 · 3823 阅读 · 0 评论 -
tcp的各版本服务器
tcp是面向连接的,全双工,字节流的一种协议 介绍需要用到的函数: socket()打开一个网络通讯端口。成功返回一个文件描述符,表示该套接字,应用程序就可以在网络收发数据。出错返回-1. 因为我们是IPv4协议/tcp协议,第一个参数为AF_INET,表示IP, 第二个参数为SOCK_TREAM,表示tcp协议,第三个参数为0.忽略 因为是服务器,所以需要唯一的网络地址和端口号,以原创 2017-06-27 17:04:47 · 1576 阅读 · 0 评论 -
连接tcp服务器出现的问题及解决方法
出现的问题: 服务器和客户端已经建立成功连接后,这时,服务器先退出,客户端再退出。再开启服务器时,会出现下面的问题: 这时因为tcp断开连接时,处于TIME_WAIT状态,等待客户端有足够的时间正常关闭连接。所以,再次连接时,会出现上述错误。 解决方法如下: ①这个状态一般只是维持1到4分钟,可以等几分钟后再重新连接 ②使用setsockopt()设置socket描述符的 选项SO_R原创 2017-06-27 17:41:35 · 2548 阅读 · 0 评论 -
Linux之eval
eval :命令替换 编写以下脚本,实现统计当前目录中文件个数。 结果如下: 报错了。这时因为没有解释出pipe变量的内容,所以会报错。 加上eval后 结果为: 达到预期效果。eval进行两次扫描,第一次扫描,将pipe变量替换为 | ,第二次扫描再执行命令行命令,这时,shell会识别 | 为管道符号,所以命令成功运行。 但是同是命令替换,反引号`和$()却没有这种原创 2017-06-27 11:41:59 · 358 阅读 · 0 评论 -
Linux----信号屏蔽与解除并递达
先介绍有关信号的三个概念:信号未决(pending):信号从产生到递达之间的状态。信号递达(delivery):实际执行信号的处理动作。信号阻塞(block):进程可以选择阻塞某个信号。被阻塞的信号将保持在未决状态,知道解除阻塞,才执行递达的动作。 注意:信号阻塞和忽略信号的区别: 只要信号被阻塞就不会被递达。而忽略信号时在递达之后的一种处理动作。 信号在内核中的表示示意图如下:原创 2017-06-14 17:09:48 · 1314 阅读 · 0 评论 -
子进程的异步等待方式
一般来讲,父进程通过wait(),waitpid()函数等待子进程结束后回收子进程的资源。 wait():父进程阻塞等待子进程,父进程一直等,不能干自己的事。 waitpid():父进程非阻塞等待子进程,父进程一边干自己的事,一边还有轮询,看子进程是否结束。程序复杂难实现。 其实,子进程在终止时,会给父进程发送SIGCHLD信号,不过,该信号的默认处理动作是忽略。父进程可以通过重新编写SIGC原创 2017-06-15 11:23:55 · 324 阅读 · 0 评论 -
mysleep()的多个版本实现及竟态条件的认知
以上为信号的捕捉,捕捉到信号后,在合理的时机递达信号,这个合理的时机就是从内核模式切换到用户模式前,先检测有无信号,有便处理,分三种处理动作:(1)忽略,修改pending对应信号的值后返回用户模式。(2)默认,一般来说,都是终止进程,无需返回。(3)自定义。调回用户模式,执行处理函数。如图中所示。 具体的步骤如下: 1. ⽤用户程序注册了SIGQUIT信号的处理函数sighandler。 2原创 2017-06-15 17:15:09 · 367 阅读 · 0 评论 -
Linux之grep工具的使用
grep是一个强大的文本搜素工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 介绍两种规范 - Basic规范 将字符?+ { } | ( )解释为字面意思。要表示特殊的意思需要加转义字符\ - Extended规范 将字符?+ { } | ( )解释为特殊的意思。要表示字面意思需要加转义字符\ grep采用Basic规范。 命令选项: 常见的命令选项:原创 2017-06-30 17:02:07 · 469 阅读 · 0 评论 -
ARP协议
ARP协议:地址解析协议是根据IP地址获取物理地址的一个TCP/IP协议。 工作过程: 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求 ⼴广播到本地⽹网段(以太网帧⾸首部的硬件地址填FF:FF:FF:FF:FF:FF表⽰示⼴广播),目的主机接收到 ⼴广播的ARP请求,发现其中的IP地址与本机相符,则发送⼀一个ARP应答数据包给源主机,将⾃自 ⼰原创 2017-06-16 16:44:16 · 362 阅读 · 0 评论 -
Linux下模拟实现进度条
源代码: #include 2 #include 3 int main() 4 { 5 int i=0; 6 char bar[102]; 7 const char* lable="\/-/\"; 8 bar[0]=0; 9 while(i<=100) 10 { 11 printf("[%-100s]%d%%[%c]\r",bar,i,l原创 2017-04-07 15:55:32 · 324 阅读 · 0 评论 -
Linux的三个时间--Access time,Modifiy time,Change time
首先,用命令:stat 文件名/目录 ,查看这三个时间例如: 这三个时间具体是什么? Access time:意思是“访问”。也就是文件最近一次被访问的时间。 用 命令:cat 文件名/目录Access time时间被改变 Modify time:意思是“更改/写入原创 2017-03-15 18:37:47 · 949 阅读 · 0 评论 -
linux之 find命令的伟大 及粘滞位权限
find1.命令解释:在目录结构中搜索文件,并执行指定的操作。2.命令格式: find pathname -options [-print -exec -ok ....] pathname: find命令所查找的目录路径。例如,.表示当前目录,/表示系统根目录。 -print: find命令将匹配的文件输出到标准输出.原创 2017-03-24 17:03:23 · 2063 阅读 · 0 评论 -
Linux----exec系列家族函数(进程程序替换)
其实有六种以exec开头的函数,统称exec函数: int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char *arg, ..., char *const原创 2017-05-11 20:12:55 · 533 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5转载 2017-04-21 15:42:48 · 823 阅读 · 0 评论 -
task_struct结构体
文章转载至[http://blog.csdn.net/npy_lp/article/details/7292563](http://blog.csdn.net/npy_lp/article/details/7292563) 内核源码:linux-2.6.38.8.tar.bz2 目标平台:ARM体系结构 进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态转载 2017-04-21 15:48:30 · 336 阅读 · 0 评论 -
对于Linux下的命令行参数,及环境变量存储问题探讨
在Linux下的main函数是怎样存储的呢?以下代码及结果都是在centos下测试的。用下面代码测试一下:argc:表示传入的形参个数。argv[]:是一个数组指针。表示传入的形参。测试结果如下: 以上两个测试实质是一样的,上面的是相对路径,下面的是绝对路径。他们都是传入一个参数。输入多个参数会如何呢?分析如下:原创 2017-04-21 16:17:08 · 574 阅读 · 0 评论 -
线程安全与可重入函数
可重入函数: 当一个函数被多个执行流重复进入的函数,叫重入。 因为重入导致结果错误的函数,叫做不可重入函数。例如在进行无头结点单链表的插入操作时,当node1的next指向head,head还没有指向node1时,再插入node2,node2的next指向head,head指向node2,这时,node1就会丢失。因为重入,导致结果错误了。 满足下列条件的函数多数是不可重入的: 1) 函数体原创 2017-06-15 19:50:29 · 303 阅读 · 0 评论 -
volatile关键字
volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 简单地说就是防止编译器对代码进行优化.一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 2、多任务环境下各任务间共享的标志应该加volatile; 3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它原创 2017-06-15 20:57:26 · 221 阅读 · 0 评论 -
http返回值代表含义
在网站日志中,我们经常会看到很多返回的http代码,如201、304、404、500等等。可是这些具体的返回的HTTP代码究竟什么含义呢,在此做一下知识普及吧,记不住不要紧,到时候看看就行了,但最主要的几个还要要清楚的。 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器超时 下面提供 HTTP 状态码的完整列表。点击链接可了解详情。您也可转载 2017-09-21 01:43:55 · 867 阅读 · 0 评论