• 20145320 《信息安全系统设计基础》第一周学习总结


    教材学习内容总结

    第一节 Linux系统

    1:Linux系统

     登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments)。
    
      即Linux中命令格式为:command[options][arguments]。但有些命令也不需要跟着选项或参数。
    

    选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同。

    参数是指命令的作用对象。

    2 :man命令

      1是普通的Linux命令(用户命令帮助)
    
      2是系统调用,操作系统的提供的服务接口(系统调用帮助)
    
      3是库函数, C语言中的函数(库函数调用帮助)
    
      5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义(配置文件帮助)
    
      6是给游戏留的,由各个游戏自己定义(Games)
    
      7是附件还有一些变量,比如向environ这种全局变量在这里就有说明(Miscellaneous)
    
      8是系统管理用的命令,这些命令只能由root使用,如ifconfig。(usually only for root)
    

    3:cheat 命令

      cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。
    

    4:其他核心命令

     和查找相关的核心命令还有find,locate,grep,whereis,which。
    

    5:课程其他命令

    实验一

    • 本节主要介绍 Linux 的历史,Linux 与 Windows 的区别等入门知识。

    实验二:Linux 用户管理及权限

    1.查看用户

    • 打开终端,输入命令 $ who am i(或whoami) 或者 $ who mom likes。

    2.创建用户

    • $ sudo adduser tokyo
    • 这里要注意的是这里不可出现大写,例如Tokyo什么的,会出现

    3.用户组

    • 方法一:使用groups命令

    • $ groups tokyo

    • 方法二:查看/etc/group文件

    • $ cat /etc/group | sort

    4.删除用户

    • $ sudo deluser tokyo --remove-home

    2:Linux 文件权限

    • 1.查看文件权限 $ls -l

    • 2.变更文件所有者

        假设目前是 lilei 用户登录,新建一个文件,命名为 “tokyo”:
      
        $ touch tokyo
      
        可见文件所有者是 lilei :
      
        现在,使用以下命令变更文件所有者为 shiyanlou :
      
        $ cd /home/lilei
        $ ls tokyo
        $ sudo chown shiyanlou tokyo
        $ cp tokyo /home/shiyanlou
      
    • 3.修改文件权限

        方式一:二进制数字表示
      
        $ echo "echo "hello shiyanlou"" > tokyo   然后修改权限: $ chmod 700 tokyo
      
         方式二:加减赋值操作
      
         $ chmod go-rw tokyo   'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。
      

    实验三 :Linux 目录结构及文件基本操作

    • 一、Linux 目录结构

      	使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录,- 表示上一次所在目录,~ 通常表示当前用户的"home"目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
      
      	进入上一级目录:   $ cd ..
      
         进入你的“home”目录:  $ cd ~ # 或者 cd /home/<你的用户名>
      
      	使用 pwd 获取当前路径: $ pwd
      

    二、Linux 文件的基本操作

    • 1.新建

      新建空白文件:
      创建名为 test 的空白文件,因为在其他目录没有权限,所以需要先 cd ~ 切换回用户的 /home/shiyanlou 目录: $ cd ~ $ touch test。
      新建目录:
      创建名为"mydir"的空目录: $ mkdir mydir 。使用 -p 参数,同时创建父目录(如果不存在该父目录)。 $ mkdir -p father/son/grandson
      
    • 2.复制

        复制文件
      
        使用cp(copy)命令复制一个文件或目录到指定目录。将之前创建的"test"文件复制到"/home/shiyanlou/father/son/grandson"目录中:
      
        $ cp test father/son/grandson
      
        复制目录
      

      如果直接使用cp命令,复制一个目录的话,会出现如下错误:要成功复制目录需要加上-r或者-R参数,表示递归复制。$ cp -r father family

    • 3.删除

        删除文件
      
        使用rm(remove files or directories)命令,删除一个文件或目录: $ rm test
      
        删除目录
      
        跟复制目录一样,要删除一个目录,也需要加上-r或-R参数:$ rm -r family
      
    • 4.移动文件与文件重命名

        移动文件
      
        使用mv(move or rename files)命令,移动文件(剪切)。将文件"file1"移动到"Documents"
        目录mv 源目录文件 目的目录:$ mv file1 Documents
      
      
        重命名文件
      
        将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名:
      
        $ mv file1 myfile
      
    • 5.查看文件

        我们要查看之前从"/etc"目录下拷贝来的passwd文件:
      
        $ cat passwd
      
        可以加上-n参数显示行号:
      
        $ cat -n passwd
      
        nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。
      
        这里简单列举它的常用的几个参数:
      
        -b : 指定添加行号的方式,主要有两种:
        	 -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
        	 -b t:只列出非空行的编号并列出(默认为这种方式)
        -n : 设置行号的样式,主要有三种:
        	-n ln:在行号字段最左端显示
        	-n rn:在行号字段最右边显示,且不加 0
        	-n rz:在行号字段最右边显示,且加 0
        -w : 行号字段占用的位数(默认为 6 位)
      
    • 6.查看文件类型

         $ file /bin/ls。
      

    实验四:环境变量与文件查找

    一、环境变量

    • 1.变量

    使用=号赋值运算符为变量 tmp 赋值为 shiyanlou: $tokyo=shiyanlou

    读取变量的值,使用echo命令和$符号:$ echo $tokyo

    • 2.环境变量

    • 3.命令的查找路径与顺序

    查看PATH环境变量的内容:

    $ echo $PATH

    默认情况下你会看到如下输出:

    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

    为文件添加可执行权限:

    $ chmod 755 hello_shell.sh

    执行脚本

    $ ./hello_shell.sh

    创建一个 C 语言"hello world"程序:

    $ vim hello_world.c

    #include <stdio.h>
    
    int main(void)
    {
    printf("hello world!
    ");
    return 0;
    }
    

    使用 gcc 生成可执行文件:

    $ gcc -o hello_world hello_world.c

    在 shiyanlou 家目录创建一个mybin目录,并将上述 hello_shell.sh 和 hello_world 文件移动到其中:

    $ mkdir mybin
    $ mv hello_shell.sh hello_world mybin/

    回到上一级目录,也就是shiyanlou家目录,当再想运行那两个程序时,会发现提示命令找不到,除非加上命令的完整路径,但那样很不方便,如何做到想使用系统命令一样执行自己创建的脚本文件或者程序呢?那就要将命令所在路径添加到PATH环境变量了。

    • 4.添加自定义路径到“PATH”环境变量

    在前面我们应该注意到PATH里面的路径是以:作为分割符,所以我们可以这样添加自定义路径:

    $ PATH=$PATH:/home/shiyanlou/mybin

    • 5.修改和删除已有变量

      变量修改

      变量删除

    • 6.如何让环境变量立即生效

    二、搜索文件

    与搜索相关的命令常用的有如下几个whereis,which,find,locate。
    
    whereis简单快速 $whereis who
    
    你会看到它找到了三个路径,两个可执行文件路径和一个 man 在线帮助文件所在路径,这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。如果想要获得更全面的搜索结果可以使用locate命令。
    
    locate快而全
    

    实验五 文件打包与压缩

    • 1.zip压缩打包程序

    du命令查看打包后文件的大小

    第一行命令中,-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。

    使用-e参数。

    • 2.使用unzip命令解压缩zip文件

    使用-O(英文字母,大写o)参数指定编码类型;

    不想解压只想查看压缩包的内容你可以使用-l参数;

    • 3.rar打包压缩命令

    使用rar和unrar工具分别创建和解压 rar 压缩包。

    使用a参数添加一个目录~到一个归档文件中,如果该文件不存在就会自动创建。

    • 4.tar打包工具(tar命令一些基本的使用方式)

    实验六: 文件系统操作与磁盘管理

    • 一、简单文件系统操作

    • 1.查看磁盘和目录的容量

        使用 df 命令查看磁盘的容量 $ df
      
        使用 du 命令查看目录的容量
        $ du 
        # 加上`-h`参数,以更易读的方式展示
        $ du -h
      
        -d参数指定查看目录的深度
      
        # 只查看1级目录的信息
        $ du -h -d 0 ~
        # 查看2级
        $ du -h -d 1 ~
      
    • 二、简单的磁盘管理

    • 1.创建虚拟磁盘

        dd 命令简介
        从标准输入读入用户输入到标准输出或者一个文件:
      
        # 输出到文件
        $ dd of=test bs=10 count=1 # 或者 dd if=/dev/stdin of=test bs=10 count=1
        # 输出到标准输出
        $ dd if=/dev/stdin of=/dev/stdout bs=10 count=1
      
        使用dd命令来完成创建虚拟磁盘的第一步。
      
        从/dev/zero设备创建一个容量为 256M 的空文件:
      
        $ dd if=/dev/zero of=virtual.img bs=1M count=256
        $ du -h virtual.img
      
      • 使用 mkfs 命令格式化磁盘

      • 使用mount来查看下主机已经挂载的文件系统:$ sudo mount

      • 使用 umount 命令卸载已挂载磁盘

      • 命令格式 sudo umount 已挂载设备名或者挂载点,如:

        • $ sudo umount /mnt
      • 使用 fdisk 为磁盘分区

    实验八:命令执行顺序控制与管道

    • 一、命令执行顺序的控制

        1.顺序执行多条命令
        $ sudo apt-get update
        # 等待——————————然后输入下面的命令
        $ sudo apt-get install some-tool
        # 等待——————————然后输入下面的命令
        $ some-tool
      
        2.有选择的执行命令
        $ which cowsay>/dev/null && cowsay -f head-in ohch~
      
    • 二、管道

    • 1.试用

        先试用一下管道,比如查看/etc目录下有哪些文件和目录,使用ls命令来查看:
      
        $ ls -al /etc
      
        有太多内容,屏幕不能完全显示,这时候可以使用滚动条或快捷键滚动窗口来查看。不过这时候可以使用管道:
      
        $ ls -al /etc | less
      
        通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看。
      
    • 2.cut 命令,打印每一行的某一字段

        打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录:
      
        $ cut /etc/passwd -d ':' -f 1,6
        # 前五个(包含第五个)
        $ cut /etc/passwd -c -5
        # 前五个之后的(包含第五个)
        $ cut /etc/passwd -c 5-
        # 第五个
        $ cut /etc/passwd -c 5
        # 2到5之间的(包含第五个)
        $ cut /etc/passwd -c 2-5
      
    • 3.grep 命令,在文本中或 stdin 中查找匹配字符串

    • 4.wc 命令,简单小巧的计数工具

        wc 命令用于统计并输出一个文件中行、单词和字节的数目,比如输出/etc/passwd文件的统计信息:
      
        $ wc /etc/passwd
      
        分别只输出行数、单词数、字节数、字符数和输入文本中最长一行的字节数:
      
        # 行数
        $ wc -l /etc/passwd
        # 单词数
        $ wc -w /etc/passwd
        # 字节数
        $ wc -c /etc/passwd
        # 字符数
        $ wc -m /etc/passwd
        # 最长行字节数
        $ wc -L /etc/passwd
      
    • 5.sort 排序命令

    • 6.uniq 去重命令

    实验九:简单的文本处理

    • 1:文本处理命令

    • 1.tr 命令

        tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。
        使用方式:
      
        tr [option]...SET1 [SET2]
      
        常用的选项有:
        -d 	删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配
        -s 	去除set1指定的在输入文本中连续并重复的字符
        操作举例:
      
        # 删除 "hello shiyanlou" 中所有的'o','l','h'
        $ echo 'hello shiyanlou' | tr -d 'olh'
        # 将"hello" 中的ll,去重为一个l
        $ echo 'hello' | tr -s 'l'
        # 将输入文本,全部转换为大写或小写输出
        $ cat /etc/passwd | tr '[:lower:]' '[:upper:]'
        # 上面的'[:lower:]' '[:upper:]'你也可以简单的写作'[a-z]' '[A-Z]',当然反过来将大写变小写也是可以的
      
    • 2.col 命令

        col 命令可以将Tab换成对等数量的空格建,或反转这个操作。
        使用方式:
        col [option]
      
        常用的选项有:
        选项	说明
        -x 	将Tab转换为空格
        -h 	将空格转换为Tab(默认选项)
      
    • 3.join命令

        学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一起。
        使用方式:
      
        join [option]... file1 file2
      

      常用的选项有:
      -t 指定分隔符,默认为空格
      -i 忽略大小写的差异
      -1 指明第一个文件要用哪个字段来对比,,默认对比第一个字段
      -2 指明第二个文件要用哪个字段来对比,,默认对比第一个字段

    • 4.paste命令

      paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。
      使用方式:

      paste [option] file...

      常用的选项有:
      -d 指定合并的分隔符,默认为Tab
      -s 不合并到一行,每个文件为一行

    实验十 :数据流重定向

    • 一、数据流重定向

    • 1.简单的重定向

    • 2.标准错误重定向

    • 3.使用tee命令同时重定向到多个文件

        经常你可能还有这样的需求,除了将需要将输出重定向到文件之外也需要将信息打印在终端,那么你可以使用tee命令来实现:
      
        $ echo 'hello shiyanlou' | tee hello
      
    • 4.永久重定向

    • 5.创建输出文件描述符

    • 6.关闭文件描述符

    • 7.完全屏蔽命令的输出

    • 8.使用 xargs 分割参数列表

  • 相关阅读:
    javascript 版的 MD5
    一个通用的动态加载数据例子(IE5,NS6,Mozilla 1.3b)
    javascript 版的 MD4
    javascript 版的 sha1
    用dhtml做了一个密码管理器
    java版本的escape和unescape函数
    java版的MD5
    vue:app.vue中添加监听beforeunload事件,即当浏览器窗口关闭或刷新时删除vuex中的数据
    vue设置全局样式:loadOptions
    内网穿透frp
  • 原文地址:https://www.cnblogs.com/zqh20145320/p/5883510.html
Copyright © 2020-2023  润新知