黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作 ...

打印 上一主题 下一主题

主题 818|帖子 818|积分 2454

B站 黑马程序员 的视频 BV1n84y1i7td 黑马程序员新版Linux零基础快速入门到精通,全涵盖linux体系知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等
增强自控力

  • 冥想
  • 慢呼吸
  • 绿色锻炼
  • 充分苏息
  • 淘汰决议次数
  • 优先做重要的事变(早晨)
  • 融入强自控群
  • 控制冲动情绪,心理暗示自己
  • 取消道德允许,牢记目标
  • 自我原谅适度放松

  
Linux零基础快速入门到精通

切换阿里云镜像

  • 检查网络毗连


  • 确保您的体系可以或许毗连到互联网:
  1. ping -c 4 8.8.8.8
复制代码
如果无法成功 ping 通,则阐明网络设置有问题,必要检查网络接口设置。

  • 检查 DNS 设置


  • 确保 /etc/resolv.conf 文件中设置了有效的 DNS 服务器。例如:
  1. cat /etc/resolv.conf
复制代码
如果没有内容,或 DNS 设置无效,可以添加 Google 的公共 DNS:
  1. echo "nameserver 8.8.8.8" >> /etc/resolv.conf
复制代码

  • 切换镜像源


  • 如果网络正常,但仍旧无法访问 mirrorlist.centos.org,可以切换到其他镜像源,如阿里云或清华大学的镜像源。
替换 YUM 源为阿里云

  • 备份当前的 YUM 设置:
  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
复制代码

  • 下载阿里云的 CentOS 7 YUM 设置:
  1. curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
复制代码

  • 清除缓存并重新天生缓存:
  1. yum clean all
  2. yum makecache
复制代码
替换为清华大学的镜像源

  • 替换清华源:
  1. curl -o /etc/yum.repos.d/CentOS-Base.repo https
  2. ://mirrors.tuna.tsinghua.edu.cn/repos/CentOS-7.repo
复制代码

  • 同样清除缓存并重新天生缓存:
  1. yum clean all
  2. yum makecache
复制代码

  • 更新体系


  • 更新体系大概会修复一些潜在的设置问题:
  1. yum -y update
复制代码
大概等10分钟
如果以上步调无法办理问题,请提供更多的网络环境信息(如 ifconfig
或 ip addr
输出),以便进一步排查。
第一章 初始Linux

1 初始Linux

Linux首创人:林纳斯 托瓦兹
Linux体系的组成 :


  • 1 Linux体系内核(Kernel)
  • 定义:Linux内核是Linux体系的核心部门,直接与硬件交互,并为上层应用程序提供基础服务。
  • 功能

    • 硬件管理:如CPU、内存、I/O装备的管理。
    • 历程管理:负责历程的创建、调治和终止。
    • 文件体系管理:支持多种文件体系(如ext4、XFS)。
    • 网络管理:提供网络协议支持(如TCP/IP)。
    • 装备驱动:通过驱动程序管理外部装备。

  • 2 体系级应用程序
  • 定义:体系级应用程序是直接运行在操作体系上的程序,提供体系管理和用户交互功能。
  • 组成

    • Shell(命令行解释器):如Bash、Zsh,用于用户与体系的交互。
    • 实用工具:如文件操作命令(cp、mv、rm),文本处置惩罚工具(grep、awk)。
    • 保卫历程(Daemon):在后台运行的程序,如cron(计划任务)、sshd(远程登录服务)。
    • 包管理工具:如apt(Debian系)、yum(Red Hat系),用于安装和管理软件包。

  • 3 用户级应用程序(User Applications)
  • 定义:用户直接利用的应用程序,包罗桌面环境、欣赏器、媒体播放器等。
  • 特点:基于体系级应用和内核提供的服务运行
什么是虚拟机?
通过虚拟化技能,在电脑内,虚拟出计算机硬件,并给虚拟的硬件安装操作体系,即可得到一台虚拟的电脑,称之为虚拟机。
为什么要利用虚拟机?
学习Linux体系,必要有Linux体系环境。
我们不能给自己电脑重装体系为Linux,以是通过虚拟机的形式,得到可以用的Linux体系环境,供后续学习利用。
2 VMware WorkStation安装

大概通过快捷键:win + r输入ncpa.cpl回车即可打开网络毗连
[img]https
://i-blog.csdnimg.cn/img_convert/10c5256d5f121645c186b31fb7f268b2.png[/img]

下载CentOS镜像
https
://vault.centos.org/7.6.1810/isos/x86_64/
用户名:centos
暗码:1234
3 FinalShell远程Linux操作体系

无论是企业开发亦或是个人开发,利用Linux操作体系,多数都是利用的:命令行
我们利用VMware可以得到Linux虚拟机,但是在VMware中操作Linux的命令行页面不太方便,重要是:
内容的复制、粘贴超过VMware不方便
文件的上传、下载超过VMware不方便
也就是和Linux体系的各类交互,超过VMware不方便
[img]https
://i-blog.csdnimg.cn/img_convert/e5d44f00d4a1e16284b612e1420f0147.png[/img]

[img]https
://i-blog.csdnimg.cn/img_convert/161b67c960f70a8deb6a1ca270383830.png[/img]

4 快照

VMware虚拟机(Workstation和Funsion)支持为虚拟机制作快照。
通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。
快照可以保存虚拟机的状态, 当虚拟机出现问题的时候, 可以通过预先制作的快照恢复到制作时候的状态, 用作备份用。
[img]https
://i-blog.csdnimg.cn/img_convert/16dc23e6a92db4db000a2ecce02191f1.png[/img]

[img]https
://i-blog.csdnimg.cn/img_convert/a32f4ec657d7e6df30fe9fc0b94528bb.png[/img]

第二章 Linux基础命令

1 命令入门(ls
cd mkdir)


Linux的目录结构是一个树型结构
Windows 体系可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面
[img]https
://i-blog.csdnimg.cn/img_convert/ee04546ffeee03e5bfb0ddfcd28e1d2e.png[/img]

在Linux体系中,路径之间的层级关系,利用:/ 来表示 /usr/local/hello.txt
在Windows体系中,路径之间的层级关系,利用: \ 来表示 D:\data\work\hello.txt
Linux命令基础格式
无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
command [-options] [parameter]
command: 命令本身
-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的活动细节
parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
ls
是 Linux 体系中用于列出目录内容的命令,常用于检察当前目录下的文件和子目录。

ls
命令基本语法


  1. ls
  2. [选项] [目录或文件路径]
复制代码

常用选项

  • 列出目录内容
  1. ls
复制代码
  1. - 列出当前目录下的文件和子目录,按默认顺序显示(不显示隐藏文件)。
复制代码

  • 显示具体信息
  1. ls
  2. -l
复制代码
  1. - 以长格式显示,包含权限、所有者、大小、修改时间等信息。
复制代码

  • 显示隐蔽文件
  1. ls
  2. -a
复制代码
  1. - 列出所有文件,包括隐藏文件(以 `.` 开头的文件)。
复制代码

  • 按人类可读方式显示文件大小
  1. ls
  2. -lh
复制代码
  1. - 文件大小以人类可读的格式显示(如 KB、MB)。
复制代码

  • 递归显示子目录内容
  1. ls
  2. -R
复制代码
  1. - 列出当前目录及其所有子目录的内容。
复制代码

  • 显示文件修改时间
  1. ls
  2. -lt
复制代码
  1. - 按修改时间排序(最新的文件在最上面)。
复制代码

  • 只显示目录
  1. ls
  2. -d */
复制代码
  1. - 列出当前目录下的所有子目录。
复制代码

  • 显示文件的inode号
  1. ls
  2. -i
复制代码
  1. - 显示文件的inode编号(文件在文件系统中的唯一标识)。
复制代码

  • 按文件大小排序
  1. ls
  2. -lS
复制代码
  1. - 按文件大小排序(从大到小)。
复制代码

  • 颜色显示
  1. ls
  2. --color=auto
复制代码
  1. - 按不同颜色显示文件类型和权限(通常系统默认启用)。
复制代码

组合利用


  • 列出所有文件,具体信息,人类可读的大小
  1. ls
  2. -alh
复制代码


  • 按时间排序显示隐蔽文件
  1. ls
  2. -lat
复制代码


  • 列出当前目录及所有子目录内容,具体信息
  1. ls
  2. -lR
复制代码

显示效果示例
  1. $ ls
  2. -lh-rw-r--r--  1 user group 1.2K Jan  8  2025 example.txtdrwxr-xr-x  2 user group 4.0K Jan  8  2025 my_directory/
复制代码


  • 第一列:文件权限。
  • 第二列:硬链接数。
  • 第三列:所有者。
  • 第四列:所属组。
  • 第五列:文件大小。
  • 第六列:最后修改日期。
  • 第七列:文件或目录名称。

资助与手册


  • 检察命令的简要资助:
  1. ls
  2. --help
复制代码


  • 检察具体手册:
  1. man ls
复制代码
Linux体系的命令行终端,在启动的时候,默认会加载:
当前登录用户的HOME目录作为当前工作目录,以是ls
命令列出的是HOME目录的内容
HOME目录:每个Linux操作用户在Linux体系的个人账户目录,路径在:/home/用户名
[img]https
://i-blog.csdnimg.cn/img_convert/b557947540087e2d3d25286e27717caf.png[/img]

cd切换工作目录

cd (change directory)命令是 Linux 和类 Unix 体系中用来切换工作目录的命令。它允许用户在不同目录间切换,以便访问或操作文件和目录。

基本语法
  1. cd [目标目录路径]
复制代码


  • 目标目录路径:可以是绝对路径或相对路径。

常用操作

  • 切换到指定目录
  1. cd /
  2. path/to/directory
复制代码
  1. - 例如:`cd /
  2. home/user/documents`,切换到 `/home/user/documents` 目录。
复制代码

  • 切换到上级目录
  1. cd ..
复制代码
  1. - `..` 表示当前目录的上一级目录。
复制代码

  • 切换到当前用户的主目录
  1. cd ~
复制代码
  1. - 或直接使用 `cd` 不带任何参数。
  2. - 主目录通常是 `/home/username`。
复制代码

  • 切换到上次访问的目录
  1. cd -
复制代码
  1. - 切换到之前的工作目录,并显示该目录的路径。
复制代码

  • 利用相对路径切换目录
  1. cd subdirectory
复制代码
  1. - 如果当前目录为 `/home/user`,运行 `cd documents` 则切换到 `/home/user/documents`。
复制代码

  • 切换到根目录
  1. cd /
复制代码
  1. - `/` 是文件系统的根目录。
复制代码

  • 利用环境变量切换

    • 切换到某个特定目录(示例:**$HOME**** 或自定义变量)**:

  1. cd $HOME
复制代码
  1. - **环境变量可以指向常用的目录**,如:
复制代码
  1. export MYDIR=/path/to/mydir
  2. cd $MYDIR
复制代码

常见路径符号
符号阐明.当前目录..上一级目录~当前用户的主目录(如 /home/username
)/文件体系根目录
检察当前目录
利用以下命令pwd
(print work directory)可以检察当前工作目录:
  1. pwd
复制代码

[img]https
://i-blog.csdnimg.cn/img_convert/834be8ac975a037d7e731164db6aebcd.png[/img]

示例操作

  • 切换到 /etc 目录:
  1. cd /
  2. etc
复制代码

  • 从 /etc 切换到其上一级目录 /:
  1. cd ..
复制代码

  • 切换到主目录:
  1. cd ~
复制代码

  • 切换回刚才的目录:
  1. cd -
复制代码

常见错误及办理方法

  • 目录不存在
  1. cd /
  2. nonexistent
复制代码
错误:No such file or directory
办理:确认目标目录路径是否正确。

  • 权限不敷
  1. cd /
  2. root
复制代码
错误:Permission denied
办理:利用具有充足权限的账户(如sudo)。

资助与参考


  • 检察资助:
  1. help cd
复制代码


  • 手册: cd 通常是 Shell 内置命令,因此不在 man 中显示,但可以查阅 Shell 文档或内置资助体系。
相对路径和绝对路径

绝对路径:以根目录为出发点,描述路径的一种写法,路径描述以/开头
相对路径:以当前目录为出发点,描述路径的一种写法,路径描述无需以/开头
[img]https
://i-blog.csdnimg.cn/img_convert/d7280811ef5f688f36952ea546bc458d.png[/img]

创建目录命令(mkdir)

mkdir (makedirectory)是 Linux 体系中用来创建目录的命令。它可以创建一个或多个目录,支持指定权限或递归创建路径。

基本语法
  1. mkdir [选项] 目录名称
复制代码

常用选项

  • 创建单个目录
  1. mkdir directory_name
复制代码
  1. - 示例:`mkdir mydir
  2. `  
复制代码
创建名为 mydir 的目录。

  • 递归创建多级目录
  1. mkdir -p parent_directory/child_directory
复制代码
  1. - 示例:`mkdir -p /home/user/projects/myproject`  
复制代码
如果父目录不存在,-p 选项会主动创建所有必要的父目录。

  • 指定权限创建目录
  1. mkdir -m mode directory_name
复制代码
  1. - 示例:`mkdir -m 755 mydir`  
复制代码
创建目录并设置权限为 755(用户可读写执行,组和其他用户可读执行)。

  • 显示创建的目录路径
  1. mkdir -v directory_name
复制代码
  1. - 示例:`mkdir -v mydir
  2. `  
复制代码
显示雷同输出:mkdir: created directory 'mydir'。

  • 结合多个选项
  1. mkdir -pv /home/user/newproject/subdir
复制代码
  1. - 创建多级目录,并显示创建过程。
复制代码

目录权限阐明


  • 利用 -m 选项指定权限时,可以利用八进制模式(如777)或符号模式(如u=rwx,g=rx,o=rx)。
  • 权限可以通过 chmod 命令修改。

常见示例

  • 创建多个目录
  1. mkdir dir1 dir2 dir3
复制代码
  1. - 同时创建 `dir1`、`dir2` 和 `dir3` 三个目录。
复制代码

  • 递归创建目录
  1. mkdir -p /tmp/test/project
复制代码
  1. - 如果 `/tmp/test` 不存在,会自动创建。
复制代码

  • 创建目录并设置权限
  1. mkdir -m 700 secure_dir
复制代码
  1. - 创建 `secure_dir`,并设置权限为仅用户可读写执行。
复制代码

  • 检察创建过程
  1. mkdir -v mydir
复制代码
  1. - 输出创建过程:`mkdir: created directory 'mydir'`。
复制代码

错误和办理方法

  • 目录已存在
  1. mkdir mydir
复制代码
错误:mkdir: cannot create directory 'mydir': File exists
办理:确认目录是否已经存在,或利用 mkdir -p。

  • 权限不敷
  1. mkdir /root/newdir
复制代码
错误:mkdir: cannot create directory '/root/newdir': Permission denied
办理:利用 sudo 提升权限:
  1. sudo mkdir /root/newdir
复制代码

检察资助和手册


  • 简要资助:
  1. mkdir --help
复制代码


  • 检察手册:
  1. man mkdir
复制代码

总结
mkdir 是一个简朴而强大的工具,用于创建目录。结合 -p 和权限选项,可以顺应大多数目录创建需求,是 Linux 文件体系管理的重要基础命令之一。
2 文件操作命令part1(touch、cat、more)

以下是 Linux 文件操作命令中的三个基本命令:touch、cat 和 more 的具体先容及其用法。

1. touch 命令

touch 命令重要用于创建空文件或更新文件的时间戳。
基本用法

  • 创建空文件
  1. touch filename
复制代码
  1. - 示例:`touch file1`  
复制代码
如果 file1 不存在,会创建一个空文件;如果文件已存在,仅更新其时间戳。

  • 同时创建多个文件
  1. touch file1 file2 file3
复制代码
  1. - 示例:`touch doc1 doc2 doc3`  
复制代码
创建 doc1、doc2 和 doc3。

  • 更新文件时间戳
  1. touch -c filename
复制代码
  1. - 示例:`touch -c file1`  
复制代码
如果文件存在,更新其访问和修改时间;如果文件不存在,不创建新文件。

  • 设置特定时间
  1. touch -t [[CC]YY]MMDDhhmm[.ss] filename
复制代码
  1. - 示例:`touch -t 202501081230 file1`  
复制代码
将 file1 的时间设置为 2025 年 1 月 8 日 12:30。

2. cat 命令

cat 命令用于检察文件内容、合并文件或创建文件。
基本用法

  • 检察文件内容
  1. cat filename
复制代码
  1. - 示例:`cat file1`  
复制代码
显示 file1 的内容。

  • 显示行号
  1. cat -n filename
复制代码
  1. - 示例:`cat -n file1`  
复制代码
为文件内容添加行号并显示。

  • 将多个文件合并为一个文件
  1. cat file1 file2 > merged_file
复制代码
  1. - 示例:`cat part1.txt part2.txt > combined.txt`  
复制代码
将 part1.txt 和 part2.txt 的内容合并到 combined.txt。

  • 创建文件
  1. cat > filename
复制代码
  1. - 示例:`cat > file1`  
复制代码
输入内容后按 Ctrl+D 保存。

  • 追加内容到文件
  1. cat >> filename
复制代码
  1. - 示例:`cat >> file1`  
复制代码
向 file1 中追加内容,输入完成后按 Ctrl+D。

3. more 命令

more 命令用于分页显示文件内容,适合检察较长文件。
基本用法

  • 分页显示文件内容
  1. more filename
复制代码
  1. - 示例:`more largefile.txt`  
复制代码
分页显示 largefile.txt 的内容,每次显示一页。

  • 与管道结合利用
  1. command | more
复制代码
  1. - 示例:`ls
  2. -l | more`  
复制代码
分页显示 ls
-l 的输出。

  • 常用快捷键

    • 空格键:显示下一页。
    • Enter:向下滚动一行。
    • b:返回上一页。
    • q:退出检察。


总结对比

命令功能阐明常见场景touch创建文件或更新文件时间戳创建新文件cat检察文件内容,创建或合并文件检察文件或合并多个文件more分页检察文件内容检察大文件内容,逐页显示
资助与手册


  • touch:man touch 或 touch --help
  • cat:man cat 或 cat --help
  • more:man more 或 more --help
3 文件操作命令part2(cp、mv、rm)

以下是 Linux 文件操作命令中的三个重要命令:cp、mv 和 rm 的具体先容及用法。

1. cp 命令

cp 命令用于复制文件或目录。
基本用法

  • 复制文件
  1. cp source_file destination
复制代码
  1. - 示例:`cp file1.txt /home/user/`  
复制代码
将 file1.txt 复制到 /home/user/ 目录。

  • 复制多个文件到指定目录
  1. cp file1.txt file2.txt /home/user/
复制代码
  1. - 示例:将 `file1.txt` 和 `file2.txt` 复制到 `/home/user/`。
复制代码

  • 递归复制目录
  1. cp -r source_directory destination
复制代码
  1. - 示例:`cp -r mydir /home/user/`  
复制代码
将目录 mydir 及其内容复制到 /home/user/。

  • 提示覆盖文件
  1. cp -i source_file destination
复制代码
  1. - 示例:`cp -i file1.txt /home/user/`  
复制代码
如果目标文件已存在,会提示用户是否覆盖。

  • 保留文件属性
  1. cp -p source_file destination
复制代码
  1. - 示例:`cp -p file1.txt /home/user/`  
复制代码
复制文件时保留原始权限、时间戳和所有者。

  • 显示复制进度
  1. cp -v source_file destination
复制代码
  1. - 示例:`cp -v file1.txt /home/user/`  
复制代码
显示文件复制过程。

2. mv 命令

mv 命令用于移动或重命名文件和目录。
基本用法

  • 移动文件到指定目录
  1. mv source_file destination
复制代码
  1. - 示例:`mv file1.txt /home/user/`  
复制代码
将 file1.txt 移动到 /home/user/。

  • 移动多个文件到指定目录
  1. mv file1.txt file2.txt /home/user/
复制代码
  1. - 示例:将 `file1.txt` 和 `file2.txt` 移动到 `/home/user/`。
复制代码

  • 重命名文件或目录
  1. mv old_name new_name
复制代码
  1. - 示例:`mv file1.txt file2.txt`  
复制代码
将 file1.txt 重命名为 file2.txt。

  • 提示覆盖文件
  1. mv -i source_file destination
复制代码
  1. - 示例:`mv -i file1.txt /home/user/`  
复制代码
如果目标文件已存在,会提示用户是否覆盖。

  • 欺压覆盖文件
  1. mv -f source_file destination
复制代码
  1. - 示例:`mv -f file1.txt /home/user/`  
复制代码
欺压覆盖目标文件。

  • 显示移动过程
  1. mv -v source_file destination
复制代码
  1. - 示例:`mv -v file1.txt /home/user/`  
复制代码
显示文件移动的具体信息。

3. rm 命令

rm 命令用于删除文件或目录。
基本用法

  • 删除文件
  1. rm filename
复制代码
  1. - 示例:`rm file1.txt`  
复制代码
删除 file1.txt。

  • 删除多个文件
  1. rm file1.txt file2.txt
复制代码
  1. - 示例:删除 `file1.txt` 和 `file2.txt`。
复制代码

  • 递归删除目录
  1. rm -r directory_name
复制代码
  1. - 示例:`rm -r mydir`  
复制代码
删除目录 mydir 及其内容。

  • 欺压删除文件
  1. rm -f filename
复制代码
  1. - 示例:`rm -f file1.txt`  
复制代码
欺压删除文件,忽略不存在的文件和提示。

  • 递归欺压删除目录
  1. rm -rf directory_name
复制代码
  1. - 示例:`rm -rf mydir`  
复制代码
欺压删除目录 mydir 及其内容。

  • 提示删除确认
  1. rm -i filename
复制代码
  1. - 示例:`rm -i file1.txt`  
复制代码
删除前逐一提示用户确认。

命令对比总结

命令功能阐明常见场景cp复制文件或目录文件备份、复制目录内容mv移动或重命名文件或目录文件重命名、移动文件到指定目录rm删除文件或目录删除无用文件或清理目录内容
注意事项

  • **rm**** 删除操作不可逆**:删除后无法恢复,利用时需鉴戒,尤其是 rm -rf。
  • 检查路径:在利用 cp 或 mv 时,确认目标路径正确,制止误操作。
  • 权限问题:如果操作失败,大概必要利用 sudo 提升权限。

资助与手册


  • cp:man cp 或 cp --help
  • mv:man mv 或 mv --help
  • rm:man rm 或 rm --help
[img]https
://i-blog.csdnimg.cn/img_convert/0c8146fda7ba45fac649b5472ae0dbf5.png[/img]

恢复快照就行了
4 查找命令(which、find)

以下是 Linux 体系中两个常用的查找命令:which 和 find 的具体先容及其用法。

1. which 命令

which 用于查找可执行文件的路径,它会在体系环境变量 $PATH 中查找命令的所在位置。
基本用法

  • 查找命令的绝对路径
  1. which command_name
复制代码
  1. - 示例:查找 `ls
  2. ` 命令的路径
复制代码
  1. which ls
复制代码
输出:/bin/ls

[img]https
://i-blog.csdnimg.cn/img_convert/e1836ccd4486b15c58d6aabbd745efee.png[/img]


  • 查找多个命令的路径
  1. which command1 command2
复制代码
  1. - 示例:
复制代码
  1. which ls
  2. pwd
复制代码
[img]https
://i-blog.csdnimg.cn/img_convert/4d64f8c78363811f8b9af12a27316d87.png[/img]

输出:
  1. /bin/ls
  2. /bin/pwd
复制代码

  • 检察某命令是否存在

    • 如果命令不存在,which 会返回空值。


适用场景


  • 确定某命令是否安装。
  • 确认正在利用的命令路径(如检查是否是体系自带还是自定义安装的命令)。

2. find 命令

find 是功能强大的查找工具,用于在目录中查找文件或目录,支持基于名称、大小、时间等多种条件的搜刮。
基本用法

  • 按名称查找文件
  1. find path -name filename
复制代码
  1. - 示例:在 `/home/user` 中查找名为 `test.txt` 的文件
复制代码
  1. find /home/user -name "test.txt"
复制代码

  • 按文件范例查找
  1. find path -type file_type
复制代码
  1. - 文件类型说明:
  2.     * `f`:普通文件
  3.     * `d`:目录
  4.     * `l`:符号链接
  5. - 示例:查找 `/var` 下的所有目录
复制代码
  1. find /var -type d
复制代码

  • 按大小查找
  1. find path -size [+|-]size
复制代码
  1. - 示例:查找大于 10MB 的文件
复制代码
  1. find /home -size +10M
复制代码

  • 按修改时间查找
  1. find path -mtime [+|-]days
复制代码
  1. - 示例:查找最近 7 天修改过的文件
复制代码
  1. find /home -mtime -7
复制代码

  • 执行操作
  1. find path -name filename
  2. -exec command {} \;
复制代码
  1. - 示例:删除 `/tmp` 目录下的所有 `.log` 文件
复制代码
  1. find /tmp -name "*.log" -exec rm -f {} \;
复制代码

  • 查找并打印效果

    • 利用 -print 显式打印查找效果(一般默认启用)。

  1. find /path -name "*.txt" -print
复制代码

find 的高级选项

  • 组合条件

    • 逻辑与:-a 或省略

  1. find /home -type f -size +1M -name "*.txt"
复制代码
  1. - **逻辑或**:`-o`
复制代码
  1. find /home -type f -name "*.txt" -o -name "*.log"
复制代码

  • 忽略大小写
  1. find /home -iname "*.txt"
复制代码
  1. - `-iname` 用于忽略文件名大小写。
复制代码

  • 限制查找深度
  1. find /home -maxdepth depth
复制代码
  1. - 示例:只在当前目录查找
复制代码
  1. find /home -maxdepth 1 -name "*.txt"
复制代码

which 和 find 的对比

功能whichfind用途查找命令的可执行路径查找文件、目录或满足特定条件的对象查找范围$PATH
环境变量中的路径用户指定的目录范围支持条件无条件支持多种条件(名称、大小、时间等)输出可执行文件的路径文件或目录的完备路径利用场景快速定位命令所在路径灵活搜刮文件、目录
资助与手册


  • which:
  1. which --help
  2. man which
复制代码


  • find:
  1. find --help
  2. man find
复制代码
5 grep、wc和管道符

1. grep 命令

grep 是 Linux 中的强大工具,用于在文件或输入中搜刮指定的字符串或模式,并输出匹配的行。
基本语法
  1. grep [选项] "匹配模式" 文件
复制代码
常用选项

  • 搜刮指定字符串
  1. grep "关键字" 文件名
复制代码
示例:搜刮文件 test.txt 中包罗 “error” 的行:
  1. grep "error" test.txt
复制代码

  • 忽略大小写
  1. grep -i "关键字" 文件名
复制代码
示例:
  1. grep -i "Error" test.txt
复制代码

  • 显示行号
  1. grep -n "关键字" 文件名
复制代码
示例:显示匹配行的行号:
  1. grep -n "error" test.txt
复制代码

  • 递归搜刮目录
  1. grep -r "关键字" 目录
复制代码
示例:递归搜刮当前目录及其子目录中包罗 “error” 的文件:
  1. grep -r "error" .
复制代码

  • 利用正则表达式
  1. grep -E "正则表达式" 文件名
复制代码
示例:匹配包罗数字的行:
  1. grep -E "[0-9]+" test.txt
复制代码

2. wc 命令

wc 用于统计文件的行数、单词数和字符数。
基本语法
  1. wc [选项] 文件
复制代码
常用选项

  • 统计行数
  1. wc -l 文件名
复制代码
示例:统计文件 test.txt 的行数:
  1. wc -l test.txt
复制代码

  • 统计单词数
  1. wc -w 文件名
复制代码
示例:统计文件 test.txt 的单词数:
  1. wc -w test.txt
复制代码

  • 统计字符数
  1. wc -c 文件名
复制代码
示例:统计文件 test.txt 的字符数:
  1. wc -c test.txt
复制代码

  • 同时显示行数、单词数和字符数
  1. wc 文件名
复制代码
示例:
  1. wc test.txt
复制代码

3. 管道符(|)

管道符 | 用于将一个命令的输出作为另一个命令的输入,通常用于组合多个命令来处置惩罚数据。
管道符的用法
  1. 命令1 | 命令2
复制代码

grep、wc 和管道符的组合示例

  • 统计文件中包罗关键字的行数
  1. grep "关键字" 文件名
  2. | wc -l
复制代码
示例:统计 test.txt 中包罗 “error” 的行数:
  1. grep "error" test.txt
  2. | wc -l
复制代码

  • 统计当前目录下的文件数目
  1. ls
  2. | wc -l
复制代码
示例:统计当前目录下的文件和子目录数目:
  1. ls
  2. | wc -l
复制代码

  • 检察体系日志中错误的行数
  1. grep "error" /var/log/syslog | wc -l
复制代码

  • 结合正则表达式统计匹配的效果 示例:统计包罗数字的行数:
  1. grep -E "[0-9]+" test.txt
  2. | wc -l
复制代码

  • 动态过滤命令输出 示例:检察某个命令的输出并过滤包罗特定关键词的行:
  1. ps
  2. aux | grep "java"
复制代码

总结

命令功能示例grep搜刮文件内容grep "error" test.txt
wc统计文件行数、单词数、字符数wc -l test.txt
管道符将一个命令的输出作为另一个命令的输入`ls
通过组合利用 grep、wc 和管道符,可以高效完成文本筛选、统计和分析任务,是 Linux 体系中处置惩罚数据的常用技巧。
6 echo、tail和重定向符

1. echo 命令

基本功能
echo 用于在终端输出字符串或变量的值,是 Linux 中最基础的输出命令之一。
基本语法
  1. echo [选项] [字符串]
复制代码
常用选项

  • 输出字符串
  1. echo "Hello, World!"
复制代码
  1. - 输出结果:`Hello, World!`
复制代码

  • 显示变量的值
  1. name="Linux"
  2. echo "Welcome to $name!"
复制代码
  1. - 输出结果:`Welcome to Linux!`
复制代码

  • 不换行输出
  1. echo -n "Hello"
复制代码
  1. - 输出结果:`Hello`(不换行)
复制代码

  • 转义特殊字符
  1. echo -e "Hello\nWorld!"
复制代码
  1. - 输出结果:
复制代码
  1. Hello
  2. World!
复制代码
  1. - **常用转义字符**:
  2.     * `\n`:换行
  3.     * `\t`:水平制表符(Tab)
  4.     * `\\`:反斜杠
复制代码

  • 重定向输出到文件
  1. echo "Hello, Linux!" > file.txt
复制代码

2. tail 命令

基本功能
tail 用于显示文件的最后几行内容,常用于检察日志文件。
基本语法
  1. tail [选项] 文件
复制代码
常用选项

  • 检察文件最后10行
  1. tail file.txt
复制代码
  1. - 默认显示文件的最后10行。
复制代码

  • 指定显示行数
  1. tail -n 行数 文件
复制代码
  1. - 示例:显示文件的最后5行:
复制代码
  1. tail -n 5 file.txt
复制代码

  • 动态监控文件厘革
  1. tail -f 文件
复制代码
  1. - 示例:实时查看日志文件的更新:
复制代码
  1. tail -f /var/log/syslog
复制代码

  • 检察从某一行开始的内容
  1. tail -n +行号 文件
复制代码
  1. - 示例:从第3行开始显示文件内容:
复制代码
  1. tail -n +3 file.txt
复制代码

3. 重定向符

基本功能
重定向符用于将命令的输出或输入重定向到文件或其他命令。
重定向符种类

  • 输出重定向

    • 覆盖写入:

  1. echo "Hello, Linux!" > file.txt
复制代码
  1.     * 将 `echo` 的输出写入 `file.txt`,如果文件已存在,会覆盖原内容。
  2. - 追加写入:
复制代码
  1. echo "Append this line." >> file.txt
复制代码
  1.     * 将内容追加到 `file.txt` 的末尾。
复制代码

  • 输入重定向
  1. command &
  2. lt; file.txt
复制代码
  1. - 示例:将 `file.txt` 的内容作为命令的输入。
复制代码

  • 错误输出重定向

    • 重定向错误信息到文件:

  1. command 2> error.log
复制代码
  1.     * 将命令的错误输出写入 `error.log`。
  2. - 同时重定向标准输出和错误输出:
复制代码
  1. command &
  2. gt; output.log 2>&1
复制代码
  1.     * 将命令的正常输出和错误输出都写入 `output.log`。
复制代码

  • 管道符结合利用

    • 利用管道符和重定向符将多个命令组合处置惩罚:

  1. command1 | command2 > output.txt
复制代码

常见示例

  • 将字符串写入文件并检察
  1. echo "This is a test" > test.txt
  2. tail test.txt
复制代码

  • 动态检察日志文件并保存更新
  1. tail -f /var/log/syslog
  2. >> system_update
  3. s.log
复制代码

  • 过滤文件内容并写入新文件
  1. echo -e "line1\nline2\nline3" > test.txt
  2. tail -n 2 test.txt > last_two_lines.txt
复制代码

总结

命令/符号功能echo输出字符串或变量的值,常用于打印信息或写入文件tail检察文件的最后几行内容,动态监控文件更新>重定向输出到文件(覆盖写入)>>重定向输出到文件(追加写入)<将文件内容作为命令输入2>将错误输出重定向到文件`` 通过灵活组合这些命令和符号,可以高效地处置惩罚文本、监控日志文件以及调试输出信息,是 Linux 体系中一样寻常工作的基础工具。
7 vi编辑器

vi 是一个强大的文本编辑器,是 Linux 和 Unix 体系中最常用的编辑器之一。它功能强大,适用于编程、设置文件编辑等各种用途。
基本概念
vi 编辑器有三种模式:

  • 命令模式:用于执行编辑命令(如删除、复制、粘贴等)。
  • 插入模式:用于输入文本内容。
  • 底行模式:用于执行特定命令(如保存、退出等)。
1. 启动 vi 编辑器

  1. vi 文件名
复制代码
如果文件存在,它将打开该文件。如果文件不存在,vi 会创建一个新文件。
2. vi 编辑器的基本操作

切换到插入模式



  • 命令模式 下,按 i 进入 插入模式,可以开始输入文本。

    • I:在当前行的开头进入插入模式。
    • a:在光标后进入插入模式。
    • A:在当前行的末尾进入插入模式。
    • o:在当前行下方新开一行并进入插入模式。
    • O:在当前行上方新开一行并进入插入模式。

切换到命令模式



  • 插入模式 下,按 Esc 键返回 命令模式
命令模式的基本操作


  • 移动光标

    • h:向左移动一个字符。
    • j:向下移动一行。
    • k:向上移动一行。
    • l:向右移动一个字符。
    • w:跳到下一个单词的开头。
    • b:跳到上一个单词的开头。
    • 0:跳到行的开头。
    • $:跳到行的末尾。

  • 删除文本

    • x:删除光标所在位置的字符。
    • dd:删除当前行。
    • d$:删除从光标位置到行尾的所有字符。
    • dw:删除当前单词。

  • 复制与粘贴

    • yy:复制当前行(yank)。
    • p:粘贴已复制的内容到光标后面。
    • P:粘贴已复制的内容到光标前面。

  • 打消与重做

    • u:打消上一步操作。
    • Ctrl + r:重做上一步打消的操作。

  • 查找与替换

    • /关键字:在文件中查找关键字。
    • n:查找下一个匹配的关键字。
    • N:查找上一个匹配的关键字。
    • :%s/旧字符串/新字符串/g:在整个文件中替换旧字符串为新字符串。

  • 跳转

    • G:跳到文件的最后一行。
    • gg:跳到文件的第一行。
    • 数字G:跳到指定行号。

底行模式的基本操作

命令模式 下,按 : 进入 底行模式,可以执行以下命令:

  • 保存文件

    • :w:保存文件但不退出。
    • :w 文件名:另存为指定的文件。

  • 退出文件

    • :q:退出编辑器。
    • :q!:欺压退出,不保存文件。
    • :wq:保存并退出编辑器。
    • ZZ(大写):保存并退出编辑器。

  • 查找与替换

    • :s/旧字符串/新字符串/:替换当前行中的第一个匹配项。
    • :s/旧字符串/新字符串/g:替换当前行中的所有匹配项。
    • :%s/旧字符串/新字符串/g:替换整个文件中的所有匹配项。

  • 跳转到指定行

    • :10:跳到文件的第10行。


3. 退出 vi 编辑器


  • 保存并退出:Esc → :wq 或 ZZ
  • 欺压退出(不保存):Esc → :q!
  • 仅退出(如果文件已保存):Esc → :q

4. vi 的高级功能


  • 多文件编辑

    • 打开多个文件:

  1. vi file1.txt file2.txt
复制代码
  1. - 切换文件:
复制代码
  1. :n  # 切换到下一个文件
  2. :prev  # 切换到上一个文件
复制代码

  • 剪切与粘贴

    • 剪切一行:dd
    • 剪切多行:数字dd,例如:3dd 剪切3行。
    • 粘贴到指定位置:p(光标后粘贴)、P(光标前粘贴)。

  • 列操作

    • 选择列并编辑:按下 Ctrl + v 进入可视模式,然后利用光标键选择文本。

  • 宏操作

    • 录制宏:按 q 然后按一个字母(例如 q)开始录制,完成操作后按 q 停止录制。
    • 执行宏:按 @ 后跟录制的字母(例如 @q)。


5. 总结

操作命令插入模式i
, I
, a
, A
, o
, O命令模式h
, j
, k
, l
, w
, b
, $删除操作x
, dd
, d$
, dw复制和粘贴yy
, p
, P查找和替换/关键字
, :%s/旧/新/g保存和退出:w
, :q
, :wq
, :q!打消与重做u
, Ctrl + r vi 编辑器的学习曲线大概较陡,但一旦把握,它将是一个非常强大的工具,适合用于各种文本编辑任务。
快速体验
利用:vim hello.txt,编辑一个新文件,执行后进入的是命令模式
在命令模式内,按键盘 i ,进入输入模式
在输入模式内输入:hello world.
输入完成后,按esc回退会命令模式
在命令模式内,按键盘 : ,进入底线命令模式
在底线命令内输入:wq,保存文件并退出vi编辑器
补充

任何命令都支持:–help 选项, 可以通过这个选项,检察命令的资助。
如:ls
--help, 会列出ls
命令的资助文档
如果想要检察命令的具体手册,可以通过man(manual, 手册)命令检察
比如:
man ls

,就是检察ls
命令的具体手册
man cd,就是检察cd命令的具体手册
第三章 用户和权限

1 认识root用户

1 root用户

无论是Windows、MacOS、Linux均采用多用户的管理模式举行权限管理。
在Linux体系中,拥有最大权限的账户名为:root(超级管理员)
前期,我一直利用的账户是普通的用户:centos
[img]https
://i-blog.csdnimg.cn/img_convert/39639cfe3239be7c33bed2c71b912328.png[/img]

[img]https
://i-blog.csdnimg.cn/img_convert/c9c4ba7ff610f3ab10ecb3550f2595c0.png[/img]

2. su命令

可以切换用户,语法:su [-] [用户名]


  • 表示切换后加载环境变量,建议带上
用户可以省略,省略默认切换到root
在前面,我们接触过su命令切换到root账户。
su命令就是用于账户切换的体系命令,其来源英文单词:Switch User
语法:


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

可以让一条普通命令带有root权限,语法:sudo 其他命令
必要以root用户执行visudo命令,增加设置方可让普通用户有sudo命令的执行权限
centos ALL=(ALL) NOPASSED:ALL不消暗码也能执行sudo
可以利用sudo命令,为普通的命令授权,临时以root身份执行。
语法:sudo 其他命令
在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权
但是并不是所有的用户,都有权利利用sudo,我们必要为普通用户设置sudo认证
2 用户、用户组管理

Linux体系中可以:


  • 设置多个用户
  • 设置多个用户组
  • 用户可以加入多个用户组中
Linux中关于权限的管控级别有2个级别,分别是:


  • 针对用户的权限控制
  • 针对用户组的权限控制
在 Linux 体系中,用户管理用户组管理是体系管理员常用的任务,旨在为体系中的各个用户分配权限并保持体系的安全性。用户可以被分配到一个或多个用户组中,通过组管理来更高效地控制文件和资源的访问权限。
1. 用户管理

创建用户
要在 Linux 体系中创建新用户,利用 useradd 命令。
  1. sudo useradd [选项] 用户名
复制代码
常见选项:


  • -m:创建用户的家目录(如果没有的话)。
  • -d:指定家目录的位置。
  • -s:指定用户的登录 shell。
  • -g:指定主用户组。
  • -G:指定附加用户组。
  • -p:为用户设置暗码(必要利用加密过的暗码)。
示例:
  1. sudo useradd -m -s /bin/bash -g users -G sudo,developers username
复制代码
这将创建一个名为 username 的用户,指定默认 shell 为 /bin/bash,主用户组为 users,并将该用户添加到 sudo 和 developers 这两个附加用户组中。
设置用户暗码

创建用户后,你通常必要为其设置暗码。利用 passwd 命令:
  1. sudo passwd 用户名
复制代码
示例:
  1. sudo passwd username
复制代码
体系会要求输入两次暗码,暗码设置成功后,用户可以利用该暗码登录。
检察用户信息

要检察当前体系中的用户信息,可以利用 cat 检察 /etc/passwd 文件。此文件包罗了体系上所有用户的信息。
  1. cat /etc/passwd
复制代码
每行包罗:


  • 用户名
  • 暗码(通常已加密)
  • 用户ID(UID)
  • 用户组ID(GID)
  • 用户描述(可选)
  • 家目录路径
  • 登录 shell
删除用户

要删除一个用户,利用 userdel 命令:
  1. sudo userdel 用户名
复制代码
要删除用户及其家目录(如果存在),利用 -r 选项:
  1. sudo userdel -r 用户名
复制代码
修改用户

要修改用户的信息(如修改用户名、用户组等),利用 usermod 命令。
示例:


  • 修改用户名:
  1. sudo usermod -l 新用户名 旧用户名
复制代码


  • 修改用户的主目录:
  1. sudo usermod -d /新路径 -m 用户名
复制代码
-m 选项会移动用户的文件到新的目录。

2. 用户组管理

创建用户组

要创建一个新用户组,利用 groupadd 命令:
  1. sudo groupadd 用户组名
复制代码
示例:
  1. sudo groupadd developers
复制代码
这将创建一个名为 developers 的新用户组。
检察用户组信息

要检察当前体系中的所有用户组,可以检察 /etc/group 文件:
  1. cat /etc/group
复制代码
每行包罗:


  • 用户组名
  • 暗码(通常为空)
  • 用户组ID(GID)
  • 用户组成员
添加用户到用户组

可以利用 usermod 命令将用户添加到现有的用户组。利用 -aG 选项来追加用户到附加用户组。
  1. sudo usermod -aG 用户组名 用户名
复制代码
示例:
  1. sudo usermod -aG developers username
复制代码
这将把 username 添加到 developers 用户组中。
删除用户组

要删除用户组,利用 groupdel 命令:
  1. sudo groupdel 用户组名
复制代码
示例:
  1. sudo groupdel developers
复制代码
删除用户组中的用户

如果你想从用户组中移除用户,而不是删除整个用户组,可以利用 gpasswd 命令:
  1. sudo gpasswd -d 用户名 用户组名
复制代码
示例:
  1. sudo gpasswd -d username developers
复制代码
这将把 username 从 developers 用户组中移除。

3. 常用命令和文件

检察当前用户和组



  • 检察当前用户名:whoami 或 id -un
  • 检察当前用户的 UID 和 GID:id
  • 检察当前用户的所有组:groups

示例:
  1. id username
复制代码
输出效果:
  1. uid=1001(username) gid=1001(username) groups
  2. =1001(username),1002(developers)
复制代码
文件权限与用户组

Linux 利用三种权限(读、写、执行)来控制文件和目录的访问:


  • r:读权限,表示可以读取文件内容。
  • w:写权限,表示可以修改文件内容。
  • x:执行权限,表示可以执行文件或访问目录。
权限是按用户(owner)、用户组(group)和其他用户(others)来设置的。


  • 文件权限示例:
  1. ls
  2. -l 文件名
复制代码
输出示例:
  1. -rwxr-xr-- 1 username developers 12345 May 1 12:34 filename
复制代码
解释:
  1. - `rwx`:文件所有者 (`username`) 有读、写、执行权限。
  2. - `r-x`:文件所属用户组 (`developers`) 有读、执行权限。
  3. - `r--`:其他用户有读权限。
复制代码


  • 修改文件权限: 利用 chmod 命令修改文件权限:
  1. chmod 755 文件名
复制代码
7 表示文件所有者的权限是读、写、执行(rwx),5 表示用户组的权限是读和执行(r-x),5 表示其他用户的权限是读和执行(r-x)。


  • 修改文件所属的用户和组: 利用 chown 命令修改文件的所有者和所属用户组:
  1. sudo chown 用户名:用户组 文件名
复制代码
示例:
  1. sudo chown username:developers file.txt
复制代码

总结

命令功能useradd创建新用户passwd设置或修改用户暗码usermod修改现有用户的属性(如用户名、家目录等)userdel删除用户groupadd创建新用户组groupdel删除用户组usermod -aG将用户添加到附加用户组gpasswd -d从用户组中删除用户id检察当前用户的 UID、GID 以及所属的所有组groups
检察当前用户所属的所有组 用户和用户组管理是体系管理员一样寻常任务的重要组成部门。合理的用户组设计可以资助简化权限管理,进步体系的安全性和可维护性。
[img]https
://i-blog.csdnimg.cn/img_convert/f66c077799621f54728615f401ccb741.png[/img]

3 权限控制

1 检察权限控制

通过ls
-l 可以以列表形式检察内容,并显示权限细节
[img]https
://i-blog.csdnimg.cn/img_convert/34d195c9cea69159cef51f19f13d4e07.png[/img]

序号1,表示文件、文件夹的权限控制信息
序号2,表示文件、文件夹所属用户
序号3,表示文件、文件夹所属用户组
解析一下序号1,权限细节
权限细节总共分为10个槽位
[img]https
://i-blog.csdnimg.cn/img_convert/e51f9d78ade2b73d32e6fdf578709ccd.png[/img]

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


  • 这是一个文件夹,首字母d表示
  • 所属用户(右上角图序号2)的权限是:有r有w有x,rwx
  • 所属用户组(右上角图序号3)的权限是:有r无w有x,r-x (-表示无此权限)
  • 其它用户的权限是:有r无w有x,r-x
[img]https
://i-blog.csdnimg.cn/img_convert/aa42fdb80b2d30791332787982f1e1f6.png[/img]

那么,rwx到底代表什么呢?
r表示读权限
w表示写权限
x表示执行权限
针对文件、文件夹的不同,rwx的寄义有渺小差别
r,针对文件可以检察文件内容
针对文件夹,可以检察文件夹内容,如ls
命令
w,针对文件表示可以修改此文件
针对文件夹,可以在文件夹内:创建、删除、改名等操作
x,针对文件表示可以将文件作为程序执行
针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
[img]https
://i-blog.csdnimg.cn/img_convert/6691d73118194d74a6d282ed550f698b.png[/img]

2 修改权限控制 - chmod

chmod(Change Mode)是一个用来修改文件或目录权限的 Linux 命令。通过它,用户可以指定文件或目录的访问权限,从而控制谁能访问和操作该文件或目录。
文件权限的基本概念

每个文件或目录在 Linux 中都有三种范例的权限:

  • 读(r):允许检察文件内容或列出目录中的文件。
  • 写(w):允许修改文件内容或在目录中添加、删除文件。
  • 执行(x):允许执行文件(如脚本、程序等)或进入目录。
文件权限分为三个类别:


  • 用户(User):文件的拥有者。
  • 用户组(Group):与文件拥有者属于同一组的用户。
  • 其他用户(Others):不属于文件拥有者组和用户组的所有其他用户。
基本语法

  1. chmod [选项] 权限 文件名
复制代码


  • 选项:可选项,通常不必要。
  • 权限:指定文件或目录的权限。
  • 文件名:要修改权限的文件或目录。
权限的表示方法

chmod 有两种常见的权限表示方法:

  • 符号模式(Symbolic Mode):利用字符表示权限。
  • 数字模式(Numeric Mode):利用数字表示权限。

1. 符号模式

符号模式利用字符来表示权限:


  • r:读权限
  • w:写权限
  • x:执行权限
  • +:增加权限
  • -:去除权限
  • =:设置权限
格式:chmod [who][operator][permissions] 文件名


  • who:表示要修改权限的用户类别:

    • u:用户(文件的拥有者)
    • g:用户组
    • o:其他用户
    • a:所有用户(包罗用户、组和其他用户)

  • operator:表示权限的修改方式:

    • +:添加权限
    • -:移除权限
    • =:设置精确的权限(覆盖现有权限)

例子


  • 给文件 **file.txt** 添加用户组的写权限
  1. chmod g+w file.txt
复制代码
这将为文件 file.txt 添加用户组的写权限。


  • 移除文件 **file.txt** 中其他用户的执行权限
  1. chmod o-x file.txt
复制代码


  • 将文件 **file.txt** 的权限设置为用户拥有读写权限,其他用户只能读权限
  1. chmod u=rw,go=r file.txt
复制代码


  • 为所有用户添加读权限
  1. chmod a+r file.txt
复制代码

2. 数字模式

数字模式利用三个数字表示文件权限,每个数字由以下三种基本权限组成:


  • 4:读权限(r)
  • 2:写权限(w)
  • 1:执行权限(x)
数字模式中的每个数字表示用户类别的权限:


  • 第一个数字:用户(文件的拥有者)
  • 第二个数字:用户组
  • 第三个数字:其他用户
每个数字是这三个权限值的和:


  • 读(r)权限为 4
  • 写(w)权限为 2
  • 执行(x)权限为 1
例如:


  • 7(4 + 2 + 1):rwx读、写、执行权限
  • 6(4 + 2):rw-读、写权限
  • 5(4 + 1):r-x读、执行权限
  • 4(4):r--读权限
  • 3(2 + 1):-wx写、执行权限
  • 2(2):-w-写权限
  • 1(1):--x执行权限
  • 0:---无权限
例子


  • 设置文件 **file.txt** 的权限为用户读写执行,组用户读写,其他用户只有读权限
  1. chmod 764 file.txt
复制代码
  1. - `7`(用户:rwx)
  2. - `6`(组:rw-)
  3. - `4`(其他:r--)
复制代码


  • 设置文件 **file.txt** 的权限为所有用户都有读写执行权限
  1. chmod 777 file.txt
复制代码


  • 设置文件 **file.txt** 的权限为用户只有读权限,组和其他用户没有任何权限
  1. chmod 400 file.txt
复制代码

将hello.txt的权限修改为: r-x–xr-x,数字序号为:
  1. chmod 515 hello.txt
复制代码
将hello.txt的权限修改为: -wx-w-rw-,数字序号为:
  1. chmod 326 hello.txt
复制代码
3. 修改目录权限

修改目录的权限和文件雷同,但必要特别注意的是执行权限对于目录的作用:


  • 如果没有 执行权限,用户就无法进入(cd)该目录。
  • 只有 执行权限,用户才能进入目录。
  • 必要 读权限 来列出目录中的文件。
例如:


  • 为目录 **mydir** 设置权限
  1. chmod 755 mydir
复制代码
  1. - 用户有读、写、执行权限,组和其他用户只有读和执行权限。
复制代码

4. 常用选项



  • **-R**:递归地修改目录及其子目录中的文件权限。
示例:
  1. chmod -R 755 mydir
复制代码
这将递归地为 mydir 及其所有子目录和文件设置权限。

5. 权限的检察

利用 ls
-l 命令检察文件或目录的权限:
  1. ls
  2. -l 文件名
复制代码
输出示例:
  1. -rwxr-xr-- 1 user1 group1 1024 Apr 1 12:34 file.txt
复制代码


  • **rwxr-xr--**:权限(文件所有者:读、写、执行,组用户:读、执行,其他用户:只读)
  • **1**:链接数
  • **user1**:文件的拥有者
  • **group1**:文件的所属用户组
  • **1024**:文件大小
  • **Apr 1 12:34**:最后修改时间
  • **file.txt**:文件名

总结

命令描述chmod 755 文件名
给文件设置权限:用户(rwx),用户组(r-x),其他用户(r-x)chmod -R 755 目录名递归设置目录及其子目录和文件的权限chmod u+x 文件名为文件所有者添加执行权限chmod g-w 文件名从文件所属用户组移除写权限chmod 644 文件名文件权限:用户(rw-),组用户(r–),其他用户(r–)chmod 777 文件名给所有用户设置读、写、执行权限 chmod 是管理文件和目录权限的重要工具,合理地设置权限可以或许有效地保护体系的安全性和数据的隐私性。
3 修改权限控制 - chown

chown 是 Linux 体系中用于修改文件或目录的所有者(user)和用户组(group)的命令。通过 chown 命令,体系管理员可以更改文件或目录的拥有者和所属组,从而管理文件的访问权限和控制哪些用户可以访问。
基本语法

  1. chown [选项] 所有者:用户组 文件名
复制代码


  • 所有者:指定新的文件拥有者。
  • 用户组:指定新的文件所属组(可选)。
  • 文件名:要修改的文件或目录。
常用的选项



  • **-R**:递归地修改目录及其子目录和文件的拥有者和用户组。
  • **--reference=文件**:将目标文件的所有者和用户组设置为与参考文件相同。

1. 修改文件或目录的所有者

如果你只想修改文件的拥有者(用户),可以利用 chown 并指定新的所有者:
  1. chown 用户名 文件名
复制代码
例如:
  1. sudo chown alice file.txt
复制代码
这将把文件 file.txt 的拥有者改为 alice。

2. 修改文件或目录的用户组

如果你只想修改文件的所属用户组(组),可以利用 chown 并指定新的用户组:
  1. chown :用户组 文件名
复制代码
例如:
  1. sudo chown :staff file.txt
复制代码
这将把文件 file.txt 的所属用户组改为 staff。

3. 修改文件的所有者和用户组

如果你必要同时修改文件的拥有者和用户组,可以利用以下格式:
  1. chown 用户名:用户组 文件名
复制代码
例如:
  1. sudo chown alice:admin file.txt
复制代码
这将把文件 file.txt 的拥有者改为 alice,所属用户组改为 admin。

4. 递归修改目录及其内容的所有者和用户组

如果你想递归地修改一个目录及其所有子目录和文件的所有者和用户组,可以利用 -R 选项:
  1. sudo chown -R 用户名:用户组 目录名
复制代码
例如:
  1. sudo chown -R alice:staff /home/alice
复制代码
这将把目录 /home/alice 及其所有子文件和子目录的所有者改为 alice,所属用户组改为 staff。

5. 利用参考文件设置所有者和用户组

你还可以利用 --reference 选项,将目标文件的所有者和用户组设置为与参考文件相同:
  1. sudo chown --reference=参考文件 文件名
复制代码
例如:
  1. sudo chown --reference=file1.txt file2.txt
复制代码
这将把文件 file2.txt 的所有者和用户组设置为与 file1.txt 相同。

6. 检察文件的所有者和用户组

可以利用 ls
-l 命令来检察文件或目录的所有者和用户组:
  1. ls
  2. -l 文件名
复制代码
示例输出:
  1. -rw-r--r-- 1 alice staff 1024 Apr 1 12:34 file.txt
复制代码


  • alice:文件的所有者
  • staff:文件的用户组
  • 1024:文件大小
  • Apr 1 12:34:文件的最后修改时间
  • file.txt:文件名

7. 举例阐明

修改文件的所有者:
  1. sudo chown john file.txt
复制代码
这将把 file.txt 的所有者修改为 john。
修改文件的用户组:
  1. sudo chown :developers file.txt
复制代码
这将把 file.txt 的用户组修改为 developers。
修改文件的所有者和用户组:
  1. sudo chown john:developers file.txt
复制代码
这将把 file.txt 的所有者修改为 john,用户组修改为 developers。
递归修改目录及其内容的所有者和用户组:
  1. sudo chown -R john:developers /home/john
复制代码
这将把 /home/john 目录及其所有子目录和文件的所有者修改为 john,用户组修改为 developers。

总结

chown 命令是 Linux 体系中用于修改文件和目录所有者及用户组的工具。通过合理利用 chown,你可以有效地管理文件的权限和安全性。
命令功能chown 用户名 文件名
修改文件的所有者chown :用户组 文件名
修改文件的用户组chown 用户名:用户组 文件名
同时修改文件的所有者和用户组chown -R 用户名:用户组 目录名递归修改目录及其子文件的所有者和用户组chown --reference=参考文件 文件名将目标文件的所有者和用户组设置为参考文件相同 通过正确利用 chown 命令,体系管理员可以有效地管理文件和目录的所有权,从而包管体系的安全性和资源的适当共享。
第四章 Linux实用操作

1 常用快捷键

在 Linux 体系中,命令行界面(CLI)是一个非常强大的工具,利用各种快捷键可以大大进步工作效率。以下是一些常用的 Linux 快捷键,资助你在终端中更高效地操作。

  • 基本命令行快捷键
快捷键功能Ctrl + C终止当前正在运行的命令或程序(欺压停止历程)。Ctrl + Z将当前历程挂起(暂停运行),并将其放到后台。Ctrl + D退出当前终端会话,相当于输入 exit
命令。Ctrl + L清屏,雷同于输入 clear
命令。Ctrl + U删除光标前面的所有字符。Ctrl + K删除光标后面的所有字符。Ctrl + W删除光标前一个单词。Ctrl + Y恢复最后一次删除(如通过 Ctrl + U
或 Ctrl + W
删除的内容)。Ctrl + A将光标移动到行的开头。Ctrl + E将光标移动到行的末端。Ctrl + R启动汗青命令搜刮,可以快速查找之前执行过的命令。Ctrl + P上一条汗青命令。Ctrl + N下一条汗青命令。

  • 文件与目录操作快捷键
快捷键功能Tab主动补全文件名或命令。如果有多个补全选项,按两次 Tab
会列出所有选项。Ctrl + F在命令行中向前查找字符。Ctrl + B在命令行中向后查找字符。Alt + .获取最后一个命令的最后一个参数。例如,执行 ls
/home
后,按 Alt + .
会主动补全 /home
。Ctrl + X在 nano
编辑器中剪切当前行。Ctrl + V在 nano
编辑器中粘贴剪切的内容。

  • 终端操作快捷键
快捷键功能Ctrl + Alt + T打开一个新的终端窗口。Alt + F4关闭当前的终端窗口(与图形界面中的关闭窗口雷同)。Ctrl + Shift + T打开一个新的终端标签页(适用于支持标签页的终端,如 GNOME Terminal)。Ctrl + Shift + C复制终端中的文本。Ctrl + Shift + V粘贴终端中的文本。

  • 文本编辑与命令行编辑快捷键
在命令行中输入和编辑命令时,这些快捷键非常有用:
快捷键功能Ctrl + A将光标移到行的开始位置。Ctrl + E将光标移到行的结束位置。Ctrl + U删除光标前面的所有字符。Ctrl + K删除光标后面的所有字符。Ctrl + W删除光标前一个单词。Alt + D删除光标后的一个单词。Ctrl + Y恢复最近一次的剪切(删除)内容。Ctrl + T交换光标前后两个字符。Alt + B将光标向后移动一个单词。Alt + F将光标向前移动一个单词。Ctrl + Left Arrow将光标向左移动一个单词。Ctrl + Right Arrow将光标向右移动一个单词。

  • 历程控制快捷键
在终端中,控制历程时利用这些快捷键可以非常方便:
快捷键功能Ctrl + C终止当前历程。Ctrl + Z暂停当前历程并将其放到后台。bg将暂停的历程从后台恢复到后台运行。fg将暂停的历程从后台恢复到前台运行。jobs
显示当前的后台任务。

  • 利用汗青命令的快捷键
在 Linux 中,history 命令可以检察执行过的汗青命令,快捷键让你更高效地利用汗青命令:
快捷键功能Up Arrow查找汗青命令中的上一条命令。Down Arrow查找汗青命令中的下一条命令。Ctrl + R启动反向搜刮汗青命令。Ctrl + S启动正向搜刮汗青命令(某些体系必要先设置)。history检察命令汗青记载。

  • 网络操作快捷键
在举行网络操作时,以下快捷键可以进步效率:
快捷键功能Ctrl + C终止当前的网络命令或操作(例如 ping
或 wget
)。Ctrl + D退出当前的网络毗连(例如 FTP)。

  • 利用 man 页面的快捷键
检察资助文档时,这些快捷键可以资助你快速欣赏和搜刮:
快捷键功能Up Arrow上滚一行Down Arrow下滚一行Page Up上滚一页Page Down下滚一页/在 man
页面中举行搜刮。输入搜刮词后按 Enter
。n跳转到下一个匹配的搜刮效果。q退出 man
页面。

  • ctrl + c 欺压停止
  • ctrl + d 退出登出
  • history 检察汗青命令
  • !命令前缀,主动匹配上一个命令
  • ctrl + r,搜刮汗青命令
  • ctrl + a | e,光标移动到命令开始或结束
  • ctrl + ← | →,左右跳单词
  • ctrl + l 或 clear命令 清屏
2 软件安装

操作体系安装软件有许多种方式,一般分为:
下载安装包自行安装
如win体系利用exe文件、msi文件等
如mac体系利用dmg文件、pkg文件等
体系的应用市肆内安装
如win体系有Microsoft Store市肆
如mac体系有AppStore市肆
利用yum为CentOS体系安装软件

在 CentOS 体系上,yum(Yellowdog Update
r, Modified)是一个常用的包管理工具,用于从远程仓库下载和安装软件包、更新体系以及管理软件包依靠关系。以下是一些利用 yum 安装软件包的常见操作。
1**. 安装软件包**
利用 yum install 命令安装软件包:
  1. sudo yum install 包名
复制代码
例如,要安装 wget 工具:
  1. sudo yum install wget
复制代码
2. 安装多个软件包
你可以同时安装多个软件包,只需在命令中列出它们的名称即可:
  1. sudo yum install 包名
  2. 1 包名2 包名3
复制代码
例如,要安装 wget 和 curl:
  1. sudo yum install wget
  2. curl
复制代码
3. 安装指定版本的软件包
如果你想安装特定版本的软件包,可以在包名后面加上版本号:
  1. sudo yum install 包名
  2. -版本号
复制代码
例如,要安装 wget 的特定版本 1.20.3-3.el8:
  1. sudo yum install wget
  2. -1.20.3-3.el8
复制代码
4. 查找可用的软件包
如果你不确定软件包的名称,可以利用 yum search 来查找软件包:
  1. yum search 软件包名称
复制代码
例如,搜刮包罗 wget 的所有软件包:
  1. yum search wget
复制代码
5. 检察软件包信息
如果你想检察某个软件包的具体信息(例如版本、描述、大小等),可以利用 yum info 命令:
  1. yum info 包名
复制代码
例如,检察 wget 软件包的具体信息:
  1. yum info wget
复制代码
6. 更新已安装的软件包
要更新已安装的软件包,可以利用 yum update
命令:
  1. sudo yum update
  2. 包名
复制代码
例如,更新 wget:
  1. sudo yum update
  2. wget
复制代码
如果不指定软件包名,yum update
会更新所有可以更新的软件包。
  1. sudo yum update
复制代码
7. 升级所有软件包
利用 yum upgrade 命令,可以升级所有安装的软件包到最新版本:
  1. sudo yum upgrade
复制代码
8. 删除软件包
如果你不再必要某个软件包,可以利用 yum remove 命令卸载它:
  1. sudo yum remove 包名
复制代码
例如,删除 wget:
  1. sudo yum remove wget
复制代码
9. 清理缓存
yum 会在本地缓存已下载的软件包和元数据,以便在下次利用时加快速率。如果你必要清理缓存,可以利用 yum clean 命令:


  • 清理软件包缓存:
  1. sudo yum clean packages
复制代码


  • 清理所有缓存(包罗元数据和软件包):
  1. sudo yum clean all
复制代码
10. 列出已安装的软件包
要检察体系上已安装的软件包列表,可以利用 yum list installed
命令:
  1. yum list installed
复制代码
11. 启用或禁用特定的软件仓库
CentOS 利用仓库来提供软件包。如果你必要启用或禁用某个仓库,可以修改仓库设置文件,大概在利用 yum 命令时指定:


  • 启用特定仓库:
  1. sudo yum --enablerepo=repo_name install 包名
复制代码


  • 禁用特定仓库:
  1. sudo yum --disablerepo=repo_name install 包名
复制代码
12. 获取资助
如果你必要获取 yum 命令的资助,利用以下命令:
  1. yum --help
复制代码
利用apt为Ubuntu安装软件

后续补充到Ubantu部门
3 systemctl

Linux体系许多软件(内置或第三方)均支持利用systemctl命令控制:启动、停止、开机自启
可以或许被systemctl管理的软件,一般也称之为:服务
语法:systemctl start | stop
|status | enable | disable 服务名
start 启动
stop
关闭
status 检察状态
enable 开启开机自启
disable 关闭开机自启
体系内置的服务比力多,比如:
NetworkManager,主网络服务
network,副网络服务
firewalld,防火墙服务
sshd,ssh服务(FinalShell远程登录Linux利用的就是这个服务)
systemctl 是一个用于管理体系服务的命令行工具,适用于基于 systemd 的 Linux 体系。它可以用于启动、停止、重启服务,检察服务的状态,启用或禁用服务,管理开机启动等。
以下是一些常见的 systemctl 命令用法:

  • 检察服务状态
  1. systemctl status <服务名>
复制代码
例如,检察 nginx 服务的状态:
  1. systemctl status nginx
复制代码

  • 启动服务
  1. systemctl start <服务名>
复制代码
例如,启动 nginx 服务:
  1. systemctl start nginx
复制代码

  • 停止服务
  1. systemctl stop
  2. <服务名>
复制代码
例如,停止 nginx 服务:
  1. systemctl stop
  2. nginx
复制代码

  • 重启服务
  1. systemctl restart <服务名>
复制代码
例如,重启 nginx 服务:
  1. systemctl restart nginx
复制代码

  • 重新加载服务设置(不重启服务)
  1. systemctl reload <服务名>
复制代码
例如,重新加载 nginx 服务的设置:
  1. systemctl reload nginx
复制代码

  • 启用服务开机自启动
  1. systemctl enable <服务名>
复制代码
例如,设置 nginx 开机自启动:
  1. systemctl enable nginx
复制代码

  • 禁用服务开机自启动
  1. systemctl disable <服务名>
复制代码
例如,禁用 nginx 开机自启动:
  1. systemctl disable nginx
复制代码

  • 检察所有正在运行的服务
  1. systemctl list-units --type=service
复制代码

  • 检察已启动的服务及其状态
  1. systemctl is-active <服务名>
复制代码
例如,检查 nginx 是否处于激活状态:
  1. systemctl is-active nginx
复制代码

  • 检察服务日志
systemctl 与 journalctl
共同利用,可以检察服务的日志:
  1. journalctl
  2. -u <服务名>
复制代码
例如,检察 nginx 的日志:
  1. journalctl
  2. -u nginx
复制代码

  • 检察所有服务的日志
  1. journalctl
复制代码

  • 关闭并关闭所有服务(仅对管理体系时有用)
  1. systemctl poweroff
复制代码

  • 重启体系
  1. systemctl reboot
复制代码
这些是常用的 systemctl 命令,用于管理和控制服务。如果你必要更多的资助,可以通过 man systemctl 来检察 systemctl 的手册页面,获取更具体的用法。
4 利用ln创建软毗连

ln 命令用于在 Linux 体系中创建文件的硬链接或软链接(符号链接)。如果你盼望创建软链接(即符号链接),可以利用 -s 选项。
创建软毗连的基本语法:
  1. ln -s <目标文件/目录> <链接文件/目录>
复制代码


  • 目标文件/目录:你要创建软链接的原始文件或目录。
  • 链接文件/目录:你盼望创建的软链接的名称或位置。
什么是软毗连?
可以将文件、文件夹链接到其它位置
链接只是一个指向,并不是物理移动,雷同Windows体系的快捷方式
例子:
1. 创建软链接到文件

假设你有一个文件 original.txt,你想在当前目录中创建一个名为 link.txt 的软链接。
  1. ln -s /path/to/original.txt link.txt
复制代码
如许,你就在当前目录下创建了一个指向 original.txt 的软链接 link.txt。
2. 创建软链接到目录

假设你有一个目录 /home/user/old_dir,你想在当前目录中创建一个名为 new_dir 的软链接。
  1. ln -s /home/user/old_dir new_dir
复制代码
如许,你就创建了一个指向 /home/user/old_dir 目录的软链接 new_dir。
检察软链接
你可以利用 ls
-l 命令检察软链接的具体信息。软链接会显示出其指向的目标:
  1. ls
  2. -l link.txt
复制代码
输出雷同:
  1. lrwxrwxrwx 1 user user 20 Jan  9 12:34 link.txt -> /path/to/original.txt
复制代码


  • l 开头表示这是一个符号链接。
  • -> 后面显示链接的目标路径。
删除软链接
要删除软链接,可以利用 rm 命令:
  1. rm link.txt
复制代码
注意:删除软链接只会删除链接本身,不会影响原始文件或目录。
注意事项


  • 软链接 只是指向目标文件或目录的路径,并不包罗目标内容。删除软链接不会删除目标文件,但如果目标文件被删除,软链接将失效,显示为 “坏链接”。
  • 如果目标是目录,软链接仍旧可以作为目录利用。
盼望这些能资助你更好地理解和利用 ln 命令创建软链接。
5 日期、时区

1. 检察日期和时间(date
命令)


date
命令用于显示当前的体系日期和时间。利用它时,您可以看到格式化的输出信息,也可以举行自定义输出。
基本命令:
  1. date
复制代码
输出示例:
  1. Mon Jan  9 12:34:56 CST 2025
复制代码
这表示:星期一,2025年1月9日,时间是12:34:56,时区是 CST(中国标准时间)。
自定义格式:
您可以利用 + 选项来指定输特别式,常用的格式化选项有:


  • %Y:年份(4位数字)
  • %m:月份(01-12)
  • %d:日期(01-31)
  • %H:小时(00-23)
  • %M:分钟(00-59)
  • %S:秒(00-59)
例如,显示 YYYY-MM-DD HH:MM:SS 格式的日期时间:
  1. date
  2. "+%Y-%m-%d %H:%M:%S"
复制代码
输出示例:
  1. 2025-01-09 12:34:56
复制代码
2. 修改 Linux 体系时区

修改时区的过程一般涉及以下步调:
2.1 检察当前时区
要检察当前体系的时区,可以利用以下命令:
  1. timedate
  2. ctl
复制代码
输出示例:
  1. Local time: Mon 2025-01-09 12:34:56
  2. CST           Universal time: Mon 2025-01-09 04:34:56 UTC                 RTC time: Mon 2025-01-09 04:34:56                Time zone: Asia/Shanghai (CST, +0800)
复制代码
2.2 检察可用时区
可以列出所有可用的时区:
  1. timedate
  2. ctl list-timezones
复制代码
这将列出所有时区,如:
  1. Africa/Abidjan
  2. Africa/Accra
  3. ...
  4. Asia/Shanghai
  5. ...
复制代码
2.3 设置新的时区
要更改时区,可以利用 timedate
ctl 命令。例如,要将时区更改为 Asia/Shanghai:
  1. sudo timedate
  2. ctl set
  3. -timezone Asia/Shanghai
复制代码
2.4 验证时区更改
更改时区后,您可以再次利用 timedate
ctl 检察是否更改成功:
  1. timedate
  2. ctl
复制代码
您应该看到新的时区设置。
2.5 手动设置时区(如果没有 timedate
ctl)
在某些老版本的 Linux 体系中,您大概没有 timedate
ctl 工具,您可以手动更改时区。方法是通过符号链接更改 /etc/localtime 文件。


  • 查找您必要的时区:
  1. ls
  2. /usr/share/zoneinfo
复制代码


  • 创建符号链接到正确的时区文件。例如:
  1. sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
复制代码
3. 利用 NTP 举行时间同步和校准

NTP(Network Time Protocol)用于同步计算机的体系时间和环球时间标准。利用 NTP 可以确保您的体系时间是准确的。
3.1 安装 NTP 服务
首先,确保安装了 NTP 服务。如果尚未安装,可以通过以下命令举行安装:


  • 对于 CentOS/RHEL 体系
  1. sudo yum install ntp
复制代码


  • 对于 Ubuntu/Debian 体系
  1. sudo apt-get install ntp
复制代码
3.2 启动并启用 NTP 服务
安装完 NTP 后,您必要启动并启用服务,以便它在体系启动时主动运行。


  • 启动 NTP 服务:
  1. sudo systemctl start ntpd
复制代码


  • 设置 NTP 服务开机自启动:
  1. sudo systemctl enable ntpd
复制代码
3.3 利用 ntpdate
命令手动同步时间
如果您只想手动同步时间,可以利用 ntpdate
命令。首先安装 ntpdate
工具(如果没有安装):


  • 对于 CentOS/RHEL 体系
  1. sudo yum install ntp
  2. date
复制代码


  • 对于 Ubuntu/Debian 体系
  1. sudo apt-get install ntp
  2. date
复制代码
然后利用以下命令手动同步时间:
  1. sudo ntpdate
  2. pool.ntp.org
复制代码
这将从 pool.ntp.org 服务器同步时间。
3.4 利用 chrony (替代 NTP)
在一些现代的 Linux 体系中,chrony 已经替代了 ntpd,并且它在某些环境下比 NTP 更加精确和稳固。利用 chrony 的方法:


  • 安装 chrony

    • 对于 CentOS/RHEL:

  1. sudo yum install chrony
复制代码
  1. - 对于 Ubuntu/Debian:
复制代码
  1. sudo apt-get install chrony
复制代码


  • 启动并启用 chrony 服务
  1. sudo systemctl start chronyd
  2. sudo systemctl enable chronyd
复制代码


  • 检察时间同步状态
  1. chronyc tracking
复制代码

  • 总结


  • 利用 date
    命令可以检察和自定义体系时间。
  • 利用 timedate
    ctl 可以修改体系时区。
  • 利用 NTP 或 chrony 工具来同步和校准体系时间,确保体系时间与环球标准时间同步。
6 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

[img]https
://i-blog.csdnimg.cn/img_convert/188b302657ca55b8d86460ba1145bc88.png[/img]

特殊IP地点
除了标准的IP地点以外,还有几个特殊的IP地点必要我们相识:


  • 127.0.0.1,这个IP地点用于指代本机
[img]https
://i-blog.csdnimg.cn/img_convert/76dcde6c1c008938f283061eee0249b4.png[/img]



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

每一台电脑除了对外联结地点(IP地点)以外,也可以有一个名字,称之为主机名
无论是Windows或Linux体系,都可以给体系设置主机名
Windows体系主机名
[img]https
://i-blog.csdnimg.cn/img_convert/5e1fa7a122972886d19aa86662f22bba.png[/img]

Linux体系主机名
[img]https
://i-blog.csdnimg.cn/img_convert/6c01717d8530b32ad4ebb1fb4cb93568.png[/img]

在Linux中修改主机名
可以利用命令:hostname检察主机名
[img]https
://i-blog.csdnimg.cn/img_convert/1a4ea122cfa334cf828435b7b55542e2.png[/img]

可以利用命令:hostnamectl set
-hostname 主机名,修改主机名(需root)
[img]https
://i-blog.csdnimg.cn/img_convert/91fb25be61a04aa689a1de3b15f039d3.png[/img]

重新登录FinalShell即可看到主机名已经正确显示
[img]https
://i-blog.csdnimg.cn/img_convert/234cc4c0a82fd40c13d9afe3691b6984.png[/img]

域名解析
访问www.baidu.com的流程如下:
[img]https
://i-blog.csdnimg.cn/img_convert/46cc518fab54f4fca43cc9873109ed0d.png[/img]

先检察本机的记载(私家地点本)
Windows看:C:\Windows\System32\drivers\etc\hosts
Linux看:/etc/hosts
再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问
设置主机名映射
比如,我们FinalShell是通过IP地点毗连到的Linux服务器,那有没有大概通过域名(主机名)毗连呢?
可以,我们只必要在Windows体系的:C:\Windows\System32\drivers\etc\hosts文件中设置记载即可
[img]https
://i-blog.csdnimg.cn/img_convert/fcfae581cc840dd729980e9547e6f7fe.png[/img]

[img]https
://i-blog.csdnimg.cn/img_convert/e8e469a2800ab530250f1522ac30d4c0.png[/img]

[img]https
://i-blog.csdnimg.cn/img_convert/6cfe1d0976a17a9e8eb7ac20103e6eb8.png[/img]

虚拟机设置固定IP

当前我们虚拟机的Linux操作体系,其IP地点是通过DHCP服务获取的。
DHCP:动态获取IP地点,即每次重启装备后都会获取一次,大概导致IP地点频仍变动
原因1:办公电脑IP地点厘革无所谓,但是我们要远程毗连到Linux体系,如果IP地点常常厘革我们就要频仍修改适配很麻烦
原因2:在刚刚我们设置了虚拟机IP地点和主机名的映射,如果IP频仍更改,我们也必要频仍更新映射关系
综上所述,我们必要IP地点固定下来,不要厘革了。
在VMware Workstation中设置固定IP
设置固定IP必要2个大步调:
在VMware Workstation(或Fusion)中设置IP地点网关和网段(IP地点的范围)
在Linux体系中手动修改设置文件,固定IP
首先让我们,先举行第一步,跟随图片举行操作
[img]https
://i-blog.csdnimg.cn/img_convert/b4f96feab2a96aedaa2f577e3ffd0282.png[/img]


[img]https
://i-blog.csdnimg.cn/img_convert/3fc1ae23c9dd4587c3e89abc4454b8b4.png[/img]

现在举行第二步,在Linux体系中修改固定IP
利用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入如下内容
[img]https
://i-blog.csdnimg.cn/img_convert/8b97b4df8fcfb9be04b1484d54d27e2f.png[/img]

执行:systemctl restart network重启网卡,执行ifconfig
即可看到ip地点固定为192.168.88.130了
7 网络传输

1 下载和网络哀求

以下是关于 网络传输工具 的具体先容,以及怎样利用 ping、wget 和 curl 命令举行网络操作:

1. 利用 ping 检查服务器是否可联通

ping 命令是一个简朴的工具,用于测试从本地计算机到目标主机之间的网络毗连环境。它通过发送 ICMP 回显哀求数据包,测量网络延迟并检测目标主机是否可达。
基本语法
  1. ping [选项] 目标地址
复制代码
常用选项


  • 不指定选项:默认会连续发送数据包,直得手动终止。
  • -c <次数>:指定发送数据包的数目。
  • -i <隔断时间>:指定发送数据包的隔断时间(默认 1 秒)。
  • -s <数据包大小>:指定命据包的大小(默认 56 字节)。
示例

  • 检查是否能连通 Google DNS:
  1. ping 8.8.8.8
复制代码

  • 发送 4 个数据包并停止:
  1. ping -c 4 www.example.com
复制代码

  • 设置数据包大小为 128 字节:
  1. ping -s 128 www.example.com
复制代码

2. 利用 wget 下载文件

wget 是一个用于从网络上非交互式下载文件的工具,支持 HTTP、HTTPS 和 FTP 协议。
基本语法
  1. wget [选项] <URL>
复制代码
常用选项


  • -O <文件名>:指定下载的文件保存为指定名称。
  • -c:继承上次未完成的下载(断点续传)。
  • -r:递归下载(适用于整个网站)。
  • -q:静默模式(不输出信息)。
  • --limit-rate=<速率>:限制下载速率。
  • --no-check-certificate:忽略 HTTPS 的证书检查(在证书无效时有用)。
示例
  1. 下载apache-hadoop 3.3.0版本:
  2. wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
  3. 在后台下载:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
  4. 通过tail命令可以监控后台下载进度:tail -f wget-log
复制代码

  • 下载单个文件:
  1. wget https
  2. ://example.com/file.zip
复制代码

  • 指定文件名保存下载内容:
  1. wget -O myfile.zip https
  2. ://example.com/file.zip
复制代码

  • 断点续传:
  1. wget -c https
  2. ://example.com/file.zip
复制代码

  • 限制下载速率为 100 KB/s:
  1. wget --limit-rate=100k https
  2. ://example.com/file.zip
复制代码

3. 利用 curl 发起网络哀求

curl 是一个功能强大的命令行工具,用于从服务器哀求或发送数据,支持多种协议(如 HTTP、HTTPS、FTP 等)。
基本语法
  1. curl [选项] <URL>
复制代码
常用选项


  • -o <文件名>:将输出保存到文件。
  • -O:利用远程文件名保存下载的内容。
  • -L:跟随重定向。
  • -X <哀求方法>:指定 HTTP 哀求方法(如 GET、POST、PUT、DELETE)。
  • -d <数据>:发送 POST 哀求时附加数据。
  • -H <头部>:设置自定义 HTTP 头。
  • -I:仅显示 HTTP 相应头。
  • -k:忽略 HTTPS 证书检查。
示例
  1. 通过curl下载hadoop-3.3.0安装包:
  2. curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
复制代码

  • 下载文件:
  1. curl -O https
  2. ://example.com/file.zip
复制代码

  • 保存文件到自定义文件名:
  1. curl -o myfile.zip https
  2. ://example.com/file.zip
复制代码

  • 发送 POST 哀求并传递数据:
  1. curl -X POST -d "name=John&age=30" https
  2. ://example.com/api
复制代码

  • 发送自定义头部信息:
  1. curl -H "Authorization: Bearer <token>" https
  2. ://example.com/api
复制代码

  • 检察相应头信息:
  1. curl -I https
  2. ://example.com
复制代码

  • 跟随重定向:
  1. curl -L https
  2. ://short.url
复制代码

总结
命令功能示例ping检查主机是否可达,测量延迟。ping -c 4 8.8.8.8
wget从网络上下载文件。wget -O file.zip https
://example.com/file.zipcurl发起网络哀求或下载文件。curl -X POST -d "key=value" https
://example.com/api 通过把握这些工具,你可以在 Linux 体系中高效地举行网络操作,包罗测试网络毗连、下载文件以及与服务器交互。
2 端口


  • 什么是端口?
端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口
物理端口:USB、HDMI、DP、VGA、RJ45等
虚拟端口:操作体系和外部交互的出入口
IP只能确定计算机,通过端谈锋能锁定要交互的程序

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

  • 检察端口占用
nmap IP地点,检察指定IP的对外袒露端口
netstat -an
p | grep 端口号,检察本机指定端口号的占用环境
可以通过Linux命令去检察端口的占用环境
利用nmap命令,安装nmap:yum -y install nmap
语法:nmap 被检察的IP地点
[img]https
://i-blog.csdnimg.cn/img_convert/cc21894967b9d41c8d4b8bc28f5f29a4.png[/img]

可以看到,本机(127.0.0.1)上有5个端口现在被程序占用了。
其中:
22端口,一般是SSH服务利用,即FinalShell远程毗连Linux所利用的端口
可以通过netstat命令,检察指定端口的占用环境
语法:netstat -an
p | grep 端口号 ,安装netstat:yum -y install net-tools

[img]https
://i-blog.csdnimg.cn/img_convert/861c041ad723c8d198a9dceb6ca2381b.png[/img]

如图,可以看到当前体系6000端口被程序(历程号7174)占用了
其中,0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地点上,表示允许外部访问
[img]https
://i-blog.csdnimg.cn/img_convert/c5b31d4f5db185b7cfc25bdf67ac3b5e.png[/img]

可以看到,当前体系12345端口,无人利用哦。
总结
命令功能netstat -a显示所有毗连和监听端口netstat -l显示正在监听的端口netstat -t检察 TCP 毗连netstat -u检察 UDP 毗连netstat -p显示端口对应的历程 ID 和名称netstat -r检察体系的路由表ss -t
ln显示监听的 TCP 端口(现代工具推荐) 8 历程管理

在 Linux 体系中,历程管理是确保体系高效运行的重要组成部门。它涉及到历程的检察、启动、终止、优先级调整等操作。
以下是历程管理的重要内容:

1. 检察历程

1.1 利用 ps
命令
ps
是一个常用的检察历程信息的命令。


  • 检察当前用户的所有历程:
  1. ps
复制代码


  • 检察所有历程:
  1. ps
  2. -e
复制代码


  • 检察所有历程的具体信息:
  1. ps
  2. -ef
复制代码
[img]https
://i-blog.csdnimg.cn/img_convert/dd48f015a2343b1cb058ca2506880fd1.png[/img]

从左到右分别是:
UID:历程所属的用户ID
PID:历程的历程号ID
PPID:历程的父ID(启动此历程的其它历程)
C:此历程的CPU占用率(百分比)
STIME:历程的启动时间
TTY:启动此历程的终端序号,如显示?,表示非终端启动
TIME:历程占用CPU的时间
CMD:历程对应的名称或启动路径或启动命令


  • 实时检察某个用户的历程:
  1. ps
  2. -u username
复制代码
1.2 利用 top
命令
top
是一个动态监控体系运行状态的工具,可以实时显示所有历程的资源利用环境。
  1. top
复制代码
输出示例:
  1. PID   USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  2. 1234  user      20   0  163852   2320   1234 S   0.7  0.1   0:02.35 bash
  3. 2345  user      20   0  546728  15432   8765 S   1.3  0.5   0:05.87 python3
复制代码


  • PID:历程 ID。
  • %CPU:历程占用的 CPU 百分比。
  • %MEM:历程占用的内存百分比。
  • COMMAND:执行历程的命令。
1.3 利用 htop

htop
是一个增强版的 top
,提供更友爱的界面(必要安装):
  1. sudo apt install htop
  2.   # Debian/Ubuntu 体系sudo yum install htop
  3.   # CentOS/RHEL 体系htop
复制代码
1.4 利用 pgrep
pgrep 可以通过历程名称直接查找历程 ID:
  1. pgrep <进程名>
复制代码
例如,查找 sshd 历程的 PID:
  1. pgrep sshd
复制代码

2. 终止历程

2.1 利用 kill 命令
kill 命令通过历程 ID (PID) 来终止历程。


  • 发送默认信号(SIGTERM)终止历程:
  1. kill <PID>
复制代码


  • 欺压终止历程(SIGKILL):
  1. kill -9 <PID>
复制代码
2.2 利用 pkill 命令
pkill 通过历程名称来终止历程。


  • 终止名称为 **python3** 的历程:
  1. pkill python3
复制代码


  • 欺压终止:
  1. pkill -9 python3
复制代码
2.3 利用 killall
killall 可以终止所有指定名称的历程。


  • 终止所有 **ssh** 相关的历程:
  1. killall ssh
复制代码

3. 修改历程优先级

Linux 中,每个历程都有一个优先级(Priority),通过 nice 值 控制,范围从 -20(最高优先级)到 19(最低优先级)。
3.1 检察历程的优先级
利用 top
或 ps
命令检察 PR(优先级)和 NI(nice 值)列。
3.2 修改历程优先级


  • 启动时设置优先级: 利用 nice 命令以指定优先级启动历程。
  1. nice -n 10 command
复制代码


  • 运行中的历程调整优先级: 利用 renice 命令调整优先级。
  1. renice -n <新的优先级> -p <PID>
复制代码
例如,将 PID 为 1234 的历程优先级设置为 5:
  1. renice -n 5 -p 1234
复制代码

4. 后台历程管理

4.1 将历程放到后台
通过在命令末尾添加 &,可以将历程放到后台运行:
  1. command &
复制代码
4.2 检察后台任务
利用 jobs
命令检察后台运行的任务:
  1. jobs
复制代码
4.3 恢复后台任务到前台
利用 fg 命令将后台任务恢复到前台:
  1. fg <任务号>
复制代码
任务号可以通过 jobs
命令获取。
4.4 暂停前台任务
利用 Ctrl + Z 可以暂停正在运行的前台任务,并将其移到后台。

5. 检察和管理体系资源

5.1 利用 free 检察内存利用
  1. free -h
复制代码
输出示例:
  1. total        used        free      shared  buff/cache   available
  2. Mem:          7.8Gi       2.1Gi       3.2Gi       312Mi       2.5Gi       5.0Gi
  3. Swap:         2.0Gi          0B       2.0Gi
复制代码
5.2 利用 vmstat 检察 CPU、内存、I/O 状态
  1. vmstat 1
复制代码
每秒刷新一次体系资源状态。

6. 常用历程管理命令总结

命令功能ps
检察历程信息top
动态检察历程资源占用htop
增强版的 top

,图形界面友爱pgrep查找指定名称的历程kill通过 PID 终止历程pkill通过历程名称终止历程killall终止所有指定名称的历程nice启动历程时设置优先级renice修改运行中历程的优先级jobs
检察后台任务fg将后台任务恢复到前台 9 主机状态

检察体系资源占用

可以通过top
命令检察CPU、内存利用环境,雷同Windows的任务管理器
  1. 默认每5秒刷新一次,语法:直接输入`top
  2. `即可,按q或ctrl + c退出
复制代码
[img]https
://i-blog.csdnimg.cn/img_convert/6da33c6fa21b6344da999a40369f3c77.png[/img]

[img]https
://i-blog.csdnimg.cn/img_convert/83c5140d129ba6a4165a0785ed668de3.png[/img]

[img]https
://i-blog.csdnimg.cn/img_convert/d9a8f8d925f5586eb7acaccd251c9e71.png[/img]

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**仅显示指定历程的信息。**-d**设置刷新时间隔断(秒),默认值是 5 秒。例如:**top
-d 2**
** 将每 2 秒刷新一次。****-c**显示产生历程的完备命令,默认只显示历程名。**-n**指定刷新次数后退出。例如:**top
-n 3**
** 会刷新 3 次后退出程序。****-b**以非交互、批量模式运行 **top
**
,适合将输出重定向到文件或其他工具处置惩罚,常与 **-n**
共同利用。例如:
**top
-b -n 3 > /tmp/top
.tmp**
** 会将统计信息输出到文件中。****-i**不显示任何空闲(idle)或僵尸(zombie)的历程,适合专注于活泼历程。**-u**按用户过滤历程,只显示特定用户启动的历程。例如:**top
-u username**
** 显示特定用户的历程信息。** top
交互式选项


按键功能h显示资助信息,列出所有交互式命令的阐明。c切换显示模式,显示/隐蔽历程的完备命令行,与启动时的 -c
参数功能相同。再次按下 c
键切换回默认模式。f选择必要显示的列(字段),用户可以通过按键来调整显示哪些信息。M按驻留内存大小(RES)对历程排序(从高到低)。P按 CPU 利用百分比对历程排序(从高到低)。T按累计运行时间排序(从高到低)。E切换顶部内存显示单元(KB、MB、GB)。e切换历程内存显示单元(KB、MB、GB)。1切换显示每个 CPU 的负载信息(默认显示所有 CPU 的平均负载)。i显示/隐蔽闲置(idle)或僵尸(zombie)历程,与 -i
参数功能相同。t切换显示 CPU 状态信息的内容,包罗用户时间、体系时间、空闲时间等。m切换显示内存信息的内容,包罗物理内存和交换分区的利用环境。 磁盘信息监控

在 Linux 体系中,磁盘信息监控是体系管理的重要部门。以下是常用的磁盘监控命令及其功能,可以资助您检察磁盘的利用环境、性能指标以及具体的文件占用信息。

1. df 命令:检察磁盘空间利用环境

df 命令(Disk Free)用于显示文件体系的磁盘利用环境,包罗总空间、已用空间、剩余空间等。
基本语法
  1. df [选项]
复制代码
常用选项
-h:以人类可读的格式显示(单元为 KB、MB、GB)。
-T:显示文件体系的范例。
-i:显示 inode 利用环境。
--total:显示所有文件体系的总计。
示例
显示所有磁盘的利用环境(以人类可读格式):
  1. df -h
复制代码
输出示例:
  1. Filesystem      Size  Used Avail Use% Mounted on
  2. /dev/sda1        50G   20G   30G  40% /
  3. tmpfs           2.0G     0  2.0G   0% /dev/shm
复制代码
检察文件体系的范例:
  1. df -T
复制代码
显示 inode 的利用环境:
  1. df -i
复制代码

2. du 命令:检察目录和文件的磁盘利用环境

du 命令(Disk Usage)用于检察目录或文件占用的磁盘空间大小。
基本语法
  1. du [选项] [路径]
复制代码
常用选项
-h:以人类可读格式显示。
-s:只显示总计。
-a:显示所有文件和目录的大小。
-c:显示总计大小。
--max-depth=<n>:限制显示目录的深度。
示例
显示当前目录及其子目录的大小:
  1. du -h
复制代码
显示指定目录的总大小:
  1. du -sh /path/to/directory
复制代码
限制显示深度为 1:
  1. du -h
  2. --max-depth=1
复制代码
显示目录中每个文件的大小:
  1. du -ah
复制代码

3. ls
blk 命令:显示磁盘分区信息


ls
blk 命令用于以树状结构显示体系中的所有块装备信息。
基本语法
  1. ls
  2. blk [选项]
复制代码
常用选项
-f:显示文件体系范例。
-d:只显示磁盘,不显示分区或挂载点。
-o:自定义显示的列(如 NAME、SIZE、MOUNTPOINT 等)。
示例
显示磁盘和分区的具体信息:
  1. ls
  2. blk
复制代码
显示文件体系范例:
  1. ls
  2. blk -f
复制代码
自定义列显示:
  1. ls
  2. blk -o NAME,SIZE,TYPE,MOUNTPOINT
复制代码

4. fdisk 和 parted 命令:检察磁盘分区

fdisk
fdisk 是用于检察和管理磁盘分区的工具。
检察磁盘的分区表:
  1. sudo fdisk -l
复制代码
parted
parted 是一个更高级的分区工具,支持 GPT 分区。
显示分区信息:
  1. sudo parted -l
复制代码

5. iostat 命令:检察磁盘性能

iostat 命令(I/O Statistics)用于监控磁盘的 I/O 性能。
基本语法
  1. iostat [选项]
复制代码
常用选项
-d:显示磁盘装备的统计信息。
-x:显示扩展统计信息。
-k:以 KB 为单元显示。
示例
显示磁盘 I/O 性能统计:
  1. iostat -d
复制代码
显示具体的扩展统计信息:
  1. iostat -d
  2. x
复制代码


  • mount
    命令:检察挂载的文件体系
mount
命令用于显示当前体系挂载的文件体系。
检察挂载的文件体系
  1. mount
复制代码


  • blkid
    命令:检察装备 UUID 和文件体系范例
blkid
命令用于检察块装备的文件体系范例和 UUID。
示例
  1. blkid
复制代码
输出示例:
  1. /dev/sda1: UUID="abcd-1234" TYPE="ext4"
  2. /dev/sda2: UUID="efgh-5678" TYPE="swap"
复制代码


  • smartctl 命令:磁盘健康状态监控
smartctl 是用于检察磁盘健康状态的工具(必要安装 smartmontools
)。
检察磁盘健康状态
安装工具:
  1. sudo apt install smartmontools
  2.   # Debian/Ubuntusudo yum install smartmontools
  3.   # CentOS/RHEL
复制代码
检察磁盘健康状态:
  1. sudo smartctl -H /dev/sda
复制代码
检察具体的磁盘信息:
  1. sudo smartctl -a /dev/sda
复制代码

总结
命令功能示例df -h
检察磁盘利用环境df -h
du -sh检察目录或文件占用磁盘空间du -sh /path/to/directory
ls
blk显示磁盘和分区信息ls
blk -ffdisk -l显示分区信息sudo fdisk -l
iostat -d
x检察磁盘 I/O 性能iostat -d
xsmartctl -H检察磁盘健康状态sudo smartctl -H /dev/sda
blkid
检察装备 UUID 和文件体系范例blkid
网络状态监控

在 Linux 体系中,监控网络状态是确保网络正常运行、排查问题和优化性能的关键任务。以下是常用的网络状态监控工具和命令。

1. ifconfig
/ ip 命令:检察网络接口信息


1.1 ifconfig
命令
ifconfig
用于检察和设置网络接口。
  1. ifconfig
复制代码
输出示例:
  1. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  2.         inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
  3.         inet6 fe80::1e5:9dff:fe42:8368  prefixlen 64  scopeid 0x20<link>
  4.         RX packets 10000  bytes 5000000 (4.7 MiB)
  5.         TX packets 8000  bytes 4000000 (3.8 MiB)
复制代码
1.2 ip 命令
ip 是 ifconfig
的现代替代工具,功能更强大。
检察所有网络接口:
  1. ip addr
复制代码
检察特定接口:
  1. ip addr
  2. show dev eth0
复制代码

2. netstat / ss 命令:检察网络毗连和端口

2.1 netstat 命令
netstat 用于显示网络毗连、监听端口、路由表等信息。
常用选项:


  • -a:显示所有毗连和监听端口。
  • -t:仅显示 TCP 毗连。
  • -u:仅显示 UDP 毗连。
  • -n:以数字形式显示地点和端口(不举行 DNS 解析)。
  • -p:显示历程 ID 和名称。
示例:

  • 显示所有网络毗连:
  1. netstat -an
复制代码

  • 显示监听的 TCP 端口:
  1. netstat -tlp
复制代码
2.2 ss 命令
ss 是 netstat 的现代替代工具,速率更快,功能更强大。
常用选项:


  • -t:显示 TCP 毗连。
  • -u:显示 UDP 毗连。
  • -n:数字显示。
  • -l:仅显示监听端口。
  • -p:显示历程。
示例:

  • 显示所有 TCP 毗连:
  1. ss -t
复制代码

  • 显示监听的端口:
  1. ss -ltn
复制代码

3. ping 命令:测试网络连通性

ping 命令通过发送 ICMP 数据包来测试主机是否可达,以及延迟时间。
基本用法:
  1. ping <目标地址>
复制代码
示例:

  • 测试与 8.8.8.8 的连通性:
  1. ping 8.8.8.8
复制代码

  • 限制发送次数:
  1. ping -c 4 google.com
复制代码

4. traceroute 命令:追踪网络路径

traceroute 用于追踪从本地主机到目标主机的路径,显示颠末的所有路由。
基本用法:
  1. traceroute <目标地址>
复制代码
示例:

  • 追踪到 google.com 的网络路径:
  1. traceroute google.com
复制代码
如果体系没有安装,可以通过以下命令安装:
  1. sudo yum install traceroute    # CentOS/RHEL
  2. sudo apt install traceroute    # Debian/Ubuntu
复制代码

5. nmap 命令:端口扫描和网络安全

nmap 是一个强大的网络扫描工具,可用于检测网络主机、端口和服务。
基本用法:
  1. nmap [选项] <目标地址>
复制代码
常用选项:


  • -sS:TCP SYN 扫描。
  • -sU:UDP 扫描。
  • -p <端口范围>:扫描指定端口。
示例:

  • 扫描某个主机的所有端口:
  1. nmap -p 1-65535 192.168.1.1
复制代码

  • 扫描主机并检测其服务版本:
  1. nmap -sV 192.168.1.1
复制代码

6. iftop
命令:实时流量监控


iftop
是一个实时流量监控工具,可以显示网络接口上毗连的实时流量。
安装:
  1. sudo yum install iftop
  2.     # CentOS/RHELsudo apt install iftop
  3.     # Debian/Ubuntu
复制代码
利用:
  1. sudo iftop
复制代码
按键阐明:


  • p:切换显示端口。
  • n:切换显示主机名或 IP。
  • b:切换显示流量的方向。

7. tcpdump 命令:抓包工具

tcpdump 是一个强大的抓包工具,用于捕获和分析网络流量。
基本用法:
  1. sudo tcpdump [选项]
复制代码
常用选项:


  • -i <接口>:指定要监控的接口。
  • -n:数字显示,不举行主机名解析。
  • -w <文件>:将抓取的数据保存到文件中。
示例:

  • 监控 eth0 接口的流量:
  1. sudo tcpdump -i eth0
复制代码

  • 抓取指定主机的流量:
  1. sudo tcpdump -i eth0
  2. host 192.168.1.1
复制代码

  • 保存抓取效果到文件:
  1. sudo tcpdump -i eth0
  2. -w output.pcap
复制代码

8. vnstat 命令:带宽监控

vnstat 是一个轻量级的网络带宽监控工具,可以记载和检察流量统计信息。
安装:
  1. sudo yum install vnstat    # CentOS/RHEL
  2. sudo apt install vnstat    # Debian/Ubuntu
复制代码
利用:

  • 检察实时流量:
  1. vnstat -l
复制代码

  • 检察每日流量统计:
  1. vnstat -d
复制代码

总结
命令功能示例ifconfig

/ ip检察网络接口信息ip addr
netstat
/ ss检察网络毗连和监听端口ss -ltn
ping测试网络连通性ping -c 4 8.8.8.8
traceroute追踪网络路径traceroute google.com
nmap扫描端口和服务nmap -p 1-65535 192.168.1.1
iftop
实时流量监控iftop
tcpdump抓包和分析网络流量tcpdump -i eth0 host 192.168.1.1vnstat带宽流量统计vnstat -d
10 环境变量

在 Linux 体系中,环境变量是存储在内存中的变量,它们影响体系和程序的运行活动。环境变量包罗体系设置信息、用户信息、路径信息等,用于控制操作体系和应用程序的运行。


  • 什么是环境变量
环境变量 是一个带有名称和值的键值对,如 PATH=/usr/bin:/bin。
它们用来存储与体系或用户相关的信息,比如:
路径变量:指定可执行文件的搜刮路径。
语言变量:指定体系语言和字符集。
用户变量:存储当前登录用户的信息。
环境变量在 Shell 和体系运行中饰演重要脚色。


  • 常见环境变量
变量名作用PATH定义可执行文件的搜刮路径,用冒号分隔路径。HOME当前用户的主目录路径。USER当前登录的用户名。SHELL当前用户的默认 Shell 范例(如 /bin/bash
)。LANG体系语言和字符编码设置。PWD当前工作目录。EDITOR默认文本编辑器的路径。PS1定义 Shell 的提示符格式。TERM当前终端范例(如 xterm
、vt100
)。

  • 检察环境变量
3.1 利用 echo 检察单个变量
  1. echo $PATH
复制代码
输出示例:
  1. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
复制代码
3.2 利用 env
检察所有环境变量
  1. env
复制代码
3.3 利用 printenv

检察所有环境变量
  1. printenv
复制代码
3.4 利用 set
检察所有 Shell 变量(包罗环境变量和本地变量)
  1. set
复制代码


  • 临时设置环境变量
临时设置的环境变量仅在当前会话(Shell)有效,关闭终端后会失效。
设置临时变量
  1. export VARIABLE_NAME=value
复制代码
示例:
  1. export MY_VAR="Hello, World!"
复制代码
然后检察变量值:
  1. echo $MY_VAR
复制代码
添加路径到 PATH
  1. export PATH=$PATH:/new/path
复制代码


  • 永世设置环境变量
永世设置环境变量必要将其添加到设置文件中,例如用户的 Shell 设置文件 或体系的 环境设置文件。
5.1 用户级别环境变量
修改当前用户的 Shell 设置文件:
对于 Bash(大多数 Linux 体系默认 Shell),编辑 ~/.bashrc:
  1. vi ~/.bashrc
复制代码
对于 Zsh,编辑 ~/.zshrc:
  1. vi ~/.zshrc
复制代码
在文件末尾添加:
  1. export VARIABLE_NAME=value
复制代码
示例:
  1. export JAVA_HOME=/usr/local/java
  2. export PATH=$PATH:$JAVA_HOME/bin
复制代码
保存文件后,执行以下命令使设置生效:
  1. source ~/.bashrc
复制代码
5.2 体系级别环境变量
体系范围的环境变量对所有用户有效,编辑 /etc/profile 或 /etc/env
ironment:
  1. sudo vi /etc/profile
复制代码
或:
  1. sudo vi /etc/env
  2. ironment
复制代码
添加变量:
  1. JAVA_HOME=/usr/local/java
  2. PATH=$PATH:$JAVA_HOME/bin
复制代码
保存后,执行以下命令使设置生效:
  1. source /etc/profile
复制代码


  • 删除环境变量
临时删除变量
利用 unset
命令可以删除变量(仅限当前会话):
  1. unset
  2. VARIABLE_NAME
复制代码
示例:
  1. unset
  2. MY_VAR
复制代码
永世删除变量
从对应的设置文件(如 ~/.bashrc、/etc/profile)中删除相关定义,并重新加载文件。


  • 特殊环境变量文件
/etc/env
ironment
用于设置体系范围的环境变量。
格式:VAR=value(不支持 Shell 的语法扩展)。
/etc/profile
体系范围的 Shell 设置文件,在用户登录时加载。
~/.bashrc
当前用户的 Bash 设置文件,在每次打开新终端时加载。
~/.bash_profile
当前用户的登录 Shell 设置文件。


  • 常见任务示例
添加自定义路径到 PATH
临时添加:
  1. export PATH=$PATH:/usr/local/my_program/bin
复制代码
永世添加: 在 ~/.bashrc 文件中添加:
  1. export PATH=$PATH:/usr/local/my_program/bin
复制代码
设置 Java 环境变量
编辑 ~/.bashrc 文件:
  1. export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
  2. export PATH=$PATH:$JAVA_HOME/bin
复制代码
更新环境变量:
  1. source ~/.bashrc
复制代码

总结
命令功能echo $VAR_NAME检察单个环境变量的值env
检察所有环境变量export VAR_NAME=value临时设置环境变量unset
VAR_NAME删除环境变量source <文件>使环境变量文件修改立即生效 通过把握环境变量的操作,您可以灵活设置运行环境,优化体系和软件的利用体验。
11 上传、下载

固然,除了通过FinalShell的下方窗体举行文件的传输以外,也可以通过rz、sz命令举行文件传输。
rz、sz命令必要安装,可以通过:yum -y install lrzsz,即可安装。
rz命令,举行上传,语法:直接输入rz即可
[img]https
://i-blog.csdnimg.cn/img_convert/64e39e989d63242f35c02a749133dc86.png[/img]

sz命令举行下载,语法:sz 要下载的文件
[img]https
://i-blog.csdnimg.cn/img_convert/bbe11d4f09cf37613fe2434a3ec49e25.png[/img]

文件会主动下载到桌面的:fsdownload文件夹中。
注意,rz、sz命令必要终端软件支持才可正常运行
FinalShell、SecureCRT、XShell等常用终端软件均支持此操作
**rz**** 和 **sz** 是独立的命令,分别用于上传和下载文件**,二者之间没有依靠关系。你可以根据具体需求单独利用这两个命令。

  • **rz**** 命令:上传文件到远程服务器**

    • 用于将本地文件上传到远程服务器。
    • 上传完成后,文件会直接存放在远程服务器的当前工作目录中(可以通过 pwd
      检察当前工作目录)。
    • 上传完成后,不必要再执行 sz,因为 sz 是用于下载文件的命令。

  • **sz**** 命令:下载文件到本地**

    • 用于从远程服务器下载文件到本地。
    • 下载完成后,文件会存储到本地指定的目录中。
    • 如果你只必要下载文件,而不必要上传,那么只用 sz 即可。

12 压缩、解压

在 Linux 体系中,文件的压缩和解压是非常常见的操作。以下是常用的压缩和解压工具及其利用方法:


  • 常见的压缩和解压工具
tar:用于打包和解压文件,通常结合 gzip 或 bzip2 利用。
gzip/gunzip:用于压缩和解压 .gz 文件。
bzip2/bunzip2:用于压缩和解压 .bz2 文件。
xz/unxz:用于压缩和解压 .xz 文件。
zip/unzip:用于压缩和解压 .zip 文件。
7z:用于压缩和解压 .7z 文件。

2. 利用 tar 举行打包和解压

2.1 打包文件
tar 命令重要用于将多个文件或目录打包成一个归档文件。
语法
  1. tar -cvf [打包后的文件名] [文件或目录]
复制代码
示例
打包目录 mydir 为 mydir.tar:
  1. tar -cvf mydir.tar mydir
复制代码
打包多个文件为 files.tar:
  1. tar -cvf files.tar file1 file2 file3
复制代码
2.2 打包并压缩
可以结合 gzip 或 bzip2,将打包的文件举行压缩。
语法
  1. tar -cvzf [压缩后的文件名] [文件或目录]
复制代码
示例
利用 gzip 压缩目录 mydir 为 mydir.tar.gz:
  1. tar -cvzf mydir.tar.gz mydir
复制代码
利用 bzip2 压缩目录 mydir 为 mydir.tar.bz2:
  1. tar -cvjf mydir.tar.bz2 mydir
复制代码
2.3 解压 tar 包
解压 tar 文件或压缩包时,利用以下命令:
语法
  1. tar -xvf [压缩包]
复制代码
示例
解压 mydir.tar:
  1. tar -xvf mydir.tar
复制代码
解压 mydir.tar.gz:
  1. tar -xvzf mydir.tar.gz
复制代码
解压 mydir.tar.bz2:
  1. tar -xvjf mydir.tar.bz2
复制代码
2.4 常用选项
选项功能-c创建打包文件-v显示具体信息-f指定打包的文件名-x解包文件-z利用 gzip
压缩/解压-j利用 bzip2
压缩/解压

  • 利用 gzip 和 gunzip 压缩/解压
3.1 压缩文件
gzip 用于将单个文件压缩为 .gz 文件。
语法
  1. gzip [文件名]
复制代码
示例
压缩 file.txt 为 file.txt.gz:
  1. gzip file.txt
复制代码
3.2 解压文件
gunzip 用于解压 .gz 文件。
语法
  1. gunzip [压缩文件]
复制代码
示例
解压 file.txt.gz:
  1. gunzip file.txt.gz
复制代码


  • 利用 bzip2 和 bunzip2 压缩/解压
4.1 压缩文件
bzip2 用于将单个文件压缩为 .bz2 文件。
语法
  1. bzip2 [文件名]
复制代码
示例
压缩 file.txt 为 file.txt.bz2:
  1. bzip2 file.txt
复制代码
4.2 解压文件
bunzip2 用于解压 .bz2 文件。
语法
  1. bunzip2 [压缩文件]
复制代码
示例
解压 file.txt.bz2:
  1. bunzip2 file.txt.bz2
复制代码

5. 利用 zip 和 unzip 压缩/解压

5.1 压缩文件
zip 用于将文件或目录压缩为 .zip 文件。
语法
  1. zip [压缩后的文件名] [文件或目录]
复制代码
示例
压缩 file.txt 为 file.zip:
  1. zip file.zip file.txt
复制代码
压缩目录 mydir 为 mydir.zip:
  1. zip -r mydir.zip mydir
复制代码
5.2 解压文件
unzip 用于解压 .zip 文件。
语法
  1. unzip [压缩文件]
复制代码
示例
解压 file.zip:
  1. unzip file.zip
复制代码
  1. unzip [-d] 参数
复制代码
-d,指定要解压去的位置,同tar的-C选项
参数,被解压的zip压缩包文件
  1. unzip test.zip,将test.zip解压到当前目录
  2. unzip test.zip -d /home/it,将test.zip解压到指定文件夹内(/home/it)
复制代码


  • 利用 7z 压缩/解压
6.1 压缩文件
7z 用于创建 .7z 格式的压缩文件。
语法
  1. 7z a [压缩后的文件名] [文件或目录]
复制代码
示例
压缩 file.txt 为 file.7z:
  1. 7z a file.7z file.txt
复制代码
压缩目录 mydir 为 mydir.7z:
  1. 7z a mydir.7z mydir
复制代码
6.2 解压文件
7z 也可以解压 .7z 文件。
语法
  1. 7z x [压缩文件]
复制代码
示例
解压 file.7z:
  1. 7z x file.7z
复制代码


  • 总结
工具操作命令tar打包文件tar -cvf archive.tar files/tar解包文件tar -xvf archive.targzip压缩文件gzip file.txt
gunzip解压 .gz
文件gunzip file.txt.gz
bzip2压缩文件bzip2 file.txt
bunzip2解压 .bz2
文件bunzip2 file.txt.bz2
zip压缩文件/目录zip -r archive.zip files/unzip解压 .zip
文件unzip archive.zip7z压缩文件7z a archive.7z files/7z解压 .7z
文件7z x archive.7z 通过以上工具和命令,您可以在 Linux 体系中灵活地举行文件的压缩和解压操作,满足不同的需求。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表