小维的学习笔记和工具

Linux常用命令和技巧

不少人刚开始接触Linux的时候,会觉得它有点“高冷”——黑乎乎的屏幕上只有一行行代码,哪有Windows或者macOS的图形界面来得亲切。但只要你熬过了最初那段需要疯狂百度“怎么解压文件”、“怎么进入目录”的日子,就会慢慢发现,用命令行操作系统的这种“掌控感”,是图形界面给不了的。

我一直觉得,学习Linux命令不是为了去背“手册”,而是为了让自己在面对服务器卡死、日志爆满、需要批量处理几百个文件的时候,能多一份从容。今天这篇文章,不追求把所有的命令参数都罗列出来,我想从一个日常使用的角度,聊聊那些真正高频、且好用的命令和组合。

一、别急着背参数,先学会在文件系统里“走路”

刚装好Linux系统,我们大部分时间都是在跟文件和目录打交道。很多人会问,为什么非要用命令?我用鼠标点开文件夹不行吗?在你自己电脑上当然可以,但当你通过SSH连到一台远在机房的服务器上时,那里可没有鼠标给你用。

1. 我是谁?我在哪?—— pwd
每次在终端里迷路了,或者路径太深看不清自己在哪,我都会条件反射地敲一下pwd。它会告诉你当前所在的绝对路径,就像一个GPS定位器

2. 溜达和偷窥—— cd 和 ls
cd是切换目录,cd ..是返回上一层,cd ~是直接回家(用户主目录),cd -是哪儿凉快哪儿呆着去…哦不对,是回到上一次呆过的目录,这个在两个长路径之间切换时特别好用

ls是查看目录里有啥。我几乎从来不用裸的ls,因为信息太少了。ls -l(简写为ll,很多系统都默认给这个命令起了别名)可以看权限、大小、修改时间。ls -a则是为了瞅一眼那些隐藏文件(以点开头的)

3. 生娃和搬家—— mkdirtouchrmmvcp
想建个新文件夹?mkdir directory_name。如果想建一个多级目录,比如 a/b/c,直接 mkdir -p a/b/c 搞定,省得一级一级地建
touch 用来创建一个新空文件,或者更新一下文件的“最后修改”时间戳
rm 是删除。这里有个血的教训:rm -rf 威力巨大,尤其是 rm -rf /,千万别随便敲,这是删库跑路的节奏。-r是递归,-f是强制,用的时候一定看清楚路径。
mv 既可以移动文件,也可以重命名。cp 是复制,复制目录记得加 -r

二、看文件不是只有 cat,得学会挑着看

1. 只想看一眼文件头或尾—— head 和 tail
用 cat 查看一个大文件,屏幕会刷得飞快,根本看不清。排查日志的时候,我90%的时间都在用 tailtail -f logfile.log 这个命令简直是神器,它可以实时滚动显示日志文件新写入的内容,让你亲眼看着程序在后台干了些什么

2. 翻页慢慢看—— less
less 是我最喜欢的翻页工具。less huge_file.log 进去之后,可以按空格往下翻,按 b 往上翻,还能直接按 / 来搜索关键词,按 q 退出

3. 大海捞针—— grep
grep 是文本搜索的瑞士军刀。最常见的用法是在一堆文件里找包含某段内容的东西。比如服务器报错了,你想在日志目录里找出所有带“error”的行:grep -r "error" /var/log/-r 就是递归搜索子目录

三、权限这件事,真的没那么玄乎

Linux是个多用户系统,权限管控很严。你用 ls -l 看到的那些 -rw-r--r-- 字符串,其实就表达了三个身份(所有者、所属组、其他人)各自能否读(r)、写(w)、执行(x)。

新手最懵的就是 chmod 命令的777、755这些数字。
记住一个口诀:r=4,w=2,x=1
所以 7 = 4+2+1(读写执行),6 = 4+2(读写),5 = 4+1(读和执行)。
chmod 755 filename 的意思是:文件所有者可以干任何事(7),同组的人和其他人都只能读和执行(5),但不能瞎改

四、想偷懒?这些组合技和快捷键你得会

命令行的魅力就在于组合,像搭积木一样。

1. 管道 |——把前后命令连起来
这是Linux最核心的思想。比如你想找一下当前目录下有没有包含“password”的配置文件,又不想一个个打开看:
ls -l | grep "\.conf$" | xargs grep "password"
这条命令的意思是:先列出当前目录文件,把结果传给 grep 筛选出所有以 .conf 结尾的文件,再把这些文件名传给 xargs,让 xargs 去逐个 grep “password”这个词。一行命令干了三层活儿

2. 重定向 > 和 >>
有时候命令结果太多了,屏幕装不下,或者你想保存下来。> 可以把输出结果扔进一个文件里(覆盖原文件),>> 则是追加到文件末尾。比如把编译日志保存下来慢慢看:
make > build.log 2>&1
这后面那个 2>&1 是把错误信息也一起扔进文件。

3. 历史命令——别再重复敲了
按上箭头可以翻刚才敲过的命令。输入 history 能看到最近敲过的所有命令。如果你记得刚才敲过一条很长的命令里面有“nginx”,可以按 Ctrl + r,然后输入nginx,系统会自动帮你搜索匹配的历史命令,回车就能执行

4. 别名 alias——给长命令起个小名
如果你觉得 docker ps --format "table {{.Names}}\t{{.Status}}" 这种命令太长记不住,可以给它起个别名:
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}"'
以后敲 dps 就行了。把这个写到 ~/.bashrc 文件里,就可以永久生效

五、看一眼就知道系统状态

  • df -h:看看磁盘还有多少空间。网站挂掉一半的原因都是磁盘写满了,这个命令能救命
  • du -sh *:看看当前目录下各个文件夹有多大,帮你揪出是谁在吃磁盘
  • free -h:瞅一眼内存用了多少,交换分区用了多少。
  • top 或 htop:看哪个进程在吃CPU、吃内存。按 q 退出。htop 界面更友好,颜色更漂亮,但可能需要额外安装
  • ps aux | grep something:查一下某个进程是不是还在跑,或者它的PID是多少

六、写在最后的一点心里话

Linux命令这东西,光看文章是记不住的。我最开始学的时候,专门在电脑上开了个虚拟机,没事就进去折腾,把系统搞崩过无数次,但也正是那些报错和修复的过程,让我真正记住了这些命令。

别怕敲错命令,只要不是 rm -rf /*,大多数错误都有挽回的余地。多敲几次,肌肉记忆就形成了。哪天你发现自己能不用鼠标就在服务器里穿梭自如,处理各种问题的时候,你就会觉得,当初在黑色屏幕前抓耳挠腮的时光,都是值得的。

希望上面这些啰嗦话,能对刚入门的你有点帮助。

未经允许不得转载:小维的学习笔记和工具 » Linux常用命令和技巧