常用 Linux 命令进阶用法详解
在日常使用 Linux 的过程中,掌握一些常用命令的进阶用法可以大大提高工作效率。本文将详细介绍 mkdir、vi、cp、mv、tail、head、top、grep 和 cat 这些常用命令的进阶用法。
- mkdir(创建目录)
1.1 创建单个目录
bash
mkdir directory_name
创建一个名为 directory_name 的新目录。
1.2 创建多级目录
bash
mkdir -p /path/to/parent/child/grandchild
-p 选项允许递归地创建多级目录。
1.3 设置权限创建目录
bash
mkdir -m 755 /path/to/dir
-m 选项允许在创建目录时设置权限。
1.4 创建多个目录
bash
mkdir dir1 dir2 dir3
同时创建多个目录 dir1、dir2 和 dir3。
1.5 使用通配符创建目录
bash
mkdir dir{A,B,C}
创建三个目录 dirA,dirB 和 dirC。
2. vi(文本编辑器)
2.1 基本编辑操作
进入插入模式:按 i 键进入插入模式。
退出插入模式:按 Esc 键返回命令模式。
保存并退出:输入 :wq 保存文件并退出。
强制退出不保存:输入 :q! 强制退出,不保存更改。
2.2 查找和替换文本
查找文本:输入 /pattern 查找并高亮显示匹配的文本。
替换文本:输入 :s/old/new/g 替换当前行的匹配项,输入 :%s/old/new/g 替换整个文件的匹配项。
2.3 复制和粘贴
复制文本:输入 yy 复制当前行。
粘贴文本:输入 p 将复制的内容粘贴到当前光标位置。
2.4 撤销和重做
撤销操作:输入 u 撤销上一步的操作。
重做操作:输入 Ctrl+r 重做上一步的操作。
- cp(复制文件或目录)
3.1 复制单个文件
bash
cp source.txt destination.txt
将 source.txt 文件复制为 destination.txt。
3.2 递归复制目录
bash
cp -r /source/directory /destination/directory
-r 选项允许递归复制目录及其内容。
3.3 强制覆盖目标文件
bash
cp -f source.txt /destination/
-f 选项在目标文件已存在时强制覆盖。
3.4 保留原文件属性
bash
cp -p source.txt /destination/
-p 选项保留文件的时间戳、权限和所有者信息。
3.5 交互式复制
bash
cp -i source.txt /destination/
-i 选项在目标文件已存在时提示确认是否覆盖。
3.6 显示复制过程
bash
cp -v source.txt /destination/
-v 选项显示复制过程的详细信息。
3.7 复制多个文件到目录
bash
cp file1.txt file2.txt file3.txt /path/to/directory/
将多个文件复制到指定目录。
4. mv(移动或重命名文件/目录)
4.1 移动文件到目录
bash
mv file.txt /path/to/directory/
将 file.txt 移动到指定目录。
4.2 重命名文件或目录
bash
mv oldname.txt newname.txt
将 oldname.txt 重命名为 newname.txt。
4.3 移动多个文件到目录
bash
mv file1.txt file2.txt /path/to/directory/
将多个文件移动到指定目录。
4.4 强制覆盖目标文件
bash
mv -f source.txt /path/to/destination/
-f 选项强制移动文件,覆盖现有文件。
4.5 交互式移动或重命名
bash
mv -i source.txt /path/to/destination/
-i 选项提示用户确认是否覆盖现有文件。
4.6 避免覆盖目标文件
bash
mv -n source.txt /path/to/destination/
-n 选项避免覆盖现有文件。
4.7 显示详细操作信息
bash
mv -v source.txt /path/to/destination/
-v 选项显示移动或重命名操作的详细信息。
4.8 移动目录及其内容
bash
mv /path/to/source_directory /path/to/destination/
将整个目录及其内容移动到目标目录。
4.9 备份目标文件
bash
mv -b source.txt /path/to/destination/
-b 选项在覆盖前备份目标文件,通常以 ~ 结尾。
4.10 指定备份文件的后缀
bash
mv --backup=numbered source.txt /path/to/destination/
–backup 选项指定备份文件的后缀类型,如 numbered。
4.11 移动符号链接
bash
mv -L symlink /path/to/destination/
-L 选项移动符号链接指向的实际文件。
4.12 防止覆盖时追加新文件名
bash
mv -b -S .bak source.txt /path/to/destination/
-S .bak 选项指定备份文件的后缀名为 .bak。
5. tail(查看文件末尾内容)
5.1 查看最后 10 行
bash
tail /path/to/logfile.log
默认显示文件的最后 10 行。
5.2 查看最后 20 行
bash
tail -n 20 /path/to/logfile.log
-n 选项指定显示的行数,例如显示最后 20 行。
5.3 持续监控文件
bash
tail -f /path/to/logfile.log
-f 选项持续监控文件内容的变化,适用于实时查看日志。
5.4 与 grep 结合使用
bash
tail -f /path/to/logfile.log | grep "ERROR"
实时查看日志文件并过滤显示包含 “ERROR” 的行。
5.5 查看多个文件的尾部
bash
tail -f file1.log file2.log
同时监控多个文件的末尾内容。
6. tail -f(实时查看文件更新)
6.1 实时查看文件更新
bash
tail -f /path/to/logfile.log
持续监控文件的最后几行,并显示文件的新内容。
6.2 显示特定行数并实时监控
bash
tail -n 100 -f /path/to/logfile.log
显示文件的最后 100 行,并继续监控文件内容的变化。
6.3 在进程结束时停止监控
bash
tail -f --pid=1234 /path/to/logfile.log
指定的进程结束时,tail -f 会自动退出。
7. head(查看文件开头内容)
7.1 查看文件的前 10 行
bash
head /path/to/file.txt
默认显示文件的前 10 行。
7.2 查看文件的前 20 行
bash
head -n 20 /path/to/file.txt
-n 选项指定显示的行数,例如显示前 20 行。
7.3 与 grep 结合使用
bash
head -n 100 /path/to/file.txt | grep "pattern"
查看文件开头的内容并过滤显示匹配的行。
7.4 显示除最后几行外的所有行
bash
head -n -5 /path/to/file.txt
显示文件中除最后 5 行外的所有行。
8. top(动态显示系统进程)
8.1 查看进程的动态信息
bash
top
实时查看系统中运行的所有进程的动态信息,包括 CPU、内存使用情况等。
8.2 按 CPU 使用率排序
在 top 中,按下 P 键可以按 CPU 使用率排序显示进程。
8.3 按内存使用率排序
在 top 中,按下 M 键可以按内存使用率排序显示进程。
8.4 仅显示特定用户的进程
bash
top -u username
仅显示指定用户的进程。
8.5 显示特定 PID 的进程
bash
top -p PID
显示特定进程 ID 的进程信息。
8.6 终止进程
在 top 中,按下 k 键,然后输入要终止的进程 ID。
8.7 持续时间设置
bash
top -d 5
-d 选项设置 top 更新显示的间隔时间(以秒为单位)。
9. grep(搜索文本内容)
9.1 在文件中搜索字符串
bash
grep "pattern" file.txt
搜索 file.txt 文件中包含 pattern 的行并显示。
9.2 递归搜索目录
bash
grep -r "pattern" /path/to/directory/
-r 选项允许递归搜索目录中的文件。
9.3 忽略大小写
bash
grep -i "pattern" file.txt
-i 选项忽略大小写进行搜索。
9.4 显示行号
bash
grep -n "pattern" file.txt
-n 选项在显示匹配结果时显示行号。
9.5 只显示匹配的文件名
bash
grep -l "pattern" /path/to/directory/*
-l 选项只显示包含匹配模式的文件名。
9.6 搜索多个文件
bash
grep "pattern" file1.txt file2.txt
同时搜索多个文件中的匹配模式。
9.7 显示匹配行的上下文
bash
grep -C 2 "pattern" file.txt
-C 选项显示匹配行及上下文各两行。
9.8 显示不匹配的行
bash
grep -v "pattern" file.txt
-v 选项显示不包含匹配模式的行。
9.9 从命令输出中搜索
bash
ps aux | grep "sshd"
搜索进程列表中包含 sshd 的行。
10. cat(查看文件内容)
10.1 查看单个文件内容
bash
cat file.txt
显示 file.txt 文件的内容。
10.2 查看多个文件内容
bash
cat file1.txt file2.txt
将多个文件的内容串联显示。
10.3 显示行号
bash
cat -n file.txt
-n 选项显示文件内容的行号。
10.4 将文件内容重定向到新文件
bash
cat file1.txt > newfile.txt
将 file1.txt 的内容复制到 newfile.txt。
10.5 追加文件内容到现有文件
bash
cat file1.txt >> existingfile.txt
将 file1.txt 的内容追加到 existingfile.txt 末尾。
10.6 合并多个文件
bash
cat file1.txt file2.txt > combined.txt
将 file1.txt 和 file2.txt 的内容合并并保存到 combined.txt。
10.7 反向显示文件内容
bash
tac file.txt
tac 是 cat 的反向显示版本,从文件末尾向上显示内容。
10.8 通过管道将内容传递给其他命令
bash
cat file.txt | grep "pattern"
将 file.txt 的内容通过管道传递给 grep,以过滤包含 pattern 的行。
以上就是常用 Linux 命令的详细进阶用法。希望这些内容能帮助你更高效地使用 Linux 系统进行文件管理、文本处理和系统监控。如果你有更多的问题或需要更深入的解释,欢迎留言讨论!
转载请注明出处。