一、前言

Linux文件系统是一个层次结构,由各种目录和文件组成,每个目录都有其独特的作用。本文将深入研究Linux中的核心目录,解释它们的作用和重要性。这些核心目录对于操作系统和应用程序的正常运行至关重要。

二、初步了解Linux核心目录

2.1 根目录(/)

定义

  • /是整个Linux文件系统的根,从这里开始所有路径。
  • 所有其他目录和文件都位于根目录下或其子目录中。

用途

  • 根目录包含系统的所有文件和目录,以及核心配置文件。
  • 它是整个文件系统的基础,用于定位和引用其他目录和文件。

2.2 /bin 目录

定义

  • /bin是二进制文件(可执行文件)的存储位置。
  • 包含了系统启动和修复所需的基本命令,如lscpmvrm等。

用途

  • /bin中的命令通常用于系统维护和修复,可用于引导操作系统。

2.3 /boot 目录

定义

  • /boot包含引导加载程序和内核镜像文件。
  • 这里存放了用于启动计算机的引导加载程序配置文件,如GRUB,以及Linux内核的镜像文件。

用途

  • /boot是系统启动过程的关键部分,用于引导操作系统。

2.4 /dev 目录

定义

  • /dev包含设备文件,用于访问和控制系统硬件设备。
  • 例如,硬盘、USB设备、串口端口、键盘和鼠标等设备都可以在这里找到。

用途

  • /dev允许应用程序与硬件设备进行交互,是硬件抽象层的一部分。

2.5 /etc 目录

定义

  • /etc包含系统范围的配置文件和目录。
  • 包括系统配置文件、网络设置、用户帐户配置、服务启动脚本等。

用途

  • /etc中的配置文件影响整个系统的行为,它是系统配置的主要存储位置。

2.6 /home 目录

定义

  • /home包含用户的主目录。
  • 每个用户有一个自己的目录,通常以用户名命名。

用途

  • /home用于存储用户的个人文件和配置,提供了私人工作空间。

2.7 /lib 和 /lib64 目录

定义

  • /lib/lib64包含共享库文件,用于在运行时支持可执行程序。
  • /lib通常包含32位架构的库文件,而/lib64包含64位架构的库文件。

用途

  • 这些库文件是程序在运行时所需的共享资源,帮助程序执行各种任务。

2.8 /media 和 /mnt 目录

定义

  • /media/mnt用于挂载可移动媒体设备和临时挂载点。
  • 当你插入CD、DVD、USB驱动器等外部设备时,通常会在/media中创建一个临时挂载点。

用途

  • 这些目录允许用户访问和管理可移动媒体设备,如挂载USB驱动器或CD/DVD。

2.9 /opt 目录

定义

  • /opt是可选的应用程序目录,通常包含第三方软件的安装。
  • 一些应用程序(如大型商业软件)可能会将其安装到此目录。

用途

  • /opt用于存储第三方应用程序,以保持系统文件结构的整洁。

2.10 /proc 目录

定义

  • /proc提供了内核和进程信息的虚拟文件系统。
  • 你可以在这里找到关于系统状态、硬件信息和运行进程的信息。

用途

  • /proc用于访问系统信息,如CPU信息、内存使用情况和正在运行的进程列表。

2.11 /root 目录

  • 定义
  • /root是超级用户(root)的主目录。
  • 超级用户是系统的管理员,拥有对系统的完全控制。
  • 用途
  • /root是超级用户的家目录,用于管理和维护整个系统。

2.12 /sbin 目录

定义

  • /sbin包含系统二进制命令,用于系统管理和修复。
  • 这里存放了一些用于系统启动、恢复和维护的命令,通常需要root权限才能执行。

用途

  • /sbin中的命令通常用于系统管理和修复,包括启动过程中的关键任务。

2.13 /srv 目录

定义

  • /srv通常用于存放服务数据目录。
  • 一些网络服务,如Web服务器,可能会在这里存储其数据文件。

用途

  • /srv用于存储服务器数据,提供服务和应用程序所需的数据目录。

2.14 /tmp 目录

定义

  • /tmp是用于临时文件的目录。
  • 这里的文件通常在系统重启时会被清除,因此不应该存放重要数据。

用途

  • /tmp用于存储临时文件,如应用程序生成的临时数据。

2.15 /usr 目录

定义

  • /usr包含用户可执行文件和资源,如应用程序和共享数据。
  • 这里包含了大多数用户安装的软件和系统资源。

用途

  • /usr用于存储用户安装的软件,使系统和用户程序分离。

2.16 /var 目录

定义

  • /var包含可变数据,如日志文件、缓存和其他动态生成的数据。
  • 例如,系统日志文件通常存储在/var/log中。

用途

  • /var用于存储经常变化的数据,例如日志文件和数据库文件。

三、深入了解Linux核心目录

3.1 /etc/目录

/etc/文件 说明
/etc/hostname 主机名配置文 件
/etc/hosts 主机名和ip的对应关系
/etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件
/etc/rc.local 开机自启动的文件
/etc/fstab 开机自动挂载的配置文件
/etc/motd 文件中的内容会在用户登录系统后显示出来
/etc/issue
/etc/issue.net
文件中的内容会在用户登录系统前显示出来(这个文件内容应该清空)

3.1.1 修改主机名

临时修改主机(重启失效)

$ hostname 新主机名

永久修改主机(重启不失效)

$ hostnamectl set-hostname 新主机名

永久修改主机(重启方可生效)

$ vi /etc/hostname
新的主机名

3.1.2 添加主机和IP映射

$ vim /etc/hosts

ip 域名

3.1.3 网卡配置文件

编辑网卡配置文件

$ vim  /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="a01cb69d-7be0-447f-b29e-1c48315a5df6"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.1.41"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="223.5.5.5"
DNS2="223.6.6.6"
IPV6_PRIVACY="no"

重启服务

$ systemctl restart network

3.1.4 /etc/rc.local(开机自启动配置文件)

在过去,/etc/rc.local 是一个用于在Linux系统启动过程中运行自定义脚本或命令的文件。但在许多现代Linux发行版中,/etc/rc.local 已经被弃用,不再默认启用。代替方法通常是使用/etc/rc.d/etc/init.d 目录中的启动脚本,或者使用 systemd 服务单元来管理系统启动过程。

3.1.5 /etc/motd issue

建议motd写入系统基本信息。固定不变的。

$ > /etc/motd issue

如果不是工作,也可以添加一下图案进行娱乐下

$ vim /etc/motd

具体图案如下

/**
 *                    .::::.
 *                  .::::::::.
 *                 :::::::::::  FUCK YOU
 *             ..:::::::::::'
 *           '::::::::::::'
 *             .::::::::::
 *        '::::::::::::::..
 *             ..::::::::::::.
 *           ``::::::::::::::::
 *            ::::``:::::::::'        .:::.
 *           ::::'   ':::::'       .::::::::.
 *         .::::'      ::::     .:::::::'::::.
 *        .:::'       :::::  .:::::::::' ':::::.
 *       .::'        :::::.:::::::::'      ':::::.
 *      .::'         ::::::::::::::'         ``::::.
 *  ...:::           ::::::::::::'              ``::.
 * ````':.          ':::::::::'                  ::::..
 *                    '.:::::'                    ':'````..
 */

还有这个比较经典的

 *********************************************
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           佛祖保佑       永无BUG

3.2 /var/目录

Linux系统日志

/var/经常变化的内容 说明
/var/log/ 系统及服务的各种日志目录
/var/log/secure 存放用户登录情况日志。
/var/log/messages 通用各种服务的日志, 日志很多

3.3 /proc/

/proc/目录 说明
/proc/cpuinfo cpu信息
/proc/meminfo 内存信息
/proc/loadavg 系统负载信息,衡量系 统繁忙程度
/proc/mounts 系统挂载信息

3.3.1 cpu信息

查看cpu信息主要为如下信息:

  • cpu颗数:有多少个物理的cpu
  • cpu核心数:1颗中有多少个核心,每个核心相当于是1个工人

查看cpu颗数

$ lscpu | grep "Socket(s):"

查看cpu核心数

$ lscpu | grep "CPU(s):"

3.3.2 内存信息

查看内存信息

$ free -h 

除此之外,还有其他方法查看内存的详细信息

$ cat /proc/meminfo