信息安全系统设计基础——第一周学习过程记录与总结体会
第一周学习过程记录与总结体会
第1节 Linux系统简介
1.Linux操作系统:即内核和系统调用两层
2.Linux与Windows的不同:
(1)免费与收费
(2)软件与支持
(3)安全性
(4)使用习惯
(5)可定制性
(6)应用范畴
(7)各自缺乏的
3.如何学习Linux
(1)明确态度,形成良好学习心态
(2)重视基础,从头学习
第2节 基本概念及操作
1.桌面环境介绍
通过内核—服务器(X.org) —客户端(X.client)实现完整的桌面环境,与Windows不同。
2.桌面环境的使用
3.Linux终端
(1)Terminal终端
1)通过shell(命令解析器)与系统进行交互
终端模拟程序terminal,在一个窗口实现用户输入和显示输出
(注意终端与控制台不同)
2)终端本质上对应Linux的/dev/tty设备,Linux 默认提供了 6 个纯命令行界面的 terminal来让用户登录,在物理机系统上你可以通过使用[Ctrl]+
[Alt]+[F1]~[F6]进行切换。
(2)Shell
1)shell是指提供给使用者使用界面的软件,可以接受用户输入命令的程序
隐藏了操作系统底层的细节
(3)命令行操作体验
(4)tab键:补全命令、补全目录、补全命令行参数
control+c 强行终止当前程序
常用快捷键
使用方向键的上键恢复之前输入的命令
通配符是一种特殊语句,主要有星号(*,代表零或者多个字符)和问号(?,匹配任意一个字符),用来对对字符串进行模糊匹配(比如文件名,参数名)。
4.作业
1)命令banner
2)命令toilet
3)命令figlet
第3节 用户及文件权限管理
1.Linux用户管理
who命令
2.创建用户
root账户是Linux操作系统中的超级管理员用户,可以新建、添加用户。
创建用户需要root权限,这需要用到sudo命令
这个命令可以为系统添加用户,并默认为用户创建home目录
使用创建的用户名登录查看
3.用户组
1)通过 groups 命令得知自己属于哪个用户组
冒号之前表示用户,之后表示所属用户组,每次新建用户不指定用户组时,会默认自动创建用户名的用户组,在sudo用户组里可以使用sudo命令获得root权限
2)查看etc/group/文件
cat命令用于读取指定文件内容并打印到终端,sort将读取文件进行字典排序再输出
3)将其它用户加入用户组,获取root权限
4)删除用户
4.Linux文件权限
1)文件类型
2)文件权限
cat<file name>读取某文件内容
使用-AL命令,-dL 命令,-AsSh命令
3)变更文件所有者
4)修改文件权限
作业:
第4节 Linux目录结构及文件基本操作
1.FHS标准:定义系统中每个区域的用途,所需要的最小构成文件和目录
2.目录路径
绝对路径:就是以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
相对路径:也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin
3.文件基本操作
新建空白文件,新建目录
复制文件使用cp命令
复制目录需加上-r参数
删除文件或目录使用rm命令,使用-f参数强制删除
移动文件与文件重命名,使用mv命令
批量重命名,使用rename命令
使用cat,tac,nl命令查看文件,-n 添加行号
nl命令,添加行号并打印
使用more或less命令分页查看
使用head和tail命令查看文件,分别查看头几行和尾几行,加上-n参数紧跟数,可以查看指定行数
使用file命令查看文件类型
使用vim编辑器
作业:
5.环境变量与文件查找
1)变量
变量就是计算机中用于记录一个值的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量。变量的作用域即变量的有效范围(比如一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量一般。
使用declare命令创建一个变量名为 tmp 的变量
使用=号赋值运算符为变量 tmp 赋值为 shiyanlou
读取变量的值,使用echo命令和$符号
2)环境变量
环境变量就是作用域比自定义变量要大,如Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,处理创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。Shell 程序也作为一个进程运行在操作系统之上,而我们在 Shell中运行的大部分命令都将以 Shell 的子进程的方式运行。
3)命令的查找路径与顺序
4)添加自定义路径到“PATH”环境变量
5)修改和删除已有变量
可以使用unset命令删除一个环境变量
6)如何让环境变量立即生效
使用source命令来让其立即生效
7)搜索文件
whereis简单快速,which小而精,find精而戏,locate快而全
作业:
6.文件打包与压缩
第一行命令中,-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用du命令查看打包后文件的大小
使用-e参数可以创建加密压缩包
3.rar打包压缩命令
4.tar打包工具
作业:
7.文件系统操作与磁盘管理
1)查看磁盘和目录容量
使用 df 命令查看磁盘的容量
使用 du 命令查看目录的容量
-d参数指定查看目录的深度
2)创建虚拟磁盘
dd命令用于转换和复制文件,不过它的复制不同于cp。dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据或者空数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。
dd的命令行语句与其他的 Linux 程序不同,因为它的命令行选项格式为选项=值,而不是更标准的--选项 值或-选项=值。dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。
使用 dd 命令创建虚拟镜像文件
使用 mkfs 命令格式化磁盘
使用 mount 命令挂载磁盘到目录树
使用 umount 命令卸载已挂载磁盘
使用 fdisk 为磁盘分区
使用 losetup 命令建立镜像与回环设备的关联
作业:
8.命令执行顺序控制与管道
1)
顺序执行多条命令
通常情况下,我们每次只能在终端输入一条命令,按下回车执行,执行完成后,我们再输入第二条命令,然后再按回车执行
2)有选择的执行命令
我们使用which来查找是否安装某个命令,如果找到就执行该命令,否则什么也不做
3)管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)
4)cut 命令,打印每一行的某一字段
grep 命令,在文本中或 stdin 中查找匹配字符串
wc 命令,简单小巧的计数工具
wc 命令用于统计并输出一个文件中行、单词和字节的数目,比如输出/etc/passwd文件的统计信息
sort 排序命令
这个命令前面我们也是用过多次,功能很简单就是将输入按照一定方式排序,然后再输出,它支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序。
uniq 去重命令
uniq命令可以用于过滤或者输出重复行
9.简单的文本处理
1)常用文本处理命令
tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换
2)col 命令
col 命令可以将Tab换成对等数量的空格建,或反转这个操作
3)join命令
学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一起
4)paste命令
paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开
作业
10.数据流重定向
1)简单的重定向
2)标准错误重定向
重定向标准输出到文件,这是一个很实用的操作,另一个很实用的操作是将标准错误重定向,标准输出和标准错误都被指向伪终端的屏幕显示,所以我们经常看到的一个命令的输出通常是同时包含了标准输出和标准错误的结果的
注意你应该在输出重定向文件描述符前加上&,否则shell会当做重定向到一个文件名为1的文件中
3)使用tee命令同时重定向到多个文件
经常你可能还有这样的需求,除了将需要将输出重定向到文件之外也需要将信息打印在终端,那么你可以使用tee命令来实现
4)永久重定向
使用exec命令实现“永久”重定向。exec命令的作用是使用指定的命令替换当前的 Shell,及使用一个进程替换当前进程,或者指定新的重定向
5)创建输出文件描述符
默认在 Shell 中可以有9个打开的文件描述符,上面我们使用了也是它默认提供的0,1,2号文件描述符,另外我们还可以使用3-8的文件描述符,只是它们默认没有打开而已,你可以使用下面命令查看当前 Shell 进程中打开的文件描述符
6)关闭文件描述符
如上面我们打开的3号文件描述符,可以使用如下操作将它关闭:
$ exec 3>&-
$ cd /dev/fd;ls -Al;cd -
7)完全屏蔽命令的输出
在类 UNIX 系统中,/dev/null,或称空设备,是一个特殊的设备文件,它通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成。读取它则会立即得到一个EOF。我们可以利用设个/dev/null屏蔽命令的输出。
8)使用 xargs 分割参数列表
xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题
作业
11.正则表达式基础
1)正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法,计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串
2)基本语法:一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串
选择
|竖直分隔符表示选择,例如"boy|girl"可以匹配"boy"或者"girl"
数量限定
数量限定除了我们举例用的*,还有+加号,?问号,.点号,如果在一个模式中不加数量限定符则表示出现一次且仅出现一次
范围和优先级
()圆括号可以用来定义模式字符串的范围和优先级,这可以简单的理解为是否将括号内的模式串作为一个整体
3)grep模式匹配命令
grep命令用于打印输出文本中匹配的模式串,它使用正则表达式作为模式匹配的条件
4)sed 流编辑器
sed工具在 man 手册里面的全名为"sed - stream editor for filtering and transforming text ",意即,用于过滤和转换文本的流编辑器
5)AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一
它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。最简单地说,AWK是一种用于处理文本的编程语言工具
12.Linux下软件安装
Linux 上的软件安装
通常 Linux 上的软件安装主要有三种方式:
在线安装
从磁盘安装deb软件包
从二进制软件包安装
从源代码编译安装
1)apt包管理工具介绍
APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。这个包管理器包含以 apt- 开头的的多个工具,如 apt-get apt-cache apt-cdrom 等,在Debian系列的发行版中使用
apt-get
apt-get使用各用于处理apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等
2)使用 dpkg 从本地磁盘安装 deb 软件包
先使用apt-get加上-d参数只下载不安装,下载emacs编辑器的deb包,下载完成后,我们可以查看/var/cache/apt/archives/目录下的内容,我们将第一个deb拷贝到home目录下,并使用dpkg安装
3)查看已安装软件包的安装目录
使用dpkg -L查看deb包目录信息
4)从二进制包安装
二进制包的安装比较简单,我们需要做的只是将从网络上下载的二进制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录添加进PATH环境变量即可
作业: