【Linux】Linux必备的底子指令

[复制链接]
发表于 2026-10-3 16:21:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、先说清楚:学 Linux 命令是为了什么

Linux 本身提供了一些 API,供程序调用来完成更复杂的编程任务(比如文件操作、多线程编程、socket 编程等)。但由于 Java 跨平台特性的关系,这部分能力已经被 Java 自身封装好了(流对象、Thread 对象、Socket 对象等),所以走 Java 路线的人不必再去啃系统编程那一层。

真正绕不开的是另一件事:部署 JavaWeb 项目。自己写的 web 程序,要让别的用户能访问,就必须发布到服务器上。这就得会敲命令、会用终端。

终端软件是一类工具软件,可以和远程主机建立网络连接,从而对主机进行操作。下面讲解中用的是 Xshell。

二、高频命令第一组:看与走

1. ls

语法:ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件;对于文件,将列出文件名以及其他信息。

选项作用
-a列出目录下的全部文件,包括以 . 开头的隐含文件
-d将目录像文件一样显示,而不是显示其下的文件(如 ls -d 指定目录)
-k以 k 字节的形式表示文件大小
-l列出文件的详细信息
-r对目录反向排序
-t以时间排序
-R列出全部子目录下的文件(递归)
ls -l           # 长格式,日常用得最多
ls -al          # 长格式 + 含隐藏文件
ls -lrt         # 按时间倒序,看最近被改过的文件

2. pwd

语法:pwd  功能:显示用户当前所在的目录。

[root@host ~]$ pwd
/root

3. cd

Linux 系统中,磁盘上的文件和目录被组织成一棵目录树,每个节点都是目录或文件。语法:cd 目录名,功能是改变工作目录。

cd ..           # 返回上级目录
cd ~            # 进入用户家目录(或直接敲 cd)
cd -            # 返回最近访问过的目录
cd /etc/nginx   # 绝对路径进去

cd - 和 cd ~ 是两个完全不同的键位,新手最常搞混。

4. touch

语法:touch [选项]… 文件…  功能:touch 命令参数可更改文档或目录的日期时间(包括存取时间和更改时间),或者新建一个不存在的文件。

touch test.txt

5. cat

语法:cat [选项] [文件]  功能:查看目标文件的内容。

cat test.txt
cat -n test.txt     # 对输出的全部行编号(看配置文件时很实用)
cat a.txt b.txt     # 连着输出两个文件

6. mkdir

语法:mkdir [选项] dirname…  功能:在当前目录下创建一个名为 dirname 的目录。

mkdir test                 # 新建一级目录
mkdir -p test/test1        # 递归建立多个目录(-p、--parents)

-p 是"路径中某些目录尚不存在就自动建好"的意思,一次可以建立多级目录——这是它和裸 mkdir 的唯一区别,但也是最常用的一处。

7. rm

语法:rm [-f -i -r -v] [dirName/dir]  功能:删除文件或目录。

选项作用
-f即使文件属性为只读(写保护),亦直接删除
-i删除前逐一询问确认
-r删除目录及其下所有文件
rm test.txt
rm -rf test/          # 删目录,无提示(危险组合,务必确认路径)

rm -rf 没有回收站,写错路径就直接没了。生产上建议养成 rm -i 的习惯,或至少对重要目录先 tar 一份。

三、高频命令第二组:搬与看

1. cp

语法:cp [选项] 源文件或目录 目标文件或目录  功能:复制文件或目录。

说明:cp 指令用于复制文件或目录;若同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的全部文件或目录复制到此目录中;若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息——这是 cp 报错最常见的场景。

选项作用
-f / --force强行复制文件或目录,不管目标是否已存在
-i / --interactive覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理
-R / --recursive递归处理,同上
cp test1.txt test2.txt
cp -r dir1 dir2

2. mv

语法:mv [选项] 源文件或目录 目标文件或目录。功能有两条路径:

  • 当第二个参数是文件时:mv 完成文件重命名,此时源文件只能有一个,它把所给的源文件或目录重命名成给定的目标文件名。
  • 当第二个参数是已存在的目录名称时:源文件或目录参数可以有多个,mv 把各参数指定的源文件均移至目的目录中。

判断"这是重命名还是移动",就看第二个参数是文件还是目录——这一条搞定 90% 的疑问。

mv test1.txt test2.txt      # 第二个参数是文件 → 重命名
mv test1.txt /tmp/          # 第二个参数是目录 → 移动
mv dir1 dir2                # 目录已存在 → 移到里面;不存在 → 改名

常用选项:-f 强制覆盖不询问;-i 目标已存在时先问。

3. tail

语法:tail [必要参数] [选择参数] [文件]  功能:显示指定文件的末尾内容,不指定文件时作为输入信息处理。常用于查看日志日志文件。

tail -10 test1.txt       # 显示末尾 10 行(-n 指定行数)
tail -f access.log       # 循环读取,实时跟踪(看日志日志神器)

tail -f 是排查线上问题的第一工具,配 grep 更好使:tail -f app.log | grep ERROR。

4. vim

vim 是一个著名的文本编辑器,相当于 Windows 的记事本,只不过功能强大一些。

  1. 创建/打开文件:vim 文件名
  2. 进入插入模式:vim 打开文件后默认是普通模式——普通模式下键盘的按键表示特殊功能的快捷键(比如按下 j 不是输入字母 j,而是表示光标往下移动一行)。要进入插入模式才能做文本编辑,使用 i 键(左下角提示 --INSERT--)。
  3. 保存:插入模式下不能保存文件,先按 Esc 回到普通模式;在普通模式下输入 :w 回车即可保存。
  4. 退出:文件未修改,输入 :q 回车即可退出;文件修改并保存了,用 :wq 同时执行保存和退出;文件修改但不希望保存,用 :q! 强制退出。

一句话:Esc 回普通模式,:w 存,:q 退,:wq 存并退,:q! 不保存强退。

四、运维三件套:grep / ps / netstat

1. grep

语法:grep [参数]… [文件]…  功能:查找文件中是否包含指定字符串,并显示对应的行。

选项作用
-n显示行号
-w全字匹配,要求整个单词完全相同的才能匹配,而不仅仅是一个单词的一部分
-r递归查找,可以搜索多级目录下的所有文件
--color高亮查找到的结果
--include指定查找某些文件
--exclude指定排除某些文件
grep "hello" Hello.java
grep -rn "Timeout" /opt/app --include="*.log"

2. ps

语法:ps [参数]…  功能:查看当前系统上运行的进程。

选项作用
a显示一个终端的全部进程
(无字母选项)以用户为主的格式来显示进程状况
x显示所有进程,不止是会话中的进程
e显示全部进程,包括系统守护进程
f显示完整格式输出
ps aux              # 显示系统上所有的进程(最常用)
ps aux | grep "进程名"
ps aux | grep "进程id"
ps aux | grep java | grep -v grep      # 找 java 进程,排除 grep 自身

看到陌生的进程先别急着 kill,用 ps -ef 看父进程(PPID)、用 lsof -p PID 看它开了哪些文件端口,确认是什么服务。

3. netstat

语法:netstat [参数]…  功能:查看系统上的网络状态。

选项作用
-a显示全部正在或不在侦听的套接字
-n显示数字形式地址,而不是去解析主机、端口或用户名(快,且不因 DNS 卡住)
-p显示套接字所属进程的 PID 和名称
netstat -anp
netstat -anp | grep "进程名"
netstat -anp | grep "端口号"

"端口被谁占了"的标准答案就是 netstat -anp | grep 端口号,一眼看到 PID,再 ps -fp PID 看是什么。

五、一条速查卡片

分类命令一句话
浏览ls -al / pwd / cd看全(含隐藏)、看我在哪、去哪儿
建删touch / mkdir -p / rm -rf建文件、建多级目录、删(小心)
读写cat -n / vim直接看、编辑(i 插入 / :wq 存退)
搬移cp -r / mv复制、重命名或移动(看第二个参数是文件还是目录)
日志日志tail -f / grep -n实时跟、全文搜
排查ps aux / netstat -anp看进程、看端口归属

六、上手顺序建议

  1. 先练熟"看与走":ls -l、pwd、cd 三件套,能在服务器里自由导航。
  2. 再练编辑:只用 vim 的 i / Esc / :w / :wq / :q! 五个键,够改 80% 的配置。
  3. 然后补读写:cat -n 配 tail -f,看日志、改配置。
  4. 最后上排查:grep、ps、netstat 三个一起,能定位"端口谁占的、进程谁起的、日志哪有异常"。

小结

这一组命令的核心规律其实很简单:

  • 看:ls 带 -a(含隐藏)、-l(详情)、-R(递归);cat -n 看内容带行号。
  • 走:pwd 看位置,cd .. / cd ~ / cd - 三种跳转。
  • 建删:mkdir -p 建多级,rm -rf 删目录(无回收站,慎用)。
  • 搬移:cp -r 复制目录,mv 看第二个参数是文件(重命名)还是目录(移动)。
  • 排障:tail -f 跟日志、grep -n 搜文本、ps aux 看进程、netstat -anp 看端口归属。

把这几条练到不用想就能敲出来,日常运维就基本够用了。

(本文由 qidao123.com企服评测-应用市场 编辑提示整理:示例基于 GNU Coreutils 与 procps/net-tools 工具集,适用于 CentOS / Ubuntu / openEuler 等主流 Linux 发行版的运维入门。)

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表