马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
刚上手 Linux 的人最容易卡在同一个地方:命令看着都认识,敲下去却不是想要的结果。差别往往不在命令本身,而在它的选项。这篇文章把开发、运维日常最高频的十条指令——mkdir、rmdir、rm、man、cp、mv、less、find、tar——按"能干什么、常用选项是什么、容易踩什么坑"重新梳理一遍,顺带把原文里被吞掉空格的命令补全,照着抄就能跑。
一、mkdir:建目录
1. 基本用法
在当前目录下建一个叫 dirname 的目录,直接:
mkdir dirname
2. -p 一次建多级目录
-p(--parents)后面可以跟一个完整路径。路径里任何一层不存在时,系统会自动补齐,不必层层先建:
mkdir -p /data/logs/nginx/access
不加 -p 直接写 mkdir /data/logs/nginx/access,只要父目录不存在就会报 "No such file or directory"。批量迁移目录结构时,-p 基本是必选项。
二、rmdir 与 rm:删东西
1. rmdir 只能删空目录
rmdir 和 mkdir 是对偶的命令,专管删除空目录,语法 rmdir [-p] [dirName]。只要目录里还有文件,就会拒绝执行并返回目录非空。
rmdir -p /data/logs/nginx/access
-p 的作用是:子目录删掉之后,如果父目录也跟着空了,就把它一并删掉。
2. rm 通吃文件与目录
rm 才是日常主力,语法 rm [-f -i -r -v] [dirName/dir],四个选项记法如下:
-f:即使文件是只读的(写保护),也直接删,不给任何提示。
-i:删除前逐一询问确认,安全但慢。
-r:递归删除目录及其下所有内容。
-v:详细模式,逐条打印删除过程,适合核对范围。
删目录别漏 -r,单个 rm dir 只会报错。生产环境建议先 rm -ri 走一遍,或直接先打包再删。
三、man:查说明书
命令参数记不全太正常,联机手册就是为此存在的,语法 man [选项] 命令。三个常用选项:
-k:按关键字搜联机帮助,比如 man -k tar。
num:只在指定章节里找,如 man 5 passwd。
-a:把所有章节都显示出来。以 man printf 为例,默认从第一章开始,找到就停;加上 -a 后按 q 退出还会继续往下搜,直到八章全部过完。
man 的八章大致分工:
| 章节 | 内容 | 举例 |
| 1 | 单行命令帮助 | man ls |
| 2 | 系统调用(system calls) | man open |
| 3 | 库函数 | man malloc |
| 4 | 设备驱动与网络协议 | man tcp |
| 5 | 配置文件与系统管理文件 | man passwd |
| 6 | 游戏(games) | — |
| 7 | 系统文档布局 | man man-pages |
| 8 | 管理与线程控制、管理员命令 | man useradd |
四、cp 与 mv:复制与移动
1. cp 复制
语法 cp [选项] 源文件或目录 目标文件或目录。要点是:一次给两个以上源,且最后一个参数是已存在的目录时,前面的源会全部复制进去;若最后一个参数不是已存在目录,就会报参数错误。常用选项:
-f / --force:强行复制,不管目标是否已存在。
-i / --interactive:覆盖前先问用户。
-r / -R / --recursive:递归处理,把目录下文件与子目录一并搬走。
cp -r /opt/nginx/conf /opt/nginx/conf.bak
cp -i /etc/nginx/nginx.conf /etc/nginx/nginx.conf.diy
2. mv 移动兼改名
mv 是 move 的缩写,Linux 下用来移动文件或给文件改名,也常用来备份。行为由第二个参数决定:
- 第二个参数是文件时:执行改名。源文件只能有一个(也可以是源目录名)。
- 第二个参数是已存在的目录名:源可以有多个,全部移进去。
mv -f old.log new.log
mv -i /data/tmp/* /data/logs/
选项 -f 强制覆盖不询问,-i 目标已存在时先问。批量挪文件前先加 -i,能省掉一次回滚。
五、less:翻文件
less 是 Linux 正统的内容查看工具,比 more 灵活得多:more 只能往后翻,less 能前后自由翻,而且打开时并不把整个文件读进内存,看大日志 尤其省资源。
语法 less [参数] 文件,常用按键:
-i:忽略搜索时的大小写。
-N:显示每行行号。
/字符串:向下搜索;?字符串:向上搜索。
n:重复前一个搜索;N:反向重复前一个搜索。
q:退出。
less -N /var/log/messages
配合管道用得最多:journalctl -u nginx | less,再按 /error 定位报错行。
六、find:按条件找文件
find 在目录树里搜索文件并执行指定操作,条件非常多。哪怕系统挂着 NFS 网络文件系统,只要有对应权限照样能搜。注意:遍历大文件系统(30G 以上级别)很吃资源,建议放到后台跑或用 nohup ... & 挂起。
语法 find pathname -options,最常用的是 -name 按文件名查:
find /var/log -name "*.log"
find /etc -name "nginx.conf"
删旧日志 时也常用它联用 -delete,但建议先只查不删,确认命中范围再动手。
七、tar:打包与解包
tar 的 [-cxtzjvf] 一组参数是老朋友了:
-c:建立一个压缩文件(create)。
-x:解开压缩文件。
-t:查看 tar 包里的文件列表。
-z:同时具备 gzip 属性,用 gzip 压缩。
-j:同时具备 bzip2 属性,用 bzip2 压缩。
-v:压缩过程显示文件,常用但不建议放进后台任务。
-f:指定档名。注意 f 后面立刻接档名,不要再追加其它参数。
-C:解压到指定目录。
# 打包压缩
tar -czvf /data/backup/nginx.conf.tgz /etc/nginx/
# 解包到指定目录
tar -xzvf /data/backup/nginx.conf.tgz -C /opt/nginx/
# 只看不改
tar -tzvf /data/backup/nginx.conf.tgz
八、一条顺手的收尾
这些命令单看都简单,真正顺手靠的是重复:建目录想 -p、删目录想 -r、看文件想 less 加 / 搜索、找文件想 find 加 -name、备份想 tar 加 -C。遇到记不全的参数,man 命令名永远比背更可靠。先按上面这九条敲几遍,命令行的效率就上来了。
qidao123.com企服评测-应用市场 编辑提示
本文按 mkdir 的 -p 多级建目录、rmdir 与 rm 的 -f/-i/-r/-v 四个选项、man 的 -k/-num/-a 与八章分工、cp 与 mv 的 -f/-i/-r/-R 行为差异、less 的 -i/-N 与 / ? n N q 按键、find 的 -name 与大目录后台执行、tar 的 -c/-x/-t/-z/-j/-v/-f/-C 组合,重排成一份可照抄的命令速查。命令与选项均取自 Linux 通用手册,路径与示例为示意值,请以自身系统实际版本为准;删除类操作在自有或已授权环境中进行,未授权设备请勿执行。 |