Linux 系统简介
Linux® 是一个基于 Unix 操作系统的免费开源操作系统(OS)。 它以其稳定性、安全性和灵活性而闻名。 Linux 在各种许可证下分发,例如 GNU 通用公共许可证,它允许用户自由修改和分发软件(待填坑:Linux 许可证)。
Linux 提供命令行界面,部分 Linux 系统可以提供类似于 Windows 或 MacOS 的图形用户界面 (GUI)。 然而,Linux 和 Windows 之间的主要区别在于它们处理软件和硬件的方式。
Linux 系统和 Windows 系统的区别
开放形式
Linux 和 Windows 之间的主要区别之一是 Linux 是开源的,而 Windows 是闭源的。 这意味着任何人都可以下载和修改 Linux 的源代码,而 Windows 的源代码只对微软及其合作伙伴开放。
安装方式
另一个关键区别是软件在两个操作系统上的安装方式。 在 Windows 上,用户通常从第三方网站或 Microsoft Store 下载并安装软件。 在 Linux 上,软件通常是通过包管理器(package manager)安装, 这使得管理软件变得更加容易,并可以确保系统上的所有软件都是最新的和安全的。
稳定性与安全性
Linux 还以其稳定性和安全性着称。 因为其开源的特性,任何人都可以查看和修改源代码,这意味着可以快速发现和修复错误和安全漏洞。 此外,由于其架构和安全功能,Linux 比 Windows 更不容易感染病毒和恶意软件。
可同时在线用户数量
Linux 和 Windows 在可以同时登录的用户数量方面也有所不同。Linux 比 Windows 更适合多用户环境。 Linux 从一开始就被设计成一个多用户系统,内置了文件权限、进程隔离和用户管理等功能。这意味着多个用户可以同时登录到 Linux 系统并在不干扰的情况下处理不同的任务。
事实上,Linux 可以同时支持数百甚至数千个用户。 这使得 Linux 成为服务器的流行选择,因为多个用户可能需要同时访问相同的资源或应用程序。另一方面,Windows 传统上更适合单用户环境。 虽然最新版本的 Windows 确实在一定程度上支持多用户环境,但可以同时登录的用户数量通常是有限的。
例如,Windows 10 专业版最多只允许 10 个用户并发连接,而企业版最多可支持 1000 个连接。 这意味着 Windows 可能不太适合多个用户需要同时在同一系统上工作的环境。总的来说,虽然 Linux 和 Windows 都可以支持多用户,但 Linux 通常更适合多用户环境,而 Windows 更适合单用户环境。
Linux 理念:一切皆文件(Everything is a file)
与 Windows 系统完全不同的是, 在 Linux 中,包括设备、进程和资源等几乎所有东西都可以表示为文件系统层次结构中的文件或目录。 例如,硬盘驱动器、USB 驱动器和网络接口表示为 /dev/ 目录中的文件,而进程和系统资源表示为 /proc/ 目录中的文件
这种基于文件的系统管理方法可以更轻松地使用同一组工具和命令与各种系统资源进行交互和管理,创建文件,编辑文件,保存文件,关闭文件,重命名文件,删除文件,恢复文件等。 例如,要查看有关正在运行的进程的信息,只需导航到 /proc/ 目录并读取相应的文件,而不是使用单独的实用程序或命令。
此外,基于文件的方法使操作和定制系统变得更加容易。 例如,可以在文件系统层次结构中创建一个新的目录,并将一个新的文件系统挂载到该目录,有效地为系统增加新的存储空间。
总的来说,Linux 中“一切皆文件”的理念反映了系统应该被设计成简单、灵活、易于管理的思想,许多系统资源可以使用文件系统层次结构以统一的方式表示。
Linux 系统目录结构
Linux 具有分层目录结构,作为系统的中心组织原则。 层次结构中的每个目录都有特定的用途并包含特定类型的文件和目录。 以下是 Linux 文件系统层次结构中每个主要目录的用途的简要概述:
目录 | 用途 |
---|---|
/ | 文件系统的根目录,系统中的所有其他目录和文件都位于该目录下的某个位置。 |
/bin | 包含基本系统操作所需的基本二进制文件和实用程序,例如 shell、ls、cp 和 mv,该目录中存储的都是一些二进制文件,文件都是可以被运行的 |
/bin/grub | 开机设置相关文件 |
/boot | 包含用于引导系统的引导加载程序文件和内核映像 |
/dev | 存放表示物理和虚拟设备(如硬盘、USB 驱动器和串行端口)的设备文件的目录。外接设备, 例如盘,其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似window下的分配盘符) |
/etc/rc.d | 不同运行登记的的启动脚本的链接文件 |
/etc | 存放系统配置文件,例如网络、用户帐户和系统服务的配置文件的目录 |
/lib | 存放系统程序和实用程序使用的共享库的目录 |
/home | 除了 root 用户以外的常规用户的主目录,类似于 windows系统下的 /User 用户目录 |
/mnt | 临时文件系统或网络文件系统或外接设备的挂载点 |
/media | 可移动媒体设备(例如 USB 驱动器和 CD/DVD)的挂载点 |
/opt | 存放系统管理员安装的可选软件包的目录 |
/proc | 存放关系统进程、内存使用情况和其他系统统计信息的虚拟文件的目录 |
/root | root 用户的主目录 |
/run | 存放系统服务的运行时文件的目录 |
/sbin | 用于 super 权限的用户才能执行的系统管理任务的系统二进制文件,例如挂载文件系统和配置网络的目录 |
/srv | 存放程序/系统服务的数据文件,例如 Web 服务器数据以及一些服务的执行脚本 |
/sys | 存放提供有关系统硬件(如设备和驱动程序)信息的文件的目录 |
/tmp | 存放系统运行时候产生的临时文件的目录 |
/usr | 存放对基本系统操作不是必需的系统文件以及用户自己安装的软件,例如应用程序、库和文档, 类似于 windows 下的 program files |
/var | 存放的可变数据文件,如假脱机文件(spool file)/系统的日志文件的目录 |
总的来说,Linux 文件系统层次结构中的每个目录都有特定的用途,有助于组织和管理系统文件和目录。
Linux 常用命令
命令 | 全名 | 用法 |
---|---|---|
cd | Change Directory | 改变当前工作目录 |
ls | List | 列出当前目录下的文件和目录 |
pwd | Print Working Directory | 打印当前工作目录 |
mkdir | Make Directory | 创建一个新目录 |
touch | Touch | 创建一个新的空文件或更新现有文件的时间戳 |
rm | Remove | 删除文件或目录 |
cp | Copy | 复制文件或目录 |
mv | Move | 移动或重命名文件或目录 |
cat | Concatenate | 显示文件的内容 |
grep | Global Regular Expression Print | 在文件中搜索特定信息 |
tar | Tape Archive | 创建或提取压缩存档文件 |
gzip | GNU zip | 压缩文件 |
unzip | Unzip | 从压缩档案中提取文件 |
chmod | Change Mode | 更改文件或目录的权限 |
chown | Change Owner | 更改文件或目录的所有者 |
ps | Process Status | 显示有关正在运行的进程的信息 |
top | Top Processes | 显示实时系统资源使用情况和Top进程 |
ssh | Secure Shell | 建立到远程服务器的安全 shell 连接 |
scp | Secure Copy | 在本地和远程服务器之间安全地复制文件 |
man | System Reference Manuals | 系统参考手册 |
这些只是常见 Linux 命令的几个示例,但还有更多命令可用于广泛的任务。 请务必注意,Linux 命令区分大小写,因此请务必按照此处列出的方式准确键入它们。
Linux man 命令简介
Linux man 命令(Manuals 的缩写)提供有关 Linux 系统上可用的各种命令、函数和系统调用的详细文档。 man 命令可用于查看系统上几乎所有命令或功能的手册页。
使用 man 命令的语法如下:
man [section] command
# 查看ls命令的手册
man ls
# 查看cd命令的手册
man cd
# 查看man命令的手册
man man
这里,command 是要查看其手册页的命令或函数的名称,section 是一个可选参数,用于指定要显示手册的哪一部分,按 q 退出可以退出 man 查询状态。
手册页分为几个部分,每个部分涵盖不同的主题。 这些部分从 1 到 9 编号,组织如下:
- 第 1 节:用户命令(即普通用户可用的命令)
- 第 2 节:系统调用(即内核提供的函数)
- 第 3 节:库函数(即系统库提供的函数)
- 第 4 节:设备驱动程序和特殊文件
- 第 5 节:文件格式和约定
- 第 6 节:游戏和演示
- 第 7 节:杂项(即宏包、约定等)
- 第 8 节:系统管理命令
默认情况下,如果未指定任何部分,man 将显示它为指定命令找到的第一个手册页。 如果有多个页面可用,man 会按上面列出的顺序显示它找到的第一个页面。
手册页通常提供命令或函数的详细描述,包括其语法、参数、选项和用法示例。 手册页还可能提供其他信息,例如故障排除提示、注意事项或其他相关命令。
总的来说,man 命令提供了有关系统上可用的各种命令和功能的详细文档,帮助用户更好地理解和有效地使用这些工具。