【读书笔记】Linux系统管理初学者指南读书笔记1——第1-2章

2023-06-05,,

本博客记录一下《Linux系统管理初学者指南》这本书的读书笔记,最近由于想做一些关于嵌入式的项目,所以需要对Linux系统进行学习,正好之前买过这本书,内容还可以,能作为入门阅读

第1章 了解并安装Linux系统

Linux系统的发展与特点

Linux的发展历史

Multics计划
UNIX系统:1970年为UNIX元年,1970年1月1日0:00在UNIX系统中作为计算机时间的起点
类UNIX操作系统
MINIX系统
Linux系统:Linus
系统内核:负责完成操作系统基本功能的程序,主要作用是负责统一管理计算机中的硬件资源,提供用户擦操作界面,提供应用程序的运行环境

Linux系统中的内核程序称为Kernel
GNU计划:世界知名的自由软件项目,决定了Linux系统自由、开放的属性
Kernel作为Linux系统的核心,只能实现系统的基本功能,而一个完整的Linux系统应该包括Kernel和应用程序两部分,而无论是Kernel还是Linux,其中的绝大部分应用程序属于GNU计划,遵守GNU计划中的GPL或LGPL协议
Linux的发行版本:作为用户使用的都是运行在内核之上的各种应用程序,很多公司或组织在Linux内核的基础上添加了各种管理工具和应用软件,构成了一个完整的操作系统
将系统内核和应用软件封装在一起的操作系统成为Linux发行版,一般平时接触和使用的Linux系统都是Linux的发行版
RedHat Linux
Fedora
RHEL(RedHat Enterprise Linux)
CentOS(Community Enterprise Operation System,社区企业操作系统)
Debian
Ubuntu
Kali Linux
SUSE

Linux系统较为广泛的应用是网络服务器以及各种嵌入式系统

在VMware Workstation安装虚拟机

设置虚拟机的网络环境:

桥接(bridged)模式:虚拟机像是一个独立主机,与物理主机是同等地位,可以通过物理主机的网卡访问外网,外部网络中的计算机也可以访问此虚拟机,桥接模式对应的虚拟网络名称为VMnet0

仅主机(host-only)模式:仅主机模式对应的是虚拟网络VMnet1,这是一个独立的虚拟网络,与物理网络之间是隔离开的,所有设为仅主机模式的虚拟机之间以及虚拟机与物理主机之间可以相互通信,但它们与外部网络中的主机无法通信

NAT(网络地址转换)模式:NAT模式对应的虚拟网络是VMnet8,物理主机就像一台支持NAT功能的代理服务器,而虚拟机就像NAT的客户端一样,虚拟机可以使用物理主机的IP地址直接访问外部网络中的计算机,但由于NAT技术的特点,外部网络中的计算机无法主动与NAT模式下的虚拟机进行通信

Linux系统的基本操作

一个完整的Linux系统是由Kernel和各种应用软件组成的,Linux系统的桌面环境(X Window)也是由应用软件来提供的,负责X Window桌面环境的软件主要有两个:GNOME和KDE

X Window只是Linux系统的一个应用软件,并没有集成到Linux的内核中,因此用户可以根据需要选择是否运行图形界面

Shell

Linux系统的字符界面称为Shell(Shell本来是指系统的用户界面,为用户与系统内核进行交互操作提供了一种接口,图形界面和字符界面都属于Shell,图形界面的Shell称为GUI,字符界面的Shell称为CLI,由于Linux系统的操作以字符界面为主,因此Shell通常专指CLI)
Shell是Linux系统中的一个应用程序,将用户输入的命令解释成系统内核能理解的语言,命令执行后再将结果以用户可以理解的方式显示出来
Linux系统中负责提供Shell功能的软件有很多,比如sh、Csh、Zsh和Bash等,CentOS系统中默认使用的是Bash

启动Shell

Linux是一个多用户操作系统,可以同时接受多个用户登陆,而且还允许同一个用户从不同的终端进行多次登陆,在使用安装Linux系统的计算机时,虽然用户面对的也是一个物理终端设备,但可以在这一个物理终端上通过虚拟终端打开多个互不干扰,独立工作的页面

Linux中提供的虚拟终端默认有6个,其中第1个是图形界面,第2-6个则是字符界面,可以通过Ctrl+Alt+F1-F6在不同的虚拟终端进行切换,同时在字符界面下执行startx命令也可以进入图形界面(在Ubuntu中Ctrl+Alt+F1-F6代表不同的虚拟终端,而Ctrl+Alt+F7则是返回图形界面,书中描述的是CentOS)
虚拟终端的缩写为tty,执行tty命令就可显示用户目前所在的终端编号

除了虚拟终端外,还有一种启动Shell的方式称为伪终端,缩写为pts,在图形界面中,右键打开终端即可弹出一个运行在图形环境中的字符界面窗口,这就是一个伪终端,在其中执行tty命令,其中的结果为/dev/pts/0,表示这是系统启动的第一个伪终端(伪终端的编号从0开始)

启动Shell后,可以看到类似于zyh@zyh-virtual-machine:~$的命令提示符,命令提示符是Linux字符界面的标志

zyh:表示当前登录的用户账户
zyh-virtual-machine:表示本机的主机名
:表示用户当前所在的位置,即工作目录(是一个特殊符号,泛指用户的家目录)
$:表示当前登录的是普通用户,如果是管理员用户则变为#

可以通过Ctrl+C键发出中断信号来中断命令的运行

Shell命令格式

Shell命令由命令名、选项和参数共3个部分组成:

命令名 [选项] [参数](命令名、选项和参数之间必须用空格分隔)

命令名:描述命令功能的英文单词或缩写
选项:调节命令的具体功能
选项通常以-开头,当有多个选项时,可以只使用一个-符号
部分选项以--开头,这些选项通常是一个单词或词组
少数命令的选项不需要-符号
参数:命令的处理对象,可以是文件、目录或用户账号等内容

在Shell中,一行可以输入多条命令,命令之间用分号分隔,如果在一行命令后加上****符号,就表示另起一行继续输入

通过上下方向键可以找出曾经执行过的命令

关机与重启命令

关机:poweroff
重启:reboot
shutdown:既可以用来关机又可以用来重启
立即关闭系统:shutdown -h now
立即重启系统:shutdown -r now
15分钟后关闭系统:shutdown -h +15
10分钟后重启系统,并将信息发给登陆到本机中的各用户:shutdown -r +10 'The system will be rebooted!!'
对于延时运行的关机重启操作,可以用shutdown -c命令或Ctrl+C组合键取消
相比于poweroff和reboot命令,shutdown命令在执行前会给所有登陆用户发送警告信息,因次更加安全

第2章 文件和目录管理

本章主要介绍一些常用的Linux系统的文件和目录管理类命令

Linux设计思想

一切皆文件:在Linux系统中,不只数据以文件的形式存在,其他资源(包括硬件设备)也被组织为文件的形式,例如硬盘以及硬盘中的每个分区在Linux中都被视为一个文件
整个系统由众多的小程序组成:整个Linux系统是由众多单一功能的小程序组成的,每个小程序只负责实现某一项具体功能,比如Linux的绝大多数命令,其实各自有一个相应的小程序,如果需要完成一项复杂任务,只需将相应的命令组合在一起即可
尽量避免与用户交互:在对系统进行管理操作时,要尽量避免用户的参与,因为Linux系统主要用作服务器的操作系统,在服务器上执行的操作最好通过编写脚本程序完成,从而自动化地完成某些功能
使用纯文本文件保存配置信息:如果需要改动系统或程序中的某项功能,只需编辑相应的配置文件

Linux系统中的文件和目录

Linux的目录结构

在Windows系统中,为每个磁盘分区分配一个盘符,在资源管理器中通过盘符就可以访问相应的分区,每个分区使用独立的文件系统,每个分区都有一个根目录,如C:\、D:\等
Linux系统的绝大多数发行版遵循FHS(Filesystem Hierarchy Standard)文件系统层次化标准,采用统一的目录结构,按照FHS标准,整个Linux文件系统是一个倒置的树形结构,系统中只存在一个根目录,所有的目录和文件都在同一个根目录下
在Linux系统中定位文件或目录时,使用/进行分隔(区别于Windows的),在整个树形目录结构中,使用/表示根目录,根目录就是Linux文件系统的起点,在根目录下按照用途不同划分有很多子目录

下面是遵循FHS标准的典型目录结构:

以下是CentOS 7中一些常见的目录及其作用:

/boot:存放Linux系统启动所必需的文件,Kernel被存放在这个目录中
/etc:存放Linux系统和各种程序的配置文件,Linux中的很多操作和配置都是通过修改配置文件实现的(类似于Windows系统中的注册表)
/dev:存放Linux系统中的硬盘、光驱和鼠标等硬件设备文件
/bin:存放Linux系统中常用的基本命令,任何用户都有权限执行
/sbin:存放Linux系统基本的管理命令,只有管理员权限才可以执行
/usr:软件的默认安装位置,类似于Windows系统中的Program Files目录
/home:普通用户家目录(也称为主目录)
/root:超级用户root的家目录
/mnt:一般是空的,用来临时挂载存储设备
/media:用于系统自动挂载可移动存储设备
/tmp:临时目录,用于存放系统或程序运行时产生的一些临时文件,可供所有用户执行写入操作

pwd(print working directory)命令:用于显示用户当前所在的工作目录路径

/:是Linux系统的根目录,也是其他所有目录的起点
/root:根目录下的一个子目录,用途是作为管理员root用户的家目录,家目录主要用于存放用户的各种数据
Linux系统中普通用户的家目录默认集中存放在/home目录中,以用户名命名

cd(change directory)命令:用于切换工作目录

单纯执行cd命令,将默认返回到当前用户的家目录
~表示当前用户的家目录
cd -可以在最近工作过的两个目录之间进行切换

关于路径的一些基本概念:

绝对路径:以根目录/作为起点,可以准确地表示一个文件或目录所在的位置
相对路径:以当前的目录为起点,在开头不使用/符号,输入的时候更加简单
.:表示当前目录
..:表示当前目录的上一级目录

文件和目录操作命令

ls(list)命令:以列表的方式显示一个目录中包含的内容

ls显示结果以不同的颜色来区分文件类别,蓝色代表目录,灰色代表普通文件,绿色代表可执行文件,红色代表压缩文件,浅蓝色代表链接文件
touch命令:用于创建空文件或修改已有文件的时间戳
mkdir(make directory)命令:用于创建新的空目录
rmdir(remove directory)命令:可以删除指定的目录(必须是空目录,没有任何文件和子目录)
cp(copy)命令:复制文件或目录
cp [选项] 源文件或目录 目标文件或目录
mv(move)命令:用于移动文件或对文件重命名
mv [选项] 源文件或目录 目标文件或目录
rm(remove)命令:删除文件或目录
-f选项:强制删除,无须用户确认
-r选项:递归删除整个目录

文件内容操作命令

cat(concatenate)命令:用于查看文本文件内容
more命令和less命令:分页显示文件内容
head命令和tail命令:显示文件开头或末尾的部分内容
wc命令:用于统计文件中的行数、单词数和字节数
echo命令:用于输出指定的字符串或变量的值
在变量名称加前导符号$,可以引用一个变量的值
grep命令:用于在文本文件中查找并显示包含指定字符串的所有行
diff命令:用于比较多个文本文件之间的差异

日期和时间的相关命令

date命令:显示或修改日期和时间

文件查找命令

locate命令:简单快速的文件查找命令
find命令:强大的文件查找命令,可以实现的文件的精确查找
xargs命令:find辅助命令

内部命令和外部命令

Linux系统中的命令总体上分为内部命令和外部命令两大类

内部命令:指集成在Shell中的命令,属于Shell中的一部分,只要Shell被执行,内部命令就自动载入内存,用户可以直接使用
外部命令:很多的Linux命令独立于Shell之外,称为外部命令

Linux系统中的绝大多数命令属于外部命令,而每个外部命令都对应了系统中的一个可执行的二进制程序文件,这些二进制程序文件主要存放在下列目录中:
普通命令:/bin、/usr/bin和/usr/local/bin
管理命令:/sbin、/usr/sbin和/usr/local/sbin

其中,普通命令是指所有用户都可以执行的命令,管理命令则只有管理员root才有权限执行,Linux系统默认将外部命令程序文件的存放路径保存在一个名为PATH的环境变量中

type命令:判断一个命令是内部命令还是外部命令

which命令:查找外部命令所对应的的程序文件

其他辅助命令

ln命令:用于为文件或目录建立快捷方式(Linux系统中称为链接文件)
alias命令:用于设置命令别名
系统定义的别名命令:ll(相当于ls -l)
unalias命令可以取消所设置的别名命令
history命令:查看命令历史记录
help命令:查看内部命令帮助信息
对于外部命令,可以使用通用命令选项"--help"
man命令:查看命令帮助手册
clear命令:清除当前终端屏幕的内容
ctrl+L也有相同的效果

其他技巧

通配符和扩展符

在Linux系统中执行命令时,可以通过一些特殊符号对多个文件进行批量操作,从而提高操作效率

通配符:通用的匹配信息的符号

*:匹配任意数量的任意字符
?:在相应的位置上匹配单个字符
[]:匹配指定范围内的任意单个字符,如[a,b,c]是表示a、b、c任意一个字符;[a-z]表示任意一个小写字母
扩展符:在扩展符({})中可以包含一个以逗号分隔的列表,并将其自动展开为多个路径或文件名

管道符|

通过管道符|可以把多个简单的命令连接起来以实现更加复杂的功能,管道符用于连接左右两个命令,将|左边命令的执行结果作为|右边命令的输入

命令的换行

Linux命令行需要换行可以使用\,出现>时可以继续输入命令

【读书笔记】Linux系统管理初学者指南读书笔记1——第1-2章的相关教程结束。

《【读书笔记】Linux系统管理初学者指南读书笔记1——第1-2章.doc》

下载本文的Word格式文档,以方便收藏与打印。