Linux的实用技巧——终端安全会话、命令提示工具安装使用、端口连通性测试与rm命令无法使用解决方案

一、Linux终端多任务下如何实现后台安全运行会话

1.1、tmux是什么

tmux是一款Linux的终端复用器,它可以让你在一个终端中同时管理多个会话、窗口和面板(即使断开了SSH连接,里面的程序也能继续运行)主要价值是【会话保活、多面板与窗口管理;解决终端断开、多任务切换痛点】。

bash 复制代码
#红帽系系统安装tmux命令
yum install tmux -y

1.2、tmux工具的结构与使用场景

|--------|-----------------|----------------------------|
| 序号 | tmux工具的结构 | 说明 |
| 1 | 会话(session) | 是tmux的独立运行环境,一个会话可以包含多个窗口。 |
| 2 | 窗口(window) | 类似浏览器的标签页,一个窗口可以分割为多个面板。 |
| 3 | 面板(pane) | 窗口内的分屏,如上下、左右分割的区域。 |
[tmux工具的结构]

|--------|---------------|--------------------------------------------------------------------------------------|
| 序号 | tmux使用场景 | 说明 |
| 1 | SSH连接远程工作 | 可用tmux创建的新会话运行一些耗时的任务(如:源码编译、数据处理等操作)即使SSH断开连接,执行中的任务也不会中断,重新使用【tmux attach】连接后即可恢复。 |
| 2 | 多任务并行 | 每个面板可以执行不同的任务(如:一个面板运行服务、一个面板查看日志、一个面板执行命令)而不用切换多个终端窗口。 |
| 3 | 协作开发 | 可通过【tmux attach -t 共享会话名称】实现多个人操作同一个终端会话。 |
[tmux工具的典型使用场景]

1.3、tmux的使用方法

bash 复制代码
#tmux的常用命令
#1-创建新会话
tmux new -s 会话名称

#2-退出当前会话(即:只是断开与会话的连接,但是会话会在内存中继续运行)
前缀键【ctrl+b】后再按下【d】即可

#3-列出所有正在运行中的会话
tmux ls

#4-重新连接到指定会话
tmux attach-sessio -t 会话名称

#5-切换会话(在不同会话间切换)
tmux switch-client -t 会话名称

#6-彻底关闭指定会话
tmux kill-session -t 会话名称

|--------|-----------------|----------------------|
| 序号 | tmux的窗口管理按键 | 说明 |
| 1 | c | 创建新窗口 |
| 2 | w | 列出所有窗口(可使用上下左右方向键切换) |
| 3 | n | 切换到下一个窗口 |
| 4 | p | 切换到上一个窗口 |
| 5 | & | 需确认的关闭当前窗口 |
| 6 | , | 重命名当前窗口 |
[tmux的窗口管理【前缀键(ctrl+b)+如下按键】]

|--------|-----------------|-----------------|
| 序号 | tmux的面板管理按键 | 说明 |
| 1 | % | 垂直分割面板(分为左右) |
| 2 | " | 水平分割面板(分为上下) |
| 3 | 方向键【↑↓←→】 | 切换到对应面板上 |
| 4 | z | 最大化/还原当前面板 |
| 5 | x | 关闭当前面板 |
| 6 | 空格键 | 切换面板布局(如:平铺、堆叠) |
[tmux的面板管理【前缀键(ctrl+b)+如下按键】]

二、Linux端口与命令提示

2.1、端口连通性测试

bash 复制代码
#端口连通性测试
#1-tcp协议端口连通性测试命令【telnet只能用于测试tcp协议的端口】
telnet ip port

#2-udp协议端口连通性测试命令【netcat【nc】可用于测试tcp与udp协议的端口】
nc -Z -V -u ip port


#3-tcp端口扫描
nmap ip

#4-udp端口扫描
nmap -sU ip

GNU Netcat------官方主页

Nmap:网络映射器------免费安全扫描器

2.2、Linux命令提示工具

Linux中的命令及其对应的参数内容有很多,特别是对于初学者来说更是难以记住。而tldr工具就是解决这个问题的。

bash 复制代码
#安装Linux各种命令操作提示工具(会给出各种命令的使用示例),可以实现命令的快速上手使用
pip3 install tldr
tldr --update



#比如我不熟悉tar命令的使用则可以使用如下命令查看使用方法
tldr tar

#比如我不熟悉scp命令的使用则可以使用如下命令查看使用方法
tldr scp

#比如我不熟悉ssh命令的使用则可以使用如下命令查看使用方法
tldr ssh

三、Linux中的swap分区与rm命令无法使用

3.1、Linux服务器上是否需要划分swap分区

swap本质上是通过硬盘虚拟出来的内存空间;典型的使用场景是【当服务器的物理内存不足的时候,操作系统可以将一些不活跃的内存页转到swap中,从而释放服务器的物理内存】。

使用swap的优点是【在物理内存不足的情况下,通过临时使用swap空间,可以减少内存溢出(OOM Out Of Memory)情况的发生】 (内存溢出对应的核心机制是 OOM Killer(内存耗尽杀手),它是 Linux 内核的一个保护机制,用于在系统物理内存和交换空间都被耗尽时,主动终止部分进程来释放内存,避免系统整体崩溃)。但是过多的使用swap会导致应用程序的性能急剧下降【建议swap分配在4-8G即可】。

bash 复制代码
#临时关闭所有已启用的 swap(需 root 权限)
swapoff -a

#2-临时启用 /etc/fstab 中所有配置的 swap(需 root 权限)
swapon -a

#查看Linux系统中有哪些应用占用swap空间命令
for file in /proc/[0-9]*/status ; do awk '/VmSwap|Name|Pid/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 3 -n -r | head -20

3.2、rm命令无法使用解决方法

在一次性删除一百万个小文件时,执行【rm -rf ./*】就报错提示"-bash: /usr/bin/rm: 参数列表过长",也就是说rm命令无法使用了。

bash 复制代码
#解决rm无法使用的三个方法
#方法一:通过xargs分批处理(可查看处理时间)
#参数说明:
#【-maxdepth 1】仅处理当前目录,不递归子目录(避免误删);
#【-type f】仅匹配文件(排除目录);
#【-delete】直接删除匹配的文件(无需额外调用 rm)。
time find . -maxdepth 1 -type f -print0 | xargs -0 rm -f
time find . -maxdepth 1 -type f -name "*.txt" | xargs rm -f


#方法二:使用find命令(推荐使用)
#1-删除当前目录下所有文件(保留目录结构)
time find . -maxdepth 1 -type f -delete

#2-删除指定类型的文件(比如 .log 后缀)
time find . -maxdepth 1 -type f -name "*.log" -delete

#3-先查看要删除的文件(确认无误后再删,推荐新手)
time find . -maxdepth 1 -type f -name "*.log"
#确认后执行删除
time find . -maxdepth 1 -type f -name "*.log" -delete


#方法三:使用rsync将空目录内容同步到需删除目录中
time rsync -a --delete --exclude '*.sh' 空目录 需删除目录
相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩4 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言