20169210 2016-2017-2《网络攻防实践》第一周作业
1. 重要快捷键
[Tab]
:使用Tab
键来进行命令补全,补全目录,补全命令参数。Ctrl+c
:用来强行终止当前程序。Ctrl+d
:键盘输入结束或退出终端。Ctrl+s
:暂停当前程序,暂停后按下任意键恢复运行。Ctrl+z
:将当前程序放到后台运行,恢复到前台为命令fg
。Ctrl+a
:将光标移至输入行头,相当于Home
键。Ctrl+e
:将光标移至输入行末,相当于End
键。Ctrl+k
:删除从光标所在位置到行末。Alt+Backspace
:向前删除一个单词。Shift+PgUp
:将终端显示向上滚动。Shift+PgDn
:将终端显示向下滚动。
2. Linux文件权限
使用ls -l
命令查看权限,如下图所示。
权限讲解如下图所示
权限拥有者如下图所示
讲解图片来自于实验楼。
3. Linux目录结构
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
4. Linux 文件的基本操作
- 新建名为"test"的文件:
touch test
- 新建名为"mydir"的目录:
mkdir mydir
- 复制文件"test"到"/home/shiyanlou/father/son/grandson"目录中:
cp test father/son/grandson
- 复制目录:
cp -r father family
,-r
表示递归复制。- 删除文件:
rm test
- 删除目录:
rm -r family
- 移动文件:
mv 源目录文件 目的目录
- 重命名文件:
mv 旧的文件名 新的文件名
5. 打印环境变量
set
,env
,export
。 这三个命令都可以用于打印相关环境变量,区别在于涉及的是不同范围的环境变量,详见下表:
命令 | 说明 |
---|---|
set |
显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量 |
env |
显示与当前用户相关的环境变量,还可以让命令在指定环境中运行 |
export |
显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量 |
6. 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程序压缩的文件 |
*tar.bz2 |
tar打包,bzip2程序压缩的文件 |
*.tar.7z |
tar打包,7z程序压缩的文件 |
7. Linux下的帮助命令
- 1. 内建命令与外部命令的区别
- 内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令shell不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
- 外部命令是Linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在Bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
- 2. help 命令
如下图所示,因为 help命令是用于显示shell内建命令的简要帮助信息。帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明,一定记住help命令只能用于显示内建命令的帮助信息,不然就会得到你刚刚得到的结果。如图中 exit,cd 便是内建命令。
外部命令的话基本上都有一个参数--help,这样就可以得到相应的的帮助,看到你想要的东西了。
- 3. man 命令
得到的内容比用 help 更多更详细,而且 man 没有内建与外部命令的区分,因为man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的man也可以得到程序的更多相关信息和 Linux 的更多特性。
在尝试上面这个命令是我们会发现最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一章节。
- 1 Standard commands (标准命令)
- 2 System calls (系统调用)
- 3 Library functions (库函数)
- 4 Special devices (设备说明)
- 5 File formats (文件格式)
- 6 Games and toys (游戏和娱乐)
- 7 Miscellaneous (杂项)
- 8 Administrative Commands (管理员命令)
- 9 其他(Linux特定的), 用来存放内核例行程序的文档。
man -k 相当于一个搜索引擎
- 4. info 命令
info得到的信息比man还要多,man和info就像两个集合,它们有一个交集部分,但与 man 相比,info工具可显示更完整的GNU工具信息。若man页包含的某个工具的概要信息在info中也有介绍,那么 man 页中会有“请参考info页更详细内容”的字样。
8. cheat 命令
cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
9. 其他核心命令
和查找相关的核心命令还有find
,locate
,grep
,whereis
,which
等,其中:
-
find查找一个文件在系统中的什么位置,locate是神速版本的find(Windows下有个神器Everything和locate功能类似)。可以通过
cheat find
学习find
命令。 -
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
查查有没有这个程序。