zoukankan      html  css  js  c++  java
  • 20169212《网络攻防实践》第一周学习总结

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

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

    Linux的架构

    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文件。

    用户管理:

    //查看用户
    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次。
    *:匹配前面的子表达式零次或多次。
    +:匹配前面的子表达式一次或多次。
    ?:匹配前面的子表达式零次或一次。
    .:匹配除“
    ”之外的任何单个字符。
    (pattern):匹配pattern并获取这一匹配的子字符串。
    x|y:匹配x或y。
    [xyz]:匹配所包含的任意一个字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符。
    [^xyz]:排除型(negate)字符集合。匹配未列出的任意字符。
    [a-z]:字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
    [^a-z]:匹配任何不在指定范围内的任意字符。
    

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

    6. 进程管理

    top:实时的查看系统的关键信息的变化以及进程中的实时变化

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

    ps aux:罗列出所有的进程信息

    pstree:可以很直接的看到相同的进程数量及所有进程的之间的相关性

    7. 日志系统

    在 Linux 中大部分的发行版都内置使用 syslog 系统日志,日志一般存放在 /var/log 中

    配置日志

    手动打开服务

    vim /etc/rsyslog.conf 
    

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

    rsyslog 的结构框架,数据流的走向

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

    向 syslog 写入数据:

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

    查看是否有数据写入:

    tail -f /var/log/syslog
    

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

  • 相关阅读:
    KVM(Keyboard、Video、Mouse)
    javascript valueof
    javascript的typeof的返回值
    javascript的===和==
    WGestures全局鼠标手势工具
    向win+x快捷目录添加功能
    好用的影子系统软件
    备份任务栏
    修改多个调用提示最小值_改变多选右键菜单
    执行Windows Update更新
  • 原文地址:https://www.cnblogs.com/Jarvan210/p/6506971.html
Copyright © 2011-2022 走看看