Bg0EXx

Linux 使用技巧

rm -rf ./* 不会删除隐藏文件

rm -rf ./*
  • rm:删除文件
  • -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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注