博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20145223《信息安全系统设计基础》第1周学习总结
阅读量:7122 次
发布时间:2019-06-28

本文共 4337 字,大约阅读时间需要 14 分钟。

20145223 《信息安全系统设计基础》第1周学习总结

教材学习内容总结

一、重要快捷键

(1)[Tab]:使用Tab键来进行命令补全,(输入某个命令开头的一部分然后按下Tab键就可以得到提示或者帮助完成),除此之外还有补全目录,补全命令参数

(2)常用快捷键:

Ctrl+d  键盘输入结束或退出终端Ctrl+s  暂定当前程序,暂停后按下任意键恢复运行Ctrl+z  将当前程序放到后台运行,恢复到前台为命令fgCtrl+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的帮助:

890352-20160918155442938-1392999083.png

man printfman 1 printfman 3 printf说明这三者的区别

890352-20160918160547250-422423780.png

`man printf:是普通的Linux命令

890352-20160918160850357-974178359.png

man 1 printf:是系统调用,操作系统的提供的服务接口

890352-20160918161100163-1730415506.png

man 3 printf:是库函数, C语言中的函数

890352-20160918161152542-1199944297.png

man -k选项结合grep命令和管道的应用:

890352-20160918162106893-600504532.png

(3)cheat命令

cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能:

cheat find

890352-20160918163718774-1208564692.png

(4)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文件:

890352-20160918171712677-2114645854.png

(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命令(功能:可以对文件全文检索)————参考博客

执行cheat grep:

890352-20160918170647070-113366664.png

格式: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 firefoxwhich firefox这两个命令查找firefox所在的目录:

890352-20160918174000367-1514679153.png

(8)apt-cache命令

具体用法:可以在使用apt-get install安装一个程序时先找找软件源的库里有没有这个程序,比如这周我们所需要安装的ddd调试工具:

890352-20160918174357368-975519712.png

Linux命令练习:

banner命令:

890352-20160918181944801-1928780336.png

890352-20160918181952504-222057244.png

用户级文件权限管理:

·添加一个用户loutest

890352-20160918182459276-160842148.png

在 Linux 里面如何知道自己属于哪些用户组

·方法一:使用groups命令:

890352-20160918183921727-1087458748.png
·方法二:查看/etc/group文件:
890352-20160918184040936-839776238.png

删除用户:

890352-20160918185002319-101553161.png

变更文件所有者:

·建立一个新用户test890352-20160918190330626-1638370214.png

·test建立a文件,切换回coast用户进行操作:
890352-20160918191921224-1822678828.png
·最后结果:890352-20160918192051168-1908835494.png

修改文件权限:

890352-20160918192726290-1891157162.png

Linux 目录结构

因为我们的环境的原因,每次新启动实验会清除系统恢复初始状态,所以需要手动更新软件包索引,以便我们安装时能找到相应软件包的源

sudo apt-get update

sudo apt-get install tree:

890352-20160918194015047-965939.png

进入上一级目录:

$ cd ..

进入你的“home”目录:

$ cd ~

·或者 cd /home/

使用 pwd 获取当前路径:

$ pwd

890352-20160918194322497-1287869942.png

下面我们以你的"home"目录为起点,分别以绝对路径和相对路径的方式进入 /usr/local/bin 目录:

# 绝对路径$ cd /usr/local/bin# 相对路径$ cd ../../usr/local/bin

890352-20160918194551680-1708277338.png

Linux 文件的基本操作

·新建空白文件和新建目录:

890352-20160918195522158-731525224.png

复制文件:

890352-20160918200155435-70292950.png

删除文件:

890352-20160918200232828-1192394872.png

移动文件与文件重命名:

890352-20160918200707535-1331005321.png

890352-20160918200726724-1870424493.png

查看文件

·使用cat,tac和nl命令查看文件

·比如我们要查看之前从"/etc"目录下拷贝来的passwd文件:

$ cat passwd

可以加上-n参数显示行号:

$ cat -n passwd

环境变量与文件查找

召唤“数字雨”:

890352-20160918201807566-204266950.png

文件打包与压缩

zip压缩打包程序:

890352-20160918210430668-1195598149.png

使用unzip命令解压缩zip文件到当前文件夹:

890352-20160918210457826-401065865.png

一个有趣的作业:

890352-20160918210610363-871159939.png

890352-20160918210618848-320307072.png

简单文件系统操作

df 命令查看磁盘的容量:

890352-20160918211731833-347019084.png

890352-20160918211741224-1476340878.png

使用 du 命令查看目录的容量:

890352-20160918211801335-881206926.png

召唤眼睛:

890352-20160918214055244-1901911253.png

作业:

890352-20160918211821711-1337599003.png

890352-20160918211829134-1760163314.png

简单的文本处理

1.tr 命令 tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。

使用方式:tr [option]...SET1 [SET2]

2.col 命令 col 命令可以将Tab换成对等数量的空格建,或反转这个操作。

使用方式:col [option]

3.join命令 学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一起。

使用方式:join [option]... file1 file2

作业:Space Invaders:太空侵略者

890352-20160918213158159-87976995.png

890352-20160918213205847-1675759911.png

作业12:

890352-20160918213620053-310584530.png

教材学习中的问题和解决过程

·问题1:在安装cheat时系统报错“权限不够”:

890352-20160918175358442-832430367.png

解决过程1:在命令前添加sudo

·问题2:在linux系统中安装cheat 时,需要通过git来进行下载,如果之前没有下载git则无法正常进行安装:

890352-20160918174423698-1632936614.png

·解决过程2:利用apt-get install安装git

·问题3:在删除用户时遇到的问题:890352-20160918184830188-811854979.png

·解决过程3:需要进行用户的切换,当前用户不能为需要进行删除的用户

思想感悟

###在经过了这一周的学习后,我从最开始的对Linux系统的一无所知,到现在初步能够通过一些简单的命令来进行系统的操作,我感觉自己的收获还是很大的。虽然自己对Linux系统知识的掌握还不是很全面,但是经过了这段时间的摸索和学习,我逐渐有了学好它的信心。知识是一步一步积累下来的,不能急于求成,所以要在开始就打好基础,这样后面的学习才会更加顺利。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 4000行 20篇 300小时
第一周 0/0 1/2 20/20

参考资料

  • ...

转载于:https://www.cnblogs.com/20145223ymy/p/5881839.html

你可能感兴趣的文章
Swift里你可能不知道的事儿(2)——处理对象reference cycle的三种方式
查看>>
聊聊json
查看>>
【更新】FusionCharts图表库 v3.10.0发布|附下载
查看>>
TensorFlow实战之K-Means聚类算法实践
查看>>
verify.js 极简表单校验插件
查看>>
调查显示,大多数 Java 开发人员不希望学习新语言
查看>>
华为诉美国政府案新进展,法院已发传票
查看>>
小米成立AIoT战略委员会,加速落地All in AIoT战略 ...
查看>>
全栈必备 JavaScript基础
查看>>
soamanager将RFC类型的FM发布成web service
查看>>
兰晟生物医药完成数千万元A轮融资,引领神经精神疾病创新药物的快速发展 ...
查看>>
中国 HBase 技术社区 2019 年全国 meetup 计划
查看>>
书籍:Learn Web Development with Python - 2018.pdf
查看>>
C++雾中风景13:volatile解惑
查看>>
使用Ceph集群作为Kubernetes的动态分配持久化存储
查看>>
SAP权限对象的校验
查看>>
# 关于“态势感知”产品活动体验
查看>>
《语义Web编程》一导读
查看>>
Django 模板
查看>>
JavaWeb实训项目案例开发之在线图书网站开发【非常适合初学者】
查看>>