本书以CentOS 7.8为演示系统,以阿里云为演示服务器,从Linux常用命令入手,从一毕业就要入职公司的上手要求出发,重实战、轻原理,目的就是要带领读者从一个稍懂软件操作的小白成长为一个“来之能战”的Linux小能手。从对文件、目录操作的入门命令开始,从浅至深,娓娓道来如何访问与管理Linux的文件、磁盘、进程、网络及系统服务。最后讲解Shell编程,掌握神兵利器,在解决问题的过程中迅速成长。
资深开发工程师亲手总结的Linux实战经验,Linux命令行与shell脚本编程,快速入门,即学即用。开发、测试、运维岗均可受益。提供代码、课件PPT和视频
姚伟,神州数码技术经理。曾任分时科技技术合伙人、科大讯飞中间件研发项目负责人、神州数码项目经理。12年软件开发经验,多年Linux运维经验,从小白一步步成长为高级工程师。
随着互联网的发展,大数据、云计算等技术日益流行,IT业开始了一场云计算的“盛宴”。国外诸如谷歌、亚马逊,国内诸如腾讯、阿里、华为等世界前列的IT公司都化身云厂商,为各中小型公司提供云计算等基础设施服务,其中大部分服务器的系统是Linux。
为什么选择Linux?因为Linux开源、稳定、安全、高性能、多租户、个性化。如果你想部署一个网站,让全世界的人都可以访问,并且24小时不关机,那么Linux无疑是最好的选择。
随着使用Linux系统的公司越来越多,各类网络管理人员、网站维护人员、服务器管理人员都必然需要与Linux打交道。软件测试人员与开发人员也要熟悉Linux系统,只有熟悉Linux系统,才能进行高效率的工作。
就面试来说,运维人员对Linux的掌握程度已经是一道必面的关卡。开发人员与测试人员熟悉Linux也是一个加分项。
从实际工作来说,Linux管理是运维人员的基本技能。开发人员与测试人员在测试生产环境和排查问题时,也要掌握一定的Linux技巧。
笔者的使用体会
笔者一直从事开发工作,但是在项目管理的过程中,无法避免与Linux打交道。部署服务、运维管理都需要具有一定的Linux知识。服务器的Linux系统一般都是用命令行操作的。笔者在开始工作时,因缺乏一定的Linux基础而将很简单的事弄得很复杂。
掌握Linux的基础操作,熟悉Linux的运行机制,可以让开发人员对很多以前开发工作中“为什么这么做”的理由有新的认识。
笔者认真钻研了Linux,在熟悉了Linux并掌握了其中几个命令后,发现掌握Linux其实并没有那么难,因此受邀编著本书,希望将自己的一些学习经验分享给读者。
本书送给那些被拦在Linux门外的初学者和希望进阶掌握Linux的读者们。希望你们可以按图索骥,破困而出,乘风破浪。
本书的特色
保姆式学习:书中介绍了安装Linux系统的多种方式(虚拟机、物理机+PE、云主机),以及各种macOS、Windows客户端工具的安装使用,且在入门章节中详细介绍了各种入门命令。
内容普适性:书中采用大多数企业使用的CentOS 7.9作为演示系统,而不是被放弃的CentOS 8。安装软件大多基于官网上的最新版本进行讲解(截至本书撰写完成,安装软件以书中版本为准)。
命令工具书:书中大多数命令都有常用的示例。对于重要或复杂的命令工具,如vim、sed、top等,本书介绍更为全面,可以作为一部称手的工具书。
生产案例实践:书中每章都配有多个能在生产工作中真实使用的案例。读者可根据案例对章节内容进行归纳学习。
脚本源码赠送:书中Shell脚本代码随书附赠,以便读者学习。
本书包括的内容
本书包括最基础的Linux系统安装教程,最全面的Linux文档处理命令,深入的权限、磁盘、进程管理与详解,带领读者快速入门Shell编程。最后以“制作自己专属的Linux命令”为例结束。
第1章介绍Linux是什么,Linux的特点与用途,以及如何学习Linux。
第2章介绍如何选择Linux的发行版,使用多种方式(虚拟机、物理机+PE、云主机)安装Linux、macOS及Windows系统下的各种客户端工具,以及Linux系统的初始化工作。
第3章介绍在Linux系统下,对文件进行增删改查的命令,以及乱码文件的处理和特殊字符的一些说明。
第4章介绍在Linux系统下,如何增删改查用户和用户组,以及如何计算与设置文件权限和相关实战案例。
第5章介绍在Linux日常工作中,文件下载、打包压缩、多路会话管理、定时任务、邮件收发等功能的使用。
第6章介绍如何查看磁盘设备、文件句柄,如何设置inode、软/硬链接,格式化新建文件系统,硬盘挂载,分区磁盘扩展,以及对磁盘进行故障模拟和诊断修复。
第7章介绍Linux主机、CPU、内存、进程的查看方法及它们互相之间的影响,详细描述进程的管理方式及KILL信号间的关系,以及性能监控的方法和相关系统资源管理的生产实战案例。
第8章介绍Linux网卡、路由配置,域名与DNS解析的关系,网络探测与流量监听工具,各类防火墙与安全组的配合使用,TCP/IP、OSI、Socket、TCP/UDP、HTTP、SSL等网络通信模型与协议,以及与安全相关的内网穿透、漏洞扫描和一些安全防护的方法工具等。最后以实战案例演示如何搭建防暴力破解工具、部署内网穿透服务及清除挖矿病毒。
第9章介绍Linux系统管理与软件安装的几种方式,其中包括Linux的开关机与运行级别、系统服务systemd、RPM与Yum安装、Yum的多种换源方式等,并以安装Nginx为例,贯穿本章所学命令。
第10章介绍Shell编程的环境配置、执行方式与基本语法,并扩展介绍特殊的文件处理命令awk,以及如何调试与编写Shell脚本,最后以实战案例的方式演示如何编写一个类似cp、mv的Linux命令。