20145223 《信息安全系统设计基础》第1周学习总结
教材学习内容总结
一、重要快捷键
(1)[Tab]:使用Tab键来进行命令补全,(输入某个命令开头的一部分然后按下Tab键就可以得到提示或者帮助完成),除此之外还有补全目录,补全命令参数
(2)常用快捷键:##
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动
(3)键盘上的方向上键:恢复你之前输入过的命令
(4)Shell 常用通配符:##
字符 含义
* 匹配 0 或多个字符
? 匹配任意一个字符
[list] 匹配 list 中的任意单一字符
[!list] 匹配 除list 中的任意单一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
{string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串
{c2..c2} 匹配 c1-c2 中全部字符 如{1..10}
二、需要掌握的命令
(1)Linux命令
格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数
(2)man命令
man是manul的缩写,我们可以通过man man
来查看man的帮助:
用man printf
、man 1 printf
、man 3 printf
说明这三者的区别
```man printf``:是普通的Linux命令
man 1 printf
:是系统调用,操作系统的提供的服务接口
man 3 printf
:是库函数, C语言中的函数
man -k
选项结合grep命令和管道的应用:
(3)cheat命令
cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能:
cheat find
:
(4)find命令————参考博客Linux find用法示例
find
查找一个文件在系统中的什么位置,locate是神速版本的find
命令格式:·find path -option [ -print ] [ -exec -ok command ] {} ;
各项参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
常用find用法:
-name filename #查找名为filename的文件
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
示例:用find
查找一个名为"a"的txt文件:
(5)locate命令
·locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊 字 元(如””或”?”等)来指定范本样式,如指定范本为kcpaner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。
·locate指令和find找寻档案的功能类似,但查询速度会较快。
·locate 有一个十分有用的选项 -r,它可以让你在搜索文件时使用正则表达式。
用法举例:
·~$ locate /etc/sh
---查找etc目录下所有以sh开头的文件
·$ locate -n 5 /soft/android
--- 查看soft目录下以android开头的文件,限定只显示5个,使用 -n
(6)grep命令(功能:可以对文件全文检索)————参考博客Linux grep用法示例
执行cheat grep
:
格式:grep [options]
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
(7)whereis命令
whereis,which告诉你使用的命令工具装在什么地方,比如用whereis firefox
、which firefox
这两个命令查找firefox
所在的目录:
(8)apt-cache命令
具体用法:可以在使用apt-get install
安装一个程序时先找找软件源的库里有没有这个程序,比如这周我们所需要安装的ddd
调试工具:
Linux命令练习:
banner命令:
用户级文件权限管理:
·添加一个用户loutest
在 Linux 里面如何知道自己属于哪些用户组
·方法一:使用groups命令:
·方法二:查看/etc/group文件:
删除用户:
变更文件所有者:
·建立一个新用户test
:
·test
建立a
文件,切换回coast
用户进行操作:
·最后结果:
修改文件权限:
Linux 目录结构
因为我们的环境的原因,每次新启动实验会清除系统恢复初始状态,所以需要手动更新软件包索引,以便我们安装时能找到相应软件包的源
sudo apt-get update
sudo apt-get install tree:
进入上一级目录:
$ cd ..
进入你的“home”目录:
$ cd ~
·或者 cd /home/<你的用户名>
使用 pwd 获取当前路径:
$ pwd
下面我们以你的"home"目录为起点,分别以绝对路径和相对路径的方式进入 /usr/local/bin 目录:
# 绝对路径
$ cd /usr/local/bin
# 相对路径
$ cd ../../usr/local/bin
Linux 文件的基本操作
·新建空白文件和新建目录:
复制文件:
删除文件:
移动文件与文件重命名:
查看文件
·使用cat,tac和nl命令查看文件
·比如我们要查看之前从"/etc"目录下拷贝来的passwd文件:
$ cat passwd
可以加上-n参数显示行号:
$ cat -n passwd
环境变量与文件查找
召唤“数字雨”:
文件打包与压缩
zip压缩打包程序:
使用unzip命令解压缩zip文件到当前文件夹:
一个有趣的作业:
简单文件系统操作
df 命令查看磁盘的容量:
使用 du 命令查看目录的容量:
召唤眼睛:
作业:
简单的文本处理
1.tr 命令 tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。
使用方式:
tr [option]...SET1 [SET2]
2.col 命令 col 命令可以将Tab换成对等数量的空格建,或反转这个操作。
使用方式:
col [option]
3.join命令 学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一起。
使用方式:
join [option]... file1 file2
作业:Space Invaders:太空侵略者
作业12:
教材学习中的问题和解决过程
·问题1:在安装cheat时系统报错“权限不够”:
解决过程1:在命令前添加sudo
·问题2:在linux系统中安装cheat 时,需要通过git
来进行下载,如果之前没有下载git
则无法正常进行安装:
·解决过程2:利用apt-get install
安装git
·问题3:在删除用户时遇到的问题:
·解决过程3:需要进行用户的切换,当前用户不能为需要进行删除的用户
思想感悟
在经过了这一周的学习后,我从最开始的对Linux系统的一无所知,到现在初步能够通过一些简单的命令来进行系统的操作,我感觉自己的收获还是很大的。虽然自己对Linux系统知识的掌握还不是很全面,但是经过了这段时间的摸索和学习,我逐渐有了学好它的信心。知识是一步一步积累下来的,不能急于求成,所以要在开始就打好基础,这样后面的学习才会更加顺利。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4000行 | 20篇 | 300小时 | |
第一周 | 0/0 | 1/2 | 20/20 |