终端、shell、文件理论和基础命令-10.10

一、终端、shell、文件理论

1.终端(terminal)

①.物理终端(console)

  • 物理终端(console)指的是直接连接到计算机或服务器的物理输入/输出设备,用于与系统进行交互。它通常包括显示器、键盘和其他硬件,通过这些设备,用户可以直接控制和管理计算机系统,特别是在系统启动、故障排除或低级别操作时。物理终端通常与虚拟终端(通过网络或远程连接访问系统的方式)相对。

②.模拟终端(pts)

  • 模拟终端(PTS,Pseudo Terminal Slave)是指在操作系统中通过软件模拟出来的终端设备,用于为用户提供虚拟终端会话。与物理终端不同,模拟终端通常由操作系统内部创建,用户通过远程连接(如SSH)或在图形用户界面中打开终端仿真器(如GNOME Terminal、xterm等)来使用它。

③虚拟终端(tty)

  • 虚拟终端(TTY)是Linux和类Unix操作系统中模拟物理终端的一种方式,允许用户通过键盘和显示器与系统进行交互。每个TTY提供一个独立的字符界面会话,用户可以在没有图形界面的情况下通过命令行登录系统、运行命令或进行系统管理。多个TTY可以并存,用户能够使用快捷键在不同的虚拟终端间切换。

2.shell

①.什么是shell

  • 在计算机中,Shell 是用户与操作系统内核进行交互的命令解释器。它为用户提供了一种输入命令的界面,将用户输入的命令传递给操作系统内核执行,并将执行结果返回给用户。

②.为什么需要shell

  • 我们需要Shell,因为它充当了用户与操作系统之间的桥梁,允许用户通过命令行直接与系统内核交互。Shell能够解释用户的命令并执行系统功能,同时支持脚本编写和任务自动化,使得用户可以高效地管理系统、执行程序以及进行系统配置。

③.shell和terminal的区别

  • Shell 是命令解释器,负责接受用户输入的命令并将其传递给操作系统执行;而 Terminal 是用户与 Shell 交互的界面或工具,它为用户提供一个输入命令和查看输出的窗口。简而言之,Terminal 是运行 Shell 的环境,而 Shell 是在 Terminal 中执行命令的程序。

④.图形shell和字符界面shell

图形shell(GUI)

  • gnome

字符界面shell(CLI)

  • sh
  • csh
  • tsch
  • ksh
  • bash(主流)
  • zsh

查看当前shell

  • echo $shell

shell组成

  • [当前用户名@主机名 当前工作目录]#|$

主机名设置

  • hostname NAME (临时设置)
  • hostnamectl set-hostname NAME (永久设置)

3.Linux系统文件和目录

定义

  • 文件:指磁盘空间上的一段数据流,通过文件名进行定位。所有文件的路径起点都是根目录(/)。
  • 目录:类似于Windows中的文件夹,提供对文件的路径映射和组织结构。在Linux中,文件名在同一目录内必须唯一,并且严格区分大小写。

命令

  • basename:用于获取路径中最右侧的文件或目录名,即基名。
  • dirname:用于获取路径中的目录部分,忽略最右侧的文件或目录名。

二、Linux命令基础

1.关于命令

程序:

由指令和数据组成。广义的程序包括指令(通常为ELF格式的可执行文件)、库文件、配置文件和帮助文档。

  • 指令和库文件:通常为二进制文件,直接由计算机执行。
  • 配置文件和帮助文档:通常为文本文件,用于定义程序的设置和帮助用户了解程序使用方法。

命令调用库文件:

大多数命令都依赖库文件来执行。如果没有相关的库文件,命令可能无法正常运行。

  • 查看命令调用的库文件:使用 ldd 命令。

查看命令路径:

  • which:查找命令的可执行文件路径。
  • whereis:不仅可以查询命令的位置,还能获取命令的帮助文档位置。

内部命令和外部命令:

  • 内部命令:当前Shell内嵌的命令,不需要外部程序支持。
  • 外部命令:需要通过额外安装的可执行程序来提供功能。
  • 如何区分:使用 enable 或 type(旧版)命令来判断。如果是内部命令,不会输出结果;如果是外部命令,则会输出信息。

查看命令执行结果:

通过 echo $? 查看上一个命令的执行状态码,返回“0”表示命令执行成功。

2.三大基本命令(cd、ls、pwd)

cd(Change Directory):

  • 用于改变当前工作目录。用户可以通过该命令进入指定的目录。
  • 例如,cd /home/user 将当前工作目录更改为 /home/user。

ls(List):

  • 用于列出当前目录中的文件和子目录。可以添加不同的选项来调整显示格式,例如显示详细信息或包括隐藏文件。
  • 例如,ls -l 会以长格式列出文件,显示详细信息(权限、所有者、大小等)。

pwd(Print Working Directory):

  • 用于显示当前工作目录的完整路径。这个命令帮助用户确认自己所在的目录。
  • 例如,执行 pwd 会输出类似于 /home/user 的结果,指示当前目录的完整路径。

3.Linux命令通用格式

命令格式:命令 [选项] [参数]

  • 中括号表示这些部分可有可无。

选项:用于实现命令的不同功能。

  • 短格式选项:以单破折号 - 开头,可以组合使用,比如 -l -a 可以写成 -lh。
  • 长格式选项:以双破折号 -- 开头,通常不能连用,比如 --help、--all、--human-readable。
  • 参数:指定命令的作用对象。

4.Linux文件系统及目录结构

背景

  • Linux系统是免费开源的,发行版本和开发团队众多。
  • 如果每个团队都按自己的方式配置文件目录,会导致管理问题。

FHS标准

  • 为了解决上述问题,Linux基金会发布了FHS(Filesystem Hierarchy Standard,文件系统层次化标准)。
  • 该标准规定了Linux系统中所有一级目录及部分二级目录的用途。

目的

  • 使用户更容易理解每个目录应该存放什么类型的文件。

5.Linux路径

路径类型

  • 绝对路径:以根目录 / 作为起点。
  • 相对路径:以当前所在目录作为起点。

符号表示

  • . 表示当前目录。
  • .. 表示上一级目录。
posted @ 2024-12-04 13:52  阳光彩虹小能猫  阅读(27)  评论(0)    收藏  举报