linux基础

发布于:2024-07-06 ⋅ 阅读:(39) ⋅ 点赞:(0)

常用命令(详细的看下面)

  • cd:进入到指定目录

  • ls:展示目录以及目录下的文件,-a展示隐藏文件

  • date:系统时间命令

  • clear:清屏

  • whoami:查看当前登录用户

  • shutdown:关机

  • init 0:也表示关机

  • reboot:重启

  • init 6:关机

  • grep:搜索命令(通过关键字过滤搜索条件)

  • echo:输出指定内容

  • >:重定向符:将左侧命令的结果,覆盖写入到符号右侧指定的文件中

  • >>:重定向符:将左侧命令的结果,追加写入到符号右侧指定的文件中

  • wc:统计文件的行数、单词数量等

  • |:管道符:将管道符左边命令的结果,作为右边命令的输入(可配合grep命令和wc命令使用)

  • &&:左边命令执行成功,再执行右边的命令

  • ||: 左边命令执行失败,再执行右边的命令

  • ps:查看进程的状态

  • kill:关闭进程

  • vi/vim:进入文本编辑器

  • 文件操作命令

    • touch:主要作用是用来改变文件或目录的访问和修改时间。如果指定的文件或目录不存在,touch 命令会创建一个空的文件。
    • cat:查看文本内容并输出到控制台上
    • head:从头开始看文件。head -100 1.txt,查看前100行
    • tail:从后开始查看文件。tail -100 1.txt,查看后100行。常用来查看日志。
    • mkdir 创建文件夹。mkdir -p 当父目录不存在时,同时创建父目录
    • mv:移动文件/文件夹
    • cp:拷贝文件/文件夹
    • rm:删除文件,-r表示删除文件夹
    • pwd:显示当前目录
  • 文件压缩解压

tar	压缩(解压)命令。常用组合命令
tar -xvf apache-tomcat-9.tar 解压tomcat压缩文件,显示详细过程
tar -zxvf apache-tomcat-9.tar.gz 解压zip格式的压缩文件
tar -zxvf apache-tomcat-9.tar.gz -C mydir 解压到mydir目录下。
tar -cvf my.tar apache/  压缩apache,并命名为my.tar

-c 创建压缩包
-x 解压
-v 回显
-f <指定包名>
-z 是否使用gzip格式压缩
  • 权限控制方面
    • groupadd:新增用户组
    • groupdel:删除用户组
    • groups:查看用户的用户组所属
    • useradd -g 组名 用户名:给指定用户组新增用户
    • usermod:修改用户的属性
    • userdel:删除用户
    • password:修改用户密码
    • su:切换用户
    • chmod:修改用户对文件操作的权限
  • 防火墙配置
    • systemctl status firewalld:查看防火墙的状态
    • systemctl stop firewalld:关闭防火墙
    • systemctl disable firewalld:关闭防火墙自启动
    • firewall-cmd --list-ports:查看防火墙开放的端口
    • irewall-cmd --add-port=80/tcp --permanent:开发指定端口,–permanent表示永久生效
    • firewall-cmd --reload:重新加载防火墙配置(修改防火墙配置后一定要执行这个命令)
    • firewall-cmd --remove-port=80/tcp --permanent:移除开放的端口

虚拟机安装linux(典型安装)

  1. 打开VMware软件
    在这里插入图片描述
  2. 选择典型安装(默认安装)
    在这里插入图片描述
  3. 选择光盘(.iso文件)
    在这里插入图片描述
  4. 配置账户名和密码

在这里插入图片描述

  1. 定义虚拟机存放位置
    在这里插入图片描述

在这里插入图片描述

  1. 配置磁盘大小
    在这里插入图片描述

自定义配置
在这里插入图片描述
7. 勾选自启动,然后点击完成,虚拟机会自动创建了,只需等待大概十分钟左右即可。
在这里插入图片描述

最后显示
在这里插入图片描述

VMware安装linux典型和自定义高级有啥区别

在 VMware 中,安装 Linux 操作系统时,通常有两种主要的方式:典型安装和自定义高级安装。它们之间的主要区别如下:

  1. 典型安装

    • 典型安装是一种简单的安装方式,通常适用于普通用户或者对系统配置要求不是很高的场景。
    • 在典型安装中,用户可以选择操作系统类型、版本、安装位置等基本选项,而大部分的配置选项都是默认预设的,用户不需要过多的干预。
    • 典型安装会自动为用户选择一组常用的配置选项,以提供一个快速、简单的安装体验。
  2. 自定义高级安装

    • 自定义高级安装是一种灵活的安装方式,适用于对系统配置有特定要求的场景,或者需要对系统进行更详细配置的用户。
    • 在自定义高级安装中,用户可以手动选择各种配置选项,包括硬件配置、分区方案、网络设置、软件包安装等。用户可以根据自己的需求进行定制化配置。
    • 自定义高级安装提供了更多的灵活性和控制权,用户可以根据自己的实际需求进行详细的配置,以满足特定的应用场景。

总的来说,典型安装适用于普通的安装场景,提供了快速、简单的安装体验;而自定义高级安装适用于对系统配置有特定要求或者需要更灵活控制的场景,提供了更多的配置选项和定制化功能。用户可以根据自己的需求选择适合的安装方式。

问题:Windows系统能够满足我们日常开发需求,为什么要学习Linux?

答:

  • (1)Linux是开源的,用它来做服务器成本比较低。
  • (2)我们开发的项目,绝大部分都会部署到Linux上

一、linux的目录结构

  1. Linux的目录结构是一个树型结构,Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘,但是Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面
Linux的目录结构是一种树形结构,根目录为 / ,所有的文件和目录都挂在根目录下。常见的目录有:

/bin 存放二进制可执行文件
/boot 存放启动Linux时使用的内核文件和引导程序
/dev 存放设备文件
/etc 存放系统配置文件
/home 存放用户主目录
/lib 存放系统共享库
/media 存放可移动设备挂载点
/mnt 存放临时挂载点
/opt 存放第三方软件包
/proc 存放内存中的进程信息和系统信息
/root 超级用户的主目录
/sbin 存放二进制可执行文件,只有超级用户才能访问
/tmp 存放临时文件
/usr 存放系统应用程序和文件
/var 存放经常变化的文件,如日志文件

问题:/opt是安装软件的,/usr也是安装软件,那么软件安装在哪里呢?
答:没有统一标准,安装的软件随便在/opt或/usr都可以。注意/usr是普通用户可以写入,/opt默认普通用户是不能写入。

在这里插入图片描述

一、1. linux的目录结构-----Linux路径的描述方式

  1. 在Linux系统中,路径之间的层级关系,使用:/ 来表示
    • 出现在开头的/表示:根目录
    • 出现在后面的/表示:层次关系
      例子:
在根目录下有一个文件夹test,文件夹内有一个文件hello.txt,请描述文件的路径:

/test/hello.txt
  1. 在Windows系统中,路径之间的层级关系,使用: \ 来表示
在d盘下的work文件夹下有一个hello.txt文件:

D:\data\work\hello.txt

二、Linux命令基础格式

  1. linux的所有命令都有通用的格式:(如下图)
    在这里插入图片描述
    示例:
命令:ls -l /home/work      
ls 是命令本身:ls其实就是list的缩写,用来打印当前目录的清单。
-l 是选项
/home/work 是参数:根目录下的home目录下的work目录
上述指令表示:以列表的形式,显示/home/work 目录下的内容

  1. 什么是命令、命令行:
    • 命令:即Linux操作指令,是系统内置的程序,可以字符和的形式去使用
    • 命令行:即Linux终端,可以提供字符化的操作页面提供命令执行

二、1. linux命令入门

二、1.1——ls命令

  1. 不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录(默认为home目录)下的内容:
    在这里插入图片描述
  2. 直接输入ls命令,表示列出当前工作目录下的内容,当前工作目录是?
    • Linux系统的命令行终端,在启动的时候,默认会加载:
      • 当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容
    • HOME目录:每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名
    • 当前工作目录:在打开终端(命令行)时,默认设置当前用户的home目录为当前工作目录
  3. ls命令参数
    • 当ls不使用参数,表示列出:当前工作目录的内容,即用户的HOME目录
    • 当使用参数,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容
    • ls指令参数的作用:可以指定要查看的文件夹(目录)的内容,如果不给定参数,默认就是查看当前工作目录的内容
      在这里插入图片描述
二、1.1.1 —— ls命令=》 -a
  1. -a 表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)
    (下图是ls命令不带参数 与 ls -a的输出对比)
    在这里插入图片描述
  2. 在linux中:
    • 以.开头的,表示是Linux系统的隐藏文件/文件夹(只要以.开头,就能自动隐藏)
    • 只有通过-a选项,才能看到这些隐藏的文件/文件夹
二、1.1.2—— ls命令=》 -l
  1. -l 表示:以列表(竖向排列)的形式展示内容,并展示更多信息。
    (下图是命令ls 与ls -l的输出对比)
    在这里插入图片描述
    ls -l命令可以使用ll命令代替
    在这里插入图片描述
二、1.1.3—— ls命令=》 -h
  1. -h:表示以易于阅读的形式,列出文件大小,如K、M、G(-h选项必须要搭配 -l 一起使用
    (下图是ls与ls -lh的输出对比)
    在这里插入图片描述
    (下图是ls -la与ls -lh的输出对比)
    在这里插入图片描述
    在这里插入图片描述
二、1.1.4 —— ls命令=》ls命令选项的组合使用(选项的 先后顺序不论)
  1. 语法中的选项是可以组合使用的:
比如学习的-a和-l可以组合应用,写法:
ls -l -a
ls -la
ls -al

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

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

在这里插入图片描述

在这里插入图片描述
-l 、-a、-h的组合使用
在这里插入图片描述

二、1.2 —— 目录切换相关命令(cd/pwd)

二、1.2.1—— cd命令
  1. 根据前面的了解,当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录
  2. 我们可以通过cd命令,更改当前所在的工作目录。
cd命令来自英文:(Change Directory)
	语法:cd [路径参数]    路径参数是可选的
		cd命令无需选项,只有参数,表示要切换到哪个目录下
		cd命令直接执行,不写参数,表示回到用户的HOME目录

在这里插入图片描述

二、1.2.2—— pwd命令
  1. 通过ls来验证当前的工作目录,其实是不恰当的。
  2. 我们可以通过pwd命令,来查看当前所在的工作目录。
pwd命令来自:(Print Work Directory)
语法:
	pwd命令,无选项,无参数,直接输入pwd即可

在这里插入图片描述

二、1.3—— 相对路径和绝对路径、特殊路径符

  1. 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头

  2. 相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以/开头
    在这里插入图片描述

  3. 特殊路径符:

.	表示当前目录,比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
..	表示上一级目录,比如:cd ..   即可切换到上一级目录,cd ../..  切换到上二级的目录
~	表示HOME目录,比如:cd ~    即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录

在这里插入图片描述

二、1.4 —— 创建 目录(文件夹) 命令(mkdir)

  1. 通过mkdir命令可以创建新的目录(文件夹)
mkdir来自英文:Make Directory
语法:mkidr [-p] linux路径
	参数!!!必填!!!,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
	-p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

在这里插入图片描述

  1. mkdir -p选项
    • 如果向一次性创建多个层级的目录,就需要使用到-p选项了
      在这里插入图片描述
      注意:创建文件夹需要修改权限,请确保操作均在HOME目录(/home/用户名)内,不要在HOME外操作,涉及到权限问题,HOME外无法成功.

二、1.5 —— 文件操作命令(touch、cat、more、cp、mv、rm)

二、1.5.1—— touch命令
  1. 可以通过touch命令创建文件
语法:touch linux路径
touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用

在这里插入图片描述

  1. 也可以用来更改文件的时间戳。
二、区分文件和文件夹的方法

在这里插入图片描述

二、1.5.2—— cat命令
  1. 通过cat命令查看文件的内容。
语法:cat linux参数
	cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
二、1.5.3—— more命令
  1. more命令同样可以查看文件内容,同cat不同的是:
    • cat是直接将内容全部显示出来
    • more支持翻页,如果文件内容过多,可以一页页的展示
语法:more linux路径
	同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
  1. Linux系统内置有一个文件,路径为:/etc/services,可以使用more命令查看
    more /etc/services
    • 在查看的过程中,通过空格翻页
    • 通过q退出查看
二、1.5.4 —— cp命令
  1. cp命令可以用于复制文件\文件夹。
cp命令来自英文单词:copy
语法:cp [-r] linux路径 linux路径
	-r选项,可选,用于复制文件夹使用,表示递归
	参数1,Linux路径,表示被复制的文件或文件夹
	参数2,Linux路径,表示要复制去的地方

在这里插入图片描述

二、1.5.5—— mv命令
  1. mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move
语法:mv 参数1 参数2
	参数1,Linux路径,表示被移动的文件或文件夹
	参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

在这里插入图片描述

二、1.5.6—— rm命令
  1. rm命令可用于删除文件、文件夹
rm命令来自英文单词:remove
语法:rm [-r -f] 参数1 参数2 ... 参数n
	同cp命令一样,-r选项用于删除文件夹
	-f表示force,强制删除(不会弹出提示确认信息)
	普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
	所以一般普通用户用不到-f选项
	参数1、参数2、......、参数N 表示要删除的文件或文件夹路径,按照空格隔开

在这里插入图片描述

  1. -f表示force,强制删除(不会弹出提示确认信息)
    • 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示,所以一般普通用户用不到-f选项
演示强制删除,-f选项
	可以通过 su - root,并输入密码123456(和普通用户默认一样)临时切换到root用户体验
	通过输入exit命令,退回普通用户。(临时用root,用完记得退出)

在这里插入图片描述

  1. rm命令支持通配符 *,用来做模糊匹配
符号* 表示通配符,即匹配任意内容(包含空),示例:
	 test*,表示匹配任何以test开头的内容
	 *test,表示匹配任何以test结尾的内容
	 *test*,表示匹配任何包含test的内容

二、1.6 linux命令入门-----查找相关命令(which、find)

二、1.6.1 —— which命令
  1. 我们在前面学习的Linux命令,其实它们的本体就是一个个的二进制可执行程序。
    和Windows系统中的.exe文件,是一个意思。
  2. 我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里
语法:
  which 要查找的命令

在这里插入图片描述

二、1.6.2 —— find命令
  1. find——按文件名查找文件
    • 支持通配符的使用
语法:
   find 起始路径 -name "被查找的文件名"

解释:
  起始路径:其实就是从哪里开始寻找,比如 / :表示从根目录开始寻找
  -name:是选项,表示按文件名进行查找
  "被查找的文件名":你要查询什么,引号里面就写什么
  1. find——按文件大小查找文件
语法: 
    find 起始路径 -size +n[kMG]   (查询文件大于多少单位的文件)
    find 起始路径 -size -n[kMG]   (查询文件少于多少单位的文件)

解释:
	 起始路径:其实就是从哪里开始寻找,比如 / :表示从根目录开始寻找
	 -size:是选项,表示按文件大小进行查找
	+、- 表示大于和小于
	n表示大小数字
	kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB


示例:
	查找小于10KB的文件: find / -size -10k
	查找大于100MB的文件:find / -size +100M
	查找大于1GB的文件:find / -size +1G

二、1.7 linux命令入门-----(grep、wc和管道符)

二、1.7.1 —— gerp命令
  1. 可以通过grep命令,从文件中通过关键字过滤文件行
语法:grep [-n] 关键字 文件路径
	选项-n,可选,表示在结果中显示匹配的行的行号。
	参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来
	参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入

在这里插入图片描述

二、1.7.2 —— wc命令
  1. 可以通过wc命令统计文件的行数、单词数量等
语法:wc [-c -m -l -w] 文件路径
	选项,-c,统计bytes数量
	选项,-m,统计字符数量
	选项,-l,统计行数
	选项,-w,统计单词数量
	参数,被统计的文件路径,可作为管道符的输入

在这里插入图片描述

二、1.7.3 —— 管道符 |
  1. 管道符的含义是:将管道符左边命令的结果,作为右边命令的输入(可配合grep命令和wc命令使用)
    在这里插入图片描述
xargs是一个Linux/Unix命令,它可以将标准输入数据转换成命令行参数,也能够将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs通常与其他命令一起使用,以处理大量文件或数据。xargs的常见用法是从文件或标准输入中读取数据,并使用这些数据作为参数来执行指定的命令。xargs还可以使用选项来控制参数的数量和格式。例如,使用-x选项可以确保每个参数都是单独的一行,而使用-I选项可以指定一个替换字符串,以便在扩展时替换掉。除此之外,xargs还可以用于子Shell(Subshells)等其他应用。
二、1.7.4 —— &&符

&&:左边命令执行成功,再执行右边的命令

二、1.7.5—— ||符(双竖杠)

||: 左边命令执行失败,再执行右边的命令

二、1.8 linux命令入门-----(echo、tail和重定向符)

二、1.8.1 —— echo命令
  1. 可以使用echo命令在命令行内输出指定内容
语法:echo 输出的内容      (输出的内容最好拿引号包围)
   1. 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用””包围
   2. 带有空格或\等特殊符号,建议使用双引号包围
(因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响,但是要养成习惯哦)

在这里插入图片描述

二、1.8.2 —— 反引号
  1. 可以通过将命令用反引号(通常也称之为飘号),包围的内容,会被作为命令执行,而非普通字符。
`包围的内容`    =》这两个点就是反引号

在这里插入图片描述

二、1.8.3 —— 重定向符
  1. 重定向符:>和>>
>,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>,将左侧命令的结果,追加写入到符号右侧指定的文件中

如果该文件不存在,则会自动创建。
标准输出和标准错误是Linux系统中的两个输出流。标准输出是指命令行中输出的信息,例如ls命令输出文件列表。标准错误是指命令行中输出的错误信息,例如命令执行失败的错误提示。在Linux系统中,可以使用重定向符号将标准输出和标准错误输出到指定的文件中,以便于查看和分析。具体操作如下:
1.将标准输出重定向到文件:使用">"符号,例如:ls > file.txt,表示将ls命令的输出结果重定向到file.txt文件中。
2.将标准错误重定向到文件:使用"2>"符号,例如:ls /noexist 2> error.txt,表示将ls命令执行时的错误信息重定向到error.txt文件中。
3.将标准输出和标准错误同时重定向到文件:使用"&>"符号,例如:ls /noexist &> output.txt,表示将ls命令执行时的输出结果和错误信息都重定向到output.txt文件中。
4.将标准输出和标准错误分别重定向到不同的文件:使用">"和"2>"符号,例如:ls > output.txt 2> error.txt,表示将ls命令执行时的输出结果重定向到output.txt文件中,将错误信息重定向到error.txt文件中。


在这里插入图片描述

二、1.8.4 ——tail命令
  1. 使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改
语法如下:tail [-f -num] linux路径
	参数,Linux路径,表示被跟踪的文件路径
	选项,-f,表示持续跟踪
	选项, -num,表示,查看尾部多少行,不填默认10行

在这里插入图片描述

二、1.9 linux命令入门----- vi编辑器

  1. 介绍:vi\vim是visual interface的简称, 是Linux中最经典的文本编辑器。同图形化界面中的 文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。

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

      1. 命令模式(Command mode)
      • 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
      1. 输入模式(Insert mode)
        • 也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
      1. 底线命令模式(Last line mode)
      • 以:开始,通常用于文件的保存、退出。
        在这里插入图片描述
二、1.9.1 vi/vim编辑器的三种工作模式——命令模式(Command mode)
  1. 如果需要通过vi/vim编辑器编辑文件,请通过如下命令:
vi 文件路径
vim 文件路径

说明:vim兼容全部的vi功能,后续全部使用vim命令
  1. 用法:
      1. 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
      1. 如果文件路径表示的文件存在,那么此命令用于编辑已有文件

在这里插入图片描述

通过vi/vim命令编辑文件,会打开一个新的窗口,此时这个窗口就是:命令模式窗口
命令模式是vi编辑器的入口和出口:
	进入vi编辑器会进入命令模式
	通过命令模式输入键盘指令,可以进入输入模式
	输入模式需要退回到命令模式,然后通过命令可以进入底线命令模式
  1. 在命令模式下的一些常见快捷键:
    在这里插入图片描述
    在这里插入图片描述
  2. 底线命令模式:
    在这里插入图片描述
    在这里插入图片描述

二、1.10—— 查看命令帮助和手册 --help命令

  1. 任何命令都支持:–help 选项, 可以通过这个选项,查看命令的帮助。
    如:ls --help, 会列出ls命令的帮助文档
    在这里插入图片描述
  2. 如果想要查看命令的详细手册,可以通过man(manual, 手册)命令查看
    比如:
    • man ls,就是查看ls命令的详细手册
    • man cd,就是查看cd命令的详细手册

二、1.11—— 查看当前用户 whoami

whoami

在这里插入图片描述

二、1.12——关机命令:shutdown

在这里插入图片描述

三、Linux——用户与权限

三、1. 认识root管理员

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

    • 在Linux系统中,拥有最大权限的账户名为:root(超级管理员)
  2. root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

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

三、1.1. —— su和exit命令

  1. su命令就是用于账户切换的系统命令,其来源英文单词:Switch User
语法:su [-] [用户名]

1)	- 符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
	2)参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
3)	切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d

4)	使用普通用户,切换到其它用户需要输入密码,如切换到root用户
5)	使用root用户切换到其它用户,无需密码,可以直接切换

三、1.2. —— sudo命令

  1. 在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。

  2. 我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。

语法:sudo 其他命令

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

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

在这里插入图片描述

三、1.3. —— sudo命令--------sudo认证

在这里插入图片描述

三、2. 用户、用户组管理

  1. Linux系统中可以:
    • 配置多个用户
    • 配置多个用户组
    • 用户可以加入多个用户组中
  2. Linux中关于权限的管控级别有2个级别,分别是:
    • 针对用户的权限控制
    • 针对用户组的权限控制

三、2.1 用户组管理

以下命令需root用户执行

  1. 创建用户组:groupadd 用户组名

  2. 删除用户组:groupdel 用户组名
    在这里插入图片描述

三、2.2 用户管理

以下命令需root用户执行

  1. 创建用户
语法:useradd [-g -d] 用户名
	选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
	选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
  1. 删除用户
语法:userdel [-r] 用户名
选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
  1. 查看用户所属组
语法:id [用户名]
	参数:用户名,被查看的用户,如果不提供则查看自身
  1. 修改用户所属组
usermod -aG 用户组 用户名,将指定用户加入指定用户组

三、2.3 ——getent命令

  1. 使用getent命令,可以查看当前系统中有哪些用户:
语法: getent passwd

共有7份信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

在这里插入图片描述

  1. 使用getent命令,同样可以查看当前系统中有哪些用户组
语法:getent group

包含3份信息,组名称:组认证(显示为x):组ID

在这里插入图片描述

三、3、查看权限控制

  1. 通过ls -l 可以以列表形式查看内容,并显示权限细节
    • 序号1,表示文件、文件夹的权限控制信息
    • 序号2,表示文件、文件夹所属用户
    • 序号3,表示文件、文件夹所属用户组
      在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、4. 修改权限控制 - chmod

  1. 我们可以使用chmod命令,修改文件、文件夹的权限信息。
    注意,只有文件、文件夹的所属用户或root用户可以修改。
语法:chmod [-R] 权限 文件或文件夹
选项:-R,对文件夹内的全部内容应用同样的操作
  1. 示例:

    • 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
  2. 快捷写法:(权限的数字序号)

权限可以用3位数字来代表,
第一位数字表示用户权限,
第二位表示用户组权限,
第三位表示其它用户权限。
数字的细节如下:r记为4,w记为2,x记为1,可以有:
0:无任何权限,	即 ---
1:仅有x权限,	即 --x
2:仅有w权限	即 -w-
3:有w和x权限	即 -wx
4:仅有r权限	即 r--
5:有r和x权限	即 r-x
6:有r和w权限	即 rw-
7:有全部权限	即 rwx



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

三、5. 修改权限控制 - chown

  1. 使用chown命令,可以修改文件、文件夹的所属用户和用户组
    普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
语法:chown [-R] [用户]:[用户组] 文件或文件夹名字
选项,-R,同chmod,对文件夹内全部内容应用相同规则
选项,用户,修改所属用户
选项,用户组,修改所属用户组
:用于分隔用户和用户组
示例:
chown root hello.txt,将hello.txt所属用户修改为root
chown :root hello.txt,将hello.txt所属用户组修改为root
chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima
chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

四、Linux——实用操作

四、1、各类小技巧(快捷键)

四、1.1、强制停止(ctrl+c)

  1. Linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl + c

  2. 命令输入错误,也可以通过快捷键ctrl + c,退出当前输入,重新输入

四、1.2、退出或登出(ctrl+d)

  1. 可以通过快捷键:ctrl + d,退出账户的登录

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

  3. 不能用于退出vi/vim

四、1.3、历史命令搜索(history)

  1. 可以通过history命令,查看历史输入过的命令
    在这里插入图片描述
  2. 可以通过:!命令前缀,自动执行上一次匹配前缀的命令(即!+命令前缀)
    在这里插入图片描述
    在这里插入图片描述
  3. 可以通过快捷键:ctrl + r,输入内容去匹配历史命令
    • 如果搜索到的内容是你需要的,那么:
      • 回车键可以直接执行
      • 键盘左右键,可以得到此命令(不执行)
        在这里插入图片描述
        在这里插入图片描述

四、1.4、光标移动快捷键

  1. ctrl + a,跳到命令开头
  2. ctrl + e,跳到命令结尾
  3. ctrl + 键盘左键,向左跳一个单词
  4. ctrl + 键盘右键,向右跳一个单词

四、1.5、清屏

  1. 通过快捷键ctrl + l,可以清空终端内容
  2. 或通过命令clear得到同样效果

四、2、软件安装

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

    • 1.1、下载安装包自行安装
      • 如win系统使用exe文件、msi文件等
      • 如mac系统使用dmg文件、pkg文件等
    • 1.2、系统的应用商店内安装
      • 如win系统有Microsoft Store商店
      • 如mac系统有AppStore商店
  2. Linux系统同样支持这两种方式

四、2.1、Linux命令行内的”应用商店”,yum命令安装软件

四、2.1.1、yum命令
  1. yum:是一个RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
    • yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
    • yum命令需要联网
语法:yum [-y] [install | remove | search] 软件名称
	选项:-y,自动确认,无需手动确认安装或卸载过程
	install:安装
	remove:卸载
	search:搜索
  1. yum search wget(通过yum命令,搜索是否有wget安装包)在这里插入图片描述3. yum [-y] install wget(通过yum命令安装wget程序)
    在这里插入图片描述
  2. yum [-y] remove wget(通过yum命令卸载wget命令)

在这里插入图片描述

四、3、systemctl

  1. Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启。
    • 能够被systemctl管理的软件,一般也称之为:服务
语法:systemctl start | stop | status | enable | disable 服务名

	start 启动
	stop 关闭
	status 查看状态
	enable 开启开机自启
	disable 关闭开机自启



系统内置的服务比较多,比如:
	NetworkManager,主网络服务
	network,副网络服务
	firewalld,防火墙服务
	sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)

  1. 除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制。(只要它内置有去注册为系统的服务的功能,就可以通过systemctl命令去控制它的启动或关闭等
yum install -y ntp,安装ntp软件
可以通过ntpd服务名,配合systemctl进行控制(注意该软件是ntp,但是注册的服务名是ntpd)

yum install -y httpd,安装apache服务器软件
可以通过httpd服务名,配合systemctl进行控制

部分软件安装后没有自动集成到systemctl中,我们可以手动添加。

ntp软件的下载,查看状态,修改状态…
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 查看防火墙的状态
    在这里插入图片描述

  2. 关闭防火墙
    在这里插入图片描述

  3. 总结(systemctl命令的作用是):

    • 可以控制软件(服务)的启动、关闭、开机自启动
    • 系统内置服务均可被systemctl控制
    • 第三方软件,如果自动注册了可以被systemctl控制
    • 第三方软件,如果没有自动注册,可以手动注册(后续学习)

四、4、软连接

四、4.1、ln命令创建软连接

  1. 在系统中创建软链接,可以将文件、文件夹链接到其它位置。链接只是一个指向,并不是物理移动,,类似Windows系统中的《快捷方式》
语法:ln -s 参数1 参数2
-s选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、5、日期和时区

四、5.1、date命令

  1. 通过date命令可以在命令行中查看系统的时间
语法: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 到现在的秒数
  1. 使用date命令本体,无选项,直接查看时间
    在这里插入图片描述

  2. 格式化字符串自定义显示格式

      1. 按照2022-01-01的格式显示日期
        在这里插入图片描述
      1. 按照2022-01-01 10:00:00的格式显示日期
        在这里插入图片描述
  3. date命令进行日期加减

    • -d选项,可以按照给定的字符串显示日期,一般用于日期计算
    • 其中支持的时间标记为:
      • year年
      • month月
      • day天
      • hour小时
      • minute分钟
      • second秒
    • -d选项也可以和格式化字符串配合一起使用
      在这里插入图片描述
      在这里插入图片描述

四、5.2、修改时区

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

    • 使用root权限,执行如下命令,修改时区为东八区时区
  2. 将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
    在这里插入图片描述

四、5.3、ntp程序自动校准系统时间

  1. 我们可以通过ntp程序自动校准系统时间
    • 安装ntp:yum -y install ntp
    • 启动并设置开机自启:
      • systemctl start ntpd
        在这里插入图片描述

      • systemctl enable ntpd

    • 当ntpd启动后会定期的帮助我们联网校准系统的时间
    • 也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com(通过阿里云提供的服务网址配合ntpdate(安装ntp后会附带这个命令)命令自动校准)
      在这里插入图片描述
  2. ntp的作用:可以自动联网同步时间,也可以通过ntpdate -u ntp.aliyun.com手动校准时间。

四、6、IP地址、主机名

四、6.1、IP地址

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

    • IP地址主要有2个版本,V4版本和V6版本(V6很少用,课程暂不涉及)
    • IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址
  2. 可以通过命令:ifconfig,查看本机的ip地址。(如无法使用ifconfig命令,可以安装:yum -y install net-tools)
    在这里插入图片描述

  3. 特殊的IP

    • 127.0.0.1,这个IP地址用于指代本机
      在这里插入图片描述

    • 0.0.0.0,特殊IP地址

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

四、6.2、主机名

  1. 每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名
    • 无论是Windows或Linux系统,都可以给系统设置主机名

Windows系统主机名:
在这里插入图片描述

linux查看主机名:
在这里插入图片描述

  1. 修改主机名:可以使用命令:hostnamectl set-hostname 主机名,修改主机名(需root)
    在这里插入图片描述

四、6.3、域名解析

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

    • 实际上,我们一直都是通过字符化的地址去访问服务器,很少指定IP地址
    • 比如,我们在浏览器内打开:www.baidu.com,会打开百度的网址。其中,www.baidu.com,是百度的网址,我们称之为:域名
      在这里插入图片描述
    • 1、先查看本机的记录(私人地址本)
      • Windows看:C:\Windows\System32\drivers\etc\hosts
      • Linux看:/etc/hosts
    • 2、再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问
  2. 什么是域名解析:

    • 可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)
    • 先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器去查找

四、6.4、配置主机名映射

  1. 例子:比如,我们FinalShell是通过IP地址连接到的Linux服务器,那有没有可能通过域名(主机名)连接呢?
    在这里插入图片描述
  2. 我们只需要在Windows系统的:C:\Windows\System32\drivers\etc\hosts文件中配置记录即可
    在这里插入图片描述
    配置完成之后:就可以通过域名(主机名)进行连接
    在这里插入图片描述

四、6.5、虚拟机配置固定IP(window系统)

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

    • DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更
  2. 为什么需要固定IP

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

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

  3. 在VMware Workstation中配置固定IP(步骤):

      1. (第一步)在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
  • 注意:这个子网只是一个网络IP地址范围来的,这里表示的范围是:192.168.88.0——192.168.88.254之间
  • 子网掩码一定要确认是255.255.255.0

在这里插入图片描述

- 2. (第二步)在Linux系统中手动修改配置文件,固定IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述
在这里插入图片描述
然后重启网关即可:
在这里插入图片描述

  • 当bootproto属性设置为none时,Linux系统的IP地址不会自动发生变化。这意味着,你需要手动为系统配置IP地址等网络参数,否则系统将无法访问网络。
  • 当bootproto属性被设置为其他值时(如dhcp、static等),系统会根据设置自动获取或配置网络参数。
    • 当设置为dhcp时,系统会向DHCP服务器请求IP地址和其他网络参数。
    • 而当设置为static时,需要手动配置IP地址、子网掩码、网关等网络参数。(将会从用户手动设置的值中获取IP地址等信息。)

四、6.6、在虚拟机创建时配置静态ip

点击《网络和主机名》:
在这里插入图片描述

在网络页面做下面的几件事情:

  1. 修改主机名为自己喜欢的主机名,不要出现中文和特殊字符,建议用localhost
  2. 点击应用
  3. 将网络连接打开
  4. 点击配置,设置详细网络信息
    在这里插入图片描述

最好用一个截图软件,记住上图中的网络详细信息,接下来的配置要参考:
[图片]

点击配置按钮后,我们需要把网卡地址改为静态IP,这样可以避免每次启动虚拟机IP都变化。所有配置照搬你自己截图的网络信息填写,不要照抄我的:
[图片]

上图中的四个信息参考之前的以太网(ens33)网卡的截图,不要照搬我的来写。
最后,点击完成按钮:
[图片]

回到配置界面后,点击开始安装:

四、6.7、在虚拟机创建后配置静态ip

未配置静态ip前:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后根据刚刚记录的信息进行配置,netmark一般填写255.255.255.0
在这里插入图片描述

配置完成后的:
在这里插入图片描述

  • 当bootproto属性设置为none时,Linux系统的IP地址不会自动发生变化。这意味着,你需要手动为系统配置IP地址等网络参数,否则系统将无法访问网络。
  • 当bootproto属性被设置为其他值时(如dhcp、static等),系统会根据设置自动获取或配置网络参数。
    • 当设置为dhcp时,系统会向DHCP服务器请求IP地址和其他网络参数。
    • 而当设置为static时,需要手动配置IP地址、子网掩码、网关等网络参数。(将会从用户手动设置的值中获取IP地址等信息。)

子网掩码

子网掩码并不一定是固定的 255.255.255.0。子网掩码用于指示 IP 地址中哪些位用于网络标识,哪些位用于主机标识。它可以是各种形式的,取决于网络的规模和需要划分的子网数量。

常见的子网掩码包括:

  • 255.255.255.0:用于小型局域网或家庭网络,允许划分 254 个主机地址。
  • 255.255.255.128:用于划分子网时,每个子网有 126 个主机地址。
  • 255.255.255.192:用于划分子网时,每个子网有 62 个主机地址。
  • 255.255.255.224:用于划分子网时,每个子网有 30 个主机地址。
  • 255.255.255.240:用于划分子网时,每个子网有 14 个主机地址。
  • 255.255.255.248:用于划分子网时,每个子网有 6 个主机地址。
  • 255.255.255.252:用于划分子网时,每个子网有 2 个主机地址。

这些子网掩码是根据需要划分的子网数量和主机数量来选择的。在实际网络中,根据网络规模和设计需求,管理员可以选择不同的子网掩码来满足需求。

四、7、网络传输

四、7.1、下载和网络请求

1、ping命令
  1. ping命令是用来测试网络是否联通。
  2. 语法
ping [-c num] 参数

选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
参数:ip或主机名,被检查的服务器的ip地址或主机名地址

测试是否能连接上百度:
在这里插入图片描述

2、wget命令
  1. wget是非交互式的文件下载器,可以在命令行内下载网络文件
  2. 语法:
wget [-b] url
选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
参数:url,下载链接
  • 通过tail命令可以监控后台下载进度:tail -f wget-log
    在这里插入图片描述

注意:无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。

3、curl命令
  1. curl可以发送http网络请求,可用于:下载文件、获取信息等
  2. 语法:
curl [-O] url
选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
参数:url,要发起请求的网络地址

在这里插入图片描述

四、7.2、端口

  1. 端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
    • 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
    • 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
      在这里插入图片描述
      在这里插入图片描述

端口(虚拟)

  1. 计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。
    • 通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通
    • IP地址相当于小区地址,在小区内可以有许多住户(程序),而门牌号(端口)就是各个住户(程序)的联系地址

在这里插入图片描述

  1. Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:
    • 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口。
      • 非特殊需要,不要占用这个范围的端口
    • 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
    • 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。

在这里插入图片描述

  • 如图中,计算机A的微信连接计算机B的微信,A使用的50001即动态端口,临时找一个端口作为出口计算机B的微信使用端口5678,即注册端口,长期绑定此端口等待别人连接
1、nmap命令
  1. namp命令可以查看端口的占用情况。
    • namp命令需要下载资源:需要安装namp。
      在这里插入图片描述

在这里插入图片描述

  1. nmap语法:
nmap 被查看的IP地址

在这里插入图片描述

2、netstat命令
  1. 可以通过netstat命令,查看指定端口的占用情况

    • 使用之前需要安装netstat:yum -y install net-tools
      在这里插入图片描述
  2. 语法:

netstat -anp | grep 端口号

在这里插入图片描述
端口号25正在被进程1369占用。

四、7.3、进程管理

  • 程序运行在操作系统中,是被操作系统所管理的。
    • 为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
      • 并会为每一个进程都分配一个独有的:进程ID(进程号)
1、ps命令
  1. ps 查看进程状态,即时状态,非连续
  2. 常用组合命令:
# 查看tomcat进程状态。
ps -aux|grep tomcat 

参数说明:
	-a 表示所有进程、
	-u 表示进程状态、
	-x 表示进程详细信息。

# 语法:ps -ef,查看全部进程信息,可以搭配grep做过滤:
ps -ef | grep xxx

-- xxx是进程的名称
-e 显示所有进程
-f 显示所有字段(UID,PPIP,C,STIME字段)

一般来说,固定用法就是: ps -ef 列出全部进程的全部信息
在这里插入图片描述

在这里插入图片描述
查看指定进程

  1. 可以使用管道符配合grep来进行过滤,如:
    ps -ef | grep tail,即可准确的找到tail命令的信息
  • 过滤不仅仅过滤名称,进程号,用户ID等等,都可以被grep过滤。
    • 如:ps -ef | grep 25,过滤带有25关键字的进程信息,即把带有25关键字的进程信息输出到界面(一般指代过滤25进程号)

在这里插入图片描述

2、kill命令
  1. kill:关闭进程。
# 语法:
kill [进程号pid]
	
# 无法关闭,则可以使用kill -9 [pid]强制关闭进程。
-9 表示强制关闭进程。(不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。)

在这里插入图片描述

四、7.4、主机状态

1、top命令
  1. top命令查看CPU、内存使用情况,类似Windows的任务管理器
    • 默认每5秒刷新一次;
    • 语法:直接输入top即可,按q或ctrl + c退出

在这里插入图片描述

top命令内容详解
  • top命令内容前五行详解:
    在这里插入图片描述
第一行:top - 09:11:19 up 3 min,  1 user,  load average: 0.09, 0.33, 0.17

- top是命令的名称
- 09:11:19表示当前系统的时间
- up 3 min表示系统启动了3分钟
- 1 user 表示1个用户登录
- load average: 0.09, 0.33, 0.17 表示1分钟的平均负载是0.09,5分钟的平均负载是0.33,15分钟的平均负载为0.17

第二行:Tasks: 185 total,   1 running, 184 sleeping,   0 stopped,   0 zombie

- 第二行主要描述的是进程的信息
- Tasks:进程 
- 185 total 表示总共185个进程
-  1 running 表示1个进程正在运行
- 184 sleeping 表示184个进程在睡眠状态
- 0 stopped 表示0个进程在停止
- 0 zombie 表示当前的僵尸进程为0个
第三行:%Cpu(s):  0.1 us,  0.2 sy,  0.0 ni, 99.2 id,  0.6 wa,  0.0 hi,  0.0 si,  0.0 st

- 第三行主要描述的是cpu的使用情况
- %Cpu(s):表示cpu使用率
- 0.1 us 表示用户cpu使用率为0.1%
- 0.2 sy 表示系统cpu使用率为0.2%
- 0.0 ni 表示高优先级进程占用cpu时间百分比为0%
- 99.2 id 表示的空闲cpu率为99.2%
- 0.6 wa 表示IO等待CPU占用率为0.6%
- 0.0 hi 表示cpu硬件中断率为0%
- 0.0 si 表示cpu软件中断率为0%
- 0.0 st 表示强制等待占用cup率为0%

第四行:KiB Mem :  7992344 total,  7150060 free,   451236 used,   391048 buff/cache

- 第四行描述的主要是物理内存的使用情况 
- KiB Mem 表示物理内存
- 7992344 total 表示物理内存的总量为7992344
- 7150060 free 表示物理内存空闲的量为7150060
- 451236 used 表示物理内存在使用的量为451236
- 391048 buff/cache 表示buff和cache占用的物理内存的量为391048
第五行:KiB Swap:  8258556 total,  8258556 free,        0 used.  7231740 avail Mem


- 第五行描述的主要是虚拟内存的使用情况 
- kiB Swap 表示虚拟内存(交换空间)
- 8258556 total 表示虚拟内存的总量为8258556
- 8258556 free 表示虚拟内存空闲的量为8258556
- 0 used 表示虚拟内存在使用的量为0
- 7231740 avail Mem  表示avail和Mem占用的虚拟内存的量为7231740

在这里插入图片描述

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

toc命令也支持选项
在这里插入图片描述

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

在这里插入图片描述

2、硬盘信息监控(df)命令
  1. 使用df命令,可以查看硬盘的使用情况
  2. 语法:df [-h]
    • 选项:-h,以更加人性化的单位显示
      在这里插入图片描述
2、硬盘信息监控(iostat)命令
  1. 可以使用iostat查看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请求"。"一次传输"请求的大小是未知的。
  • 使用iostat的-x选项,可以显示更多信息

在这里插入图片描述

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

3、网络状态监控(sar)命令
  1. 可以使用sar命令查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)
  2. 语法:sar -n DEV num1 num2
    • 选项:-n,查看网络,DEV表示查看网络接口
    • num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)
      在这里插入图片描述
      在这里插入图片描述
  • 信息解读:
IFACE 本地网卡接口的名称
rxpck/s 每秒钟接受的数据包
txpck/s 每秒钟发送的数据包
rxKB/S 每秒钟接受的数据包大小,单位为KB
txKB/S 每秒钟发送的数据包大小,单位为KB
rxcmp/s 每秒钟接受的压缩数据包
txcmp/s 每秒钟发送的压缩包
rxmcst/s 每秒钟接收的多播数据包

四、7.5、环境变量

  1. 使用的一系列命令其实本质上就是一个个的可执行程序。
    • 比如,cd命令的本体就是:/usr/bin/cd 这个程序文件。
  • 疑问:为何无论当前工作目录在哪里,都能执行:/usr/bin/cd这个程序呢?
    • 这就是环境变量的作用。
1、查看环境变量的命令(env)
  1. 环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。
    • 在Linux系统中执行:env命令即可查看当前系统中记录的环境变量
    • 环境变量是一种KeyValue型结构,即名称和值,如下图:
      在这里插入图片描述

如上图:

USER:root,当前的操作用户
PWD:当前工作路径
......
等等一系列信息,用于辅助系统在运行的时候
从环境变量中获取关键信息
2、环境变量:PATH
  1. 在前面提出的问题中,我们说无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,这个就是借助环境变量中:PATH这个项目的值来做到的。
    在这里插入图片描述
  2. PATH记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以:隔开):
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
  • 当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体比如执行cd命令,就从第3个目录/usr/bin中搜索到了cd命令,并执行。
3、$符号
  1. 在Linux系统中,$符号被用于取”变量”的值。环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
    • 取得环境变量的值就可以通过语法:$环境变量名 来取得
      • 比如: echo $PATH。就可以取得PATH这个环境变量的值,并通过echo语句输出出来。
        在这里插入图片描述
      • 或者是:echo ${PATH}CCC
        • 当和其它内容混合在一起的时候,可以通过{}来标注取的变量是谁

在这里插入图片描述

4、自行设置环境变量
  1. Linux环境变量可以用户自行设置,其中分为:
    • 临时设置,语法:export 变量名=变量值
    • 永久生效
      • 针对当前用户生效,配置在当前用户的: ~/.bashrc文件中
      • 针对所有用户生效,配置在系统的: /etc/profile文件中
      • 并通过语法:source 配置文件(source 文件路径),进行立刻生效,或重新登录FinalShell生效

在这里插入图片描述
在这里插入图片描述

5、自定义环境变量PATH
  1. 环境变量PATH这个变量里面记录了系统执行命令的搜索路径。

    • 自己写了一个程序,把自己程序所在的文件目录加入到搜索目录去,那么无论在任何地方都可以去执行我们自己所编写的程序。
      • 这些自己编写的程序的目录都可以自行添加到PATH中去
  2. 测试:

    • 在当前HOME目录内创建文件夹,myenv,在文件夹内创建文件mkhaha
    • 通过vim编辑器,在mkhaha文件内填入:echo 哈哈哈哈哈
    • 完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行
      • 解决:修改PATH的值
        • 临时修改PATH:export PATH=$PATH:/home/dadao/myenv,再次执行mkhaha,无论在哪里都能执行了
        • 或将export PATH=$PATH:/home/itheima/myenv,填入用户环境变量文件或系统环境变量文件中去

四、7.6、上传、下载

  1. 为了方便,我们一般会使用finalShell、MobaXterm等客户端工具和虚拟机进行数据交互。
    • 比如把要上传到虚拟机的文件直接拉取到linux系统里面的某个目录下。
1、rz、sz命令
  1. 除了通过FinalShell的下方窗体(或者其他客户端软件进行远程连接虚拟机)进行文件的传输以外,也可以通过rz、sz命令进行文件传输。
  2. rz、sz命令需要安装,可以通过:yum -y install lrzsz,即可安装。
    • rz命令,进行上传,语法:直接输入rz即可
    • sz命令进行下载,语法:sz 要下载的文件(sz test.txt)
      • 文件会自动下载到windows桌面的fsdownload文件夹中
  • 注意,rz、sz命令需要终端软件支持才可正常运行
    • FinalShell、SecureCRT、XShell等常用终端软件均支持此操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 这是因为rz、sz命令需要终端的支持(即rz命令是在客户端里面执行的),比如终端就是你用来连接远程服务器的客户端,像是 XShell、rxvt、putty、SecureCRT。
    • MobaXterm不支持rz、sz命令。

四、7.7、压缩、解压

压缩格式
  1. 市面上有非常多的压缩格式
    • zip格式:Linux、Windows、MacOS,常用
    • 7zip:Windows系统常用
    • rar:Windows系统常用
    • tar:Linux、MacOS常用
    • gzip:Linux、MacOS常用
  2. 在Windows系统中常用的软件如:winrar、bandizip等软件,都支持各类常见的压缩格式。
  3. 如何在Linux系统中操作:tar、gzip、zip这三种压缩格式,完成文件的压缩、解压操作。
1、tar命令
  1. Linux和Mac系统常用有2种压缩格式,后缀名分别是:

    • .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
    • .gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
      针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作
  2. 语法:

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

-c,创建压缩文件,用于压缩模式
-v,显示压缩、解压过程,用于查看进度
-x,解压模式
-z,gzip模式,不使用-z就是普通的tarball格式
-C,选择解压的目的地,用于解压模式
-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
参数1~N,指定要压缩哪个文件,可以指定多个文件,用空格隔开
tar压缩
  1. tar的常用压缩组合为:
# 将1.txt 2.txt 3.txt 压缩到test.tar文件内
tar -cvf test.tar 1.txt 2.txt 3.txt

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

  1. 注意:
    • -z选项如果使用的话,一般处于选项位第一个
    • -f选项,必须在选项位最后一个
tar解压
  1. 常用的tar解压组合有
# 解压test.tar,将文件解压至当前目录(不指定目录)
tar -xvf test.tar

# 解压test.tar,将文件解压至指定目录(/home/dadao)
tar -xvf test.tar -C /home/dadao

# 以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/dadao)
tar -zxvf test.tar.gz -C /home/dadao

  1. 注意:
    • -f选项,必须在选项组合体的最后一位
    • -z选项,建议在开头位置
    • -C选项单独使用,和解压所需的其它参数分开
zip命令压缩文件
  1. 可以使用zip命令,压缩文件为zip压缩包
  2. 语法:
zip [-r] 参数1 参数2 ... 参数N

-r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致
  1. 示例:
# 将a.txt b.txt c.txt 压缩到test.zip文件内
zip test.zip a.txt b.txt c.txt


# 将test、knife两个文件夹和a.txt文件,压缩到test.zip文件内
zip -r test.zip test knife a.txt

unzip命令解压文件
  1. 使用unzip命令,可以方便的解压zip压缩包
  2. 语法:
unzip [-d] 参数

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

示例:

# 将test.zip解压到当前目录
unzip test.zip

# 将test.zip解压到指定文件夹内(/home/dadao)
unzip test.zip -d /home/dadao

网站公告

今日签到

点亮在社区的每一天
去签到