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


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

    教材学习内容总结

    Linux学习路径

    快捷键

    • CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了

    • CTRL+SHIFT+T:新建标签页,编程时有重要应用

    • ALT+数字N:终端中切换到第N个标签页,编程时有重要应用

    • CTRL+ALT+F1~F6:切换纯命令行界面的终端

    • CTRL+ALT+F7:切换到其中一个终端后切换回图形界面

    • Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成

    • 上下键盘:切换命令历史,刚输入一个很长的命令,按上键就可以恢复

    • CTRL+C:中断程序运行。如输入find /后用此快捷键中断程序。

    • Ctrl+d :键盘输入结束或退出终端

    • Ctrl+s :暂定当前程序,暂停后按下任意键恢复运行

    • Ctrl+z :将当前程序放到后台运行,恢复到前台为命令fg

    • Ctrl+a :将光标移至输入行头,相当于Home键

    • Ctrl+e :将光标移至输入行末,相当于End键

    • Ctrl+k :删除从光标所在位置到行末

    • Alt+Backspace :向前删除一个单词

    通配符

    • *: 匹配 0 或多个字符
    • ? :匹配任意一个字符
    • [list] :匹配 list 中的任意单一字符
    • [!list]: 匹配 除list 中的任意单一字符以外的字符
    • [c1-c2] :匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
    • {string1,string2,...} :匹配 sring1 或 string2 (或更多)其一字符串
    • {c2..c2} :匹配 c1-c2 中全部字符 如{1..10}

    安装并使用banner

    用户管理

    • 查看用户who -参数

    • 创建用户

    • 删除用户

    文件权限管理

    • 一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件
    • 创建空文件touch 文件名
    • 创建目录mkdir 文件名mkdir -p 多级目录
    • 复制文件到目录cp 文件名 指定目录
    • 复制目录cp -r 目录名 family
    • 删除文件rm 文件名或强制删除rm -f 文件名
    • 删除目录rm -r 目录名
    • 将文件移动到目录下mv 源目录文件 目的目录
    • 重命名文件mv 旧的文件名 新的文件名
    • 使用cat,tacnl命令查看文件
    • 使用moreless命令分页查看文件

    环境变量

    • 创建变量:declare 变量名

    • =赋值

    • echo $变量名读取变量值

    • 添加自定义路径到PATH环境变量,之后可以在其它任意目录执行命令。PATH=$PATH:/home/shiyanlou/mybin

    • unset 变量名删除一个环境变量

    • ${变量名#匹配字串} :从头向后开始匹配,删除符合匹配字串的最短数据

    • ${变量名##匹配字串} :从头向后开始匹配,删除符合匹配字串的最长数据

    • ${变量名%匹配字串} :从尾向前开始匹配,删除符合匹配字串的最短数据

    • ${变量名%%匹配字串} :从尾向前开始匹配,删除符合匹配字串的最长数据

    • ${变量名/旧的字串/新的字串}: 将符合旧字串的第一个字串替换为新的字串

    • ${变量名//旧的字串/新的字串} :将符合旧字串的全部字串替换为新的字串

    • source .zshrc作用等同于 . ./.zshrc,可以让环境变量立即生效,若用第二种方式,注意第一个点后面有一个空格,而且后面的文件必须指定完整的绝对或相对路径名,source 则不需要

    whereis

    • whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)

    locate

    • locate相对于whereis搜索的更全面,可以用来查找指定目录下的不同文件类型locate /指定目录/以**开头的文件,注意若要查找如*.jpg需要在前面加转义。
    • 如果想只统计数目可以加上-c参数,-i参数可以忽略大小写进行查找,whereis 的-b,-m,-s同样可以是使用。

    which

    • which 软件名来确定是否安装了某软件,只从PATH环境变量指定的路径中搜索命令

    find

    • 不但可以通过文件类型、文件名进行查找而且可以根据文件的属性进行搜索。

    查看磁盘和目录的容量

    • 使用 df 命令查看磁盘的容量
    • 使用 du 命令查看目录的容量
    • 两种命令后面加上-h都会以更易读的方式展示,du -h -d 数字 ~可以查看比数字高一级的目录信息。

    type

    • 使用type来区别内建命令和外部命令。

    • xxx is a shell builtin说明是内建命令;xxx is /usr/sbin/xxx说明是外部命令;xxx is an alias for xx --xxx说明该指令为命令别名所设定的名称

    help

    • help 命令只能用于显示内建命令的帮助信息

    man

    • man 没有内建与外部命令的区分,因为 man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述

    info

    • info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息
    • 与 man 相比,info 工具可显示更完整的 GNU 工具信息。若 man 页包含的某个工具的概要信息在 info 中也有介绍,那么 man 页中会有“请参考 info 页更详细内容”的字样

    管道

    • ls -al /etc | less试用管道,可以一行一行的看/etc目录下的文件和目录

    • cut /etc/passwd -d ':' -f 1,6打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录

    • grep [命令选项]... 用于匹配的表达式 [文件]...grep结合正则表达式实现复杂却高效的匹配和查找

    • wc用于计数

    • sort支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等等

    • uniq命令可以用于过滤或者输出重复行

    文本处理命令

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

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

    • join 将两个文件中包含相同内容的那一行合并在一起

    • paste 在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开

    正则表达式

    • 将下一个字符标记为一个特殊字符、或一个原义字符
    • ^ 匹配输入字符串的开始位置。
    • $ 匹配输入字符串的结束位置。
    • {n} n是一个非负整数。匹配确定的n次。
    • {n,} n是一个非负整数。至少匹配n次。
    • {n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。
    • * 匹配前面的子表达式零次或多次。
    • + 匹配前面的子表达式一次或多次。
    • ? 匹配前面的子表达式零次或一次。
    • . 匹配除“ ”之外的任何单个字符。要匹配包括“ ”在内的任何字符,请使用像“(.| )”的模式。
    • (pattern) 匹配pattern并获取这一匹配的子字符串。该子字符串用于向后引用。
    • `x|y`  匹配x或y。
      
    • [xyz] 字符集合(character class)。匹配所包含的任意一个字符。
    • [^xyz] 排除型(negate)字符集合。匹配未列出的任意字符。
    • [a-z] 字符范围。匹配指定范围内的任意字符。
    • [^a-z] 排除型的字符范围。匹配任何不在指定范围内的任意字符。

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

    问题1:无法找到cheat命令

    • 解决:

    • 一开始打算直接使用cheat命令,通过cheat来学习其他的命令,后来发现cheat命令不是系统中自带的,参考了蔡野同学的博客和学习资料后

    • 先安装了pip和Git

    • 然后通过git下载cheat

    • 安装所需要的python依赖包

    • 最后复制cheat的git库

    • 但在进入cheat目录,运行‘setup.py’时出现了问题。目前这个问题还没有解决。无法解决定位到软件包的情况下,我选择了用实验楼的环境进行练习。

    问题2:在shell脚本中添加内容时提示光标处没有字符串

    • 解决:

    • 尝试了百度找不到解决方案,后来索性不理会,继续输入要添加的内容,输入到第三个字符左右后就能够成功输入,只算是解决了一半的问题,因为还不知道这其中的奥秘到底是什么。

    问题3:在shell脚本中添加内容完毕后,无法成功保存并退出

    • 解决:先按住ESC键,然后按,接着按W键Q键,最后enter键成功退回到原来的命令行界面。

    问题4:使用sed命令时无法得到预期的结果

    • 解决:

    • 还没找到解决方法。

    问题5:在使用find查找时提示“没有那个文件或目录”

    • 解决:

    • 猜测是权限不够的问题,于是将命令中原来的文件目录由换成.,完整的命令为find . -size -5M -and -mtime +2 | wc -l,成功解决问题。

    课后作业中的问题和解决过程

    在虚拟机中安装DDD软件

    判断DDD软件能不能安装

    查找系统中50M以上的文件

    查找系统中两天前修改过的且小于5M的文件

    • 首先用通俗的命令进行查找,发现查找出来的结果太多

    • 接着在命令后加上 | more分页进行查看,发现还是不方便

    • 最后索性| wc -l直接显示搜索出来的文件数量

    查找操作系统的信息

    查找当前目录下所有*.c文件中哪个文件中包含main函数

    建立一个目录,里面建立两个子文目录,如何一条命令删除三个目录

    其他(感悟、思考等,可选)

    • 这是linux安装完毕后正式入门学习的第一周,要掌握的命令很多,所以我在教材学习内容总结部分写了大部分容易混淆的命令和用法,没有过多的纠结课程学习的其他内容,因为这些在实验楼中查看文档就可以轻松的看到。
    • 有一些指令,比如apt-get,在学习过程中就会频繁的使用到,这样使得我对这些命令的掌握比其他的更深刻,这也对日后的学习提供了经验,只要多多使用,便能够熟练应用。
    • 在学习的过程中,跟着实验楼做,让实验变得更直观,在跟着实验楼学习之后再思考老师提出的课后问题,在解决问题的过程中反复看知识点,相当于又复习了一遍,受益匪浅。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第零周 0/0 1/1 5/5 使用虚拟机安装linux系统,安装ubuntu
    第一周 100/100 1/2 20/25 掌握核心的linux命令,了解了linux操作系统

    参考资料

  • 相关阅读:
    C# 多线程 弹出模态MessageBox的一种方法
    Selection.Delete Shift:=xlUp
    Selection.Delete Shift:=xlUp
    C# 源码
    C# 源码
    C# string格式的日期时间字符串转为DateTime类型的方法
    C# string格式的日期时间字符串转为DateTime类型的方法
    在Excel VBA中,单元格的.interior.color的值是什么格式的?
    在Excel VBA中,单元格的.interior.color的值是什么格式的?
    C# 如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化
  • 原文地址:https://www.cnblogs.com/zn20145214/p/5881430.html
Copyright © 2020-2023  润新知