项目

一般

简介

Linux命令

  1. 查看打开的文件描述符
    lsof
    
  2. 查看进程打开的文件描述符
    ll /proc/pid/fd/
    
  3. 获取脚本路径
    script_path="$(cd "$(dirname "$0")"; pwd)" 
    
  4. 获取相对路径对应的绝对路径
    absolute_path=$(realpath "$relative_path")
    
  5. 获取字符串的最后一个字符
    last_char="${dir_str: -1}" 
    
  6. journalctl
    # 删除超过两周的日志, 可以根据需要调整时间参数,例如 1month 或 7days。
    journalctl --vacuum-time=2weeks
    
    # 将日志文件的大小限制为 100MB
    journalctl --vacuum-size=100M
    
  7. find
    # 删除5天之前的文件夹
    find . -mindepth 1 -type d -mtime +5 -exec rm -r {} +
    
    # 删除5分钟之前的文件夹
    find . -mindepth 1 -type d -mmin +5 -exec rm -r {} +
    
  8. sed插入一行
    sed -i "2i find log/ -mindepth 1 -type d -mtime +5 -exec rm -r {} +" log.sh
    
  9. 屏蔽/启用服务
    systemctl unmask my.service
    systemctl mask my.service
    # systemctl unmask 命令在 Linux 中用于去除服务单元的“屏蔽”。当你使用 systemctl mask 命令屏蔽一个服务时,它会创建一个从服务的单元文件到 /dev/null 的符号链接,从而阻止该服务被手动或自动启动。
    # 使用 systemctl unmask 可以移除这个符号链接,使得服务可以再次启动。这在你需要重新启用之前被屏蔽的服务时非常有用。
    
  10. 启用扩展模式匹配
    shopt -s extglob
    该命令用于在 Bash shell 中启用扩展的模式匹配功能。具体来说,它允许使用更复杂的模式匹配语法,这在处理文件名或字符串时非常有用。
    启用 extglob 后,你可以使用以下扩展模式:
    ?(pattern):匹配零个或一个模式。
    *(pattern):匹配零个或多个模式。
    +(pattern):匹配一个或多个模式。
    @(pattern):匹配一个指定的模式。
    !(pattern):匹配任何不匹配指定模式的字符串。
    示例:如果你想匹配以 .txt 或 .md 结尾的文件,可以使用:
    shopt -s extglob
    ls *.@(txt|md)