• 《网络攻防》第一周作业


    第1节 Linux 系统简介
    通过对第一节内容的学习,对Linux有了初步认识,包括:LINUX的发展历史,Linux与Windows的不同点等内容;
    第2节 基本概念及操作
    之前寒假简单学了一些Linux的基础知识,对着部分知识理解起来相对容易,包括常用的shell指令,一些简单的快捷键等,当然还有部分内容没有涉及,现简单将内容总结如下(部分截图使用之前用过的虚拟机):
    1、简单的快捷键:
    Ctrl+d 键盘输入结束或退出终端
    Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
    Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
    Ctrl+a 将光标移至输入行头,相当于Home键
    Ctrl+e 将光标移至输入行末,相当于End键
    Ctrl+k 删除从光标所在位置到行末
    Alt+Backspace 向前删除一个单词
    Shift+PgUp 将终端显示向上滚动
    Shift+PgDn 将终端显示向下滚动
    2、使用通配符:
    通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(比如文件名,参数名)。
    使用touch创建文件(之前使用的是sudo gedit + 文件名)

    3、作业:

    第3节 用户及文件权限管理
    1、创建用户:
    之前用的都是虚拟机创建好的用户,现创建新用户如下:

    2、用户组:
    使用 usermod 命令可以为用户添加用户组,同样使用该命令必须有 root 权限,可直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令,
    这里用 shiyanlou 用户执行 sudo 命令将 sundeyang 添加到 sudo 用户组,也可以使用 sudo 命令获得 root 权限,实验结果如下:

    3、文件权限:

    读权限,表示可以使用 cat 之类的命令来读取某个文件的内容;写权限,表示可以编辑和修改某个文件; 执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的 'exe' 后缀的文件,不过 Linux 上不是通过文件后缀名来区分文件的类型。一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件。


    4、作业:
    添加一个用户loutest,使用sudo创建文件/opt/forloutest,设置成用户loutest可以读写。


    步骤:先添加一个用户loutest,然后通过mkdir命令新建一个opt文件,进入opt文件后,通过touch命令新建一个forloutest文件,然后修改权限为读写。
    第4节 Linux 目录结构及文件基本操作
    1、绝对路径
    关于绝对路径,简单地说就是以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
    相对路径
    相对路径,也就是相对于当前的目录的路径,相对路径是以当前目录 . 为起点,以所要到的目录为终点,表现形式如: usr/local/bin 。表示相对路径实际并没有加上表示当前目录的那个 . ,而是直接以目录名开头,因为这个 usr 目录为 / 目录下的子目录,是可以省略这个 . 的;如果是当前目录的上一级目录,则需要使用 .. ,比如当前目录为“home”目录,根目录就应该表示为 ../../ ,表示上一级目录("home"目录)的上一级目录("/"目录)。
    2、移动文件
    使用mv(move or rename files)命令,移动文件(剪切)。将文件"file1"移动到"Documents"目录mv 源目录文件 目的目录
    将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名
    3、查看文件
    使用cat,tac和nl命令查看文件。这两个命令都是用来打印文件内容到标准输出(终端),其中cat为正序显示,tac倒序显示。
    标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
    第5节 环境变量与文件查找
    1、环境变量
    通常我们会涉及到的环境变量有三种:
    当前 Shell 进程私有用户自定义变量,如上面我们创建的 temp 变量,只在当前 Shell 中有效。
    Shell 本身内建的变量。
    从自定义变量导出的环境变量。
    也有三个与上述三种环境变量相关的命令,set,env,export。
    这三个命令很相似,都可以用于打印相关环境变量,区别在于涉及的是不同范围的环境变量,详见下表:
    set 显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量
    env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
    export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量
    2、命令的查找路径与顺序

    练习:
    创建一个 Shell 脚本文件:

    为文件添加可执行权限,执行脚本:

    创建一个 C 语言"hello world"程序,使用gcc生成文件:

    在 shiyanlou 家目录创建一个mybin目录,并将上述 hello_shell.sh 和 hello_world 文件移动到其中,在mybin目录中分别运行你刚刚创建的两个程序:

    ![](http://images2015.cnblogs.com/blog/1115803/201703/1115803-20170305110534610-1032140978.png

    第6节 文件打包与解压缩
    1.zip压缩打包程序 (设置压缩级别为9和1(9最大,1最小))
    使用zip打包文件夹:
    $ zip -r -q -o shiyanlou.zip /home/shiyanlou
    $ du -h shiyanlou.zip
    $ file shiyanlou.zip
    2、使用unzip命令解压缩zip文件
    将shiyanlou.zip解压到当前目录:
    $ unzip shiyanlou.zip
    使用安静模式,将文件解压到指定目录:
    $ unzip -q shiyanlou.zip -d ziptest
    3.rar打包压缩命令
    rar也是 Windows 上常用的一种压缩文件格式,在 Linux 上可以使用rar和unrar工具分别创建和解压 rar 压缩包。
    安装rar和unrar工具:
    $ sudo apt-get update
    $ sudo apt-get install rar unrar
    从指定文件或目录创建压缩包或添加文件到压缩包:
    $ rm *.zip
    $ rar a shiyanlou.rar .
    4.tar打包工具
    创建一个 tar 包:

    5、作业

    第7节 文件系统操作与磁盘管理
    1、使用 mount 命令挂载磁盘到目录树
    mount命令的一般格式如下:
    mount [options] [source] [directory]
    一些常用操作:
    mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
    2、使用 losetup 命令建立镜像与回环设备的关联
    $ sudo losetup /dev/loop0 virtual.img

    如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备

    解除设备关联

    $ sudo losetup -d /dev/loop0
    3、作业

    第8节 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命令 是用于显示 shell 内建命令的简要帮助信息。帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明,一定记住 help 命令只能用于显示内建命令的帮助信息
    man命令 没有内建与外部命令的区分,因为 man 工具是显示系统手册页中的内容,这些内容大多数都是对命令的解释信息,还有一些相关的描述。
    info命令 man 和 info 就像两个集合,它们有一个交集部分,但与 man 相比,info 工具可显示更完整的 GNU 工具信息。

    第10节 命令执行顺序控制与管道
    1、命令执行顺序的控制
    顺序执行多条命令
    $ sudo apt-get update

    等待——————————然后输入下面的命令

    $ sudo apt-get install some-tool

    等待——————————然后输入下面的命令

    简单的顺序执行你可以使用;来完成, $ sudo apt-get update;sudo apt-get install some-tool;some-tool
    有选择的执行命令
    $ which cowsay>/dev/null && cowsay -f head-in ohch~
    &&就是用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,否则不执行,你可以从$?环境变量获取上一次命令的返回结果
    2、管道
    cut 命令,打印每一行的某一字段
    打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录:
    $ cut /etc/passwd -d ':' -f 1,6
    grep 命令,在文本中或 stdin 中查找匹配字符串
    grep命令的一般形式为:
    grep [命令选项]... 用于匹配的表达式 [文件]...
    3、作业:
    使用wget命令将图片从网页中下载下来

    简单学习总结:
    通过linux相关内容的学习,了解了linux是一个怎样的操作系统,具有很好的稳定性,安全性,高效率,跨平台等。学习到的linux使用和操作技巧,特别是一些shell命令的操作(主要是对之前的一些补充)。学会了一些简单的linux编程,如gcc编译器编译c程序并在shell中运行等。
    学习的一些技巧:
    第一,对于linux命令,一定要学会用man和info去查他们的解释;
    第二,养成在命令行下工作的习惯,亲自动手去实践;。

  • 相关阅读:
    Virtualbox Linux 主机与虚拟机复制粘贴
    解决 VirtualBox里Ubuntu的共享文件夹无法访问的问题
    ayui 单选框、多选框radio 元素判断是必填项 layverify='required'
    layui 复选框checked获取值和赋值
    TypeError: Cannot read properties of undefined (reading 'cancelToken')
    vue2项目部署后 Error: Cannot find module '@/views/*** '
    js 常用的文本过滤转换函数
    Express 接收post
    getActivePinia was called with no active Pinia. Did you forget to install pinia
    Mongoose对象文档无法添加属性
  • 原文地址:https://www.cnblogs.com/albertman/p/6504367.html
Copyright © 2020-2023  润新知