Linux 学习路线 by 鱼皮。 原创不易,请勿抄袭,违者必究!
大家好,我是鱼皮,又花 1 周肝出了 Linux 学习资料全家桶,包括学习路线、命令手册、视频、书籍、文档、实战教程、社区、工具、大厂面试题等,完整分享给大家!
在阅读本文章之前,建议先观看视频,是一个比较特殊的入门教程。我通过实际上线一个项目的方式,带大家快速学习企业中常用的 Linux 命令,几分钟应该就对 Linux 有个不错的了解啦~
视频地址: https://www.bilibili.com/video/BV1ev411G7VE/
为什么学 Linux?
相比于 Windows,Linux 免费、开源、安全、灵活、稳定、便于开发,所以更受企业青睐,甚至 90% 以上 的企业应用都是用 Linux 服务器部署的。
无论是前端、后端、算法、测试、运维等计算机相关岗位的同学,都建议学习下 Linux,大有裨益。
学习境界
首先,Linux 入门很简单,但想学的透彻难上加难!
因此,在学习之前要明确目标。
可以 Linux 的学习分为几种境界:
明劲,就是了解 Linux 的基本概念,会敲常用命令来应对工作。对于大多数想从事开发和运维岗位的同学,学到这就足够找到工作了。
暗劲,又分为两种境界,能理解 Linux 尤其是其内核的设计思想,为小圆满;能将其思想应用到系统的架构设计中,为大圆满。暗劲境界的高手,冲击大厂、做架构师、从事底层开发,都不成问题。
化劲,可谓出神入化,不仅熟知 Linux 的使用、思想和细节,更能推陈出新,自主创造新的系统。
当然,一般情况下,会用就够了,想进大厂最好也学习一些内核的设计思想。找到工作后,是否要深入学习完全取决于你自己。
大纲
路线
Linux 基础知识
发展历史
⭐ 特点和优势
应用场景
⭐ 常见 Linux 系统版本(推荐 CentOS 7+)
⭐ CentOS
⭐ Ubuntu
Debian
Fedora
何为开源?
Linux 环境
搭建方式
⭐ 虚拟机
⭐ 云服务器
在线工具
WSL
Docker 容器
远程连接
⭐ XShell
⭐ MobaXterm
SecureCRT
Putty
⭐ SSH
连接工具
Linux 常用命令
此处只列举命令名称,命令的具体用法可直接在手册中(https://www.linuxcool.com/)查询
系统信息
uname 查看系统信息
hostname 查看主机名
cat /proc/cpuinfo 查看 CPU 信息
lsmod 查看已加载的系统模块
top 查看系统使用情况
df 查看磁盘使用情况
fdisk 查看磁盘分区
du 查看目录使用情况
iostat 查看 I / O 使用情况
free 显示系统内存情况
env 查看环境变量
uptime 查看系统运行时间、用户数、负载
系统操作
shutdown 关机
reboot 重启
mount 挂载设备
umount 卸载设备
用户相关
su 切换用户
sudo 以管理员身份执行
who 查看当前用户名
ssh 远程连接
logout 注销
useradd 创建用户
userdel 删除用户
usermod 修改用户
groupadd 创建用户组
groupdel 删除用户组
groupmod 修改用户组
passwd 修改密码
last 显示用户或终端的登录情况
文件相关
cd 切换目录
ls 查看目录列表
tree 打印目录树
mkdir 创建目录
rm 删除目录
touch 新建文件
cp 复制文件
mv 移动文件
ln 创建文件链接
find 搜索文件
locate 定位文件
whereis 查看可执行文件路径
which 在 PATH 指定的路径中,搜索某系统命令的位置
chmod 设置目录权限
cat / more / less 查看文件
tac 倒序查看文件
head / tail 查看文件开头 / 结尾
paste 合并文件
zip / tar / gzip 压缩文件
unzip / tar / gunzip 解压文件
grep / sed / awk 文本处理
vim 文本编辑
程序相关
crontab 计划任务
nohup 后台运行程序
jobs 查看系统任务
ps 查看进程
kill 杀死进程
rpm / yum / apt / apt-get / dpkg 软件包管理
service / systemctl 服务管理
网络相关
ifconfig 查看网络属性
netstat 查看网络状态
iptables 查看 iptables 规则
其他
date 显示系统时间
cal 显示日历
history 显示与操作历史
help 帮助
alias 别名
用户管理
用户
用户组
ACL 权限管理
用户切换
管理员
文件管理
文件操作
创建
修改
复制
移动
删除
文件浏览
文件搜索
文件权限
软硬链接
压缩 / 解压
文本操作
正则表达式
grep
sed
awk
VIM 编辑器
基本操作
模式
快捷键
VIM 定制
插件增强
送张 VIM 键盘图:
磁盘管理
使用情况查询
磁盘分区
挂载
驱动管理
驱动加载
驱动更新
网卡
显卡
进程管理
启动进程
杀死进程
查看进程
前台 / 后台任务
进程监控
计划任务
crond 服务
crontab 命令
网络管理
IP
端口
主机名
hosts
网络配置
网络状态
网络监控
系统管理
系统设置
日期时间
语言
字符集
系统服务
环境变量
日志
系统关机 / 重启
数据备份与恢复
服务管理
服务查看
启动服务
禁用服务
删除服务
开机自启
软件管理
软件包管理器
⭐ rpm
⭐ yum
apt
apt-get
dpkg
软件安装
软件更新
软件卸载
源码安装
常用软件 / 服务搭建
HTTP
NFS
DNS
FTP
mysql
LVS + Keepalived
Apache
Nginx
Redis
日志服务
Shell 脚本编程
默认变量
运算符
条件
循环
执行
函数
系统函数
自定义函数
规范
调试方法
管道
I/O 重定向
Linux 启动过程
BIOS 启动引导
引导加载程序
内核加载
系统初始化(init)
运行级别
启动内核
执行初始化脚本
用户登录
Linux 内核
内核的组成
目录结构
版本
模块
编译
裁剪
具体路线图参考:
第三方工具
Ansible
Webmin
宝塔 Linux
岗位
后端开发(Java / Go / C++)
底层开发(C / C++)
运维开发
大数据
云计算
自动化运维
嵌入式开发
网络工程师
学习建议
多动手实践,建议自己购买一台云服务器,并且在本地搭建 Linux 虚拟机环境。
一定要自己从 0 开始手敲命令安装软件、部署服务,熟悉整个项目的上线流程。
每个命令至少要跟着敲一遍,了解它们的作用,并通过自然地练习,熟悉常用的 Linux 命令。
记不住没关系,用文档查就行了。
先会用,再理解。
时间不多的话,可以通过面试题来了解一些 Linux 设计思想,而不是直接去深入学习内核,虽说学会了的确大有裨益,但性价比不高。
资源
编程导航 Linux 入门教程:
https://www.code-nav.cn/course/1804008796575358977
👇 关注公众号可以免费阅读教程,立刻开学
尾声
以上就是鱼皮熬了几天大夜、结合个人经验、并且参考了大量网上的视频、文章和评论总结而成的学习路线,真的是非常不容易,如果大家觉得满意请务必点个 赞 + 在看 支持下。
我是鱼皮,持续分享编程干货的程序员,欢迎关注,下期再见~
往期推荐