当前位置: 首页 > article >正文

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

目录

目录

​​​​​第一章 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.2 Linux发行版

1.3 虚拟机

1.4 安装 VMware 虚拟机和Linux系统

1.5 远程连接 Linux 系统

1.5.1 图形化和命令行

1.5.2 FinalShell

1.5.3 FinalShell远程连接Linux

1.6 windows10 配置 WSL

1.7 虚拟机快照

第二章 linux命令

2.1、Linux目录结构

2.1.1 linux的目录结构

2.2、linux命令基础

2.2.1 命令和命令行

2.2.2 命令的基本格式

2.3、ls命令入门

2.3.1 ls命令

2.3.2 HOME目录和工作目录

2.4、cd-pwd命令

2.4.1 cd命令

2.4.2 pwd命令

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

2.5.1 相对路径和绝对路径

2.5.2 特殊路径符

2.6、mkdir命令

2.7、touch-cat-rm-命令

2.7.1 touch 命令

2.7.2 cat、more命令

2.8、cp-mv-rm-命令

2.8.1 cp 命令

2.8.2 mv 命令

2.8.3 rm 命令

2.8.4 通配符

2.9、which-find命令

2.9.1 which 命令

2.9.2 find 命令

2.10、grep-wc-管道符

2.10.1 grep命令

2.10.2 wc

2.10.3 管道符 |

2.11、echo -tail -重定向符

2.11.1 echo

2.11.2 反引号符 `

2.11.3 重定向符

2.11.4 tail

2.12、vi/vim 编辑器

2.12.1 介绍

2.12.2 语法

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

第三章 linux 用户及权限

3.1、linux的root用户

3.1.1 Linux用户

3.1.2 su 和 exit 命令

3.1.3 sudo 命令

3.1.4 sudo 认证

3.2、用户和用户组

3.2.1 用户及用户组的介绍

3.2.2 用户组的管理

3.2.3 用户的管理

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

3.3、查看权限控制信息

3.3.1 权限:

3.3.2 认识权限信息

3.3.3 权限控制信息

3.4、chmod 命令

3.41 chmod修改

3.4.2 用数字形式chmod修改权限

3.5、chown 命令

第四章 linux 的应用

4.1 linux 的快捷键

4.1.1 强制停止 ctrl + c

4.1.2 退出或登出 ctrl + d

4.1.3 linux查找历史命令 history  

4.1.4 光标移动快捷键

4.1.5 清屏

4.2 linux 软件安装及卸载

4.2.1 yum 命令

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

4.3 systemctl 控制软件启动和关闭

    4.4 软连接     

4.5 linux的日期和时区

4.5.1 date 命令 显示日期

4.5.2 修改linux时区

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

4.6 IP地址和主机名

4.6.1 IP地址

4.6.2 特殊 IP 地址

4.6.3 主机名

4.6.4 域名解析

4.7 配置 linux 固定 IP地址

4.8 配置 linux 固定 IP地址

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

4.8.2 wget 命令下载文件

4.8.3 curl命令发起网络请求

4.9 端口

4.9.1 端口概念

4.9.2 端口的分类

4.9.3 查看端口占用情况

4.10 进程管理

4.10.1 进程概念

4.10.2 进程的查看 ps -ef

4.10.3 关闭进程

4.11 主机状态监控

4.11.1 Top 查看系统资源占用

4.11.2 top命令内容详解

4.11.3 磁盘信息监控

​编辑​4.11.4 网络状态监控

4.12 环境变量

4.12.1 环境变量概念

4.12.2 $ 符号

4.12.3 自行设置环境变量

4.12.4 自定义环境变量-举例

4.13 linux文件的上传和下载

4.13.1 linux的文件上传和下载

4.14 linux的压缩和解压

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

4.14.2 zip 命令压缩和解压


​​​​​第一章 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?

  • VMware软件:是一款具有虚拟化能力的一个软件,可以创建虚拟机
  • 下载路径:https://www.vmware.com/cn/products/workstation-pro.html

2、如何安装VMware?

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

  • 下载链接:https://vault.centos.org/7.6.1810/isos/x86 64/cent05-7-x86 64-DVD-1810.iso

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、chmod 命令

3.41 chmod修改

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

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

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

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

3.4.2 用数字形式chmod修改权限

  • 权限可以通过 3 位数字代表,第一位数字代表用户权限,第二位代表用户组权限,第三位代表其他用户权限。
  • 可以通过二进制来进行记忆;或者通过 r = 4,w = 2 ,r = 1 来记忆
数字描述表示二进制
0无任何权限---000
1仅有 x 权限--x001
2仅有 w 权限-w-010
3有 w 和 x 权限-wx011
4仅有 r 权限r--100
5有 r 和 x 权限r-x101
6有 r 和 w 权限rw-110
7有 r、w、x 权限rwx111
例如:chmod 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


http://www.kler.cn/a/543560.html

相关文章:

  • TDengine 产品由哪些组件构成
  • Java 进阶day14XML Dom4j 工厂模式 Base64
  • CSS 属性选择器详解与实战示例
  • Vim操作笔记
  • 笔记4——列表list
  • 香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。
  • 基于CanMV IDE 开发软件对K210图像识别模块的开发
  • 基于单片机的仓库安防系统(论文+源码)
  • (篇六)基于PyDracula搭建一个深度学习的软件之新版本ultralytics-8.3.28调试
  • 机器学习 - 机器学习模型的评价指标
  • HackerRank C++面试,中等难度题目 - Attribute Parser
  • 【C++高并发服务器WebServer】-18:事件处理模式与线程池
  • 基于Java的分布式系统架构设计与实现
  • Kafka的ISR是什么,HW是什么,怎么保证可靠性,Kafka怎么实现顺序消息?为什么Kafka的broker上的topic越多,效率越慢?
  • 嵌入式WebRTC压缩至670K,目标将so动态库压缩至500K,.a静态库还可以更小
  • 基于SpringBoot+Vue的扶贫助农管理系统
  • ubuntu下ollama/vllm两种方式在本地部署Deepseek-R1
  • 用语言模型探索语音风格空间:无需情感标签的情 感TTS
  • 常用HAL库
  • 【05】RUST常用的集合函数宏类型
  • 通过openresty和lua实现随机壁纸
  • 人工智能代理(AI Agent)的演进与未来:技术突破、应用场景与挑战
  • HbuilderX中如何配置npm和node路径
  • 大数据Orc文件生成与读取
  • 3D模型可视化引擎HOOPS Visualize在桌面端的支持有哪些特点?
  • C 语言 static 变量和函数