Xshell 执行 Linux 的相关指令操作

Xshell 执行 Linux 的相关指令操作

磁盘与内存查看指令

df:查看磁盘空间

用于显示文件系统的磁盘使用情况,包括总空间、已用空间、可用空间及挂载点。

  • 基本语法df [选项]
  • 常用选项
    • 无选项:默认以 1K 块为单位显示(可读性较低)。
    • -h:以“KB/MB/GB”等可读性良好的格式显示。

实例演示

  • 默认格式查看:

    [root@localhost /]# df
    文件系统                  1K-块     已用      可用  已用% 挂载点
    /dev/mapper/centos-root 17811456 1601848 16209608    9% /
    devtmpfs                  919504       0    919504    0% /dev
    tmpfs                     931624       0    931624    0% /dev/shm
    tmpfs                     931624    9732    921892    2% /run
    tmpfs                     931624       0    931624    0% /sys/fs/cgroup
    /dev/sda1                1038336  148536    889800   15% /boot
    tmpfs                     186328       0    186328    0% /run/user/0
    

    image

  • 可读性格式查看(-h):

    [root@localhost /]# df -h
    文件系统                  容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   17G  1.6G   16G    9% /
    devtmpfs                  900M     0  900M    0% /dev
    tmpfs                     910M     0  910M    0% /dev/shm
    tmpfs                     910M  9.5M  901M    2% /run
    tmpfs                     910M     0  910M    0% /sys/fs/cgroup
    /dev/sda1                1014M  145M  870M   15% /boot
    tmpfs                     182M     0  182M    0% /run/user/0
    

    image

free:查看内存使用情况

用于显示系统内存(物理内存、交换内存)的使用状态,包括总内存、已用内存、空闲内存等。

  • 基本语法free [选项]
  • 常用选项
    • 无选项:默认以 KB 为单位显示。
    • -h:以可读性良好的格式(KB/MB/GB)显示。
    • -m:以 MB 为单位显示。
    • -g:以 GB 为单位显示(因精度问题,不推荐日常使用)。

实例演示

  • 默认格式查看:

    [root@localhost /]# free
                  total        used        free      shared  buff/cache   available
    Mem:        1863252      147316      843772        9732      872164     1500700
    Swap:       2097148           0     2097148
    

    image

  • 可读性格式查看(-h):

    [root@localhost /]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:           1.8G        144M        823M        9.5M        851M        1.4G
    Swap:          2.0G          0B        2.0G
    

    image

  • 以 MB 为单位查看(-m):

    [root@localhost /]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1819         144         823           9         851        1465
    Swap:          2047           0        2047
    

    image

文件内容查看指令

head:查看文件前 N 行

默认显示文件前 10 行,可通过选项指定显示行数,适用于快速查看文件开头内容。

  • 基本语法head [选项] 文件名
  • 常用选项
    • 无选项:显示前 10 行。
    • -n N:显示前 N 行(N 为具体数字)。
    • -c N:显示前 N 个字节(了解即可,日常用较少)。

实例演示

  1. 准备测试文件:将网卡配置文件内容追加到 test.txt(执行 2 次以生成多行内容):

    [root@localhost test]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 >> test.txt
    [root@localhost test]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 >> test.txt
    

    image
    image

  2. 查看 test.txt 前 10 行(默认):

    [root@localhost test]# head test.txt
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    

    image

  3. 查看 test.txt 前 5 行(-n 5):

    [root@localhost test]# head -5 test.txt
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    

    image

tail:查看文件末 N 行/动态监听

默认显示文件末 10 行,核心功能是 动态监听文件变化(如日志实时更新)。

  • 基本语法tail [选项] 文件名
  • 常用选项
    • 无选项:显示末 10 行。
    • -n N:显示末 N 行。
    • -f:动态监听文件内容变化(文件更新时实时显示,按 Ctrl + C 退出)。

实例演示

  1. 查看 test.txt 末 10 行(默认):

    [root@localhost test]# tail test.txt
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=8a8125c4-f466-45af-b7d5-a22ae9280699
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.10.158
    NETMASK=255.255.255.0
    GATEWAY=192.168.10.2
    

    image

  2. 查看 test.txt 末 5 行(-n 5):

    [root@localhost test]# tail -5 test.txt
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.10.158
    NETMASK=255.255.255.0
    GATEWAY=192.168.10.2
    

    image

  3. 动态监听文件变化-f):

    • 步骤 1:在 Xshell 新建一个会话,执行 tail -f test.txt 启动监听。
    • 步骤 2:在原会话中编辑 test.txt(如追加内容 q\nq\nq\nchange)并保存。
    • 步骤 3:监听会话实时显示更新内容:
      [root@localhost test]# tail -f test.txt
      IPV6_DEFROUTE=yes
      IPV6_FAILURE_FATAL=no
      IPV6_ADDR_GEN_MODE=stable-privacy
      NAME=ens33
      UUID=8a8125c4-f466-45af-b7d5-a22ae9280699
      DEVICE=ens33
      ONBOOT=yes
      IPADDR=192.168.10.158
      NETMASK=255.255.255.0
      GATEWAY=192.168.10.2
      q
      q
      q
      change
      
      初始:
      image
      另一个里面更改:
      image
      在原来的链接中实时更新如下:
      image

less:分页查看大文件

以“一屏”为单位显示文件内容,支持翻页、搜索等交互操作,适用于查看大文件(避免一次性加载全部内容)。

  • 基本语法less 文件名
  • 核心交互操作
    操作键 功能说明
    Enter 向下滚动 1 行
    Space 向下滚动 1 屏
    b 向上滚动 1 屏
    :number 跳转到第 N 行(如 :5 跳转到第 5 行)
    /pattern 向后搜索关键字 pattern(如 /TYPE 搜索“TYPE”)
    ?pattern 向前搜索关键字 pattern
    q 退出查看

实例演示

  1. 分页查看 test.txt

    [root@localhost test]# less test.txt
    

    image
    image

  2. 跳转到第 5 行:在 less 界面输入 :5 并回车,直接定位到第 5 行内容:

    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no  # 第 5 行
    

    image
    image

  3. 搜索关键字“TYPE”:在 less 界面输入 /TYPE 并回车,高亮显示所有包含“TYPE”的行。
    image
    image

  4. 搜索关键字“TYPE”:在 less 界面输入 ?1 并回车,高亮显示所有包含“TYPE”的行。
    image
    image

wc:统计文件内容信息

用于统计文件的行数、单词数、字符数及最长行长度,是文本处理中常用的统计工具。

  • 基本语法wc [选项] 文件名
  • 常用选项
    选项 功能说明
    无选项 依次显示“行数 单词数 字符数 文件名”
    -l 仅统计行数
    -w 仅统计单词数
    -m 仅统计字符数
    -L 仅显示最长行的长度(字符数)

实例演示

test.txt 为例:

# 完整统计(行数 单词数 字符数 文件名)
[root@localhost test]# wc test.txt
  40  40 707 test.txt
# 仅统计行数
[root@localhost test]# wc -l test.txt
  40 test.txt
# 仅统计最长行长度
[root@localhost test]# wc -L test.txt
  41 test.txt
# 组合统计(行数、单词数、最长行长度)
[root@localhost test]# wc -lwL test.txt
  40  40  41 test.txt
# 仅统计字符数
[root@localhost test]# wc -m test.txt
 707 test.txt

image
image
image
image
image

时间与日历指令

date:查看/设置系统时间

用于读取或设置系统日期和时间,常用于日志记录、定期备份等场景(如按日期命名备份文件)。

  • 基本语法date [选项/格式]
  • 常用格式与选项
    格式/选项 功能说明
    无选项 显示当前完整时间(默认格式:2025年10月14日 星期二 23:24:07 CST
    +%Y-%m-%d+%F 显示日期(格式:2025-10-14
    +%T 显示时间(格式:23:25:17
    +%F %T 显示日期+时间(格式:2025-10-14 23:25:38
    -d "-N 单位" 显示 N 个单位前的时间(如 -d "-5 days" 显示 5 天前)
    -d "+N 单位" 显示 N 个单位后的时间(如 -d "+5 weeks" 显示 5 周后)
    • 时间单位:hours(小时)、days(天)、months(月)、years(年)、weeks(周),可省略复数形式(如 day 等同于 days)。

实例演示

# 显示当前完整时间
[root@localhost test]# date
2025年10月14日 星期二 23:24:07 CST

# 显示日期(格式:年-月-日)
[root@localhost test]# date +"%Y-%m-%d"
2025-10-14
[root@localhost test]# date +%F
2025-10-14

# 显示时间(格式:时:分:秒)
[root@localhost test]# date +%T
23:25:17

# 显示日期+时间
[root@localhost test]# date +"%F %T"
2025-10-14 23:25:38

# 显示 5 天前、5 天后、5 周后的时间
[root@localhost test]# date -d "-5 days"
2025年10月09日 星期四 23:27:09 CST
[root@localhost test]# date -d "+5 days"
2025年10月19日 星期日 23:27:13 CST
[root@localhost test]# date -d "+5 weeks"
2025年11月18日 星期二 23:27:17 CST

image
image
image
image
image
image

cal:查看日历

用于显示日历,支持当前月、近三月、整年、儒略日等多种格式,功能灵活。

  • 基本语法cal [选项] [日 [月 [年]]]
  • 常用选项
    选项 功能说明
    无选项 显示当前月日历(默认)
    -1--one 仅显示当前月(默认行为,可省略)
    -3--three 显示上个月、当月、下个月的日历
    -s--sunday 以周日作为一周的第一天
    -m--monday 以周一作为一周的第一天
    -j--julian 显示儒略日(一年中的第几天)
    -y--year 显示整年日历
    -V--version 显示版本信息
    -h--help 显示帮助信息

实例演示

# 显示当前月日历
[root@localhost test]# cal
      十月 2025     
日 一 二 三 四 五 六
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

# 显示近三月日历(上月、当月、下月)
[root@localhost test]# cal -3
      九月 2025         十月 2025         十一月 2025     
日 一 二 三 四 五 六  日 一 二 三 四 五 六  日 一 二 三 四 五 六
    1  2  3  4  5  6          1  2  3  4                   1  2
 7  8  9 10 11 12 13   5  6  7  8  9 10 11   3  4  5  6  7  8  9
14 15 16 17 18 19 20  12 13 14 15 16 17 18  10 11 12 13 14 15 16
21 22 23 24 25 26 27  19 20 21 22 23 24 25  17 18 19 20 21 22 23
28 29 30              26 27 28 29 30 31     24 25 26 27 28 29 30

# 以周一为一周第一天,显示近三月日历
[root@localhost test]# cal -3m
      九月 2025         十月 2025         十一月 2025     
一 二 三 四 五 六 日  一 二 三 四 五 六 日  一 二 三 四 五 六 日
    1  2  3  4  5  6          1  2  3  4                   1  2
 7  8  9 10 11 12 13   5  6  7  8  9 10 11   3  4  5  6  7  8  9
14 15 16 17 18 19 20  12 13 14 15 16 17 18  10 11 12 13 14 15 16
21 22 23 24 25 26 27  19 20 21 22 23 24 25  17 18 19 20 21 22 23
28 29 30              26 27 28 29 30 31     24 25 26 27 28 29 30

# 显示儒略日(十月 2025 的第 274 天到第 304 天)
[root@localhost test]# cal -j
      十月 2025     
日 一 二 三 四 五 六
        274 275 276 277
278 279 280 281 282 283 284
285 286 287 288 289 290 291
292 293 294 295 296 297 298
299 300 301 302 303 304

# 显示版本信息
[root@localhost test]# cal -V
cal, 来自 util-linux 2.23.2

image
image
image
image
image
image
image
image
image
image

进程与过滤指令

ps:查看进程状态

用于显示当前系统中的进程信息,包括进程 ID(PID)、父进程 ID(PPID)、进程状态、占用资源等,是进程管理的基础工具。

  • 基本语法ps [选项]
  • 常用选项
    选项 功能说明
    无选项 显示当前终端下的进程(精简信息)
    -e 显示系统中所有进程
    -f 显示进程的详细信息(UID、PID、PPID、启动时间等)
    -ef 组合选项,显示所有进程的详细信息(最常用)

实例演示

# 显示当前终端下的进程
[root@localhost test]# ps
  PID TTY          TIME CMD
 7265 pts/0    00:00:00 bash
 7538 pts/0    00:00:00 ps
![image](https://img2024.cnblogs.com/blog/3710463/202510/3710463-20251014164304759-1257176849.png)

# 显示所有进程的详细信息
[root@localhost test]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 21:39 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 21:39 ?        00:00:00 [kthreadd]
root          3      2  0 21:39 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 21:39 ?        00:00:00 [kworker/0:0H]
# ...(省略其他进程)
root       6779      1  0 21:39 ?        00:00:00 /usr/sbin/sshd -D
root       7159   6779  0 21:39 ?        00:00:01 sshd: root@pts/0
root       7265   7159  0 21:39 pts/0    00:00:00 -bash
root       7540   7265  0 23:34 pts/0    00:00:00 ps -ef

image

grep:文本过滤(关键字搜索)

用于在文件或命令输出中搜索匹配的关键字,支持模糊匹配、忽略大小写、递归搜索等,是 Linux 中最常用的过滤工具之一。

  • 基本语法grep [选项] "关键字" 文件名/命令输出
  • 常用选项
    选项 功能说明
    无选项 搜索包含关键字的行,区分大小写
    -i 忽略大小写搜索
    -c 仅统计匹配行的数量
    -n 显示匹配行的行号
    -r 递归搜索指定目录下的所有文件
    --include="*.后缀" 递归搜索时,仅匹配指定后缀的文件(如 --include="*.conf" 仅搜索 .conf 文件)

实例演示

  1. test.txt 中搜索包含“T”的行(区分大小写):

    [root@localhost test]# grep "T" test.txt
    

    image

  2. test.txttest1.txt 中搜索包含“T”的行,并显示行号(-n):
    image

    [root@localhost test]# grep -n "T" test1.txt test.txt
    

    image

  3. test.txt 中搜索包含“T”或“t”的行(忽略大小写,-i),并统计数量(-c):

    [root@localhost test]# grep -ic "T" test.txt
    

    image

  4. 递归搜索 /etc/ 目录下所有 .conf 文件中包含“port”的行(-r --include="*.conf"):

    [root@localhost test]# grep -r --include="*.conf" "port" /etc/
    

    image

|:管道操作符

不能单独使用,需结合其他指令,将左侧指令的输出作为右侧指令的输入,常用于“过滤”“二次处理”等场景(如 ps -ef | grep sshd 过滤 sshd 进程)。

实例演示

  1. 查找 sshd 进程是否开启(ps -ef 输出所有进程,grep sshd 过滤 sshd 相关进程):

    [root@localhost test]# ps -ef | grep sshd
    root       6779      1  0 21:39 ?        00:00:00 /usr/sbin/sshd -D
    root       7159   6779  0 21:39 ?        00:00:01 sshd: root@pts/0
    root       7562   7265  0 23:49 pts/0    00:00:00 grep --color=auto sshd
    

    image

  2. 统计 /tmp/test 目录下的文件总数(ls /tmp/test 列出文件,wc -l 统计行数):

    [root@localhost test]# ls /tmp/test | wc -l
    

    image

  3. 查看 /tmp/test 下包含“test”关键字的文件(ls -alht /tmp/test 列出详细文件,grep test 过滤):

    [root@localhost test]# ls -alht /tmp/test | grep test
    

    image

文件查找与压缩指令

which:查找指令绝对路径

用于查找指定指令的绝对路径(仅查找系统环境变量 PATH 中的指令),适用于确认指令是否安装及安装位置。

  • 基本语法which 指令名

实例演示

# 查找 ls 指令的绝对路径
[root@localhost test]# which ls
alias ls='ls --color=auto'  # ls 是别名,实际指向带颜色的 ls
	/usr/bin/ls  # ls 指令的绝对路径

image

whereis:查找指令及文档

除了查找指令绝对路径,还能查找指令对应的帮助文档(如 man 手册),功能比 which 更全面。

  • 基本语法whereis 指令名

实例演示

# 查找 ls 指令及文档位置
[root@localhost test]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz  # 指令路径 + man 手册路径

image

find:文件/目录查找

功能最强大的文件查找工具,支持按文件名、大小、类型、修改时间等多维度搜索,可递归查找目录下的所有文件。

  • 基本语法find 搜索路径 [选项] [搜索条件]
  • 常用选项与条件
    选项/条件 功能说明
    -name "文件名" 按文件名搜索(区分大小写,支持通配符 *
    -iname "文件名" 按文件名搜索(忽略大小写)
    -size [+/-]大小 按文件大小搜索(如 +1M 大于 1MB,-1M 小于 1MB,1M 等于 1MB)
    -type 类型 按文件类型搜索(f 普通文件,d 目录,l 链接文件)
    -mtime [+/-]N 按修改时间搜索(-N N 天内修改,+N N 天前修改)
    -ctime [+/-]N 按创建时间搜索(规则同 -mtime
    -atime [+/-]N 按访问时间搜索(规则同 -mtime

实例演示

  1. /tmp/test 下搜索 test.txt(精确匹配,-name):

    [root@localhost test]# find /tmp/test/ -name test.txt
    /tmp/test/test.txt
    

    image

  2. /tmp/test 下搜索 test.txtTest.txt(忽略大小写,-iname):

    [root@localhost test]# find /tmp/test/ -iname test.txt
    /tmp/test/test.txt
    /tmp/test/Test.txt
    

    image

  3. /etc 下搜索大于 1MB 的文件(-size +1M):

    [root@localhost test]# find /etc -size +1M
    /etc/udev/hwdb.bin
    /etc/selinux/targeted/active/policy.kern
    /etc/selinux/targeted/contexts/files/file_contexts.bin
    /etc/selinux/targeted/policy/policy.31
    

    image

  4. /tmp 下搜索目录(-type d):

    [root@localhost test]# find /tmp -type d
    /tmp
    /tmp/.X11-unix
    /tmp/.ICE-unix
    /tmp/.font-unix
    /tmp/test
    # ...(省略其他系统默认目录)
    

    image

  5. /tmp 下搜索 1 天内修改的文件(-mtime -1):

    [root@localhost test]# find /tmp -mtime -1
    /tmp
    /tmp/test
    /tmp/test/test.txt
    /tmp/test/test1.txt
    /tmp/test/Test.txt
    

    image

压缩/解压指令

Linux 常用压缩工具包括 zip/unzip(多文件压缩,跨平台)、gzip/gunzip(单文件压缩)、tar(打包+压缩),各工具适用场景不同。

zip/unzip:多文件压缩/解压(跨平台)

  • 特点:支持压缩多个文件/目录,兼容 Windows 系统,压缩率中等。
  • 安装:若系统未预装,执行以下命令安装:
    yum install zip.x86_64 unzip.x86_64 -y
    
  • 基本语法
    • 压缩:zip 压缩文件名.zip 待压缩文件1 待压缩文件2 ...
    • 解压:unzip 压缩文件名.zip

实例演示

# 压缩 test1.txt、test.txt、Test.txt 为 Test.zip
[root@localhost test]# zip Test.zip test1.txt test.txt Test.txt
  adding: test1.txt (deflated 3%)
  adding: test.txt (deflated 64%)
  adding: Test.txt (stored 0%)
[root@localhost test]# ls
test1.txt  test.txt  Test.txt  Test.zip

# 删除原文件,解压 Test.zip
[root@localhost test]# rm -rf test1.txt test.txt Test.txt
[root@localhost test]# unzip Test.zip
Archive:  Test.zip
  inflating: test1.txt
  inflating: test.txt
  extracting: Test.txt
[root@localhost test]# ls
test1.txt  test.txt  Test.txt  Test.zip

image
image

gzip/gunzip:单文件压缩/解压

  • 特点:仅支持压缩单个文件(无法压缩目录),压缩率较低,资源消耗小。
  • 基本语法
    • 压缩:gzip 待压缩文件名(压缩后生成 文件名.gz,原文件删除)
    • 解压:gunzip 压缩文件名.gz(解压后生成原文件,压缩包删除)
  • ** 其他 **:
    • bzip/bunzip:压缩单个文件,压缩比率较高,资源消耗相对较高
    • xz/unxz:压缩单个文件,压缩比率高,资源消耗高

实例演示

# 压缩 test1.txt、test.txt、Test.txt(生成 .gz 压缩包)
[root@localhost test]# gzip test1.txt test.txt Test.txt
[root@localhost test]# ls
test1.txt.gz  test.txt.gz  Test.txt.gz  Test.zip

# 解压 test1.txt.gz
[root@localhost test]# gunzip test1.txt.gz
[root@localhost test]# ls
test1.txt  test.txt.gz  Test.txt.gz  Test.zip

image
image

tar:打包+压缩(多文件/目录)

  • 特点:先将多个文件/目录“打包”成一个 .tar 文件,再通过 -z/-j/-J 选项结合 gzip/bzip/xz 压缩,支持解压到指定目录。
  • 基本语法
    功能 命令
    打包+gzip 压缩 tar -zcf 压缩包名.tar.gz 待打包文件/目录
    打包+bzip 压缩 tar -jcf 压缩包名.tar.bz2 待打包文件/目录
    打包+xz 压缩 tar -Jcf 压缩包名.tar.xz 待打包文件/目录
    解压到当前目录 tar -xf 压缩包名.tar.gz-x 表示解压,自动识别压缩格式)
    解压到指定目录 tar -xf 压缩包名.tar.gz -C 目标目录-C 指定路径)
    查看压缩包内容 tar -tf 压缩包名.tar.gz-t 表示列出内容)

实例演示

# 打包并 gzip 压缩 test.txt.gz、test1.txt.gz、Test.txt.gz 为 Test.tar.gz
[root@localhost test]# tar -zcf Test.tar.gz test.txt.gz test1.txt.gz Test.txt.gz
[root@localhost test]# ls
test1.txt.gz  test.txt.gz  Test.tar.gz  Test.txt.gz  Test.zip

# 解压 Test.tar.gz 到 /tmp/www 目录(需先创建 /tmp/www)
[root@localhost test]# mkdir -p /tmp/www
[root@localhost test]# tar -xf Test.tar.gz -C /tmp/www
[root@localhost www]# ls /tmp/www
test1.txt.gz  test.txt.gz  Test.txt.gz

image
image
image

posted @ 2025-10-14 17:13  Jing61  阅读(16)  评论(0)    收藏  举报