终端、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路径
路径类型
- 绝对路径:以根目录 / 作为起点。
- 相对路径:以当前所在目录作为起点。
符号表示
- . 表示当前目录。
- .. 表示上一级目录。