03_Linux 学习
xiaopangzi313
编程爱好者
展开
-
Linux debug 常用命令
CentOS/Redhat/Fedora 系統命令:安装软件源导入public keyrpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org#Centos8yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm#Centos7yum install https://www.elrepo.org/elrepo-release-7.el7.e原创 2022-05-20 18:16:16 · 2575 阅读 · 0 评论 -
创建守护进程
创建方法:1.创建子进程,杀死父进程2.建立新的会话3.设立当前目录为根文件目录4.重设文件掩码5.关闭不需要的文件描述符题目:写一个程序,有守护模式和常规模式,写一个日志文件,每隔一秒向文件中写入当前日期时间运行时:./a.out 1(daemon mode ) /log运行效果:#include#include#include #i原创 2013-06-20 22:02:24 · 609 阅读 · 0 评论 -
sigaction 浅析
信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆了)。在结构sigaction的实例中,指定了对特定信号的处理,信号所传递的信息,信号处理函数执行过程中应屏蔽掉哪些函数等。当然,此指针也可以为NULL转载 2013-11-01 08:18:37 · 507 阅读 · 0 评论 -
lsof 小解
通过查看打开的文件,了解更多关于系统的信息。了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,作为系统管理员,这将使得您能够作出更好的决策。例如,您不应该卸载具有打开文件的文件系统。 用 lsof,您可以检查打开的文件,并根据需要在卸载之前中止相应的进程。同样地,如果您发现了一个未知的文件,那么可以找出到底是哪个应用程序打开了这个文件。在 UNIX转载 2013-12-09 09:31:57 · 559 阅读 · 0 评论 -
lsof 的参数详解
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打转载 2013-12-09 09:33:02 · 2864 阅读 · 0 评论 -
nfs方式挂载系统
实际工作中,我们经常使用nfs方式挂载系统,这种方式对于系统的调试非常方便。nfs方式是开发板通过nfs挂载放在主机(PC)上的根文件系统。此时在主机在文件系统中进行的操作同步反映在开发板上;反之,在开发板上进行的操作同步反映在主机中的根文件系统上。1、安装nfs如果你的主机linux或者虚拟机中没有安装nfs,可以通过下面的命令安装nfs:$sudo apt-get instal原创 2013-06-27 16:13:32 · 970 阅读 · 0 评论 -
Tftp 服务器配置
Tftp是TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单的文件传输的协议。配置步骤:在虚拟机机中:1.使用以下命令,安装tftp服务:sudo apt-get install tftp-hpa tftpd-hpa xinetd2.修改配置文件在/etc/default下修改tftp服务的配置文件tftpd-hpa:sudo vim /etc/default原创 2013-06-27 16:19:26 · 929 阅读 · 0 评论 -
Linux中,SQLITE移植到开发板实现
下载源码:sqlite-amalgamation-3.7.3.tar.gz(http://www.sqlite.org/download.html)解压源文件,如解压到目录/home/linux/sqlite-3.7.3/#cd /home/linux/sqlite-3.7.3/ #mkdir sqlite_install#./configure --host=arm-none原创 2013-06-27 19:59:32 · 826 阅读 · 0 评论 -
俄罗斯方块shell 实现
# Tetris Game# 10.21.2003 xhchen#APP declarationAPP_NAME="${0##*[\\/]}"APP_VERSION="1.0"#颜色定义cRed=1cGreen=2cYellow=3cBlue=4cFuchsia=5cCyan=6cWhite=7colorTable=($cRed $cGreen $c翻译 2013-11-15 16:10:43 · 673 阅读 · 0 评论 -
文件IO基本使用攻略
练习:实现父进程终端输入,写入文件,子进程读取文件并输出文件内容于终端源代码:#include#include#include #include #include #include #include int do_write(int fd,const char *path);int do_read(int fd,const char *path);int _do_read原创 2013-06-22 16:57:39 · 761 阅读 · 0 评论 -
文件IO进阶使用
题目:实现一个文件的拷贝,先拷贝前半段,再拷贝后半段(1/2段)调试: ./a.out fork.c info //拷贝fork.c 到info文件运行效果:源代码:copy_file.c#include#include#include#include#include #include #include #include #inc原创 2013-06-22 16:43:35 · 616 阅读 · 0 评论 -
I/O多路复用的实现
A :创建一张文件描述符表,将关心的文件描述符放入表B : 通过select 函数探测表中的文件描述符是否就绪(就绪:条件满足)C : 有就绪的文件描述符select函数返回,然后调用相关的函数函数原型:int select(int nfds ,fd_set *readfs,fd_set *writefds, fd_set *exceptfds,struct timeval原创 2013-06-26 09:14:40 · 1117 阅读 · 0 评论 -
tftp--实现服务器与客户端的下载与上传
项目功能:实现服务器与客户端的下载与上传,及linux系统下的tftp功能项目名称:tftp--实现服务器与客户端的下载与上传开发环境:linux /C开发工具:GCC/GDB 网络协议:TCP/IP补充说明:程序中默认server端有upload文件夹用以接收client端上传的数据,client端有download文件夹用以下载server端原创 2013-06-18 18:33:46 · 4035 阅读 · 1 评论 -
linux 下sqlite 编程入门全攻略
******************************************************************--------------部分操作--------------建数据库:linux@ubuntu:~$ sqlite3 my.db查看帮助:sqlite> .help文件存放位置:sqlite> .database退出:sqlite> .quit原创 2013-09-14 23:55:38 · 803 阅读 · 0 评论 -
IPC-------消息队列全攻略
消息队列:1、 IPC的一种,按照消息的类型来发送和接收信息2、注意要设计消息结构体运行效果:写端:读端:write.c#include#include#include #include #include #include #include #include #include #define MSG_LEN (si原创 2013-06-22 18:41:34 · 593 阅读 · 0 评论 -
信号灯集实现PV操作
信号灯(semphore)也叫信号量,它是不同进程间或者一个给定的进程内不同线程同步机制信号灯:1.二值信号灯:信号为0、1与互斥锁类似,资源勇士为1,不用时为02.计数信号灯:值到0-n,用来统计资源其值可以代表资源数3.等待操作是等待信号灯的值大于零,然后将其减一;而释放操作则相反。用来唤醒等待资源的进程或者线程P、V操作就是资源的申请与释放P:申请资源,资源数原创 2013-06-22 18:23:13 · 2773 阅读 · 0 评论 -
IPC -------------共享内存全攻略
共享内存:1. 共享内存是一种最为有效的进程间通信方式,进程可以直接读写内存,更不需要任何数据的拷贝2.为了多个进程之间交互信息,内核专门留出一块内存区,可由需要访问的进程将其映射到自己的私有地址空间3.进程可以直接读取这一段内存区,而不需要数据的拷贝,从而大大的提高了效率4.由于多个进程共享一段内存,因此需要某种同步机制,如互斥和信号量等练习:实现用共原创 2013-06-22 17:31:01 · 633 阅读 · 0 评论 -
IPC--------fifo的进阶使用
练习:写两个程序fifo1 、fifo2,各自建立父子进程,子进程用来读管道,父进程用来写管道(即fifo1 的父进程写管道A,fifo2的子进程读A,结果输出到终端;fifo2的父进程写B,fifo1的子进程读B,结果输出到终端),实现fifo1 、fifo2之间的通信调试:./A fifo1 fifo2./B fifo1 fifo2 运行结果:原创 2013-06-22 16:09:01 · 589 阅读 · 0 评论 -
IPC-------信号的介绍
信号的特点:信号是唯一的异步通信方式进程对信号的处理方式:A : 忽略,对进程不做任何处理B:捕获C: 默认方式处理函数原型:typedef viod(*sighandler_t)(int ); sighandler_t signal(int signum, sighandler_t handler);signum:信号处理函数handle原创 2013-06-22 15:35:13 · 586 阅读 · 0 评论 -
IPC----pipe的使用
pipe属于进程间通信的一种方式,使用时注意以下几点:1.常用与亲缘关系间进程通信(亲缘关系进程存在数据拷贝)2.无名管道属于内核空间3.无名管道创建成功会产生两个文件描述符:fd[0]用于读管道,fd[1]用于写管道pipe原型:int pipe (int pipefd[2]);//创建无名管道,成功返回0,失败返回-1举例:父进程将一个文件内容通过匹配传给子进程源代原创 2013-06-22 14:53:37 · 881 阅读 · 0 评论 -
IPC ------有名管道fifo
fifo有名管道:简介:不同进程间通过管道文件名找到内核中的管道,进行通信功能:可以在非亲缘关系间进程通信特点:有名管道指的是文件系统存放的文件名,而管道是存在内核中练习:运行两个程序,一个程序建立fifo,打开fifo,通过终端向其中写入数据,另一个程序打开fifo并读取其中数据输出到终端运行效果:write端:read端:源码提供:原创 2013-06-22 15:17:59 · 768 阅读 · 1 评论 -
基于UDP的局域网聊天室
项目功能:实现服务器与客户端的下载与上传,及linux系统下的tftp功能项目名称:tftp--实现服务器与客户端的下载与上传开发环境:linux /C开发工具:GCC/GDB 网络协议:TCP/IP补充说明:程序中默认server端有upload文件夹用以接收client端上传的数据,client端有download文件夹用以下载server端原创 2013-06-18 19:19:11 · 1151 阅读 · 0 评论 -
ping 的实现
项目功能:模拟dos界面下的ping功能项目名称:ping 的实现开发环境:Linux/C注: 函数中具体API的调用及原理清参考草根老师的博客调试效果:1.myping.c#include #include #include #include #include #include #include #include #include #原创 2013-06-18 19:54:46 · 650 阅读 · 0 评论 -
Proxy源代码分析
Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该是Windows的优点)相比,后者无疑在易操作性上更胜一筹。但是为什么又有那么多的爱好者钟情于Linux呢,当然自由是最吸引人的一点,另外Linux强大的功能也是一个非常重要的原因,尤其是Linux强大的网络功能更是引人注转载 2013-11-24 20:31:06 · 729 阅读 · 1 评论 -
sigaction 小结
sigaction,是为替代signal 来设计的较稳定的信号处理。 signal的使用比较简单。signal(signalNO,signalproc); 而signaction,则可以设置比较多的消息。尤其是在信号处理函数过程中接受信号,进行何种处理。 使用示例为: #include #include void WrkProcess(int nsi转载 2013-10-21 09:31:01 · 531 阅读 · 0 评论 -
libcap 抓包接口分析
最近看的开源代码是有关网络监控的,它使用Libpcap进行抓包,然后处理。为了更好的理解代码的实现过程,我关注了Libpcap的抓包原理,至于详细的实现暂时还没有研究。1libpcap的工作原理1.1组成部分 libpcap主要由两部份组成:网络分接头(Network Tap)和数据过滤器(Packet Filter)。网络分接头从网络设备驱动程序中收集数据拷贝,过滤器转载 2013-10-21 21:31:36 · 1524 阅读 · 0 评论 -
linux 下优秀的网络监测工具
Linux优秀安全工具 Wireshark :优秀的开源Sniffer工具(强烈推荐)官方地址:http://www.wireshark.org/Metasploit Framework : Hack the Planet(强烈推荐)官方地址:http://www.metasploit.com/Nmap:优秀开源强大的开源工具(强烈推荐)官转载 2013-12-14 12:32:37 · 2397 阅读 · 0 评论 -
linux arp 攻击源码分析
arp 协议详解 攻击原理 简单攻击源码 一. 关于ARP协议的基础知识1.ARP的工作原理我们都知道以太网设备比如网卡都有自己全球唯一的MAC地址,它们是以MAC地址来传输以太网数据包的,但是它们却识别不了我们IP包中的IP地址,所以我们在以太网中进行IP通信的时候就需要一个协议来建立IP地址与MAC地址的对应关系,以使IP数据包能发到一个确定的地方去。这就是转载 2014-01-02 18:42:21 · 1122 阅读 · 0 评论 -
socket 的发送与接收缓冲区解析
应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异,所以,一部分应用数据被组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空闲时再发转载 2013-11-03 16:16:25 · 1079 阅读 · 0 评论 -
Linux Input子系统浅析(一)-- MTK6735M(Android6.0)平台内核实现
Linux输入设备总类繁杂,常见的包括有按键、键盘、触摸屏、鼠标、摇杆等等,他们本身就是字符设备,而linux内核将这些设备的共同性抽象出来,简化驱动开发建立了一个input子系统。 驱动层和硬件相关,直接捕捉和获取硬件设备的数据信息等(包括触摸屏被按下、按下位置、鼠标移动、键盘按下等等),然后将数据信息报告到核心层。核心层负责连接驱动层和事件处理层,设备驱动(device driv原创 2016-08-29 15:35:50 · 1891 阅读 · 1 评论