Linux从入门到精通
  • 推荐0
  • 收藏3
  • 浏览832

Linux从入门到精通

张启玉 (作者) 

  • 书  号:978-7-121-44275-9
  • 出版日期:2022-10-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 维护人:张月萍
本书以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命令。

目录

第1章 为什么要学习Linux 1
1.1 Linux是什么 1
1.2 Linux的特点与用途 3
1.3 如何学习Linux 3
1.4 小结 4
第2章 安装Linux系统与客户端工具 6
2.1 Linux系统的选择与下载 6
2.1.1 CentOS简介与版本选择 6
2.1.2 CentOS镜像的选择与下载 9
2.2 虚拟机安装系统 12
2.2.1 VMware for Windows的下载与安装 12
2.2.2 VMware for macOS的下载与安装 13
2.2.3 在Windows系统下的虚拟机中安装Linux系统 14
2.2.4 在macOS系统下的虚拟机中安装Linux系统 19
2.3 物理机安装系统 19
2.3.1 PE制作 19
2.3.2 系统安装 22
2.3.3 密码找回 23
2.4 云服务器申请 25
2.4.1 阿里云 25
2.4.2 腾讯云 26
2.4.3 AWS 28
2.5 客户端工具 29
2.5.1 Xshell+Xftp 30
2.5.2 SecureCRT 32
2.5.3 macOS原生终端 33
2.5.4 FinalShell 35
2.5.5 用密钥登录AWS 36
2.6 系统初始化 39
2.6.1 来电自启 39
2.6.2 系统 host设置 39
2.6.3 时钟同步NTP 40
2.6.4 关闭防火墙与开通安全组 40
2.7 小结 42
第3章 Linux入门命令与文件管理 43
3.1 学习指南 43
3.1.1 Linux命令与Shell 43
3.1.2 快捷键 44
3.1.3 帮助命令 45
3.1.4 历史命令 46
3.1.5 FAQ 46
3.2 文件及目录操作 47
3.2.1 目录切换与查看:cd、ls、ll、pwd 47
3.2.2 文件与目录创建:touch、mkdir 48
3.2.3 复制、移动和删除:cp、mv、rm 48
3.3 文件查看与编辑 49
3.3.1 文件查看:cat、tac 、nl 49
3.3.2 日志查看:tail与head 51
3.3.3 文件编辑器:vi / vim 52
3.3.4 基于vi的文件查看工具:more与less 57
3.3.5 流文件编辑工具:sed 61

3.4 文件查找与统计 66
3.4.1 文件查找:find、wc、xargs 66
3.4.2 文件统计与排序:du+sort 71
3.4.3 字符查找:grep+正则表达式 73
3.4.4 文件索引查找:locate+updatedb 76
3.5 文件处理 77
3.5.1 文件乱码处理:文件编码、inode与dos2unix 77
3.5.2 文件比对、校验与剪切:diff / vimdiff、md5sum、cut 80
3.5.3 其他命令:od、iconv、tr、split、paste、rev、tee、join、uniq 82
3.6 特殊字符简析 85
3.6.1 特殊字符表 85
3.6.2 通配符 86
3.6.3 管道、重定向、标准输入/输出 87
3.6.4 特殊设备 90
3.6.5 单引号、转义符、双引号、反引号 90
3.6.6 命令执行与逻辑符 91
3.7 小结 92
第4章 Linux用户与权限 93
4.1 root与用户管理 93
4.1.1 root与UID、GID 93
4.1.2 用户新增:useradd 95
4.1.3 用户修改与删除:usermod、userdel 98
4.1.4 用户与密码的配置文件:/etc/passwd、/etc/shadow 99
4.1.5 密码修改:passwd、chage 101
4.1.6 用户的批量管理:newusers、chpasswd 103
4.2 权限切换 103
4.2.1 用户切换:su 104
4.2.2 权限升级:sudo 105
4.2.3 su与sudo的异同 106

4.3 用户查看 107
4.3.1 用户查看:id、w、who、users、whoami、finger 107
4.3.2 用户登录日志:last、lastb、lastlog与secure 110
4.4 文件权限 112
4.4.1 标准权限模型:777与umask 112
4.4.2 更改文件所属:chown 116
4.4.3 更改读写权限:chmod 118
4.4.4 特殊权限:SUID、SGID、Sticky bit 120
4.4.5 隐藏权限与扩展文件系统:chattr、lsattr 122
4.4.6 文件访问控制模型简析:标准模型、PAM、ACL、SELinux 124
4.5 实战案例 126
4.5.1 FTP搭建与账户赋权 127
4.5.2 批量创建账号密码 129
4.6 小结 131
第5章 文件传输、会话管理与定时任务 132
5.1 文件下载与推送 132
5.1.1 文件下载:wget、curl 132
5.1.2 文件推送:scp、rsync 135
5.2 文件压缩 136
5.2.1 官方打包:tar 136
5.2.2 其他压缩工具:zip、unzip、7za 138
5.3 会话管理 140
5.3.1 互信加密:SSH 140
5.3.2 终端复用器:screen 144
5.4 定时任务与邮件 149
5.4.1 定时任务:crontab与crond 149
5.4.2 邮件发送:mail、mailx、mailq与postfix 150
5.5 实战案例 153
5.5.1 7-Zip For Linux的下载、安装与使用 153
5.5.2 定时备份FTP文件数据 155
5.6 小结 158
第6章 Linux磁盘与文件系统 159
6.1 磁盘与文件系统 159
6.1.1 设备查看:df、lsblk 159
6.1.2 文件、句柄和设备标识:inode、openfiles、UUID 164
6.1.3 硬链接与软连接:ln 168
6.1.4 文件系统:VFS、XFS及动态调整inode 169
6.2 磁盘挂载 172
6.2.1 硬盘与接口:HDD与SSD、IDE与SATA、SCSI、SAS 172
6.2.2 分区格式化:GPT、fdisk与mkfs 174
6.2.3 挂载与卸载:mount、umount与/etc/fstab 178
6.3 磁盘扩展 180
6.3.1 分区扩展:LVM 180
6.3.2 磁盘阵列:RAID 183
6.4 磁盘诊断 185
6.4.1 系统日志:dmesg、journalctl 185
6.4.2 磁盘坏道检测:badblocks、smartctl 186
6.4.3 故障模拟与磁盘自检修复:fsck、xfs_repair 188
6.5 实战案例 190
6.5.1 LVM创建、扩展与缩减 190
6.5.2 RAID创建、挂载、删除与热插拔 195
6.5.3 NFS共享磁盘挂载 201
6.5.4 磁盘使用率100%的解决方法 204
6.6 小结 204
第7章 Linux进程 206
7.1 系统与内存 206
7.1.1 系统、主机与CPU:uname、hostnamectl、lscpu 206
7.1.2 内存与交换空间:free、Swap 209
7.2 进程与PID 211
7.2.1 进程、程序、PID 211
7.2.2 进程查看:ps、pgrep、pstree 213
7.2.3 进程文件查看:lsof 217
7.2.4 程序查找:pwdx、which、whereis 220
7.3 进程管理 221
7.3.1 前后台进程与免挂起:&与nohup 221
7.3.2 杀死进程:kill、killall、pkill 224
7.3.3 进程优先级:nice与renice 228
7.3.4 进程小结:进程运行与KILL信号 229
7.4 性能监控 231
7.4.1 命令监听:watch 231
7.4.2 监测工具包Procps-ng:uptime、top、vmstat 231
7.4.3 进阶工具包SYSSTAT:pidstat、mpstat、iostat、sar 238
7.5 实战案例 248
7.5.1 熵池耗尽的解决方案 248
7.5.2 资源不足自动报警方案 249
7.6 小结 254
第8章 Linux网络与安全 255
8.1 网卡是如何管理的 255
8.1.1 手动配置网卡 255
8.1.2 网卡设置:ifconfig、ip、ifup/ifdown 256
8.1.3 网卡服务:network、NetworkManager与nmcli 261
8.1.4 网关路由:route、arp 264
8.2 域名是如何工作的 265
8.2.1 域名与DNS解析 265
8.2.2 域名篡改 267
8.2.3 根域名与公网IP地址分类 268
8.2.4 DHCP与NAT 271
8.2.5 子网掩码与私有IP地址分类 274
8.2.6 DNS查看与修改 275
8.3 网络探测与流量监听 275
8.3.1 IP地址探测:ping、ICMP与fping 276
8.3.2 端口探测:telnet、netstat、nmap 277
8.3.3 路由追踪:traceroute、tcptraceroute 279
8.3.4 流量监听:iftop、nethogs 280
8.3.5 流量抓取与复制:tcpdump与tcpreplay 282
8.4 防火墙与安全组 284
8.4.1 安全增强防御系统:SELinux 284
8.4.2 老牌防火墙:iptables 285
8.4.3 新型防火墙:firewalld 288
8.4.4 云上安全组 289
8.5 简说TCP/IP 290
8.5.1 TCP/IP与OSI网络模型 290
8.5.2 Socket与TCP/UDP 291
8.5.3 TCP和UDP是什么 292
8.5.4 HTTPS = HTTP+TLS/SSL 294
8.6 网络安全的“矛”与“盾” 295
8.6.1 内网穿透与远程控制:ToDesk、frp与其他 296
8.6.2 漏洞扫描及安全工具:OpenVAS、Nessus、Nikto、T-Sec、Aliyundun 297
8.6.3 安全防御的“四大纪律” 298
8.6.4 三级等保的采购与建设 299
8.7 实战案例 301
8.7.1 安全防火墙:denyhosts 301
8.7.2 搭建内网穿透服务:frp 303
8.7.3 清除挖矿病毒大作战 308
8.8 小结 308
第9章 Linux系统管理与软件安装 310
9.1 Linux的关机与启动 310
9.1.1 Linux的关机、重启与注销 310
9.1.2 Linux启动流程简析 311
9.1.3 Linux运行级别与target 312
9.2 Linux系统服务systemd 313
9.2.1 为什么CentOS 7.x放弃init取用systemd 313
9.2.2 systemd启动流程与架构简析 314
9.2.3 systemd Utilities工具简析 316
9.2.4 systemd与Unit 319
9.2.5 systemd添加自定义服务 320
9.3 Linux根目录简析 322
9.3.1 根目录“/”与/root 322
9.3.2 /bin与/usr/bin、/sbin与/usr/sbin 322
9.3.3 /boot 323
9.3.4 /dev 323
9.3.5 /etc 323
9.3.6 /home、/tmp 323
9.3.7 /lib、/lib64 323
9.3.8 lost+found 324
9.3.9 /media、/mnt 324
9.3.10 /opt 324
9.3.11 /proc 324
9.3.12 /run 326
9.3.13 /srv 326
9.3.14 /sys 326
9.3.15 /usr 327
9.3.16 /var 328
9.4 Linux软件安装 328
9.4.1 包管理器:RPM与Yum 329
9.4.2 Yum源更换与配置 336
9.4.3 安装源码:GCC、Make与CMake 339
9.5 实战案例 340
9.5.1 WoL远程网络唤醒 340
9.5.2 Yum + repo安装Nginx 341
9.5.3 使用源码安装Nginx,手动添加系统开机服务 342
9.6 小结 345
第10章 快速入门Shell编程 346
10.1 Shell基础 346
10.1.1 Shell简述 346
10.1.2 环境配置 348
10.1.3 Shell脚本执行 353
10.1.4 Shell命令快捷键补充 355
10.2 Shell基本语法 356
10.2.1 变量:$、${}、$n 356
10.2.2 运算符:赋值、数值、逻辑、比较、文件测试 358
10.2.3 条件判断:if、case 360
10.2.4 循环:for、while、until、select 362
10.2.5 函数:function 364
10.2.6 中断循环与退出:continue、break、return、exit、$? 365
10.3 特殊命令awk 367
10.3.1 awk命令速查手册 367
10.3.2 awk命令详解 369
10.3.3 生产作业:awk命令解析json数据 373
10.4 Shell扩展 374
10.4.1 内置函数:read、printf、shift、eval 374
10.4.2 脚本调试:bash -x、set -x、trap 377
10.4.3 编程规范 380
10.5 实战案例 381
10.5.1 编写一个自己的日志命令:logmsg 381
10.5.2 编写一个常用的备份命令:backup 382
10.5.3 编写一个Java项目的管理脚本:springboot-admin.sh 383
10.6 小结

读者评论

相关图书

亿级流量系统架构设计与实战

李琛轩 (作者)

本书涵盖了亿级用户应用后台通用的技术和系统架构设计思路,在内容结构上分为三大篇:架构知识篇(第1~3章),作为全书的基础知识篇,首先介绍后台的关键组件构成以及机...

 

算法笔记(第2版)

刁瑞 谢妍 (作者)

ChatGPT掀起了现象级的风暴,赶超ChatGPT潮流,算法突破是关键。 本书介绍了若干常见算法,涉及排序、哈希、动态规划与近似算法、高斯消去法、图论与线性...

 

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 赵大羽 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...

 

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...

 

软件交付通识

董越 (作者)

软件交付过程是指在编程序改代码之后,直到将软件发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。本书作为通识类图书,对软件交付过程的各个方面进行...

¥89.00