003 系统和入门指令

操作系统(OS)的基础概念

操作系统是计算机硬件和软件之间的中介,它负责管理计算机硬件资源并为应用程序提供一个运行环境。简单来说,操作系统的目标是使计算机变得更好用。它使得硬件的复杂性对用户透明,提供更高效的资源管理,并使应用程序能够正常运行。

1. 操作系统的层次结构

操作系统通常由多个层次构成,每一层提供不同的功能:

  1. 硬件层(硬件)
    这是计算机的基础物理部分,包括 CPU、内存、硬盘、显示器、键盘等。硬件直接提供计算和存储资源。
  2. 设备驱动层
    这一层负责控制和管理硬件设备,如声卡、显卡、打印机等。操作系统通过设备驱动程序与硬件进行通信,确保硬件的正常运行。
  3. 操作系统层
    这一层是操作系统的核心部分,负责管理硬件资源,调度进程,提供文件管理、内存管理等基本功能。常见的操作系统包括 Windows、Linux、macOS 等。
  4. 应用软件层
    最顶层是应用软件,它包括各种应用程序,如 Word、Matlab 等。用户通过这些软件与计算机互动,完成各种任务。

2. 操作系统的功能

  1. 资源管理
    操作系统需要高效管理计算机的资源,如 CPU 时间、内存、磁盘存储等。它通过调度算法分配资源,确保每个进程能够公平、高效地使用资源。
  2. 进程管理
    操作系统负责管理和调度各个运行的进程,确保它们按优先级运行,并避免资源冲突。
  3. 文件系统管理
    操作系统提供一个文件系统,用于组织和管理存储在磁盘上的数据。它确保数据能够有效地存储和检索。
  4. 用户界面
    操作系统提供一个用户界面,让用户能够与计算机交互。传统的图形用户界面(GUI)或命令行界面(CLI)让用户输入指令并接收反馈。

3. 常见操作系统

  • Windows:广泛应用于个人电脑和办公环境,是最常见的桌面操作系统。
  • Linux:一个开源的操作系统,具有高度的可定制性,广泛应用于服务器和嵌入式系统。
  • macOS:苹果公司开发的操作系统,具有优雅的图形界面和强大的开发工具,广泛应用于苹果设备。

4. 一个好的操作系统衡量指标:

  1. 性能:快速响应、有效的资源利用、高吞吐量。
  2. 稳定性:高可靠性、容错能力强、进程隔离良好。
  3. 安全性:强大的权限管理、数据保护、及时的漏洞修复。
  4. 可扩展性:支持多种硬件、兼容多种软件、有效管理多任务。
  5. 易用性:直观的用户界面、完善的文档支持、灵活的配置管理工具。
  6. 支持和维护:强大的社区支持、定期更新、丰富的开发者生态。
  7. 兼容性:跨平台兼容和向后兼容,确保广泛的软件和硬件支持。
  8. 资源管理:高效的内存、磁盘和 CPU 调度管理。

我们的所有的软件行为,全部都要 自顶向下(应用软件 –> ==操作系统== –> 设备驱动 –> 硬件)==贯穿== 计算机的软硬件结构,几乎我们的所有的软件行为,未来都和操作系统直接或者间接相关!

传道解惑

Q1:为什么要有操作系统?

  • 操作系统的核心工作:操作系统通过管理硬件资源(如 CPU、内存、硬盘等)来保证计算机的高效运行。
  • 目标:通过良好的资源管理,提供给用户一个稳定、快速且安全的工作环境。
  • 稳定、快速、安全:这三个关键词表明,操作系统不仅要确保系统不容易崩溃,还要在处理任务时迅速反应,并保护用户数据的安全性。

简而言之,操作系统的核心任务是协调硬件和软件的交互,确保计算机可以高效、稳定并安全地执行任务。

操作系统的发展历史表明,先有指令(即命令行界面),再有图形用户界面(GUI)。这是因为操作系统最初的设计目标是通过命令行接口与计算机进行交互,而图形界面是为了提高用户体验而逐渐发展出来的。

Q2:为什么先有指令,再有图形界面?

1. 指令先行:

  • 早期的计算机操作系统(如 UNIX、DOS 等)主要依赖命令行界面(CLI)。用户通过输入指令(如 lsdir 等)来与操作系统进行交互。这种方式对计算机硬件的控制更加精确、灵活,适用于开发人员和技术人员。

2. 图形界面后发展:

  • 随着计算机技术的发展,尤其是在个人计算机普及后,用户开始需要更加直观和易用的操作方式。图形用户界面(GUI)应运而生,典型的例子如 Mac OS、Windows 等。GUI 通过图标、窗口、按钮等元素提供了更为友好的用户体验。

3. 为什么?

  • 技术限制:早期的计算机资源有限,硬件和图形显示技术还不成熟,因此以文字和命令行的方式与计算机交互是最有效的。
  • 用户群体:早期计算机主要用于科研、军事和技术开发,用户多为专业人员,他们更习惯于通过指令行与计算机沟通。
  • 演化需求:随着计算机的普及,更多非技术用户开始使用计算机,需求变得更加注重易用性,于是图形界面得以逐渐发展并成为主流。

因此,指令是操作系统的基础,而图形界面是在后期发展起来的,目的是让操作系统更加易用、亲民。


Linux 下基础命令详解

在 Linux 操作系统中,有许多常用的命令帮助用户管理文件系统、执行操作及进行系统管理。本文将介绍一些常见的命令以及如何使用它们,帮助初学者更好地理解和使用 Linux。

初见:

  • ls:显示当前文件夹下的文件和目录。
  • pwd:显示当前所在的目录路径。
  • mkdir 新文件夹名称:在当前位置创建一个新的文件夹。
  • cd 目录:进入指定目录。

如果你想创建的是文件而非文件夹,可以使用命令 touch 文件名称 来创建一个空文件。

1. ls 指令——文件和目录的显示命令

语法: ls [选项] [目录或文件]

  • ls:列出当前目录下的文件和目录。

    1
    ls
  • ls -l:以长格式显示目录内容,包含详细的文件信息(如权限、所有者、文件大小等)。

    1
    ls -l
  • llllls -l 的简写,执行结果相同。它是许多 Linux 系统中为了简化命令输入而创建的别名。

    1
    ll
  • ls -a:显示包括隐藏文件在内的所有文件(以 . 开头的文件为隐藏文件)。

    1
    ls -a
  • ls -al 或 ls -la:这两个命令等价,表示显示所有文件,包括隐藏文件,且以长格式显示。

    1
    ls -al
ls 命令 说明
ls -a 列出目录下的所有文件,包括以 . 开头的隐藏文件。
ls -d 将目录像文件一样显示,而不是显示其内容。例如:ls -d 指定目录
ls -i 输出文件的 inode 节点的索引信息。例如:ls -ai 指定文件
ls -k 以 k 字节的形式显示文件大小。例如:ls -alk 指定文件。
ls -l 列出文件的详细信息。
ls -n 用数字的 UID、GID 代替名称(介绍 UID、GID)。
ls -F 在每个文件名后附加一个字符以说明该文件的类型,* 表示可执行的普通文件,/ 表示目录,`
ls -r 对目录反向排序。
ls -t 以时间排序。
ls -s 在文件名后输出该文件的大小(大/小排序,如如何找到目录下最大的文件)。
ls -R 列出所有子目录下的文件(递归)。
ls -1 一行输出一个文件。

2. 文件类型说明

  • d:表示一个目录。
  • -:表示一个普通文件。
  • 以 . 开头的文件:这些文件是隐藏文件,通常用于存储配置或系统信息。

3. 路径说明

  • 相对路径与绝对路径:
    • 绝对路径:从根目录 / 开始的路径,具有唯一性。在任何环境中都能准确指向一个文件或目录。例如:/home/user/docs/file.txt
    • 相对路径:相对于当前所在目录的路径。路径会根据当前所在目录的不同而有所变化。相对路径更短,但在路径变动时可能失效。
  • . 和 .. 的含义:
    • .:表示当前目录。
    • ..:表示上一级目录。

4. 用户管理命令和 cd 指令

  • whoami:显示当前登录的用户名。
  • 家目录:在 Linux 系统中,每个用户都有一个家目录。普通用户的家目录通常位于 /home/用户名,而超级用户(root)的家目录通常是 /root
cd 命令 描述
cd .. 返回上级目录
cd /home/litao/linux/ 绝对路径
cd ../day02/ 相对路径
cd ~ 进入当前用户家目录,~ 是当前用户家目录的快捷表示
cd - 返回最近访问目录(切换回上一次所在的目录)

5. 文件和目录操作命令

  • touch 文件:创建一个空文件。如果文件已经存在,touch 会更新文件的访问时间和修改时间。

    1
    touch newfile.txt
    touch 命令 描述
    -a –time = atime 或 –time = access,只更新访问时间。
    -c –no-create,不创建任何文件。
    -d 使用指定的日期时间,而非当前时间。
    -f 该参数将忽略不予处理,仅负责解决 BSD 版本的 touch 命令的兼容性问题。
    -m –time = mtime 或 –time = modify,只更新修改时间。
    -r 把指定文件或目录的日期时间,统一成文件或目录的日期时间。
    -t 使用指定的日期时间,而非当前时间。
  • mkdir 目录名:创建一个新目录。

    1
    mkdir newdir
  • mkdir –p test/test1 : 递归建立多个目录。

    1
    mkdir –p test/test1

rmdir 目录名:删除一个空目录。

1
rmdir emptydir
  • rm 文件:删除指定文件。

    1
    rm file.txt
  • rm -f 文件:强制删除文件,不会提示确认。

    1
    rm -f file.txt
  • rm -r 目录:递归删除目录及其中的所有文件和子目录。注意:使用 rm 删除文件时不能直接删除目录。

    1
    rm -r directory
  • rm -rf 目录:强制递归删除目录及其内容,不会询问是否确认删除。

    1
    rm -rf directory

6. 安装与显示目录结构

  • yum install -y tree:安装 tree 命令(需要 root 权限)。tree 命令用于以树状图形式显示目录结构。

    1
    yum install -y tree
  • tree:显示目录结构的树状图。

    1
    tree

总结

Linux 提供了一系列强大的命令帮助用户管理文件和目录。理解这些命令的功能及使用场景,将极大提高操作效率。本文介绍了一些基本的命令,它们包括文件和目录的查看、管理、删除命令以及路径的操作方式。掌握这些命令是使用 Linux 系统的基础,并为更高级的操作奠定了基础。