0


Linux零基础快速入门(非常详细),全覆盖Linux的基础知识,看完这一篇就够了。


​​​​​第一章 Linux基础

1.1 计算机和操作系统概念

1.1.1 计算机

1、计算机由什么组成?

  • 计算机组成:由硬件和软件组成

2、软件和硬件分别是什么?

  • 硬件:电子、机械等物理装置
  • 软件:用户与计算机硬件的接口和桥梁,用户通过软件与计算机进行交流

1.1.2 操作系统

1、操作系统是什么?

  • 操作系统是计算机软件的一种,主要负责调度和管理计算机硬件进行工作

2、操作系统主要作用?

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

以下是一个简单的操作系统运行消息的传输:

1.1.3 常见的操作系统

PC端和移动端常见的操作系统有哪些?

  • PC端:Windows、Linux、MacOS
  • 移动端:Android、IOS、鸿蒙系统

1.2 Linux简介

1.2.1 Linux

1、Linux是什么?

  • Linux是一种免费使用和自由传播的操作系统

2、Linux由什么组成?

  1. Linux系统内核:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等
  2. 系统级应用程序:文件管理器、任务管理器、图片查看、音乐播放等

以下是Linux系统调用硬件的示意图:

1.2.2 Linux内核

Linux内核什么?

  • 内核是Linux:是操作系统最核心的存在,内核是免费开源的,都可以进行下载并修改
  • Linux内核下载链接:https://www.kernel.org

1.2.2 Linux发行版

Linux发行版是什么?

  • Linux内核无法被用户直接使用,需要配合应用程序才能被用户使用;所以在内核之上,封装系统级应用程序,组合在一起就称之为Linux发行版。
  • 所以如果我们自己写了系统应用,并封装起来,也可以是自己的发行版。

下图是市面上的Linux发行版:

1.3 虚拟机

1、虚拟机是什么?

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

2、为什么需要虚拟机?

  • 因为我们自己的电脑是 Windows系统,如果卸载了Windows系统装linux系统;操作起来就会很不方便,因为linux系统的图形化界面不好用,所以我们使用虚拟机安装Linux系统,就解决了问题。

1.4 安装 VMware 虚拟机和Linux系统

1、什么是VMware?

2、如何安装VMware?

  • 按照上述链接下载,直接双击按要求完成安装
  • 检查是否安装成功:(可以通过win+r 组合键输入:ncpa.cpl 打开该页面)

1.5 远程连接 Linux 系统

1.5.1 图形化和命令行

什么是图形化和命令行?

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

1.5.2 FinalShell

1、为什么使用命令行?

  1. Linux操作系统的图形化页面不好用、不稳定
  2. 在开发过程中,命令行的形式效率更高,更直观,并且资源占用低,程序运行更稳定。

2、FinalShell是什么?

  • FinalShell是一款安装在windows下的软件,该软件可以直接远程连接Linux操作系统;只要远程将Linux系统挂起,就可以通过FinalShell远程连接到系统。

3、为什么要使用FinalShell?

  1. VMware对于内容复制、粘贴不方便;FinalShell更方便
  2. VMware对于文件上传、下载不方便;FinalShell更便捷的传输文件

4、FinalShell安装

  1. 下载路径:FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.5.10,更新日期2024.9.26 - FinalShell官网
  2. 下载之后双击安装

1.5.3 FinalShell远程连接Linux

FinalShell远程连接Linux步骤:

  1. 在Linux系统中找到IP地址,在Linux终端输入:ifconfig,可以找到 IP
  2. 然后在FinalShell软件中配置地址,就可以连接到Linux系统

1.6 windows10 配置 WSL

1.7 虚拟机快照


第二章 linux命令

2.1、Linux目录结构

2.1.1 linux的目录结构

Linux的目录结构是怎么的?

  • Windows的目录含有C盘、D盘、E盘等等,但Linux 的目录结构是一个树形结构
  • linux没有盘符的概念,只有一个根目录 / ,所有文件都在他下面
  • linux的路径之间的层次关系,使用: / 来表示

下图是Linux目录结:

2.2、linux命令基础

2.2.1 命令和命令行

什么是命令和命令行?

  • 命令行:即Linux终端(Terminal),是一种命令提示符页面,以纯 字符 的形式操作方式,可以使用各种字符化命令对系统发出操作指令。
  • 命令:即Linux程序,一个命令就是一个Linux的程序,命令没有图形化页面,可以在命令行提供字符化的反馈。

2.2.2 命令的基本格式

命令的通用格式:
     command [-options] [parameter]

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

注意:[] 代表参数、选项可填可不填
举例:

1、创建一个 Test 文件夹:
命令:mkdir Test   
解析:mkdir 是命令本身,Test是参数

2、以列表的形式,显示/home路径下的目录内容
命令:ls -l /home
解析:ls 是命令本身,-l是选项,/home是参数

2.3、ls命令入门

2.3.1 ls命令

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

语法:ls [-a -l -h] [Linux路径]

选项:-a,表示 all 的意思,即列出全部文件(包含隐藏的文件/文件夹)
选项:-l,以列表(竖向排列)的形式展示内容,并展示更多信息
选项:-h,以易阅读的形式,列出文件大小,如 K、M、G
参数:需要查看linux路径下的内容,当没有参数时,列出当前工作目录下的内容
参数使用:

ls -l -a -h
ls -lah
ls -alh

上面这三种参数表示形式,都是同时有a、l、h的效果,

2.3.2 HOME目录和工作目录

HOME目录是什么?

  • 每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名
  • 例如你在Linux创建了 xiong 的用户,则会存在一个:/home/xiong 的HOME目录

当前工作目录是什么?

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

2.4、cd-pwd命令

2.4.1 cd命令

cd命令:更改当前所在工作目录

语法:cd [linux路径]

linux路径:需要切换到的目录路径
cd命令没有参数的话,就会回到用户的 HOME 路径

2.4.2 pwd命令

pwd命令:查看当前工作目录

语法:pwd

pwd 命令无选项、无参数,直接输入pwd

2.5、相对路径绝对路径、特殊路径

2.5.1 相对路径和绝对路径

什么是相对路径?

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

什么是绝对路径?

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

2.5.2 特殊路径符

Linux有哪几种特殊路径?

  1. . 表示当前目录,比如:cd ./Desktop 表示切换到当前目录下的 Desktop目录内
  2. .. 表示上一级目录,比如:cd.. 表示切换到上一级目录,cd ../.. 表示切换到上二级目录
  3. ~ 表示HOME目录,比如:cd ~ 即可切换到 HOME 目录,cd ~/Desktop 切换到HOME目录下的 Desktop 目录

2.6、mkdir命令

mkdir命令:创建新的目录

语法:mkdir [-p] Linux路径

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

2.7、touch-cat-rm-命令

2.7.1 touch 命令

touch命令:可以通过touch命令创建文件

语法:touch Linux路径

Linux路径可以是绝对路径、相对路径、特殊路径
touch命令无选项,参数必填,表示要创建的文件路径
举例:  在当前目录下创建 test.txt 文件

touch test.txt

2.7.2 cat、more命令

cat命令:查看文件内容

语法:cat Linux路径

cat没有选项,只有必填的参数,参数表示被查看的文件路径
more 命令:查看文件内容,more支持翻页,文件内容过多,就会一页一页的展示

语法:more Linux路径

more命令没有选项,只有必填的参数,参数表示被查看的文件路径
查看过程中可以通过 空格 翻页,通过 q 退出查看

2.8、cp-mv-rm-命令

2.8.1 cp 命令

cp 命令:可用于复制文件、文件夹

语法:cp [-r] 参数1 参数2

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

2.8.2 mv 命令

mv 命令:移动文件、文件夹

语法:mv 参数1 参数2

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

如 mv t1.txt t2.txt    可以视作为改名字,将文件名改成 t2.txt

2.8.3 rm 命令

rm 命令:删除文件、文件夹

语法:rm [-r -f] 参数1 参数2 .... 参数n

选项:-r,表示删除文件夹
选项:-f,表示froce,强制删除(不会弹出提示确认信息)
参数:参数1...参数n,表示要删除的文件或文件夹,按空格隔开

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

2.8.4 通配符

1、通配符是什么?

  • ‌通配符是一种特殊字符,可以代表一个或多个字符。

2、通配符的作用?

  • 通配符一般用来进行模糊匹配,这样方便查找信息等

3、通配符 * 是什么?

  • 通配符 * 代表零个或多个任意字符。
  • rm可配合 通配符进行删除
例如:

rm -r test*  表示删除以 test 开头的文件和文件夹
rm -r *test  表示删除以 test 结尾的文件和文件夹
rm -r *test* 表示删除含有 test 的文件和文件夹

2.9、which-find命令

2.9.1 which 命令

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

语法:which 要查找的命令

2.9.2 find 命令

find命令可以按文件名查找,也可以按文件大小查找。

1、按文件名查找:

find 命令:按文件名查找文件

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

例子:find /home -name "test"
      在 /home 路径下找到 test 文件
find 命令+通配符

find /home -name "*test"   在/home目录下查找以 test 结尾的文件
find /home -name "test*"   在/home目录下查找以 test 开头的文件
find /home -name "*test*"  在/home目录下查找含有 test 的文件

** 2、按文件大小查找:**

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

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

+-:表示大于小于
n:表示大小数字
KMG:表示大小单位,k表示kb,M表示MB,G表示GB
例子:

查找小于20KB的文件:find / -size -20k
查找大于200MB的文件:find / -size +200M
查找大于20G的文件:find / -size +20G

2.10、grep-wc-管道符

2.10.1 grep命令

grep命令:从文件中通过关键字过滤文件行

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

选项: -n,可选,表示在结果中显示匹配得行的行号
参数:关键字,必填,表示过滤的关键字,建议使用 ""将关键字包围起来
参数:文件路径,必填,表示要过滤内容的文件路径,可以作为管道符的输入

2.10.2 wc

wc命令:命令统计文件的行数、单词数、字节数、字符数等

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

选项:-c,统计字节数
选项:-m,统计字符数
选项:-l,统计行数
选项:-w,统计单词数
参数:文件路径,被统计的文件路径,可作为管道符的输入
若不带选项默认统计:行数、单词数、字节数

2.10.3 管道符 |

  • 管道符 | 左边的命令的结果,作为右边命令的输入
  • 管道符 | 一般配合 grep 使用,左边的输入,右边进行筛选
例子:
   1、左边输出test.txt,右边 grep在test.txt文件中查找“test_word”
   cat test.txt | grep "test_word"     

   2、在 ls -l 输出的内容中找到 test 
   ls -l | grep "test" 

2.11、echo -tail -重定向符

2.11.1 echo

echo 命令:输出内容

语法:echo 输出的内容

无需选项,只有一个参数,表示要输出的内容

2.11.2 反引号符 `

  • 被 ` 包围的内容,会被作为命令执行,而非普通字符
  • 例如:echo pwd 就会执行 pwd 命令

2.11.3 重定向符

  •     将左侧命令的结果,覆盖写入到符号右侧指定的文件中
    
  •   将左侧命令的结果,追加写入到符号右侧指定的文件中
    
例如:
    1、将 "test A B C" 内容追加到 test.txt 文件中
       echo "test A B C" >> test.txt
    
    2、将 "test A B C" 内容覆盖到 test.txt 文件中
       echo "test A B C" > test.txt

2.11.4 tail

tail命令:查看文件尾部内容,并持续跟踪,适用于查看日志

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

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

2.12、vi/vim 编辑器

2.12.1 介绍

vi/vim 是什么?

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

2.12.2 语法

语法:

vi 文件路径   
vim 文件路径

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

  • 命令模式:

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

             输入模式即为编辑模式,在该模式下可以对文件内容进行自由编辑
    
  • 底线命令模式: 以 : 开始,通常用于文件的保存、退出。

三种模式的切换:

*命令模式的快捷键: **
模式
命令*描述命令模式i在当前光标位置进入 输入模式命令模式a在当前光标位置 之后 进入输入模式命令模式I在当前行的开头,进入输入模式命令模式A在当前行的结尾,进入输入模式命令模式o在当前光标下一行进入输入模式命令模式O在当前光标上一行进入输入模式
输入模式
esc
任何情况下输入 esc 都能回到命令模式
命令模式上键、键盘 k向上移动光标命令模式下键、键盘 j向下移动光标
命令模式
左键、键盘h向左移动光标命令模式右键、键盘 l向右移动光标命令模式0移动光标到当前行的开头命令模式$移动光标到当前行的结尾命令模式pageup(PGUP)
向上翻页
命令模式pageudown(PGDN)向下翻页命令模式/进入搜索模式命令模式n向下继续搜索命令模式N向上继续搜索命令模式dd删除光标所在的行内容命令模式nddn是数字,表示删除当前光标向下的n行命令模式yy复制当前行命令模式nyyn是数字,复制当前行和下面的n行命令模式p粘贴复制的内容命令模式u撤销修改命令模式ctrl + r反向撤销修改命令模式gg跳到首行命令模式G跳到末尾命令模式dG从当前行开始,向下全部删除命令模式dgg从当前行开始,向上全部删除命令模式d$从当前光标开始,删除到本行的结尾命令模式d0从当前光标开始,删除到本行的开头底线命令模式:wq保存并退出底线命令模式:q仅退出底线命令模式:q!强制退出底线命令模式:w仅保存底线命令模式:set nu显示行号底线命令模式:set paste
设置粘贴模式

从外部复制进来,格式不会变


第三章 linux 用户及权限

3.1、linux的root用户

3.1.1 Linux用户

linux用户:

  • linux系统采用多用户的管理模式,通过权限进行Linux用户管理

root用户:

  • linux中,拥有最大权限的账户名是:root(超级管理员)
  • root 用户拥有最大的系统操作权限,普通用户的权限比较小

普通用户:

  • 普通用户的权限一般比 Root用户小
  • 每个用户都有自己的HOME目录(可以理解为属于自己的一个文件夹),普通用户在自己的HOME目录是不受限制的。
  • 但是一旦出了 HOME 目录,大多数普通用户仅有只读和执行权限,无修改权限。

3.1.2 su 和 exit 命令

su命令:

  • su 命令可以完成两个用户之间的切换
语法:su [-] [用户名]

- 符号是可选的,表示是否在切换用户后加载环境变量,建议带上
参数:用户名,表示要切换的用户,用户名如果省略的话,就默认切换到 root

exit命令:

  • 切换用户后,可以通过 exit 命令退回上一个用户,也可以使用 ctrl + d
  • 普通用户 -> root 用户 需要密码;root 用户 -> 普通用户 不需要密码

3.1.3 sudo 命令

sudo命令:

  • 由于root权限过大,避免误操作,所以很多时候都不直接登录root用户进行操作
  • 可以使用 sudo 命令,为普通命令授权,临时以 root 身份执行
语法: sudo 其他命令

但执行 sudo 命令的前提是需要普通用户配置 sudo 认证 

3.1.4 sudo 认证

sudo认证步骤:

  1. 切换 root 用户,执行 visudo 命令,会自动通过 vi 编辑器打开 : /etc/sudoers
  2. 在文件的最后添加:(最后通过 wq 保存)
  3. 普通用户用户名 ALL=(ALL) NOPASSWD: ALL

3.2、用户和用户组

3.2.1 用户及用户组的介绍

Linux用户和用户组:

  • Linux系统可以创建多个用户
  • Linux系统可以创建多个用户组
  • 用户可以加入多个用户组中

3.2.2 用户组的管理

以下命令需 root 用户执行

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

3.2.3 用户的管理

以下命令需 root 用户执行

useradd命令:创建用户

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

举例: 创建一个 username 用户,并加入 usergroup 组,其HOME路径为:/home/file
       useradd username -g usergroup -d /home/file               
userdel 命令:删除用户

语法:userdel [-r] 用户名

选项:-r,删除用户的 HOME 目录,不使用 -r ,删除用户,HOME目录保留
参数:用户名,需要删除的用户
id 命令:查看用户所属组

语法:id [用户名]

参数:用户名,被查看的用户名,如果不写,就查看本身用户
usermod 命令:修改用户所属组

语法:usermod -aG 用户组 用户名

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

3.2.4 getent 查看系统中哪些用户和用户组

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

查看用户组语法:getent group

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

3.3、查看权限控制信息

3.3.1 权限:

如何对文件权限进行管理?

  • Linux可以通过对文件进行赋权,可以对用户赋权,可以针对用户组赋权
  • 使用赋权的形式管控各用户

3.3.2 认识权限信息

命令:ls -l

上图中:

  1. 图中 1 表示文件、文件夹的权限控制信息
  2. 图中 2 表示文件、文件夹所属用户
  3. 图中 3 表示文件、文件夹所属用户组

3.3.3 权限控制信息

解读上图中 1 的权限信息:

  • r:读权限 可以查看文件和文件夹,如使用 ls、cat、more等查看的命令
  • w:写权限 可以修改文件,并且对文件夹可以进行创建、删除、改名、增加等命令
  • x:执行权限 可以将文件作为执行程序来执行,对文件夹可以cd到文件夹

举例:drwxr-xrw-

  • 第 1 位:d表示是文件夹
  • 第 2~4位:rwx 表示文件夹所属用户拥有 读、写、执行 的权限
  • 第 5~7位:r-x 表示该文件夹所属的用户组拥有对文件夹的 读、执行的权限
  • 第 8~10位:rw- 表示其他用户对该文件夹拥有 读写权限

3.4、chomd 命令

3.41 chomd修改

chomd :修改文件、文件夹的权限信息
只有文件、文件夹的所属用户或root用户可以修改

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

选项 -R:对文件夹内的全部内容应用同样的操作
权限:可以使用 u g o 来表示

例如:chomd u=rwx,g=rx,o=x test.txt
其中:u代表user所属用户权限,g代表group组权限,o代表other其他用户权限

3.4.2 用数字形式chomd修改权限

  • 权限可以通过 3 位数字代表,第一位数字代表用户权限,第二位代表用户组权限,第三位代表其他用户权限。
  • 可以通过二进制来进行记忆;或者通过 r = 4,w = 2 ,r = 1 来记忆
    数字描述表示二进制0无任何权限---0001仅有 x 权限--x0012仅有 w 权限-w-0103有 w 和 x 权限-wx0114仅有 r 权限r--1005有 r 和 x 权限r-x1016有 r 和 w 权限rw-1107有 r、w、x 权限rwx111
例如:chomd 514 test.txt

3.5、chown 命令

  • chown:修改文件、文件夹的所属用户和用户组
  • 普通用户无法修改所属为其他用户或组,所以此命令只适合root用户执行
语法:chown [-R]  [用户] [:] [用户组]  文件或文件夹
    
选项:-R,对文件夹内全部内容应用相同规则
选项:用户,修改所属用户
选项:用户组,修改所属用户组
: 用于分隔用户和用户组
参数:文件或文件夹,需要修改的文件或文件夹
  • 例如:
chown root test.txt              将 test.txt 所属用户修改为 root
chown :root test.txt             将 test.txt 所属用户组修改为 root
chown root:groupname test.txt    将 test.txt 所属用户修改为root,用户组修改为groupname 
chown -R root test               将 test 文件夹及文件夹下所有内容所属用户修改为 root

第四章 linux 的应用

4.1 linux 的快捷键

4.1.1 强制停止 ctrl + c

  • 某些程序一直在运行,无法返回命令输入模式,就可以 ctrl + c 强制停止
  • 命令输入错误,想重新写,可以 ctrl + c 停止换下一行输入

4.1.2 退出或登出 ctrl + d

  • 如果你在linux里登入 mysql、python等等的软件用户,可以通过 ctrl + d 登出

4.1.3 linux查找历史命令 history

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

4.1.4 光标移动快捷键

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

4.1.5 清屏

  • 通过快捷键 ctrl + l 清屏
  • 可以输入 clear 进行清屏

4.2 linux 软件安装及卸载

4.2.1 yum 命令

  • 介绍:yum是RPM包软件管理器,用于自动化安装配置linux软件,并可以自动解决依赖问题
  • yum 命令需要 root 权限,且需要联网
语法:yum [-y] [install | remove | search]  软件名称

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

yum -y install wget     安装 wget 程序

yum remove wget         卸载 wget 程序        

4.2.2 WSL环境下 Ubuntu 运行环境进行软件安装 apt

  • CentOS系统和Ubuntu是使用不同的包管理器
  • CentOS系统使用 yum 管理器,Ubuntu 使用apt管理器
  • CentOS 软件包 .rpm 格式,Ubuntu 软件包 deb 格式
语法:
      apt [-y] [install | remove | search]  软件名称

例子:
      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 :关闭开机自启
  • 系统内置的服务很多,例如:
  1. NetworkManager 主网络服务
  2. network 副网络服务
  3. firewalld 防火墙服务
  4. sshd ssh服务(FinalShell远程登录 Linux 使用这个服务)
例子:
    systemctl status firlwalld    查看防火墙的状态
    systemctl disable firlwalld   取消防火墙的开启自启

4.4 软连接

  • 概念:在系统中创建软连接,可以将文件\文件夹链接到其他位置,相当于windows的快捷方式
  • 用途:当文件或文件夹目录很深的时候,可以创建软连接
语法:ln -s 参数1 参数2

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

例子:
     ln -s /etc/yum.conf ~/yum.conf  
     ln -s /etc/yum ~/yum

利用 ls 查看文件会得到:yum.conf -> /etc/yum.conf

4.5 linux的日期和时区

4.5.1 date 命令 显示日期

  • 介绍:通过date命令可以在命令行中查看系统的时间
语法:
    date [-d] [+格式化字符串]
 
-d :按照给定的字符串显示日期,一般用于日期计算

格式化字符串:通过特定的字符串标记,来控制显示的日期格式

    %Y    年
    %y    年份后两位数字(00,01,....,99)
    %m    月份(01,02,....,12)
    %d    日(01,02.....,31)
    %H    小时(00,01,....,23)
    %M    分钟(00,01,.....,59)
    %S    秒(00,01,.....,60)
    %s    自 1970-01-01 00:00:00 UTC 到现在的秒数
例子:
   命令: date +%Y-%m-%d            输出: 2024-09-28
   命令: date "+Y-%m-%d %H:%M:%S"  输出: 2024-09-28 17:36:53
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         # 显示前年的日期

4.5.2 修改linux时区

  • linux 系统默认时区非中国的东八区,所以需要修改时区
使用 root 权限,执行命令,将时区修改为东八区时区

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

将系统自带的localtime删除,并将上海时间软连接到localtime文件中

4.5.3 ntp 程序 linux自动校准系统时间

  • 可以通过 ntp 程序自动校准系统时间
  • 安装:yum -y install ntp
  • 启动并设置开机自启:
 systemctl start ntpd      # 启动 ntpd 
 systemctl enable ntpd     # 开机自启 ntpd
  • 也可以进行手动校准(需要root权限): ntpdate -u ntp.aliyun.com
  • 通过阿里云提供的服务网址配合 ntpdate 命令自动校准

4.6 IP地址和主机名

4.6.1 IP地址

  • 每个联网的电脑都有一个 IP 地址,用于与其他计算机进行通讯
  • IP地址主要有 2 个版本,V4 和 V6 版本,但是V6 很少用到
  • IPv4 版本的地址格式是: a.b.c.d,其中abcd表示 0~255的数字
  • 可以通过 ifconfig 查看本机的 ip地址
  • 如果无法使用 ifconfig 命令,可以安装:yum -y install net-tools

4.6.2 特殊 IP 地址

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

4.6.3 主机名

  • 每台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称为主机名
  • 主机名查看命令:hostname
  • 修改主机名:hostnamectl set-hostname 主机名

4.6.4 域名解析

  • 域名:比如 www.baidu.com 就是域名,因为IP很难记住,所以就记域名解析
  • 可以通过主机名找到计算机的 IP底子,这叫 主机名映射(域名解析)

上图可以看到,如果访问一个百度网址,步骤:

  1. 先查看本机的记录,windows:C:\Windows\System32\drivers\etc\hosts;linux:/etc/hosts
  2. 如果本机没得,再联网去DNS服务器(如114.114.114.114,8.8.8.8)询问

4.7 配置 linux 固定 IP地址

  • 为什么需要配置固定 IP地址?
  1. 因为虚拟机的Linux操作系统的 IP地址 是通过DHCP服务获取的。
  2. DHCP:动态获取 IP地址,即每次重启设备都会获取一次,可能会导致 IP地址频繁变更
  • 配置固定 IP 两大步骤:
  1. 在虚拟机(VMware Worksattion) 中配置 IP 地址网关和网段(IP地址的范围)
  2. 在linux系统中手动修改配置文件,固定 IP

根据下面图片进行配置:

1、打开 VMware ,编辑 -> 虚拟网络编辑器

2、选中 VMnt8 -> 更改配置

3、配置 IP 地址网关 和 网段

4、在linux系统中,使用vim编辑 etc/sysconfig/network-scripts/ifcfg-ens33 文件:

5、最后执行:systemctl restart network 重启,就可以用ifconfig查看,已经配置好了

4.8 配置 linux 固定 IP地址

4.8.1 使用ping命令检查服务器是否联通

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

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

4.8.2 wget 命令下载文件

  • wget 是非交互式的文件下载器,可以在命令行内下载网络文件
语法:wget [-b] url

选项:-b,可选,后台下载,会将日志写入到当前工作目录的 wget-log 文件
参数:url,下载链接
  • 注意:无论是否下载成功,都已经生成下载文件。

4.8.3 curl命令发起网络请求

  • curl 可以发送http网络请求,可用于:下载文件、获取信息等
语法:curl [-O] url       

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

4.9 端口

4.9.1 端口概念

  • 端口:是设备与外界通讯交流的出入口。端口可以分为物理端口和虚拟端口两类
  1. 物理端口:又可称为接口,是可见的端口,如:USB接口,RJ45网口,HDM端口等
  2. 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
  • 理解虚拟端口:
  1. 可以通过 IP 地址找到计算机
  2. IP只能锁定计算机,无法锁定具体的程序,可以通过端口锁定计算机的具体程序

4.9.2 端口的分类

linux可以支持 65535 个端口,分为 3 类:

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

4.9.3 查看端口占用情况

  1. 安装 nmap :yum -y install nmap 语法:nmap 被查看得IP地址
  2. 使用netstat 命令,查看指定端口得占用情况
安装:yum -y install net-tools
语法:netstat -anp | grep 端口号 

4.10 进程管理

4.10.1 进程概念

进程是什么?

  • 为了管理运行的程序,每一个程序在运行时,被操作系统注册为系统中的一个 进程
  • 并且为每一个进程都分配一个独有的 进程 ID(进程号)

4.10.2 进程的查看 ps -ef

语法:ps [-e -f]

选项:-e,显示出全部进程
选项:-f,已完全格式化的形式展示信息(展示全部信息)

一般固定用法:ps -ef 展示全部进程的全部信息

4.10.3 关闭进程

  • 可以通过 kill 命令关闭进程
语法:kill [-9] 进程ID

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

4.11 主机状态监控

4.11.1 Top 查看系统资源占用

top命令:

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

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

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

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

4.11.2 top命令内容详解

top命令内容详解

第一行:

  • top: 命令名称。14:39:58:当前系统时间,up6min:启动了6分钟,2users:2个用户登录,load:1.5.15分钟负载

第二行:

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

第三行:

  • %Cpu(s): CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:I0等待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:进程的命令或名称或程序文件路径​

4.11.3 磁盘信息监控

  • 使用 df 命令,可以查看硬盘的使用情况
语法:df [-h]

选项:-h,以更人性化的单位显示
  • 可以使用 iostat 查看CPU、磁盘的相关信息
语法:iostat [-x][num1][num2]

选项:-x,显示更多信息
num1:数字,刷新间隔
num2:数字,刷新几次

​4.11.4 网络状态监控

  • 可以使用 sar 命令查看网络相关统计(sar命令十分复杂,这里仅简单用于统计网络)
语法:sar -n DEV num1 num2

选项:-n,查看网络,DEV 表示查看网络接口
num1:数字,刷新间隔(不填写就查看一次)
num2:数字,查看次数,(不填写无线次数)
  • 信息解读:

4.12 环境变量

4.12.1 环境变量概念

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

  • 比如当你在linux执行“cd”命令,系统就会在环境变量的路径中查找要执行的程序的本体。

4.12.2 $ 符号

  • linux中,$ 符号被用于取 “变量” 的值。
  • 环境变量记录的信息,出了给操作系统自己使用外,我们也可以自己使用
  • 取得环境变量的值就可以通过语法: $环境变量名 来取得
  • 例如:echo $PATH 就可以取得环境变量的值,并使用 echo 输出
  • 例如:echo ${PATH}ABC 与其他内容混合时,可以通过{}来标注取的变量是谁

4.12.3 自行设置环境变量

  • linux 环境变量可以用户自行设置,其中分为两种:

举例:临时设置

4.12.4 自定义环境变量-举例

4.13 linux文件的上传和下载

4.13.1 linux的文件上传和下载

  1. 可以通过FinalShell 工具,方便的和虚拟机进行数据交换。
  2. 可以通过命令方式进行上传和下载
  • rz 、sz 命令进行上传和下载,先安装:yum -y install lrzsz (速度比较慢)
  • rz:上传到linux目录下 sz:下载到 windows 目录下

4.14 linux的压缩和解压

压缩格式:

  • zip格式:linux、windows、MacOS常用
  • 7zip:Windows常用
  • rar:Windows常用
  • tar:linux、MacOS常用
  • gzip:Linux、MacOS常用

4.14.1 tar 命令压缩和解压 tar 或 gzip 文件

  • .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压缩常用的组合:

1、将1.txt、2.txt 压缩到test.tar 中
   tar -cvf test.tar 1.txt 2.txt 

2、将1.txt、2.txt 压缩到test.tar.gz 中,使用 gzip 模式
   tar -zcvf test.tar.gz 1.txt 2.txt
tar解压常用组合:

1、解压tset.tar,将文件解压到当前目录
   tar -xvf test.tar

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

3、解压test.tar.gz ,将文件解压至指定目录(home/xiongtest)
   tar -zxvf test.tar.gz -C /home/xiongtest

4.14.2 zip 命令压缩和解压

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

选项:-r,被压缩的包含文件夹时,使用-r选项

举例:

1、将 1.txt 2.txt 文件压缩
   zip test.zip 1.txt 2.txt

2、将 1.txt test 文件和文件夹压缩
   zip -r test.zip 1.txt test
  • 可以使用 unzip 命令解压 zip 压缩包
语法:unzip [-d] 参数

选项:-d,指定要解压的位置
参数:被解压的zip压缩文件

举例:

将 test.zip 压缩包解压到 /home/xiongtest 文件下
unzip test.zip -d /home/xiongtest
标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/qq_41877371/article/details/119569877
版权归原作者 摇光~ 所有, 如有侵权,请联系我们删除。

“Linux零基础快速入门(非常详细),全覆盖Linux的基础知识,看完这一篇就够了。”的评论:

还没有评论