rm -rf ./*
不会删除隐藏文件
rm -rf ./*
-r
:递归删除目录以及内容
- 删除文件夹需要该选项
- 在 Unix 早期,
rmdir
用于删空目录,rm
用于删文件,两者职责分明。后来为了方便,才把递归删目录的功能合并进 rm -r
-f
:强制删除而不询问
./*
:这里 Shell 通配符 *
匹配当前目录下所有非隐藏项
删除隐藏文件
find . -mindepth 1 -delete
find
:查找
.
:当前目录
-mindepth 1
:最小深度为1 ,即不处理起始目录本身
- 深度0:当前目录
- 深度1:当前目录下的直接子项
- 深度2:子项的子项
-delete
:删除找到的文件和目录
Bash 引号的两种类型
双引号展开(弱引用)
echo "Hello $USER" # $USER会被展开为当前用户名
- 允许变量展开(
$var
)
- 允许命令替换(
$(command)
或反引号)
- 允许算术展开(
$((expression))
)
- 需要转义特殊字符:
\"
, \$
, \`
, \\
单引号不展开(强引用)
echo 'Hello $USER' # 输出字面意思:Hello $USER
- 禁止所有展开
- 保持所有字符的字面意思
- 不需要转义任何字符
- 不能在单引号中再使用单引号
快速寻找网站根目录
Nginx 服务
find / -name "nginx.conf"
快速排查异常外联
(sudo 注意管理员权限)
netstat -ant
lsof -i @47.110.146.134:10087
ls -l /proc/100008/exe
cat /proc/100008/cmdline
kill -9 100008
netstat -ant
netstat
: 网络状态工具
-a
: 显示所有活动的连接和正在监听的端口
-n
: 显示地址和端口号,而不是尝试解析为主机或服务名
-t
: 仅显示 TCP 协议的连接和监听端口
- 查看所有 TCP 连接的状态以及正在监听的 TCP 端口
ss -tulnp
ss
: netstat
的现代替代品
-t
: 显示 TCP 协议的 sockets
-u
: 显示 UDP 协议的 sockets
-l
: 显示 Listening(监听)状态的 sockets
-n
: Numeric(数字)输出
-p
: 显示使用该 socket 的 Process(进程)信息
- 显示所有正在监听的 TCP 和 UDP 端口,并列出使用这些端口的进程信息
- windows 下常用
netstat -ant
(-t 类似 -p)
lsof -i @47.110.146.134:10087
lsof
: List Open Files (列出打开的文件)
-i
: 指定要列出与网络相关的文件
@47.110.146.134:10087
: 是 -i
选项的参数,用于过滤
- 查找哪些进程正在与 IP 地址为
47.110.146.134
的主机上的 10087
端口进行通信
ls -l /proc/100008/exe
ls -l
: 以长格式列出文件或目录的详细信息
/proc/100008/exe
: /proc
是一个虚拟文件系统,它为每个正在运行的进程提供了一个以进程 ID (PID) 命名的目录。在该目录下,exe
是一个符号链接,指向该进程实际执行的二进制文件(可执行文件)
- 查看 PID 为
100008
的进程实际运行的是哪个可执行文件的完整路径
cat /proc/100008/cmdline
/proc/100008/cmdline
: 文件包含了启动该进程时使用的完整命令行参数
- 查看 PID 为
100008
的进程启动时执行的具体命令及其所有参数
kill -9 100008
kill
: 向指定的进程发送信号
-9
: 对应的是 SIGKILL
信号,这是一个强制终止信号。进程无法忽略或捕获这个信号,收到后会立即被操作系统终止
- 强制杀死 PID 为
100008
的进程
查看系统默认网关
ip route show default
发表回复