学习计时:共xxx小时linux 读书:web 代码:正则表达式 做业:shell 博客:数据库 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1、学习目标编程 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. 可以独立安装Linux操做系统
2. 可以熟练使用Linux系统的基本命令
3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等
4. 熟练应用“搜索”进行触类旁通的学习
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2、学习资源vim |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. 课程资料:https://www.shiyanlou.com/courses/413 实验一,课程邀请码:W7FQKW4Y安全 2. Linux 基础入门:https://www.shiyanlou.com/courses/1(重点,第一次课考核内容所有从这里面出)bash |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3、学习方法 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. 进度很重要:必须跟上每周的进度,阅读,练习,问答,项目。我会认真对待每一位同窗,请你不要由于困难半途而废。
2. 问答很重要:遇到知识难点请多多提问,这是你的权利更是您对本身负责的义务。问答到博客园讨论小组:http://group.cnblogs.com/103791/
3. 实践很重要:解决书中习题,实践书中实例,完成每周项目,才算真的消化了这本好书。经过实验楼环境或本身安装的虚拟机在实践中进行学习
4. 实验报告很重要:详细记录你完成项目任务的思路,得到老师点评和帮助本身复习。学习完成后在博客园中(http://www.cnblogs.com/)把学习过程经过博客发表,博客标题“信息安全系统设计基础第一周学习总结”
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4、学习任务 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(提示:请将要求学生完成的任务、测验或思考题列在此处) 1. 重点学习 cheat/find/locate/grep/man/whereis/which/apt-get 查找帮助文档、各类示例多多练习,这几个命令会贯穿咱们整个学习的学习,掌握这几个命令就能够很好学习其余命令了。 2. 这学期须要掌握的命令有ac,apt-get,bzip2,cat,chgrp,chmod,chown,clear,compress,cp,dd,df,diff,du,dump,evn,find,finger,free,grep,gzip,head,kill,less,ln,locate,l,gout,ls,man,mkdir,more,mount,mt,mv,netstat,nslookup,od,passwd,patch,ps,pstop,pwd,rm,shell,sort,ssh,stty,tail,tar,telnet,touch,tree,uname,unzip,vi,vim,whereis,which,who,write等 3. 测试示例:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
五、后续学习预告(可选): |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Linux下C语言编程基础:
VIM进行编辑
GCC进行编译
GDB进行调试
Make进行自动化
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
六、学习过程 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Linux 就是一个操做系统 Linux 与 Windows 到底有哪些不一样
1.免费与收费
最新正版 Windows8.1 官方售价 ¥888; Linux 免费或少量费用。 2.软件与支持
Windows 平台:数量和质量的优点,不过大部分为收费软件;由微软官方提供重要支持和服务; Linux 平台:大都为开源自由软件,用户能够修改定制和再发布,因为基本免费没有资金支持,部分软件质量和体验欠缺;有全球全部的 Linux 开发者和自由软件社区提供支持。 3.安全性
Windows 平台:三天两头打补丁安装系统安全更新,仍是会中病毒木马; Linux 平台:要说 Linux 没有安全问题,那固然是不可能的,这一点仁者见仁智者见智,相对来讲确定比 Windows 平台要更加安全,使用 Linux 你也不用装某杀毒,某毒霸。 4.使用习惯
Windows:普通用户基本都是纯图形界面下操做使用,依靠鼠标和键盘完成一切操做,用户上手容易入门简单; Linux:兼具图形界面操做(须要使用带有桌面环境的发行版)和彻底的命令行操做,能够只用键盘完成一切操做,新手入门较困难,须要一些学习和指导(这正是咱们要作的事情),一旦熟练以后效率极高。 5.可定制性
Windows:这些年以前算是全封闭的,系统可定制性不好; Linux:你想怎么作就怎么作,Windows 能作到得它都能,Windows 作不到的,它也能。 6.应用范畴
或许你以前不知道 Linux ,要知道,你以前在 Windows 使用百度,谷歌,上淘宝,聊 QQ 时,支撑这些软件和服务的,是后台成千上万的 Linux 服务器主机,它们时时刻刻都在进行着忙碌的数据处理和运算,能够说世界上大部分软件和服务都是运行在 Linux 之上的。
7.Windows 没有的
稳定的系统 安全性和漏洞的快速修补 多用户 用户和用户组的规划 相对较少的系统资源占用 可定制裁剪,移植到嵌入式平台(如安卓设备) 可选择的多种图形用户界面(如 GNOME,KDE) 8.Linux 没有的
没有特定的支持厂商 游戏娱乐支持度不足 专业软件支持度不足
Linux终端 inux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登陆,在物理机系统上你能够经过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,不过在咱们的在线实验环境中可能没法切换,由于特殊功能按键会被你主机系统劫持。当你切换到其中一个终端后想要切换回图形界面,你能够按下[Ctrl]+[Alt]+[F7]来完成。 Shell 是指“提供给使用者使用界面”的软件(命令解析器)。 在 UNIX/Linux 中比较流行的常见的 Shell 有 bash,zsh,ksh,csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),但咱们的环境中使用的分别是zsh 和 xfce。 使用Tab键来进行命令补全,补全目录,补全命令参数。 使用Ctrl+c键来强行终止当前程序(你能够放心它并不会使终端退出) 。 提示:在进行目录切换的过程当中请多使用 Tab 键自动补全,可避免输入错误,连续按两次Tab能够显示所有候选结果
新建空白文件
使用 touch 命令建立空白文件,关于 touch 命令,其主要是来更改已有文件的时间戳的(好比,最近访问时间,最近修改时间),但其在不加任何参数的状况下,只指定一个文件名,则能够建立一个为指定文件名的空白文件(不会覆盖已有同名文件),固然你也能够同时指定该文件的时间戳
新建目录
使用 mkdir(make directories)命令能够建立一个空目录,也可同时指定建立目录的权限属性,使用 -p 参数,同时建立父目录(若是不存在该父目录),以下咱们同时建立一个多级目录(这在有时候安装软件,配置安装路径时很是有用):
$ mkdir -p father/son/grandson 2.复制
复制文件 使用cp(copy)命令复制一个文件或目录到指定目录。将以前建立的"test"文件复制到"/home/shiyanlou/father/son/grandson"目录中:$ cp test father/son/grandson 复制目录 若是直接使用cp命令,复制一个目录的话,会出现以下错误: 要成功复制目录须要加上-r或者-R参数,表示递归复制,就是说有点“株连九族”的意思:$ cp -r father family。
3.删除 删除文件 使用rm(remove files or directories)命令,删除一个文件或目录:$ rm test 删除目录 跟复制目录同样,要删除一个目录,也须要加上-r或-R参数:$ rm -r family
4.移动文件与文件重命名 移动文件 使用mv(move or rename files)命令,移动文件(剪切)。将文件"file1"移动到"Documents"目录mv 源目录文件 目的目录:$ mv file1 Documents
重命名文件 将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名:$ mv file1 myfile 批量重命名: 用rename
5.查看文件 使用cat,tac和nl命令查看文件,其中cat为正序显示,tac倒序显示。 nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。 这里简单列举它的经常使用的几个参数: -b : 指定添加行号的方式,主要有两种: -b a:表示不管是否为空行,一样列出行号("cat -n"就是这种方式) -b t:只列出非空行的编号并列出(默认为这种方式) -n : 设置行号的样式,主要有三种: -n ln:在行号字段最左端显示 -n rn:在行号字段最右边显示,且不加 0 -n rz:在行号字段最右边显示,且加 0 -w : 行号字段占用的位数(默认为 6 位) 使用more工具打开passwd文件:$ more passwd。打开后默认只显示一屏内容,终端底部显示当前阅读的进度(百分比)。可使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。 6.查看文件类型 前面我提到过,在 Linux 下面文件的类型不是根据文件后缀来判断的,咱们一般使用file命令能够查看文件的类型:$ file /bin/ls 6.查看文件类型 前面我提到过,在 Linux 下面文件的类型不是根据文件后缀来判断的,咱们一般使用file命令能够查看文件的类型:$ file /bin/ls
做业:
1、环境变量 变量的做用域即变量的有效范围(好比一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量通常。 注意:关于变量名,并非任何形式的变量名都是可用的,变量名只能是英文字母,数字或者下划线,且不能以数字做为开头。
通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(好比文件名,参数名)。当查找文件夹时,可使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,经常使用通配符代替一个或多个真正的字符。 在 Linux 环境中,若是你遇到困难,可使用man 命令,它是Manual page的缩写。
Manual pages 是在 UNIX 或类 UNIX 操做系统在线软件文档的一种广泛的形式。 内容包括计算机程序(包括库和系统调用),正式的标准和惯例,甚至是抽象的概念。用户能够经过执行 man 命令调用手册页。
1、Linux 用户管理 2.建立用户 在 Linux 系统里, root 帐户拥有整个系统至高无上的权利,好比 新建/添加 用户。
root 权限,系统权限的一种,与 SYSTEM 权限能够理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户账户,该账户拥有整个系统至高无上的权力,全部对象他均可以操做,因此不少黑客在入侵系统的时候,都要把权限提高到 root 权限,用 Windows 的方法理解也就是将本身的非法账户添加到 Administrators 用户组。更好比安卓操做系统中(基于 Linux 内核)得到 root 权限以后就意味着已经得到了手机的最高权限,这时候你能够对手机中的任何文件(包括系统文件)执行全部增、删、改、查的操做。 3.用户组 如何知道本身属于哪些用户组 方法一:使用groups命令。其中冒号以前表示用户,后面表示该用户所属的用户组。这里能够看到 shiyanlou 用户同时属于 shiyanlou 和 sudo 用户组,每次新建用户若是不指定用户组的话,默认会自动建立一个与用户名相同的用户组(差很少就至关于家长的意思,或者说是老总)。默认状况下在sudo用户组里的可使用sudo命令得到root权限。 方法二:查看/etc/group文件
$ cat /etc/group | sort 这里 cat 命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。 | sort 表示将读取的文本进行一个字典排序再输出,而后你将看到以下一堆输出,你能够在最下面看到 shiyanlou 的用户组信息: 4.删除用户
删除用户是很简单的事:$ sudo deluser lilei --remove-home 2、Linux 文件权限 Linux 里面一切皆文件,正由于这一点才有了设备文件( /dev 目录下有各类设备文件,大都跟具体的硬件设备相关)这一说,还有 socket(网络套接字,具体是什么,感兴趣的用户能够本身去了解或期待实验楼的后续相关课程),和 pipe (管道,这个东西很重要,咱们之后将会讨论到,这里你先知道有它的存在便可)。软连接文件,连接文件是分为两种的,另外一种固然是“硬连接”(硬连接不经常使用,具体内容不做为本课程讨论重点,而软连接等同于 Windows 上的快捷方式,你记住这一点就够了) 读权限,表示你可使用 cat <file name> 之类的命令来读取某个文件的内容;写权限,表示你能够编辑和修改某个文件; 执行权限,一般指能够运行的二进制程序文件或者脚本文件,如同 Windows 上的 'exe' 后缀的文件,不过 Linux 上不是经过文件后缀名来区分文件的类型。你须要注意的一点是,一个目录要同时具备读权限和执行权限才能够打开,而一个目录要有写权限才容许在其中建立其它文件,这是由于目录文件实际保存着该目录里面的文件的列表等信息 $ ls -A 固然,你能够同时使用 '-A' 和 '-l' 参数:$ ls -Al查看某一个目录的完整属性,而不是显示目录里面的文件属性:$ ls -dl <目录名>。显示全部文件大小,并以普通人类能看懂的方式呈现:$ ls –AsSh,其中小 s 为显示文件大小,大 S 为按文件大小排序,若须要知道如何按其它方式排序,请使用“man”命令查询。 2.变动文件全部者
3.修改文件权限
每一个文件的三组权限(拥有者,所属用户组,其余用户,记住这个顺序是必定的)就对应这一个 "rwx",也就是一个 '7' 目录路径 使用 cd 命令能够切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(**注意,以 . 开头的文件都是隐藏文件,因此这两个目录必然也是隐藏的,你可使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录,~ 一般表示当前用户的"home"目录。使用 pwd 命令能够获取当前所在路径(绝对路径)。 关于绝对路径,简单地说就是以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。 关于相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin (这里假设你当前目录为根目录)。你可能注意到,咱们表示相对路径实际并无加上表示当前目录的那个 . ,而是直接以目录名开头,由于这个 usr 目录为 / 目录下的子目录,是能够省略这个 . 的(之后会讲到一个相似不能省略的状况);若是是当前目录的上一级目录,则须要使用 .. ,好比你当前目录为“home”目录,根目录就应该表示为 ../../ ,表示上一级目录("home"目录)的上一级目录("/"目录)。
1、环境变量
变量的做用域即变量的有效范围(好比一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量通常。
注意:关于变量名,并非任何形式的变量名都是可用的,变量名只能是英文字母,数字或者下划线,且不能以数字做为开头。 2.环境变量 环境变量就是做用域比自定义变量要大。一般咱们会涉及到的环境变量有三种: 当前 Shell 进程私有用户自定义变量,如上面咱们建立的 temp 变量,只在当前 Shell 中有效。Shell 自己内建的变量。从自定义变量导出的环境变量。 3.命令的查找路径与顺序 4.添加自定义路径到“PATH”环境变量 在每一个用户的 home 目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。zsh 的配置文件是.zshrc,相应 Bash 的配置文件为.bashrc。它们在etc下还都有一个或多个全局的配置文件,不过咱们通常只修改用户目录下的配置文件。 5.修改和删除已有变量 变量删除 可使用unset命令删除一个环境变量:$ unset temp 6.如何让环境变量当即生效 在上面咱们在 Shell 中修改了一个配置脚本文件以后(好比 zsh 的配置文件 home 目录下的.zshrc),每次都要退出终端从新打开甚至重启主机以后其才能生效,非常麻烦,咱们可使用source命令来让其当即生效,如:$ source .zshrc source命令还有一个别名就是.,注意与表示当前路径的那个点区分开,虽然形式同样,但做用和使用方式同样,上面的命令若是替换成.的方式就该是$ . ./.zshrc 注意第一个点后面有一个空格,并且后面的文件必须指定完整的绝对或相对路径名,source 则不须要。
2、搜索文件 与搜索相关的命令经常使用的有以下几个whereis,which,find,locate。 whereis简单快速:$whereis who locate快而全,$ locate /etc/sh which小而精,$ which man find精而细,$ find /etc/ -name interfaces 2.使用unzip命令解压缩zip文件 将shiyanlou.zip解压到当前目录:$ unzip shiyanlou.zip 使用安静模式,将文件解压到指定目录:$ unzip -q shiyanlou.zip -d ziptest 使用-O(英文字母,大写o)参数指定编码类型:unzip -O GBK 中文压缩文件.zip
3.rar打包压缩命令 从指定文件或目录建立压缩包或添加文件到压缩包:$ rm *.zip;$ rar a shiyanlou.rar .上面的命令使用a参数添加一个目录~到一个归档文件中,若是该文件不存在就会自动建立。 从指定压缩包文件中删除某个文件:$ rar d shiyanlou.rar .zshrc 查看不解压文件:$ rar l shiyanlou.rar 使用unrar解压rar文件 全路径解压:$ unrar x shiyanlou.rar 去掉路径解压:$ mkdir tmp $ unrar e shiyanlou.rar tmp/
4.tar打包工具
解包一个文件(-x参数)到指定路径的已存在目录(-C参数):$ mkdir tardir $ tar -xf shiyanlou.tar -C tardir 只查看不解包文件-t参数:$ tar -tf shiyanlou.tar 保留文件属性和跟随连接(符号连接或软连接),有时候咱们使用tar备份文件当你在其余主机还原时但愿保留文件的属性(-p参数)和备份连接指向的源文件而不是连接自己(-h参数):$ tar -cphf etc.tar /etc 对于建立不一样的压缩格式的文件,对于tar来讲是至关简单的,须要的只是换一个参数,这里咱们就以使用gzip工具建立*.tar.gz文件为例来讲明。
咱们只须要在建立 tar 文件的基础上添加-z参数,使用gzip来压缩文件:$ tar -czf shiyanlou.tar.gz ~ 解压*.tar.gz文件:$ tar -xzf shiyanlou.tar.gz
1、简单文件系统操做 1.查看磁盘和目录的容量 使用 df 命令查看磁盘的容量
使用 du 命令查看目录的容量 d参数指定查看目录的深度 2、简单的磁盘管理 1.建立虚拟磁盘 dd 命令简介 dd命令用于转换和复制文件,不过它的复制不一样于cp。以前提到过关于 Linux 的很重要的一点,一切即文件,在 Linux 上,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero和/dev/random)都像普通文件同样,只要在各自的驱动程序中实现了对应的功能,dd 也能够读取自和/或写入到这些文件。这样,dd也能够用在备份硬件的引导扇区、获取必定数量的随机数据或者空数据等任务中。dd程序也能够在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。 dd的命令行语句与其余的 Linux 程序不一样,由于它的命令行选项格式为选项=值,而不是更标准的--选项 值或-选项=值。dd默认从标准输入中读取,并写入到标准输出中,但能够用选项if(input file,输入文件)和of(output file,输出文件)改变。 1、命令执行顺序的控制
1.顺序执行多条命令:简单的顺序执行你可使用;来完成 2.有选择的执行命令
2、管道
管道是什么,管道是一种通讯机制,一般用于进程间的通讯(也可经过socket进行网络通讯),它表现出来的形式就是将前面每个进程的输出(stdout)直接做为下一个进程的输入(stdin)。 管道又分为匿名管道和具名管道 1.试用 先试用一下管道,好比查看/etc目录下有哪些文件和目录,使用ls命令来查看:$ ls -al /etc 有太多内容,屏幕不能彻底显示,这时候可使用滚动条或快捷键滚动窗口来查看。不过这时候可使用管道:$ ls -al /etc | less 经过管道将前一个命令(ls)的输出做为下一个命令(less)的输入,而后就能够一行一行地看。 2.cut 命令,打印每一行的某一字段 打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录:$ cut /etc/passwd -d ':' -f 1,6
3.grep 命令,在文本中或 stdin 中查找匹配字符串
grep命令是很强大的,也是至关经常使用的一个命令,它结合正则表达式能够实现很复杂却很高效的匹配和查找 grep命令的通常形式为:grep [命令选项]... 用于匹配的表达式 [文件]...
4. wc 命令,简单小巧的计数工具 wc 命令用于统计并输出一个文件中行、单词和字节的数目,好比输出/etc/passwd文件的统计信息:$ wc /etc/passwd
5.sort 排序命令 默认为字典排序:$ cat /etc/passswd | sort 反转排序:$ cat /etc/passwd | sort -r 按特定字段排序:$ cat /etc/passwd | sort -t':' -k 3
6. uniq 去重命令 uniq命令能够用于过滤或者输出重复行。由于uniq命令只能去连续重复的行,不是全文去重
文本处理命令 1.tr 命令 tr 命令能够用来删除一段文本信息中的某些文字。或者将其进行转换。 使用方式: tr [option]...SET1 [SET2]
2.col 命令
col 命令能够将Tab换成对等数量的空格建,或反转这个操做。 使用方式:col [option]
.join命令
学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一块儿。 使用方式:join [option]... file1 file2
4.paste命令
paste这个命令与join 命令相似,它是在不对比数据的状况下,简单地将多个文件合并一块儿,以Tab隔开。 使用方式:paste [option] file...
数据流重定向 实验介绍 你可能对重定向这个概念感到些许陌生,但你应该在前面的课程中屡次见过>或>>操做了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,将本来输出到标准输出的数据重定向到一个文件中,由于标准输出(/dev/stdout)自己也是一个文件,咱们将命令输出导向另外一个文件天然也是没有任何问题的。
1、数据流重定向 下面咱们简单的回顾一下咱们前面常常用到的两个重定向操做:固然前面没有用到的<和<<操做也是没有问题的,如你理解的同样,它们的区别在于重定向的方向不一致而已,>表示是从左到右,<右到左。 1.简单的重定向
在更多了解 Linux 的重定向以前,咱们须要先知道一些基本的东西,前面咱们已经提到过 Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin(标准输入,对应于你在终端的输入),stdout(标准输出,对应于终端的输出),stderr(标准错误输出,对应于终端的输出)。 正则表达式基础 1、正则表达式 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在不少文本编辑器里,正则表达式一般被用来检索、替换那些符合某个模式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操做。例如,在 Perl 中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由 UNIX 中的工具软件(例如sed和grep)普及开的。正则表达式一般缩写成“regex”,单数有 regexp、regex,复数有 regexps、regexes、regexen。
2.基本语法: 选择 |竖直分隔符表示选择,例如"boy|girl"能够匹配"boy"或者"girl" 数量限定 数量限定除了咱们举例用的*,还有+加号,?问号,.点号,若是在一个模式中不加数量限定符则表示出现一次且仅出现一次: +表示前面的字符必须出现至少一次(1次或屡次),例如,"goo+gle",能够匹配"gooogle","goooogle"等; ?表示前面的字符最多出现一次(0次或1次),例如,"colou?r",能够匹配"color"或者"colour"; *星号表明前面的字符能够不出现,也能够出现一次或者屡次(0次、或1次、或屡次),例如,“0*42”能够匹配4二、04二、004二、00042等。 范围和优先级
()圆括号能够用来定义模式字符串的范围和优先级,这能够简单的理解为是否将括号内的模式串做为一个总体。例如,"gr(a|e)y"等价于"gray|grey",(这里体现了优先级,竖直分隔符用于选择a或者e而不是gra和ey),"(grand)?father"匹配father和grandfather(这里体验了范围,?将圆括号内容做为一个总体匹配)。
优先级 优先级为从上到下从左到右,依次下降:
2、grep模式匹配命令 2.使用正则表达式 使用基本正则表达式,BRE 使用扩展正则表达式,ERE 要经过grep使用扩展正则表达式须要加上-E参数,或使用egrep。 3、sed 流编辑器
sed工具在 man 手册里面的全名为"sed - stream editor for filtering and transforming text ",意即,用于过滤和转换文本的流编辑器。
在 Linux/UNIX 的世界里敢称为编辑器的工具,大都非等闲之辈,好比前面的"vi/vim(编辑器之神)","emacs(神的编辑器)","gedit"这些个编辑器。 sed 命令基本格式: sed [参数]... [执行命令] [输入文件]... # 形如:$ sed -i '1s/sad/happy/' test # 表示将test文件中第一行的"sad"替换为"happy" sed编辑器的执行命令(这里”执行“解释为名词) sed执行命令格式:[n1][,n2]command [n1][~step]command # 其中一些命令能够在后面加上做用范围,形如:$ sed -i 's/sad/happy/g' test # g表示全局范围 $ sed -i 's/sad/happy/4' test # 4表示指定行中的第四个匹配字符串
sed操做举例$ cp /etc/passwd ~ 打印指定行 # 打印2-5行 $ nl passwd | sed -n '2,5p' # 打印奇数行 $ nl passwd | sed -n '1~2p'
4、awk文本处理语言 1.AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一.其名称得自于它的创始人Alfred Aho(阿尔佛雷德·艾侯)、Peter Jay Weinberger(彼得·温伯格)和Brian Wilson Kernighan(布莱恩·柯林汉)姓氏的首个字母.AWK程序设计语言,三位建立者已将它正式定义为“样式扫描和处理语言”。它容许您建立简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其余的功能。最简单地说,AWK是一种用于处理文本的编程语言工具。 2.awk的一些基础概念 awk全部的操做都是基于pattern(模式)—action(动做)对来完成的。awk处理文本的方式,是将文本分割成一些“字段”,而后再对这些字段进行处理,默认状况下,awk以空格做为一个字段的分割符,不过这不是固定了,你能够任意指定分隔符,下面将告诉你如何作到这一点。 3.awk命令基本格式:awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...] 4.awk操做体验:print打印的非变量内容都须要用""一对引号包围起来。 5.awk经常使用的内置变量
1、Linux 上的软件安装 2. apt 包管理工具介绍 APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT能够自动下载,配置,安装二进制或者源代码格式的软件包,所以简化了Unix系统上管理软件的过程。 3.apt-get apt-get使用各用于处理apt包的公用程序集,咱们能够用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的经常使用的一些工具:
4.安装软件包 apt-get install <软件包名> 从新安装:$ sudo apt-get --reinstall install <软件包名> 5.软件升级 # 更新软件源$ sudo apt-get update # 升级没有依赖问题的软件包$ sudo apt-get upgrade # 升级并解决依赖关系$ sudo apt-get dist-upgrade
6.卸载软件 sudo apt-get remove<软件包名> 7.软件搜索 sudo apt-cache search softname1 softname2 softname3……
3、使用 dpkg 从本地磁盘安装 deb 软件包 咱们常常能够在网络上简单以deb形式打包的软件包,就须要使用dpkg命令来安装。 dpkg经常使用参数介绍:
2.使用dpkg安装deb软件包 3.查看已安装软件包的安装目录 使用dpkg -L查看deb包目录信息:$ sudo dpkg -L emacs 做业:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7、遇到的问题及解决 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vim 使用有困难,不知道怎么输入和结束 dapt安装不会使用
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8、其余 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
此次任务的量总的来讲有点大,我用了足足两天的时间来完成这十二个实验。有些内容在word上,因为时间限制缘由没有将其粘在博客园上。之因此使用word是由于,若是直接在博客园上操做,一旦网断了,数据可能就所以丢失了。在这十几个实验中,有些内容含有大量术语,难以理解。可是,做业中有许多有趣的东西,又让我对代码增添了一点小兴趣。是我在繁杂的实验过程当中的一点小安慰。 |