20169212《网络攻防实践》第一周学习总结

20169212 2016-2017-2 《网络攻防实践》第一周学习总结

由于之前有学习过Linux课程,所以在这里对基础知识做一个总结梳理。同时也深入学习到了一些新知识,在此把学习过的统一总结如下:

Linux的架构

20169212《网络攻防实践》第一周学习总结_第1张图片

1. 常用快捷键:

Ctrl+d:键盘输入结束或退出终端;
Ctrl+s:暂停当前程序,暂停后按下任意键恢复运行;
Ctrl+z:将当前程序放到后台运行,恢复到前台为命令fg;
Ctrl+a:将光标移至输入行头,相当于Home键;
Ctrl+e:将光标移至输入行末,相当于END键;
Ctrl+k:删除从光标所在位置到行末;
Ctrl+c:中断程序运行;
Alt+Backspace:向前删除一个单词;
Shift+PgUp:将终端显示向上滚动;
Shift+PgDn:将终端显示向下滚动;
CTRL+ALT+T:打开终端;
CTRL+SHIFT+T:新建标签页;
ALT+数字N:终端中切换到第N个标签页;
Tab:终端中命令补全;
上下键盘:切换命令历史,按上键就可以恢复。

2. Linux命令:

可用来学习的命令

man -k:找到命令;
man -f cmd:查看命令的基本功能(man -f等价于whatis);
man -k key1 | grep key2 | grep key3 | ...:多关键字查找;
cheat cmd:查看命令对应的例子,学会如何使用该命令。

常用命令

ls或ls .:是两条等价的命令,显示是当前目录的内容;
ls -a .:显示当前目录中的所有内容,包括隐藏文件和目录, “-a” 就是选项;
ls -l:查看文件权限;
pwd :可以获取当前所在路径;
touch:创建文件;
mkdir name:新建目录(使用 -p 参数,同时创建父目录);
//复制文件
cp 源文件 目的目录:复制文件;
cp -r 源目录 目的目录:复制目录(加上-r或者-R参数,表示递归复制)。
//删除文件
rm 文件名:删除文件(-f 参数,强制删除);
rm -r 目录:删除目录;
mv 源目录文件 目的目录:移动文件;
mv 旧的文件名 新的文件名:重命名文件。
//查看文件
cat 文件名:查看文件(-n 参数,显示行号);
tail 文件名:查看文件尾部几行(系统新增加一个用户,应该会将用户的信息添加到passwd文件的最后,那么这时候我们就可以使用tail命令了);
tail -n 行数 文件名:只看n行;
file 文件:查看文件类型;
grep -n main *.c:快速找到main在哪个C文件中并指出在第几行;
wc 文件名:输出文件统计信息(-l行数,-w单词数,-c字节数,-m字符数,-L最长行字节数)。
//搜索文件
whereis 文件名:搜索文件;
locate /etc/sh:查找 /etc 下所有以 sh 开头的文件;
locate /usr/share/*.jpg:查找 /usr/share/ 下所有 jpg 文件;
find path -name interfaces:搜索指定文件名的文件;
find ~ -mtime n: n 为数字,表示为在n天之前的”一天之内“修改过的文件;
grep -rnI "shiyanlou" ~:搜索/home/shiyanlou目录下所有包含"shiyanlou"的所有文本文件(-r 参数表示递归搜索子目录中的文件,-n表示打印匹配项行号,-I表示忽略二进制文件)。
//文本处理:
echo 'hello shiyanlou' | tr -d 'olh':删除 "hello shiyanlou" 中所有的'o','l','h';
echo 'hello' | tr -s 'l':将"hello" 中的ll,去重为一个l;
cat /etc/passwd | tr '[:lower:]' '[:upper:]':将输入文本,全部转换为大写或小写输出。
//安装软件
sudo apt-get install 软件名:安装软件;
sudo apt-get --reinstall install 软件名:重新安装;
sudo apt-get remove 软件名:删除软件;
sudo apt-cache search softname1 softname2 softname3……:软件搜索。

文件打包和解压缩:

zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/.zip:-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名;
du -h -d 0
.zip ~ | sort:用du命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小;
unzip shiyanlou.zip:shiyanlou.zip解压到当前目录;
unzip -q shiyanlou.zip -d ziptest:使用安静模式,将文件解压到指定目录;
rar a shiyanlou.rar .:使用a参数添加一个目录~到一个归档文件中,如果该文件不存在就会自动创建;
rar d shiyanlou.rar .zshrc:从指定压缩包文件中删除某个文件;
rar l shiyanlou.rar:查看不解压文件;
unrar x shiyanlou.rar:全路径解压;
tar -cf shiyanlou.tar ~:创建一个 tar 包(-c表示创建一个 tar 包文件,-f用于指定创建的文件名);
tar -xf shiyanlou.tar -C tardir:解包一个文件(-x参数)到指定路径的已存在目录(-C参数);
tar -czf shiyanlou.tar.gz ~:在创建 tar 文件的基础上添加-z参数,使用gzip来压缩文件;
tar -xzf shiyanlou.tar.gz:解压*.tar.gz文件。

20169212《网络攻防实践》第一周学习总结_第2张图片

用户管理:

//查看用户
who
参数 说明
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级
//创建用户
sudo adduser name:创建用户;
su :切换到用户user;
su - :切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
//用户组
groups name:查看用户所属的用户组;
cat 文件名:命令用于读取指定文件的内容并打印到终端输出;
cat /etc/group | sort: | sort 表示将读取的文本进行一个字典排序再输出。
//删除用户
sudo deluser lilei --remove-home:删除用户李雷。

文件权限管理:

sudo chown newowner name:变更文件所有者;
chmod rwx name: 修改权限;
chmod go-rw name:加减赋值操作,'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。

磁盘管理:

df:使用 df 命令查看磁盘的容量;
du:使用 du 命令查看目录的容量;
du -h -d 0 ~:只查看1级目录的信息。

环境变量:

declare tmp:创建一个变量名为 tmp 的变量(可使用=号赋值运算符为变量 tmp 赋值);
echo $tmp:读取变量的值;
unset temp:删除环境变量;
source .zshrc: 让环境变量立即生效(zsh 的配置文件 home 目录下的.zshrc);
export | grep ".*yanlou$":查看环境变量中以"yanlou"结尾的字符串。

3. 通配符:

通配符是一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名,参数名)。

4. 命令执行顺序:

||:当上一条命令执行结果为≠0($?≠0)时则执行它后面的命令;
/&/&:当上一条命令执行结果为=0($?=0)时则执行它后面的命令;
which cowsay>/dev/null && echo "exist" || echo "not exist"

5. 正则表达式:

- 选择
|竖直分隔符表示选择

- 数量限定

数量限定除了我们举例用的*,还有+加号,?问号,如果在一个模式中不加数量限定符则表示出现一次且仅出现一次:+表示前面的字符必须出现至少一次(1次或多次);?表示前面的字符最多出现一次(0次或1次);*星号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。

-范围和优先级
()圆括号可以用来定义模式字符串的范围和优先级,这可以简单的理解为是否将括号内的模式串作为一个整体。

- 语法(部分)

\:将下一个字符标记为一个特殊字符、或一个原义字符。
^:匹配输入字符串的开始位置。
$:匹配输入字符串的结束位置。
{n}:n是一个非负整数。匹配确定的n次。
{n,}:n是一个非负整数。至少匹配n次。
{n,m}:m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。
*:匹配前面的子表达式零次或多次。
+:匹配前面的子表达式一次或多次。
?:匹配前面的子表达式零次或一次。
.:匹配除“\n”之外的任何单个字符。
(pattern):匹配pattern并获取这一匹配的子字符串。
x|y:匹配x或y。
[xyz]:匹配所包含的任意一个字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符。
[^xyz]:排除型(negate)字符集合。匹配未列出的任意字符。
[a-z]:字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
[^a-z]:匹配任何不在指定范围内的任意字符。

可拓展学习,这20个正则表达式,让你少写1,000行代码,还在学习中。

6. 进程管理

top:实时的查看系统的关键信息的变化以及进程中的实时变化
20169212《网络攻防实践》第一周学习总结_第3张图片

ps -l:显示自己这次登陆的 bash 相关的进程信息

ps aux:罗列出所有的进程信息
20169212《网络攻防实践》第一周学习总结_第4张图片

pstree:可以很直接的看到相同的进程数量及所有进程的之间的相关性
20169212《网络攻防实践》第一周学习总结_第5张图片

7. 日志系统

在 Linux 中大部分的发行版都内置使用 syslog 系统日志,日志一般存放在 /var/log 中
20169212《网络攻防实践》第一周学习总结_第6张图片

配置日志

手动打开服务

vim /etc/rsyslog.conf 

20169212《网络攻防实践》第一周学习总结_第7张图片

vim /etc/rsyslog.d/50-default.conf

20169212《网络攻防实践》第一周学习总结_第8张图片

rsyslog 的结构框架,数据流的走向:
20169212《网络攻防实践》第一周学习总结_第9张图片

rsyslog 主要是由 Input、Output、Parser 这样三个模块构成的,并且了解到数据的简单走向,首先通过 Input module 来收集消息,然后将得到的消息传给 Parser module,通过分析模块的层层处理,将真正需要的消息传给 Output module,然后便输出至日志文件中。
Rsyslog 架构如图中所示,从图中我们可以很清楚的看见,rsyslog 还有一个核心的功能模块便是 Queue,也正是因为它才能做到如此高的并发。
20169212《网络攻防实践》第一周学习总结_第10张图片

向 syslog 写入数据:

ping 127.0.0.1 | logger -it logger_test -p local3.notice &

查看是否有数据写入:

tail -f /var/log/syslog

20169212《网络攻防实践》第一周学习总结_第11张图片

成功的将 ping 的信息写入了 syslog 中,格式也就是使用的 rsyslog 的默认模板。

你可能感兴趣的:(20169212《网络攻防实践》第一周学习总结)