掌握命令行历史的高级用法
使用 history 命令可以查看之前执行过的命令列表。但它的真正威力在于快速重用命令。例如,!! 表示重复上一条命令,这在需要重复执行或需要 sudo 权限时非常有用(如 sudo !!)。!n 会执行历史记录中编号为 n 的命令,而 !string 会执行最近一条以 string 开头的命令。结合 Ctrl + R 进行反向搜索,可以交互式地搜索历史命令,大幅减少重复输入。
善用 Tab 键补全
Tab 键补全是提高效率最直接的方式。在输入命令、文件路径或参数时,按一次 Tab 键会自动补全,如果存在多个可能选项,按两次 Tab 键会列出所有候选。这不仅能避免输入错误,还能帮助探索命令和文件结构,无需死记硬背冗长的文件名或命令选项。
灵活运用命令别名(Alias)
对于长而复杂的常用命令,可以使用 alias 为其创建一个简短的别名。例如,将 alias ll='ls -alF' 添加到 ~/.bashrc 或 ~/.zshrc 文件后,每次只需输入 ll 即可实现详细列表显示。这能极大简化日常操作,将复杂的流水线或带有一串选项的命令封装成一个简单的单词。
创建永久别名
要使别名在每次登录时都可用,需要将别名定义写入 shell 的配置文件中。对于 bash,是 ~/.bashrc;对于 zsh,是 ~/.zshrc。编辑后执行 source ~/.bashrc 使其立即生效。
掌握输出重定向和管道
管道(|)和重定向(>, >>, 2>)是 Linux 命令行的精髓。管道能将一个命令的输出作为另一个命令的输入,例如 ps aux | grep nginx 用于查找 nginx 进程。重定向可以将输出保存到文件(ls > file.txt)或追加到文件末尾(echo new line >> file.txt),甚至将标准错误重定向(command 2> error.log)。
使用 Ctrl 键组合进行快速编辑
在命令行中,使用键盘快捷键远比频繁使用方向键和退格键高效。Ctrl + A 跳到行首,Ctrl + E 跳到行尾。Ctrl + U 删除从光标处到行首的所有内容,Ctrl + K 删除到行尾。Ctrl + W 删除前一个单词。熟练运用这些快捷键能让你在修正命令时如鱼得水。
利用作业控制管理进程
当运行一个耗时较长的命令时,可以使用作业控制将其放在后台运行。在命令后加上 & 符号(如 sleep 100 &)可以使其在后台启动。如果命令已经在前台运行,可以按 Ctrl + Z 将其暂停并放入后台,然后使用 bg 命令让其在后台继续运行。使用 jobs 命令查看后台作业,使用 fg %n 将作业 n 切换回前台。
高效的文件查找技巧
find 命令功能强大但语法稍复杂。常用示例:find /home -name .txt 查找所有 .txt 文件;find /var/log -mtime -7 查找过去 7 天内修改过的文件。对于按文件名快速搜索,locate 命令更快,因为它基于数据库索引,使用前可能需要先运行 updatedb 更新数据库。
结合 xargs 处理查找结果
当需要对 find 找到的文件进行操作时,可结合管道和 xargs。例如,删除所有临时文件:find . -name .tmp -type f | xargs rm -f。这比在 find 中直接使用 -exec 选项在某些情况下更高效。
强大的文本处理工具:grep, sed, awk
这“三剑客”是处理文本数据的利器。grep 用于过滤行,grep error logfile 会显示包含 “error” 的行。sed 用于流编辑,可以进行查找替换、删除行等操作,如 sed 's/foo/bar/g' file.txt 将文件中所有 “foo” 替换为 “bar”。awk 更是一门强大的编程语言,特别适合处理结构化文本(如日志),可以轻松提取字段并进行计算。
使用 tar 高效归档和解档
虽然 tar 命令参数繁多,但记住几个常用组合即可应对大部分场景。创建压缩包:tar -czvf archive.tar.gz /path/to/dir(c: 创建,z: gzip 压缩,v: 显示详情,f: 指定文件名)。解压压缩包:tar -xzvf archive.tar.gz(x: 解压)。查看压缩包内容:tar -tzf archive.tar.gz。
通过 SSH 密钥实现免密登录
频繁通过 SSH 管理多台服务器时,每次输入密码非常麻烦。使用 SSH 密钥对可以实现免密登录。使用 ssh-keygen 生成本地密钥对(公钥和私钥),然后使用 ssh-copy-id user@hostname 将公钥部署到目标服务器。完成配置后,再次 SSH 连接时即可自动认证,极大提升了远程管理效率。

被折叠的 条评论
为什么被折叠?



