Linux_101_Hacks_CN
《Linux 101 Hacks》是一本关于 Linux 使用技巧的免费电子书籍。 其中最为实用的,大概 4(基本命令)、7(归档打包)、9(系统配置)、10(Apache服务配置)和12(系统控制)几章。虽说都是一些命令的使用,但是要比什么xx命令手册要好。手册即使再详细,也不可能告诉你“把60天以内没改动过的文件归档”的命令。101 Hacks很多这些实用的命令配搭技巧,尤其适合像我这样的菜鸟。 ### Linux 101 Hacks_CN - 关键知识点解析 #### 一、基本命令与技巧 **技巧1:CDPATH: 设置cd命令的基目录** - **知识点**: `CDPATH` 是一个环境变量,用于定义当用户试图切换到不存在的目录时,`cd` 命令应该搜索的一系列目录路径。 - **应用场景**: 当用户尝试进入一个不存在的目录时,`cd` 命令将根据 `CDPATH` 的设置查找是否存在同名目录。 - **示例**: 若要设置 `CDPATH` 变量以便在 `cd` 命令中搜索 `/home/user/` 和 `/mnt/` 目录,可以使用以下命令: ```bash export CDPATH=/home/user/:/mnt/ ``` **技巧2:使用cd和alias命令快速返回上级目录** - **知识点**: `alias` 命令用于创建自定义命令别名,简化常用命令。 - **应用场景**: 通过创建一个别名,可以快速返回上一级目录。 - **示例**: 创建一个名为 `ucd` 的别名,它代表 `cd ..`,可以这样设置: ```bash alias ucd='cd ..' ``` **技巧3:用一条语句执行―mkdir―和―cd―命令** - **知识点**: 结合使用 `mkdir` 和 `cd` 命令可以一次性创建新目录并进入该目录。 - **应用场景**: 在创建新目录的同时立即进入该目录进行进一步的操作。 - **示例**: 创建一个名为 `newdir` 的目录并立即进入该目录: ```bash mkdir newdir && cd newdir ``` **技巧4:用―cd-‖在最近访问的两个目录之间切换** - **知识点**: `cd -` 命令用于切换到上一次所在的目录。 - **应用场景**: 在两个目录间频繁切换。 - **示例**: 从当前目录切换到上一个目录: ```bash cd - ``` **技巧5:用―dirs‖、―pushd‖、―popd‖来操作目录栈** - **知识点**: `dirs` 命令显示目录栈的内容;`pushd` 将当前目录压入目录栈并切换到指定目录;`popd` 从目录栈弹出并切换到前一个目录。 - **应用场景**: 管理多个工作目录,无需重复使用 `cd` 命令来回切换。 - **示例**: 将当前目录压入栈并切换到 `/tmp`: ```bash pushd /tmp ``` **技巧6:用―shopt–scdspell‖自动纠正―cd‖命令的目录名输入错误** - **知识点**: `shopt` 命令用于设置 shell 的选项,`cdspell` 选项开启后会自动纠正 `cd` 命令中的拼写错误。 - **应用场景**: 避免因拼写错误而导致的目录切换失败。 - **示例**: 开启 `cdspell` 选项: ```bash shopt -s cdspell ``` #### 二、日期操作 **技巧7:设置系统日期和时间** - **知识点**: 使用 `date` 命令设置系统的时间和日期。 - **应用场景**: 当系统时间和日期不准确时进行手动调整。 - **示例**: 设置当前时间为 2023 年 10 月 1 日 14:00:00: ```bash date -s "20231001140000" ``` **技巧8:设置硬件日期和时间** - **知识点**: 使用 `hwclock` 命令设置硬件时钟的时间。 - **应用场景**: 更新硬件时钟的时间,确保与系统时间一致。 - **示例**: 将硬件时钟的时间设置为与系统时间相同: ```bash hwclock --systohc ``` **技巧9:用特定格式显示当前时间** - **知识点**: `date` 命令支持多种格式化选项,可以按需显示时间。 - **应用场景**: 获取定制化的日期时间输出。 - **示例**: 显示当前时间,格式为 “年-月-日 时:分:秒”: ```bash date +"%Y-%m-%d %H:%M:%S" ``` **技巧10:显示过去的日期和时间** - **知识点**: `date` 命令可以计算相对于当前时间的过去或未来的时间点。 - **应用场景**: 计算某个事件发生在过去的精确时间。 - **示例**: 显示一周前的日期和时间: ```bash date -d "1 week ago" ``` **技巧11:显示未来的日期和时间** - **知识点**: 同 `date` 命令计算过去的日期时间一样,也可以计算未来的日期时间。 - **应用场景**: 预测某个事件将在未来的具体时间发生。 - **示例**: 显示一周后的日期和时间: ```bash date -d "1 week" ``` #### 三、SSH(Secure Shell)客户端命令 **技巧12:查看SSH客户端版本** - **知识点**: `ssh -V` 命令用于查看 SSH 客户端的版本信息。 - **应用场景**: 确认当前安装的 SSH 客户端版本是否支持所需的功能。 - **示例**: 查看 SSH 客户端的版本: ```bash ssh -V ``` **技巧13:用SSH登录到远程主机** - **知识点**: `ssh` 命令的基本用法,用于登录远程主机。 - **应用场景**: 远程管理服务器或进行跨机协作。 - **示例**: 登录名为 `user` 的用户在 `example.com` 上的账户: ```bash ssh [email protected] ``` **技巧14:调试SSH客户端会话** - **知识点**: `ssh` 命令支持多种调试选项,如 `-v` 和 `-vv` 可以输出更多的调试信息。 - **应用场景**: 解决 SSH 连接问题。 - **示例**: 使用详细的调试信息登录远程主机: ```bash ssh -vv [email protected] ``` **技巧15:用SSH退出符切换SSH会话** - **知识点**: 使用特殊的退出字符(通常是 `~.` 或 `~^`)来退出当前的 SSH 会话。 - **应用场景**: 快速终止当前的 SSH 会话,而不必先退出远程主机上的所有其他程序。 - **示例**: 使用退出字符 `~.` 退出当前 SSH 会话: ```bash ~. ``` **技巧16:用SSH退出字符会话,显示信息** - **知识点**: 类似于技巧15,但除了退出会话之外,还会显示会话的统计信息。 - **应用场景**: 在退出会话之前获取有关当前会话的一些信息。 - **示例**: 使用退出字符 `~.` 并显示会话信息: ```bash ~. ``` #### 四、重要的Linux命令 **技巧17:grep命令** - **知识点**: `grep` 命令用于在文本文件中搜索特定的模式。 - **应用场景**: 文件内容的搜索和筛选。 - **示例**: 搜索包含单词 `Linux` 的行: ```bash grep "Linux" file.txt ``` **技巧18:find命令** - **知识点**: `find` 命令用于在文件系统中搜索文件。 - **应用场景**: 寻找符合特定条件的文件。 - **示例**: 找到所有扩展名为 `.txt` 的文件: ```bash find . -name "*.txt" ``` **技巧19:禁止标准输出和错误信息的输出** - **知识点**: 使用重定向操作符(`>` 和 `2>`)可以抑制命令的标准输出和错误输出。 - **应用场景**: 避免不必要的输出干扰。 - **示例**: 执行命令时不显示任何输出: ```bash command > /dev/null 2>&1 ``` **技巧20:join命令** - **知识点**: `join` 命令用于将两个文件中的记录合并成一个新的文件。 - **应用场景**: 数据文件之间的数据关联。 - **示例**: 将文件 `file1` 和 `file2` 中的记录合并: ```bash join file1 file2 ``` **技巧21:改变字符的大小写** - **知识点**: `tr` 命令可以转换字符的大小写。 - **应用场景**: 文本处理中需要改变大小写的情况。 - **示例**: 将文本全部转换为小写: ```bash echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]' ``` **技巧22:xargs命令** - **知识点**: `xargs` 命令用于构建并执行命令行工具。 - **应用场景**: 处理 `find` 等命令产生的大量输出。 - **示例**: 删除当前目录下的所有 `.tmp` 文件: ```bash find . -name "*.tmp" -print0 | xargs -0 rm ``` **技巧23:sort命令** - **知识点**: `sort` 命令用于对文本文件中的行进行排序。 - **应用场景**: 文本文件排序。 - **示例**: 对文件 `file.txt` 中的行进行排序: ```bash sort file.txt ``` **技巧24:uniq命令** - **知识点**: `uniq` 命令用于去除文本文件中相邻重复的行。 - **应用场景**: 清除重复数据。 - **示例**: 去除文件 `file.txt` 中的重复行: ```bash uniq file.txt ``` **技巧25:cut命令** - **知识点**: `cut` 命令用于从文件中切割出指定的部分。 - **应用场景**: 提取文件中的特定字段或列。 - **示例**: 提取文件 `file.txt` 第一列的数据: ```bash cut -f1 file.txt ``` **技巧26:stat命令** - **知识点**: `stat` 命令用于显示文件的状态信息。 - **应用场景**: 查看文件的元数据。 - **示例**: 显示文件 `file.txt` 的状态信息: ```bash stat file.txt ``` **技巧27:diff命令** - **知识点**: `diff` 命令用于比较两个文件的差异。 - **应用场景**: 文件版本控制。 - **示例**: 比较文件 `file1.txt` 和 `file2.txt` 的差异: ```bash diff file1.txt file2.txt ``` **技巧28:显示用户总的连接时间** - **知识点**: `last` 命令可以显示用户的登录历史。 - **应用场景**: 跟踪用户的在线时间。 - **示例**: 查看用户 `user` 的总的连接时间: ```bash last -w user ``` #### 五、PS1, PS2, PS3 和 PROMPT_COMMAND **技巧29:PS1——默认提示符** - **知识点**: `PS1` 是 Bash shell 的提示符变量,定义了默认的命令行提示符。 - **应用场景**: 自定义命令行界面。 - **示例**: 设置提示符为 `[user@host dir]$`: ```bash PS1='[\u@\h \W]\$ ' ``` **技巧30:PS2——再谈提示符** - **知识点**: `PS2` 定义了二次提示符,即输入错误命令时的提示符。 - **应用场景**: 提高交互式命令行的用户体验。 - **示例**: 设置二次提示符为 `> `: ```bash PS2='> ' ``` **技巧31:PS3——Shell脚本中使用select时的提示符** - **知识点**: `PS3` 变量用于 `select` 命令的提示符。 - **应用场景**: 在交互式脚本中使用 `select` 时提供友好的提示。 - **示例**: 设置 `select` 的提示符为 `Please select an option: `: ```bash PS3='Please select an option: ' ``` **技巧32:PS4——PS4-"set -x" 用来修改跟踪输出的前缀** - **知识点**: `PS4` 变量用于定义当启用调试模式 (`set -x`) 时输出的前缀。 - **应用场景**: 调试脚本。 - **示例**: 设置调试输出的前缀为 `+ `: ```bash PS4='+ ' ``` **技巧33:PROMPT_COMMAND环境变量** - **知识点**: `PROMPT_COMMAND` 变量允许在每次更新提示符之前执行自定义命令。 - **应用场景**: 实现动态提示符或执行定期任务。 - **示例**: 在每次更新提示符前打印当前时间: ```bash PROMPT_COMMAND='echo "Current time: $(date)"' ``` #### 六、用功能强大的彩色终端快速使用PS1 **技巧34:在提示符中显示用户名,主机名,当前目录** - **知识点**: 使用 Bash 内置的特殊变量 `\u`, `\h` 和 `\W` 来显示用户名、主机名和当前目录。 - **应用场景**: 方便地识别当前的工作环境。 - **示例**: 设置提示符以包含用户名、主机名和当前目录: ```bash PS1='\u@\h:\W\$ ' ``` **技巧35:在提示符里显示当前时间** - **知识点**: 使用 `\!` 变量显示当前时间。 - **应用场景**: 实时了解命令执行的时间点。 - **示例**: 在提示符中显示当前时间: ```bash PS1='\! [\u@\h \W]\$ ' ``` **技巧36:任意命令的输出作为提示符** - **知识点**: 可以将任何命令的输出作为提示符的一部分。 - **应用场景**: 显示额外的信息,如 Git 分支等。 - **示例**: 在提示符中显示 Git 分支名称: ```bash PS1='\u@\h:\W\$(git branch --show-current)\$ ' ``` **技巧37:改变提示符的前景颜色** - **知识点**: 使用 ANSI 颜色转义序列来改变文本的颜色。 - **应用场景**: 改善提示符的视觉效果。 - **示例**: 设置提示符为蓝色文字: ```bash PS1='\[\e[34m\]\u@\h:\W\$ \[\e[m\]' ``` **技巧38:改变提示符的背景色** - **知识点**: 类似于改变前景色,也可以改变背景色。 - **应用场景**: 进一步增强提示符的可读性。 - **示例**: 设置提示符背景为浅灰色: ```bash PS1='\[\e[47m\]\u@\h:\W\$ \[\e[m\]' ``` **技巧39:在提示符中显示多种颜色** - **知识点**: 可以在提示符中混合使用不同的颜色代码。 - **应用场景**: 使提示符更加个性化。 - **示例**: 设置用户名为绿色,主机名为黄色,其余为白色: ```bash PS1='\[\e[32m\]\u\[\e[m\]@\[\e[33m\]\h\[\e[m\]:\[\e[37m\]\W\$ \[\e[m\]' ``` **技巧40:用tput改变提示符颜色** - **知识点**: `tput` 命令可以更灵活地控制终端的颜色。 - **应用场景**: 需要更多颜色控制选项时。 - **示例**: 使用 `tput` 设置提示符颜色: ```bash PS1=$(tput setaf 2)$'\u$(tput sgr0)@$(tput setaf 3)$\h$(tput sgr0):$(tput setaf 7)$\W\$ $(tput sgr0)' ``` **技巧41:使用已有的PS1变量创建自己的提示符** - **知识点**: 可以利用现有的 `PS1` 变量来自定义新的提示符格式。 - **应用场景**: 需要保持原有提示符的一部分功能时。 - **示例**: 在原有提示符的基础上添加 Git 分支信息: ```bash PS1="${PS1} \$(git branch --show-current)" ``` **技巧42:通过PS1调用bashshell函数** - **知识点**: 可以在 `PS1` 变量中直接调用 Bash 函数。 - **应用场景**: 实现更为复杂的提示符逻辑。 - **示例**: 定义一个函数并在提示符中调用: ```bash function git_branch() { git branch --show-current } PS1="${PS1} \$(git_branch)" ``` **技巧43:通过PS1中调用shell脚本** - **知识点**: 可以在 `PS1` 变量中直接调用 Shell 脚本。 - **应用场景**: 需要执行复杂脚本来生成提示符的一部分时。 - **示例**: 调用名为 `get_git_status.sh` 的脚本来显示 Git 状态: ```bash PS1="${PS1} \$(./get_git_status.sh)" ``` #### 七、归档打包 这部分涉及到了文件的归档打包技巧,例如如何创建压缩文件、如何解压文件等,是系统管理和文件管理的重要组成部分。由于这部分内容较多,我们会在后续的文章中详细介绍。















剩余121页未读,继续阅读


- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 物流服务与管理专业信息化教学应用.docx
- 中小企业信息化建设管理方案规划设计.doc
- 郑大远程专科《计算机应用基础》01章在线测试答案.doc
- 鲁棒性算法研究.pptx
- 办公软件经典教程图文.doc
- 探究互联网+教育时代下的高中生物智慧教育.docx
- 民航空管通信导航监视设施设备防雷工作研究.docx
- 新预算法试题(答案).doc
- “黛铃特”连锁网站规划书.doc
- 计算机应用基础课件(最新版).ppt
- 自动化立体仓库详细介绍.ppt
- 湖北会计信息化竞赛理论考试试题.doc
- 谈高职护理专业医学基础课程信息化教学设计1.docx
- 大数据时代对我国企业审计信息化的冲击与影响.docx
- 互联网+视域下的电子商务概论教学模式改革初探.docx
- 基于行业分布的企业网络信息安全威胁及对策研究-软件技术.doc


