20145308 《信息安全系统设计基础》第1周学习总结
教材学习内容总结
- Linux简介
- Linux为何物
- Linux 就是一个操作系统,也就是系统调用和内核那两层
- Linux为何物
- Linux命令
command [options] [arguments]
command作用于arguments,options区别指令的不同
- man指令
man -k
可以结合grep
多关键字查找- 等价命令
apropos
man -f cmd
查看命令的基本功能,等价于whatis
- cheat命令
- 快捷键
ctrl+c
中端程序
Ctrl+d
键盘输入结束或退出终端
Ctrl+s
暂定当前程序,暂停后按下任意键恢复运行
Ctrl+z
将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a
将光标移至输入行头,相当于Home键
Ctrl+e
将光标移至输入行末,相当于End键
Ctrl+k
删除从光标所在位置到行末
Alt+Backspace
向前删除一个单词
Shift+PgUp
将终端显示向上滚动
Shift+PgDn
将终端显示向下滚动
- Shell 常用通配符
*
匹配 0 或多个字符
?
匹配任意一个字符
[list]
匹配 list 中的任意单一字符
[!list]
匹配 除list 中的任意单一字符以外的字符
[c1-c2]
匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
{string1,string2,...}
匹配 sring1 或 string2 (或更多)其一字符串
{c2..c2}
匹配 c1-c2 中全部字符 如{1..10}
who am i
命令查看用户- who 命令其它常用参数
-a
打印能打印的全部
-d
打印死掉的进程
-m
同am i,mom likes
-q
打印当前登录用户数及用户名
-u
打印当前登录用户登录信息
-r
打印运行等级
- who 命令其它常用参数
su <user>
切换到用户user,su<cmd>
以特权级别运行cmd命令,su - <user>
切换用户的同时环境变量也会跟着切换groups <user>
命令得知用户属于哪个组usermod
命令为用户添加用户组,deluer
删除用户ls -l
查看文件权限cd
命令切换目录:.
表示当前目录,..
表示上一级目录,-
表示上一次所在目录,~
通常表示当前用户的"home"目录。使用pwd
命令可以获取当前所在路径(绝对路径)mkdir(make directories)
命令可以创建一个空目录,也可同时指定创建目录的权限属性,-p
参数,同时创建父目录cp(copy)
命令复制一个文件或目录到指定目录,复制目录加参数-r
- 使用
rm
命令,删除一个文件或目录,删除目录加参数-r
- 使用
mv
命令,移动文件(剪切),
重命名文件,批量重命名,rename来实现 - 使用
cat
,tac
和nl
命令查看文件,cat
为正序显示,tac
倒序显示,nl
命令,添加行号并打印 - 使用
more
和less
命令分页查看文件,打开后默认只显示一屏内容,终端底部显示当前阅读的进度(百分比)。可以使用Enter
键向下滚动一行,使用Space
键向下滚动一屏,按下h
显示帮助,q
退出 - 使用
head
和tail
命令查看文件,只查看的头几行(默认为10行,不足10行则显示全部)和尾几行,也可以加上-n参数,后面紧跟行数 file
命令可以查看文件的类型declare
命令创建变量- 环境变量有关命令:
set
显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量
env
显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
export
显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量 - 变量修改:
${变量名#匹配字串}
从头向后开始匹配,删除符合匹配字串的最短数据
${变量名##匹配字串}
从头向后开始匹配,删除符合匹配字串的最长数据
${变量名%匹配字串}
从尾向前开始匹配,删除符合匹配字串的最短数据
${变量名%%匹配字串}
从尾向前开始匹配,删除符合匹配字串的最长数据
${变量名/旧的字串/新的字串}
将符合旧字串的第一个字串替换为新的字串
${变量名//旧的字串/新的字串}
将符合旧字串的全部字串替换为新的字串 - Linux文件压缩格式:
*.zip
zip程序打包压缩的文件
*.rar
rar程序压缩的文件
*.7z
7zip程序压缩的文件
*.tar
tar程序打包,未压缩的文件
*.gz
gzip程序(GNU zip)压缩的文件
*.xz
xz程序压缩的文件
*.bz2
bzip2程序压缩的文件
*.tar.gz
tar打包,gzip程序压缩的文件
*.tar.xz
tar打包,xz程序压缩的文件 zip
压缩打包程序,zip -r -q -o shiyanlou.zip /home/shiyanlou
-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用du命令查看打包后文件的大小,-e参数可以创建加密压缩包,-l
参数转换格式,使之在Windows下打开没有问题unzip
命令解压缩zip文件,-d
表示路径(不存在会自动创建),-l
不解压只查看压缩包内容,-o
指定编码类型rar
打包压缩命令,rar a shiyanlou.rar
压缩文件(使用a
参数添加一个目录~到一个归档文件中,如果该文件不存在就会自动创建),rar d shiyanlou.rar .zshrc
从指定压缩包文件中删除某个文件,rar l shiyanlou.rar
查看不解压文件,unrar x shiyanlou.rar
全路径解压,unrar e shiyanlou.rar tmp/
去掉路径解压tar
打包工具,tar -cf shiyanlou.tar ~
创建一个 tar 包,-c
表示创建一个 tar 包文件,-f
用于指定创建的文件名,注意文件名必须紧跟在-f
参数之后,-v
参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的/
,你也可以使用-P
保留绝对路径符,解包一个文件(-x
参数)到指定路径的已存在目录(-C
参数),只查看不解包文件-t
参数df
命令查看磁盘的容量,加-h
转换成能看懂的形式du
命令查看目录的容量,-d
参数指定查看目录的深度(1级目录~ 0~)dd
命令用于转换和复制文件,bs(block size)
用于指定块大小(缺省单位为 Byte,也可为其指定如'K','M','G'等单位),count
用于指定块数量bs(block size)
用于指定块大小(缺省单位为 Byte,也可为其指定如'K','M','G'等单位),count用于指定块数量dd
命令创建虚拟镜像文件,dd if=/dev/zero of=virtual.img bs=1M count=256
mkfs
命令格式化磁盘,命令sudo mkfs.ext4 virtual.img
格式化为ext4文件系统sudo mount
查看下主机已经挂载的文件系统,命令格式mount [options] [source] [directory]
,常用操作mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
,umount
命令卸载已挂载磁盘sudo umount /mnt
fdisk
为磁盘分区,查看硬盘分区表信息sudo fdisk -l
,进入磁盘分区模式sudo fdisk virtual.img
- 用
type
查看,内建命令
xxx is a shell builtin
外部命令
xxx is /usr/sbin/xxx
指令为命令别名所设定的名称
xxx is an alias for xx --xxx
help
命令只能用于显示内建命令的帮助信息。外部命令基本上都有一个参数--help
,这样就可以得到相应的的帮助man
没有内建与外部命令的区分cut
命令,打印每一行的某一字段grep
命令,在文本中或 stdin 中查找匹配字符串,格式grep [命令选项]... 用于匹配的表达式 [文件]...
wc
命令,简单小巧的计数工具sort
排序命令uniq
去重命令tr
命令可以用来删除一段文本信息中的某些文字- 使用
tee
命令同时重定向到多个文件,除了将需要将输出重定向到文件之外也需要将信息打印在终端 - 永久重定向,使用
exec
命令 - 利用设个/dev/null屏蔽命令的输出完全屏蔽命令的输出
教材学习中的问题和解决过程
-
无法使用
zsh
命令,使用zsh
命令会被提示没有安装,按照提示安装后也无法使用
-
没有解决
-
hello_shell.sh文件无法运行
-
.cpp文件可以运行,但是.sh无法运行,看同学的博客也写了相同的问题,但是没有解决
其他(感悟、思考等,可选)
- 本周学习了Linux的一些基础知识,主要学习了一些指令的用法,之前没有接触过Linux,所以学习起来还是感觉有吃力的,感觉即使这样跟着实验楼的实验学习了一遍,指令和用法也记不太清楚,毕竟指令太多了,只有在日后的学习中多应用多实践才能学好
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 1/2 | 25/30 | 学习Linux指令 |