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

Linux运维核心命令(入门)

1. Linux的目录结构

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

  • Linux常见目录结构(高亮部分常接触):

目录

作用

/bin

二进制命令所在的目录(普通命令 => 普通用户和超级管理员root)

/boot

系统引导程序所需要的文件目录,相当于Windows中的C盘

/dev

/device缩写,设备文件目录,磁盘,光驱 => /dev/sr0

/etc

系统配置文件目录,启动程序,几乎所有的软件都会把自己的配置文件安装在/etc中

/home

普通用户的家目录,默认用户数据存放目录,itheima账号 => /home/itheima文件夹

/lib

共享库文件和内核模块存放目录,软件安装、运行依赖库文件.a、.so文件

/mnt

临时挂载储存设备的挂载点,插入u盘、移动硬盘 => 先挂载 => /mnt中访问

/opt

第三方应用软件包, 安装qq、游戏、wps办公软件

/proc

process进程目录,操作系统运行时,进程信息和内核信息存放在这里

/root

Linux超级权限用户root的家目录,超级管理员root => /root

/sbin

和管理系统相关的命令,【超级管理员用】,s = super超级

/tmp

临时文件目录,这个目录被当作回收站使用

/usr

用户或系统软件应用程序目录,类似Windows中的Program files

  • 总结说明
家目录: /home:  普通用户的家目录, 默认会在此目录下, 根据用户名构建一个子目录, 作为该用户家目录/root:  超级管理员root用户的家目录用于放置Linux命令的目录:/bin :  用于放置操作Linux系统的普通命令 例如 创建文件 创建文件夹  查看文件 ..../sbin:  用于放置管理Linux系统的命令  例如: 重启服务器  关闭服务器 用于安装软件的位置: /opt: 一般在安装第三方软件的时候, 通常放置到/opt目录下/usr: 一般是软件默认安装的位置Linux系统各种配置文件目录: /etc设备信息放置的目录: /dev临时存储文件的目录: /tmp注意: 在Linux中目录结构是一个树形结构, 没有盘符的概念, 最顶级的为 / 表示根目录

2. Linux与目录相关命令

Linux目录的相关命令主要包括有pwd、ls、mkdir、cd、rmdir等, 如果把Linux的目录结构比作一个“文件柜”:

  • pwd = 当前在文件柜的哪一层抽屉(显示当前位置)
  • ls = 打开抽屉看看里面有什么(列出内容)
  • mkdir = 增加了一个新的抽屉(创建目录)
  • cd = 走进某个抽屉或文件夹(切换位置)
  • rmdir = 扔掉一个空文件夹(删除空目录)

2.1 终端说明

2.2 基本导航命令

2.2.1 定位与查看(pwd、ls)

pwd(print working directory):

  • 格式:pwd
  • 作用:查看当前所在位置

ls(list show):

  • 格式:ls [选项][路径]
  • 作用 :ls 是英文单词list show的简写, 其功能为列出目录的内容,是用户最常用的命令之一

ls常用选项

选项

含义

-a

all所有, 显示指定目录下所有子目录与文件, 包含隐藏文件

-l

list,以列表方式显示文件的详细信息

-h

配合 -l 以人性化的方式显示文件大小(文件大小 + 单位)

ls -l与ll显示信息说明:

2.2.2 七日换与目录结构(cd、tree)

cd(change directory):

  • 作用:更改当前的工作目录
  • 格式:

命令

含义

cd

切换到用户主目录(root用户主目录是/root,其他用户是/home/用户名)等价于 cd ~

cd 目录

切换到指定目录下 => cd /etc

cd ..

切换到上级目录

普及:路径有两种写法绝对路径 :从根目录一级一级向下移动,不能越级。如/home/itheima
例如:访问根目录下的usr目录下local目录下的nginx文件夹
cd /usr/local/nginx => 路径不需要记忆,用到的时候,直接按Tab键(自动补全)相对路径 :以当前位置作为参考
例如:当前路径为/usr/local,cd nginx即可进入/usr/local/nginx

tree:树形结构可视化辅助工具

  • 安装 tree 命令
dnf -y install tree
# 查看目录结构
tree /home

示例输出:

2.3 目录管理命令

2.3.1 创建目录(mkdir)

mkdir(make directory):

  • 作用:mkdir 命令用于创建目录
  • 格式:

mkdir [-p] dirName

参数:
-p:一次创建多级目录

2.3.2 删除空目录(rmdir)【了解】

作用:rmdir命令用于删除空目录

rmdir dirName

清屏命令: ctrl + l(好用)

2.4 综合练习

2.4.1 搭建一个【游戏存档】目录

任务

  1. 在根目录创建 game_saves 目录,进入它
  2. 创建子目录 level1level2backup
  3. backup 中创建 2023 和 2024 目录
  4. 删除 backup/2023,再尝试删除整个 game_saves(观察错误)

解答:

1. 在根目录创建 game_saves 目录,进入它
mkdir /game_saves
cd /game_saves2. 创建子目录 level1、level2、backup
mkdir level1 level2 backup3. 在 backup 中创建 2023 和 2024 目录
mkdir -p backup/2023 backup/20244. 删除 backup/2023,再尝试删除整个 game_saves(观察错误)
rmdir backup/2023
cd /
rmdir game_saves报错:rmdir: failed to remove 'game_saves': Directory not empty
注:rmdir只能删除空目录,game_saves里面还有目录,无法直接删除

2.4.2 搭建一个family目录

结构要求:

要求:用 tree 命令验证结构,最后删除整个目录(只用已学命令)。

解答:

mkdir -p family/parents/dad
mkdir -p family/parents/mom
mkdir -p family/children/son
mkdir -p family/children/daughter# 一条命令完成搭建
mkdir -p family/parents/{dad,mom} family/children/{son,daughter}
# 删除整个目录(非常麻烦,后面我们介绍简洁方便的删除方式)
rmdir family/parents/dad
rmdir family/parents/mom
rmdir family/children/son
rmdir family/children/daughter
rmdir family/parents
rmdir family/children
rmdir family

3. Linux与文件相关命令

3.1 文件操作命令

3.1.1 创建文件(touch)

作用:touch命令创建新文件

格式:touch 文件名

案例演示:

需求一: 在家目录下,创建一个hello.java
cd
touch hello.java需求二: 在家目录下,创建一个a.txt
cd
touch a.txt
注:touch命令不仅可以创建.txt文本文档,还可以创建python/java/go等脚本程序。如touch main.py

3.1.2 复制(cp)

作用:cp(copy)命令用来实现文件或者目录的复制

格式:cp [-r] 源文件位置... 目标路径

参数

说明

-r

递归,复制文件夹必须添加

需求一: 分别将家目录下的hello.java 和 a.txt 拷贝到 /usr/local
cd
cp hello.java /usr/local
cp a.txt /usr/local
或者
cp hello.java a.txt /usr/local需求二: 将/usr/local 这个目录 拷贝到家目录下(~/表示家目录)
cd /usr
cp -r local /root
cp -r local ~

3.2.3 移动(mv)

作用:mv(move)命令用于文件、目录的移动和重命名

格式:mv 源文件路径... 目标路径

注意:mv没有任何选项,移动文件和文件夹都可以

案例演示:

需求一: 将 /root目录下的disk.pl文件,移动到 /export/data 目录下
mkdir -p /export/data
cd ~
mv disk.pl /export/data需求二: 将 /export目录移动到 /root目录下
cd /
mv export ~

重命名:

需求: 将root用户家目录的a.txt文件, 更名为 test.txt
cd ~
mv a.txt test.txt需求二: 将test.txt 移动到 / 目录下,并改名 a.txt
cd ~
mv test.txt /
cd /
mv test.txt a.txt或者
cd ~
mv test.txt /a.txt

3.1.4 文件上传与下载

3.1.5 删除(rm)

格式:rm [选项] 文件/目录路径

选项

说明

-r

是否启动递归删除方案(适用于删除目录的时候)

-f

是否需要强制删除,如果不添加, 会有一个询问的操作

# 前面提及的简洁方便删除family文件
rm -rf family

3.1.6 文本查找相关命令(find)

作用: 用于查找文档

语法: find  路径范围 选项1 选项1的值  [选项2  选项2 的值…]

选项

说明

-name

按照文档名称进行搜索(支持模糊搜索)

* : 通配符,匹配任意个任意字符

-type

按照文档的类型进行搜索,文档类型的值,f(file)表示文件,d(directory)表示文件夹

-size

用于根据文件大小查找文件。格式为 [+/-]n[单位]

+ 和 - 前缀

  • +n:查找大于 n 的文件。
  • -n:查找小于 n 的文件。

单位说明:

  • c:字节(默认单位)
  • k:千字节(KB)
  • M:兆字节(MB)
  • G:吉字节(GB)
  • b:512字节块(不常用)

-mtime

用于根据文件的修改时间(modification time)来筛选文件,参数值是一个整数,表示天数

  • -mtime +n:查找修改时间超过 n 天前的文件
  • -mtime -n:查找修改时间在 n 天以内的文件
  • -mtime n:查找修改时间正好是 n 天前的文件

-exec

用于对 find 查找到的文件执行指定的命令. 它的语法比较特殊,需要用 {} 表示查找到的文件,并用 \; 结束命令

例如:

查找所有 .log 文件并删除

find /var/log -name "*.log" -exec rm -f {} \;

# 查询 在/usr/lib目录下大于100M的文件
find /usr/lib -size +100M -type f# 查询 在 /var/log下面 所有以 .log 结尾的文件
find /var/log -name "*.log" -type f# 查询 在 /var/log下面 所有以 .log 结尾的文件 并且文件大于10kb的
find /var/log -name "*.log" -size +10K -type f# 查询系统中,大于30天的文件或目录
find / -mtime +30# 查询 在 /var/log下面 所有以 .log 结尾的文件 并且文件大于10kb的  将查询到的内容执行删除操作find /var/log -name "*.log" -size +10K -type f -exec rm -rf {} \;# 查询 在/usr/lib目录下大于100M的文件 , 将并查询到的结果复制到/root目录下
find /usr/lib -size +100M -type f -exec cp {} /root \;

3.2 文件操作命令综合练习

3.2.1 日志文件管理与备份

某服务器日志目录 /var/log/app 需要定期清理和备份。要求:

  • 创建 6 个不同日期的日志文件(如 access_20251101.log、access_20251102.log ...)
  • 说明: 如何修改文件的最后时间
# 通过 touch -d 设置
touch -d "2023-10-01 12:34:56" example.txt说明: 表示将example.txt文件的最后修改时间为 2023-10-01 12:34:56
  • 将 3 天前的日志文件复制到 /backup/old_logs 目录
  • 删除 5 天前的日志文件

3.2.2 清理临时文件

某临时目录 /tmp/userdata 中存在大量临时文件(文件名包含 tmp_ 前缀),要求:

  • 查找所有 24 小时内修改过的 tmp_* 文件并移动到 /tmp/recent
  • 删除超过 30 天未修改的 tmp_* 文件
初始化数据:
# 创建 userdata目录
mkdir -p /tmp/userdata
cd /tmp/userdata
# 在目录下, 创建一些以tmp_开头的文件
touch tmp_01.txt
touch tmp_02.txt
touch tmp_03.txt
touch tmp_04.txt
touch tmp_05.txt
touch tmp_06.txt# 修改文件的最后修改时间, 以便于后续需求查询验证工作
touch -d '2025-11-01 15:00:00' tmp_01.txt
touch -d '2023-08-15 15:00:00' tmp_03.txt
touch -d '2026-03-01 15:00:00' tmp_05.txt
touch -d '2025-02-25 15:00:00' tmp_06.txt
# 需求一: 查找所有 24 小时内修改过的 tmp_* 文件并移动到 /tmp/recent
# 查找所有 24 小时内修改过的 tmp_* 文件
cd /tmp/userdata
find ./ -mtime -1 -type f -name 'tmp_*'
# 并移动到 /tmp/recent# 验证: 目标目录是否存在 如果没有先创建
mkdir -p /tmp/recent
# 执行移动操作:  mv 要移动的内容  目的地
find ./ -mtime -1 -type f -name 'tmp_*' -exec mv {} /tmp/recent \;
# 验证是否移动成功:
# 步骤一: 查看 /tmp/userdata 下 02 和 04 是否存在 【正常应该是不存在】
# 步骤二: 查看 /tmp/recent   下 02 和 04 是否存在 【正常应该是存在】

3.2.3 查找特定文件并归档

某服务器 /usr/lib 目录下可能存在遗留的大文件(超过 100MB),要求:

  • 查找所有大小超过 100MB 的文件。
# 检验: /usr/lib 是否存在 【存在】
# 需求实现
find /usr/lib -size +100M -type f#尝试校验:
ll -h 跟上find查询到文件路径,确认是否是大于100M

  • 将这些文件的路径记录到 /var/log/large_files.list。
注意: 目前, find目录执行完后, 直接将查询的结果, 输出到控制台, 
需求要求直接输出到一个文件中, 此时相当于要改变输出的方式此时, 一般要使用的就是一个新的命令, 重定向符号
> 和 >> :  重定向符号作用: 将执行的结果, 通过重定向符号, 直接输出到另一个地方> 覆盖>> 追加使用格式:  命令1 > 目的地注意: 输出的目的地文件如果不存在, 重定向会自己创建写法:   
find /usr/lib -size +100M -type f > /var/log/large_files.list表示将查询的结果, 通过重定向的符号,覆盖到 /var/log/large_files.list文件中

  • 将这些文件复制到 /archive/large_files 目录
# 验证: 复制的目的地是否存在,如果不存在, 需要先创建
mkdir -p /archive/large_files
# 执行
find /usr/lib -size +100M -type f -exec cp {} /archive/large_files \;#校验: 直接进入到 /archive/large_files 查看是否有大于100M文件复制过来
cd /archive/large_files/
ll -h

3.3 编辑文件(vi、vim)

vi是visual interface的简称,是Linux中最经典的文本编辑器(Windows中的记事本)

vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有编辑操作

vi的特点:

  • 只能是编辑文本内容, 不能对字体段落进行排版
  • 不支持鼠标操作
  • 没有菜单
  • 只有命令

vim 是从vi发展出来的文本编辑器,支持代码补全、编译及显示效果等方面编程的功能提别丰富,在程序员中被广泛使用,被称为编辑器之神。

在CentOS Stream 9系统中,我们可以通过dnf命令安装vim编辑器:

dnf -y install vim

3.3.1 打开文件

vi a.txt          # 直接打开文件
vim a.txt         # vim是vi的增强版
vim +10 a.txt     # 直接打开文件,并定位到第10行

vi/vim三种工作模式: 命令模式、插入模式(编辑模式)、末行模式(底行模式)

命令模式:复制、粘贴、移动光标、撤销与恢复

插入模式(编辑模式):只能编辑文件内容(写字)

底行模式(末行模式):保存文件、退出文件、显示行号、搜索关键词

3.3.2 命令模式

当我们通过vi/vim命令打开文件时,默认就处于命令模式

小技巧:进入vim编辑器,先查看左下角有没有提示信息,如果没有任何信息,代表你当前位于命令模式!

命令

功能

o

在当前行后面插入一空行

O

在当前行前面插入一空行

dd

剪切或删除光标所在行

ndd

从光标位置向下连续剪切或删除 n 行

yy

复制光标所在行

nyy

从光标位置向下连续复制n行

p

粘贴

u

撤销上一次命令,相当于Windows中的Ctrl + Z

gg

回到文件顶部

G

回到文件末尾

Ctrl + R

恢复,与u相对应

3.3.3 编辑模式

问题:如何进入编辑模式呢?

答:

         i在当前光标的前面插入内容

        a在当前光标的后面插入内容

        o在光标的后一行插入内容

       O在光标的前一行插入内容

问题:如何从编辑模式回到命令模式

答:按Esc

3.3.4 底行模式

核心重点记住3个字母即可,:w、:q、! :x

在Linux操作系统中,文件必须先保存后退出!

!叹号代表强制,强制保存、强制退出、强制保存并退出!

命令

功能

:w 文件

另存为

:w

保存(ctrl + s)

:q

退出, 如果没有保存,不允许退出

:q!

强行退出, 不保存退出

:wq

保存并退出

:x

保存并退出 【建议运维选择】

:set nu

设置行号,取消行号使用:set nonu

:%s/旧关键词/新关键词/g

文本替换

:noh

取消高亮

/关键词

搜索某一关键词

:wq和:x区别?

答:如果文件内容有改变,两者的效果是一样的。如果文件内容没有改变,:x不会改变文件的最后修改时间,但是:wq会更新文件的最后修改时间。

运维工程师,强烈推荐使用:x

3.3.5 编辑常见问题

        如果在打开某个文件时,弹出以上提示,那代表你这个文件之前没有保存就强制退出了,触发了Vim的备份机制,产生了一个.文件名称.swp交换文件。

以后每次打开之前的文件就会产生上面的提示,解决方案:

① 之前的修改不重要,可以直接删除的情况

  • 直接回车,切换到错误的底部,然后按q,直接退出,然后执行删除操作
rm  .源文件名称.swp

② 之前的修改很重要,需要先恢复内容,然后再解决报错问题

  • 第一步:直接回车,切换到错误的底部,找到回复菜单,一般是R,恢复文件内容
  • 第二步:针对找回的内容进行:x保存并退出
  • 第三步:删除刚才产生的交换文件
rm  .源文件名称.swp

3.4 文件查看命令

  • 1- cat命令【重要】
  • 作用:从上往下查看文件内容,一次性加载所有数据,适合小文件查看
  • 格式:   cat 文件
案例说明:
需求: 查看家目录中anaconda-ks.cfg文件
cat disk.pl
  •  2- more命令
  • 用于分页查看文件内容的命令
  • 格式:more  filename
进入文件后,可使用的相关操作:空格键:向下滚动一页。
Enter键:向下滚动一行。
b:向上翻页(可能不支持所有系统)。
q:退出查看案例:more disk.pl
    • 3- less命令【重要】
    • less 命令与 more 类似,但功能更强大,它允许用户向前和向后滚动文件,同时提供了更多的操作选项
    • 语法: less  filename
    进入文件后,可使用的相关操作:空格键:向下翻页。
    b:向上翻页。
    Page Up/Page Down:向上/向下滚动。 【通过方向键 上下来完成滚动】
    q:退出查看。
    /搜索词:搜索某个关键词,并跳转到该词的位置。 【可以检索操作】
    n:跳到下一个匹配的搜索结果。
    h:查看帮助信息案例演示:less disk.pl
    

    【退出操作】

    强制退出: ctrl + c (大多数)  ctrl + d (少数)其他退出方式:q  quit exit
    
    • 4- head命令【了解】
    • 作用:查看文件的前N行内容,默认显示前10行
    • 格式:head -N 文件
    N:  表示从前往后看N行案例说明:
    需求: 查看家目录中disk.pl文件的前10行
    head disk.pl需求: 查看家目录中disk.pl文件的前20行
    head -20 disk.pl
    
    • 5- tail命令【重要】
    • 作用: 用于从后往前看文件,并支持监控文件变化
    • 语法:tail -[N][f] 文件
    N:  表示从后往前看N行
    f: 是否持续显示文件末尾内容例如:tail -100 xx.log  查看某个文件最后100行的内容tail -f xx.log  实施查看该文件的输出内容tail -100f xx.log  默认显示文件末尾100行的内容,并实时监测最新的数据后期主要使用这个命令。 来查看系统运行的日志额外学习了一个小命令: echo   打印输出命令, 用于进行输出到控制台例如: 输出 111echo '111'
    
    • 6- wc命令
    • 作用: 用于统计文件或输入中的行数单词数字节数
    • 语法: wc [选项] [文件]

    选项

    说明

    -l

    统计行数(lines)

    -w

    统计单词数(words)

    -c

    统计字节数(bytes)

    -m

    统计字符数(characters)

    -L

    统计最长行的长度(length)

    • 7- grep命令
    • 作用: 在文件中直接找到包含指定信息的那些行,并把这些信息显示出来
    • 语法: grep 要查找的内容 文件名
    示例:grep network boot.log含义:在boot.log文件中,查找包含network的行grep network /var/log/*含义:在/var/log目录下的所有文件中,查找包含network的行扩充点: |
    如何打印|:  shift + 反斜杠按键    (英文模式下)| 表示管道符号格式: 命令1 | 命令2 | 命令3 ....作用: 将上一个命令的执行结果, 作为下一个命令的输入例如:cat a.txt b.txt | grep linux对cat执行结果,通过grep查询包含linux的行内容并不是所有的命令都支持管道符的
    

    http://www.dtcms.com/a/557089.html

    相关文章:

  • Redis_3_Redis介绍+常见命令
  • 企业实训|AI技术在产品研发领域的应用场景及规划——某央企汽车集团
  • linux系统移植过程中挂死问题分析
  • C++笔记:std::variant
  • day03(11.1)——leetcode面试经典150
  • 《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》---移动零,颜色分类
  • 视觉差网站制作百度站长统计
  • 求职专栏-【面试-自我介绍】
  • Chroma向量数据库详解:高效向量检索在AI应用中的实践指南
  • 【开题答辩全过程】以 风聆精酿啤酒销控一体系统的设计与实现为例,包含答辩的问题和答案
  • 二.docker安装与常用命令
  • 珠海网红打卡景点网站排名优化首页
  • 计算机网络Day01
  • QCES项目Windows平台运行指南
  • 多线程编程:条件变量、同步、竞态条件与生产者消费者模型
  • 怎么做高端品牌网站设计潍坊市住房和城乡建设网站
  • 哪个协会要做网站建设啊甘肃做网站哪家专业
  • springcloud : 理解Sentinel 熔断与限流服务稳定性的守护神
  • Webpack Tree Shaking 原理与实践
  • 一文讲透 npm 包版本管理规范
  • Qt 绘画 Widget 详解:从基础到实战
  • 【计算机网络】深入理解网络层:IP地址划分、CIDR与路由机制详解
  • 力扣3281. 范围内整数的最大得分
  • 力扣hot100----15.三数之和(java版)
  • 网站建设最重要的是什么什么是网站的主页
  • 影视传媒网站源码成华区建设局网站
  • 快速搭建网站 开源网络营销推广的目的是什么
  • 超越传统:大型语言模型在文本分类中的突破与代价
  • 【洛谷算题】顺序,分支,循环结构部分题目分享
  • Jmeter吞吐量控制器详解