Linux操作系统

一,初始linux

1,了解Linux

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时(1991年)出于个人爱好而编写的。

1808fc4d17b048f589e9ff28f8ce47e0.pngda247c16ca124316ba7e5e985c33f887.png

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

linux系统的组成如下:

* Linux系统内核

*系统级应用程序

内核提供系统最核心的功能,如:调度CPU,调度内存,调度文件系统,调度网络通讯,调度IO等。

系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器,任务管理器,图片查看,音乐播放等。

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

d47a7121628448dca701236e7e33d464.png

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

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

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

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

d9afe503f78d4fe8a4839f6f69bbf102.png

Linux内核下载地址:

The Linux Kernel Archives

9cc90a68bede433a867b89b32a76f4e6.png

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

91c2dd5c56bb44bfaee7c91cdd88bf9b.png

2,安装VMware Workstation虚拟软件:

Download VMware Workstation Pro

c3e557f5faf147ce83574138a5355b5a.png

验证网络适配器是否正常配置:

ncpa.cpl

0b91fd513ad8409292f96a401d641927.png

存在:

76b8cf785408419b98f54e244dc3ad17.png

下载CentOS镜像文件:

官网:The CentOS Project

下载链接:

Index of /7.6.1810/isos/x86_64 (centos.org)

932b1985929042e691c16e4fb7613cad.png

3,远程连接Linux系统(FinalShell)

第三方软件,FinalShell,远程连接到Linux操作系统之上。

并通过FinalShell去操作Linux系统。

FinalShell下载地址:

FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.3 - FinalShell官网 (hostbuf.com)

傻瓜式安装。

查询虚拟机的IP地址:

虚拟机要先联网

46ff86390cfc45f8bedf71ec0bd737ba.png

92c0f324fae94ce381928176a1beabaf.png

FinalShell配置远程链接:

b5fa63b6d3cf4158b11cc2d65474636f.png

fea2e995765e46f0af346c3a372eb1eb.png

4,拓展:

window11、10,配置WSL (Ubuntu)环境

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

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

8b8b3bd3bca545dbadf22d13876f1488.png

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

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

*传统方式获取Linux操作系统环境,是安装完整的虚拟机,如VMware

*使用WSL,可以非常轻量化的方式得到Linux系统环境,简单好用省内存

WSL部署:

Windows10:

dd544bb817ab4b92a847ecb448772eda.png

Windows11:

8ca435ee8fbe430eb0cea986bd12bc9c.png

然后重启就好了。

在微软商店下载Ubuntu:

3c3ec1c6ead645509d801410a6cdceec.png

报错了:因为我的是window11

7b464e0e0a544a50860d3e13cea490f7.png

解决方法:

在cmd命令:

wsl --set-default-version 1

71b047fc48a149c7b33b75239b6c58de.png

成功:

9abb34c3eee84360b6b58b970aed27b2.png

安装Windows Termmial软件:

Ubuntu自带的终端窗口不太好用,使用微软推出的Windows Termial软件

fc0feea220314fd2b6e2b09a0a07b12d.png

我的Windows11好像自带了。

打开:并打开Ubuntu命令

f85541e1d19049778ae083eb3a1389b0.png

更改默认打开的配置文件:

a5d43349eabf45f7a45b54fe25aae1a4.png

fd1fd19a8db4410c852634febb32f2e9.png

虚拟机快照:

VMware虚拟机(Workstation和Funsion)支持为虚拟机制作快照。

通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。

关机制造比较快速。

a2a67203fcbc4d2689ea48eeb7a3728a.png

3ce1a2c6db5d4b91ae1f537795172340.png

二,Linux基础命令

1,Linux操作系统的目录结构:

21b75e0cdd744d02b884c8527491a4c1.png

Linux没有盘符的概念,只有一个顶级目录,称之为:根目录 就是 / 所有文件都在它下面。

Linux的目录结构是一个树形结构

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

/ 在Linux系统中表示

* 出现在开头的 / 表示:根目录

* 出现在后面的 / 表示:层次关系

Linux路径的描述方式:

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

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

 2,Linux命令:

命令行:即Linux终端*(terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。

命令:即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈

Linux命令基础格式:

无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:

command [-options] [parameter]

  • command :命令本身
  • -options : [可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
  • parameter:[可选,非必填] 命令的参数,多数用于命令的指向目标等
  • [ ] :表示可选的意思

ls 命令

ls命令的作用是列出目录下的内容:

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

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

e128484c71db4ff29b2e29a423e47040.png

HOME目录:每一个用户在Linux系统的专属目录,默认在:/home/用户名

当前工作目录:Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置工作目录在用户的HOME目录

-a 选项,可以展示出隐藏的内容

        以 . 开头的文件或文件夹默认被隐藏,需要-a才能显示出来

-l 选项,以列表(竖向排列)的形式展示内容,并展示更多细节

-h 选项,需要和-l选项搭配使用,列出文件的大小 ,如 K,M G

命令行的选项是可以组合使用的:如:ls -lah,等同于 ls -a -l -h

cd 命令

切换工作目录(Change Directory)

当Linux终端打开的时候,默认以用户 的HOME目录作为当前的工作目录

通过cd命令,更改工作目录

语法:

cd [Linux路径] 

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

pwd 命令

查看当前工作目录 print work directory

语法: pwd

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

路径

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

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

特殊路径:

  •  表示当前目录,比如 cd ./Desktop表示切换到当前目录下的Desktop目录内,等于 cd Desktop
  • .. 表示上一级目录,比如:cd .. 即可切换到上一级目录, cd ../.. 切换到上二级的目录
  • ~ 表示用户的HOME目录,比如: cd ~ 即可切换到用户的HOME目录 或 cd ~/Desktop,切换到HOME内的Desktop目录

cd  和 cd ~ 相同:是到用户的HOME目录

86d364fb569449afb2a642190b12be80.png

e20ddb92133a49098ba3396fb209ed7b.png

mkdir命令

make directory 通过mkdir命令可以创建新的目录(文件夹)

语法:

mkdir [-p] Linux路径

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

touch命令

可以通过touch命令创建文件

语法:

touch Linux路径

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

cat命令

查看文件内容

语法:

cat Linux路径

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

more命令

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

cat是直接将内容全部显示出来

more支持翻页,如果文件内容过多,可以一页页的展示

语法:

more Linux路径

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

在查看的过程中,通过空格翻页

通过 q 退出查看

cp命令

cp命令可以用于复制文件\文件夹,cp命令来自 :copy

语法:

cp [-r] 参数1 参数2

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

mv命令

mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move

语法:

mv 参数1 参数2

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

rm命令

rm命令可用于删除文件,文件夹

rm命令来自英文单词:remove

语法:

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

同cp命令一样,-r 选项用于删除文件夹

-f 表示force,强制删除(不会弹出提示确认信息)

  • 普遍用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
  • 所以一般普通用户用不到-f选项

参数1,参数2,,,表示要删除的文件或文件夹路径,按照空格隔开

通配符:

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

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

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

root用户删除文件、文件夹会有提示,

-f 选项可以不给出提示,强制删除

可以通过 su  - root ,并输入密码切换到root用户,

通过exit命令,退回普通用户。

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

如下命令,不能在root管理员用户下执行:

rm -rf /

rm -rf /*

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

which命令

查找命令程序文件

我们在前面学习的Linux命令,其实他们的本体就是一个个的二进制可执行程序。

和Windows系统中的.exe文件,是一个意思。

which 命令,查看所使用的一系列命令的程序文件存放在哪里

语法:

which 要查找的命令

只能查找Linux命令,要查找指定的文件用find 命令。

find 命令

查找指定文件。 "" 可有可无

按照文件名字查找文件:

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

支持使用通配符 * 来做模糊查询。

按照文件大小查找文件

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

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

示例:

查找小于10kB的文件:find / -size -10k

查找大于1GB的文件:find / -size +1G
 

grep 命令

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

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

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

b9e33b20652b448dbb4f0fd0667ba587.png

wc命令

wc命令做数量统计

可以通过wc命令统计文件的行数,单词数量等

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

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

不写选项查询出来的是:

行数   单词数量   字节数量  文件名称

b0b46793e8e942a5b8bd2eb132ff05ea.png

| 管道符

学习了grep命令后,我们学习一下管道符

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

8eb897c9e61a4e0da915bf4c09b8de0f.png

如上图:cat test 命令的输出结果(文件内容)作为grep 命令的输入(被过滤文件)

echo 命令

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

语法:   echo 输出的内容

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

例:

在终端上显示:hello world 

d4786ecb5d804dd88deece4807d1267b.png

反引号  `

` 也称为飘号。

想要输出当前的工作路径,但是pwd被作为普通字符输出了:

27dd023e4039470faad16483f0fb3195.png

通过飘号可以解决,飘号包围的内容会被作为命令执行,而非普通字符

fcecd484032e4b05b5fc7d89dd352f85.png

重定向符

重定向符:> 和 >>

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

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

例:

0a0516bca72c4537804403c769ecd428.png

46f1eac4ab6c411883102dbd099b07a2.png

tail 命令

使用 tail 命令,可以查看文件尾部内容,跟踪文件的最新更改。

语法: tail [-f -num] Linux路径

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

vi,vim编辑器

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

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

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

3f62cf80e5c84ec9afec304503b1d8b8.png

命令模式 command mode

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

输入模式 insert mode

  • 也就是所谓的编辑模式,插入模式
  • 此模式下,可以对文件内容进行自由编辑

底线命令模式 Last line mode 

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

使用方式:

vi 文件路径

vim 文件路径

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

步骤:

进入的时候是命令模式

按i 进入输入模式 ,按esc 退回命令模式,按 "i" 进入底线命令模式,输入wq 保存退出。

命令模式的一些快捷键:

  • i 在点前光标位置进入 输入模式
  • a 在当前光标位置之后进入输入模式
  • I 在当前行的开头,进入输入模式
  • A 在当前行的结尾,进入输入模式
  • o 在当前光标下一行进入输入模式
  • O 在当前光标上一行进入输入模式
  • k 向上移动光标
  • j 向下移动光标
  • h 向左移动光标
  • l 向后移动光标
  • 0 移动光标到当前行的开头
  • $ 移动光标到当前行的结尾
  • PgDn 向下翻页
  • PgUp 向上翻页
  • /  进入搜索模式
  • n 向下继续搜索
  • N 向上继续搜索
  • dd 删除光标所在行的内容
  • ndd  n是数字,表示删除当前光标向下n行
  • yy 复制当前行
  • nyy n是数字,复制当前行和下面的n行
  • p 粘贴复制的内容
  • u 撤销修改
  • ctrl + r  反向撤销修改
  • gg 跳到首行
  • G 跳到行尾
  • dG 从当前行开始,向下全部删除
  • dgg 从当前行开始,向上全部删除
  • d$  从当前光标开始,删除到本行的结尾
  • d0  从当前光标开始, 删除到本行的开头

三,Linux权限管控

用户和权限

无论是Windows,macOS,Linux均采用多用户的管理模式进行权限管理

在Linux系统中,拥有最大权限的账户名为:root(超级管理员)

而在前期,我们一直使用的账户是普通的用户

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

普通用户的权限,一般在其HOME目录内是不受限的

一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

su 和 exit 命令

在前面,我们接触过su 命令切换到 root 账户

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

语法:su [-]  [用户名]

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

sudo 命令

在我们得知root 密码的时候,可以通过su 命令切换到root得到最大权限

但我们不建议长期使用root用户,避免带来系统损坏。

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

语法: sudo 其它命令

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

为普通用户配置sudo认证:

切换到root 用户,执行 visudo 命令,会自动通过vi 编辑器打开:/etc/sudoers

在文件的最后添加:

普通用户名 ALL=(ALL)        NOPASSWD: ALL

例如:

be6b8787f33d41a68f5e89089d09410d.png

其中最后的 NOPASSWD:ALL 表示使用sudo命令无需输入密码。

最后通过wq 保存。

用户和用户组

Linux系统中可以:

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

b48857e79bc24ddea29f4576e972d543.png

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

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

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

以下命令需root用户执行

创建用户组

groupadd 用户组名

删除用户组

groupdel 用户组名

以下命令需root用户执行:

创建用户

useradd [-g -d] 用户名

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

02695ca0b0dc455b931f56b9f0872f72.png

删除用户

userdel [-r] 用户名

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

查看用户所属组

id[用户名]

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

修改用户所属组

usermod -aG 用户组 用户名

将指定用户加入指定用户组

查看系统中的用户

语法:getent passwd

共有7份信息,分别是:

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

6fb4b9b8fb0747318ca64b855aaa2629.png

查看系统所有用户组

语法: getent group

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

3bc10c323dba4edca3237dbe670c343f.png

查看权限控制信息

7bde9f7092ca4de1b6299b5b5e086604.png

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

序号1的权限信息:

fbe69ccf0a7348b681425e9f7a576255.png

drwxr-xr-x

d表示文件夹,rwx表示用户的权限,r-x表示用户组的权限,r-x表示其他用户的权限

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

针对文件和文件夹,rwx的含义有细微差别:

r,针对文件可以查看内容,针对文件夹,可以查看文件夹内容

w,针对文件表示可以修改此文件,针对文件夹,表示可以在文件夹内创建,删除,改名等操作

x,针对文件表示可以将文件作为程序执行,针对文件夹表示可以更改工作目录到此文件夹,即cd进入

修改权限信息

我们可以使用chmod命令,修改文件,文件夹的权限信息。

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

chmod命令

语法:chmod [-R] 权限 文件或文件夹

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

示例:

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

将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)

修改文件\夹用户和用户组

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

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

chown命令

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

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

9eb57b2f5858480db038ba4ad4d79e0b.png

四,Linux实用操作

快捷键

  • ctrl+c 强制停止
  • ctrl+d 退出或登出(退出账户登录,退出某些特定程序的专属页面)

历史命令相关:

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

  • ctrl +a ,跳到命令开头
  • ctrl +e,跳到命令结尾
  • ctrl+ 键盘左键,向左跳一个单词
  • ctrl +键盘右键,向右跳一个单词
  • Ctrl+l ,清空终端内容
  • 或通过clear 清空终端内容

软件安装

d06924ec7f10442fb933472cf642fea1.png

Linux命令行内的“应用商店”,yum 命令安装软件:

yum命令

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

语法:

yum [-y] [install | remove | search] 软件名称

  • 选项:-y 自动确认,无需手动确认安装或卸载过程
  • install :安装
  • remove: 卸载
  • search:搜索

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

yum命令需要联网

apt命令

电脑自动配置了sudo权限,因此切换root用户可以执行:sudo su 命令 切换

859c3903303d4d4eaa7c7d4eac002796.png

systemctl命令控制软件启动关闭

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

  • 系统内置服务均可被systemctl控制
  • 第三方软件,如果自动注册了可以被systemctl控制
  • 第三方软件,如果没有自动注册,可以手动注册

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

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

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

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

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

614a8e098fdf42048d06da8752dab78a.png

01c175a4d4ad4ea3ac65a7adb48c52fb.png

软链接

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

类似Windows系统中的《快捷方式》

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

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

例:

f662f7bab5e64cb98ebee264497038f7.png

8857219d79fb4489b1776f1a8d064235.png

日期和时区

使用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命令本体,无选项,直接查看时间:

cad396a5d9574eaeaa113aff679557fa.png

按照格式查看:

d627cfe553e5492cb43cb0519a86f62f.png

de0096f6ccc74433a9ea14dbb4e2edd9.png

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

进行日期计算:

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

当天日期:

1a50729ed25141aeac7e8d609e97cefb.png

显示后一天日期:

ae14895b0d0d46cf9c58a35301e4e2ae.png前一天日期:

94b5649b374746eaba51817f8bf55421.png

其中支持的时间标记为:

  • year 年
  • month 月
  • day 天
  • hour 小时
  • minute 分钟
  • second 秒

修改Linux时区:

系统默认的时区中国的东八区。因此date查看的时间不准确。

修改时区:

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

rm -f /etc/localtime

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

2c5c11e2bdb64ec9ac332b09cd062808.png

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

ntp程序

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

安装ntp: yum -y install ntp

启动并设置开机自启:

5970e4c56d6f4ad598b3806389d41eca.png

手动校准时间(需要root权限):ntpdate -u ntp.aliyun.com

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

96c9842d9bb14914bd55cfef5a043a0d.png

IP地址和主机名

IP地址

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

ip地址主要有两个版本,V4版本和V6版本

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

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

477f90e81170423a93c994776bcd2485.png

两个特殊的ip地址:

  • 127.0.0.1,表示本机

  • 0.0.0.0

    • 可以表示本机

    • 也可以表示任意IP(看使用场景)

主机名

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

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

功能:Linux系统的名称

查看:hostname

设置:hostnamectl set-hostname 主机名

修改主机名需要root权限。

673106b535eb42f08df2ca53ac4cf2e6.png

重新登陆,主机名就改变了:

7cb7ac7610b94a55963a2f188e944812.png

域名解析

实际上我们通过字符化的地址去访问服务器,很少指定ip地址

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

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

不是通过IP地址才能访问服务器吗?为什么域名这种字符也可以呢?其实是域名解析帮助我们解决的。

2947ea68e24b4571bb0fe99e0008d6f9.png

即:

1,先查看本机的记录(私人地址本)

  • Windows看:C:\Windows\System32\drivers\etc\hosts
  • Linux看:  /etc/hosts

2 ,再联网去DNS服务器(如114.114.114.114, 8.8.8.8等)询问。

因此我们可以给Linux系统的IP地址配置域名映射,打开C:\Windows\System32\drivers\etc\hosts,编辑:

9b8a39724d55405a893a11c8d64a1310.png

FinalShell就可以通过centos主机名来连接Linux系统了:

451c5d473b0047738f33ab0825966c58.png

配置Linux固定ip

34095ae296e44250b245c9322e159829.png

1,打开虚拟网络编辑器:配置IP地址网关和网段(IP地址的范围)

143ccaeb66b64e138ef6e0c60e90267d.png

c58bb7fe01f548a99982baf2327d447a.png

a4294984e9b441b3b1b7f8a9ede489a8.png

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

使用命令: vim /etc/sysconfig/network-scripts/ifcfg-ens33

填入如下内容:

IPADDR="192.168.88.130"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"
85fe603a75464df5b4b84e10117a5749.png

重启服务systemctl restart network

:虚拟的的网络适配器要需要改为NAT模式:

619089104d0841b4a1d0afa259bd8dfe.png

现在虚拟机的IP就变成自己设置的 192.168.88.130 了。它是个固定的IP了。

网络请求和下载

ping 命令

可以通过ping 命令,检查指定的网络服务器是否是可连通的状态

语法: ping [-c num] ip或主机名

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

例:

ec346912d77840c09b3b82cc6ad3f23a.png

1f2b059ed5b54a158e00953eaabf676f.png

0e356766792f42379e601377b3984d7a.png

wget命令

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

语法:wget [-b] url

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

例:

下载apache-hadoop 3.30版本:

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

fc0893e96eb24b4c8405c56689dad46e.png

在后台下载:

b84d9d24a7874382ae85e893b6afd6cc.png

通过tail命令可以监控后台下载进度: tail -f wget-log

e09e5d3acd5840e68844c7551065d629.png

注意:无论是否下载完成,都会生成要下载的文件,如果未下载完成,请删除未完成的不可用文件。493cfedbbf814596b1f09de5b4d87030.png

curl 命令

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

语法 : curl [-O] url

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

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

8144a99b7edd4cd4b4e79c605fe8a229.png

向python.itheima.com发起网络请求:

3bd7486ff83c4b138eac51e49e4d2936.png

通过curl下载apache-hadoop 3.30安装包:

07144e2866384d7f8b6d321c3c61aa0c.png

端口:

740abe7ad16c432d8426d522a34ef659.png

45411f4125dd49a79e787cf6566dbde2.png

9b3e62b54f714e978dd0493645585eae.png

869181b7b443452984fad0d78d68b3ca.png

06a2567123b3421aa27dbd080a71a08a.png

8e6955da5dea4847b8bd6219df8e1f90.png

nmap命令

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

使用nmap命令(用此命令先安装:yum -y install nmap)

语法:nmap 被查看的ip地址

例:

310ecf99f3aa49f888f26a89da3feb03.png

可以看到本机(127.0.0.1)上有4个端口被程序占用了

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

netstat命令

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

没有这个程序可以安装:yum -y install net-tools

语法:

查看全部端口:netstat -anp

过滤需要查看的端口号:netstat -anp | grep 端口号

例:

查看36000端口:

030f7cccfe8a48648c267a07f3eac9e3.png

可以看到此端口被2115进程占用了。

查看12345端口:

f0f688c73dba4788bf5a64f51f4d1c91.png

可以看到12345端口没有被占用。

进程管理

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

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

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

ps命令

功能:查看进程信息

语法: ps [-e -f]

  • -e,显示出全部的进程
  • -f , 以完全格式化的形式展示信息(展示全部信息)

一般来说,固定用法就是:ps -ef 列出全部进程的全部信息

例:

59baa140859f446191204ac61bceac70.png

370c8b01579b4638bcefb87a4b6824af.png

查看指定进程:

搭配grep做过滤:ps -ef | grep 指定信息

例:

9e4c76d7ad9e4055a118954294082c16.png

过滤不仅仅过滤名称,进程号,用户ID等,都可以被grep过滤

如:ps -ef | grep 30001,过滤带有00:00:11关键字的进程信息:

6433acee4fd44e7ab5784253157e97ef.png

关闭进程:

在Windows系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。

同样,在Linux中,可以通过kill命令关闭进程。

语法:kill [-9] 进程id 

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

主机状态监控

可以通过top命令查看cpu ,内存使用情况,类似Windows的任务管理器

默认每5秒刷新一次,语法:直接使用top即可,按q 或ctrl + c退出

top命令结果详解:

65a1930776044c34bb570bd88c087507.png

fd698a89b22c4dc4bf44b8dc57411c74.png

cf367fab865b49fc86ef5d1b5150ee3a.png

7aa453e60fe741839104c64a94888dcd.png

top 的选项:

74d2432ca1e34c83956ed2c5263a1599.png

top的交互式选项

ba53fac9f7ac472e9ee8fbd01ebc8b64.png

df命令

查看磁盘占用

语法: df [-h]

  • -h:以更人性化的单位显示

2144c3bc39574682aa8494d56aa97754.png

iostat命令

查看CPU、磁盘的相关信息

语法:iostat [-x] [num1] [num2]

  • -x :显示更多信息
  • num1 :数字,刷新间隔(秒),num2:数字,刷新几次

790ffb14b20446fb95f06db4a910b887.png

tps:该设备每秒的传输次数,“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。

使用iostat -x显示更多信息:

8b68c5ca20d9467a8f2bd420f4d5f5fc.png

rrqm/s:  每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS 将请求发到各个FS,如果FS发现不同的读取请求读取的是相同的Block的数据,FS会将这个请求合并Merge,提高IO利用率,避免重复调用);

a741a1a0ebb84f32a2f9d48cdf522766.png

sar 命令

网络状态监控(sar命令非常复杂,这里仅简单用于统计网络)

语法:sar -n DEV num1 num2

  • -n ,查看网络,DEV表示查看网络接口
  • num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

60c33b425ad04839bdb7b7849bf5845c.png

2838f5f948184da49344f8a85214eb60.png

环境变量

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

env 命令

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

环境变量是一种KeyValue型结构,即名称和值。

$符号

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

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

取得环境变量的语法: $环境变量

比如: echo $PATH

a40fbbd7791441049520903dbb154c87.png

或者:echo ${PATH}ABC

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

098616263bb84aacbe6a8baa25ae258a.png

自己设置环境变量

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

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

永久生效

  • 针对当前用户生效,配置在当前用户的: ~/.bashrc 文件中
  • 针对所有用户生效,配置在系统的: /etc/profile 文件中

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

记得这里切换用户用 su -  用户名,  - 的作用是加载环境变量

自定义环境变量PATH

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

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

例:

bdc4eddc52a14ca284583540030566ac.png

  • 临时修改PATH

b219e297bfae4b6a81068c13b458347f.png

  • 或将export PATH=$PATH:/root/myenv 填入到用户环境变量文件(~/.bashrc 系统环境变量文件(/etc/profile)中去。

此时 PATH 中的内容:

48a5a8746daf42dfb40f7ac48d8b9093.png

用户环境变量文件(~/.bashrc )中添加内容:

3f079238e03e46bb972d4fe3f381b152.png

e6320387d7c9460a93ef3732a95ae3ce.png

并通过语法:source 配置文件,进行立即生效

这里用的是针对用户生效 配置文件是: ~/.bashrc

2dc98894432049ab9ebe378e3bca2c58.png

现在:

542b9a03fa664b939c33c097b7b8a49a.png

可以在别的目录运行此程序了。

上传和下载

第一种:用命令方式:要先安装程序:yum -y install lrzsz

rz 命令 

进行上传 语法 :rz

自动弹出选择文件。

sz 命令

进行下载,把虚拟机的文件下载到本地。

语法:sz 要下载的文件

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

第二种:通过FinalShell工具:方便的和虚拟机进行数据交换。

下载(把虚拟机的文件下载到本地电脑):

上传(把本地的电脑上传到虚拟机):

压缩和解压

Linux用的压缩格式有:tar ,gzip, 和zip

.tar 称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内并没有太多体积的减少,仅仅是简单的封装。

.gz 也常见为 .tar.gz   , gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的压缩文件体积。

tar命令

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

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

一, tar压缩案例:

记住 tar -cvf ...和 tar -zcvf... 。第一个是压缩为.tar文件,第二个是压缩为.gz格式。

二,  tar解压案例:

常见的tar解压组合有

  • tar -xvf test.tar

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

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

解压test.tar ,将文件解压到指定目录:/home/lcy

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

Gzip模式解压test.tar.gz. 将文件解压到指定目录 :/home/lcy

注意:

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

上面是使用tar命令压缩解压tar或gzip文件zip文件呢??

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 a.txt b.txt

  • test文件夹和两个文件a.txt b.txt,压缩到test.zip文件内。

unzip命令

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

语法:unzip [-d] 参数

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

未完待续。。

五,实战软件部署

p45集

六,脚本&自动化

七,项目实战

八,云平台技术

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Winter.169

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值