目录
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 定制
- 插件增强
磁盘管理
- 使用情况查询
- 磁盘分区
- 挂载
驱动管理
- 驱动加载
- 驱动更新
- 网卡
- 显卡
进程管理
- 启动进程
- 杀死进程
- 查看进程
- 前台 / 后台任务
- 进程监控
计划任务
- 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 设计思想,而不是直接去深入学习内核,虽说学会了的确大有裨益,但性价比不高。
资源
视频
- ⭐ 2021 韩顺平 一周学会Linux:https://www.bilibili.com/video/BV1Sv411r7vd(基于 CentOS 7.6 版本较新,视频长度刚刚好,也比较完整)
- 【千锋】Linux 云计算基础视频教程 650 集入门:https://www.bilibili.com/video/BV1pz4y1D73n(很全面,适合时间足够、想认真学的同学)
书籍
- 《鸟哥的 Linux 私房菜 —— 基础篇》:http://cn.linux.vbird.org/linux_basic/linux_basic.php(经典)
- 《深入理解 LINUX 内核》:
https://book.douban.com/subject/1767120/
文档
- Linux 教程(菜鸟教程):https://www.runoob.com/linux/linux-tutorial.html
合集
- Linux内核学习资料:https://github.com/0voice/linux_kernel_wiki(opens new window)
- GitHub Linux 专区:https://github.com/topics/linux(很多好项目)
实战
- ⭐ 蓝桥云课 Linux 基础入门:https://www.lanqiao.cn/courses/1(强烈推荐)
- 腾讯云动手实验室:https://cloud.tencent.com/developer/labs
社区(国内倒的差不多了)
- Linux 中国:https://linux.cn/(opens new window)
- 开源中国:https://www.oschina.net/(综合的开源社区)
工具
- DistroTest 在线操作系统测试:https://distrotest.net(opens new window)
- ⭐ Linux 命令搜索:https://wangchujiang.com/linux-command(opens new window)
- Linux 命令大全手册:https://man.linuxde.net/
面试题
- Linux 常见面试题整理:https://zhuanlan.zhihu.com/p/376749877(opens new window)
- Linux 常见面试题整理:https://github.com/0voice/linux_kernel_wiki#-面试题