操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。计算机操作系统是随着计算机研究和应用的发展逐步形成并发展起来的,它是计算机系统中最基本的系统软件,如今,基于 Linux 的操作系统在广大开发者的推动下正在蓬勃发展,发挥着无可替代的作用。
搭建学习环境(openEuler)
openEuler
openEuler 是一个基于 Linux 的开源操作系统。它由华为技术和 openEuler 社区共同开发,旨在为企业计算提供灵活和安全的平台,促进操作系统开发中的开放协作和创新,其被设计为一个通用操作系统,可在各种设备上使用,包括服务器、边缘计算设备和云计算平台,支持多种架构,如 x86、ARM 和 RISC-V,适用于各种硬件平台。
安装 VMware
下载学习版,安装步骤不多说了,只是有一点建议,也是我装软件的原则:能不装 C 盘就别装 C 盘。
下载系统映像
前往 openEuler 社区网站,下载 x86_64 架构的,类型为 Offline Everything 的 ISO 文件,我下载的是 openEuler 22.03 LTS 的(提取码:PgZT)。
安装系统映像
- VMware pro 15 安装完成后,启动,点击创建新的虚拟机;
- 选择典型,下一步;
- 选择稍后安装操作系统,下一步;
- 客户机操作系统选择 Linux,版本选择其他 Linux 5.x 或更高版本内核 64 位,下一步;
- 虚拟机名称和位置自定义,下一步;
- 磁盘容量自定义。我这里就设为 60GB,下一步,完成;
- 点击编辑此虚拟机,将内存设置为 4GB,处理器数量设为 4(一般为自己实体机处理器数量的一半);
- 点击 CD/DVD (IDE),选择使用 ISO 映像文件,浏览,选择 openEuler 22.03 LTS 系统的 ISO 映像文件;
- 点击网络适配器,选择桥接模式,即直接连接物理网络(实际网络),确定,开启此虚拟机,等待;
- 回车以检查并开始安装;
- 选择中文,继续;
- 点击安装目的地,点击完成,即自动分区即可;
- 点击软件选择,附加软件处勾选标准和开发工具,完成;
- 点击网络和主机名;
- 开启以太网,不久就可看到当前自动获取到的 IP、默认路由(网关)和 DNS;
- 点击配置,点击 IPv4 配置,选择方法为手动,点击添加,地址填上一步获取到的 IP 的以正斜杠分隔的前一部分,子网掩码填以正斜杠分隔的后一部分,网关即填以上获取到的默认路由,DNS 服务器填以上获取到的 DNS,保存;
- 主机名修改为 openEuler,应用,完成;
- 点击根密码,为 root 用户设定密码;
- 开始安装,完毕后重启系统;
安装 Xshell
Xshell 是一款功能强大的 Windows 平台下的终端模拟器和 SSH 客户端软件,提供图形化界面来管理和操作远程主机。
下载个人或学校专用版,其和商业版没有功能上的任何区别。下载完成后一直下一步就行,初次运行需要进行注册,如下图。
新建会话:
自定义名称,指定主机为安装系统映像第 16 步中手动配置的 IP:
填写用户名和密码。用户名就是 root,密码就是安装系统映像第 18 步中设定的密码:
点击连接,会弹出一个正常的安全警告,选择接受并保存,这样,就连接上了刚安装好的 openEuler 了,可以看到鼠标光标高亮显示着,表示系统正等待着我们去命令它。
基础概念
终端
终端 (Terminal) 是计算机系统中用户用于与操作系统进行交互的命令行界面 (Command Line Interface, CLI),允许用户来执行各种操作和任务。它是与图形用户界面(Graphical User Interface,GUI)相对应的一种界面形式。
Shell
Shell 是一种计算机操作系统的命令行解释器 (command-line interpreter)。Shell 接受用户输入的命令,并将其传递给操作系统内核执行。它还可以执行各种系统管理任务,如文件操作、进程管理、环境变量设置等。Shell 还可以通过编写脚本来自动化任务,这些脚本可以包含一系列的命令和控制结构,使得用户可以批量执行任务。
不同的操作系统可能会使用不同的 Shell。例如,Linux 通常使用 Bourne Shell(如 sh、bash、ksh 等),openEuler 使用的 Shell 就是 bash,Windows 使用的是 PowerShell。
命令提示符
命令提示符 (Command Prompt) 是在命令行界面中显示的特殊符号或文本,表示用户可以输入命令的位置。它通常位于终端窗口的左侧或顶部,并等待用户输入命令。
在不同的操作系统和命令行环境中,命令提示符的外观和格式可能会有所不同。下面是一些常见操作系统中的命令提示符示例:
- Windows’s Command Prompt:
1 | C:\> |
在 Windows 中,命令提示符显示当前工作目录的驱动器和路径。
- 在 Linux 中,Bash 的默认命令提示符显示当前用户名、主机名和当前目录(又称工作目录),以 “$”(表示当前用户为普通用户)或 “#” (表示当前用户为超级管理员)结尾。 命令提示符的外观和格式可以根据用户的配置进行自定义。
命令行基础
命令行语法
命令行通常遵循以下结构:
1 | command [options] [arguments] |
- command 是要执行的命令的名称。
- [options] 表示可选的命令选项,用于修改命令的行为或提供额外的功能。选项通常以 -(简化选项)或 --(完整选项)开始,后面跟随一个或多个字母或单词,多个选项一般可合并书写。
- [arguments] 表示可选的命令参数,用于提供命令操作所需的数据或目标。参数可以是文件名、目录名、字符串等。
示例:
ls -al /
:以长格式列出根目录下所有的文件和子目录(包括以“.” 开头的文件或子目录,即隐藏的)。ls
是列出目录的命令,-al
意为以长格式列出目录下所有的文件和子目录,此为-a -l
的合并写法,/
是一个参数,指根目录,如不带参数,默认的参数是.
,指当前目录。
touch file1.txt
:创建一个名为 file1.txt 的空白文件。
cp file1.txt file2.txt
:复制当前目录下的文件 file1.txt 为 file2.txt 。cp
是复制文件的命令,file1.txt
和file2.txt
是两个参数,作为源文件和目标文件。
rm -f file1.txt file2.txt
:强制删除当前目录下的 file1.txt 和 file2.txt,无需确认。rm
是删除文件或目录的命令,-f
意为强制删除文件或目录,无需确认,file1.txt
和file2.txt
是两个参数,表示删除的目标。
mkdir -p dir1/dir2/dir3
:在当前目录下创建目录 dir1,并在其中创建 dir2,最后在 dir2 中创建 dir3。mkdir
是创建目录的命令,-p
意为递归创建目录,即如果父级目录不存在也会创建,dir1/dir2/dir3
是一个参数,表示要创建的目录路径。tree dir1
:显示 dir1 的树状结构。
总而言之,命令的具体语法、可用选项和参数取决于具体命令。可以通过使用命令的帮助选项 (command --help
) 或查阅命令的手册 (man command
) 来获取更详细的信息。
此外,还有一些常用的命令语法结构,例如管道 (|
) 用于将一个命令的输出传递给另一个命令,重定向 (>
、>>
) 用于将命令的输出重定向到文件等。这些语法结构可以进一步扩展和组合命令的功能。
clear
clear
用于清除终端窗口上的内容,将屏幕清空并将光标移动到顶部,这样可以使终端窗口变得整洁。
在大多数终端模拟器中,例如现在使用的 Xshell,也可以使用快捷键 Ctrl+L 来执行清屏操作,效果相同。
需要注意的是,clear
只清除当前终端窗口的内容,而不会影响其他终端窗口或终端会话。
cat
cat
(concatenate) 用于连接文件并将它们的内容输出到标准输出(通常是终端),通常用于查看文件。
cat /etc/passwd
将查看文件 /etc/passwd,显示的是系统上所有的用户。每个用户的信息都会显示在一行中,字段之间使用冒号分隔。通常,用户名在第一个字段中。
第一行就是用户 root,通常称为超级管理员,拥有系统最高权限,甚至可以无限的破坏系统。
passwd
passwd
用于更改用户的密码。只有用户 root 权限或自己的账户才能使用该命令更改密码。可以有以下几种情况:
- 更改自己的密码:如果你是当前登录用户,可以直接在终端中输入
passwd
,然后按照提示输入当前密码和新密码进行更改。 - 更改其他用户的密码:如果你具有 root 权限,可以使用
sudo passwd <用户名>
命令来更改其他用户的密码。需要将<用户名>
替换为要更改密码的用户的用户名。执行该命令后,系统会提示你输入新密码并进行确认。
需要注意的是,密码在终端中输入时不会显示任何字符,这是出于安全考虑。即使你看不到输入的密码字符,也可以正常输入并按下回车键进行确认。
passwd
命令还可以与一些选项一起使用,例如:
-l
:锁定用户账户,禁止用户登录。-u
:解锁用户账户,允许用户登录。-d
:将用户账户的密码设置为空,即禁止用户使用密码登录。-e
:强制用户在下次登录时更改密码。
history
- 显示当前用户在该终端会话中执行过的所有命令历史记录:
1 | history |
- 显示最近的
n
条命令历史记录:
1 | history n |
- 执行命令历史记录中的第
n
条命令:
1 | !n |
- 执行上一个命令:
1 | !! |
命令历史记录默认保存在用户的主目录下的文件 .bash_history 中。每个用户在不同的终端会话中都有自己独立的命令历史记录。
可以使用上下键在命令历史记录中进行命令切换。
Home 或 End 键
当想要将光标快速移动到命令(当前行)开头或结尾,可以按 home 或 end 键。
Ctrl + C 键
当想要重新输入命令或需要终止当前正在运行的命令,可以按 Ctrl + C 键。这个组合键会发送一个中断信号 (SIGINT) 给当前运行的程序,告诉它停止执行并退出。大多数命令行程序都会响应这个信号,并进行相应的清理工作后退出。
Tab 键
当在终端中输入命令或文件路径时,按下 Tab 键会自动补全你正在输入的内容。
例如,如果想输入命令 ls,只需输入 l,然后按下 Tab 键,系统会自动将其补全为 ls。如果有多个以 l 开头的命令(如 ls 和 less),则继续按下 Tab 键会显示可用的选项。
同样,当你输入文件路径时,双击 Tab 键会自动补全文件或目录的名称。如果你正在输入一个目录的路径,例如/home/user/Documents/,只需输入/home/user/D,然后双击 Tab 键,系统会自动补全为/home/user/Documents/。
这种自动补全功能可以帮助我们快速输入命令和文件路径,减少输入错误并提高效率。
电源管理
shutdown
shutdown
用于停止 (halt)、关闭 (power off) 或重启 (reboot) 系统。只有具有超级管理员身份的用户才能执行此命令。
主要选项:
- -H 或 --halt:停止系统,不关闭电源;
- -P 或 --poweroff:关闭系统,即关闭电源,为默认选项;
- -r 或 --reboot:重启系统;
- -h:同 --poweroff;
参数:
第一个参数可以指定执行时间,指定为 now,即立即执行,格式为 “hh:mm”,指定在一天的几时几分执行,格式为 “+m”,指定在多少分钟之后执行,如果未指定此参数,默认在一分钟之后执行。
执行时间指定之后,可以指定第二个参数,指定一条发送给所有登录用户的通知,用双引号包裹。
示例:
5 分钟后,关闭电源:
1 | shutdown -h +5 |
立即关闭电源并发送一条通知给所有登录用户:
1 | shutdown -h now "System is going down for maintenance" |
用户管理
多用户登录