
C-Linux环境编程
HWQlet
这个作者很懒,什么都没留下…
展开
-
Linux--shell编程--函数,内部命令,调试
Shell函数同大多数高级语言一样,在shell脚本中可以定义并调用函数 格式: [function] 函数名(){ 命令表} 函数必须先定义,后调用。调用时,直接使用函数名,不用带括号,就像使用命令一样,调用函数不会创建新的进程,而是在本Shell脚本所属的进程内执行 用local指定函数内的局部变量 利用位置参数向函数传递数据,可以利用return [n]在任意位置退出函数,n是退出函数时的退出状态,未指定则退出状态去最后一个命令的退出状态 #! /b.原创 2020-06-29 22:01:01 · 262 阅读 · 0 评论 -
Linux--shell编程--循环结构
while语句格式: while 测试条件do 命令表done# orwhile 测试条件; do 命令表done 执行过程:先进行条件测试,如果结果为真,则执行循环体(关键字do和done之间的命令表),然后再做条件测试...直到测试条件为假时,才终止while语句的执行。#! /bin/bash# while.shwhile [ $1 ]do if [ -f $1 ];then echo -e "\ndisplay.原创 2020-06-24 17:49:41 · 623 阅读 · 0 评论 -
Linux--shell编程--控制结构
具有一般高级程序设计语言所具有的条件控制结构,循环控制结构和函数定义与调用功能条件控制结构:if,case循环控制结构:for,while,until条件测试 test命令:用于评估表达式以便进行条件控制 两种格式:test 表达式 或者 [ 表达式 ] 如果表达式的值为“真”,其退出状态为0(即成功),否则退出状态为非零值(失败) 方括号左右两个各需要至少一个空格 test "3" \> "2";echo $?# result0 ...原创 2020-06-22 17:32:24 · 472 阅读 · 0 评论 -
Linux--Shell编程
mkdir shcd sh#! /bin/bashcd /tmpecho "hello world"如何运行shell程序赋予程序文件可执行权限,直接运行./shellfile:./first.sh 调用命令解释器(Shell)解释执行:bash first.sh 使用source命令执行:source first.shShell的命令种类内部命令:是Shell解释器本身包含的命令,在文件系统没有相应的可执行文件,如cd,echo,source,pwd。执行内部命令时,.原创 2020-06-17 21:35:18 · 230 阅读 · 0 评论 -
Linux--shell命令
获取帮助命令 --help man:指的是Linux的系统手册,space/pgdn向下翻页;/或者?查找;q退出 info:以html文件格式组织通配符,引号,管道,重定向通配符 文件名前的"."和路径中的"/",必须显式匹配 {,}:完整匹配括号中以逗号分隔的任意一个字符串 [!]:匹配方括号中未列出的任意一个字符 []:匹配方括号中任意一个字符 ?:匹配且仅匹配一个任意字符 *:匹配0或者多个任意字符 转义字符:反斜线"\"后面的字符是 $,`,",\,换行.原创 2020-06-17 16:44:16 · 241 阅读 · 0 评论 -
Linux--目录结构
在安装系统时,安装程序就已经位用户创建了文件系统和完整而固定的目录组成形式Linux采用的多级目录树型层次结构,树形结构最上层是根目录 :"/",但是在DOS和Windows中,这样的树形结构的根目录是磁盘分区的盘符(C,D,E,F),所以在Windows中是森林文件扩展名与文件类型无关 Linux中每个分区都是一个文件系统,有自己的目录层次结构,Linux将分属不同分区,单独的文件系统按“挂载”的方式组成一个系统的,总的目录层次结构 挂载:就是将一个文件系统的顶层目录挂到另一个文件系统的子目录原创 2020-06-17 11:53:59 · 278 阅读 · 0 评论 -
Linux常识
常识UNIX是一种分时操作系统Linux操作系统是UNIX操作系统的一种克隆系统,现已成为世界上使用最多的一种类UNIX操作系统Linux系统分类: RedHat系列:RedHat,CentOS,Fedora 常见的安装包格式 rpm 包,安装rpm包的命令是 “rpm -参数” 包管理工具 yum 支持tar包 Debian系列:Debian,Ubuntu 常见的安装包格式 deb 包,安装deb包的命令是 “dpkg -参数” 包管理工具 ap.原创 2020-06-17 00:23:06 · 186 阅读 · 0 评论 -
IO复用--select,poll,epoll的总结
原文写的很详细:插个眼转载 2020-05-13 22:39:38 · 148 阅读 · 0 评论 -
IO多路复用--epoll
epoll是Linux内核2.6提出的。对比select和poll有很大的改进,没有描述符数量限制,epoll用一个文件描述符管理多个描述符,将用户关心的文件描述符的事件存放在内核的一个事件表中,这样就有解决了用户空间和内核空间因为copy导致开销线性增大的的问题需要#include <sys/epoll.h>函数接口原型:int epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll原创 2020-05-13 22:38:04 · 165 阅读 · 0 评论 -
IO多路复用--poll
poll与select相似,但是select有一个致命缺点就是可以监视的描述符有限,最多1024个,所以poll解决了这个问题,没有了最大文件描述符的限制,但是他们俩还存在一个问题就是文件描述符的数组整个的存在于用户空间和内核空间中,fd很多时,就会增大开销,所以epoll就解决了这个问题,只有就绪的文件描述符才会发出类似信号一样的通知,这个后面会讲到poll函数原型,需要#include <poll.h>int poll(struct pollfd *fdset, unsigned i原创 2020-05-13 21:28:22 · 261 阅读 · 0 评论 -
IO多路复用--select
文章IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。 (4)如果一个服务器即要处理TCP,又要处理UDP,一般要使用I/O复用。 (5)如果一个服务器要处理多个服务或原创 2020-05-13 19:58:54 · 437 阅读 · 0 评论 -
Linux环境编程--进程通信
一个进程充当读端,一个进程充当写端#include <sys/wait.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>int main(int argc,char * argv[]){ int pipefd[2...原创 2020-04-19 14:41:16 · 211 阅读 · 0 评论 -
Linux环境编程--信号量使用
通过信号屏蔽的方式对CTRL+C/CTRL+Z进行捕捉或者忽略#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>int count_c=0;int count_q=0;void gotquit(int sig){ pri...原创 2020-04-19 14:38:08 · 180 阅读 · 0 评论 -
Linux环境编程--文件IO
通过文件IO来进行写入文件,读取文件等操作#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#define TRUE 1#define FALSE 0#define MAX_ID_LEN 10#define MAX_NAME_LE...原创 2020-04-19 14:35:58 · 145 阅读 · 0 评论 -
Linux环境编程--蛇形矩阵
#include <stdio.h>#include <malloc.h>#include <stdlib.h>int main(){ int n=0; int **a; int begin=1; printf("please input row num:\n"); scanf("%d",&n); int max=n*n; ...原创 2020-04-19 14:33:41 · 165 阅读 · 0 评论 -
Linux环境编程--系统IO调用
系统IO调用速度比文件IO慢#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <stdio.h&g...原创 2020-04-19 14:29:19 · 146 阅读 · 0 评论 -
Linux环境编程--批量处理文件
代码如下:功能是将/tmp/hwq/下面的.dat类型的文件进行改名#! /bin/bashfor file_hwq in /tmp/hwq/*.dat;do file_hwq="${file_hwq##*/}" echo file_hwq= $file_hwq f_fore="${file_hwq%.*}" echo f_fore= $f_fore f_first="...原创 2020-04-19 14:22:27 · 196 阅读 · 0 评论 -
Linux环境编程--shell打印金字塔
由于上的是选修课,所以只是对课上的知识以及题目进行整理,可能细节并不是那么完善,请谅解shell打印金字塔:shell语言的语法细节较多,需要多加注意,但是一般涉及的代码量不会太多,因为主要是用于系统运维的#! /bin/bashif [-z $1];then echo "no input:" exitfifor ((i=1;i<=$1;i++));do for ((j...原创 2020-04-19 14:10:02 · 2248 阅读 · 0 评论 -
linux环境编程--shell脚本
linux环境编程中的shell脚本经常用于系统维护中,默认的ubuntu系统的shell为bashuntil循环:#! /bin/bashsum=0i=$1echo $iuntil((i<=0));do if((i%3==0));then ((sum+=i)) fi ((i--)) echo $idoneecho sum= $sumecho para...原创 2020-04-19 14:06:08 · 128 阅读 · 0 评论