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. 挂载redhat镜像创建本地yum源

    上传镜像文件到/mnt文件夹下,或者上传到其他文件夹下 挂载镜像路径/mnt/cdrom 在mnt文件夹下创建cdrom文件夹 创建命令:mkdir  cdrom 挂载镜像命令:mount rhel- ...

  2. 使用Keepalived实现Nginx的双机主备高可用

    1.概述 前面我们聊过使用 Nginx 为 后端Tomcat 做负载均衡.高可用,但是这时Nginx又成了单点,如果Nginx不幸挂掉,整个网站便无法访问. 此时我们就会用到另一个软件 -- Keep ...

  3. Docker容器管理——Docker容器常用命令

    1.查看所有的容器 docker ps 2.查看运行的容器 docker ps -a 3.启动.停止.重启docker容器 docker start ... docker stop ... docke ...

  4. Gitlab - 安装的社区版 Gitlab-ce,解决访问网页报502-Whoops, GitLab is taking too much time to respond的问题

    问题背景 在自己虚拟机(centos7)上装了 Gitlab-ce,就是社区版的 Gitlab,版本是 13.0+ 问题描述 浏览器访问 Gitlab 网站,报 502 问题翻译 502-Whoops ...

  5. 《Go语言圣经》阅读笔记:第三章基础数据类型

    第三章 基础数据类型 Go语言将数据类型分为四类: 基础类型 数字 整数 浮点数 复数 字符串 布尔 复合类型 数据 结构体 引用类型 指针 切片 字典 函数 通道 接口类型 在此章节中先介绍基础类型 ...

  6. Springcloud轻松上手

    Springcloud技术分享 Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来 ...

  7. footer沉底效果

    介绍一个简单直接的方法: flex布局 heml,body{ height: 100%; min-height: 100%; display: flex; flex-direction: column ...

  8. [第二篇]——Docker 架构之Spring Cloud直播商城 b2b2c电子商务技术总结

    Docker 架构 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统.比如官方镜像 ubuntu:16.04 就包含了完整的一 ...

  9. this关键字的理解

    this理解为:当前对象 或 当前正在创建的对象 this代表所在类的当前对象的引用(地址值),即对象对自己的引用. 备注:意思方法被那个对象调用,方法中的this就代表那个对象.即谁调用,this就 ...

  10. 解决sofaboot项目右键入口方法没有run sofa application

    选中入口方法名,右键出现run sofa application