Linux学习笔记

目录

第1章 初识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.2.4 总结

1.3 虚拟机介绍

1.3.1 什么是虚拟机

1.3.2 为什么要使用虚拟机

1.3.3 总结

1.4 VMware安装虚拟机

1.5 远程连接Linux系统

1.6 扩展:虚拟机快照

第2章 Linux基础命令 

2.1 Linux的目录结构

2.2 Linux命令入门

2.2.1 命令基础

2.2.2 ls命令入门

2.2.3 ls命令的参数和选项

2.3 目录切换相关命令(cd/pwd)

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

2.5 创建目录命令(mkdir-文件夹)

2.6 文件操作命令part1(touch、cat、more) 

2.7 文件操作命令part2(cp、mv、rm)

2.8 查找命令(which、find)

2.9 grep、wc和管道符

2.10 echo、tail和重定向符

2.11 vi编辑器 

3. Linux用户和权限

3.1 认知root用户

3.2 用户、用户组管理

3.3 查看权限控制

3.4 修改权限控制 -chmod

3.5 修改权限控制 -chown

4. Linux实用操作

4.1 各类小技巧(快捷键)

4.2 软件安装 

 4.3 systemctl

4.4 软连接

​​​​4.5 日期、时区

4.6 IP地址、主机名

4.6.1 IP和主机名

4.6.2 虚拟机配置固定IP

4.7 网络传输

4.7.1 下载和网络请求

4.7.2 端口

​​​​​​4.8 进程管理

4.9 主机状态

4.10 环境变量

4.11 上传、下载

4.12 压缩、解压


菜鸟教程:Linux 教程 | 菜鸟教程

第1章 初识Linux

1.1 操作系统概述

1.1.1 计算机组成

硬件:

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

软件:

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

1.1.2 操作系统​​​​​​​ 

操作系统是计算机软件的一种,它主要负责:
作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。
而计算机,如果没有操作系统,就是一堆无法使用的塑料而已。
当计算机拥有了操作系统,就相当于拥有了灵魂,操作系统可以:

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

 操作系统是如何工作的

常见的操作系统

1.1.3 总结

1. 计算机由哪两个主要部分组成?

硬件和软件

2. 操作系统是什么?由什么作用?

操作系统是软件的一类。

主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁

3. 常见的操作系统有哪些?

PC端:WindowsLinuxMacOS

移动端:AndroidIOS、鸿蒙系统

1.2 初始linux

1.2.1 Linux的诞生

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

1.2.2 Linux内核

Linux系统的组成如下:

  • Linux系统内核
  • 系统级应用程序​​​​​​​​​​​​​​​​​​​​​​​​​​​

​​​​​​​​​​​​​​​​​​​​两部分组成。

​​​​​​​

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

内核提供了Linux系统的主要功能,如硬件调度管理的能力。

Linux内核是免费开源的,任何人都可以查看内核的源代码,甚至是贡献源代码。

1.2.3 Linux发行版

内核是免费、开源的,这也就代表了:

  • 任何人都可以获得并修改内核,并且自行集成系统级程序
  • 提供了内核+系统级程序的完整封装,称之为Linux发行版

内核无法被用户直接使用,需要配合应用程序才能被用户使用。
在内核之上,封装系统级应用程序,组合在一起就称之为Linux发行版。
发行版众多,课程主要基于CentOS辅以Ubuntu进行讲解

1.2.4 总结

1. Linux的诞生

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

2. 什么是Linux系统的内核

内核提供了Linux系统的主要功能,如硬件调度管理的能力。

Linux内核是免费开源的,任何人都可以查看内核的源代码,甚至是贡献源代码。

3. 什么是Linux系统发行版

内核无法被用户直接使用,需要配合应用程序才能被用户使用。

在内核之上,封装系统级应用程序,组合在一起就称之为Linux发行版。

发行版众多,课程主要基于CentOS辅以Ubuntu进行讲解

1.3 虚拟机介绍

1.3.1 什么是虚拟机

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

1.3.2 为什么要使用虚拟机

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

1.3.3 总结

1. 什么是虚拟机?

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

​​​​​​​

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

学习Linux系统,需要有Linux系统环境。

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

1.4 VMware安装虚拟机

mac下安装centos8_mac2 centos8 iso-CSDN博客

注:VMware提供虚拟化硬件条件。

1.5 远程连接Linux系统

对于操作系统的使用,有2种使用形式:

  • 图形化页面使用操作系统
  • 以命令的形式使用操作系统

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

  • 图形化:使用操作系统提供的图形化页面,以获得图形化反馈的形式去使用操作系统。
  • 命令行:使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。

我们可以通过第三方软件,XShell,远程连接到Linux操作系统之上。

并通过XShell去操作Linux系统。这样各类操作都会十分的方便。  

Linux系统的图形化和命令行

实现原理???  

1.6 扩展:虚拟机快照

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

保存快照 

 

恢复快照

第2章 Linux基础命令 

2.1 Linux的目录结构

Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面

Linux路径的描述方式

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

总结:

1. Linux操作系统的目录结构

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

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

2. /Linux系统中表示

出现在开头的 / 表示:根目录
出现在后面的 / 表示:层次关系

2.2 Linux命令入门

2.2.1 命令基础

学习Linux,本质上是学习在命令行下熟练使用Linux的各类命令。

  • 命令行:即Linux终端(Terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。
  • 命令:即Linux程序。一个命令就是一个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命令入门

  • ls命令的作用是列出目录下的内容,语法细节如下:

  • ls [-a -l -h] [Linux路径]

  • -a -l -h 可选的选项

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

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

HOME目录和工作目录

总结

1.ls命令的作用是?
在命令行中,以平铺的形式,展示当前工作目录|(默认HOME目录)下的内容(文件或文件夹)
2.HOME目录是?
默认在:/home用户名每一个用户在Linux系统的专属目录
3.当前工作目录?
Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置工作目录在用户的HOME目录

2.2.3 ls命令的参数和选项

ls [-a -l -h] [Linux路径]

当ls不使用参数,表示列出:当前工作目录的内容,即用户的HOME目录

-a:显示隐藏内容
-l: 以列表(竖向排列)展示内容,显示更多信息
-h:以易于阅读的形式(必须与l一起使用,会显示文件大小单位KB,MB,GB之类的)

例子:显示根目录隐藏文件和详情
ls -alh /     等价于  ls -a -l -h /

不给参数路径的话默认显示当前工作路径

2.3 目录切换相关命令(cd/pwd)

 cd

当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录
我们可以通过cd命令,更改当前所在的工作目录。
cd命令来自英文:Change Directory

语法: cd [linux 路径]

  • cd命令无需选项,只有参数,表示要切换到哪个目录下
  • cd命令直接执行,不写参数,表示回到用户的HOME目录

 pwd

通过ls来验证当前的工作目录,其实是不恰当的。
我们可以通过pwd命令,来查看当前所在的工作目录。
pwd命令来自:Print Work Directory
语法:pwd

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

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

相对路径和绝对路径

  •  cd /home/itheima/Desktop  绝对路径写法

  •  cd Desktop  相对路径写法

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

特殊路径符

如图,当前工作目录处于:/home/itheima/Desktop
现在想要,向上回退一级,切换目录到/home/itheima中,如何做?
可以直接通过cd,即可回到HOME目录
也可以通过特殊路径符来完成。

特殊路径符:

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

2.5 创建目录命令(mkdir-文件夹)

mkdir命令

通过mkdir命令可以创建新的目录(文件夹)
mkdir来自英文:Make Directory
语法:mkdir [-p] Linux路径

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

mkdir -p 选项

如果想要一次性创建多个层级的目录,如下图

会报错,因为上级目录itcast和good并不存在,所以无法创建666目录
可以通过-p选项,将一整个链条都创建完成。

注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作涉及到权限问题,HOME外无法成功

2.6 文件操作命令part1(touch、cat、more) 

touch 创建文件

可以通过touch命令创建文件
语法: touch Linux路径

  • touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用

如何分辨文件和文件夹

cat命令 查看文件内容

准备好文件内容后,可以通过cat查看内容。
语法: cat Linux路径
cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

more命令查看文件内容

more命令同样可以查看文件内容,同cat不同的是:

  • cat是直接将内容全部显示出来
  • more支持翻页,如果文件内容过多,可以一页页的展示

语法:more Linux路径

  • 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

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

  • 在查看的过程中,通过空格翻页
  • 通过q退出查看

2.7 文件操作命令part2(cp、mv、rm)

 cp命令复制文件文件夹

cp命令可以用于复制文件\文件夹,cp命令来自英文单词:copy
语法:cp [-r] 参数1 参数2
-r选项,可选,用于复制文件夹使用,表示递归
参数1,Linux路径,表示被复制的文件或文件夹
参数2,Linux路径,表示要复制去的地方

复制文件

复制文件夹

复制文件夹,必须使用-r选项,否则不会生效

mv移动文件或文件夹 

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

 如图2,目标不存在,则有改名的效果

rm删除文件、文件夹

rm命令可用于删除文件、文件夹
rm命令来自英文单词:remove
语法:rm [-r -f] 参数1 参数2 ..... 参数N

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

删除文件

删除文件夹 

  • 删除文件夹,如下图,必须使用-r选项才可以

  • 演示强制删除,-f选项
  • 可以通过 su - root,并输入密码123456(和普通用户默认一样)临时切换到root用户体验
  • 通过输入exit命令,退回普通用户。

rm删除文件、文件夹 - 通配符

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

符号 * 表示通配符,即匹配任意内容(包含空),示例:
test* ,表示匹配任何以 test 开头的内容
*test ,表示匹配任何以 test 结尾的内容
*test* ,表示匹配任何包含 test 的内容

演示:

删除所有以 test 开头的文件或文件夹

2.8 查找命令(which、find)

which命令

Linux命令,其实它们的本体就是一个个的二进制可执行程序,和Windows系统中的.exe文件,是一个意思。可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里

语法:which 要查找的命令

find命令 - 按文件名查找文件或者文件夹

在Linux系统中,我们可以通过find命令去搜索指定的文件。
语法:find 起始路径 -name "被查找文件名"

为了确保后续演示,拥有最大的权限,可以在整个系统完成搜索
我们可以切换到root用户以获得管理员权限
执行命令:
su - root
输入密码:123456(和普通用户的密码一样)

查找文件名叫做:test的文件,从根目录开始搜索
基于语法,可以有命令:
find / -name "test" 

find命令 - 通配符

根据语法:find 起始路径 -name "被查找文件名"
被查找文件名,支持使用通配符 * 来做模糊查询。

  • 符号* 表示通配符,即匹配任意内容(包含空),示例:
    • test*,表示匹配任何以test开头的内容
    • *test,表示匹配任何以test结尾的内容
    • *test*,表示匹配任何包含test的内容 

基于通配符的含义,可以结合find命令做文件的模糊查询。
查找所有以test开头的文件:find / -name “test*”

查找所有以test结尾的文件:find / -name “*test”


查找所有包含test的文件:find / -name “*test*”

find命令 - 按文件大小查找文件

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

  • +- 表示大于和小于
  • n表示大小数字
  • kMG表示大小单位,k(小写字母)表示kbM表示MBG表示GB

示例:

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

2.9 grep、wc和管道符

grep命令 

可以通过grep命令,从文件中通过关键字过滤文件行。

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

  • 选项-n,可选,表示在结果中显示匹配的行的行号。
  • 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来
  • 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

现在,通过touch命令在HOME目录创建itheima.txt,并通过图形化页面编辑并保存如下内容:

过滤itheima关键字


过滤itcast关键字


过滤code关键字,并显示行号

wc命令做数量统计

可以通过wc命令统计文件的行数、单词数量等
语法:wc [-c -m -l -w ] 文件路径

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

不带选项,统计文件


统计字节数


统计字符数


统计行数


统计单词数(空格或者回车作为识别单词标识)

管道符  grep / wc 都可以用作管道符

学习了grep命令后,我们在来学习一个新的特殊符号,管道符:|

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

如上图:

  •  cat itheima.txt的输出结果(文件内容)
  • 作为右边grep命令的输入(被过滤文件)

管道符的应用非常多

  • ls | grep Desktop,过滤ls的结果

  • find / -name “test” | grep “/usr/lib64”,过滤结果,只找路径带有/usr/lib64的结果

  • cat itheima.txt | grep itcast | grep itheima,可以嵌套使用

  • cat itheima.txt的结果给 grep itcast 使用
  • cat itheima.txt | grep itcast 的结果给 grep itheima使用

2.10 echo、tail和重定向符

echo命令

可以使用echo命令在命令行内输出指定内容
语法:echo 输出的内容

  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用””包围  

演示:

  • 在终端上显示:Hello Linux 

  • 带有空格或\等特殊符号,建议使用双引号包围因为不包围的话,空格后很容易被识别为参数2 

反引号`

echo pwd

输出当前的工作路径,但是pwd被作为普通字符输出了,通过将命令用反引号(通常也称之为飘号)`将其包围被`包围的内容,会被作为命令执行,而非普通字符

重定向符

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

  •  echo “Hello Linux” > itheima.txt

  • echo “Hello itheima” > itheima.txt,再次执行,覆盖新内容 

  • echo “Hello itcast” >> itheima.txt,再次执行,使用>>追加新内容 

tail命令

使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改,语法如下:
tail [-f -num] Linux 路径

  •  参数,Linux路径,表示被跟踪的文件路径
  • 选项,-f,表示持续跟踪
  • 选项, -num,表示,查看尾部多少行,不填默认10行

查看/var/log/vmware-network.log文件的尾部10行:tail /var/log/vmware-network.log


查看/var/log/vmware-network.log文件的尾部3行:tail -3 /var/log/vmware-network.log

 tail持续跟踪文件更改

使用-f选项,可以持续跟踪文件更改,语法如下

tail -f test.txt 

2.11 vi编辑器 

vi\vim编辑器介绍 

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

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

vi\vim编辑器的三种工作模式 

命令模式(Command mode

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

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

输入模式(Insert mode

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

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

底线命令模式(Last line mode

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

命令模式

vi/vim 文件路径

  • 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
  • 如果文件路径表示的文件存在,那么此命令用于编辑已有文件 

vi编辑器的快速体验

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

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

命令模式快捷键

 

底线命令模式

通过esc,底线模式可以退回到命令模式。在命令模式内,输入: ,即可进入底线命令模式,支持如下命令

3. Linux用户和权限

3.1 认知root用户

root用户(超级管理员)

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

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

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

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

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

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

suexit命令

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

  •  - 符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
  • 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
  • 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d
  • 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
  • 使用root用户切换到其它用户,无需密码,可以直接切换

sudo命令

在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。
但是我们不建议长期使用root用户,避免带来系统损坏。
我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。 
语法:

  •  在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权
  • 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

 为普通用户配置sudo认证

  • 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
  • 在文件的最后添加:

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

执行的命令,均以root运行。  没好使???

3.2 用户、用户组管理

用户、用户组

Linux系统中可以:

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

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

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

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。
所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。

用户组管理

以下命令需root用户执行

  • 创建用户组     groupadd 用户组名
  • 删除用户组     groupdel 用户组名

用户管理

创建用户

useradd [-g -d] 用户名

  • 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
  • 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
  • useradd  test2 -g itcast -d /home/test222(创建一个test2用户,指定其用户组为itcast ,工作目录为/home/test222)

删除用户

userdel [-r] 用户名

  • 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

查看用户所属组

id [用户名]

  • 参数:用户名,被查看的用户,如果不提供则查看自身

修改用户所属组

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

getent

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

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

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

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

3.3 查看权限控制

认知权限信息

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

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

序号1,权限细节

举例:drwxr-xr-x,表示: 

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

rwx

  • r表示读权限
  • w表示写权限
  • x表示执行权限 

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

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

3.4 修改权限控制 -chmod

chmod命令 

可以使用chmod命令,修改文件、文件夹的权限信息。
注意,只有文件、文件夹的所属用户或root用户可以修改。
语法: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位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下: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)

案例

  • 将hello.txt的权限修改为: r-x--xr-x,数字序号为:

chmod 515 hello.txt

  • 将hello.txt的权限修改为: -wx-w-rw-,数字序号为:

chmod 326 hello.txt

  • 序号123代表的权限是:

--x-w--wx

3.5 修改权限控制 -chown

 chown命令

使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:chown [-r] [用户] [:] [用户组] 文件或文件夹

  • 选项,-R,同chmod,对文件夹内全部内容应用相同规则
  • 选项,用户,修改所属用户
  • 选项,用户组,修改所属用户组
  • 用于分隔用户和用户组

示例:chown [-R] [用户] [:] [用户组] 文件或文件夹

  • 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并对文件夹内全部内容应用同样规则

 

4. Linux实用操作

4.1 各类小技巧(快捷键)

 ctrl + c 强制停止

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

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

ctrl + d 退出或登出

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

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

ps:不能用于退出vi/vim

历史命令搜索 

  • 可以通过history命令,查看历史输入过的命令

  • 可以通过:!命令前缀,自动执行上一次匹配前缀的命令 

  • 可以通过快捷键:ctrl + r,输入内容去匹配历史命令 

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

  • 回车键可以直接执行
  • 键盘左右键,可以得到此命令(不执行) 

光标移动快捷键 

  • ctrl + a,跳到命令开头
  • ctrl + e,跳到命令结尾
  • ctrl + 键盘左键,向左跳一个单词
  • ctrl + 键盘右键,向右跳一个单词

清屏

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

总结:

1. ctrl + c 强制停止
2. ctrl + d 退出登出
3. history 查看历史命令
4. !命令前缀,自动匹配上一个命令
5. ctrl + r,搜索历史命令
6. ctrl + a | e,光标移动到命令开始或结束
7. ctrl + ← | →,左右跳单词
8. ctrl + l 或 clear命令 清屏

4.2 软件安装 

Linux系统的应用商店

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

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

yum命令 

yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法:yum [-y] [ install | remove | search] 软件名称
选项:-y,自动确认,无需手动确认安装或卸载过程

  • install:安装
  • remove:卸载
  • search:搜索

注意:yum命令需要root权限哦,可以su切换到root,或使用sudo提权。

yum命令需要联网

安装wget 

  • yum [-y] install wget, 通过yum命令安装wget程序

  • yum [-y] remove wget,通过yum命令卸载wget命令
  • yum search wget,通过yum命令,搜索是否有wget安装包

apt命令 - 扩展

 前面学习的各类Linux命令,都是通用的。 但是软件安装,CentOS系统和Ubuntu是使用不同的包管理器。
CentOS使用yum管理器,Ubuntu使用apt管理器
通过前面学习的WSL环境,我们可以得到Ubuntu运行环境。
语法:
apt [-y] [ install | remove | search] 软件名称
用法和yum一致,同样需要root权限

  • apt install wget,安装wget
  • apt remove wget,移除wget
  • apt search wget,搜索wget

 4.3 systemctl

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启

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

语法:systemctl start | stop | status | enable | disable 服务名

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

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

  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务) 

除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制。

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

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

部分软件安装后没有自动集成到systemctl中,需要进行手动添加。  ??? 待完善

4.4 软连接

ln命令创建软连接

在系统中创建软链接,可以将文件、文件夹链接到其它位置。
类似Windows系统中的《快捷方式》。

语法: ln -s 参数1 参数2

  • -s选项,创建软连接
  • 参数1:被链接的文件或文件夹
  • 参数2:要链接去的目的地

实例:

  • ln -s /etc/yum.conf ~/yum.conf
  • ln -s /etc/yum ~/yum

​​​​4.5 日期、时区

date命令

通过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 到现在的秒数
  • 使用date命令本体,无选项,直接查看时间


可以看到这个格式非常的不习惯。我们可以通过格式化字符串自定义显示格式

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

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

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

  • -d选项,可以按照给定的字符串显示日期,一般用于日期计算

  • 其中支持的时间标记为:
    • year年
    • month月
    • day天
    • hour小时
    • minute分钟
    • second秒
  • -d选项可以和 格式化字符串配合一起使用

修改Linux时区

通过date查看的日期时间是不准确的,这是因为:系统默认时区非中国的东八区。
使用root权限,执行如下命令,修改时区为东八区时区


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

ntp程序

可以通过ntp程序自动校准系统时间
安装ntp:yum -y install ntp(
ntp已经把自己注册为服务)
启动并设置开机自启:

  • systemctl start ntpd
  • systemctl enable ntpd

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

也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com
通过阿里云提供的服务网址配合ntpdate(安装ntp后会附带这个命令)命令自动校准

4.6 IP地址、主机名

4.6.1 IP和主机名

IP地址

每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯
IP地址主要有2个版本,V4版本和V6版本(V6很少用,课程暂不涉及)
IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址

可以通过命令:ifconfig,查看本机的ip地址,如无法使用ifconfig命令,可以安装:yum -y install net-tools

特殊IP地址

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

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

主机名

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

  • Windows系统主机名

  • Linux系统主机名

Linux中修改主机名

  • 可以使用命令:hostname查看主机名

  • 可以使用命令:hostnamectl set-hostname 主机名,修改主机名(需root)

  • 重新登录FinalShell即可看到主机名已经正确显示

域名解析

IP地址实在是难以记忆,

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

即:

  • 先查看本机的记录(私人地址本)
    • Windows看:C:\Windows\System32\drivers\etc\hosts
    • Linux看:/etc/hosts
  • 再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问

配置主机名映射

只需要在Windows系统的:C:\Windows\System32\drivers\etc\hosts文件中配置记录即可,通过域名(主机名)连接Linux服务器。

4.6.2 虚拟机配置固定IP

为什么需要固定IP

当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。
DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更
原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统,如果IP地址经常变化我们就要频繁修改适配很麻烦
原因2:在刚刚我们配置了虚拟机IP地址和主机名的映射,如果IP频繁更改,我们也需要频繁更新映射关系
综上所述,我们需要IP地址固定下来,不要变化了。

VMware Workstation中配置固定IP

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

  1. 在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)
  2. 在Linux系统中手动修改配置文件,固定IP

首先让我们,先进行第一步,跟随图片进行操作

现在进行第二步,在Linux系统中修改固定IP

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

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

VMware Fusion中配置固定IP

步骤一:先修改VMware Fusion的网络设置
1. 打开Mac系统的终端程序,并执行如下命令:

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


3. 先备份一下文件:cp /Library/Preferences/VMware\Fusion/networking  /Library/Preferences/VMware\Fusion/networking.bakcup
通过vim编辑器修改文件:vim /Library/Preferences/VMware\ Fusion/networking

修改第11行为如图内容:192.168.88.0,并保存退出
4. 备份文件:cp /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf  /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf.backup
修改文件:vim /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf


如图所示在 NAT gateway address下修改:ip为:192.168.88.2(这是网关的IP),并保存退出
5. 启动VMware Fusion,进入Linux虚拟机。

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

  • 在虚拟机的图形化页面中,打开终端,使用su - 切换到root用户

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

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

4.7 网络传输

4.7.1 下载和网络请求

ping命令

可以通过ping命令,检查指定的网络服务器是否是可联通状态
语法:
ping[-c num] ip或主机名

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

示例:

  • 检查到baidu.com是否联通

结果表示联通,延迟8ms左右

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

wget命令

wget是非交互式的文件下载器,可以在命令行内下载网络文件
语法: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

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

curl命令 

curl可以发送http网络请求,可用于:下载文件、获取信息等
语法: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 端口

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

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

端口(虚拟)

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

Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:

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

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

  • 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
  • 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。

如图中,计算机A的微信连接计算机B的微信,A使用的50001即动态端口,临时找一个端口作为出口
计算机B的微信使用端口5678,即注册端口,长期绑定此端口等待别人连接 

 查看端口占用

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

  • 使用nmap命令,安装nmap:yum -y install nmap

语法:nmap 被查看的IP地址


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

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

查看端口占用

  • 可以通过netstat命令,查看指定端口的占用情况

语法:netstat -anp | grep 端口号,安装netstat:yum -y install net-tools


如图,可以看到当前系统6000端口被程序(进程号7174)占用了
其中,0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问


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

总结:

1. 什么是端口?
端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口

  • 物理端口:USB、HDMI、DP、VGA、RJ45等
  • 虚拟端口:操作系统和外部交互的出入口

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

  • 公认端口:1~1023,用于系统内置或常用知名软件绑定使用
  • 注册端口:1024~49151,用于松散绑定使用(用户自定义)
  • 动态端口:49152~65535,用于临时使用(多用于出口)

3. 查看端口占用

  • nmap IP地址,查看指定IP的对外暴露端口
  • netstat -anp | grep 端口号,查看本机指定端口号的占用情况

​​​​​​4.8 进程管理

进程

程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程ID(进程号)

查看进程

可以通过ps命令查看Linux系统中的进程信息
语法:ps [-e -f ]
选项:-e,显示出全部的进程
选项:-f,以完全格式化的形式展示信息(展示全部信息)
一般来说,固定用法就是: ps -ef 列出全部进程的全部信息

查看指定进程

  • 在FinalShell中,执行命令:tail,可以看到,此命令一直阻塞在那里
  • 在FinalShell中,复制一个标签页,执行:ps -ef 找出tail这个程序的进程信息
  • 问题:是否会发现,列出的信息太多,无法准确的找到或很麻烦怎么办?

我们可以使用管道符配合grep来进行过滤,如:
ps -ef | grep tail,即可准确的找到tail命令的信息

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

关闭进程

在Windows系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。
同样,在Linux中,可以通过kill命令关闭进程。
语法:kill [-9] 进程ID
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。

总结

1. 什么是进程?

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

2. 管理进程的命令

  • ps -ef 查看进程信息
  • ps -ef | grep 关键字 过滤指定关键字进程信息
  • kill [-9] 进程号 关闭指定进程号的进程

4.9 主机状态

查看系统资源占用

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

top命令内容详解

第一行:
top:命令名称,14:39:58:当前系统时间,up 6 min:启动了6分钟,2 users:2个用户登录,load:1、5、15分钟负载
第二行:


Tasks:175个进程,1 running:1个进程子在运行,174 sleeping:174个进程睡眠,0个停止进程,0个僵尸进程
第三行:


%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占用
KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用    物理内存???虚拟内存

  • 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命令也支持选项:

top -p 1    显示进行1的信息

top -d 3    刷新时间改为3s

top -n  3  主动刷新3次

top交互式选项

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

磁盘信息监控

使用df命令,可以查看硬盘的使用情况
语法:df [-h]
选项:-h,以更加人性化的单位显示

  •  可以使用iostat查看CPU、磁盘的相关信息

语法: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:     磁盘利用率

网络状态监控 

 可以使用sar命令查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)
语法:sar -n DEV num1 num2
选项:-n,查看网络,DEV表示查看网络接口
num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)


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

4.10 环境变量

问题:

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

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

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

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

环境变量

环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。
在Linux系统中执行:
env命令即可查看当前系统中记录的环境变量
环境变量是一种KeyValue型结构,即名称和值,如下图:

如图,图中记录了:

HOME /home/itheima ,用户的 HOME 路径
USER itheima ,当前的操作用户
PWD :当前工作路径
......

等等一系列信息,用于辅助系统在运行的时候从环境变量中获取关键信息

 环境变量PATH

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

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

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

当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体
比如执行cd命令,就从第二个目录/usr/bin中搜索到了cd命令,并执行

$符号

在Linux系统中,$符号被用于取”变量”的值。
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
取得环境变量的值就可以通过语法:$环境变量名  来取得
比如: echo $PATH
就可以取得PATH这个环境变量的值,并通过echo语句输出出来。


又或者:echo ${PATH}ABC


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

自行设置环境变量

Linux环境变量可以用户自行设置,其中分为:
临时设置,语法:export 变量名=变量值
永久生效

  • 针对当前用户生效,配置在当前用户的:    ~/.bashrc文件中
  • 针对所有用户生效,配置在系统的:    /etc/profile文件中
  • 并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效

自定义环境变量PATH

环境变量PATH这个项目里面记录了系统执行命令的搜索路径。
这些搜索路径我们也可以自行添加到PATH中去。

测试:

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

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

  • 修改PATH的值

临时修改PATH:export PATH=$PATH:/home/itheima/myenv,再次执行mkhaha,无论在哪里都能执行了
或将export PATH=$PATH:/home/itheima/myenv,填入用户环境变量文件或系统环境变量文件中去

总结:

1. 什么是环境变量?

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

2. 通过env命令可以查看当前系统配置的环境变量信息

3. 通过$符号,可以取出环境变量的值

4. 什么是PATH,作用是?

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

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

export PATH=$PATH:自定义路径

5. 如何修改环境变量?

临时生效: export 名称 =
永久生效:
针对用户: ~/. bashrc 文件中配置
针对全部用户: / etc /profile 文件中配置

配置完成,可以通过source命令立刻生效

4.11 上传、下载

上传、下载

我们可以通过FinalShell工具,方便的和虚拟机进行数据交换。
在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:

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

rzsz命令

当然,除了通过FinalShell的下方窗体进行文件的传输以外,也可以通过rz、sz命令进行文件传输。
rz、sz命令需要安装,可以通过:yum -y install lrzsz,即可安装。

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

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

文件会自动下载到桌面的:fsdownload文件夹中。
注意,rz、sz命令需要终端软件支持才可正常运行
FinalShell、SecureCRT、XShell等常用终端软件均支持此操作

4.12 压缩、解压

压缩格式

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

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

在Windows系统中常用的软件如:winrar、bandizip等软件,都支持各类常见的压缩格式,这里不多做讨论。
我们现在要学习,如何在Linux系统中操作:tar、gzip、zip这三种压缩格式
完成文件的压缩、解压操作。

tar命令

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,选择解压的目的地,用于解压模式

tar 命令压缩 

tar的常用组合为:

  • tar -cvf test.tar 1.txt 2.txt 3.txt             test.tar 是针对-f的选项(-f要放最后的原因)

将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选项,必须在选项位最后一个

tar 解压 

常用的tar解压组合有

  • tar -xvf test.tar

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

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

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

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

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

注意:

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

zip 命令压缩文件

可以使用zip命令,压缩文件为zip压缩包
语法:zip [-r] 参数1 参数2 .... 参数N

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

示例:

  • zip test.zip a.txt b.txt c.txt

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

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

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

unzip 命令解压文件 

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

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

示例:

  • unzip test.zip,将test.zip解压到当前目录
  • unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内(/home/itheima)

 总结:

1. Linux系统常用的压缩格式有:

tar 格式,归档文件,简单的将文件整合到一个文件内,无压缩效果
gzip 格式, gzip 压缩文件,不仅能整合到一个文件,同时有体积压缩效果

2. tar命令

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

-c ,创建压缩文件、 -v ,查看压缩 \ 解压过程、 -x ,解压模式
-f ,指定压缩 \ 解压的文件, -z gzip 模式, -C ,指定解压的路径
-z 在选项组建议在开头, -f 在选项组内必须在尾部, -C 单独使用

3. zip命令

zip [-r] 参数...

-r ,压缩文件夹使用

4. unzip命令

unzip [-d] 参数

-d,指定解压去的目录

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux学习笔记是关于学习Linux操作系统的记录和总结。在学习Linux时,你可能会遇到以下几个方面的内容。 首先,Linux是一个面向网络服务的操作系统,因此你可以随意更换桌面系统。Linux有多种不同的桌面系统供你选择。这意味着你可以根据自己的喜好和需求,选择适合自己的桌面环境。 其次,在Ubuntu中,root用户默认是被锁定的,因此你无法直接使用root权限进行操作。但是,你可以使用sudo命令来提升权限,以执行需要root权限的操作。通过sudo命令,普通用户可以在需要时暂时获得root权限,以便进行需要的操作。 此外,如果你需要修改内核为bash,可以使用vim编辑器打开/etc/passwd文件进行修改。在Linux系统中,vim是一种常用的文本编辑器,类似于Windows的记事本。通过编辑/etc/passwd文件,你可以修改用户的登录shell为bash。 总结起来,Linux学习笔记记录了学习Linux操作系统的过程和经验,包括选择适合自己的桌面环境、使用sudo提升权限以及通过vim编辑器修改/etc/passwd文件等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux学习笔记](https://blog.csdn.net/m0_65379736/article/details/125700177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值