《信息安全系统设计基础》第1周学习总结
2016-09-18 22:43
381 查看
20145336张子扬 《信息安全系统设计基础》第1周学习总结
教材学习内容总结
在linux中快捷键:CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了
CTRL+SHIFT+T:新建标签页,编程时有重要应用
ALT+数字N:终端中切换到第N个标签页,编程时有重要应用
Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成
上下键盘:切换命令历史,刚输入一个很长的命令,按上键就可以恢复
CTRL+C:中断程序运行
Ctrl+Z: 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+A: 将光标移至输入行头,相当于Home键
Ctrl+E: 将光标移至输入行末,相当于End键
Ctrl+K: 删除从光标所在位置到行末
在linux命令行中,命令格式一般为:
command [options] [arguments] //命令 【选项】(可选)【参数】(可选) ls命令:显示当前文件夹的文件 ls.命令:这里.是一个参数,指当前文件,和命令有所冲突,语句和ls是一样的效果 ls -a .命令:显示当前文件夹所有文件包括隐藏文件和目录
如果你想创建多个文件
$ touch love_{1..10}_linux.txt
查找时可以使用*和?来代替未知或者忘记的字符
man
在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。
在man的手册中一般包括以下及部分内容
name(名称):该命令或函数的名称,接着是一行简介
synopsis(概要):对于命令,正式的描述它如何运行,以及需要什么样的命令行参数。对于函数,介绍函数所需的参数,以及哪个头文件包含该函数的定义。
description(说明):命令或者函数功能的文本描述
examples(示例):常用的示例
see also(参见):相关的命令或者函数列表
查找到后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。使用Space(空格键)翻页,Enter(回车键)向下滚动一行,或者使用j,k(vim编辑器的移动键)进行向前向后滚动一行。按下h键为显示使用帮助(因为man使用less作为阅读器,实为less工具的帮助),按下q退出,如果想获得更详细的帮助,可以使用info命令。如果只想查看某个具体参数的作用,可以使用--help。
man -k:可以帮助我们学习代码,像是一个搜索引擎。可以结合man -k key|grep来实现关键词查找。man -k等价于apropos。man -f cmd可以查看命令的基本功能,等同于whatis。
cheat
cheat命令可以提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
它比man命令提供的信息更加简单,但是同样更加易懂,用实例来告诉你这一条命令应该如何使用。
cheat命令在linux里并没有安装,需要自己安装
find
find命令可以查找一个文件在系统的位置
locate
locate是神速版的find
grep
grep可以对全文件进行全文检索,比如寻找main函数在那个文件中,可以通过grep -n main*.c,快速找到main在那个c文件中并指出第几行。
whreris和whicd
whereis和which命令可以快速找到文件安装的位置
我对linux自带的firefox浏览器进行了实验操作:
apt-cache
apt-cache可以在使用apt-get install安装一个程序时先找软件源库中是否有这个程序
用户的创建
可以使用who am i来查找当前的用户
如果你想要新建一个用户,可以使用sudo adduser xxx来进行创建新用户
查看etc/group文件
使用 cat /etc/group | sort
使用 cat /etc/group | grep -E "shiyanlou"只显示与实验楼相关的信息
etc文件格式说明
groupname:password:GID:userlist
将其它用户加入sudo用户组
使用usermod命令将用户添加入用户组,但需要root权限
su shiyanlou(输入用户的密码) groups zzy sudo usermod -G sudo zzy groups zzy
删除用户
sudo deluser zzy --remove-home
linux查看文件权限
https://dn-anything-about-doc.qbox.me/linux_base/3-10.png/logoblackfont
文件权限
cat <file name>之类的命令读取某个文件的内容
一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件
链接数:链接到该文件所在的 inode 结点的文件名数目
文件大小:以inode结点大小为单位表示文件的大小,给ls加上 -lh参数来更直接的查看文件的大小
ls -A 显示当前目录和上一级目录下所有文件包含隐藏文件,在linux中开头为.的文件为隐藏文件 ls -dl<目录名> 显示该目录的完整属性 ls -AsSh 用比较简介的形式展现
变更文件所有者,将在zzy下的xxx变更到shiyanlou
cd /home/zzy ls xxx sudo chown shiyanlou xxx cp xxx home/shiyanlou
Linux 目录结构及文件基本操作
1、Linux 的文件组织目录结构。Linux 是以树形目录结构的形式来构建整个系统的,虽然目录存储和系统内核都是在磁盘里,但是磁盘是挂载(这里的挂载是什么意思)在目录上的
linux中大部分目录结构是规定好了(FHS 标准)
fhs标准
fhs定义了两层规范:第一层是/下面的各个目录应该放置什么样的文件规范,例如:/etc应该放置设置文件,/bin和/sbin则应该放置可执行文件
第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登陆文件,/usr/share放置共享数据等等。
2、相对路径和绝对路径。
绝对路劲:是以根"/"目录为起点的完整路径,以你所要到的目录为终点。例如:/usr/local/bin
相对路径:是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点。例如:usr/local/bin
3、对文件的移动、复制、重命名、编辑等操作。
Linux 文件的基本操作
touch:创建空白文件,主要是用来更改时间戳的,但是在不加任何参数的条件下,只指定一个用户名,可以创建一个空白文件
mkdir xx:创建一个名为“xx”的目录 mkdir -p father/son/grandson:可以创建一个多级目录 cp xx father/son/grandson:将xx文件复制到father/son/grandson中 cp -r father family:将这个目录整个复制到family中 rm xx:删除文件,前提是要在这个目录下 rm -f xx:强制删除 rm -r xx:删除目录 mv file1 Documents:将文件移动到目的文件夹中 mv file1 myfile:更改名字 批量命名:rename,需要用到正则表达式 cat xx:显示文件, cat -n xx:显示行号 tac:倒叙显示 tac:正序显示 nl:添加行号并打印(这样打开方式只能用鼠标滚轮来翻页) more xx:打开文件,可以使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。(这种显示只能向下滚动,怎么向上滚动啊) tail和head:只显示头和尾 -n <紧跟行数> -f 动态不停的读取某个文件的内容并显示,起到实时监视的作用 file命令查看类型
环境变量与文件查找
declear可以声明一个变量,使用=号赋值运算符为变量赋值。读取变量的值,使用echo命令和$符号($符号用于表示引用一个变量的值)
三种环境变量
1. 当前 Shell 进程私有用户自定义变量
2. Shell 本身内建的变量
3. 从自定义变量导出的环境变量
教材学习中的问题和解决过程
在一开始使用vmware虚拟机时,更新了虚拟机,不知为何虚拟机奔溃了在网上寻找了原因,需要在安装目录文件中删去三个文件,虚拟机回复正常
课后作业中的问题和解决过程
在使用man命令时,man 手册的内容很多,涉及了 Linux 使用过程中的方方面面,为了便于查找,是做了分册(分区段)处理的,在Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段,安排如下:我在命令行中尝试了一下man printf,
man 1 printf,
man 3 printf:
实现banner的安装
banner是一个可以输出图形字符的linux命令,但使用之前需要先安装
$ sudo apt-get update
$ sudo apt-get install sysvbanner
其他(感悟、思考等,可选)
第一次接触linux系统,带给我的新奇的感觉,新奇的是它带个用户不同于windows系统的体验。在windows系统中,用户可以通过键盘,鼠标在图形界面上进行操作。但在linux系统中,我们更多的是使用键盘输入在命令行中完成对计算机的操作,不再依赖于图形化界面。这种模式对于用户来说更难掌握,需要更加丰富的知识才能进行操作,同样当你熟练运用linux后,它的效率也会比windows系统高很多的。在linux系统中都是使用命令行输入命令对计算机进行操作,在命令行中基本是纯英语的,由于我英语水平不高,有些命令行的提示还得去百度,很尴尬。
我觉得刚开始学一门新知识都是比较费劲的,应为你不仅要去学习相对应的知识,还要去适应它的 学习方法。学习linux我觉得对于每一条命令,动手去操作,了解它的用途,对应的参数,每种选项有什么效果,就像学英语要像先记单词一样。而老师建议我们去熟练掌握man方法,cheat方法就是让我们掌握查字典的方法。久而久之,我们就能够掌握自主学习的方法。
本周进度有点慢,因为在准备复习,在下周要加快进度,多动手操作。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | ||
---|---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | ||
第一周 | / | 1/2 | 19/20 | ||
参考资料
]《深入理解计算机系统V2》学习指导...
相关文章推荐
- Activiti学习文档(三)之画流程图并部署流程
- String.trim()
- 自制linux系统——打造属于自己的linux系统
- Android之进程通讯——广播
- Java编程题目-11:数组的交集
- 对onreadystatechange的理解
- hdu 2200 AC难题 数学排列组合
- Struts2自学入门(四)——简单拦截器
- Java中获取键盘输入值的三种方法
- codeforces 720A:Closing ceremony
- 一周总结汇总_2016-09-18
- 【springmvc】springmvc实现接口的开发
- PingCAP刘奇:如何构建一个NewSQL数据库
- ffplay 同步
- 区别getElementByID,getElementsByName,getElementsByTagName
- 全局精确流量调度新思路-HttpDNS服务详解
- Python(三)判断、循环
- poj 2560 Freckles
- 中文分词算法总结
- scala学习手记40 - case表达式里的模式变量和常量