Unix / Linux - 入门
Unix/Linux - 入门指南
Section titled “Unix/Linux - 入门指南”什么是类 Unix 操作系统?
Section titled “什么是类 Unix 操作系统?”类 Unix 操作系统(OS)充当计算机硬件和用户之间的中介。它管理系统资源,并为应用程序提供运行环境。
操作系统的核心,负责管理硬件资源(CPU、内存、设备)和基本任务,称为内核(kernel)。
用户通常通过一个称为 shell 的程序间接与内核交互。Shell 是一个命令行解释器:它接收您输入的命令,解释它们,并指示内核或其他程序执行操作。流行的现代 shell 包括 Bash (Bourne Again SHell) 和 Zsh (Z Shell)。
- Unix 最初于 1969 年左右在 AT&T Bell 实验室开发,由 Ken Thompson、Dennis Ritchie 等人创建。其设计原则对后续操作系统产生了深远影响。
- 如今,存在许多类 Unix 系统。例如,商业 Unix 版本(如 Solaris、AIX)、开源 BSD 变体(FreeBSD、OpenBSD),以及最重要的 Linux。从技术上讲,Linux 只是内核,但像 Ubuntu、Fedora 和 Debian 等发行版将内核与实用工具和应用程序捆绑在一起,创建了一个完整的操作系统。macOS 也是一个经过认证的 Unix 系统。
- 这些系统本质上是多用户的,允许多人同时使用计算机,每个人都有自己的环境和权限。
- 它们也是多任务的,使用户和系统能够并发运行多个程序。
类 Unix 系统架构
Section titled “类 Unix 系统架构”典型的类 Unix 系统架构的简化视图涉及几个层次:
- **硬件:**计算机的物理组成部分(CPU、内存、磁盘、网络接口等)。
- **内核:**操作系统的核心。它直接与硬件交互,管理系统资源(内存管理、进程调度、文件系统访问),并通过系统调用提供基本服务。
- **Shell:**命令行界面 (CLI),允许用户与系统交互。它读取命令,解释命令,并执行程序。常见的 shell 是 Bash(Linux 上通常是默认的)和 Zsh(较新 macOS 的默认)。
- **命令和工具:**大量执行特定任务的标准程序集合(例如,
cp用于复制,mv用于移动/重命名,ls用于列出文件,grep用于搜索文本)。这些工具是系统管理和日常使用的基本工具。通过包管理器可以获得更多工具。 - 文件和目录:数据和程序组织成文件。文件被分组到目录(文件夹)中。目录可以包含其他目录,形成称为文件系统的分层树状结构。这种标准化结构(通常遵循文件系统层次结构标准 - FHS)有助于组织系统(例如,
/bin存放基本二进制文件,/etc存放配置,/home存放用户目录)。
可以将其想象成用积木搭建:硬件是基础,内核是管理基础的基本地基,shell 是您告诉系统在哪里放置积木的工具,而命令/工具是您用来构建应用程序或管理结构(文件系统)的特定积木。
如果您安装了类 Unix 系统(如 Linux 或 macOS),启动计算机将启动引导过程(涉及固件如 BIOS/UEFI、引导加载程序如 GRUB 和 init 系统如 systemd 或 launchd),最终会显示一个登录提示符,可以是图形界面或文本界面的。
对于远程访问,您通常会使用 SSH (Secure Shell) 协议,通过 SSH 客户端从本地机器安全地连接到服务器的命令行。
无论是通过终端模拟器本地连接还是通过 SSH 远程连接,系统通常会提示您输入用户名和密码:
login: your_usernamePassword:- 确保您拥有一个用户名(用户 ID)和密码。如果没有,请联系您的系统管理员。
- 在
login:提示符下输入您的用户名并按回车。用户名通常区分大小写。 - 在
Password:提示符下输入您的密码并按回车。出于安全考虑,您的密码字符通常在您输入时不会显示。密码几乎总是区分大小写。 - 成功身份验证后,您通常会看到一些系统消息(例如上次登录时间/位置),然后是 shell 提示符。此提示符表示 shell 已准备好接受您的命令。常规用户提示符通常以
$结尾,root(管理员)用户以#结尾。
Last login: Mon Jul 29 10:15:00 2024 from 192.168.1.10your_username@hostname:~$在提示符下,您可以输入命令。例如,要显示当前月份的日历,请使用 cal 命令:
$ cal July 2024Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30 31
$定期更改密码并使用强大且唯一的密码对于安全至关重要。大多数类 Unix 系统提供 passwd 命令来实现此操作:
步骤 1:在命令提示符下输入 passwd 并按回车。
步骤 2:系统将提示您输入当前密码进行验证。
步骤 3:系统会要求您输入新密码。选择一个强大的密码(大小写字母、数字、符号的组合)。避免字典词汇或个人信息。
步骤 4:您需要重新输入新密码进行确认。
$ passwdChanging password for your_username.(当前) UNIX 密码:新密码:重新输入新密码:passwd: 密码更新成功$注意:与登录一样,出于安全考虑,密码输入通常是隐藏的。考虑使用密码管理器来生成和存储强大且唯一的密码。
列出目录内容
Section titled “列出目录内容”如前所述,数据组织在文件和目录中。ls (list) 命令是查看目录内容的基本命令。
使用 ls 结合 -l(长格式)选项可以提供详细信息:
$ ls -ltotal 24drwxr-xr-x 2 user group 4096 Jul 29 10:30 Documents-rw-r--r-- 1 user group 8752 Jul 29 10:25 report.txt-rwxr-xr-- 1 user group 5120 Jul 20 15:00 process_data.shdrwxrwxr-- 3 user group 4096 Jul 15 09:00 Projects解释 ls -l 输出列:
- **第一个字符:**文件类型(
d表示目录,-表示常规文件,l表示符号链接等)。 - **权限:**九个字符,表示所有者、组和其他用户的读(r)、写(w)、执行(x)权限。
- **链接数:**硬链接计数。
- **所有者:**文件所有者的用户名。
- **组:**与文件关联的组。
- **大小:**文件大小(以字节为单位)(使用
ls -lh显示人可读的大小,如 KB、MB)。 - **修改时间:**文件最后修改的日期和时间。
- **名称:**文件或目录的名称。
要查看隐藏文件(名称以点 . 开头的文件),请使用 -a 选项:ls -la 或 ls -lha。
要快速检查您当前登录的用户账户,请使用 whoami 命令:
$ whoamiyour_username$这对于管理多个账户或需要确认当前用户上下文时非常有用。
还有谁登录了?
Section titled “还有谁登录了?”在多用户系统上,您可能想查看当前还有谁登录了。有几个命令提供此信息,详细程度各不相同:
users:列出登录用户的用户名,用空格分隔。who:显示登录的用户、他们的终端行、登录时间,以及可能的源主机。w:比who提供更多细节,包括每个用户当前正在运行什么命令、系统正常运行时间以及平均负载。
$ usersuser1 admin guest
$ whouser1 tty1 2024-07-29 09:15guest pts/0 2024-07-29 10:30 (192.168.1.10)admin pts/1 2024-07-29 11:00 (client.example.com)
$ w 11:05:30 up 1:50, 3 users, load average: 0.10, 0.15, 0.12USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATuser1 tty1 - 09:15 1:50m 0.20s 0.10s -bashguest pts/0 192.168.1.10 10:30 5.00s 0.05s 0.01s vim config.txtadmin pts/1 client.example.com 11:00 0.00s 0.15s 0.02s w$这些命令对于系统监控和了解系统活动非常有用。
当您完成命令行会话后,应该注销以确保账户安全并释放系统资源。
- 在提示符下输入
logout命令。 - 或者,您通常可以输入
exit。 - 在许多 shell 中,在空命令行上按
Ctrl+D也表示输入结束并会注销您。
系统通常会关闭您的会话并断开连接(如果通过远程连接)。
关闭或重启系统
Section titled “关闭或重启系统”正确地关闭或重启类 Unix 系统对于确保数据完整性很重要。这些操作通常需要管理员(root)权限。
常见命令包括:
| Command | Description |
|---|---|
shutdown -h now or poweroff | 立即干净地关闭机器并断电。shutdown 允许计划关机(例如,shutdown -h +10 在 10 分钟后关机)。 |
shutdown -r now or reboot | 立即干净地关闭机器然后重启。shutdown -r 也允许计划重启。 |
halt | 历史上用于停止系统进程,但可能不会给硬件断电;现在通常首选 poweroff。 |
systemctl poweroff | 在使用 systemd init 系统的系统上(现代 Linux 上很常见),此命令会干净地关闭系统并断电。 |
systemctl reboot | 在 systemd 系统上,此命令会干净地关闭系统并重启系统。 |
始终使用这些命令,而不是简单地切断电源,尤其是在服务器上,以防止数据损坏或文件系统问题。如果您不是以 root 用户登录,通常需要在使用这些命令前加上 sudo(例如,sudo poweroff)。