20个提升生产力的Unix/Linux命令技巧1. 大文件处理技巧1.1 安全删除大文件当需要删除服务器上的大文件如200GB日志文件时直接使用rm命令可能导致磁盘IO过高。更安全的做法是先清空文件内容再删除 /path/to/file.log # 或使用 : /path/to/file.log # 然后删除 rm /path/to/file.log这种方法通过先截断文件内容减少单次IO操作量降低系统负载。2. 终端会话记录2.1 使用script记录终端会话script命令可以完整记录终端会话适合用于操作审计或教学演示script my.terminal.session # 执行需要记录的命令 ls date sudo service foo stop # 退出记录 exit2.2 查看会话记录记录完成后可以使用多种工具查看more my.terminal.session less my.terminal.session cat my.terminal.session3. 系统目录管理3.1 恢复误删的/tmp目录误删系统目录后需要重建并设置正确的权限mkdir /tmp chmod 1777 /tmp # 设置粘滞位 chown root:root /tmp ls -ld /tmp # 验证权限3.2 目录锁定与解锁保护敏感目录的隐私# 锁定目录禁止所有访问 chmod 0000 /downloads # 恢复访问权限 chmod 0755 /downloads4. 文件安全保护4.1 Vim文件加密使用vim内置加密功能保护敏感文件vim X filename # 或在vim中使用 :X系统会提示输入加密密码文件将以加密形式保存。4.2 清除终端乱码当终端显示异常时使用reset命令恢复reset5. 人性化输出格式5.1 易读格式输出多数GNU/BSD工具支持-h参数显示易读格式# 文件大小 ls -lh # 磁盘空间 df -h # 内存使用 free -h # 目录大小 du -h5.2 高级易读格式更多专业工具也支持易读输出# 文件权限 stat -c %A /boot # 排序数字 sort -h -a file # CPU信息 lscpu -e # 目录树大小 tree -h /boot6. 用户信息查询6.1 查看系统用户不同系统使用不同命令查看用户信息# Linux lslogins # BSD logins输出示例UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS 0 root 0 0 22:37:59 root 1 bin 0 1 bin 2 daemon 0 1 daemon7. 文件操作技巧7.1 恢复误操作当误解压文件到错误目录时可以精确删除cd /var/www/html/ /bin/rm -f $(tar ztf /path/to/file.tar.gz)7.2 替代top命令htop提供比top更直观的进程监控sudo htop8. 命令历史操作8.1 重复执行命令快速重复执行命令的技巧/myhome/dir/script/name arg1 arg2 # 重复上条命令 !! # 以root执行 sudo !!8.2 使用历史参数重复使用上条命令的参数sudo vi /etc/nginx/nginx.conf /sbin/nginx -t -c /etc/nginx/nginx.conf # 重用最后一个参数 sudo vi !$9. 目录导航技巧9.1 设置离开提醒设置终端提醒功能leave hhmm # hhmm为24小时制时间9.2 快速目录切换高效目录导航方法cd - # 返回上一个目录 cd # 返回家目录9.3 自定义CDPATH设置目录搜索路径提升效率export CDPATH/var/www:/nas10 cd html # 直接进入/var/www/html10. 文件浏览与编辑10.1 Less中编辑文件在less浏览时直接编辑文件less *.c # 按v键使用$EDITOR编辑10.2 查找系统文件查找特定类型文件# 查找所有目录 find / -type d | less # 查找所有文件 find / -type f -ls | less11. 高级目录操作11.1 批量创建目录树单条命令创建复杂目录结构mkdir -p /jail/{dev,bin,sbin,etc,usr,lib,lib64}11.2 批量文件复制高效复制文件到多个目录echo /usr/dir1 /var/dir2 /nas/dir3 | xargs -n 1 cp -v /path/to/file12. 目录比较与文本处理12.1 比较目录差异使用diff比较两个目录diff /tmp/r/ /tmp/s/12.2 文本格式化重新格式化文本段落fmt file.txt # 自动换行和填充 fmt -s file.txt # 只分割长行不填充13. 输出重定向技巧13.1 同时输出到屏幕和文件使用tee命令双重输出mycoolapp arg1 arg2 input.file | tee my.log这种方法既能在终端查看输出又能保存到日志文件。
20个提升效率的Unix/Linux命令技巧
20个提升生产力的Unix/Linux命令技巧1. 大文件处理技巧1.1 安全删除大文件当需要删除服务器上的大文件如200GB日志文件时直接使用rm命令可能导致磁盘IO过高。更安全的做法是先清空文件内容再删除 /path/to/file.log # 或使用 : /path/to/file.log # 然后删除 rm /path/to/file.log这种方法通过先截断文件内容减少单次IO操作量降低系统负载。2. 终端会话记录2.1 使用script记录终端会话script命令可以完整记录终端会话适合用于操作审计或教学演示script my.terminal.session # 执行需要记录的命令 ls date sudo service foo stop # 退出记录 exit2.2 查看会话记录记录完成后可以使用多种工具查看more my.terminal.session less my.terminal.session cat my.terminal.session3. 系统目录管理3.1 恢复误删的/tmp目录误删系统目录后需要重建并设置正确的权限mkdir /tmp chmod 1777 /tmp # 设置粘滞位 chown root:root /tmp ls -ld /tmp # 验证权限3.2 目录锁定与解锁保护敏感目录的隐私# 锁定目录禁止所有访问 chmod 0000 /downloads # 恢复访问权限 chmod 0755 /downloads4. 文件安全保护4.1 Vim文件加密使用vim内置加密功能保护敏感文件vim X filename # 或在vim中使用 :X系统会提示输入加密密码文件将以加密形式保存。4.2 清除终端乱码当终端显示异常时使用reset命令恢复reset5. 人性化输出格式5.1 易读格式输出多数GNU/BSD工具支持-h参数显示易读格式# 文件大小 ls -lh # 磁盘空间 df -h # 内存使用 free -h # 目录大小 du -h5.2 高级易读格式更多专业工具也支持易读输出# 文件权限 stat -c %A /boot # 排序数字 sort -h -a file # CPU信息 lscpu -e # 目录树大小 tree -h /boot6. 用户信息查询6.1 查看系统用户不同系统使用不同命令查看用户信息# Linux lslogins # BSD logins输出示例UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS 0 root 0 0 22:37:59 root 1 bin 0 1 bin 2 daemon 0 1 daemon7. 文件操作技巧7.1 恢复误操作当误解压文件到错误目录时可以精确删除cd /var/www/html/ /bin/rm -f $(tar ztf /path/to/file.tar.gz)7.2 替代top命令htop提供比top更直观的进程监控sudo htop8. 命令历史操作8.1 重复执行命令快速重复执行命令的技巧/myhome/dir/script/name arg1 arg2 # 重复上条命令 !! # 以root执行 sudo !!8.2 使用历史参数重复使用上条命令的参数sudo vi /etc/nginx/nginx.conf /sbin/nginx -t -c /etc/nginx/nginx.conf # 重用最后一个参数 sudo vi !$9. 目录导航技巧9.1 设置离开提醒设置终端提醒功能leave hhmm # hhmm为24小时制时间9.2 快速目录切换高效目录导航方法cd - # 返回上一个目录 cd # 返回家目录9.3 自定义CDPATH设置目录搜索路径提升效率export CDPATH/var/www:/nas10 cd html # 直接进入/var/www/html10. 文件浏览与编辑10.1 Less中编辑文件在less浏览时直接编辑文件less *.c # 按v键使用$EDITOR编辑10.2 查找系统文件查找特定类型文件# 查找所有目录 find / -type d | less # 查找所有文件 find / -type f -ls | less11. 高级目录操作11.1 批量创建目录树单条命令创建复杂目录结构mkdir -p /jail/{dev,bin,sbin,etc,usr,lib,lib64}11.2 批量文件复制高效复制文件到多个目录echo /usr/dir1 /var/dir2 /nas/dir3 | xargs -n 1 cp -v /path/to/file12. 目录比较与文本处理12.1 比较目录差异使用diff比较两个目录diff /tmp/r/ /tmp/s/12.2 文本格式化重新格式化文本段落fmt file.txt # 自动换行和填充 fmt -s file.txt # 只分割长行不填充13. 输出重定向技巧13.1 同时输出到屏幕和文件使用tee命令双重输出mycoolapp arg1 arg2 input.file | tee my.log这种方法既能在终端查看输出又能保存到日志文件。