Linux 学习路线 by 鱼皮。

原创不易,请勿抄袭,违者必究!

大家好,我是鱼皮,又花 1 周肝出了 Linux 学习资料全家桶,包括学习路线、命令手册、视频、书籍、文档、实战教程、社区、工具、大厂面试题等,完整分享给大家!

在阅读本文章之前,建议先观看视频,是一个比较特殊的入门教程。我通过实际上线一个项目的方式,带大家快速学习企业中常用的 Linux 命令,几分钟应该就对 Linux 有个不错的了解啦~

视频地址:https://www.bilibili.com/video/BV1ev411G7VE/

为什么学 Linux?

相比于 Windows,Linux 免费、开源、安全、灵活、稳定、便于开发,所以更受企业青睐,甚至 90% 以上 的企业应用都是用 Linux 服务器部署的。

无论是前端、后端、算法、测试、运维等计算机相关岗位的同学,都建议学习下 Linux,大有裨益。

学习境界

首先,Linux 入门很简单,但想学的透彻难上加难!

因此,在学习之前要明确目标。

可以 Linux 的学习分为几种境界:

  1. 明劲,就是了解 Linux 的基本概念,会敲常用命令来应对工作。对于大多数想从事开发和运维岗位的同学,学到这就足够找到工作了。
  2. 暗劲,又分为两种境界,能理解 Linux 尤其是其内核的设计思想,为小圆满;能将其思想应用到系统的架构设计中,为大圆满。暗劲境界的高手,冲击大厂、做架构师、从事底层开发,都不成问题。
  3. 化劲,可谓出神入化,不仅熟知 Linux 的使用、思想和细节,更能推陈出新,自主创造新的系统。

当然,一般情况下,会用就够了,想进大厂最好也学习一些内核的设计思想。找到工作后,是否要深入学习完全取决于你自己。

大纲

路线

Linux 基础知识

  • 发展历史
  • 特点和优势
  • 应用场景
  • 常见 Linux 系统版本(推荐 CentOS 7+)
    • CentOS
    • Ubuntu
    • Debian
    • Fedora
  • 何为开源?

Linux 环境

  • 搭建方式

    • 虚拟机
    • 云服务器
    • 在线工具
    • WSL
    • Docker 容器
  • 远程连接

    • SSH
    • 连接工具
      • XShell
      • MobaXterm
      • SecureCRT
      • Putty

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

  • Mail

  • 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】可以获取原图)。

真的是非常不容易,如果大家觉得满意请务必点个 支持下。

怒肝 Linux 学习路线,这回不难的更多相关文章

  1. Linux学习路线全解,Linux操作系统学习路线

    大家都知道,在现在这个信息化飞速发展的时代,IT技术火速发展,信息的重要性,可想而知.现在,在北京当一个高级运维工程师,年薪百万已经不是梦想.当然我也想,谁不想挣大钱,开好车,住好房.下面说说自己的一 ...

  2. Linux学习路线+资源

    Linux学习路线,个人收集分享 学习路线图 资源链接(蓝色下划线字体对应相应资源链接) Linux 基础 Linux 基础 Linux安装专题教程 Linux中文环境 Linux—从菜鸟到高手 鸟哥 ...

  3. Linux学习路线指南

    转载的,感觉写的挺好的,我自己知识复制了下,忘记了转载地址,抱歉! Linux学习路线指南 很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一个优秀的软件开 ...

  4. Linux学习路线

    为什么要学习Linux? 为什么学Linux,每个人都有自己的理由: Linux是免费的不用花一分钱,能够节约大笔的成本: Linux是开源的,你可以根据自已的需要修改源代码: Linux是开放的,有 ...

  5. 嵌入式Linux学习路线

    最近比较忙,对于嵌入式的相关学习一直没有很好的开展.今天也看了不少的嵌入式Linux的学习路线,也和几个工作过的朋友聊了聊,想把之后的学习过程记录下来. 自己以后想从事驱动开发这方面的工作,因为大多数 ...

  6. Linux 学习路线

    前言 这篇文章会一直更新...只是将个人的文章总结归纳到这,不代表最佳学习路线 没有链接的文章后续会补上...还没写的知识点未来用到也会补上...太卷了 常用基础命令 Linux常用命令 - cd命令 ...

  7. 熬夜肝了一份 C++/Linux 开发学习路线

    大家好,我是帅地. 之前写过几篇学习路线的文章 前端开发学习路线 Java 后端开发学习路线 一般开发岗主流的就是 Java 后台开发,前端开发以及 C++ 后台开发,现在 Go 开发也是越来越多了, ...

  8. linux 下C语言学习路线

    UNIX/Linux下C语言的学习路线.一.工具篇“公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工 ...

  9. linux基础学习路线&review

    linux基础学习网址: https://www.runoob.com/linux/linux-tutorial.html 比较重点的是这个启动过程的介绍学习:https://www.runoob.c ...

随机推荐

  1. C#窗体间互相传值

    Demo窗体图片,Form1 Demo窗体图片,Form2 公共委托 using System; namespace _DeleFrm{  public class Dele  {    public ...

  2. sublime text 3 中文排序插件

    ST3 的排序不支持中文按拼音排序,所以需要搞一个插件来支持这一特性 pypinyin 这个库可以把中文转成拼音,可惜不支持 python3.3,而 ST3 内置的 python 就是 3.3 我系统 ...

  3. 前缀和的n个神奇操作

    前情回顾 前缀和的基础用法戳这里->传送门 众所周知,简单的前缀和解决的一般都是静态查询的问题,例如区间和.区间积等 操作的时候也很简单,就是根据需要来维护一个数组,每次查询的时候就用到tr[r ...

  4. Spring Boot 入门系列(二十四)多环境配置,3分钟搞定!

    之前讲过Spring Boot 的系统配置和自定义配置,实现了按照实际项目的要求配置系统的相关熟悉.但是,在实际项目开发过程中,需要面对不同的环境,例如:开发环境,测试环境,生产环境.各个环境的数据库 ...

  5. Spring AOP Aspect的简单实现(基于注解)

    第1步:声明使用注解 <!-- 配置扫描注解--> 扫描包的位置<context:component-scan base-package="com.zz"/> ...

  6. python库--pandas--Series

    方法 返回数据类型 参数 说明 Series(一维)       .Series() Series 实例s 创建一维数据类型Series data=None 要转化为Series的数据(也可用dict ...

  7. [AtcoderABC200E]Patisserie

    [AtcoderABC200E]Patisserie 题面翻译 对于一个三元组\((i,j,k)\) 我们对它按如下要求进行升序排序: 第一关键词 \(i + j + k\) 即三者总和 第二关键词 ...

  8. Ansible快速实战指南----多机自动化执行命令、部署神器

                                      1.需求: 需要在多台主机上,发送文件.执行命令,进行快速部署 2.ansible 远程复制文件 例子:在当前节点(20.88.14 ...

  9. Set代码

    现有一整数集(允许有重复元素),初始为空.我们定义如下操作:add x 把 x 加入集合del x 把集合中所有与 x 相等的元素删除ask x 对集合中元素x的情况询问 对每种操作,我们要求进行如下 ...

  10. Android——ProgressBar(进度条)

    参考资料来源于菜鸟教程--学的不仅是技术,更是梦想! 学习! 1.常用属性讲解与基础实例 从官方文档,我们看到了这样一个类关系图: ProgressBar继承与View类,直接子类有AbsSeekBa ...