一、文件和目录操作
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
:显示创建过程中的详细信息。
示例:
-
创建一个名为 "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
-
创建一个名为 "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
-
递归地创建多级目录。例如,要创建一个名为
test3/20231127/0001
的目录结构:[root@svr96 Gavin]# mkdir -p test3/20231127/0001 [root@svr96 Gavin]# cd test3/20231127/0001
-
显示创建过程中的详细信息:
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
:强制删除,不进行任何确认提示。
示例:
-
删除一个名为 "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
-
强制删除多个文件
[root@svr96 doc]# ls test3 text.txt text2.txt [root@svr96 doc]# rm -f text.txt text2.txt
-
同时删除多个目录并进行提示:
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
-
强制递归地删除一个目录及其内容:
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
。
示例:
-
拷贝文件,默认会改变新文件的时间:
[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
-
拷贝文件,保留文件的原始权限、所有者和时间戳
[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
-
拷贝文件到新的目录,将 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
-
如果文件已存在则会提示是否覆盖?
[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
:显示移动/重命名过程中的详细信息。
示例:
-
将
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]#
-
移动并重命名文件
[root@svr96 test2]# mv text.txt texttext.txt [root@svr96 test2]# ls texttext.txt
-
递归地移动一个目录及其内容到目标目录
[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
其他显示系统信息的命令
-
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"
-
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
- 按CPU占用情况从大到小排序:
- 在
top
界面中按下Shift + P
键。
- 在
- 按内存占用情况从大到小排序:
- 在
top
界面中按下Shift + M
键。
- 在
- 指定排序列:
- 在
top
界面中按下F
键,然后根据提示输入相应的数字或字母来选择要排序的列。
- 在
- 显示完整的命令行:
- 在
top
界面中按下c
键。
- 在
- 切换显示单位:
- 在
top
界面中按下e
键,可以在不同的单位之间切换,如KB、MB、GB等。
- 在
- 隐藏闲置进程:
- 在
top
界面中按下i
键,可以隐藏闲置进程。
- 在
- 设置刷新时间间隔:
- 在启动
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>
提示符。然后,输入 quit
或 Ctrl + 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 0
或poweroff
:这些命令可以立即关机系统
重启 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!