黑马linux笔记(转载)

学习链接

视频链接:黑马程序员新版Linux零基础快速入门到精通
原文链接:黑马程序员新版Linux零基础快速入门到精通——学习笔记

黑马Linux笔记

文章目录

    • 学习链接
    • 01初识Linux
      • 1.1、操作系统概述
        • 1.1.1、硬件和软件
        • 1.1.2、操作系统
        • 1.1.3、常见操作系统
      • 1.2、初识Linux
        • 1.2.1、Linux的诞生
        • 1.2.2、Linux的内核
        • 1.2.3、Linux发行版
      • 1.3、虚拟机介绍
      • 1.4、VMware WorkStation安装
      • 1.5、在VMware上安装Linux
      • 1.6、远程连接Linux系统
        • 1.6.1、学习目标
        • 1.6.2、图形化、命令行
        • 1.6.3、使用命令行学习Linux系统
        • 1.6.4、FinalShell的下载地址:
        • 1.6.5、远程连接虚拟机步骤
      • 1.7、拓展:WSL(Windows SubSystem for Linux)
        • 1.7.1、为什么要用WSL
        • 1.7.2、什么是WSL
        • 1.7.3、部署WSL
        • 1.7.4、安装Ubuntu
        • 1.7.5、安装Terminal软件
      • 1.8、拓展:虚拟机快照
        • 1.8.1、为什么要进行虚拟机快照?
        • 1.8.2、虚拟机关机的状态下,进行虚拟机快照
    • 02、Linux基础命令
      • 2.1、Linux的目录结构
        • 2.1.1、学习目标
        • 2.1.2、Linux的目录结构是一个树型结构
        • 2.1.3、Linux只有一个顶级目录,称之为:根目录
        • 2.1.4、课后练习
      • 2.2、Linux命令入门
        • 2.2.1、Linux命令基础
          • 1、命令行与命令
          • 2、Linux命令有其通用的格式
        • 2.2.2、ls命令
          • 1、作用
          • 2、语法
          • 拓展:HOME目录和工作目录
          • 3、ls命令参数(路径)
            • (1)ls命令的参数的作用
            • (2)举例:查看根目录下的内容
          • 4、ls命令选项(-a -l -h)
            • (1)-a
            • (2)-l
            • (3)-h
            • (4)组合使用
        • 2.2.3、cd 切换工作目录
          • 1、作用
          • 2、语法
        • 2.2.4、pwd 查看当前工作目录
          • 1、作用
          • 2、语法
        • 2.2.5、mkdir 创建目录命令
          • 1、作用
          • 2、语法
          • 3、创建多层级目录
      • 2.4、相对路径、绝对路径和特殊路径符
        • 2.4.1、相对路径和绝对路径
        • 2.4.2、特殊路径符(.)(…)(~)
        • 2.4.3、课后练习
      • 2.5、文件操作命令
        • 2.5.1、touch 创建文件
          • 1、作用
          • 2、语法
        • 2.5.2、cat 查看文件内容
          • 1、作用
          • 2、语法
        • 2.5.3、more 查看文件内容
          • 1、作用
          • 2、语法
          • 3、退出查看
          • 4、与cat的不同点
        • 2.5.4、cp 复制文件\\文件夹
          • 1、作用
          • 2、语法
        • 2.5.5、mv 移动文件或文件夹
          • 1、作用
          • 2、语法
        • 2.5.6、rm 删除文件、文件夹
          • 1、作用
          • 2、语法
          • 3、通配符\*
          • 4、强制删除,-f选项
      • 2.6、统计命令
        • 2.6.1、grep命令
          • 1、作用
          • 2、语法
        • 2.6.2、wc命令 做数量统计
          • 1、作用
          • 2、语法
        • 2.6.3、管道符|
          • 1、作用
      • 2.7、查找命令(which、find)
        • 2.7.1、which命令
          • 1、作用
          • 2、语法
        • 2.7.2、find命令
          • 1、作用1
          • 2、find命令结合通配符\*
          • 3、作用2
          • 4、课后练习
      • 2.8、输出指令:echo、重定向符和tail
        • 2.8.1、echo命令
          • 1、作用
          • 2、语法
          • 3、当输出内容为命令时\`\`
        • 2.8.2、重定向符>和>>
        • 2.8.3、tail命令
          • 1、作用
          • 2、语法
          • 3、课后练习
      • 2.9、vi编辑器
        • 2.9.1、vi\\vim编辑器介绍
        • 2.9.2、vi\\vim编辑器的三种工作模式
        • 2.9.3、通过vi/vim编辑器编辑文件,进入命令:
        • 2.9.4、vi 编辑器的快速体验
        • 2.9.5、命令模式快捷键
        • 2.9.6、底线命令模式
    • 03、Linux用户和权限管控
      • 3.1、认知root 用户
        • 3.1.1、root用户(超级管理员)
        • 3.1.2、su和exit命令
          • 1、作用
          • 2、语法
          • 3、退出
        • 3.1.3、sudo命令
          • 1、作用
          • 2、语法
          • 3、为普通用户配置sudo认证
      • 3.2、用户、用户组管理
      • 3.3、查看权限控制
      • 3.4、修改权限控制
        • 3.4.1、chmod命令
          • 1、作用
          • 2、语法
          • 3、权限的数字序号
        • 3.4.2、chown命令
          • 1、作用
          • 2、语法
          • 3、示例
    • 04、Linux实用操作
      • 4.1、各类小技巧(快捷键)
        • 4.1.1、强制停止
        • 4.1.2、退出或登出
        • 4.1.3、history——历史命令搜索
          • 1、作用
          • 2、语法
          • 3、案例
          • 4、`!命令前缀`
          • 5、`Ctrl+r`,输入内容去匹配历史命令
        • 4.1.4、光标移动快捷键
        • 4.1.5、清屏
      • 4.2、软件安装
        • 4.2.1、Linux系统的应用商店
        • 4.2.2、yum命令
          • 1、作用
          • 2、语法
          • 3、案例
        • 4.2.3、apt命令-扩展
          • 1、作用
          • 2、语法
          • 3、案例
      • 4.3、软件操作命令
        • 4.3.1、systemctl
          • 1、作用
          • 2、语法
          • 3、部分第三方软件以systemctl进行控制
      • 4.4、软链接
        • 4.4.1、什么是软链接
        • 4.4.2、ln命令创建软链接
          • 1、作用
          • 2、语法
          • 3、实例
      • 4.5、日期、时区
        • 4.5.1、date命令
          • 1、作用
          • 2、语法
          • 3、date命令进行日期加减
        • 4.5.2、修改Linux时区
        • 4.5.3、ntp程序
      • 4.6、IP地址、主机名
        • 4.6.1、IP地址
          • 1、IP地址介绍
          • 2、查看主机IP地址命令
          • 3、特殊IP地址
        • 4.6.2、主机名
          • 1、主机名介绍
          • 2、在Linux中修改主机名
        • 4.6.3、域名解析
          • 1、什么是域名解析
          • 2、访问域名的流程
          • 3、配置主机名映射
        • 4.6.4、虚拟机配置固定IP
          • 1、为什么需要固定IP
          • 2、(Windows)在VMware Workstation中配置固定IP
          • 3、(MacOS)在VMware Fusion中配置固定IP
      • 4.7、网络传输
        • 4.7.1、下载和网络请求
          • 1、ping命令
            • (1)作用
            • (2)语法
          • 2、wget命令
            • (1)作用
            • (2)语法
          • 3、curl命令
            • (1)作用
            • (2)语法
        • 4.7.2、端口
          • 1、端口
          • 2、虚拟端口
          • 3、Linux系统支持65535个端口,这些端口分为3类进行使用
            • (1)公认端口
            • (2)注册端口
            • (3)动态端口
          • 4、查看端口占用
            • (1)nmap命令
            • (2)netstat命令
      • 4.8、进程管理
        • 4.8.1、进程
        • 4.8.2、ps——查看进程
          • 1、作用
          • 2、语法
          • 3、查看指定进程
        • 4.8.3、kill——关闭进程
          • 1、作用
          • 2、语法
      • 4.9、主机状态
        • 4.9.1、top命令
          • 1、作用
          • 2、语法
          • 3、top命令内容详解
          • 4、top命令选项
          • 5、top交互式选项
        • 4.9.2、磁盘信息监控
          • 4.9.2.1、df命令
            • 1、作用
            • 2、语法
          • 4.9.2.2、iostat命令
            • 1、作用
            • 2、语法
            • 3、使用`iostat`的-x选项,可以显示更多的信息
        • 4.9.3、网络状态监控
          • 4.9.3.1、sar命令
            • 1、作用
            • 2、语法
      • 4.10、环境变量
        • 4.10.1、环境变量
          • 1、环境变量的作用
          • 2、环境变量是什么?
          • 3、环境变量:PATH
        • 4.10.2、$符号
        • 4.10.3、自行设置环境变量
      • 4.11、上传、下载
      • 4.12、压缩、解压
        • 4.12.1、压缩格式
        • 4.12.2、tar命令
        • 4.12.3、zip、unzip命令

01初识Linux

1.1、操作系统概述

1.1.1、硬件和软件

我们所熟知的计算机是由硬件和软件组成的。

硬件: 计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。

(看的见、摸得着的东西:CPU、内存硬盘、显示屏、鼠标等)

软件: 是用户和计算机硬件之间的接口和桥梁,用户通过软件和计算机进行交流。

(操作系统,就是软件的一类)

1.1.2、操作系统

操作系统是计算机软件的一种

主要作用:作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。

操作系统可以:

  • 调度CPU进行工作
  • 调度内存进行工作
  • 调度硬盘进行数据存储
  • 调度网卡进行网络通讯
  • 调度音响发出声音
  • 调度打印机打印内容

在这里插入图片描述

1.1.3、常见操作系统

(1)PC操作系统:Windows、Linux、MacOS

(2)移动设备的操作系统:Android、IOS、HarmonyOS

1.2、初识Linux

1.2.1、Linux的诞生

Linux由 林纳斯·托瓦兹 在1991年创立并发展至今成为服务器操作系统领域的核心系统。

1.2.2、Linux的内核

Linux系统由两部分组成:Linux系统内核系统级应用程序

  • Linux系统内核:内核提供最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等;
  • 系统级应用程序:可以理解为 出厂自带程序 ,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等。

在这里插入图片描述

举例:

比如,播放音乐,无论用户使用自带音乐播放器或是自行安装的第三方播放器,均是由播放器程序,调用内核提供的相关功能,由内核调度CPU解码、音响发声等。

内核是免费、开源的

  • 任何人都可以获得并修改内核,并且自行集成系统级程序

    下载Linux内核地址:http://www.kernel.org

  • 提供了内核+系统级程序的完整封装,称之为Linux发行版。

1.什么是Linux系统的内核?

内核提供了Linux系统的主要功能,如硬件调度管理的能力。Linux内核是免费开源的,任何人都可以查看内核的源代码,甚至是贡献源代码。

2.什么是Linux系统发行版?

内核无法被用户直接使用,需要配合应用程序才能被用户使用。在内核之上,封装系统级应用程序,组合在一起就称之为Linux发行版。

1.2.3、Linux发行版

任何人都可以封装Linux,目前市面上由非常多的Linux发行版,常用的、知名的如下:

在这里插入图片描述

本次课程,我们将基于:

  • 主要基于 CentOS操作系统 进行讲解
  • 辅助讲解 Ubuntu系统 的相关知识

不同的发行版:

  • 基础命令100%是相同的
  • 部分操作不同(如软件安装)

不论用什么发行版,都是Linux,学到的东西都是 通用 的。

1.3、虚拟机介绍

学习Linux系统,就需要有一个可用的Linux系统。

由于Linux系统并不适合日常办公使用,所以我们需要借助虚拟机来获得可用的Linux系统环境进行学习。

借助虚拟化技术,我们可以在系统中,通过软件:模拟计算机硬件,并给虚拟硬件安装真实的操作系统。

这样,就可以在电脑中,虚拟出一个完整的电脑,以供我们学习Linux系统。

在这里插入图片描述

1.什么是虚拟机?

通过虚拟化技术,在电脑内,虚拟出计算机硬件,并给虚拟的硬件安装操作系统,即可得到一台虚拟的电脑,称之为虚拟机。

2.为什么要使用虚拟机?

学习Linux系统,需要有Linux系统环境。我们不能给自己电脑重装系统为Linux,所以通过虚拟机的形式,得到可以用的Linux系统环境,供后续学习使用。

1.4、VMware WorkStation安装

1、课程选用VMware WorkStation软件来提供虚拟机。

2、下载地址:https://www.vmware.com/cn/products/workstation-pro.html

3、软件安装完成之后,验证一下网络适配器是否正常配置。

可通过快捷键:win+R,输入ncpa.cpl回车即可打开。

在这里插入图片描述

1.5、在VMware上安装Linux

1、下载CentOS操作系统

首先,我们需要下载操作系统的安装软件,本次使用CentOS7.6版本进行学习:

下载地址:https://vault.centos.org/7.6.1810/isos/x86_64/

在这里插入图片描述

或者直接使用如下链接下载:

https://vault.centos.org/7.6.1810/x86_64/CentOS-7-x86_64-DVD-1810.iso

2、创建虚拟机步骤:

在这里插入图片描述

1.6、远程连接Linux系统

1.6.1、学习目标
  • 掌握操作系统的图形化、命令行2种操作模式
  • 理解为什么使用命令行操作Linux系统
  • 掌握使用FinalShell软件连接Linux操作系统
1.6.2、图形化、命令行
  • 图形化:图形化页面使用操作系统。使用操作系统提供的图形化页面,以获得图形化反馈的形式去使用操作系统。
  • 命令行:以命令的形式使用操作系统。使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。

不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。

  • Linux操作系统的图形化页面不好用且不稳定
  • 使用命令行的形式操作更加高效且稳定资源占用低
  • 企业和开发者都选择命令行,所以我们也学习命令行
1.6.3、使用命令行学习Linux系统

在开发中,使用命令行形式,效率更高,更加直观,并且资源占用低,程序运行更稳定。

所以,在后续的课程学习中,我们:

  • 除了在少数需要做对照讲解的情况下会使用图形化页面
  • 其余都会以命令行的形式去讲解Linux操作系统的使用
1.6.4、FinalShell的下载地址:

Windows:http://www.hostbuf.com/downloads/finalshell_install.exe

Mac:http://www.hostbuf.com/downloads/finalshell_install.pkg

下载完成后双击打开安装。

1.6.5、远程连接虚拟机步骤

在这里插入图片描述

注意:

Linux虚拟机如果重启,有可能,发生IP改变

如果改变IP需要在FinalShell中修改连接的IP地址

1.7、拓展:WSL(Windows SubSystem for Linux)

1.7.1、为什么要用WSL

WSL作为Windows10系统带来的全新特性,正在逐步颠覆开发人员既有的选择。

  • 传统方式获取Linux操作系统环境,是安装完整的虚拟机,如VMware
  • 使用WSL,可以以非常轻量化的方式,得到Linux系统环境

目前,开发者正在逐步抛弃以虚拟机的形式获取Linux系统环境,而在逐步拥抱WSL环境。

所以,课程也紧跟当下趋势,为同学们讲解如何使用WSL,简单、快捷的获得Linux系统环境。

所以,为什么要用WSL,其实很简单:

  • 开发人员都在用,大家都用的,我们也要学习
  • 实在是太方便了,简单、好用、轻量化、省内存
1.7.2、什么是WSL

WSL: Windows Subsystem for Linux,是用于Windows系统之上的Linux子系统。

作用很简单,可以在Windows系统中获得Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件。

简而言之:

Windows10的WSL功能,可以无需单独虚拟一套硬件设备,就可以直接使用主机的物理硬件,构建Linux操作系统,并不会影响Windows系统本身的运行。

1.7.3、部署WSL

在这里插入图片描述

1.7.4、安装Ubuntu

微软商店搜索Ubuntu直接进行安装

1.7.5、安装Terminal软件

微软商店搜索Terminal直接进行安装

1.8、拓展:虚拟机快照

1.8.1、为什么要进行虚拟机快照?

在学习阶段我们无法避免的可能损坏Linux操作系统。如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。VMware虚拟机(WorkStation和Funsion)支持为虚拟机制作快照。通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。

1.8.2、虚拟机关机的状态下,进行虚拟机快照
  • 制作快照

在这里插入图片描述

  • 还原快照

在这里插入图片描述

1.快照有什么作用?

快照可以保存虚拟机的状态,当虚拟机出现问题的时候,可以通过预先制作的快照恢复到制作时候的状态,用作备份用。


02、Linux基础命令

2.1、Linux的目录结构

2.1.1、学习目标
  • 掌握Linux系统的目录结构
  • 掌握Linux系统的路径表达式
2.1.2、Linux的目录结构是一个树型结构

Windows系统可以拥有多个盘符,如C盘、D盘、E盘

在这里插入图片描述

Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面

在这里插入图片描述

  • 在Linux系统中,路径之间的层级关系,使用 :/ 来表示

    如:/usr/local/hello.txt

    注意:开头的/表示根目录;后面的/表示层级关系

  • 在Windows系统中,路径之间的层级关系,使用 :\ 来表示

    如:D:\data\work\hello.txt

    注意:D:表示D盘;\表示层级关系

2.1.3、Linux只有一个顶级目录,称之为:根目录

Windows系统有多个顶级目录,即各个盘符

2.1.4、课后练习

请根据语言描述,写出对应的Linux路径

  • 在根目录下有一个文件夹test,文件夹内有一个文件hello.txt,请描述文件的路径

    /test/hello.txt

  • 在根目录下有一个文件itheima.txt,请描述文件的路径

    /itheima.txt

  • 在根目录下有一个文件夹itcast,在itcast文件夹内有文件夹itheima,在itheima文件夹内有文件hello.txt,请描述文件的路径

    /itcast/itheima/hello.txt

2.2、Linux命令入门

2.2.1、Linux命令基础
1、命令行与命令
  • 命令行:即Linux终端(Terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。
  • 命令:Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈。
2、Linux命令有其通用的格式
command [-options][parameter]
命令本体+可选选项+可选参数
  • **command:**命令本身
  • -options:命令的一些选项[可选,非必填],可以通过选项控制命令的行为细节
  • parameter:命令的参数[可选,非必填],多数用于命令的指向目标等

语法中的[],表示可选的意思

示例:

  • ls -l /home/itheima
    

    ,ls是命令本身,-l是选项,/home/itheima是参数

    • 意思是以列表的形式,显示/home/itheima目录内的内容
  • cp -r test1 test2
    

    ,cp是命令本身,-r是选项,test1和test2是参数

    • 意思是复制文件夹test1成为test2
2.2.2、ls命令
1、作用

在命令行中,以平铺的形式,展示当前工作目录(默认HOME目录)下的内容(文件或文件夹)

2、语法
ls [-a -l -h] [Linux路径]
  • -a -l -h是可选的选项

  • Linux路径是此命令可选的参数

  • 无选项参数,直接使用ls命令本体:以平铺形式,列出当前工作目录下的内容

在这里插入图片描述

拓展:HOME目录和工作目录

HOME目录: 每个Linux操作用户在Linux系统的个人账户目录,默认路径在:/home/用户名

  • 如图中的Linux用户是kx,其HOME目录是:/home/kx

当前工作目录:

  • Linux系统的命令行终端,在启动的时候,默认会加载:当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容。
3、ls命令参数(路径)
(1)ls命令的参数的作用
  • 不使用参数:列出当前工作目录的内容,及用户的HOME目录
  • 使用参数:列出指定路径的内容
(2)举例:查看根目录下的内容

在这里插入图片描述

4、ls命令选项(-a -l -h)
(1)-a
  • all,即列出全部文件(包含隐藏的文件/文件夹)

在这里插入图片描述

可以看出,ls -a对比ls列出的内容更多了

  • 图中以.开头的,表示是Linux系统的隐藏文件/文件夹(只要以.开头,就能自动隐藏)
  • 只有通过-a选项,才能看到这些隐藏的文件/文件夹
(2)-l
  • 以列表(竖向排列)的形式展示内容,并展示更多信息。
(3)-h
  • 以易于阅读的形式,列出文件大小,如K、M、G
  • -h选项必须要搭配-l一起使用
(4)组合使用
  • ls -l -a
  • ls -la
  • ls -al

上述三种写法,都是一样的,表示同时应用-l和-a的功能。

除了选项本身可以组合外,选项和参数也是可以一起使用

2.2.3、cd 切换工作目录
1、作用

cd命令来自英文:Change Directory(更改目录)

通过cd命令,更改当前所在的工作目录。

2、语法

cd [Linux 路径]

  • cd命令无需选项,只有参数,表示要切换到哪个目录下
  • cd命令直接执行,不写参数,表示回到用户的HOME目录
2.2.4、pwd 查看当前工作目录
1、作用

pwd命令来自:Print Work Directory(打印工作目录)

通过pwd命令,来查看当前所在的工作目录。

2、语法

pwd

  • pwd命令,无选项,无参数,直接输入pwd即可。

    image-20230103123720209

2.2.5、mkdir 创建目录命令
1、作用

mkdir来自英文:Make Directory

创建新的目录(文件夹)

2、语法

mkdir [-p] Linux路径

  • 参数必填:表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可。
  • -p选项可选:表示自动创建不存在的父目录,适用于创建连续多层级的目录。
3、创建多层级目录

通过-p选项,将一整个路径链条都创建完成

在这里插入图片描述

注:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作

涉及到权限问题,HOME外无法成功

2.4、相对路径、绝对路径和特殊路径符

2.4.1、相对路径和绝对路径
  • 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头

    在这里插入图片描述

  • 相对路径:以当前目录为起点,描述路径的一种写法,路径无需描述以/开头

    在这里插入图片描述

2.4.2、特殊路径符(.)(…)(~)

当前目录处于/home/kx/Desktop,现在想要向上回退一级,切换目录到/home/kx中,如何做?

(1)直接通过cd,即可回到HOME目录;

(2)也可以通过特殊路径符来完成。

  • .:表示当前目录

    • 比如cd ./Desktop表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
  • ..:表示上一级目录

    • 比如:cd ..即可切换到上一级目录,cd ../..切换到上二级目录
  • ~:表示HOME目录

    • 比如cd ~即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录
2.4.3、课后练习

请根据语言描述,写出对应的路径

  • 当前工作目录内有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的相对路径

    test/hello.txt
    ./test/hello.txt
    
  • 在当前工作目录的上级目录有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的相对路径

    ../test/hello.txt
    
  • 在HOME目录内有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的路径,需要使用~

    ~/test/hello.txt
    

2.5、文件操作命令

2.5.1、touch 创建文件
1、作用

通过touch命令创建文件

2、语法

touch Linux路径

  • 无选项
  • 参数必填
    • 表示要创建的文件路径,相对、绝对、特殊路径符均可以使用。
2.5.2、cat 查看文件内容
1、作用

查看文件内容

2、语法

cat Linux路径

  • 无选项
  • 参数必填
    • 表示被查看的文件路径,相对、绝对、特殊路径符都可以使用。
2.5.3、more 查看文件内容
1、作用

查看文件内容

2、语法

more Linux路径

  • 无选项
  • 参数必填
    • 表示被查看的文件路径,相对、绝对、特殊路径符都可以使用。

2、Linux系统内置有一个文件,路径为:/etc/services,可以使用more命令查看

more /etc/services
  • 在查看的过程中,通过空格翻页
3、退出查看

通过q退出查看

4、与cat的不同点
  • cat是直接将内容全部显示出来
  • more支持翻页,如果文件的内容过多,可以一页页的展示
2.5.4、cp 复制文件\文件夹
1、作用

cp命令来自英文单词:copy

用于复制文件\文件夹

2、语法

cp [-r] 参数1 参数2

  • -r选项,可选,用于复制文件夹使用,表示递归
  • 参数1,Linux路径,表示被复制的文件或文件夹
  • 参数2,Linux路径,表示要复制去的地方

1–>2,把文件\文件夹1复制至路径2

2.5.5、mv 移动文件或文件夹
1、作用

mv命令来自英文单词:move

mv命令可以用于移动文件\文件夹;当路径不变,相当于改名。

2、语法

mv 参数1 参数2

  • 参数1,Linux路径,表示被移动的文件或文件夹
  • 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

1–>2,把路文件\文件夹1移动至路径2

在这里插入图片描述

2.5.6、rm 删除文件、文件夹
1、作用

rm命令来自英文单词:remove

可用于删除文件、文件夹

2、语法

rm [-r -f] 参数1 参数2 …… 参数N

  • -r选项,可选,用于删除文件夹
  • -f选项,可选 ,表示force,强制删除(不会弹出提示确认信息)
    • 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
    • 所以一般普通用户用不到-f选项
  • 参数1、参数2、……、参数N表示要删除的文件或文件夹路径,按照空格隔开

在这里插入图片描述

3、通配符*

rm命令支持通配符*,用来做模糊匹配。

  • 符号*表示通配符,即匹配任意内容(包含空)

示例:

  • test*,表示匹配任何以test开头的内容
  • *test,表示匹配任何以test结尾的内容
  • *test*,表示匹配任何包含test的内容

演示:

在这里插入图片描述

4、强制删除,-f选项
  • 切换至root用户(超级管理员)

    su - root,输入密码,临时切换到root用户体验

  • 退回普通用户

    通过输入exit命令

在这里插入图片描述

注意:

  • rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候。请谨慎使用。

  • 如下命令,请千万千万不要在root管理员用户下执行:

    • rm -rf /
    • rm -rf /*

    效果等同于在Windows上执行C盘格式化。

2.6、统计命令

2.6.1、grep命令
1、作用

grep命令是“Global regular expression print”的缩写。含义:全局正则表达式打印

从文件中通过关键字过滤文件内容

2、语法

grep [-n] 关键字 文件路径

  • 选项-n,可选,表示在结果中显示匹配的行的行号
  • 参数1必填:关键字,表示过滤的关键字,带有空格或其他特殊符号,建议使用" "将关键字包围起来
  • 参数2必填:文件路径,表示要过滤内容的文件路径,可作为内容输入端口
2.6.2、wc命令 做数量统计
1、作用

wc命令是“Word Count”的缩写。

统计文件的行数、单词数量等。

2、语法

wc [-l -w -c -m] 文件路径

  • 选项,-l,统计行数
  • 选项,-w,统计单词数量
  • 选项,-c,统计bytes数量
  • 选项,-m,统计字符数量
  • 参数,文件路径,被统计的文件,可作为内容输入端口
2.6.3、管道符|
1、作用

将管道符左边命令的结果,作为右边命令的输入

2、案例

在这里插入图片描述

3、课后练习

对创建的test.txt进行统计

请使用cat、grep、管道符、wc命令组合,进行统计:

  • 统计文件中带有itcast关键字的有几行
cat test.txt | grep "itcast" | wc -l
  • 统计文件中带有itheima关键字的结果中有多少个单词
grep "itheima" test.txt | wc -w 
cat test.txt | grep "itheima" | wc -w

2.7、查找命令(which、find)

2.7.1、which命令
1、作用

查看所使用的一系列命令的程序文件的存放位置

2、语法

which 要查找的命令

2.7.2、find命令
1、作用1

搜索指定的文件。

语法:find 起始路径 -name "被查找文件名"

2、find命令结合通配符*
  • test*,表示匹配任何以test开头的内容
  • *test,表示匹配任何以test结尾的内容
  • *test*,表示匹配任何包含test的内容

基于通配符的含义,可以结合find命令做文件的模糊查询。

3、作用2

按照文件大小查找文件。

语法:find 起始路径 -size +|-n[kMG]

  • +、-表示大于或小于
  • n表示大小数字
  • kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

示例:

  • 查找小于10KB的文件:find / -size -10k
  • 查找大于100MB的文件:find / -size +100M
  • 查找大于1GB的文件:find / -size +1G
4、课后练习
  • 请使用find命令找出:名称中带有centos的文件
find / -name "*centos*"
  • 请使用find命令找出:/usr目录内大于100M的文件
find /usr -size +100M

2.8、输出指令:echo、重定向符和tail

学习目标

  • 掌握使用echo命令输出的内容
  • 掌握反引号`的使用
  • 掌握tail命令跟踪文件更改
  • 掌握重定向符号的使用
2.8.1、echo命令
1、作用

可以使用echo命令在命令行内输出指定内容

2、语法

echo 输出的内容

  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用“ ”包围
3、当输出内容为命令时``

用“`”对命令包围:echo `pwd`

被`包围的内容,会被作为命令执行,而非普通字符。

2.8.2、重定向符>和>>
  • >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
  • >>,将左侧命令的结果,追加写入到符号右侧指定的文件中
2.8.3、tail命令
1、作用

查看文件尾部内容,跟踪文件的最新更改。

2、语法

tail [-f -num] Linux路径

  • 参数,Linux路径,表示被跟踪的文件路径
  • 选项,-f,表示持续跟踪文件最新更改
  • 选项,-num,表示,查看尾部num行,不填默认10行
3、课后练习
  • 请使用echo并配合反引号,输出内容:

    我当前的工作目录是:`具体的工作路径`
    

    并结合重定向符,将输出结果覆盖写入work.txt文件

    echo "我当前的工作目录是:`pwd`" > work.txt
    
  • 请使用echo输出任意内容并追加到work.txt文件中

  • 通过tail命令持续跟踪文件内容更改

    echo "内容" >> work.txt
    tail -f work.txt
    

2.9、vi编辑器

2.9.1、vi\vim编辑器介绍

vi\vim是visual interface的简称,是Linux中最经典的文本编辑器。

同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。

vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。

2.9.2、vi\vim编辑器的三种工作模式
  • 命令模式(Command mode)

    命令模式下,所敲的按键,编辑器都理解为命令,以命令驱动执行不同的功能。

    此模型下,不能自由进行文本编辑。

  • 输入模式(Insert mode)

    也就是所谓的编辑模式、插入模式。

    此模式下,可以对文件内容进行自由编辑。

  • 底线命令模式(Last line mode)

    以:开始,通常用于文件的保存、退出。

在这里插入图片描述

2.9.3、通过vi/vim编辑器编辑文件,进入命令:
vi 文件路径
vim 文件路径

vim兼容全部的vi功能,后续全部使用vim命令

  • 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
  • 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
2.9.4、vi 编辑器的快速体验

通过vi/vim命令编辑文件,会打开一个新的窗口,此时这个窗口就是:命令模式窗口

命令模式是vi编辑器的入口和出口,

  • 进入vi编辑器会进入命令模式
  • 通过命令模式输入键盘指令,可以进入输入模式
  • 输入模式需要退回到命令模式,然后通过命令可以进入底线命令模式

快速体验:

  • 使用vim hello.txt,编辑一个新文件,执行后进入的是命令模式
  • 在命令模式内,按键盘i,进入输入模式
  • 在输入模式内输入:itheima and itcast
  • 输入完成后,按esc回退回命令模式
  • 在命令模式内,输入键盘 : ,进入底线命令模式
  • 在底线命令内输入:wq ,保存文件并退出vi编辑器(w表示保存,q表示退出)
2.9.5、命令模式快捷键

现在我们来看一下,在命令模式下的一些常见快捷键。

模式命令描述
命令模式i在当前光标位置进入输入模式
命令模式a在当前光标位置之后进入输入模式
命令模式I在当前行的开头,进入输入模式
命令模式A在当前行的结尾,进入输入模式
命令模式o在当前光标下一行进入输入模式
命令模式O在当前光标上一行进入输入模式
命令模式esc在任何情况下输入esc都能回到命令模式

其余快捷键:

模式命令描述
命令模式键盘上、键盘k向上移动光标
命令模式键盘下、键盘j向下移动光标
命令模式键盘左、键盘h向左移动光标
命令模式键盘右、键盘l向右移动光标
命令模式0移动光标到当前行的开头
命令模式$移动光标到当前行的结尾
命令模式pageup(PgUp)向上翻页
命令模式pagedown(PgDn)向下翻页
命令模式/进入搜索模式
命令模式n向下继续搜索
命令模式N向上继续搜索
命令模式dd删除光标所在行的内容
命令模式nddn是数字,表示删除当前光标向下n行
命令模式yy复制当前行
命令模式nyyn是数字,表示复制当前行及下面的n行
命令模式p粘贴复制的内容
命令模式u撤销修改
命令模式ctrl + r反向撤销修改
命令模式gg跳到首行
命令模式G跳到行尾
命令模式dG从当前行开始,向下全部删除
命令模式dgg从当前行开始,向上全部删除
命令模式d$从当前光标开始,删除到本行的结尾
命令模式d0从当前光标开始,删除到本行的开头
2.9.6、底线命令模式

编辑模式没有什么特殊的,进入编辑模式后,任何快捷键都没有作用,就是正常输入文本而已。

唯一大家需要记住的,就是:通过esc,可以退回到命令模式即可。

在命令模式内,输入:,即可进入底线命令模式,支持如下命令:

模式命令描述
底线命令模式:wq保存并退出
底线命令模式:q仅退出
底线命令模式:q!强制退出
底线命令模式:w仅保存
底线命令模式:set nu显示行号
底线命令模式:set paste设置粘贴模式

03、Linux用户和权限管控

3.1、认知root 用户

3.1.1、root用户(超级管理员)

1、无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。

  • 在Linux系统中,拥有最大权限的账户名为:root(超级管理员)
  • 而在前期,我们一直使用的账户是普通的用户:kx

2、root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

演示:

  • 使用普通用户在根目录下创建文件夹

    在这里插入图片描述

  • 切换到root用户后,继续尝试

    在这里插入图片描述

注意:

  • 普通用户的权限,一般在其HOME目录内是不受限的
  • 一旦出了HOME目录,大多数地方,普通用户仅有只读执行权限,无修改权限
3.1.2、su和exit命令
1、作用

英文单词:Switch User

用于账户切换的系统命令。

2、语法

su [-] [用户名]

  • -选项可选,表示是否在切换用户后加载环境变量,建议带上
  • 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
3、退出

通过exit命令退回到上一个用户,或使用快捷键:Ctrl+d

  • 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
  • 使用root用户切换到其它用户,无需密码,可以直接切换
3.1.3、sudo命令
1、作用

为普通的命令授权,临时以root身份执行。

2、语法

sudo 其他命令

  • 在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权。

    注:但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

3、为普通用户配置sudo认证
  • 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

  • 在文件的最后添加:

    kx ALL=(ALL) NOPASSWD:ALL

    • 其中最后的NOPASSWD:ALL表示使用sudo命令,无需输入密码
  • 最后通过wq保存

  • 切换回普通用户

  • 执行的命令,均以root运行

在这里插入图片描述

3.2、用户、用户组管理

1、Linux系统中可以:

  • 配置多个用户
  • 配置多个用户组
  • 用户可以加入多个用户组中

在这里插入图片描述

2、Linux中关于权限的管控级别有2个级别,分别是:

  • 针对用户的权限控制
  • 针对用户组的权限控制

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。

所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。

3、用户组管理

以下命令需root用户执行

  • 创建用户组

    groupadd 用户组名
    
  • 删除用户组

    groupdel 用户组名
    

为后续演示,我们创建一个itcast用户组:

groupadd itcast

4、用户管理

以下命令需root用户执行

  • 创建用户

    useradd [-g -d] 用户名
    
    • 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
    • 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
  • 删除用户

    userdel [-r] 用户名
    
    • 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
  • 查看用户所属组

    id 用户名
    
    • 参数:用户名,被查看的用户,如果不提供则查看自身
  • 修改用户所属组

    usermod -aG 用户组 用户名
    
  • 将指定用户加入指定用户组

演示:

在这里插入图片描述

5、getent

(1)使用getent命令,可以查看当前系统中有哪些用户

语法:getent passwd

在这里插入图片描述

共有7份信息,分别是:

用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

(2)使用getent命令,可以查看当前系统中有哪些用户组

语法:getent group

在这里插入图片描述

包含3份信息:

组名称:组认证(显示为x):组ID

3.3、查看权限控制

1、认知权限信息

通过ls -l可以以列表形式查看内容,并显示权限细节

在这里插入图片描述

  • 序列1,表示文件、文件夹的权限控制细节信息
  • 序列2,表示文件、文件夹所属用户
  • 序列3,表示文件、文件夹所属用户组

2、让我们来解析一下序号1,权限细节

权限细节总共分为10个槽位

在这里插入图片描述

举例:

drwxr-xr-x,表示:

  • 首字母d表示这是一个文件夹
  • 所属用户的权限是:有r有w有x,rwx
  • 所属用户组的权限是:有r无w有x,r-x(-表示无此权限)
  • 其它用户的权限是:有r无w有x,r-x(-表示无此权限)

3、rwx

那么,rwx到底代表什么呢?

  • r表示读权限(read)
  • w表示写权限(write)
  • x表示执行权限(execute)

针对文件、文件夹的不同,rwx的含义有细微差别

  • r
    
    • 针对文件,可以查看文件内容
    • 针对文件夹,可以查看文件夹内容,如ls命令
  • w
    
    • 针对文件,表示可以修改此文件
    • 针对文件夹,可以在文件夹内:创建、删除、改名等操作
  • x
    
    • 针对文件,表示可以将文件作为程序执行
    • 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

3.4、修改权限控制

3.4.1、chmod命令
1、作用

修改文件、文件夹的权限信息。

注:只有文件、文件夹的所属用户或root用户可以修改。

2、语法

chmod [-R] 权限 文件或文件夹

  • 选项:-R,对文件夹内的全部内容应用同样的操作

示例:

  • chmod u=rwx,g=rx,o=x hello.txt
    

    将文件权限修改为:

    rwxr-x--x

    • 其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
  • chmod -R u=rwx,g=rx,o=x test
    

    将文件夹test及其文件夹内全部内容权限设置为:

    rwxr-x--x

除此以外,还有快捷写法:

  • chmod 751 hello.txt
    

将hello.txt的权限修改为:

751

3、权限的数字序号

权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。

数字的细节如下:r记为4,w记为2,x记为1,可以有:

  • 0:无任何权限,即---000
  • 1:仅有x权限,即--x001
  • 2:仅有w权限,即-w-010
  • 3:有w和x权限,即-wx011
  • 4:仅有r权限,即r--100
  • 5:有r和x权限,即r-x101
  • 6:有r和w权限,即rw-110
  • 7:有全部权限,即rwx111

所以751表示:rwx(7) r-x(5) --x(1)

3.4.2、chown命令
1、作用

修改文件、文件夹的所属用户和用户组。

此命令只适用于root用户执行。

2、语法
chown [-R] [用户][:][用户组] 文件或文件夹
  • 选项,-R,对文件夹内全部应用相同规则
  • 选项,用户,修改所属用户
  • 选项,用户组,修改所属用户组
  • :用于分割用户和用户组
3、示例
  • chown root hello.txt
    

    将hello.txt所属用户修改为root

  • chown :root hello.txt
    

    将hello.txt所属用户组修改为root

  • chown root:kx hello.txt
    

    将hello.txt所属用户修改为root,用户组修改为kx

  • chown -R root test
    

    将文件夹test的所属用户修改为root,并对文件夹内全部内容应用同样规则


04、Linux实用操作

4.1、各类小技巧(快捷键)

4.1.1、强制停止
  • Linux某些程序的运行,如果想要强制停止它,可以使用快捷键Ctrl+c

  • 命令输入错误,也可以通过Ctrl+c,退出当前输入,重新输入

4.1.2、退出或登出
  • 可以通过快捷键:Ctrl+d,退出账户的登录

  • 或者退出某些特定程序的专属页面

  • 注意:不能用于退出vi/vim

4.1.3、history——历史命令搜索
1、作用

查看历史输入过的命令

2、语法
history
3、案例
history | grep ch
  • 通过关键字过滤某些特定的命令
4、!命令前缀

自动执行上一次匹配前缀的命令(从下向上进行搜索)

5、Ctrl+r,输入内容去匹配历史命令

如果搜索到的内容是你需要的,那么:

  • 回车键可以直接执行
  • 键盘左右键,可以得到此命令(不执行)
4.1.4、光标移动快捷键
  • Ctrl+a,跳到命令开头
  • Ctrl+e,跳到命令结尾
  • Ctrl+键盘左键,向左跳一个单词
  • Ctrl+键盘右键,向右跳一个单词
4.1.5、清屏
  • 通过快捷键Ctrl+l,可以清空终端内容
  • 或通过命令clear得到同样效果

4.2、软件安装

4.2.1、Linux系统的应用商店

操作系统安装软件有很多种方式,一般分为:

  • 下载安装包自行安装
    • 如win系统使用exe文件、msi文件等
    • 如Mac系统使用dmg文件、pkg文件等
  • 系统的应用商店内安装
    • 如win系统有Microsoft Store商店
    • 如Mac系统有AppStore商店

Linux系统同样支持这两种方式,我们首先,先来学习使用:Linux命令行内的“应用商店”,yum命令安装软件

4.2.2、yum命令
1、作用

RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。

2、语法
yum [-y] [install | remove | search] 软件名称
  • 选项:-y,自动确认,无需手动确认安装或卸载过程
  • install:安装
  • remove:卸载
  • search:搜索

注意:

  • yum命令需要root权限,可以su切换到root,或使用sudo提权。
  • yum命令需要联网。
3、案例
  • yum [-y] install wget,通过yum命令安装wget程序

  • yum [-y] remove wget,通过yum命令卸载wget程序

  • yum search wget,通过yum命令,搜索是否有wget安装包

4.2.3、apt命令-扩展
1、作用

CentOS使用yum管理器,Ubuntu使用apt管理器进行软件安装(CentOS安装包.rpm, Ubuntu安装包.deb)

2、语法
apt [-y] [install | remove | search] 软件名称

注意:

  • 需要root权限,可以su切换到root,或使用sudo提权。
  • 需要联网。
3、案例
  • apt install wget,安装wget
  • apt remove wget,移除wget
  • apt search wget,搜索wget

区别:

  • CentOS:安装包是.rpm文件,使用yum命令安装
  • Ubuntu:安装包是.deb文件,使用apt命令安装

4.3、软件操作命令

4.3.1、systemctl
1、作用

使用systemctl命令控制:启动、停止、开机自启

注:能够被systemctl管理的软件,一般也称之为:服务

2、语法
systemctl start | stop | status | enable | disable 服务名
  • start:启动
  • stop:关闭
  • status:查看状态
  • enable:开启开机自启
  • disable:关闭开机自启

系统内置的服务比较多,比如:

  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
3、部分第三方软件以systemctl进行控制
  • yum install -y ntp,安装ntp软件

    可以通过ntpd 服务名,配合systemctl进行控制

  • yum install -y httpd,安装apache服务器软件

    可以通过httpd 服务器名,配合systemctl进行控制

注:部分软件可以以systemctl进行控制是因为安装后自动集成到systemctl中,而部分软件安装后没有自动集成到systemctl中,我们可以手动添加。

4.4、软链接

4.4.1、什么是软链接

可以将文件、文件夹链接到其它位置

链接只是一个指向,并不是物理移动,类似于Windows系统的快捷方式

4.4.2、ln命令创建软链接
1、作用

在系统中创建软链接,可以将文件、文件夹链接到其它位置。

2、语法
ln -s 参数1 参数2
  • -s选项,创建软链接
  • 参数1:被链接的文件或文件夹
  • 参数2:要链接去的目的地
3、实例
  • ln -s /etc/yum.conf ~/yum.conf
  • ln -s /etc/yum ~/yum

在这里插入图片描述

4.5、日期、时区

4.5.1、date命令
1、作用

可以在命令行中查看系统的时间,并可以格式化显示形式以及日期计算

2、语法
date [-d] [+格式化字符串]
  • -d:按照给定的字符串显示日期,一般用于日期计算
  • 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
    • %Y:年
    • %y:年份后两位数字(00~99)
    • %m:月份(01~12)
    • %d:日(01~31)
    • %H:小时(00~23)
    • %M:分钟(00~59)
    • %S:秒(00~60)
    • %s:自1970-01-01 00:00:00 UTC到现在的秒数

案例:

  • 使用date命令本体,无选项,直接查看时间

    在这里插入图片描述

  • 按照2022-01-01的格式显示日期

    在这里插入图片描述

  • 按照2022-01-01 10:00:00的格式显示日期

    在这里插入图片描述

    如上,由于中间带有空格,所以使用双引号包围格式化字符串,作为整体。

3、date命令进行日期加减
  • -d选项,可以按照给定的字符串显示日期,一般用于日期计算
    • date -d "+1 day" +%Y%m%d :显示后一天的日期
    • date -d "-1 day" +%Y%m%d :显示前一天的日期
    • date -d "-1 month" +%Y%m%d :显示上个月的日期
    • date -d "+1 month" +%Y%m%d :显示下个月的日期
    • date -d "-1 year" +%Y%m%d :显示前一年的日期
    • date -d "+1 year" +%Y%m%d :显示下一年的日期
  • 其中支持的时间标记为:
    • year:年
    • month:月
    • day:天
    • hour:小时
    • minute:分钟
    • second:秒
  • -d选项可以和格式化字符串配合一起使用哦

案例:在这里插入图片描述

4.5.2、修改Linux时区

通过date查看的日期时间是不准确的,这是因为:系统默认时区非中国的东八区。

使用root权限,执行如下命令,修改时区为东八区时区

rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可

在这里插入图片描述

4.5.3、ntp程序

我们可以通过ntp程序自动校准系统时间

安装ntp:yum -y install ntp

启动并设置开机自启:

  • systemctl start ntpd
  • systemctl enable ntpd

当ntpd启动后会定期的帮助我们联网校准系统的时间

  • 也可以手动校准(需要root权限):ntpdate -u ntp.aliyun.com

通过阿里云提供的服务网址配合ntpdate(安装ntp后悔附带这个命令)命令自动校准

在这里插入图片描述

ntp的作用:

可以自动联网同步时间,也可以通过ntpdate -u ntp.aliyun.com手动校准时间

4.6、IP地址、主机名

4.6.1、IP地址
1、IP地址介绍

每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯。

IP地址主要有2个版本,V4版本和V6版本(V6很少用,课程暂不涉及)

IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址。

2、查看主机IP地址命令
ifconfig

如无法使用ifconfig命令,可以安装:yum -y install net-tools

在这里插入图片描述

3、特殊IP地址

除了标准的IP地址以外,还有几个特殊的IP地址需要我们了解:

  • 127.0.0.1,这个IP地址用于指代本机

  • 0.0.0.0,特殊IP地址

    • 可以用于指代本机;
    • 可以在端口绑定中用来确定绑定关系;
    • 在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问。
4.6.2、主机名
1、主机名介绍

每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名。

无论是Windows或Linux系统,都可以给系统设置主机名

  • Windows系统主机名

  • Linux系统主机名

    在这里插入图片描述

2、在Linux中修改主机名
  • 查看主机名命令

    hostname
    

    在这里插入图片描述

  • 修改主机名命令(需要root)

    hostnamectl set-hostname 主机名
    

    在这里插入图片描述

4.6.3、域名解析
1、什么是域名解析

IP地址实在是难以记忆,有没有什么办法可以通过主机名或替代的字符地址去代替数字化的IP地址呢?

实际上,我们一直都是通过字符化的地址去访问服务器,很少指定IP地址。

比如,我们在浏览器内打开:www.baidu.com,会打开百度的网址

其中,www.baidu.com,是百度的网址,我们称之为:域名

2、访问域名的流程

访问www.baidu.com的流程如下:

在这里插入图片描述

即:

  • 先查看本机的记录(私人地址本)
    • Windows看:C:\Windows\System32\drivers\etc\hosts
    • Linux看:/etc/hosts
  • 再联网去DNS服务器询问
3、配置主机名映射

比如,我们FinalShell是通过IP地址连接到的Linux服务器,那有没有可能通过域名(主机名)连接呢?

可以,我们只需要在Windows系统的:C:\Windows\System32\drivers\etc\hosts文件中配置记录即可。

在这里插入图片描述

4.6.4、虚拟机配置固定IP
1、为什么需要固定IP

当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。

DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更。

原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统,如果IP地址经常变化,我们就要频繁修改适配很麻烦。

原因2:在刚刚我们配置了虚拟机IP地址和主机名的映射,如果IP地址频繁更改,我们也需要频繁更新映射关系。

综上所述,我们需要IP地址固定下来,不要变化了。

2、(Windows)在VMware Workstation中配置固定IP

配置固定IP需要2大步骤:

① 在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)

在这里插入图片描述

② 在Linux系统中手动修改配置文件,固定IP

  • 使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入如下内容:

    在这里插入图片描述

  • 执行systemctl restart network重启网卡,执行ifconfig,即可看到IP地址固定为192.168.88.88了

    在这里插入图片描述

3、(MacOS)在VMware Fusion中配置固定IP

步骤一:先修改VMware Fusion的网络设置

① 打开Mac系统的终端程序

② 在终端内执行:sudo su - 并输入个人系统密码切换到root用户

③ 先备份一下文件:

cp /Library/Preferences/VMware\Fusion/networking/Library/Preferences/VMware\Fusion/networking.backup
1
  • 通过vim编辑器修改文件:

    vim /Library/Preferences/VMware\Fusion/networking
    1
    

    修改第11行内容:answer VNET_8_HOSTONLY_SUBNET 192.168.88.0

    保存退出;

④ 先备份一下文件:

cp /Library/Preferences/VMware\Fusion/vmnet8/nat.conf/Library/Preferences/VMware\Fusion/vmnet8/nat.conf
1
  • 通过vim编辑器修改文件:

    vim /Library/Preferences/VMware\Fusion/vmnet8/nat.conf
    1
    

    NAT gateway address下修改:ip为192.168.88.2(这是网关的ip)

    保存退出;

步骤二:在Linux中修改固定IP

具体做法与在VMware Workstation中配置固定IP的②相同。

4.7、网络传输

4.7.1、下载和网络请求
1、ping命令
(1)作用

检查指定的网络服务器是否是可连通状态。

(2)语法
ping [-c num] ip或主机名
  • 选项:-c,检查的次数num,不使用-c选项,将无限次数持续检查
  • 参数:ip或主机名,被检查的服务器的ip地址或主机名地址

示例:

  • 检查到baidu.com是否连通

    在这里插入图片描述

    结果表示连通,延迟29ms左右

  • 检查到39.156.66.10是否连通,并检查3次

    在这里插入图片描述

2、wget命令
(1)作用

wget是非交互式的文件下载器,可以在命令行内下载网络文件

(2)语法
wget [-b] url
  • 选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
  • 参数:url,下载链接

示例:

  • 下载apache-hadoop 3.3.0版本:

    wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
    

    在这里插入图片描述

  • 在后台下载:

    wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
    

    在这里插入图片描述

  • 通过tail命令可以监控后台下载进度:

    tail -f wget-log
    

在这里插入图片描述

3、curl命令
(1)作用

发送http网络请求,可用于:下载文件、获取信息等。

(2)语法
curl [-O] url
  • 选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
  • 参数:url,要发起请求的网络地址

示例:

  • 向cip.cc发起网络请求:

    curl cip.cc
    
  • 向python.itheima.com发起网络请求:

    curl python.itheima.com
    
  • 通过curl下载hadoop-3.3.0安装包:

    curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
    

在这里插入图片描述

4.7.2、端口
1、端口

端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类。

  • 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等。
  • 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的。

IP只能确定计算机,通过端口才能锁定要交互的程序。

2、虚拟端口

物理端口我们日常生活中经常见到,也能知晓它的作用。

但是虚拟端口,有什么用?为什么需要它呢?

在这里插入图片描述

计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。

通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通。

IP地址相当于小区地址,在小区内可以有很多住户(程序),而门牌号(端口)就是各个住户(程序)的联系地址

3、Linux系统支持65535个端口,这些端口分为3类进行使用
(1)公认端口

1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口

非特殊需要,不要占用这个范围的端口

(2)注册端口

1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务。(用户自定义)

(3)动态端口

49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。(多用于出口)

如上图中,计算机A的微信连接计算机B的微信,A使用的50001端口即动态端口,临时找一个端口作为出口

计算机B的微信使用端口5678,即注册端口,长期绑定此端口等待别人连接。

PS:上述微信的端口仅为演示,具体微信的端口使用非图中示意

4、查看端口占用

可以通过Linux命令去查看端口的占用情况

(1)nmap命令

①作用

  • 查看指定IP地址的对外暴露端口

  • 安装nmapyum -y install nmap

②语法

nmap 被查看的IP地址

在这里插入图片描述

可以看到,本机(127.0.0.1)上有5个端口现在被程序占用了。

其中:22端口,一般是SSH服务使用,即FinalShell远程连接Linux所使用的端口。

(2)netstat命令

①作用

  • 查看指定端口的占用情况
  • 安装netstat:yum -y install net-tools

②语法

netstat -anp|grep 端口号

查看本机指定端口号的占用情况

在这里插入图片描述

如图,可以看到当前系统的6000端口被程序(进程号7174)占用了。

其中,0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问。

在这里插入图片描述

可以看到,当前系统12345端口,无人使用。

4.8、进程管理

4.8.1、进程

程序运行在操作系统中,是被操作系统所管理的。

为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程

并为每一个进程都分配一个独有的:进程ID(进程号)

进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID(进程号)

4.8.2、ps——查看进程
1、作用

查看Linux系统中的进程信息

2、语法
ps [-e -f]
  • 选项:-e,显示出全部的进程
  • 选项:-f,以完全格式化的形式展示信息(展示全部信息)

固定用法:ps -ef 列出全部进程的全部信息

在这里插入图片描述

从左到右分别是:

  • UID:进程所属的用户ID
  • PID:进程的进程号ID
  • PPID:进程的父ID(启动此进程的其它进程)
  • C:此进程的CPU占用率(百分比)
  • STIME:进程的启动时间
  • TTY:启动此进程的终端序号。如显示?,则表示非终端启动
  • TIME:进程占用CPU的时间
  • CMD:进程对应的名称或启动路径或启动命令
3、查看指定进程

使用管道符配合grep来进行过滤

语法:ps -ef | grep 关键字,过滤指定关键字进程信息

如:ps -ef | grep tail,即可准确的找到tail命令的信息

在这里插入图片描述

  • 过滤不仅仅过滤名称,进程号\用户ID等等,都可以被grep过滤
  • 如:ps -ef | grep 30001,过滤带有30001关键字的进程信息(一般指代过滤30001进程号)
4.8.3、kill——关闭进程
1、作用

关闭Linux系统中的进程。

2、语法
kill [-9] 进程ID

关闭指定进程号的进程

  • 选项,-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。

在这里插入图片描述

4.9、主机状态

4.9.1、top命令
1、作用
  • 查看CPU、内存使用情况,类似于Windows的任务管理器

    默认每5秒刷新一次

2、语法

直接输入top即可,按q或Ctrl+c退出

在这里插入图片描述

3、top命令内容详解

(1)首部5行

第一行:在这里插入图片描述

  • top:命令名称
    • 18:35:56 :当前系统时间

    • up 4:04 : 启动了4个小时4分钟

    • 5 users:5个用户登录

    • load:1、5、15分钟负载

      • load average:0.01,0.09,0.12:1分钟平均负载0.01,5分钟平均负载0.09,15分钟负载0.12

第二行:在这里插入图片描述

描述的是进程的相关信息

  • Tasks:228 total:228个进程
    • 1 running:1个进程正在运行
    • 227 sleeping:227个进程睡眠
    • 0 stopped:0个停止进程
    • 0 zombie:0个僵尸进程

第三行:在这里插入图片描述

描述的是CPU的相关信息

  • %Cpu(s):CPU使用率

    • us:用户CPU使用率
  • sy:系统CPU使用率

    • ni:高优先级进程占用CPU时间百分比
    • id:空闲CPU率
    • wa:IO等待的CPU占用率
    • hi:CPU硬件中断率
    • si:CPU软件中断率
    • st:强制等待的CPU占用率

第四、五行:在这里插入图片描述

描述的是内存的相关信息

  • KiB Mem:物理内存

    • total:总量
    • free:空闲
    • used:使用
    • buff/cache:buff和cache占用
  • KiB Swap:虚拟内存(交换空间)

    • total:总量
    • free:空闲
    • used:使用
    • buff/cache:buff和cache占用

(2)列表内容

在这里插入图片描述

  • PID:进程ID
  • USER:进程所属用户
  • PR:进程优先级,越小越高
  • NI:负值表示高优先级,正值表示低优先级
  • VIRT:进程使用虚拟内存,单位KB
  • RES:进程使用物理内存,单位KB
  • SHR:进程使用共享内存,单位KB
  • S:进程状态(S:休眠,R:运行,Z:僵死状态,N:负数优先级,I:空闲状态)
  • %CPU:进程占用CPU率
  • %MEM:进程占用内存率
  • TIME+:进程使用CPU时间总计,单位10毫秒
  • COMMAND:进程的命令或名称或程序文件路径
4、top命令选项

top命令也支持选项:

选项功能
-p只显示某个进程的信息
-d设置刷新时间,默认是5s
-c显示产生进程的完整命令,默认是进程名
-n指定刷新次数,比如top -n 3:刷新输出3次后退出
-b以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如:top -b -n 3 > /tmp/top.tmp
-i不显示任何闲置(idle)或无用(zombie)的进程
-u查找特定用户启动的进程
5、top交互式选项

当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制

按键功能
h键会显示帮助画面
c键会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认展示
f键可以选择需要展示的项目
M键根据驻留内存大小(RES)排序
P键根据CPU使用百分比大小进行排序
T键根据时间/累计时间进行排序
E键切换顶部内存显示单位
e键切换进程内存显示单位
l键切换显示平均负载和启动时间信息
i键不显示闲置或无用的进程,等同于-i参数,再次按下,变为默认显示
t键切换显示CPU状态信息
m键切换显示内存信息
4.9.2、磁盘信息监控
4.9.2.1、df命令
1、作用

可以查看硬盘的使用情况

2、语法
df [-h]			查看磁盘利用率
  • 选项:-h,以更加人性化的单位显示

在这里插入图片描述

4.9.2.2、iostat命令
1、作用

查看CPU、磁盘的相关信息

2、语法
iostat [-x][num1][num2]		查看磁盘速率等信息
  • 选项:-x,显示更多信息
  • num1:数字,刷新间隔
  • num2:数字,刷新几次

tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。”一次传输“意思是”一次I/O请求“。多个逻辑请求可能会被合并为”一次I/O请求“。”一次传输“请求的大小是未知的。

3、使用iostat的-x选项,可以显示更多的信息

在这里插入图片描述

  • rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge,提高IO利用率,避免重复调用)
  • wrqm/s:每秒这个设备相关的写入请求有多少被Merge了
  • rsec/s:每秒读取的扇区数;sectors
  • wsec/s:每秒写入的扇区数;sectors
  • rKB/s:每秒发送到设备的读取请求数
  • wKB/s:每秒发送到设备的写入请求数
  • avgrq-sz:平均请求扇区的大小
  • avgqu-sz:平均请求队列的长度。毫无疑问,队列长度越短越好。
  • await:每一个IO请求的处理的平均时间(单位是微妙毫秒)
  • svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)
  • %util:磁盘利用率
4.9.3、网络状态监控
4.9.3.1、sar命令
1、作用

查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)

2、语法
sar -n DEV num1 num2		查看网络情况
  • 选项:-n ,查看网络,DEV表示查看网络接口
  • num1:刷新间隔(不填就查看一次结束)
  • num2:查看次数(不填无限次数)

在这里插入图片描述

如图,查看2次,隔3秒刷新一次,并最终汇总平均记录

信息解读:

  • IFACE:本地网卡接口的名称
  • rxpck/s:每秒钟接收的数据包
  • txpck/s:每秒钟发送的数据包
  • rxKB/s:每秒钟接收的数据包大小,单位为KB
  • txKB/s:每秒钟发送的数据包大小,单位为KB
  • rxcmp/s:每秒钟接收的压缩数据包
  • txcmp/s:每秒钟发送的压缩数据包
  • rxmcst/s:每秒钟接收的多播数据包

4.10、环境变量

4.10.1、环境变量
1、环境变量的作用

在讲解which命令的时候,我们知道使用的一系列命令其实本质上就是一个个的可执行程序。

比如,cd命令的本体就是:/usr/bin/cd这个程序文件。

我们是否会有疑问,为何无论当前工作目录在哪里,都能执行:/usr/bin/cd这个程序呢?

–这就是环境变量的作用啦。

2、环境变量是什么?

环境变量是操作系统(Windows、Mac、Linux)在运行的时候,记录的一些关键性信息,用以辅助系统运行。

在Linux系统中执行:env命令即可查看当前系统中记录的环境变量

环境变量是一种KeyValue型结构,即名称和值,如下图:

在这里插入图片描述

3、环境变量:PATH

在前面提到的问题中,我们说无论当前工作目录是什么,都能执行:/usr/bin/cd这个程序,这个就是借助环境变量中:PATH这个项目的值来做到的。

在这里插入图片描述

PATH记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以:隔开)

  • /usr/local/bin
  • /usr/bin
  • /usr/local/sbin
  • /usr/sbin
  • /home/kx.local/bin
  • /home/kx/bin

当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的主体。

比如执行cd命令,就从第二个目录/usr/bin中搜索到了cd命令,并执行。

1、什么是环境变量?

环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息。

2、什么是PATH,作用是?

环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。

可以通过修改这个项目的值,加入自定义的命令搜索路径

export PATH=$PATH:自定义路径

4.10.2、$符号

1、在Linux系统中,$符号被用于取“变量”的值。

环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。

取得环境变量的值就可以通过语法:$环境变量名 来取得

2、比如:echo $PATH

就可以获得PATH这个环境变量的值,并通过echo语句输出出来。

在这里插入图片描述

又或者:echo ${PATH}ABC

在这里插入图片描述

注意:当和其它内容混合在一起的时候,可以通过{}来标注取的变量是谁

4.10.3、自行设置环境变量

1、Linux环境变量可以用户自行设置,其中分为:

  • 临时设置,语法:export 变量名=变量值

    在这里插入图片描述

  • 永久生效

    • 针对当前用户生效、配置在当前用户的:~/.bashrc文件中

      在这里插入图片描述

    • 针对所有用户生效、配置在系统的:/etc/profile文件中

    • 并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效

      在这里插入图片描述

2、自定义环境变量PATH

环境变量PATH这个项目里面记录了系统执行命令的搜索路径。

这些搜索路径我们也可以自行添加到PATH中去。

测试:

  • 在当前HOME目录内创建文件夹,myenv,在文件夹内创建文件mkhaha
  • 通过vim编辑器,在mkhaha文件内填入:echo hahaha

完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行。

  • 修改PATH的值

    临时修改PATH:export PATH=$PATH:/home/kx/myenv,再次执行mkhaha,无论在哪里都能执行了

    或将export PATH=$PATH:/home/kx/myenv填入用户环境变量文件或系统环境变量文件中去

4.11、上传、下载

1、我们可以通过FinalShell工具,方便的和虚拟机进行数据交换。

在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:

  • 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑
  • 浏览文件系统,找到合适的目录,将本地电脑的文件拓展进入,即可方便的上传数据到Linux中

在这里插入图片描述

2、rz、sz命令

当然,除了通过FinalShell的下方窗体进行文件的传输以外,也可以通过rz、sz命令进行文件传输。

rz、sz命令需要安装,可以通过:yum -y install lrzsz,即可安装。

  • rz命令,进行上传,语法:直接输入rz即可。

  • sz命令,进行下载,语法:sz 要下载的文件

    文件会自动下载到桌面的fsdownload文件夹中。

注意:rz、sz命令需要终端软件支持才可正常运行。

FinalShell、SecureCRT、XShell等常用终端软件均支持此操作。

4.12、压缩、解压

4.12.1、压缩格式

市面上有非常多的压缩格式:

  • zip格式:Linux、Windows、MacOS系统常用
  • 7zip格式:Windows系统常用
  • rar格式:Windows系统常用
  • tar格式:Linux、MacOS系统常用
  • gzip格式:Linux、MacOS系统常用

在Windows系统中常用的软件如:winrar、bandizip等软件,都支持各类常见的压缩格式,这里不多做讨论。

我们现在要学习,如何在Linux系统中操作:tar、gzip、zip这三种压缩格式

完成文件的压缩、解压操作。

4.12.2、tar命令

1、Linux和Mac系统常用有2种压缩格式,后缀名分别是:

  • .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装。
  • .gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积。

针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作。

语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N

  • -c,创建压缩文件,用于压缩模式
  • -v,显示压缩、解压过程,用于查看进度
  • -x,解压模式
  • -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
  • -z,gzip模式,不使用-z就是普通的tarball格式
  • -C,选择要解压的目的地,用于解压模式

2、tar命令压缩

tar的常用组合为:

  • tar -cvf test.tar 1.txt 2.txt 3.txt

    将1.txt 2.txt 3.txt压缩到test.tar文件内

  • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt

    将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式

注意:

  • -z选项如果使用的话,一般处于选项位第一个
  • -f选项,必须在选项位最后一个

3、tar命令解压

常用的tar解压组合有:

  • tar -xvf test.tar

    解压test.tar,将文件解压到当前目录

  • tar -xvf test.tar -C /home/kx

    解压test.tar,将文件解压至指定目录(/home/kx)

  • tar -zxvf test.tar.gz -C /home/kx

    以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/kx)

注意:

  • -f选项,必须在选项组合体的最后一位
  • -z选项,建议在开头位置
  • -C选项单独使用,和解压所需的其它参数分开
4.12.3、zip、unzip命令

1、zip命令压缩文件

可以使用zip命令,压缩文件为zip压缩包

语法:zip [-r] 参数1 参数2 ... 参数N

  • -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致

示例:

  • zip test.zip a.txt b.txt

    将a.txt b.txt c.txt压缩到test.zip文件内

  • zip -r test.zip test itheima a.txt

    将 test itheima两个文件夹和a.txt文件,压缩到test.zip文件内

2、unzip命令解压文件

使用unzip命令,可以方便的解压zip压缩包

语法:unzip [-d] 参数

  • -d,指定要解压去的位置,同tar的-C选项
  • 参数,被解压的zip压缩包文件

示例:

  • unzip test.zip

    将test.zip解压到当前目录

  • unzip test.zip -d /home/kx

    将test.zip解压到指定文件夹内(/home/kx)

untu上安装MySQL8.0版本成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/888824.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1.资源《Arduino UNO R3 proteus 仿真工程》说明。

资源链接: Arduino UNO R3 proteus 仿真工程 1.文件明细: 2.文件内容说明 包含:proteus工程、原理图、仿真程序。 3.内容展示 4.简述 该文件为proteus工程,用于Arduino uno r3仿真。 因为软件自动运行,所以最小…

编译链接的过程发生了什么?

一:程序的翻译环境和执行环境 在 ANSI C 的任何一种实现中,存在两个不同的环境。 第 1 种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第 2 种是执行环境,它用于实际执行代码 也就是说:↓ 1&#xff1…

CVE-2024-9014 pgAdmin4 OAuth2 client ID与secret敏感信息泄漏漏洞

文章目录 免责声明漏洞描述搜索语法漏洞复现nuclei修复建议 免责声明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 漏洞描述 pgAdmin4 是开源数据库 PostgreSQL 的图形管理工具攻击者可构造恶意…

OpenCV库模块解析

1.OpenCV库每个模块解析 2.OpenCV的常用函数 它为计算机视觉应用程序提供了一个通用的基础设施,并加速了在商业产品中使用机器感知。作为BSD许可的产品,OpenCV使企业可以很容易地利用和修改代码。该库拥有超过2500个优化算法,其中包括经典和最…

Hotspot是什么?

Hotspot 简单来说,JVM的一种。 一、HotSpot 的官方定义 HotSpot 是 Oracle 公司开发的一个高性能的 Java 虚拟机(JVM)。它通过一系列先进的技术和优化手段,为 Java 应用程序提供高效的运行环境,实现了跨平台的代码执行…

页面引导解决方案分享

前言 本文主要介绍的是我们在项目中有时候会遇到需要一步一步引导用户操作的使用场景,类似于新手教学的操作指引,给出的解决方案是Intro.js 库,通过此库创建引导式用户体验。 介绍 Intro.js 是一个轻量级的 JavaScript 库,用于…

《向量数据库指南》深度解析:CLIP模型与Mlivus Cloud在多模态搜索中的强强联合

在当今这个信息爆炸的时代,如何高效、准确地从海量数据中检索出用户所需的信息,成为了摆在我们面前的一大挑战。而多模态搜索,作为一种能够同时处理图像、文本、音频等多种类型数据的搜索技术,正逐渐成为解决这一问题的关键。作为大禹智库的向量数据库高级研究员,同时也是…

【玩转 JS 函数式编程_008】3.1.2 JavaScript 函数式编程筑基之:箭头函数——一种更流行的写法

文章目录 3.1.2 箭头函数——更流行的方式 Arrow functions - the modern way1. 返回值 Returning values2. this 值的处理 Handling the this value3. arguments 的处理 Working with arguments4. 单参数还是多参数? One argument or many? 写在前面 故天将降大任…

【rCore OS 开源操作系统】Rust 字符串(可变字符串String与字符串切片str)

【rCore OS 开源操作系统】Rust 语法详解: Strings 前言 这次涉及到的题目相对来说比较有深度,涉及到 Rust 新手们容易困惑的点。 这一次在直接开始做题之前,先来学习下字符串相关的知识。 Rust 的字符串 Rust中“字符串”这个概念涉及多种类型&…

k8s 中的金丝雀发布(灰度发布)

目录 1 什么是金丝雀发布 2 Canary 发布方式 3 Canary 两种发布方式实操 3.1 准备工作 3.1.1 将 nginx 命名两个版本 v1 与 v2 3.1.2 暴露端口并指定微服务类型 3.1.3 进入 pod 修改默认发布文件 3.1.4 测试 service 是否正常 3.2 基于权重的灰度发布 3.2.1 创建 Igress 资源类…

分享我“Excel 表格”关键字的博客笔记(python脚本全程自动)

Python脚本全程自动,全部Python内建工具脚本纯净。 (笔记模板由python脚本于2024年10月05日 19:51:06创建,本篇笔记适合喜欢Excel和Python的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大…

ubuntu双系统分区划分

EFI系统分区(Windows):自Windows 8起,UEFI模式下的BIOS使用该分区。简单来说,它用于存储已安装系统的EFI引导程序。此分区在资源管理器中无法查看,因为它没有驱动器号,但它必须存在,…

前端登录页面验证码

首先&#xff0c;在el-form-item里有两个div&#xff0c;各占一半&#xff0c;左边填验证码&#xff0c;右边生成验证码 <el-form-item prop"code"><div style"display: flex " prop"code"><el-input placeholder"请输入验证…

[Offsec Lab] ICMP Monitorr-RCE+hping3权限提升

信息收集 IP AddressOpening Ports192.168.52.218TCP:22,80 $ nmap -p- 192.168.52.218 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 de:b5:23:89:bb:9f:d4:1…

数据校验的总结

业务层进行复杂检查 简单校验交给Controller校验&#xff0c;能流到业务的层的数据就是基本合法 引入依赖&#xff1a;spring-boot-starter-validation 能标注的所有注解在这两个地方看 jakarta.validation.constraints、 org.hibernate.validator.constraints 使用步骤…

Web APIs——Dom获取属性操作

1.变量声明 1.1以后声明变量我们优先使用哪个&#xff1f; const 有了变量先给const&#xff0c;如果发现它后面是要被修改的&#xff0c;再改为let 1.2 为什么const声明的对象可以修改里面的属性&#xff1f; 因为对象是引用类型&#xff0c;里面存储的是地址&#x…

2024 ciscn WP

一、MISC 1.火锅链观光打卡 打开后连接自己的钱包&#xff0c;然后点击开始游戏&#xff0c;答题八次后点击获取NFT&#xff0c;得到有flag的图片 没什么多说的&#xff0c;知识问答题 兑换 NFT Flag{y0u_ar3_hotpot_K1ng} 2.Power Trajectory Diagram 方法1&#xff1a; 使用p…

《Programming from the Ground Up》阅读笔记:p147-p180

《Programming from the Ground Up》学习第9天&#xff0c;p147-p180总结&#xff0c;总计34页。 一、技术总结 1.Physical memeory p152, Physical memory refers to the actual RAM chips inside your computer and what they contain. 物理地址指的RAM&#xff0c;即我们…

库函数相关(上一篇补充)

一、创建自己的头文件 在当前目录下创建一个my_head.h将这个文件移动到/usr/include目录 #ifndef __MY_HEAD_H__ #define __MY_HEAD_H__#include <stdio.h> #include <errno.h> #include <string.h>#define PRINT_ERR(s) do{\printf("%s %s %d\n&quo…

minio简单使用

文章目录 简介官方地址Linux下载安装安装服务启动关闭帮助命令 java开发minio依赖包新建项目pom配置文件配置类Service测试类运行测试 Api使用前言针对桶的操作查看某个桶是否存在创建一个桶返回桶列表删除一个桶 针对文件的操作上传文件到桶中(本地文件上传)上传文件到桶中(基…