刚入行的时候,我也被Linux命令的数量吓到过。总觉得要背下所有命令才能干活其实完全没必要,用得多的命令自然形成肌肉记忆了,冷门的命令用法直接 “命令 --help” 或 “man 命令” 就能查到今天把这20个命令按场景整理出来,每个都附上我最常用的例子,不管干了几年,这些命令每天都在用文件操作是Linux最基础的技能,刚入行时,我每天敲得最多的就是这5个命令。1.ls —— 查看文件列表
什么时候用:想知道当前目录下有什么文件,或者想看某个文件的详细信息提醒:ll是ls -l 的命令别名,不信可用 alias 命令查看2.cd —— 切换目录
cd .. #返回上一级目录cd - #返回上一次所在的目录(这个很实用,经常在两个目录间来回切换)cd 或 cd ~ # 返回到当前用户的家目录
3. cp—— 复制文件或目录
什么时候用:要备份文件、或者把文件复制到另一个地方cp -a file1.txt file2.txt #复制file1.txt为file2.txtcp -r dir1/ dir2/ # 复制整个目录(-r 表示递归复制)cp -i file1.txt /tmp/ # -i 参数,覆盖前会询问确认
其中,最经典的 -a是-dR --preserve=all的简写:意思是“递归复制(-R)+ 保留链接(-d)+ 保留一切属性(--preserve=all)它不仅会复制文件内容,还会像“乾坤大挪移”一样,把文件的所有“灵魂”——属性、权限、时间戳都原封不动地搬过去一个真实场景:修改配置文件之前,先备份是运维的基本修养。cp -a /etc/nginx/nginx.conf{,.bak}
改坏了?直接 cp -a nginx.conf.bak nginx.conf 还原4. mv —— 移动或重命名文件
什么时候用:把文件挪到另一个地方,或者给文件改个名字。mv file1.txt /tmp/ #把file1.txt移动到/tmp目录mv oldname.txt newname.txt # 重命名文件(同一个目录下移动就是重命名)
一个真实场景:整理日志文件,把7天前的挪到归档目录后并改名mv access.log.7.gz /var/log/archive/ access.log_7.gz
注意:mv 没有 -r 参数,移动目录直接写就行,不需要加额外参数5. rm —— 删除文件或目录
rm file.txt #删除文件rm -f file.txt # 强制删除,不询问(-f = force)rm -rf /tmp/old_dir/ # 强制删除整个目录(-r 递归,-f 强制)
rm -rf 是Linux里最危险的命令,没有之一rm -rf / 或 rm -rf /*,这会删除整个系统一个更安全的做法:不确定要不要删的文件,先 mv 到一个“待删除”目录,放几天确认没问题再删。6. cat/less/head/tail —— 看文件内容
cat log1 #一次遍历文件内容,如果文件内容很多,很不方便阅读less log1 #在遍历文件内容基础上自动分页,可通过 j 、k 键上下翻页head -n 10 log1 #查看文件最开始定义的行,但不支持实时查看tail -f -n 500 log1 # 实时查看文件的最后500行,看日志最常用
提醒:日常排查时,更快的敲法是tail -500flog1 等于 tail -f -n 500 log17. find/grep —— 查找文件
老司机们都知道,这两个命令异常强大,还支持通配符匹配和正则表达式find /var/log/ -type f -name "*.log" -mtime +7 #查找/var/log目录下最近7天前内容更新过、且以.log结尾的文件grep -r "Error" /var/log/ #查找/var/log目录下包含文本“Error”的文件,但很耗费磁盘IOgrep "Error" 1.log #匹配列出在当前目录下的file1里包含“Error”的报错文本
-type 代表要查找的文件类型,最常用的是 f 文件、d目录-mtime 要查找文件的内容修改时间,单位是天,计算的是时间差,不是具体日期比如:+7 是7天前修改过内容的、-7 是7天内修改过内容的一个真实场景: 清理旧的备份文件的脚本里经常会经常用到 find ,先找到更早的备份文件然后清理掉,腾出磁盘空间这7个命令的组合技巧
ls -ltr#查看当前目录有哪些文件find /var/log/ -type f -name "*.log" -mtime +7#查找日志目录下7天前修改过的、且以.log结尾的文件tail -500f 1.log#实时查看日志文件的最后500行grep "Error" 1.log#看日志文件里是否包含报错文本cp -a config.yml config.yml.bak#复制一份配置文件做备份mv config.yml.bak config.yml#改坏了?改回来rm config.yml.bak#确认没问题了,删掉备份cd /var/log/#去另一个目录继续干活
这就是运维工作的基本日常——查看、复制、移动、删除、切换,反复循环你不用背,收藏这篇文章,用的时候回来查。用多了自然就记住了。