认识 Linux 系统
Linux 内核
Linux 内核(Linux Kernel)是整个 Linux 系统的运行核心,是整个系统最底层的运行程序,但它仅作为核心存在,并非一整个操作系统,各大发行版将其打包成一整个可用的操作系统,这些发行版虽各有特色,但均以 Linux 内核为基础,操作逻辑也极度相似。
系统文件目录结构
一个 Linux 系统的文件系统由一个根目录 / 以及此目录下的所有文件与目录构成,根目录下的文件与目录有着如下结构:
/:根文件系统,所有挂载点与路径的起点。包含系统必须的子目录与入口结构。bin:系统启动和单用户模式下必须的基础命令,所有用户可执行。boot:启动所需文件:内核、initramfs、引导配置。dev:设备节点集合,一切皆文件。etc:系统级配置中心,统一存放所有服务和系统配置。home:普通用户的个人主目录集合。lib:与lib64共同构成系统启动核心库、动态链接器所在位置。lib64:与lib共同构成系统启动核心库、动态链接器所在位置。mnt:供磁盘设备挂载的文件夹。opt:用于存放可选附加应用程序的目录,每个软件在其中拥有独立子目录以避免与系统文件冲突。proc:由内核提供的虚拟文件系统,展示系统与进程的实时信息。root:root用户的家目录run:运行时数据存放点,重启后清空。sbin:系统管理与维护命令,面向 root。srv:目录用于存储服务器提供的服务数据,是管理和部署服务环境的标准化目录。sys:Linux 系统中的 sysfs 文件系统,用于管理和展示内核设备、驱动程序及系统信息tmp:临时文件目录,任何用户可写,重启后内容通常会被清空(取决于 tmpfs 配置)。usr:用户级程序与库的主集合,包含大部分系统软件、文档与工具。var:频繁变化的数据:日志、缓存、数据库运行文件等。
路径
路径表示文件或目录所在的位置,表示方式有两种,一种为绝对路径,一种为相对路径。
绝对路径为从根目录出发,指向文件所在位置,例如 /home/fovlin/file。
相对路径表示从当前目录出发,指向文件所在位置,./表示当前工作目录,../ 表示上级目录,~/表示用户家目录,运行当前目录下的可执行文件。
其中 ./ 在不作为命令时可忽略,file 也表示当前目录下名为 file 的文件,但在命令行首项并不能省略,否则会和 $PATH 变量的调用冲突,若在首项忽略 ./ 会被当作命令处理。
环境变量
环境变量(Environment Variables)是操作系统中存储的一组动态命名的值,由变量名和变量值组成,相当于系统的“信息库”。程序运行时可以读取这些变量,从而获取配置信息或调整运行行为。
变量在 Linux 中使用 $ + 变量名 进行表示。
上文中 $PATH 变量就是一个很好的例子。
要查看当前生效的所有环境变量,使用 env 命令:
env同时可以使用 export 命令自定义环境变量,这种效果是临时的,在会话结束即失效。
设置一个环境变量,使用如下格式:
export <变量名>=<值>如将 /opt/java/bin 目录临时添加到 $PATH 变量中,即设置 $PATH 的值为 $PATH:/opt/java/bin 使用如下命令:
export PATH=$PATH:/opt/java/bin此命令的的意思为,在 $PATH 变量原有的结构上,再添加 :/opt/java/bin 字段,并将 $PATH 变量重新设置为后续值,若你不熟悉此变量的结构,可以参考上文的 $PATH 变量说明
要想使环境变量永久生效,应该将上述 export 命令写入 Shell 的环境变量文件。
此处的 Shell 以 bash 为例。
Shell 在启动时会读取一遍环境变量文件,其本质是将环境变量文件当作 Shell 脚本在 Shell 启动时运行一次,这类文件有 /etc/profile ~/.bashrc ~/.bash_profile,其中后两者位于用户家目录下的环境变量文件仅对当前用户生效。
编辑文件,在新行写入你要应用的环境变量即可,上文举例更改 $PATH 变量,要使其永久生效,写入以下行:
export $PATH=$PATH:/opt/java/bin编辑文件的方式将会在后续提及。