学 Linux 这些命令必须要掌握
本文最后更新于 358 天前,如有失效请评论区留言。

一、文件和目录操作

ls:列出当前目录下的文件和子目录。

选项

ls 命令有多个参数,以下是一些常用的参数和它们的作用:

  • -l:以长列表格式显示文件详细信息,包括权限、所有者、大小等。
  • -a:显示所有文件和目录,包括以.开头的隐藏文件。
  • -h:以易读的方式显示文件大小,如使用 KB、MB 等单位。
  • -r:按照反序排列文件和目录。
  • -t:按照修改时间排序文件和目录,最新的文件会显示在前面。
  • -d:仅显示目录本身,而不是目录中的内容。
  • -R:递归地显示子目录中的文件和目录。
  • -i:显示文件的 iNode 号。
  • -F:在每个文件名后面添加一个标识符来表示文件类型。

常用的命令组合

  • ls -l:以长列表格式显示文件和目录的详细信息。

    [root@svr96 FBCN_app]# ls
    MQ                            back  defaultroot  export  logs             properties  src     uts_nfs  ??????.docx
    ProductFileuploading_host.sh  bin   doc          import  masteragreement  script      upload  xml
  • ls -lh:以易读的方式显示文件和目录的详细信息,文件大小使用KB、MB等单位。

    [root@svr96 FBCN_app]# ls -lh
    total 2.8M
    drwxrwxr-x  6 fbcn fbcn   59 May 16  2022 MQ
    -rw-rw-r--  1 fbcn fbcn 6.2K Jan  3  2020 ProductFileuploading_host.sh
    drwxr-xr-x  3 fbcn fbcn 336K May 25  2023 back
    drwxr-xr-x  2 fbcn fbcn  16K Nov 16 12:28 bin
    drwxr-xr-x  6 fbcn fbcn  284 Oct 13 14:13 defaultroot
    drwxr-xr-x  6 fbcn fbcn 152K May 25  2023 doc
    drwxr-xr-x  5 fbcn fbcn 4.0K Dec 25  2019 export
    drwxr-----  5 fbcn fbcn   82 Dec 31  2020 import
  • ls -ltr:按照修改时间的倒序显示文件和目录,并以长列表格式显示详细信息。

    [root@svr96 FBCN_app]# ls -ltr
    total 2816
    drwxr-xr-x  4 fbcn fbcn      52 May  9  2016 script
    drwxrwxr-x  2 fbcn fbcn       6 Aug  1  2018 masteragreement
    drwxrwxr-x  6 fbcn fbcn      61 Dec  4  2019 src
    drwxr-xr-x  5 fbcn fbcn    4096 Dec 25  2019 export
    -rw-rw-r--  1 fbcn fbcn    6323 Jan  3  2020 ProductFileuploading_host.sh
    -rw-rw-r--  1 fbcn fbcn 2190130 Jan 15  2020 ??????.docx
    drwxr-----  5 fbcn fbcn      82 Dec 31  2020 import
    drwxrwxr-x  6 fbcn fbcn      59 May 16  2022 MQ

cd:切换到指定目录。

  • cd -:切换到上一次所在的目录,方便在两个目录之间快速切换。

pwd:显示当前所在目录的路径。

[root@svr96 FBCN_app]# pwd
/workspace/uts2/FBCN_app

mkdir:创建新目录。

mkdir [选项] 目录名

选项:

  • -m, --mode=权限:设置所创建目录的权限。可以使用八进制或符号形式来指定权限值。
  • -p, --parents:递归地创建父级目录。如果父级目录不存在,会一并创建。
  • -v, --verbose:显示创建过程中的详细信息。

示例:

  1. 创建一个名为 "test" 的目录:mkdir test

    [root@svr96 doc]# mkdir test
    [root@svr96 doc]# ll
    total 0
    drwxr-xr-x 2 root root 10 Nov 27 17:41 test
  2. 创建一个名为 "test2" 的目录,并设置其权限为 777:mkdir -m 777 test2

    [root@svr96 doc]# mkdir -m 777 test2
    [root@svr96 doc]# ll
    total 0
    drwxr-xr-x 2 root root 10 Nov 27 17:41 test
    drwxrwxrwx 2 root root 10 Nov 27 17:42 test2
  3. 递归地创建多级目录。例如,要创建一个名为 test3/20231127/0001 的目录结构:

    [root@svr96 Gavin]# mkdir -p test3/20231127/0001
    [root@svr96 Gavin]# cd test3/20231127/0001
  4. 显示创建过程中的详细信息:mkdir -v test3

    [root@svr96 doc]# mkdir -v test3
    mkdir: created directory 'test3'

vi: 创建文件

vi 命令是linux 系统自带的文件编辑命令,

[root@svr96 doc]# vi text.txt
[root@svr96 doc]# ls
test  test2  test3  text.txt

rm:删除文件或目录。

rm [选项] 文件/目录

选项:

  • -i, --interactive:删除文件,在删除前进行交互式确认,提示用户确认删除操作。
  • -r, -R, --recursive:递归地删除目录及其内容。
  • -f, --force:强制删除,不进行任何确认提示。

示例:

  1. 删除一个名为 "text.txt" 的文件,与带参数 -i 效果一样,需要输入y/yes确认删除:rm text.txt

    [root@svr96 doc]# rm text.txt 
    rm: remove regular file 'text.txt'? y
    [root@svr96 doc]# ls
    test  test2  test3
  2. 强制删除多个文件

    [root@svr96 doc]# ls
    test3  text.txt  text2.txt
    [root@svr96 doc]# rm -f text.txt  text2.txt
  3. 同时删除多个目录并进行提示:rm -r test test2

    [root@svr96 doc]# rm -r test test2
    rm: remove directory 'test'? y
    rm: remove directory 'test2'? y
    [root@svr96 doc]# ls
    test3
  4. 强制递归地删除一个目录及其内容:rm -rf test3

    [root@svr96 doc]# rm -rf test3
    [root@svr96 doc]# ls
    [root@svr96 doc]# 

cp:复制文件或目录。

cp [选项] 源文件 目标文件/目录

选项:

  • -r, -R:递归地复制目录及其内容。
  • -f, --force:如果目标文件已存在,则强制覆盖。默认情况下 cp 等于 cp -i,也就是说 -f 可能不会生效
  • -i, --interactive:在复制前进行交互式确认,提示用户确认复制操作。
  • -p:保留文件的原始权限、所有者和时间戳。
  • -a, --archive:以归档模式复制文件,相当于同时指定 -dR --preserve=all

示例:

  1. 拷贝文件,默认会改变新文件的时间:

    [root@svr96 test]# cp text.txt text2.txt
    [root@svr96 test]# ll
    total 8
    -rw-r--r-- 1 root root 5 Nov 27 18:19 text.txt
    -rw-r--r-- 1 root root 5 Nov 27 18:23 text2.txt
  2. 拷贝文件,保留文件的原始权限、所有者和时间戳

    [root@svr96 test]# cp -p text.txt text3.txt
    [root@svr96 test]# ll
    total 12
    -rw-r--r-- 1 root root 5 Nov 27 18:19 text.txt
    -rw-r--r-- 1 root root 5 Nov 27 18:23 text2.txt
    -rw-r--r-- 1 root root 5 Nov 27 18:19 text3.txt
  3. 拷贝文件到新的目录,将 test 目录及其内容全部复制到 test2

    [root@svr96 doc]# cp -r test test2
    [root@svr96 doc]# cd test2
    [root@svr96 test2]# ls
    test

    如果只想将 test 下内容进行拷贝,不包括 test 目录本身,再目录后加/*

    [root@svr96 doc]# cp -r test/* test2
    [root@svr96 doc]# cd test2
    [root@svr96 test2]# ls
    text.txt  text2.txt  text3.txt
    
  4. 如果文件已存在则会提示是否覆盖?

    [root@svr96 test]# ls
    text.txt  text2.txt  text3.txt
    [root@svr96 test]# cp -f text.txt text2.txt 
    cp: overwrite 'text2.txt'? 

    但是我们发现 -f 没有生效,是因为 linux 下 cp 的别名等于 cp -i,即默认就会进行提示,可以使用 \cp 来代替

    [root@svr96 test]# \cp  text.txt text2.txt 
    [root@svr96 test]# ls
    text.txt  text2.txt  text3.txt

mv:移动或重命名文件或目录。

mv [选项] 源文件/目录 目标文件/目录

选项:

  • -i, --interactive:在移动/重命名前进行交互式确认,提示用户确认操作。
  • -f, --force:如果目标文件已存在,则强制覆盖。
  • -v, --verbose:显示移动/重命名过程中的详细信息。

示例:

  1. text.txt 的文件移动到test2目录中

    [root@svr96 test]# mv text.txt ../test2/
    [root@svr96 test]# ls
    text2.txt  text3.txt
    [root@svr96 test]# cd ../test2
    [root@svr96 test2]# ls
    text.txt
    [root@svr96 test2]#
  2. 移动并重命名文件

    [root@svr96 test2]# mv text.txt texttext.txt
    [root@svr96 test2]# ls
    texttext.txt
  3. 递归地移动一个目录及其内容到目标目录

    [root@svr96 doc]# mv test/ test2/
    [root@svr96 doc]# ls
    test2  test3
    [root@svr96 doc]# cd test2/
    [root@svr96 test2]# ls
    test  texttext.txt

find:根据条件查找文件。

find [path] [expression]

  • [path]:指定要搜索的目录或路径。
  • [expression]:指定搜索的条件和选项。

1. 根据名称搜索 -name

使用 -name 选项可以根据文件名进行搜索。可以使用通配符来进行模糊搜索。

  • 在当前目录及其子目录中搜索所有以 .txt 结尾的文件:
[root@svr96 doc]# find . -name "*.txt"
./test2/texttext.txt
./test2/test/text2.txt
./test2/test/text3.txt

2. 根据大小搜索 -size

使用 -size 选项可以根据文件大小进行搜索。可以使用 +- 前缀来指定大于或小于特定大小的文件。

  • 在当前目录及其子目录中搜索大于 5MB 的文件:
[root@svr96 Gavin]# find . -type f -size +5M
./vuepress/docs/.vuepress/.cache/deps/echarts.js.map
./vuepress/node_modules/esbuild/bin/esbuild
./vuepress/node_modules/esbuild-linux-64/bin/esbuild
./vuepress/node_modules/echarts/dist/echarts.esm.js.map
./vuepress/node_modules/echarts/dist/echarts.js.map
./vuepress/node_modules/mermaid/dist/mermaid.js
./vitepress/node_modules/@esbuild/linux-x64/bin/esbuild
./vitepress/node_modules/esbuild/bin/esbuild

3. 根据时间搜索 -mtime

使用 -mtime-atime-ctime 选项可以根据文件的修改时间、访问时间或元数据改变时间进行搜索。可以使用 +- 前缀来指定相对天数。

  • 在当前目录及其子目录中搜索最近 30 天内修改过的文件:
[root@svr96 Gavin]# find . -type f -mtime -30
./vitepress/docs/busilogic/insur/banca.md
./vitepress/docs/busilogic/QD/qdQuota.md
./vitepress/docs/guide/infrastructure/auditTrail.md
./vitepress/vitepress.log
./doc/test2/texttext.txt
./doc/test2/test/text2.txt
./doc/test2/test/text3.txt

4. 组合搜索命令

我们还可以将上述搜索方式进行组合使用

  • 在当前目录及其子目录中搜索最近 30 天内修改过的以 .txt 结尾的文件
[root@svr96 Gavin]# find . -type f -mtime -30 -name "*.txt"
./doc/test2/texttext.txt
./doc/test2/test/text2.txt
./doc/test2/test/text3.txt
[root@svr96 Gavin]# 

二、系统信息和进程管理

uname:显示系统信息

uname - 该命令用于获取系统相关信息,可以使用不同的选项来获取不同的信息。例如:

  • -a:显示所有可用的系统信息。
  • -s:显示内核名称。
  • -r:显示内核发布版本。
  • -v:显示内核发布说明。
[root@svr96 Gavin]# uname -a
Linux svr96 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

其他显示系统信息的命令

  1. cat /etc/os-release 该命令用于查看操作系统版本和其他相关信息。

    [root@svr96 Gavin]# cat /etc/os-release
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:7"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"
    
    CENTOS_MANTISBT_PROJECT="CentOS-7"
    CENTOS_MANTISBT_PROJECT_VERSION="7"
    REDHAT_SUPPORT_PRODUCT="centos"
    REDHAT_SUPPORT_PRODUCT_VERSION="7"
  2. hostnamectl 该命令用于查看主机名和系统配置信息

    [root@svr96 Gavin]# hostnamectl
      Static hostname: svr96
            Icon name: computer-server
              Chassis: server
           Machine ID: 4b4e24839f9e46a4a86c6317fc6a26ba
              Boot ID: 34161120aff1412aa08b1ab55f60ad07
     Operating System: CentOS Linux 7 (Core)
          CPE OS Name: cpe:/o:centos:centos:7
               Kernel: Linux 3.10.0-957.27.2.el7.x86_64
         Architecture: x86-64
    [root@svr96 Gavin]#

df:显示所有磁盘空间使用情况。

-h 以人类可读的方式显示

[root@svr96 Gavin]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda4        50G   47G  3.2G  94% /
devtmpfs        7.7G     0  7.7G   0% /dev
tmpfs            13G  4.0G  9.1G  31% /dev/shm
tmpfs           7.7G   19M  7.7G   1% /run
tmpfs           7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/sda2      1014M  176M  839M  18% /boot
/dev/sda1       200M   12M  189M   6% /boot/efi
/dev/sda5        11T  156G   11T   2% /home
tmpfs           1.6G     0  1.6G   0% /run/user/0
tmpfs           1.6G     0  1.6G   0% /run/user/1001
tmpfs           1.6G     0  1.6G   0% /run/user/1002

du:计算目录的磁盘使用情况。

du [path] 查看指定目录的磁盘使用情况

[root@svr96 ~]# du /home/Gavin/doc/
0   /home/Gavin/doc/test3/20231127/001
0   /home/Gavin/doc/test3/20231127
0   /home/Gavin/doc/test3
8   /home/Gavin/doc/test2/test
12  /home/Gavin/doc/test2
12  /home/Gavin/doc/

按时间显示

[root@svr96 doc]# du --time
0   2023-11-27 18:07    ./test3/20231127/001
0   2023-11-27 18:07    ./test3/20231127
0   2023-11-27 18:07    ./test3
8   2023-11-30 10:34    ./test2/test
12  2023-11-30 10:37    ./test2
12  2023-11-30 10:37    .

按大小显示

[root@svr96 doc]# du -ah | sort -rh
12K ./test2
12K .
8.0K    ./test2/test
4.0K    ./test2/texttext.txt
4.0K    ./test2/test/text3.txt
4.0K    ./test2/test/text2.txt
0   ./test3/20231127/001
0   ./test3/20231127
0   ./test3

top:实时显示系统资源的使用情况

在 linxu 下排查问题需要掌握该命令,包括查询进程列表和 CPU、内存占用等

基本使用

输入 top 后会进行交互模式,然后可以输入下面这些命令来显示具体信息

[root@svr96 doc]# top
top - 12:04:47 up 21 days, 26 min,  2 users,  load average: 0.12, 0.24, 0.23
Tasks: 308 total,   1 running, 307 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 98.7 id,  1.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15633.5 total,    180.6 free,   1965.1 used,  13487.8 buff/cache
MiB Swap:   7936.0 total,   7690.2 free,    245.8 used.   9383.1 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                        
192494 root      20   0    0.0p   0.0p   0.0p R   0.7  0.0   0:00.54 top                                                            
 14517 fbcn      20   0    0.0p   0.0p   0.0p S   0.3  3.8  72:39.04 java                                                           
 14592 oracle    20   0    0.0p   0.0p   0.0p S   0.3  0.1   1:34.78 orac
  1. 按CPU占用情况从大到小排序:
    • top界面中按下Shift + P键。
  2. 按内存占用情况从大到小排序:
    • top界面中按下Shift + M键。
  3. 指定排序列:
    • top界面中按下F键,然后根据提示输入相应的数字或字母来选择要排序的列。
  4. 显示完整的命令行:
    • top界面中按下c键。
  5. 切换显示单位:
    • top界面中按下e键,可以在不同的单位之间切换,如KB、MB、GB等。
  6. 隐藏闲置进程:
    • top界面中按下i键,可以隐藏闲置进程。
  7. 设置刷新时间间隔:
    • 在启动top时,可以使用 -d 参数来设置刷新的时间间隔(单位为秒),例如 top -d 5 表示每5秒刷新一次。

命令组合

查看CPU占用前20的进程

top -bn1 -o %CPU -c | head -n 27

这个命令的含义是:

  • top:启动top命令。
  • -bn1:以非交互模式运行一次,并在运行完后退出。
  • -o %CPU:按照CPU占用情况进行排序。
  • -c:显示完整的命令行。
  • |:管道操作符,将top的输出传递给下一个命令。
  • head -n 27:为什么是27,选择前27行(包括基本信息空行和标题的前20个进程),即CPU占用前20的进程

查看内存占用前10的进程:

top -bn1 -o %MEM | head -n 17

这个命令的含义是:

  • top -bn1 -o %MEM:再次以非交互模式运行一次top命令,并按照内存占用进行排序。
  • |:管道操作符,将第一个top的输出传递给下一个命令。
  • head -n 17:选择前17行,包括基本信息和内存占用前10的进程。

ps:显示运行中的进程列表

查看系统中所有进程:

使用 ps aux 命令可以列出当前系统中所有的进程,包括守护进程、用户级别进程等

[root@svr96 ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0 191516  3964 ?        Ss   Nov09   5:41 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    Nov09   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Nov09   0:04 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    Nov09   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    Nov09   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    Nov09   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    Nov09   4:43 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S    Nov09   0:00 [lru-add-drain]

查找特定进程:

使用 ps -ef | grep [process_name] 可以根据进程名字进行检索,例如搜索 java 应用

[root@svr96 ~]# ps -ef | grep java
root       5859   5712  0 14:46 pts/1    00:00:00 grep --color=auto java
fbcn      14517  14458  0 Nov16 ?        01:13:13 /usr/local/jdk1.7.0_79/bin/java -client -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.Name=FUBON_APP_GS -Djava.security.policy=/workspace/weblogic/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.security.SSL.trustedCAKeyStore=/workspace/weblogic/wlserver_10.3/server/lib/cacerts -Dfile.encoding=GBK -Xverify:none -Dweblogic.codeset=GBK -Djava.security.egd=file:/dev/./urandom -Dweblogic.utils.http.maxParameters=50000 -Dweblogic.Chunksize=65536 -Dweblogic.utils.io.chunkpoolsize=65536 -Xverify:none -da -Dplatform.home=/workspace/weblogic/wlserver_10.3 -Dwls.home=/workspace/weblogic/wlserver_10.3/server -Dweblogic.home=/workspace/weblogic/wlserver_10.3/server -Dweblogic.management.discover=false -Dweblogic.management.server=http://localhost.localdomain:7001 -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/workspace/weblogic/patch_wls1036/profiles/default/sysext_manifest_classpath:/workspace/weblogic/patch_ocp371/profiles/default/sysext_manifest_classpath -Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic1 weblogic.Server

kill:终止指定进程。

显示可用的信号列表。

  • kill -l显示系统支持的所有信号名称和对应的编号。

    [root@svr96 ~]# kill -l
    1) SIGHUP     2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
    6) SIGABRT    7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
    11) SIGSEGV   12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
    16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
    21) SIGTTIN   22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
    26) SIGVTALRM 27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
    31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
    38) SIGRTMIN+4    39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
    43) SIGRTMIN+9    44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
    48) SIGRTMIN+14   49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
    53) SIGRTMAX-11   54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
    58) SIGRTMAX-6    59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
    63) SIGRTMAX-1    64) SIGRTMAX    

终止指定PID的进程

kill PID

[root@svr96 ~]# kill 14517

强制终止指定 PID 的进程

kill -SIGNAL PID:SIGNAL就是指系统支持的信号编号,强制终止信号SIGKILL,其信号编号为9

[root@svr96 ~]# kill -9 14517

三、网络相关

一般会用来测试网络是否联通,与其他服务器是否联通

ping:测试与指定主机的连通性。

ping [选项] 目标主机

选项

  • -c count:指定发送请求的次数。
  • -i interval:设置发送请求的时间间隔(单位为秒)。
  • -w deadline:设置超时时间(单位为秒),在此时间内如果没有收到回复,则停止发送请求。
  • -v:详细显示每个请求的输出信息。

示例

www.baidu.com 发送 4 个请求,每个请求之间间隔 1 秒

[root@svr96 ~]# ping -c 4 -i 1 www.baidu.com
PING www.a.shifen.com (153.3.238.102) 56(84) bytes of data.
64 bytes from 153.3.238.102 (153.3.238.102): icmp_seq=1 ttl=52 time=9.47 ms
64 bytes from 153.3.238.102 (153.3.238.102): icmp_seq=2 ttl=52 time=9.55 ms
64 bytes from 153.3.238.102 (153.3.238.102): icmp_seq=3 ttl=52 time=9.63 ms
64 bytes from 153.3.238.102 (153.3.238.102): icmp_seq=4 ttl=52 time=9.64 ms

--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 9.476/9.576/9.642/0.119 ms

ifconfig:显示或配置网络接口信息

ifconfig [网络接口] [选项]

显示 em2 网卡信息

[root@svr96 ~]# ifconfig em2
em2: flags=4099[UP,BROADCAST,MULTICAST]  mtu 1500
        ether 14:18:77:6f:b9:9e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19 

网络连接、端口查找等

查看信息

netstat 命令(已被 ss 命令取代):

-t 参数表示只显示 TCP 连接,-u 表示只显示 UDP 连接,-l 表示只显示监听状态下的连接,-n 表示以数字形式显示端口号

[root@svr96 ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 10.3.1.96:3600          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3601            0.0.0.0:*               LISTEN     
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN 

或者使用 ss -tuln

查看指定端口

1、netstat -tuln |grep 端口号

[root@svr96 ~]# netstat -tuln |grep 3600
tcp        0      0 10.3.1.96:3600          0.0.0.0:*               LISTEN  

2、ss -tuln | grep 端口号

[root@svr96 ~]# ss -tuln |grep 3600
tcp    LISTEN     0      128    10.3.1.96:3600                  *:* 

3、lsof -i :[port] 查看指定端口

[root@svr96 ~]# lsof -i :3600
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    150294 root   23u  IPv4 210025      0t0  TCP svr96:trap-daemon (LISTEN)

终止指定端口进程

1、方式一:首先通过 lsof 查看端口,找到对应的 PID ,然后使用 kill 杀掉该进程

2、方式二:sudo kill $(sudo lsof -t -i:端口号)

[root@svr96 ~]# sudo kill $(sudo lsof -t -i:3600)
[root@svr96 ~]# lsof -i :3600
[root@svr96 ~]#

telnet 测试网络连接

telnet [选项] 主机地址 [端口号]

主机地址是要连接的远程主机的 IP 地址或域名。端口号是可选的,如果未指定,默认为 23(标准 Telnet 端口)

[root@svr96 vitepress]# telnet 10.2.3.224 8130
Trying 10.2.3.224...
Connected to 10.2.3.224.
Escape character is '^]'.

当显示 Connected to,即表示连接成功

默认情况下,telnet 使用 Ctrl + ] 作为逃脱字符。按下 Ctrl + ] 后,会显示 telnet> 提示符。然后,输入 quitCtrl + D 命令来关闭连接并退出 telnet

curl 发送和接收数据

curl [选项] [URL]

选项

  • -X, --request [method]:指定使用的 HTTP 方法,如 GET、POST、PUT 等。
  • -H, --header [header]:添加自定义的 HTTP 头部信息。
  • -d, --data [data]:发送 POST 请求时附带的数据。
  • -o, --output [file]:将响应输出保存到指定的文件。
  • -I, --head:仅请求并显示响应头部信息。
  • -L, --location:跟随重定向。

示例

1、get 请求,就会返回一个百度首页的html

curl -X GET https://www.baidu.com

2、post 请求

curl -X POST -H "Content-Type: application/json" -d '{"key1": "value1", "key2": "value2"}' https://www.example.com/api

也可以将报文提前保存在 文件中,然后指定文件发送

curl -X POST -d @data.json https://www.example.com/api

四、压缩和解压缩

tar:打包文件或目录。

tar 命令有许多参数可以用于不同的操作和配置。以下是一些常见的 tar 命令参数:

  • -c, --create:创建一个新的归档文件。
  • -x, --extract:从归档文件中提取文件。
  • -v, --verbose:显示详细的处理信息。
  • -f, --file [归档文件]:指定归档文件的名称。
  • -z, --gzip:使用 gzip 进行压缩或解压缩。
  • -j, --bzip2:使用 bzip2 进行压缩或解压缩。
  • -t, --list:列出归档文件中的内容。
  • -r, --append:将文件追加到现有的归档文件中。
  • -u, --update:仅将较新的文件追加到归档文件中。
  • -d, --directory [目录]:切换到指定目录后再执行操作。
  • -C [目录]:在指定目录中进行操作,但不切换到该目录。

命令也很好记,压缩时,就用 -cf,解压时就用 -xf,至于其他选项看自己需要

压缩

创建 tar 归档文件

[root@svr96 test2]# tar -cvf testtar.tar text2.txt text3.txt texttext.txt 
text2.txt
text3.txt
texttext.txt
[root@svr96 test2]# ls
testtar.tar  text2.txt  text3.txt  texttext.txt

创建 gzip 压缩的 tar 归档文件

[root@svr96 test2]# tar -czvf testtar2.tar text2.txt text3.txt texttext.txt 
text2.txt
text3.txt
texttext.txt
[root@svr96 test2]# ls
testtar.tar  testtar2.tar  text2.txt  text3.txt  texttext.txt

解压

解压缩 tar 归档文件

[root@svr96 test2]# ls
testtar.tar  testtar2.tar
[root@svr96 test2]# tar -xvf testtar.tar
text2.txt
text3.txt
texttext.txt
[root@svr96 test2]# ls
testtar.tar  testtar2.tar  text2.txt  text3.txt  texttext.txt

解压缩 gzip 压缩的 tar 归档文件,并指定文件的路径

[root@svr96 test3]# tar -xzvf ../test2/testtar2.tar
text2.txt
text3.txt
texttext.txt
[root@svr96 test3]# ls
20231127  text2.txt  text3.txt  texttext.txt

zip:跨平台压缩和解压文件

zip 压缩文件通常以 .zip 扩展名结尾,可以在Windows和Linux等多个操作系统中进行压缩和解压缩

[root@svr96 test2]# zip testzip.zip text2.txt  text3.txt  texttext.txt
  adding: text2.txt (stored 0%)
  adding: text3.txt (stored 0%)
  adding: texttext.txt (stored 0%)
[root@svr96 test2]# ls
testzip.zip  text2.txt  text3.txt  texttext.txt

linux 使用 zip 压缩的文件可以拿到 windows 下进行解压

unzip:解压缩 ZIP 文件

[root@svr96 test3]# unzip ../test2/testzip.zip 
Archive:  ../test2/testzip.zip
 extracting: text2.txt               
 extracting: text3.txt               
 extracting: texttext.txt            
[root@svr96 test3]# ls
20231127  text2.txt  text3.txt  texttext.txt

五、文件内容操作

这里一般还涉及 vi 编辑器相关的操作,暂时不展开说明

下面是一些常用的文件查看操作

  • cat:将文件内容输出到标准输出。
  • more:分页显示文件内容。
  • less:与 more 类似,但可以向前滚动。
  • head:显示文件的开头几行。
  • tail:显示文件的末尾几行。
  • grep:根据关键词搜索文件内容。

六、系统关机、重启相关:

关机 shutdown:

  • shutdown:使用 shutdown 命令可以安全地关闭系统。例如,sudo shutdown now 可以立即关机。
  • init 0poweroff:这些命令可以立即关机系统

重启 reboot:

  • reboot:使用 reboot 命令可以重启系统。例如,sudo reboot 可以立即重启系统。
  • init 6 也可以立即重启系统

定时关机或重启:

  • shutdown -h +10:此命令将在当前时间的10分钟后关机

    [root@svr96 ~]# shutdown -h +10
    Shutdown scheduled for Thu 2023-11-30 15:23:29 CST, use 'shutdown -c' to cancel.
    [root@svr96 ~]# 
    Broadcast message from root@svr96 (Thu 2023-11-30 15:13:29 CST):
    
    The system is going down for power-off at Thu 2023-11-30 15:23:29 CST!
  • shutdown -r +30 "System will restart":此命令将在当前时间的30分钟后重启系统,并显示消息 "System will restart"。

取消关机或重启计划:

  • shutdown -c:使用此命令取消之前设置的关机或重启计划

    [root@svr96 ~]# shutdown -c
    
    Broadcast message from root@svr96 (Thu 2023-11-30 15:13:49 CST):
    
    The system shutdown has been cancelled at Thu 2023-11-30 15:14:49 CST!
版权声明:除特殊说明,博客文章均为Gavin原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇