标签:
信息安全系统设计基础第一周学习总结 20135315 宋宸宁
实验部分知识点总结
实验一
1、操作系统作为连接应用程序和硬件的通道,主要包括系统调用和内核,见下图。
Linux 也就是系统调用和内核那两层,操作系统还包含一些在其上运行的应用程序,比如文本编辑器,浏览器,电子邮件。
2、Linux 本身只是操作系统的内核。内核实现了多任务和硬件管理。必须程序有:命令行解释器(shell),它用于用户交互和编写 shell 脚本(.bat文件)。
3、1991 年,芬兰赫尔辛基大学的研究生 Linus Torvalds 基于 gcc、bash 开发了针对 386 机器的 Linux 内核。
4、Windows 没有的(linux有的):稳定的系统;安全性和漏洞的快速修补;多用户;用户和用户组的规划;相对较少的系统资源占用;可定制裁剪,移植到嵌入式平台(如安卓设备);可选择的多种图形用户界面(如 GNOME,KDE)
实验二
1、图形界面下接受用户输入和显示输出,依靠Linux 系统提供的终端模拟器的程序(Terminal)。常见的终端模拟器: gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm,这里所说的终端(Terminal)和控制台(Console)是有区别的。
2、Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的,Linux 默认提供了 6 个纯命令行界面的 “terminal”(virtual consoles)来让用户登录,在物理机系统上你可以通过使用[Ctrl]
+[Alt]
+[F1]~[F6]
进行切换;在线实验环境中,按下[Ctrl]
+[Alt]
+[F7]
,可以从一个终端切换回图形界面。
3、shell:指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe。普通意义上的 Shell 是接受用户输入命令的程序,它隐藏了操作系统底层的细节。同样的 Unix/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。Unix/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。在Windows 操作系统下,可能有些用户从来都不会直接的使用 Shell,然而在 UNIX 系列操作系统下,Shell 仍然是控制系统启动、X11 启动和很多其他实用工具的脚本解释程序。在 UNIX/Linux 中比较流行的常见的 Shell 有 bash,zsh,ksh,csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),但我们的环境中使用的分别是zsh 和 xfce。
4、常用快捷键
按键 | 作用 |
---|---|
|
进行命令补全 |
Ctrl+c |
强行终止当前程序 |
Ctrl+d |
键盘输入结束或退出终端 |
Ctrl+s |
暂定当前程序,暂停后按下任意键恢复运行 |
Ctrl+z |
将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a |
将光标移至输入行头,相当于Home 键 |
Ctrl+e |
将光标移至输入行末,相当于End 键 |
Ctrl+k |
删除从光标所在位置到行末 |
Alt+Backspace |
向前删除一个单词 |
Shift+PgUp |
将终端显示向上滚动 |
Shift+PgDn |
将终端显示向下滚动 |
键盘上的方向 |
历史输入命令 |
5、通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(比如文件名,参数名)。终端里面输入的通配符是由 Shell 处理的,它只会出现在命令的“参数值”里。当 Shell 在“参数值”中遇到了通配符时,Shell 会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符 实际上就是一种 Shell 实现的路径扩展功能。在通配符被处理后, Shell 会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。
Shell 常用通配符:
字符 | 含义 |
---|---|
* |
匹配 0 或多个字符 |
? |
匹配任意一个字符 |
[list] |
匹配 list 中的任意单一字符 |
[!list] |
匹配 除list 中的任意单一字符以外的字符 |
[c1-c2] |
匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,...} |
匹配 sring1 或 string2 (或更多)其一字符串 |
{c2..c2} |
匹配 c1-c2 中全部字符 如{1..10} |
6、 学会在命令行中获取帮助
man
命令:用户可以通过执行 man 命令调用手册页。$ man <command_name>
手册通常被分为8个区段,安排如下:
区段 | 说明 |
---|---|
1 | 一般命令 |
2 | 系统调用 |
3 | 库函数,涵盖了C标准函数库 |
4 | 特殊文件(通常是/dev中的设备)和驱动程序 |
5 | 文件格式和约定 |
6 | 游戏和屏保 |
7 | 杂项 |
8 | 系统管理命令和守护进程 |
要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:$ man 3 printf
man 中使用搜索,/<你要搜索的关键字>
,使用n
键切换到下一个关键字所在处,shift+n
为上一个关键字所在处。使用Space
(空格键)翻页,Enter
(回车键)向下滚动一行,或者使用j
,k
(vim编辑器的移动键)进行向前向后滚动一行。按下h
键为显示使用帮助(因为man使用less作为阅读器,实为less
工具的帮助),按下q
退出。详获取细的帮助,使用info
命令,快速查看具体参数的作用,使用--help
参数。
实验二作业
1、banner安装
2、banner显示
规定格式显示:‘-w‘参数指定打印宽度,因为我们的环境在屏幕中显示比较小,必须要加上宽度限制。
3、toilet的安装及操作
安装过程:
显示过程:
4、figlet的安装与操作
figlet安装:
figlet操作:
实验三 用户及文件权限管理
实验介绍:Linux 中创建、删除用户,及用户组等操作;Linux 中的文件权限设置。
1、查看用户:
第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami
即可);第二列的 pts/0
中 pts
表示伪终端(伪终端就是当你在图形用户界面使用 /dev/tty7
时每打开一个终端就会产生一个伪终端,所谓伪是相对于 /dev/tty
设备而言的),pts/0
后面那个数字就表示打开的伪终端序号;第三列则表示当前伪终端的启动时间。
who
命令其它常用参数
参数 | 说明 |
---|---|
-a |
打印能打印的全部 |
-d |
打印死掉的进程 |
-m |
同am i ,mom likes |
-q |
打印当前登录用户数及用户名 |
-u |
打印当前登录用户登录信息 |
-r |
打印运行等级 |
2、创建用户
root权限:是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,可以操作所有对象。
sudo
命令两个大前提:一是你要知道当前登录用户的密码,二是当前用户必须在 sudo
用户组。
默认为新用户创建 home 目录:$ ls /home
切换登录用户:$ su -l lilei
3、用户组
(1)groups命令: $ groups shiyanlou
其中冒号之前表示用户,后面表示该用户所属的用户组。每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。默认情况下在sudo用户组里的可以使用sudo命令获得root权限。
(2)查看/etc/group
文件: $ cat /etc/group | sort
cat
命令用于读取指定文件的内容并打印到终端输出; | sort
表示将读取的文本进行一个字典排序再输出
(3)etc/group
文件格式说明
/etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录。
格式如下:group_name:password:GID:user_list
password 字段为 ‘x‘,表示密码不可见而已。
将其它用户加入 sudo 用户组,默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组。
$ su -l scn $ sudo ls
使用 usermod
命令为用户添加用户组,使用该命令需有 root 权限,可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。用 shiyanlou 用户执行 sudo 命令将 scn 添加到 sudo 用户组,让它也可以使用 sudo 命令获得 root 权限
$ su shiyanlou
$ groups scn
$ sudo usermod -G sudo scn
$ groups scn
4、删除用户
1、查看文件权限
(1)ls
命令:列出并显示当前目录下的文件。
使用较长格式列出文件:$ ls -l
软链接等同于 Windows 上的快捷方式;
设备文件( /dev
目录下有各种设备文件,大都跟具体的硬件设备相关)
(2)文件权限:
读权限,表示你可以使用 cat <file name>
之类的命令来读取某个文件的内容;
写权限,表示你可以编辑和修改某个文件;
执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的 ‘exe‘ 后缀的文件,不过 Linux 上不是通过文件后缀名来区分文件的类型。
一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。
所属用户组权限,是指你所在的用户组中的所有其它用户对于该文件的权限。
(3)连接数:链接到该文件所在的 inode 结点的文件名数目。
(4)文件大小:以 inode 结点大小为单位来表示的文件大小, ls 加上 -lh
参数:更直观的查看文件的大小。
(5)ls
命令的常用用法:显示除了 ‘.‘(当前目录),‘..‘ 上一级目录之外的所有包含隐藏文件(Linux 下以 ‘.‘ 开头的文件为隐藏文件)
$ ls -A:
$ ls -Al:
$ ls -dl <目录名>:
查看某一个目录的完整属性,而不是显示目录里面的文件属性
$ ls -AsSh:
显示所有文件大小
其中小 s 为显示文件大小,大 S 为按文件大小排序。
2、变更文件所有者
使用以下命令变更文件所有者为 shiyanlou :
$ cd /home/scn
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ cp iphone6 /home/shiyanlou
3、修改文件权限
方式一:二进制数字表示
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 "rwx",也就是一个 ‘7‘ ,要将文件“iphone6”的权限改为只有我自己可以用:
方式二:加减赋值操作
‘g‘‘o‘还有‘u‘,分别表示group,others,user,‘+‘,‘-‘ 就分别表示增加和去掉相应的权限。
实验三作业
1、添加一个用户loutest
,使用sudo
创建文件/opt/forloutest
,设置成用户loutest
可以读写。截图并把操作过程写入实验报告。
实验三遇到的问题及解决
1、出现如图所示问题
原因及解决办法:
创建用户需要 root 权限,要用到 sudo
这个命令。该命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo
用户组。而由于我的实验三实验是在两天中完成的,之前创建的用户,随着虚拟机的关闭而消失,所以会出现这个故障,需要先重新创建用户才能解决。
2、问题如下图
原因及解决办法:
实验四 Linux 目录结构及文件基本操作
实验介绍
Linux 的文件组织目录结构; 相对路径和绝对路径;对文件的移动、复制、重命名、编辑等操作。
Linux 的目录与 Windows 的目录的区别:实现机制完全不同,目录与存储介质的关系不同。
目录与存储介质(磁盘,内存,DVD 等)的关系不同体现在,以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区的来实现文件管理。然而 UNIX/Linux 恰好相反,UNIX 是以目录为主的,Linux 也继承了这一优良特性。 Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。举例来说,可以利用网络文件系统(Network File System,NFS)服务器载入某特定目录等。
FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
执行如下命令:$ tree /
目录定义为四种交互作用的形态,如下表所示:
cd
命令:可以切换目录, .
表示当前目录,..
表示上一级目录(使用 ls -a
命令查看隐藏文件), -
表示上一次所在目录,~
通常表示当前用户的"home"目录。使用 pwd
命令可以获取当前所在路径(绝对路径)。
进入上一级目录:$ cd ..
进入你的“home”目录:$ cd ~
# 或者 cd /home/<你的用户名>
使用 pwd
获取当前路径:$ pwd
关于绝对路径,简单地说就是以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin
,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 .
为起点,以你所要到的目录为终点,表现形式如: usr/local/bin
(这里假设你当前目录为根目录)。 usr
目录为 /
目录下的子目录,是可以省略这个 .
的;如果是当前目录的上一级目录,则需要使用 ..
,比如你当前目录为“home”目录,根目录就应该表示为 ../../
,表示上一级目录("home"目录)的上一级目录("/"目录)。
下面我们以你的"home"目录为起点,分别以绝对路径和相对路径的方式进入/usr/local/bin
目录:
# 绝对路径
$ cd /usr/local/bin
# 相对路径
$ cd ../../usr/local/bin
提示:在进行目录切换的过程中请多使用 Tab
键自动补全,可避免输入错误,连续按两次Tab
可以显示全部候选结果
touch
命令,主要是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个为指定文件名的空白文件(不会覆盖已有同名文件),当然你也可以同时指定该文件的时间戳。
创建名为 test 的空白文件,因为在其他目录没有权限,所以需要先 cd ~
切换回用户的/home/shiyanlou
目录:$ cd ~
$ touch test
使用 mkdir
(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性
创建名为"mydir"的空目录:
$ mkdir mydir
使用 -p
参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在有时候安装软件,配置安装路径时非常有用):
$ mkdir -p father/son/grandson
后面的目录路径,以绝对路径的方式表示也是可以的。
使用cp
(copy)命令复制一个文件或目录到指定目录。将之前创建的"test"文件复制到"/home/shiyanlou/father/son/grandson"目录中:
$ cp test father/son/grandson
如果直接使用cp
命令,复制一个目录的话,会出现错误。
要成功复制目录需要加上-r
或者-R
参数,表示递归复制,就是说有点“株连九族”的意思:
$ cp -r father family
使用rm
(remove files or directories)命令,删除一个文件或目录:
$ rm test
有时候你会遇到想要删除一些为只读权限的文件,直接使用rm
删除会显示一个提示,如下:
你如果想忽略这提示,直接删除文件,可以使用-f
参数强制删除:
$ rm -f test
跟复制目录一样,要删除一个目录,也需要加上-r
或-R
参数:
$ rm -r family
使用mv
(move or rename files)命令,移动文件(剪切)。将文件"file1"移动到"Documents"目录mv 源目录文件 目的目录
:
$ mv file1 Documents
将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名
:
$ mv file1 myfile
要实现批量重命名,mv 命令就有点力不从心了,我们可以使用一个看起来更专业的命令rename
来实现。不过它是要用 perl 正则表达式来作为参数,关于正则表达式我们要在后面才会介绍到,这里只做演示,你只要记得这个rename
命令可以批量重命名就好了,以后再重新学习也不会有任何问题,毕竟你已经掌握了一个更常用的mv
命令。
# 使用通配符批量创建 5 个文件
$ touch file{1..5}.txt
# 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件
$ rename ‘s/\.txt/\.c/‘ *.txt
# 批量将这 5 个文件,文件名改为大写
$ rename ‘y/a-z/A-Z/‘ *.c
简单解释下上面的命令,rename
是先使用第二个参数的通配符匹配所有后缀为.txt
的文件,然后使用第一个参数提供的正则表达式将匹配的这些文件的.txt
后缀替换为.c
,这一点在我们后面学习了sed
命令后,相信你会更好的理解。
cat
,tac
和nl
命令查看文件这两个命令都是用来打印文件内容到标准输出(终端),其中cat
为正序显示,tac
倒序显示。
标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
比如我们要查看之前从"/etc"目录下拷贝来的passwd
文件:
$ cat passwd
可以加上-n
参数显示行号:
$ cat -n passwd
nl
命令,添加行号并打印,这是个比cat -n
更专业的行号打印命令。
这里简单列举它的常用的几个参数:
-b : 指定添加行号的方式,主要有两种:
-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
-n ln:在行号字段最左端显示
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)
你会发现使用这几个命令,默认的终端窗口大小,一屏显示不完文本的内容,得用鼠标拖动滚动条或者滑动滚轮才能继续往下翻页,要是可以直接使用键盘操作翻页就好了,那么你就可以使用下面要介绍的命令。
more
和less
命令分页查看文件如果说上面的 cat 是用来快速查看一个文件内容的,那么这个more
和less
就是天生用来"阅读"一个文件的内容的,比如说"man"手册内部就是使用的 less 来显示内容。其中more
命令比较简单,只能向一个方向滚动,而"less"为基于"more"和"vi"(一个强大的编辑器,我们有单独的课程来让你学习)开发,功能更强大。less 的使用基本和 more 一致,具体使用请查看 man 手册,这里只介绍 more 命令的使用。
使用more
工具打开passwd
文件:
$ more passwd
打开后默认只显示一屏内容,终端底部显示当前阅读的进度(百分比)。可以使用Enter
键向下滚动一行,使用Space
键向下滚动一屏,按下h
显示帮助,q
退出。
head
和tail
命令查看文件这两个命令那些性子比较急的人应该会比较喜欢,因为它们一个是只查看的头几行(默认为10行,不足10行则显示全部)和尾几行。还是拿 passwd 文件举例,比如当我们想要查看最近新增加的用户,那么我们可以查看这个/etc/passwd
文件,不过我们前面也看到了,这个文件里面一大堆乱糟糟的东西,看起来实在费神啊。这里想到系统新增加一个用户,应该会将用户的信息添加到passwd文件的最后,那么这时候我们就可以使用tail
命令了:
$ tail /etc/passwd
甚至更直接的只看一行, 加上-n
参数,后面紧跟行数:
$ tail -n 1 /etc/passwd
关于tail
命令,不得不提的还有它一个很牛的参数-f
,这个参数可以实现不停地读取某个文件的内容并显示。这可让我们动态查看日志起到实时监视的作用,不过我不会在这门基础课程中介绍它的更多细节,感兴趣的用户可以自己去了解。
前面我提到过,在 Linux 下面文件的类型不是根据文件后缀来判断的,我们通常使用file
命令可以查看文件的类型:
$ file /bin/ls
这表示这是一个可执行文件,运行在 64 位平台,并使用了动态链接文件(共享库)。
在 Linux 下面编辑文件通常我们会直接使用专门的命令行编辑器比如(emacs,vim,nano),由于涉及 Linux 上的编辑器的内容比较多,且非常重要,故我们有一门单独的基础课专门介绍这其中一个编辑器(vim)。在这里强烈希望正在学习这门 Linux 基础课的你先在这里暂停一下,先去学习vim 编辑器的使用(至少掌握基本的操作)然后再继续本课程后面的内容,因为后面的内容会假设你已经学会了 vim 编辑器的使用。如果你想更加快速的入门,你可以直接使用 Linux 内部的 vim 学习教程,输入如下命令即可开始:
实验五 环境变量与文件查找
实验介绍
本节实验介绍环境变量的作用与用法,及几种搜索文件的方法。学会这些技巧高效地使用 Linux。
1、
2、
1、变量
declare
命令:创建变量 如:$ declare tmp
=
号赋值运算符:为变量赋值 如:$ tmp=shiyanlou
echo
命令和$
符号:读取变量的值 如:$ echo $tmp
注意:$符号用于表示引用一个变量的值,初学者经常会忘记输入;关于变量名,并不是任何形式的变量名都是可用的,变量名只能是英文字母,数字或者下划线,且不能以数字作为开头。
通常我们会涉及到的环境变量有三种:
也有三个与上述三种环境变量相关的命令,set
,env
,export
。这三个命令很相似,都可以用于打印相关环境变量,区别在于涉及的是不同范围的环境变量,详见下表:
命令 | 说明 |
---|---|
set |
显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量 |
env |
显示与当前用户相关的环境变量,还可以让命令在指定环境中运行 |
export |
显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量 |
关于环境变量,可以简单的理解成在当前进程的子进程是否有效,有效则为环境变量,否则不是。
使用vimdiff
工具比较一下它们之间的差别:上述操作将命令输出通过管道|
使用sort
命令排序,再重定向到对象文本文件中。
export
命令:先在 Shell 中设置一个变量temp=shiyanlou
,然后再新创建一个子 Shell 查看temp
变量的值:
注意:为了与普通变量区分,通常我们习惯将环境变量名设为大写
3、命令的查找路径与顺序
Shell 通过环境变量PATH
来进行搜索的,PATH
里面保存了Shell中执行命令的搜索路径。
查看PATH
环境变量的内容:
实验六 文件打包与压缩
实验介绍
Linux 上常用的 压缩/解压 工具,介绍了 zip,rar,tar 的使用。
1、
2、
实验七 文件系统操作与磁盘管理
实验介绍
本节实验的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习 Linux 和实验楼后续其他课程的过程中有极大帮助。
1、
2、
实验八 命令执行顺序控制与管道
实验介绍
顺序执行、选择执行、管道、cut 命令、grep 命令、wc 命令、sort 命令等,高效率使用 Linux 的技巧。
1、
2、
实验九 简单的文本处理
实验介绍
这一节我们将介绍这几个命令tr
(注意不是tar),col
,join
,paste
。实际这一节是上一节关于能实现管道操作的命令的延续,所以我们依然将结合管道来熟悉这些命令的使用。
1、
2、
实验十 数据流重定向
实验介绍
你可能对重定向这个概念感到些许陌生,但你应该在前面的课程中多次见过>
或>>
操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout
)本身也是一个文件,我们将命令输出导向另一个文件自然也是没有任何问题的。
实验十一 正则表达式基础
实验介绍
虽然我们这一节的标题是正则表达式,但实际这一节实验只是介绍grep
,sed
,awk
这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式)。正则表达式本身的内容很多,要把它说明清楚需要单独一门课程来实现,不过我们这一节中涉及到的相关内容通常也能够满足很多情况下的需求了。
1、
2、
实验十二 Linux 下软件安装
实验介绍
介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用。
标签:
原文地址:http://www.cnblogs.com/java-stx/p/4822277.html