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!\n");
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 分割参数列表

posted @ 2016-09-18 23:32  20145320周岐浩  阅读(252)  评论(1编辑  收藏  举报