20145315 《信息安全系统设计基础》第1周学习总结
20145315 《信息安全系统设计基础》第1周学习总结
教材学习内容总结
这周主要学习任务是在实验楼里学习linux系统的使用。
以下是我的总结:
基础命令
-
快捷键
-
Ctrl+c键来强行终止当前程序,单进程出现问题,程序卡死时可以使用它来终止操作。
-
Ctrl+d 键盘输入结束或退出终端
-
Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行
-
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
-
Ctrl+a 将光标移至输入行头,相当于Home键
-
Ctrl+e 将光标移至输入行末,相当于End键
-
Ctrl+k 删除从光标所在位置到行末
-
Alt+Backspace 向前删除一个单词
-
Shift+PgUp 将终端显示向上滚动
-
Shift+PgDn 将终端显示向下滚动
-
man的使用窍门
-
通常 man 手册中的内容很多,你可能不太容易找到你想要的结果,不过幸运的是你可以在 man 中使用搜索,/<你要搜索的关键字>;
-
查找到后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。
-
使用Space(空格键)翻页,Enter(回车键)向下滚动一行,或者使用j,k(vim编辑器的移动键)进行向前向后滚动一行。
-
按下h键为显示使用帮助(因为man使用less作为阅读器,实为less工具的帮助),按下q退出。
-
还可以使用info命令,不过通常使用man就足够了。如果你知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,那么你可以使用--help参数
-
find查找一个文件在系统中的什么位置,locate是神速版本的find。
-
help 命令只能用于显示内建命令的帮助信息,如果是外部命令,可以使用 <命令> --help
-
grep 可以对文件全文检索,比如你接手一个C语言项目,里面有上百个C源文件,想找找main函数在那个文件中,你可以通过grep -n main *.c,快速找到main在哪个C文件中并指出在第几行。grep支持正则表达式,正则表达式也是一个重要的元知识。可以通过cheat grep学习grep命令。上面还提到,
-
whereis,which告诉你使用的命令工具装在什么地方。Linxu初学者会不习惯Linux的文件系统,C盘呢?D盘呢?用apt-get install安装程序好象也不用我们选择安装位置,程序装在哪了?比如:我们在Linux下上网使用firefox浏览器,大家可以使用whereis firefox或更精确的使用which firefox来看看结果。
-
apt-cache可以在使用apt-get install安装一个程序时先找找软件源的库里有没有这个程序,有才可以安装。比如老师推荐了一个调试工具ddd,你可以用apt-cache search ddd查查有没有这个程序。
-
cheat安装
用户管理
- su
可以切换到用户user,执行时需要输入目标用户的密码,sudo 可以以特权级别运行cmd命令,需要当前用户属于sudo组,且需要输入当前用户密码。 - 退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。
- 使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
文件管理
-
ls 命令用来列出并显示当前目录下的文件
-
Linux 里面一切皆文件,正因为这一点才有了设备文件,还有 socket(网络套接),和 pipe (管道),链接文件。
-
修改文件权限
•方式一:二进制数字表示 •方式二:加减赋值操作 $ chmod go-rw iphone
'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。
作业:
添加一个用户loutest,使用sudo创建文件/opt/forloutest,设置成用户loutest可以读写。截图并把操作过程写入实验报告。
目录结构
UNIX 是以目录为主的,Linux 也继承了这一优良特性。 Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。
- 使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录。
- 以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件)。
-
- 表示上一次所在目录,~ 通常表示当前用户的"home"目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
- 目录操作
Linux 文件的基本操作
- touch 命令创建空白文件:先 cd ~ 切换回用户,然后touch test.
- 使用 mkdir(make directories)命令可以创建一个空目录;使用 -p 参数,同时创建父目录(如果不存在该父目录)。
- 使用cp(copy)命令复制一个文件或目录到指定目录;复制目录需要加上-r或者-R参数,表示递归复制。
- 使用rm(remove files or directories)命令,删除一个文件或目录;-f参数强制删除;要删除一个目录,也需要加上-r或-R参数.
- 使用mv(move or rename files)命令,移动文件
- 重命名 :mv 旧的文件名 新的文件名
- 使用cat,tac和nl命令查看文件
- more和less命令分页查看文件,使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。
环境变量
-
用declare命令创建一个变量
-
使用=号赋值运算符为变量 tmp 赋值
-
使用echo命令和$符号,读取变量的值 echo $tmp
-
变量名只能是英文字母,数字或者下划线,且不能以数字作为开头。
-
打印环境变量
-
set 显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量
-
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
-
export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量
-
关于环境变量,可以简单的理解成在当前进程的子进程是否有效,有效则为环境变量,否则不是
-
添加自定义路径到“PATH”环境变量 PATH=$PATH:/home/shiyanlou/mybin
-
echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
把路径信息直接添加到zsh的配置文件.zshrc中 -
修改变量:
-
${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据
-
${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据
-
${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据
-
${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
-
${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
-
${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串
-
可以使用unset命令删除一个环境变量:
搜索文件
- whereis简单快速
- locate快而全
- which小而精 (确定是否已经安装了某个软件)
- find精而细
系统操作
- du 命令查看目录的容量
- df 命令查看磁盘的容量
crontab 的认识与使用
crontab用来设置周期性被执行的指令,通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。
C语言
- 创建一个 C 语言"hello world"程序:
$ vim hello_world.c
#include <stdio.h>
int main(void)
{
printf("hello world!\n");
return 0;
}
-
使用 gcc 生成可执行文件:
$ gcc -o hello_world hello_world.c -
$ ./hello_world
文件压缩与打包
- 使用zip打包文件夹
- 用unzip命令解压缩zip文件 注意:unzip -O GBK 中文压缩文件.zip
- rar打包压缩命令
- tar打包工具
- 创建一个 tar 包:
$ tar -cf shiyanlou.tar ~
VIM
- vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或者Ctrl+[(这在vim课程环境中不管用)即可进入普通模式。
- 普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。
- 命令行模式中输入wq回车后保存并退出vim。
普通模式
- h 左
- l 右(小写L)
- j 下
- k 上
- w 移动到下一个单词
- b 移动到上一个单词
进入插入模式
-
i 在当前光标处进行编辑
-
I 在行首插入
-
A 在行末插入
-
a 在光标后插入编辑
-
o 在当前行后插入一个新行
-
O 在当前行前插入一个新行
-
cw 替换从光标所在位置后到一个单词结尾的字符
-
保存文档
从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其它路径下
-
以下为几种退出方式:
-
:q! 强制退出,不保存( 普通模式进入命令行模式再退出)
-
:q 退出
-
:wq! 强制保存并退出
-
:w <文件路径> 另存为
-
:saveas 文件路径 另存为
-
:x 保存并退出
-
:wq 保存并退出
-
普通模式下输入Shift+zz即可保存退出vim
-
删除文本
-
x 删除游标所在的字符
-
X 删除游标所在前一个字符
-
Delete 同x
-
dd 删除整行
-
dw 删除一个单词(不适用中文)
-
d$或D 删除至行尾
-
d^ 删除至行首
-
dG 删除到文档结尾处
-
d1G 删至文档首部
教材学习中的问题和解决过程
脚本程序 hello_shell.sh无法运行
没解决,C语言程序可以执行,脚本语言不行,打算下周看一下高级Bash脚本编程指南
课后作业中的问题和解决过程
-
请在虚拟机中安装DDD软件(其他软件)
sudo update
sudo apt-get install DDD
-
请演示怎么判断DDD软件能不能安装
先搜索是否安装 sudo apt-cache search -
请查找系统中50M以上的文件
find . -size +50M -type f -
请查找系统中两天前修改过的且小于5M的文件
find . -size -5M -type f -mtime +2d -
请问如何查找操作系统的信息
unname -a # -
请查找当前目录下所有*.c文件中哪个文件中包含main函数
man -k *.c -
请建立一个目录,里面建立两个子文目录,如何一条命令删除三个目录?
rm -r <目录> -
如何把一个目录及子目录拷贝到自己的主目录中
cp -r <这个目录> ..
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/200 | 2/2 | 20/20 | |
第二周 | 0/500 | 0/4 | 0 /38 | |
第三周 | 0/1000 | 0/7 | 0 /60 | |
第四周 | 0/1300 | 0/9 | 0/90 |