第1章:Linux发行版及核心组件
理解什么是Linux的发行版,然后选择适合自己的版本,掌握安装Linux的步骤,建立对Linux的确切认识。
1.1 Linux介绍:
Linux操作系统的组成部分如下:
安全提醒:
Linux系统上一般指安装所需的软件,因为任何软件都会带来安全隐患,可能为成为攻击的点,所以要进来少安装不必要的软件,减少安全隐患。
1.2 Linux发行版:
常见的发行版:
安全提醒:
商业版一般来说比家庭版更具有安全性。因为商业版一般在公司或政府部门中用来承载关键业务,所以商业版通常把安全性看作一个关键点。
需要重点指出的是:以上只是发行版中的很少一部分,还有很多其他的发行版,有个非常好的网站:https://distrowatch.com/,在上面可以了解更多可以的发行版,也可搜索下载不同发行版所需的软件。
1.2.1 Shell
Shell是一个使得用户可以提交给系统的接口。和windows的dos类似,Shell还提供了一个命令行接口(CLI),它的功能比图形界面更强大。
1.2.2 GUI软件
GUI(图形界面)软件可以让你通过键盘鼠标与系统交互,对个人笔记本GUI是很好选择,不过一般GUI很可能是系统资源占用大户,所以不会在服务器上安装GUI软件。
安全提醒:
可以认为每次向操作系统添加软件都会添加潜在安全风险,所以要对相应的软件进行正确的安全加固,尤其是提供给用户访问的软件尤为重要。
1.3 安装Linux
选择一个适合自己的发行版,然后安装在虚机或物理机上使用,这里就不多赘述了。
第2章:使用命令行
Linux有一个非常有魅力的特性,那就是有大量的命令行工具。多达几千个命令,为用户使用系统提供了非常大的灵活性。
2.1文件管理
Linux系统包含大量文件和目录,在上面的主要操作就是管理文件。
2.1.1 Linux文件系统
2.1.2 执行命令
执行Shell命令的标准方式是在命令提示符下键入命令按下回车,例子如下:
命令也可以接受参数和选项:
2.1.3 pwd命令
pwd(输出当前目录)命令显示了shell的当前目录
2.1.4 cd命令
cd(切换目录)命令,cd命令是那种“没有消息就是好消息”的命令。命令成功没有回显(但是注意提示符改变)如何失败会 显示错误。
cd的命令,还有一些特殊字符表示目录:
2.1.5 ls命令
ls命令用来列出目录中的文件。默认列出当前目录中的文件
和cd命令类似,参数可以使用绝对路径和相对路径列出其他目录文件。
ls命令常用选项:
注意:在Linux中,命令、选项、参数以及所有其他的输入都区分大小写。
ls -l输出的结果:
2.1.6 文件名匹配:
文件名匹配符(也叫通配符)是在命令行中,用代表一个或多个文件名字符的特殊字符。
2.1.7 file命令
file输出文件内容的类型
2.1.8 less命令
用来显示内容非常多的文本文件,但是显示一页会暂停,按键盘上的某些键可以滚动浏览整个文件。
2.1.9 head 命令
显示文本文件的头部内容,默认显示前十行。使用-n选项显示指定行数。
2.1.10 tail命令
显示文本的尾部内容,默认显示后十行,使用-n选项显示指定行数
2.1.11 mkdir命令
mkdir命令用于创建目录
常用重要的命令选项如下:
2.1.12 cp命令
此命令用于复制文件或目录
注意:必须给出复制文件的目标目录
常用命令选项:
2.1.13 mv命令
移动或者重命名一个文件
常用命令选项:
2.1.14 rm命令
用来移除(删除)文件或目录
常用选项如下:
2.1.15 rmdir命令
用于移动(删除)空目录。如果目录不是空的,则此命令失败(用rm -r 来删除)
2.1.16 touch命令
此命令有两个功能,创建一个空文件及更新一个已存在文件的访问和修改时间戳。
常用命令选项:
2.2 Shell特性
2.2.1 shell变量
shell变量用于在shell内保存信息,便于操作使用。
echo 命令用来显示信息,一般显示变量的值。
echo命令常用字符串:
set 命令在不带参数执行时显示所有shell变量和值。
常用命令选项:
unset 命令是从shell环境中移除一个变量
PS1变量定义终端主提示符,通常使用特定字符串
PATH变量:预定义命令路径,即可在命令提示符中直接键入。
环境变量:创建变量时,它仅可在shell中使用的本地变量,其他命令不可调用,使用export命令转换成环境变量,即可被调用。
env命令显示当前shell中的环境变量,执行时本地变量不会显示。
2.2.2 shell的初始化文件
2.2.3 别名
别名是用一个单个“命令”来执行一组命令的shell特性。
显示所有别名直接执行alias命令即可
撤销别名使用unalias命令
2.2.4 历史命令
内存里会保存之前执行的命令列表。可用通过history命令查看,例如列出最后5个命令:
常用的命令选项:
如过你想执行历史命令列表中的一个命令,输入!后面紧跟命令。例如想要执行第3个命令(之前的ls命令),输入如下:
执行之前命令的技巧:
2.2.5 输入输出重定向
每个命令都偶两个输出流(输出和错误输出),并且可用接收一个数据流(输入)。
重定向方法:
方法 | 描述 |
---|---|
cmd < file | 指定文件内容替代输入 |
cmd > file | 输出到指定文件 |
cmd 2>file | 错误输出到指定文件 |
cmd &> file | 输出和错误输出同时输到指定文件 |
cmd 1 | cmd2 | 将cmd1的输出作为cmd2d 输入 |
管道符:
用管道符(之所以这么叫是因为 | 字符被称之为“管道”)将一个命令的输出发送到另外一个命令使命令行功能更强大。
注意:命令的执行顺序不同产生的结果也是不同的。
子命令:
将命令放到$( )字符中,获取该命令的输出并将其作用到另一个命令的参数。
date和pwd输出作为参数传递给echo命令。
2.3 高级命令
2.3.1 find命令
用不同的规则在文件系统中搜索文件及目录
命令格式如下:
find [options] starting_point criteria action
2.3.2 正则表达式
术语regex代表正则表达式(RE),是指用来匹配其他字符的一个或多个字符。
基础正则表达式:
RE规则 | 描述 |
---|---|
^ | 匹配一行的开始 |
$ | 匹配一行的结束 |
* | 匹配0或多个字符 |
. | 匹配单个字符 |
[] | 以中括号为范围的一串字符,一串字符([abc])或字符范围([a-c])都可以 |
[^] | 以中括号为范围的匹配不在此范围的 |
\ | 对表达式的中的特殊字符进行转义 |
2.3.3 grep命令
此命令是在文件中逐行查找包含指定模式的行。默认找到后显示整行。
注意:上例搜索文件时使用的是基础正则表达式。
2.3.4 sed命令
sed命令用于非交互模式下的修改文件。
sed命令的操作:
操作 | 描述 |
---|---|
s/ | 用新的值替换所有匹配到的字符或表达式 |
d | 删除 |
a\ | 在匹配到的行后插入数据 |
i\ | 在匹配到的行前插入数据 |
2.3.5 压缩命令
tar命令,一般用来打包多个文件为单个文件。
重要选项:
gzip命令来压缩文件
重要选项:
选项 | 描述 |
---|---|
-c | 输出内容到STDOUT且不可替代源文件 |
-d | 解压缩文件(也可使用gunzip命令) |
-r | 递归:压缩目录及其子目录的所有文件 |
-v | 详细信息 |
gunzip命令
此命令用来解压缩gzip压缩的文件
bzip2命令压缩文件
注意:bzip2命令会用压缩后的文件替换原始文件。
重要选项:
xz命令压缩文件
重要选项:
选项 | 描述 |
---|---|
-c | 不替代原文件,输出到新文件 |
-d | 解压缩文件(也可用unxz命令) |
-l | 列出已存在的压缩文件信息 |
-v | 详细信息 |
第3章 获取帮助
3.1 man page
可以使用man page获取命令和配置文件的更多信息。
例如:相要学习更多ls命令的知识,可执行 man ls
浏览命令:
移动命令 | 描述 |
---|---|
h | 用来显示帮助界面 |
空格 | 前进一页 |
b | 后退一页 |
回车 | 向下移动一行,下箭头也可实现 |
上箭头 | 向上移动一行 |
/term | 在文档中搜索term的内容 |
q | 退出 |
3.1.1 man page组件
3.1.2 man page的分类
类别 | 描述 | 类别 | 描述 |
---|---|---|---|
1 | 可执行的命令及shell命令 | 6 | 游戏 |
2 | 系统调用 | 7 | 杂项 |
3 | 系统库调用 | 8 | 系统管理员的基本命令 |
4 | 特殊文件 | 9 | 内核相关内容 |
5 | 文件格式 |
你可能好奇如何知道特定的man page分类名。可以使用 man -f命令来获得如下信息。
注意:man -f命令与whatis命令是相同的
3.1.3 man page 的存储位置
某些情况下 man page不在标准的存储位置,这时需要给man page 指定一个替代的为了可以使用-M选项。
3.2 命令的help选项
某些命令支持提供一些基础的帮助选项
3.3 help命令
help命令只对shell内置的命令提供帮助信息,因为这些命令没有单独的man page。
3.4 info命令
与man page不同,info page更新一个阅读一个拥有众多超链接的网站
info命令的移动命令:
命令 | 描述 |
---|---|
n | 移动到下一节点 |
p | 移动到前一节点 |
u | 移动到父节点 |
l | 移动到最近的节点(上一次所在节点) |
b | 移动到当前节点的开始位置 |
t | 移动到所有节点顶部 |
q | 退出info命令 |
3.5 /usr/share/doc目录
更多的文档可以在此目录中找到。能找到什么文档取决系统安装什么软件。
3.6 因特网资源
第4章编辑文件
4.1 vi编辑器
vi编辑器是现在linux和unix系统的标准文本编辑器
4.1.1vim是什么
vim作为vi编辑器的复制品,有同样的基本功能,但是vim有一些额外的功能。有些发行版只有vi编辑器,许多发行版是两者都有的,也有些vi命令其实是vim编辑器的链接。
这里不多赘述:详情参考:Linux vi/vim操作入门到精通(图文版)
4.2 其他编辑器
4.2.1 Emacs
类似vi编辑器,如果你在图形化终端只要运行emacs命令即可。
4.2.2 gedit和kwrite
是完全图形化的编辑器,类似windows的记事本。
4.2.3 nano和joe
只可在命令行环境下使用的编辑器,所以不需要图形环境
4.2.4 lime 和bluefish
通过一下工具和特性文本文件的编辑提升到一个新的层次,是为开发人员创建代码而设计的,包括语法高亮、代码自动补全以及代码自动缩进。
第5章故障处理
首先坏消息是:出了问题,如命令会失败、程序会崩溃、配置会出错。
而好消息是:这些问题都是由技术可以修复的。故障处理不是仅仅去凭空猜想。应该在发生故障时采取特定的步骤来定位问题,并确定最佳解决方案。
5.1 故障排除的科学
首先是排除问题的一般步骤:
5.2通知用户
确保用户及时了解网络或系统中的更改非常重要。
5.2.1登陆前和登陆后的消息
/etc/issue文件
登陆前提升系统的名称以及内核版本,都是来自此文件。
文件中的可用特殊值:
注意:这些值实际商被一个叫agetty的进程使用。
/etc/motd文件
登陆进系统后,提示的信息在此文件中编辑。
内容设置给一些建议:
5.2.2 广播消息
wall命令
给所有用户终端商发广播消息。
注意:wall命令发的消息不能超过20行
shutdown命令
你想给用户传递信息你要关闭系统,可以使用shutdown命令
——END——