Linux进阶
之前还没有系统性的学习和总结下Linux,今天让我补全下🤕
Linux安装
因为我们并没有云服务器,所以需要在我们的windows系统电脑上安装Linux。
Linux的版本有很多,这里我选择的是Ubuntu。
安装Linux虚拟机有两种方式:
通过VMware虚拟机
通过WSL
两者核心区别:
| 项目 | VMware 虚拟机 | WSL(WSL2) |
|---|---|---|
| 运行方式 | 完整的独立虚拟电脑(有自己的独立 Linux 内核) | Windows 的子系统(深度整合,轻量虚拟化) |
| 文件互通 | 需要共享文件夹、SSH/SFTP 或拖拽 | 天生互通,直接用 \\wsl$\Ubuntu 访问 |
| 网络 | 像另一台真实电脑(支持桥接/NAT/Host-Only) | 所有端口自动映射到 localhost / 127.0.0.1 |
| 资源占用 | 高(通常分 2–8GB 内存 + 几十 GB 硬盘) | 极低(几百 MB 内存,几 GB 硬盘即可流畅运行) |
| 启动速度 | 慢(开机要 10–60 秒) | 秒开(1–3 秒) |
| 适用场景 | 跑病毒/恶意样本测试、学习系统管理、内核开发、需要完整隔离环境 | 日常开发、运维脚本调试、学习 Linux 命令、快速搭建工具链 |
| 能不能当服务器 | 完全可以(和真机几乎无差别) | 基本够用(开发/测试/轻量服务可以,跑恶意样本绝对不行) |
| 图形界面支持 | 原生支持(安装 desktop 后就是完整桌面) | 支持(需额外装 WSLg 或第三方 XServer) |
初学者建议用VMware体验更加原生的Linux系统,这里我选择使用WSL💞
SSH连接工具
- 什么是SSH?
可以像操作本地电脑一样,去远程操作另一台电脑
对于我们的Linux系统虚拟机,如果想要向其传输数据,就需要用到SSH连接工具,不过这里我使用的是WSL,可以实现文件互通。
对于VMware虚拟机上的Linux系统,不能与Windows实现数据传输,就需要用到SSH连接工具了
这里推荐FinalShell
Linux目录结构

| 目录 | 含义 |
|---|---|
| /bin | 存放二进制可执行文件 |
| /boot | 存放系统引导时使用的各种文件 |
| /dev | 存放设备文件 |
| /etc | 存放系统配置文件 |
| /home | 存放系统用户的文件 |
| /lib | 存放程序运行所需的共享库和内核模块 |
| /opt | 额外安装的可选应用程序包所放置的位置 |
| /root | 超级用户目录 |
| /sbin | 存放二进制可执行文件,只有root用户才能访问 |
| /tmp | 存放临时文件 |
| /usr | 存放系统应用程序 |
| /var | 存放运行时需要改变数据的文件,例如日志文件 |
Linux常用命令
Linux命令常用技巧
- Tab键自动补全
- 连续按两次Tab键,给出操作提示
- 使用上下箭头快速调出曾经使用过的命令
- 使用Clear命令或者快捷键Ctrl+L实现清屏
Linux命令格式
1 | command [-options] [parameter] |
说明:
command:命令名
[-options]:选项,可用来对命令进行控制,也可以省略
[parameter]:传给命令的参数,可以是0个,1个或多个[]代表可选命令名
文件目录操作命令
ls
- 作用:显示指定目录下内容
- 语法:
ls [-a] [dir]
说明
-a: 显示所有文件及目录(以.开头的隐藏文件也会列出来)。-l: 除了文件名,还会讲文件的形态,权限,拥有者,文件大小等。
注意
由于我们使用ls命令时,经常会加上-l选项,所以Linux很人性化的为我们提供了ll命令来作为ls -l命令的简写,使用ll -a也可以替代ls -al
cd
- 作用:用户切换当前工作目录,即进入指定目录
- 语法:
cd [dirName]
说明
~: 表示用户的home目录.: 表示当前目录..: 表示当前位置的上级目录
cat
- 作用:用于显示文件内容
- 语法:
cat [-n] fileName
说明
-n:显示行号
举例
cat /etc/profile
查看/etc目录下的profile文件内容cat -n /etc/profile
查看/etc目录下的profile文件内容,显示行
Markdown## 文件目录操作命令
ls
- 作用:显示指定目录下的内容
- 语法:
ls [-al] [dir]
说明
-a:显示所有文件及目录(以.开头的隐藏文件也会列出)-l:除文件名外,还会列出文件的权限、拥有者、文件大小等详细信息
注意
由于经常使用 ls -l,Linux 提供了 ll 作为 ls -l 的别名简写,ll -a 也可以替代 ls -al
cd
- 作用:切换当前工作目录
- 语法:
cd [dirName]
说明
~:表示用户的 home 目录.:表示当前所在目录..:表示上级目录
cat
- 作用:显示文件全部内容
- 语法:
cat [-n] fileName
说明
-n:从 1 开始对所有输出的行编号
举例
cat /etc/profile
查看 /etc 目录下的 profile 文件内容cat -n /etc/profile
查看 /etc 目录下的 profile 文件内容,并显示行号
more
- 作用:以分页形式显示文件内容
- 语法:
more fileName
说明
- 回车:向下滚动一行
- 空格:向下滚动一屏
b:返回上一屏q或 Ctrl+C:退出
举例
more /etc/profile
以分页方式查看 /etc/profile 文件内容
tail
- 作用:查看文件末尾内容(常用于查看日志)
- 语法:
tail [-f] [-n 行数] fileName
说明
- 默认显示最后 10 行
-f:动态跟踪文件最新内容(常用于监控日志)
举例
tail /etc/profile
显示文件末尾 10 行tail -20 /etc/profile
显示文件末尾 20 行tail -f /kyle/blog.log
实时监控 blog.log 文件新增内容
mkdir
- 作用:创建目录
- 语法:
mkdir [-p] dirName
说明
-p:递归创建多层目录,如果父目录不存在则自动创建
举例
mkdir linuxCast
在当前目录创建 linuxCast 子目录mkdir -p linuxCast/test
递归创建多层目录
rmdir
- 作用:删除空的目录
- 语法:
rmdir [-p] dirName
说明
-p:删除子目录后如果父目录变为空,也一并删除- 只能删除空目录
举例
rmdir linuxCast
删除名为 linuxCast 的空目录rmdir -p linuxCast/test
删除 test 后如果 linuxCast 为空也一并删除
rm
- 作用:删除文件或目录
- 语法:
rm [-rf] name
说明
-r:递归删除目录及内部所有内容-f:强制删除,不提示确认- 支持通配符(如
*)
注意
rm -rf / 是极度危险的操作,请务必谨慎!
拷贝移动命令
cp
- 作用:复制文件或目录
- 语法:
cp [-r] source dest
说明
-r:递归复制目录及其下所有内容
举例
cp hello.txt linuxCast/
复制 hello.txt 到 linuxCast 目录cp hello.txt ./hi.txt
复制并改名为 hi.txtcp -r linuxCast/* ./blog/
复制 linuxCast 目录下所有内容到 blog 目录
mv
- 作用:移动文件/目录 或 重命名
- 语法:
mv source dest
说明
- 如果 dest 不存在 → 重命名
- 如果 dest 存在且是目录 → 移动到该目录
举例
mv hello.txt hi.txt
重命名为 hi.txtmv hi.txt blog/
移动到 blog 目录mv linuxCast blog
如果 blog 不存在 → 重命名;如果存在 → 移动进去
打包压缩命令
tar
- 作用:打包、解包、压缩、解压
- 语法:
tar [-zcvf|-zxvf] fileName [files]
说明
.tar:仅打包,未压缩.tar.gz/.tgz:打包并使用 gzip 压缩-z:使用 gzip 压缩/解压-c:创建新的包文件-x:从包文件中解包-v:显示详细过程-f:指定包文件名
举例
tar -cvf hello.tar ./*
将当前目录所有文件打包为 hello.tar(不压缩)tar -czvf hello.tar.gz ./*
打包并压缩为 hello.tar.gztar -zxvf hello.tar.gz
解压并解包 hello.tar.gz
文本编辑命令
vim
- 作用:强大的文本编辑器(vi 的增强版)
- 语法:
vim fileName
说明
三种模式:
- 命令模式(默认进入):可移动光标、复制粘贴、删除等
- 插入模式:按
i、a、o进入,可编辑文字,左下角显示-- INSERT -- - 底行模式:按
:或/进入,可保存、退出、查找等:wq保存并退出:q!不保存强制退出:set nu显示行号
查找命令
find
- 作用:在指定目录下查找文件
- 语法:
find dirName -name "pattern"
举例
find / -name helloworld.log
在全系统查找 helloworld.logfind . -name "*.java"
在当前目录及其子目录查找所有 .java 文件
grep
- 作用:在文件中搜索包含指定文本的行
- 语法:
grep word fileName
举例
grep Hello Helloworld.java
在 Helloworld.java 中查找包含 Hello 的行grep hello *.java
在当前目录所有 .java 文件中查找 hello
- 标题: Linux进阶
- 作者: yin_bo_
- 创建于 : 2025-11-21 09:53:02
- 更新于 : 2025-11-21 11:15:29
- 链接: https://www.blog.yinbo.xyz/2025/11/21/运维学习/Linux进阶/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。