Linux Xargs 命令使用

2026年5月19日 · 0 分钟 · Yancey

Linux 命令行编辑快捷键

初学者在Linux命令窗口(终端)敲命令时,肯定觉得通过输入一串一串的字符的方式来控制计算是效率很低。 但是Linux命令解释器(Shell)是有很多快捷键的,熟练掌握可以极大的提高操作效率。 下面列出最常用的快捷键,这还不是完全版。 命令行快捷键: 常用: Ctrl L :清屏 Ctrl M :等效于回车 Ctrl C : 中断正在当前正在执行的程序 历史命令: Ctrl P : 上一条命令,可以一直按表示一直往前翻 Ctrl N : 下一条命令 Ctrl R,再按历史命令中出现过的字符串:按字符串寻找历史命令(重度推荐) 命令行编辑: Tab : 自动补齐(重度推荐) Ctrl A : 移动光标到命令行首 Ctrl E : 移动光标到命令行尾 Ctrl B : 光标后退 Ctrl F : 光标前进 Alt F : 光标前进一个单词 Alt B : 光标后退一格单词 Ctrl ] : 从当前光标往后搜索字符串,用于快速移动到该字符串 Ctrl Alt ] : 从当前光标往前搜索字符串,用于快速移动到该字符串 Ctrl H : 删除光标的前一个字符 Ctrl D : 删除当前光标所在字符 Ctrl K :删除光标之后所有字符 Ctrl U : 清空当前键入的命令 Ctrl W : 删除光标前的单词(Word, 不包含空格的字符串) **Ctrl \ ** : 删除光标前的所有空白字符 Ctrl Y : 粘贴Ctrl W或Ctrl K删除的内容 Alt . : 粘贴上一条命令的最后一个参数(很有用) Alt [0-9] Alt . 粘贴上一条命令的第[0-9]个参数 Alt [0-9] Alt . Alt. 粘贴上上一条命令的第[0-9]个参数 Ctrl X Ctrl E : 调出系统默认编辑器编辑当前输入的命令,退出编辑器时,命令执行 其他: Ctrl Z : 把当前进程放到后台(之后可用’‘fg’‘命令回到前台) Shift Insert : 粘贴(相当于Windows的Ctrl V) 在命令行窗口选中即复制 在命令行窗口中键即粘贴,可用Shift Insert代替 Ctrl PageUp : 屏幕输出向上翻页 Ctrl PageDown : 屏幕输出向下翻页 apt list ‘~c’

2026年5月19日 · 1 分钟 · Yancey

Linux教程 MOC

2026年5月19日 · 0 分钟 · Yancey

Mac 上“终端”中的键盘快捷键

Mac 上“终端”中的键盘快捷键 在 Mac 上的“终端” App 中,你可以使用键盘快捷键快速完成许多任务。请参阅下方的快捷键,以及在菜单栏的“终端”菜单中显示的快捷键。在 App 菜单中,键盘快捷键显示为符号。 【注】App 中的键盘快捷键因你在 Mac 上使用的语言和键盘布局而异。如果下方的快捷键未按预期正常工作,请在菜单栏的 App 菜单中查找以查看正确的快捷键。你还可以使用虚拟键盘查看当前键盘布局,称为输入法。 使用“终端”窗口和标签页 操作 快捷键 新建窗口 Command-N 使用相同命令新建窗口 Control-Command-N 新建标签页 Command-T 使用相同命令新建标签页 Control-Command-T 显示或隐藏标签页栏 Shift-Command-T 显示所有标签页或退出标签页概览 Shift-Command-反斜杠 () 新建命令 Shift-Command-N 新建远程连接 Shift-Command-K 显示或隐藏检查器 Command-I 编辑标题 Shift-Command-I 编辑背景颜色 Option-Command-I 放大字体 Command-加号键 (+) 缩小字体 Command-减号键 (–) 下一个窗口 Command-重音符键 (`) 上一个窗口 Command-Shift-波浪符号 (~) 下一个标签页 Control-Tab 上一个标签页 Control-Shift-Tab 将窗口拆分为两个面板 Command-D 关闭拆分面板 Shift-Command-D 关闭标签页 Command-W 关闭窗口 Shift-Command-W 关闭其他标签页 Option-Command-W 全部关闭 Option-Shift-Command-W 滚动到顶部 Command-Home 滚动到底部 Command-End 上一页 Command-Page Up 下一页 Command-Page Down 上一行 Option-Command-Page Up 下一行 Option-Command-Page Down 编辑命令行 操作 快捷键 重新定位插入点 在按住 Option 键的同时将指针移到新的插入点 将插入点移到行的开头 Control-A 将插入点移到行的结尾 Control-E 将插入点前移一个字符 右箭头键 将插入点后移一个字符 左箭头键 将插入点前移一个字词 Option-右箭头键 将插入点后移一个字词 Option-左箭头键 删除行 Control-U 删除到行的结尾 Control-K 向前删除到字词的结尾 Option-D(选中将 Option 键用作 Meta 键后可用) 向后删除到字词的开头 Control-W 删除一个字符 Delete 向前删除一个字符 向前删除(或使用 Fn-Delete) 转置两个字符 Control-T 在“终端”窗口中选择和查找文本 操作 快捷键 选择完整文件路径 按住 Shift-Command 键并连按路径 选择整行文本 点按该行三下 选择一个词 连按该词 选择 URL 按住 Shift-Command 键并连按 URL 选择矩形块 按住 Option 键并拖移来选择文本 剪切 Command-X 拷贝 Command-C 不带背景颜色拷贝 Control-Shift-Command-C 拷贝纯文本 Option-Shift-Command-C 粘贴 Command-V 粘贴所选内容 Shift-Command-V 粘贴转义文本 Control-Command-V 粘贴转义的所选内容 Control-Shift-Command-V 查找 Command-F 查找下一个 Command-G 查找上一个 Command-Shift-G 使用选定的文本查找 Command-E 跳到选定的文本 Command-J 全选 Command-A 打开字符检视器 Control-Command-Space 使用标记和书签 操作 快捷键 标记 Command-U 标记为书签 Option-Command-U 取消标记 Shift-Command-U 标记命令行并发送返回结果 Command-Return 发送返回结果但不标记 Shift-Command-Return 插入书签 Shift-Command-M 插入包含名称的书签 Option-Shift-Command-M 跳到上一个标记 Command-上箭头键 跳到下一个标记 Command-下箭头键 跳到上一个书签 Option-Command-上箭头键 跳到下一个书签 Option-Command-下箭头键 清除到上一个标记 Command-L 清除到上一个书签 Option-Command-L 清除到开头 Command-K 在标记之间选择 Shift-Command-A 其他快捷键 操作 快捷键 进入或退出全屏幕 Control-Command-F 显示或隐藏颜色 Shift-Command-C 打开“终端”设置 Command-逗号键 (,) 中断 键入 Command-句点键 (.) 等于在命令行上输入 Control-C 打印 Command-P 软重置终端仿真器状态 Option-Command-R 硬重置终端仿真器状态 Control-Option-Command-R 打开 URL 按住 Command 键并连按 URL 添加至文件的完整路径 从“访达”将文件拖移到“终端”窗口中 将文本导出为 Command-S 将选定的文本导出为 Shift-Command-S 反向搜索命令历史 Control-R 开关“允许鼠标报告”选项 Command-R 开关“将 Option 键用作 Meta 键”选项 Command-Option-O 显示备用屏幕 Shift-Command-下箭头键 隐藏备用屏幕 Shift-Command-上箭头键 打开所选内容的 man 页面 Control-Shift-Command-问号键 (?) 搜索所选内容的 man 页面索引 Control-Option-Command-斜杠 (/) 完整的目录或文件名称 在命令行上,键入一个或多个字符,然后按下 Tab 键 显示可能的目录或文件名称补全列表 在命令行上,键入一个或多个字符,然后按下 Tab 键两次

2026年5月19日 · 2 分钟 · Yancey

markdown小抄表

2026年5月19日 · 0 分钟 · Yancey

Nginx 配置与实战

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单。 Nginx特点: 高并发、高性能; 模块化架构使得它的扩展性非常好; 异步非阻塞的事件驱动模型这点和 Node.js 相似; 相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性; 热部署、平滑升级; 完全开源,生态繁荣; 更多内容查看这篇:《 Nginx 离线安装与介绍 》 一、配置(nginx.conf) nginx.conf 配置文件的语法规则: 配置文件由 指令 与 指令块 构成; 每条指令以 ; 分号结尾,指令与参数间以空格符号分隔; 指令块以 {} 大括号将多条指令组织在一起; include 语句允许组合多个配置文件以提升可维护性; 通过 # 符号添加注释,提高可读性; 通过 $ 符号使用变量; 部分指令的参数支持正则表达式,例如常用的 location 指令. Nginx 的典型配置示例: main 全局配置,对全局生效; events 配置影响 Nginx 服务器与用户的网络连接; http 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置; server 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块; location 用于配置匹配的 uri ; upstream 配置后端服务器具体地址,负载均衡配置不可或缺的部分; #1. main段配置信息 user nginx; 运行用户,默认即是nginx,可以不进行设置 worker_processes auto; 进程数,一般设置为和 CPU 核数一样 error_log /var/log/nginx/error.log warn; 的错误日志存放目录 pid /var/run/nginx.pid; 服务启动时的 pid 存放位置 #2. events段配置信息 events { use epoll; 使用epoll的I/O模型(缺省会自动选择一个最适合你操作系统的) worker_connections 1024; 每个进程允许最大并发数 } #3. http段配置信息 #配置使用最频繁的部分,代理、缓存、日志定义等绝大多数功能和第三方模块的配置都在这里设置 http { 设置日志模式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; 访问日志存放位置 sendfile on; 开启高效传输模式 tcp_nopush on; 减少网络报文段的数量 tcp_nodelay on; keepalive_timeout 65; 保持连接的时间,也叫超时时间,单位秒 types_hash_max_size 2048; include /etc/nginx/mime.types; 文件扩展名与类型映射表 default_type application/octet-stream; 默认文件类型 . server段配置信息 server { listen 80; 配置监听的端口 server_name localhost; 配置的域名 . location段配置信息 location / { root /usr/share/nginx/html; 网站根目录 index index.html index.htm; 默认首页文件 deny 172.168.22.11; 禁止访问的ip地址,可以为all allow 172.168.33.44; 允许访问的ip地址,可以为all } error_page 500 502 503 504 /50x.html; 默认50x对应的访问页面 error_page 400 404 error.html; 同上 } 加载子配置项 include /etc/nginx/conf.d/*.conf; } ### 1.1 内置变量 nginx 常用的内置全局变量,你可以在配置中随意使用,点此查看效果: [内置变量实例演示](https://www.cnblogs.com/librarookie/p/#%E5%86%85%E7%BD%AE%E5%8F%98%E9%87%8F%E5%AE%9E%E4%BE%8B%E6%BC%94%E7%A4%BA "实例传送阵") | 变量 | 说明 | | --- | --- | | $args | 请求中的参数,例: baidu.com/?a=1&b=1 中的a和b | | $content\_length | HTTP 请求信息里的"Content-Length" | | $content\_type | HTTP 请求信息里的"Content-Type" | | $document\_root | nginx 虚拟主机配置文件中的 root 参数对应的值 | | $document\_uri | 当前请求中不包含指令的 URI | | $host | 主机头,也就是域名 | | $http\_user\_agent | 客户端的详细信息,也就是浏览器的标识 | | $http\_cookie | 客户端的 cookie 信息 | | $limit\_rate | 如果 nginx服务器使用limit\_rate 配置了显示网络速率,则会显示,如果没有设置,则显示0 | | $remote\_addr | 客户端的公网ip | | $remote\_user | 如果 nginx有配置认证,该变量代表客户端认证的用户名 | | $request\_body\_file | 做反向代理时发给后端服务器的本地资源的名称 | | $request\_method | 请求资源的方式,GET /PUT /DELETE等 | | $request\_filename | 当前请求的资源文件的路径名称 | | $request\_uri | 请求的链接,包括$document\_uri 和$args | | $scheme | 请求的协议,如ftp, http, https | | $server\_addr | 服务器IP地址 | | $server\_name | 服务器的主机名 | | $server\_port | 服务器的端口号 | ### 1.2 全局配置 #### 1.2.1 main 段核心参数 #1. user: 指定运行 Nginx 的 woker 子进程的属主和属组,其中组可以不指定。 ...

2026年5月19日 · 13 分钟 · Yancey

Nginx日志按天切割、压缩,并自动清理 30 天前的旧日志文件

以下是一个完整的 Shell 脚本,用于实现 Nginx 日志按天切割、压缩,并自动清理 30 天前的旧日志文件。 脚本内容 #!/bin/bash # 定义日志目录 LOG_DIR="/var/log/nginx" Nginx 日志目录 DAYS_TO_KEEP=30 保留最近多少天的日志 # 检查日志目录是否存在 if [ ! -d "$LOG_DIR" ]; then echo "错误:日志目录 $LOG_DIR 不存在!" exit 1 fi # 获取昨天的日期(用于日志切割) YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) # 切割日志文件 if [ -f "$LOG_DIR/access.log" ]; then mv "$LOG_DIR/access.log" "$LOG_DIR/access_$YESTERDAY.log" fi if [ -f "$LOG_DIR/error.log" ]; then mv "$LOG_DIR/error.log" "$LOG_DIR/error_$YESTERDAY.log" fi # 向 Nginx 主进程发送 USR1 信号,重新打开日志文件 if [ -f /var/run/nginx.pid ]; then kill -USR1 $(cat /var/run/nginx.pid) fi # 压缩昨天的日志文件 if [ -f "$LOG_DIR/access_$YESTERDAY.log" ]; then gzip "$LOG_DIR/access_$YESTERDAY.log" fi if [ -f "$LOG_DIR/error_$YESTERDAY.log" ]; then gzip "$LOG_DIR/error_$YESTERDAY.log" fi # 清理 30 天前的旧日志文件 find "$LOG_DIR" -type f -name "access_*.log.gz" -mtime +$DAYS_TO_KEEP -exec rm -f {} \; find "$LOG_DIR" -type f -name "error_*.log.gz" -mtime +$DAYS_TO_KEEP -exec rm -f {} \; # 记录操作日志 echo "$(date '+%Y-%m-%d %H:%M:%S') - 日志已切割、压缩并清理完成。" >> "$LOG_DIR/nginx_log_cleanup.log" 脚本说明 日志目录 LOG_DIR 定义了 Nginx 日志文件的存储目录,默认是 /var/log/nginx 。你可以根据实际路径修改。 日志切割 脚本会将当前的 access.log 和 error.log 文件重命名为 access_YYYY-MM-DD.log 和 error_YYYY-MM-DD.log ,其中 YYYY-MM-DD 是前一天的日期。 通过向 Nginx 主进程发送 USR1 信号,通知 Nginx 重新打开日志文件。 日志压缩 使用 gzip 命令将切割后的日志文件压缩为 .gz 格式,以节省磁盘空间。 日志清理 使用 find 命令查找并删除 30 天前的旧日志文件(文件名格式为 access_*.log.gz 和 error_*.log.gz )。 操作日志 每次运行脚本时,会将操作记录到 nginx_log_cleanup.log 中,方便后续查看。 使用方法 将脚本保存为文件,例如 /usr/local/bin/rotate_compress_clean_nginx_logs.sh 。 赋予脚本执行权限: chmod +x /usr/local/bin/rotate_compress_clean_nginx_logs.sh 3. 手动运行脚本测试: ```bash /usr/local/bin/rotate_compress_clean_nginx_logs.sh 如果需要每天自动运行,可以将脚本添加到 crontab 中。例如,每天凌晨 0 点运行: crontab -e 添加以下内容: ```bash 0 0 * * * /usr/local/bin/rotate_compress_clean_nginx_logs.sh 注意事项 权限问题 确保脚本以具有足够权限的用户(如 root )运行,否则可能无法删除、重命名或压缩日志文件。 测试 在生产环境中运行之前,建议先在测试环境中验证脚本的正确性。 日志轮换 如果已经配置了 logrotate 来管理 Nginx 日志,请确保脚本与 logrotate 的配置不冲突。 备份 如果需要保留某些重要日志,可以在删除前备份到其他位置。 压缩文件格式 脚本使用 gzip 压缩日志文件,压缩后的文件格式为 .gz 。如果需要其他格式(如 .zip ),可以修改脚本中的压缩命令。 通过这个脚本,你可以实现 Nginx 日志按天切割、压缩并自动清理旧日志,有效管理磁盘空间并保留必要的日志记录。

2026年5月19日 · 2 分钟 · Yancey

obsidian markdown 语法

所谓跨行 就是可以有很多行 这里是跨行注释: ### 图表 Obsidian 通过 [Mermaid](https://mermaid-js.github.io/) 及其所提供的[编译器](https://mermaid-js.github.io/mermaid-live-editor)来为用户提供图表的绘制功能。 <pre><code>```mermaid sequenceDiagram Alice->>+John: 嗨,John,最近怎样? Alice->>+John: John,听得到我说话吗? John-->>-Alice: 嗨,Alice,我能听到! John-->>-Alice: 最近不错! sequenceDiagram Alice->>+John: 嗨,John,最近怎样? Alice->>+John: John,听得到我说话吗? John-->>-Alice: 嗨,Alice,我能听到! John-->>-Alice: 最近不错! 开发小记 总的来说,我们在努力让 Obsidian 的语法不偏离正统的 Markdown 语法太多。总的来看,Obsidian 的语法大多还是基于 CommonMark,包括了一些 GitHub Flavored Markdown(GFM)和 LaTeX,以及我们特有的嵌入文件语法。

2026年5月19日 · 1 分钟 · Yancey

OmniFocus 常用快捷键

使用键盘快捷键能进一步加快工作流程!下面列出了一些我们认为对您特别有用的快捷键: 标记为完成 空格键 标记已丢弃 Option-空格键 删除 Command-Delete 编辑标题 E 编辑备注 N 编辑项目 P 编辑标签 T 编辑截止日期 D 标记为已标注 F 上移 Control-Command-上箭头 下移 Control-Command-下箭头 缩进 Command-右中括号 (]) 减少缩进 Command-左中括号 ([)

2026年5月19日 · 1 分钟 · Yancey

Openwrt opkg 批量更新软件

2026年5月19日 · 0 分钟 · Yancey