Linux shell编程学习笔记---第三章

3.1正则表达式基础

正则表达式的主要功能是文本查询和字符串操作。实际上就是字符串过滤。

正则表达式包括普通字符和元字符,元字符主要的,见书中50页描述。特殊的正则表达式^$匹配空行。

正则表达式的扩展

bash shell中的通配,和原来的字符含义完全不一样了。。对比区别

3.4grep命令,强大的文本搜索工具

时间: 2024-10-13 05:02:54

Linux shell编程学习笔记---第三章的相关文章

Linux shell 编程学习笔记--第一章

1.内核从开机自检就放在计算机内存,直到计算机关闭为止,应用程序是放在计算机硬盘的,需要时才调入内存执行. 2.shell就是应用程序,它是连接内核和用户程序的桥梁.用户登入Linux系统的时候,shell就会被调入内存执行.shell图的关系..缺 3.用户有两种方式打开shell(1)通过图形界面的方式,来操作Linux操作系统 (2)两个软件,远程登录.其中登录要输入的IP没太明白,输入谁的IP 4.脚本语言和编译型语言的区别和联系.脚本语言易学难精. 1.3.1 shell脚本的基本元素

Linux Shell编程学习笔记一:shell简介

Q:什么是Shell,什么是shell脚本? A:Shell是一种用C语言编写的程序,它是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.它是命令语言.命令解释程序及程序设计语言的统称.它的作用就是遵循一定的语法将输入的命令加以解释并传给系统. 命令解释程序:shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用.用户在提示符下输入的命令都由shell先解释然后传给Linux核心.

《Linux系统编程》笔记 第三章(二)

3.6 定位流 标准库提供了与系统调用lseek()类似的函数来定位流中的读写位置. #include <stdio.h> int fseek (FILE *stream, long offset, int whence); long ftell(FILE *stream); 与lseek()用法类似,whence提供了如下选择: SEEK_CUR-将流的读写位置设置为当前位置加上pos个字节,pos可以是正数或负数. SEEK_END-将流的读写位置设置为文件尾加上pos个字节,pos可以是

Shell学习笔记——第三章

第三章 /etc/passwd 文件包含一个所有系统用户账户组成的列表,以及一些关于每个用户的基本信息. 例rich:x:501:Rich Blum:/home/rich:/bin/bash 每个条目都有7个数据字段,例使用冒号分隔.系统使用这些字段中的数据向用户分配具体的特性.这些字段分别有 用户名:用户密码(如果密码存储在其他文件中,则为占位符):用户的系统用户ID编号:用户的系统组的ID编号:用户的全名:用户默认的主目录:用户的默认Shell目录: cd 命令 略过 列表命令(ls) 参数

linux网络编程学习笔记之六 -----I/O多路复用服务端

多进程和多线程的目的是在于最大限度地利用CPU资源,当某个进程不需要占用太多CPU资源,而是需要I/O资源时,可以采用I/O多路复用,基本思路是让内核把进程挂起,直到有I/O事件发生时,再把控制返回给程序.这种事件驱动模型的高效之处在于,省去了进程和线程上下文切换的开销.整个程序运行在单一的进程上下文中,所有的逻辑流共享整个进程的地址空间.缺点是,编码复杂,而且随着每个逻辑流并发粒度的减小,编码复杂度会继续上升. I/O多路复用典型应用场合(摘自UNP6.1) select的模型就是这样一个实现

linux网络编程学习笔记之二 -----错误异常处理和各种碎碎(更新中)

errno 在unix系统中对大部分系统调用非正常返回时,通常返回值为-1,并设置全局变量errno(errno.h),如socket(), bind(), accept(), listen().erron存放一个正整数来保存上次出错的错误值. 对线程而言,每个线程都有专用的errno变量,不必考虑同步问题. strerror converts to English (Note: use strerror_r for thread safety) perror is simplified str

linux网络编程学习笔记之五 -----并发机制与线程?

进程线程分配方式 简述下常见的进程和线程分配方式:(好吧,我仅仅是举几个样例作为笔记...并发的水太深了,不敢妄谈...) 1.进程线程预分配 简言之,当I/O开销大于计算开销且并发量较大时,为了节省每次都要创建和销毁进程和线程的开销.能够在请求到达前预先进行分配. 2.进程线程延迟分配 预分配节省了处理时的负担,但操作系统管理这些进程线程也会带来一定的开销.由此,有个折中的方法是,当某个处理须要花费较长时间的时候,我们创建一个并发的进程或线程来处理该请求.实现也非常easy,在主线程中定时,定

linux网络编程学习笔记之四 -----多线程并发服务端

相对于使用进程实现并发,用线程的实现更加轻量.每个线程都是独立的逻辑流.线程是CPU上独立调度运行的最小单位,而进程是资源分配的单位.当然这是在微内核的操作系统上说的,简言之这种操作系统的内核是只提供最基本的OS服务,更多参看点击打开链接 每个线程有它自己的线程上下文,包括一个唯一的线程ID(linux上实现为unsigned long),栈,栈指针,程序计数器.通用目的寄存器和条件码,还有自己的信号掩码和优先级.同一个进程里的线程共享这个进程的整个虚拟地址空间,包括可执行的程序文本.程序的全局

linux网络编程学习笔记之五 -----并发机制与线程池

进程线程分配方式 简述下常见的进程和线程分配方式:(好吧,我只是举几个例子作为笔记...并发的水太深了,不敢妄谈...) 1.进程线程预分配 简言之,当I/O开销大于计算开销且并发量较大时,为了节省每次都要创建和销毁进程和线程的开销.可以在请求到达前预先进行分配. 2.进程线程延迟分配 预分配节省了处理时的负担,但操作系统管理这些进程线程也会带来一定的开销.由此,有个折中的方法是,当某个处理需要花费较长时间的时候,我们创建一个并发的进程或线程来处理该请求.实现也很简单,在主线程中定时,定时到期,