Linux命令行大全
第一部分 学习shell
1 shell是什么
1.1 终端仿真器
1.2 第一次键盘输入
1.2.1 命令历史记录
1.2.2 光标移动
1.3 几个简单的命令
1.4 结束终端会话
2 导航
2.1 理解文件系统树
2.2 当前工作目录
2.3 列出目录内容
2.4 更改当前工作目录
2.4.1 绝对路径名
2.4.2 相对路径名
2.4.3 一些有用的快捷方式
3 Linux系统
3.1 ls命令的乐趣
3.1.1 选项和参数
3.1.2 进一步了解长列表格式
3.2 使用file命令确定文件类型
3.3 使用less命令查看文件内容
3.4 快速浏览
注意:
3.5 符号链接
4 操作文件与目录
4.1 通配符
4.2 mkdir——创建目录
4.3 cp——复制文件和目录
4.4 mv——移除和重命名文件
4.5 rm——删除文件和目录
4.6 ln——创建链接
4.6.1 硬链接
4.6.2 符号链接
4.7 实战演练
4.7.1 创建目录
4.7.2 复制文件
4.7.3 移动和重命名文件
4.7.4 创建硬链接
4.7.5 创建符号链接
4.7.6 移除文件和目录
4.8 本章结尾语
5 命令的使用
5.1 究竟什么是命令
5.2 识别命令
5.2.1 type——显示命令的类型
5.2.2 which——显示可执行程序的位置
5.3 获得命令文档
5.3.1 help——获得shell内置命令的帮助文档
5.3.2 help——显示命令的使用信息
5.3.3 man——显示程序的手册页
5.3.4 apropos——显示合适的命令
5.3.5 whatis——显示命令的简要描述
5.3.6 info——显示程序的info条目
5.3.7 README和其他程序文档文件
5.4 使用别名创建自己的命令
5.5 温故以求新
6 重定向
6.1 标准输入、标准输出和标准错误
6.1.1 标准输出重定向
6.1.2 标准错误重定向
6.1.3 将标准输出和标准错误重定向到同一个文件
注意:
6.1.4 处理不想要的输出
6.1.5 标准输入重定向
6.2 管道
6.2.1 过滤器
6.2.2 uniq——报告或忽略文件中重复的行
6.2.3 wc——打印行数、字数和字节数
6.2.4 grep——打印匹配行
6.2.5 head/tail——打印文件的开头部分/结尾部分
6.2.6 tee——从stdin读取数据,并同时输出到stdout和文件
6.3 本章结尾语
7 透过shell看世界
7.1 扩展
7.1.1 路径名扩展
7.1.2 波浪线扩展
7.1.3 算术扩展
7.1.4 花括号扩展
7.1.5 参数扩展
7.1.6 命令替换
7.2 引用
7.2.1 双引号
7.2.2 单引号
7.2.3 转义字符
7.3 本章结尾语
8 高级键盘技巧
8.1 编辑命令行
注意:
8.1.1 光标移动
8.1.2 修改文本
8.1.3 剪切和粘贴(Killing and Yanking)文本
8.2 自动补齐功能
8.3 使用历史命令
8.3.1 搜索历史命令
8.3.2 历史记录扩展
8.4 本章结尾语
9 权限
9.1 所有者、组成员和其他所有用户
9.2 读取、写入和执行
9.2.1 chmod——更改文件模式
9.2.2 采用GUI设置文件模式
9.2.3 umask——设置默认权限
9.3 更改身份
9.3.1 su——以其他用户和组ID的身份来运行shell
9.3.2 sudo——以另一个用户的身份执行命令
9.3.3 chown——更改文件所有者和所属群组
9.3.4 chgrp——更改文件所属群组
9.4 权限的使用
9.5 更改用户密码
10 进程
10.1 进程如何工作
10.1.1 使用ps命令查看进程信息
10.1.2 使用top命令动态查看进程信息
10.2 控制进程
注意:
10.2.1 中断进程
10.2.2 使进程在后台运行
10.2.3 使进程回到前台运行
10.2.4 停止(暂停)进程
10.3 信号
10.3.1 使用kill命令发送信号到进程
10.3.2 使用killall命令发送信号给多个进程
10.4 更多与进程相关的命令
第二部分 配置与环境
11 环境
11.1 环境中存储的是什么
11.1.1 检查环境
11.1.2 一些有趣的变量
11.2 环境是如何建立的
11.2.1 login和non-login shell
11.2.2 启动文件中有什么
注意:
11.3 修改环境
11.3.1 用户应当修改哪些文件
11.3.2 文本编辑器
11.3.3 使用文本编辑器
注意:
注意:
11.3.4 激活我们的修改
11.4 本章结尾语
12 VI简介
12.1 为什么要学习vi
12.2 VI背景
12.3 启动和退出vi
注意:
12.4 编辑模式
12.4.1 进入插入模式
12.4.2 保存工作
注意:
12.5 移动光标
12.6 基本编辑
12.6.1 添加文本
12.6.2 插入一行
12.6.3 删除文本
注意:
12.6.4 剪切、复制和粘贴文本
12.6.5 合并行
12.7 查找和替换
12.7.1 行内搜索
12.7.2 搜索整个文件
12.7.3 全局搜索和替换
12.8 编辑多个文件
12.8.1 切换文件
12.8.2 载入更多的文件
注意:
12.8.3 文件之间的内容复制
12.8.4 插入整个文件
12.9 保存工作
注意:
13 定制提示符
13.1 提示符的分解
注意:
13.2 尝试设计提示符
13.3 添加颜色
注意:
13.4 移动光标
13.5 保存提示符
13.6 本章结尾语
第三部分 常见任务和主要工具
14 软件包管理
14.1 软件包系统
14.2 软件包系统工作方式
14.2.1 软件包文件
14.2.2 库
14.2.3 依赖关系
14.2.4 高级和低级软件包工具
14.3 常见软件包管理任务
14.3.1 在库里面查找软件包
14.3.2 安装库中的软件包
14.3.3 安装软件包文件中的软件包
注意:
14.3.4 删除软件包
14.3.5 更新库中的软件包
14.3.6 更新软件包文件中的软件包
注意:
14.3.7 列出已安装的软件包列表
14.3.8 判断软件包是否安装
14.3.9 显示已安装软件包的相关信息
14.3.10 查看某具体文件由哪个软件包安装得到
14.4 本章结尾语
15 存储介质
15.1 挂载、卸载存储设备
15.1.1 查看已挂载的文件系统列表
警告:
15.1.2 确定设备名称
注意:
15.2 创建新的文件系统
注意:
15.2.1 用fdisk命令进行磁盘分区
15.2.2 用mkfs命令创建新的文件系统
15.3 测试、修复文件系统
15.4 格式化软盘
15.5 直接从/向设备转移数据
警告:
15.6 创建CD-ROM映像
15.6.1 创建一个CD-ROM文件映像副本
15.6.2 从文件集合中创建映像文件
15.7 向CD-ROM写入映像文件
15.7.1 直接挂载ISO映像文件
15.7.2 擦除可读写CD-ROM
15.7.3 写入映像文件
15.8 附加认证
16 网络
注意:
16.1 检查、监测网络
16.1.1 ping——向网络主机发送特殊数据包
注意:
16.1.2 traceroute——跟踪网络数据包的传输路径
16.1.3 netstat——检查网络设置及相关统计数据
16.2 通过网络传输文件
16.2.1 ftp——采用FTP(文件传输协议)传输文件
16.2.2 lftp——更好的ftp(文件传输协议)
16.2.3 wget——非交互式网络下载工具
16.3 与远程主机的安全通信
16.3.1 ssh——安全登录远程计算机
注意:
16.3.2 scp和sftp——安全传输文件
注意:
17 文件搜索
17.1 locate——较简单的方式查找文件
17.2 find——较复杂的方式查找文件
17.2.1 test选项
17.2.2 action选项
注意:
注意:
17.2.3 返回到playground文件夹
17.2.4 option选项
18 归档和备份
18.1 文件压缩
18.1.1 gzip——文件压缩与解压缩
注意:
18.1.2 bzip2——牺牲速度以换取高质量的数据压缩
18.2 文件归档
18.2.1 tar——磁带归档工具
18.2.2 zip——打包压缩文件
18.3 同步文件和目录
18.3.1 rsync——远程文件、目录的同步
18.3.2 在网络上使用rsync命令
19 正则表达式
19.1 什么是正则表达式
19.2 grep——文本搜索
19.3 元字符和文字
注意:
19.4 任意字符
19.5 锚
19.6 中括号表达式和字符类
19.6.1 否定
19.6.2 传统字符范围
19.6.3 POSIX字符类
19.7 POSIX基本正则表达式和扩展正则表达式的比较
19.8 或选项
19.9 限定符
19.9.1 ?——匹配某元素0次或1次
19.9.2 *——匹配某元素多次或零次
19.9.3 +——匹配某元素一次或多次
19.9.4 {}——以指定次数匹配某元素
19.10 正则表达式的应用
19.10.1 用grep命令验证号码簿
19.10.2 用find查找奇怪文件名的文件
19.10.3 用locate查找文件
19.10.4 利用less和vim命令搜索文本
注意:
19.11 本章结尾语
20 文本处理
20.1 文本应用程序
20.1.1 文件
20.1.2 网页
20.1.3 电子邮件
20.1.4 打印机输出
20.1.5 程序源代码
20.2 温故以求新
20.2.1 cat——进行文件之间的拼接并且输出到标准输出
20.2.2 sort——对文本行进行排序
20.2.3 uniq——通知或省略重复的行
注意:
20.3 切片和切块
20.3.1 cut——删除文本行中的部分内容
20.3.2 paste——合并文本行
20.3.3 join——连接两文件中具有相同字段的行
20.4 文本比较
20.4.1 comm——逐行比较两个已排序文件
20.4.2 diff——逐行比较文件
20.4.3 patch——对原文件进行diff操作
20.5 非交互式文本编辑
20.5.1 tr——替换或删除字符
20.5.2 sed——用于文本过滤和转换的流编辑器
注意:
20.5.3 aspell——交互式拼写检查工具
注意:
20.6 本章结尾语
20.7 附加项
21 格式化输出
21.1 简单的格式化工具
21.1.1 nl——对行进行标号
21.1.2 fold——将文本中的行长度设定为指定长度
21.1.3 fmt——简单的文本格式化工具
21.1.4 pr——格式化打印文本
21.1.5 printf——格式化并打印数据
21.2 文档格式化系统
21.2.1 roff和TEX家族
注意:
21.2.2 groff——文档格式化系统
注意:
21.3 本章结尾语
22 打印
22.1 打印操作简史
22.1.1 灰暗时期的打印
22.1.2 基于字符的打印机
22.1.3 图形化打印机
22.2 Linux方式的打印
22.3 准备打印文件
22.3.1 pr——将文本文件转换为打印文件
22.4 向打印机发送打印任务
22.4.1 lpr——打印文件(Berkeley类型)
注意:
22.4.2 lp——打印文件(System V类型)
22.4.3 另外一个参数选项:a2ps
注意:
22.5 监测和控制打印任务
22.5.1 lpstat——显示打印系统状态
22.5.2 lpq——显示打印队列状态
22.5.3 lprm与cancel——删除打印任务
23 编译程序
23.1 什么是编译
23.2 是不是所有的程序都需要编译
23.3 编译一个C程序
注意:
23.3.1 获取源代码
注意:
注意:
23.3.2 检查源代码树
23.3.3 生成程序
23.3.4 安装程序
23.4 本章结尾语
第四部分 编写shell脚本
24 编写第一个shell脚本
24.1 什么是shell脚本
24.2 怎样写shell脚本
24.2.1 脚本文件的格式
24.2.2 可执行权限
24.2.3 脚本文件的位置
注意:
24.2.4 脚本的理想位置
24.3 更多的格式诀窍
24.3.1 长选项名
24.3.2 缩进和行连接
24.5 本章结尾语
25 启动一个项目
25.1 第一阶段:最小的文档
25.2 第二阶段:加入一点数据
25.3 变量和常量
25.3.1 创建变量和常量
注意:
25.3.2 为变量和常量赋值
25.4 here文档
25.5 本章结尾语
26 自顶向下设计
26.1 shell函数
26.2 局部变量
26.3 保持脚本的运行
26.4 本章结尾语
27 流控制:IF分支语句
27.1 使用if
27.2 退出状态
27.3 使用test命令
27.3.1 文件表达式
27.3.2 字符串表达式
警告:
27.3.3 整数表达式
27.4 更现代的test命令版本
27.5 (( ))——为整数设计
27.6 组合表达式
27.7 控制运算符:另一种方式的分支
27.8 本章结尾语
28 读取键盘输入
28.1 read——从标准输入读取输入值
28.1.1 选项
28.1.2 使用IFS间隔输入字段
28.2 验证输入
28.3 菜单
28.4 本章结尾语
28.5 附加项
29 流控制:WHILE和UNTIL循环
29.1 循环
29.2 while
29.3 跳出循环
29.4 until
29.5 使用循环读取文件
29.6 本章结尾语
30 故障诊断
30.1 语法错误
30.1.1 引号缺失
30.1.2 符号缺失冗余
30.1.3 非预期的展开
30.2 逻辑错误
30.2.1 防御编程
30.2.2 输入值验证
30.3 测试
30.3.1 桩
30.3.2 测试用例
30.4 调试
30.4.1 找到问题域
30.4.2 追踪
30.4.3 运行过程中变量的检验
30.5 本章结尾语
31 流控制:case分支
31.1 case
31.1.1 模式
31.1.2 多个模式的组合
31.2 本章结尾语
32 位置参数
32.1 访问命令行
注意:
32.1.1 确定实参的数目
32.1.2 shift——处理大量的实参
32.1.3 简单的应用程序
32.1.4 在shell函数中使用位置参数
32.2 处理多个位置参数
32.3 更完整的应用程序
32.4 本章结尾语
33 流控制:for循环
33.1 for:传统shell形式
33.2 for:C语言形式
33.3 本章结尾语
34 字符串和数字
34.1 参数扩展(Parameter Expansion)
34.1.1 基本参数
34.1.2 空变量扩展的管理
注意:
34.1.3 返回变量名的扩展
34.1.4 字符串操作
34.2 算术计算和扩展
34.2.1 数字进制
34.2.2 一元运算符
34.2.3 简单算术
34.2.4 赋值
注意:
34.2.5 位操作
34.2.6 逻辑操作
34.3 bc:一种任意精度计算语言
34.3.1 bc的使用
34.3.2 脚本例子
34.4 本间结尾语
34.5 附加项
35 数组
35.1 什么是数组
35.2 创建一个数组
35.3 数组赋值
35.4 访问数组元素
35.5 数组操作
35.5.1 输出数组的所有内容
35.5.2 确定数组元素的数目
35.5.3 查找数组中使用的下标
35.5.4 在数组的结尾增加元素
35.5.5 数组排序操作
35.5.6 数组的删除
35.6 本章结尾语
36 其他命令
36.1 组命令和子shell
36.1.1 执行重定向
36.1.2 进程替换
36.2 trap
36.3 异步执行
36.3.1 wait命令
36.4 命名管道
36.4.1 设置命名管道
36.4.2 使用命名管道
36.5 本章结尾语
看完了
思维导图
防止博客图床图片失效,防止图片源站外链:
http://www.processon.com/chart_image/5e5b27b9e4b0cb56dab10903.png)
思维导图在线编辑链接: