Linux 系统编程
文章平均质量分 58
Linux 系统编程
涂作权的博客
To do what I want to do!
展开
-
Linux less 命令使用介绍
less操作命令转载 2023-01-05 12:44:16 · 4491 阅读 · 1 评论 -
ssh中添加隧道,访问目标机器上的地址
网络结构如下:注意:下面的跳板机可以通过curl -lv http://targetIp:port 访问到页面。配置案例:接着在本地的浏览器上输入:http://localhost:20000/,可以看到:说明该配置成功了。原创 2021-04-23 10:08:12 · 404 阅读 · 0 评论 -
制作本地 CentOS-7-x86_64-Everything-2009.iso对应的源
1、下载CentOS-7-x86_64-Everything-2009.iso。https://mirrors.aliyun.com/centos/7/isos/x86_64/2、安装httpd,并启动httpdyum install -y httpdsystemctl start httpd3、将CentOS-7-x86_64-Everything-2009.iso上传到服务器上,地址为:/data/CentOS-7-x86_64-Everything-2009.iso其中CentOS原创 2020-12-02 14:20:40 · 4410 阅读 · 0 评论 -
常见RAID的各级别的特性简介(RAID0、1、5、6、10)
什么是RAID?磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。RAID最早由加利福转载 2020-10-03 22:17:26 · 2814 阅读 · 0 评论 -
5.解决UltraEdit在无网线情况下连接不到虚拟机上的问题,回环网卡设置
1.右击“我的电脑”—>计算机管理à设置管理器2.添加过时硬件时候的效果(再点击下一步)3.选择“安装我手动从列表选择的硬件(高级)M”4选择“网络适配器”,点击下一步5选择’Microsoft’àMicrosoft KM-TEST环回适配器最后一直点击,直到完成。6设置”网络适配器”中原创 2014-10-15 11:53:14 · 2971 阅读 · 0 评论 -
3socket编程:UDP编程
1 C/S模型—UDPUDP处理模型说明:由于UDP不需要维护连接,程序逻辑简单了很多,但是UDP协议是不可靠的,实际上有很多保证通讯可靠性的机制需要在应用层实现。编译运行server,在两个终端里各开一个client与server交互,看看server是否具有并发服务的能力。用Ctrl+C关闭server,然后再运行server,看此时原创 2014-09-30 22:22:42 · 1524 阅读 · 0 评论 -
5高并发服务器:socket IPC
socket IPCsocket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算原创 2014-09-30 22:53:03 · 1617 阅读 · 0 评论 -
2线程同步:读写锁
1读写锁读共享,写独占2读写锁说明读写锁与互斥量类似,不过读写锁的并行性更高。读写锁可以有三种状态:A读模式加锁B写模式加锁C不加锁3在写加锁状态时,在解锁之前,所有试图对这个锁加锁的线程都会被阻塞。在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权限。但是如果线程希望以写模式加锁,它必须阻原创 2014-09-25 16:52:07 · 1212 阅读 · 0 评论 -
3线程的终止方式,线程属性,NPTL
1线程终止方式如果需要只终止某个线程而不终止整个线程,可以有三种方法:A:从主线程函数return.这种方法对主线程不适合,从main函数return相当于调用exit.B:一个线程可以调用pthread_cancel终止同一进程中的另一个线程。C:线程可以调用pthread_exit终止自己 同一个进程的线程间,pthread_canc原创 2014-09-25 16:41:05 · 1167 阅读 · 0 评论 -
4高并发服务器:UDP局域网服务器(组播)
1 UDP局域网服务器A读出每一个客户端发送过来的数据包,然后fork出子进程,由子进程去处理客户端请求。B客户端与服务器段交换多个数据报,服务器为每一个客户端连接创建新的socket,在其上bind一个临时端口,然后用该socket处理对应客户端上的所有应答,这个办法要求在客户查看服务器第一个应答中的源端口号。然后后面利用此端口号和服务器进行交互。2函原创 2014-09-30 22:42:41 · 4782 阅读 · 0 评论 -
3高并发服务器:多路IO之epoll
1 epollepoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并、发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Read原创 2014-09-30 22:41:46 · 1996 阅读 · 0 评论 -
2高并发服务器:多路IO之poll
1 pollA依赖的头文件#include B函数声明int poll(struct pollfd *fds, nfds_t nfds,int timeout); struct pollfd {int fd; /*文件描述符*/short events; /*监控的事件*/short revents原创 2014-09-30 22:36:58 · 1746 阅读 · 0 评论 -
1高并发服务器:多路IO之select
1 selectA:select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数B:解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率,不应在select上投入更多精力2依赖的头文件原创 2014-09-30 22:35:30 · 3157 阅读 · 0 评论 -
2高并发服务器:多线程服务器
1多进程并发服务器在使用线程模型开发服务器时需要考虑以下问题:A调整进程最大文件描述符上限B线程如有共享数据,考虑线程同步C服务于客户端线程退出时,退出处理D2.案例说明server.c,代码如下:/* server.c */#include #include原创 2014-09-27 23:58:58 · 2159 阅读 · 0 评论 -
1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client
1 Socket编程socket这个词可以表示很多概念:在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。socket本身有“插座”的意思原创 2014-09-27 23:55:43 · 2234 阅读 · 0 评论 -
1高并发服务器:多进程服务器
1多进程并发服务器使用多进程并发服务器时要考虑以下几点:A.父最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符)B.系统内创建进程个数(和内存大小相关)C.进程创建过多是否降低整体服务性能(进程调度)2.案例说明server.c,代码如下:#include #inclu原创 2014-09-27 23:57:18 · 1822 阅读 · 0 评论 -
2线程原语:pthread_create(),pthread_self(),pthread_exit(),pthread_join(),pthread_cancel(),pthread_detach(
1 pthread_create()函数创建线程A:依赖的头文件#includeB:函数声明int pthread_create(pthread_t *thread, constpthread_attr_t *attr,void *(*start_routine) (void *), void *arg);pthread_t原创 2014-09-25 16:36:58 · 6444 阅读 · 0 评论 -
1线程概念:线程和进程之间的关系,线程间可共享资源,线程间非共享资源,线程的优缺点
1线程概念1.1什么是线程1.1.2线程和进程的关系 1.轻量级进程(light-weightprocess),也有PCB,创建线程使用底层函数和进程一样,都是clone.2.从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表示相同的3.进程可以蜕变成线程4.在美国人眼里,线程就是寄存原创 2014-09-25 16:21:40 · 2269 阅读 · 0 评论 -
3信号处理之:避免异步IO的类型,SIGCHLD信号处理
1避免异步I/O的类型sig_atomic_t 平台下的原子类型volatile(晚上上网查找) 防止编译器开启优化选项是,优化对内存的读写。2 SIGCHLD信号处理SIGCHLD的产生条件子进程终止时子进程接收到SIGSTOP信号停止时子进程处在停止态,接受到SIGCONT后唤醒时原创 2014-09-21 01:20:22 · 1104 阅读 · 0 评论 -
1.网络工具:ifconfig,ping,netstate,Redhat命令和图形化设置ip,finger,nslookup
1 ip ad查看网卡编号2、ifconfig查看网卡信息3、关闭网卡4、启动网卡5、给etho配置临时ipsudo ifconfig ethoIP地址 6、ping命令ping [选项]主机名/IP地址查看网络上的主机是否在工作。它向该主原创 2014-10-02 08:59:18 · 2724 阅读 · 0 评论 -
解决TIME_WAIT过多造成的问题
1、time_wait的作用TIME_WAIT状态存在的理由:1)可靠地实现TCP全双工连接的终止 在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN,因此客户端必须维护状态信息允许它重发最终的ACK。如果不维持这个状态信息,那么客户端将响应RST分节,服务器将此分节解释成一个错误(在java中会抛出conn...转载 2018-07-31 17:48:55 · 879 阅读 · 0 评论 -
Linux中的高级文本处理命令,cut命令,sed命令,awk命令
1.2.1 cut命令 cut命令可以从一个文本文件或者文本流中提取文本列。 cut语法[root@www ~]# cut -d'分隔字符' -f fields ## 用于有特定分隔字符[root@www ~]# cut -c 字符区间 ## 用于排列整齐的信息选项与参数:-d:后面接分隔字符。与 -f 一起使用;-f:依据 -d 的分隔字符将一段信息分割成为数段,用原创 2017-01-01 17:10:02 · 7283 阅读 · 0 评论 -
Linux下apache服务器安装,sqlite安装,apache启动,关闭,重启,编写cig程序进行测试,浏览器访问cig程序
1安装ubuntu 14.04 64位操作系统2安装apache和sqllite以及依赖的sqllite开发库3配置目录 /etc/apache24 html页面目录 var/www/5 cgi-bin目录 /usr/lib/cgi-bin6日志文件:/var/log/apache2原创 2014-11-08 13:13:29 · 2892 阅读 · 0 评论 -
在电脑上安装Linux操作系统(ubuntu)
1硬件需求A一台电脑B一个优盘2软件需求A制作优盘启动盘的软件PowerISOBLinux操作系统的镜像文件3安装PowerISO,并使用PowerISOA安装PowerISOB插入优盘C选择PowerISO工具制作可启动U盘D点击开始,直到完成4设置优盘启动5选择安装Ubuntu6类型选择其它7原始分区效果原创 2014-11-22 00:31:11 · 6664 阅读 · 0 评论 -
Redhat linux下安装oracle11r2手册+截图_toto_V1.0
在Linux下安装配置Oracle 11g R2详细过程(在整个过程中是在虚拟机下模拟的,虚拟机磁盘设置成了100GB)1.Linux环境配置准备环境:Linux:Redhat Enterprise 6,DB:Oracle 11gR2 X64,Oracle安装到/home/oralce_11目录下。配置过程如下:(大部分是网上的内容,个人也是按照网上原创 2014-10-03 17:44:11 · 1893 阅读 · 0 评论 -
1、win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现)
1、win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现)一、准备知识:win10下打开Administrator的方式在win10操作系统中,Administrator默认是隐藏和关闭的,若想使用管理员权限,需要使用cmd(以管理员方式运行)执行如下命令: net user administrator /active:yes 截图:...原创 2016-12-28 00:44:31 · 5925 阅读 · 0 评论 -
在自己笔记本电脑上如何访问虚拟机的内容、包括可以使用ssh、访问tomcat、访问nginx
1、给自己的电脑设置一个回环网卡,关于如何配置回环网卡,可以百度搜索一下设置好后的状态如下:并把回环网卡的ipv4的值设置成192.168.1.1配置如下:2、将vmware中的"虚拟机"-->“设置“ -->网络,设置成如下:3、设置Vmware中"编辑"-->“虚拟网络编辑器”,配置成如下:4、先看能不能ping通,能ping通说明是把防火墙打开了,所以关掉就可以了 解决方案:禁用防火墙(永久原创 2016-10-04 22:11:35 · 2124 阅读 · 0 评论 -
2Ubuntu/RedHat下nfs服务器搭建,Linux多台电脑共享目录
1安装nfs(网络文件系统)服务器共享的原理:安装命令:sudo apt-get install nfs-kernel-server2设置/etc/exports配置文件添加以下这行配置其中:*表示所有ip,如果想指定ip,可以把*换成你自己的ip地址。rw:表示只读权限,如果想变成只读的,修改配置为ro原创 2014-09-10 22:49:30 · 1484 阅读 · 0 评论 -
静态库和共享库制作
1静态库和共享库*本节就如何创建和使用程序库进行论述。所谓“程序库”,简单说,就是包含了数据和执行码的文件。其不能单独执行,可以作为其它执行程序的一部分来完成某些功能。库的存在,可以使得程序模块化,可以加快程序的再编译,可以实现代码重用,可以使得程序便于升级。程序库可分静态库(static library)和共享库(shared object)。原创 2014-09-11 20:32:24 · 1185 阅读 · 0 评论 -
gdb调试
1 GDB的主要功能:A启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。B可以让被调试的程序在你所指定的调试的断点处停住。(断点可以是条件表达式)C当程序被停止住是,可以检查此时你的程序中所发生的事。D动态的改变你程序的执行环境。 2载入程序的两种方式前提:编译程序的时候加上了调试命令 -g,比如原创 2015-01-27 21:38:34 · 1177 阅读 · 0 评论 -
6.set ff=unix;设置Linux中文件中每行后又尖括号的情况
用vi命令打开要替换尖括号的文件直接输入: :set ff=unix 表示设置文件格式是unix格式原创 2014-10-21 10:00:38 · 17707 阅读 · 0 评论 -
1.VMwareTools的安装,vmware启动的时候,虚拟机黑屏,解决办法
1 选中虚拟机,右击,然后点击:安装Vmware-tool(最好是有网络的情况下安装)2 将Vmware-tool的安装文件拷贝到临时目录下,截图如下:3 解压VMwareTools-9.6.0-1294478.tar.gz4 解压后的结果如下:5 进入vmware-tools-distrib6 执行vmware-install.pl7 按照...原创 2014-10-03 00:38:27 · 6996 阅读 · 1 评论 -
3线程同步:条件变量
1条件变量条件变量给多个线程提供了一个汇合的场所。依赖的头文件#include函数声明定义分配条件变量pthread_cond_t cond =PTHREAD_COND_INITIALIZER; int pthread_cond_init(pthread_cond_t*restrict cond, const pthread_co原创 2014-09-25 16:55:12 · 1401 阅读 · 0 评论 -
5进程间锁:进程间pthread_mutex,文件锁
1进程间pthread_mutexA依赖的头文件#includeB函数声明intpthread_mutexattr_destroy(pthread_mutexattr_t *attr);intpthread_mutexattr_setpshared(pthread_mutexattr_t *attr, int pshared);int原创 2014-09-25 17:02:04 · 4990 阅读 · 0 评论 -
Linux服务器编程之:link()函数,ln命令,symlink,readlink,案例说明
1依赖头文件#include原创 2014-09-14 19:39:39 · 8296 阅读 · 0 评论 -
Linux服务器开发之:stat(),fstat(),lstat()详细介绍+案例演示
1.依赖的头文件#include #include #include 2.函数定义://通过传入文件路径,struct stat结构体指针的方式int stat(const char *path, struct stat *buf);//通过文件描述符获取文件对应的属性。文件打开后这样操作int fstat(int fd, struct stat *buf)原创 2014-09-14 12:27:33 · 1898 阅读 · 0 评论 -
Linux,扇区,块,文件系统,目录中的记录项
1.Windows下的文件系统是:NTFS2.Linux下的文件系统是ext2,ext3,最新的是ext43.一般的硬盘以512个字节为一个扇区4.磁盘中一个Block的大小时扇区的倍数,PC默认设置的大小是4096的大小5.关于文件系统(以ext2文件系统为例)6.文件名并没有存在inode里面7.目录项,一个目录项默认的大小时4096字节的大小里面记录的有文件名原创 2014-09-14 11:11:03 · 2734 阅读 · 0 评论 -
1Ubuntu下ftp服务器搭建
1安装ftp服务器的条件电脑联网2.执行以下命令:3配置vsftpd.conf命令:sudo vi /etc/vsftpd.conf在配置文件(vsftpd.conf最后面)中添加以下配置:要注意的是:anno_root=/home/toto/ftp要含有ftp这个文件夹,并且这个文件夹要和普通文件的权限是相同的。不能是最大权限的(不原创 2014-09-10 22:41:14 · 1238 阅读 · 0 评论 -
1pipe管道
1进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。2pipe管原创 2014-09-20 23:46:29 · 1876 阅读 · 0 评论 -
1虚拟机下U盘或磁盘挂载,Ubuntu下的网络配置,图形化界面和命令界面之间的切换,软件源配置
一设置磁盘挂载(磁盘默认挂载到了/media目录下了) A:插入移动硬盘 B:对虚拟机进行设置(虚拟机—>可移动设备àtoshibaExternal USB 3.0(这个是我的移动硬盘插上去之后显示的一项)à连接) 有时候出现以下现象 C:检测存储设备名称 sudofdisk –l原创 2014-09-10 00:01:11 · 1682 阅读 · 0 评论