本节内容

  1、linux目录结构

  2、主目录功能简介

  3、重要子目录

linux目录结构

在linux里面,逻辑上所有目录只有一个顶点,根是所有目录的起点。

根下面是类似一个倒挂的树一样的层次结构

可以通过tree命令查看

[root@centos7 ~]# tree / -L 1
/
├── bin -> usr/bin
├── boot
├── dandy
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var directories, files

关于分区

linux分区不可以直接写入数据,需要有分区入口(挂载点)(/var/)才能往里面写数据,不同目录可以对应不同的分区。甚至/var下面的目录还可以挂载其他分区。

挂载

mount /dev/sdb1 /usr 挂载     

系统的挂载文件

[root@centos7 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed Aug ::
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(), findfs(), mount() and/or blkid() for more info
#
/dev/mapper/centos-root / xfs defaults
UUID=174e96cf-3f83--89e7-ca8a0d202e40 /boot xfs defaults
/dev/mapper/centos-swap swap swap defaults

linux的目录是有规律的,按照类别组织的,比如

应用程序             /usr/bin
数据文件跟帮助    /usr/share
配置文件 /etc
启动命令 /etc/init.d

小结

    、linux的所有目录结构是一个层次的倒挂着的树形目录结构
、根/是所有目录的顶点
、目录结构和分区设备是没有关系的,也就是不同的目录可以跨越不同的磁盘设备或分区
、所有的目录都是按照一定的类别有规律的组织和命名的

主目录功能简介

/bin

常用二进制命令所在目录cp mkdir cat 

/boot 

linux内核及引导系统程序所需的文件目录

/dev

设备文件目录
比如声卡,磁盘,光驱 /dev/null(黑洞)
/dev/null的用法 cat /dev/null > /dandy/dandy.txt 读取黑洞,清空文件 也可以省略前面的直接>/dandy/dandy.txt

/etc

、二进制安装包(yum,rpm)的配置文件默认路径  
、服务启动命令存放的目录/etc/init.d/
/etc/init.d/(sshd/network/iptables...) restart  这里单独说一下/etc/motd文件,作用是用来在登陆的时候的显示信息
[root@centos7 ~]# cat /etc/motd  #这个文件可能不存在,需要自己创建
centos7 for dandy test

修改显示信息

echo 'centos7 for dandy test'>/etc/motd 

/home

普通用户家目录

/lib

库文件存放目录;linux正常工作需要很多库文件,在内核和应用程序之间做一个承上启下的作用

/lost+found

在ext3文件系统中,当系统意外崩溃或机器意外关机,会产生文件碎片在这里。系统开机启动的过程fsck工具会检查这里,修复损坏文件系统。
系统发生问题,可能会有问题被一道这个目录,可能需要手工方式修复,或移动到文件原来位置。

/mnt

一般是用于临时挂载存储设备的挂载目录,比如有cdrom,u盘。挂载点 --> 文件系统的(设备)入口
fdisk -l 查看磁盘
df -h 查看磁盘及使用情况
mkfs.ext4 /dev/sdb 格式化新盘
mount /dev/sdb /mnt 挂载
umount /mnt 取消挂载
mount -t ext4 /dev/sdb /mnt 带类型的挂载

给个示例,这个示例需要先关闭虚拟机并给当前虚拟机添加一块新的磁盘。

[root@centos7 ~]# fdisk -l

磁盘 /dev/sda:21.5 GB,  字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节
磁盘标签类型:dos
磁盘标识符:0x000b142c 设备 Boot Start End Blocks Id System
/dev/sda1 * Linux
/dev/sda2 8e Linux LVM 磁盘 /dev/sdb: MB, 字节, 个扇区 # 这里已经添加进新的磁盘
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节 磁盘 /dev/mapper/centos-root:18.2 GB, 字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节 磁盘 /dev/mapper/centos-swap: MB, 字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节
[root@centos7 ~]# mkfs.ext4 /dev/sdb # 格式化磁盘
mke2fs 1.42. (-Dec-)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小= (log=)
分块大小= (log=)
Stride= blocks, Stripe width= blocks
inodes, blocks
blocks (5.00%) reserved for the super user
第一个数据块=
Maximum filesystem blocks=
block groups
blocks per group, fragments per group
inodes per group
Superblock backups stored on blocks:
, , , , Allocating group tables: 完成
正在写入inode表: 完成
Creating journal ( blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@centos7 ~]# mount /dev/sdb /mnt # 挂载磁盘
[root@centos7 ~]# df -h # 查看磁盘信息
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .3G 16G % /
devtmpfs 476M 476M % /dev
tmpfs 488M 488M % /dev/shm
tmpfs 488M 7.7M 480M % /run
tmpfs 488M 488M % /sys/fs/cgroup
/dev/sda1 1014M 159M 856M % /boot
tmpfs 98M 98M % /run/user/
/dev/sdb 95M 1.6M 87M % /mnt
[root@centos7 ~]# touch /mnt/test.txt
[root@centos7 ~]# ls /mnt/
lost+found test.txt

/opt

表示可选的意思,自定义软件包会被安装在这个目录

/proc

内核和进程信息的虚拟文件系统;
/proc目录伪装的文件系统,并不是真正的文件系统
cat /proc/meminfo 查看内存信息
cat /proc/cpuinfo 查看cpu信息
cat /proc/loadavg 查看负载信息

/sbin

大多是设计系统管理的命令的存放,是超级权限用户root的可执行命令存放处跟/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录相似    

/tmp

临时文件存放

/usr

系统存放程序的目录,比如命令,帮助文件,安装Linux发行版官方提供的软件包,大多安装在这里
是文件系统的第二个主要部分;
存放可执行文件的目录;自己写的命令可以放在 /usr/local/sbin下面
[root@centos7 ~]# echo 'echo "test usr local sbin"'>/usr/local/sbin/test111  # 写入命令文件
[root@centos7 ~]# chmod +x /usr/local/sbin/test111 # 命令文件开通权限
[root@centos7 ~]# test111 # 测试命令
test usr local sbin

/var

目录内容经常变动;/var/log存放系统日志的目录;
系统日志路径 /var/log/messages
系统安全信息的日志 /var/log/secure
 [root@centos7 ~]# tail /var/log/messages
Sep :: centos7 kernel: EXT4-fs (sdb): mounted filesystem with ordered data mode. Opts: (null)
Sep :: centos7 kernel: sdb: WRITE SAME failed. Manually zeroing.
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root.
Sep :: centos7 systemd: Starting Cleanup of Temporary Directories...
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root.
Sep :: centos7 systemd: Started Cleanup of Temporary Directories.
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root. [root@centos7 ~]# tail /var/log/secure
Sep :: centos7 polkitd[]: Loading rules from directory /etc/polkit-/rules.d
Sep :: centos7 polkitd[]: Loading rules from directory /usr/share/polkit-/rules.d
Sep :: centos7 polkitd[]: Finished loading, compiling and executing rules
Sep :: centos7 polkitd[]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Sep :: centos7 sshd[]: Server listening on 0.0.0.0 port .
Sep :: centos7 sshd[]: Server listening on :: port .
Sep :: centos7 login: pam_unix(login:session): session opened for user root by LOGIN(uid=)
Sep :: centos7 login: ROOT LOGIN ON tty1
Sep :: centos7 sshd[]: Accepted password for root from 10.0.2.14 port ssh2
Sep :: centos7 sshd[]: pam_unix(sshd:session): session opened for user root by (uid=)

关于开机,关机的一些小命令

halt 关机
init 关机
reboot 重启
init 重启
shutdown -r now(重启) -h now(关机)

重要的子目录

1、/etc目录下

/etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件
重启所有网卡/etc/init.d/network restart
关闭网卡ifdown ens33 && 打开网卡ifup ens33
/etc/resolv.conf linux本地客户端的DNS配置文件
/etc/sysconfig/network 修改机器名及网卡启动,网关等配置
/etc/hosts 设定用户ip与名字的对应解析表,相当于本地的DNS或局域网的DNS
/etc/fstab 记录开机自动挂载的文件
/etc/rc.local 存放开机自启动程序命令的文件 (chkconfig只能管理yum跟rpm包)
/etc/inittab 设定系统启动时,init进程将系统设置成什么样的runlevel及加载相关的启动文件设置
/etc/exports 设定NFS网络文件系统用的配置文件
/etc/profile 系统全局环境变量配置路径 可以放置alias跟PATH
/etc/profile.d 加在系统登录程序的一个目录,命令或文件,独立存在
/etc/issue 记录用户登录前显示的信息,本地终端登录时显示
/etc/motd 每次用户登录时,/etc/motd文件的内容会显示在用户的终端,比如系统更新版本,何时更新等
/etc/redhat-release 查看系统版本
uname -r 内核版本
/etc/group 设定用户的组名与相关信息 chattr+i锁文件
/etc/passwd 账号信息文件
/etc/shadow 密码信息文件
useradd msn 会修改/etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/sudoers 可以执行使用sudo命令的配置文件
/etc/securetty 设定哪些终端可以让root登陆
/etc/login.defs 所有用户登陆时的缺省配置
/etc/rsyslog.conf 版本日志设置文件;centos5的syslog.conf

2、/usr目录下

/usr/local 一般用来存放用户自编译安装软件的存放目录,一般是通过源码包安装的软件,相当于c:\Program files
/usr/src 内核源码存放目录

3、/var目录下

/var 日志文件
/var/log 各种系统日志存放地
/var/log/messages 系统信息默认日志文件,按周轮询
/var/log/secure 记录登入系统存取信息的文件
/var/log/wtmp 记录登陆者信息的文件,是二进制文件,需要借助last -f /var/log/wtmp来查看
查看系统登陆信息 last
查看所有系统用户的最后一次登陆 lastlog
/var/spool
/var/spool/cron/
root 定时任务crontab默认路径,按用户名命名的文件
/var/spool/clientmqueue sendmail临时邮件文件目录。偶尔会因为这个目录文件太多,/var分区的inode数量被消耗尽,无法写入文件的情况。
centos6默认不安装sendmail,所以不会有这个问题
df -i 查看剩余inode
df -h 查看磁盘空间
 [root@centos7 ~]# ls /var/log/messages*
/var/log/messages /var/log/messages- /var/log/messages- /var/log/messages-
[root@centos7 ~]# tail /var/log/messages-
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root.
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root.
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root.
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root.
Sep :: centos7 systemd: Started Session of user root.
Sep :: centos7 systemd: Starting Session of user root.
[root@centos7 ~]# tail /var/log/secure
Sep :: centos7 polkitd[]: Loading rules from directory /etc/polkit-/rules.d
Sep :: centos7 polkitd[]: Loading rules from directory /usr/share/polkit-/rules.d
Sep :: centos7 polkitd[]: Finished loading, compiling and executing rules
Sep :: centos7 polkitd[]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Sep :: centos7 sshd[]: Server listening on 0.0.0.0 port .
Sep :: centos7 sshd[]: Server listening on :: port .
Sep :: centos7 login: pam_unix(login:session): session opened for user root by LOGIN(uid=)
Sep :: centos7 login: ROOT LOGIN ON tty1
Sep :: centos7 sshd[]: Accepted password for root from 10.0.2.14 port ssh2
Sep :: centos7 sshd[]: pam_unix(sshd:session): session opened for user root by (uid=) [root@centos7 ~]# last -f /var/log/wtmp
root pts/ shuais-mbp Tue Sep : still logged in
root tty1 Tue Sep : still logged in
reboot system boot 3.10.-862.11.. Tue Sep : - : (:)
root tty1 Tue Sep : - : (:)
reboot system boot 3.10.-862.11.. Tue Sep : - : (:)
root pts/ 10.0.2.14 Tue Sep : - : (:)
root pts/ shuais-mbp Tue Sep : - : (:)
root pts/ 192.168.1.5 Mon Sep : - : (:)
root pts/ 192.168.1.5 Mon Sep : - : (:)
root pts/ 192.168.1.5 Mon Sep : - : (:)
root pts/ 192.168.1.5 Mon Sep : - : (:)
root tty1 Sun Sep : - : (+:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
reboot system boot 3.10.-862.11.. Sun Sep : - : (+:)
root pts/ 192.168.1.5 Sun Sep : - down (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root tty1 Sun Sep : - : (:)
reboot system boot 3.10.-862.11.. Sun Sep : - : (:)
root pts/ 192.168.1.5 Sun Sep : - down (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root pts/ 192.168.1.5 Sun Sep : - : (:)
root pts/ 192.168.1.5 Sat Sep : - : (:)
root tty1 Sat Sep : - : (:)
reboot system boot 3.10.-862.11.. Sat Sep : - : (:)
root tty1 Sat Sep : - : (:)
reboot system boot 3.10.-862.11.. Sat Sep : - : (:)
root tty1 Sat Sep : - : (:)
reboot system boot 3.10.-862.11.. Sat Sep : - : (:)
root pts/ shuais-mbp Tue Sep : - : (:)
root tty1 Tue Sep : - : (+:)
reboot system boot 3.10.-862.11.. Tue Sep : - : (+:)
dandy pts/ 172.16.54.1 Tue Sep : - : (:)
root pts/ 172.16.54.1 Mon Sep : - : (:)
root pts/ 172.16.54.1 Sat Sep : - : (+:)
root pts/ 172.16.54.1 Wed Aug : - : (+:)
root tty1 Tue Aug : - : (+:)
reboot system boot 3.10.-862.11.. Tue Aug : - : (+:)
root tty1 Tue Aug : - : (:)
reboot system boot 3.10.-862.11.. Tue Aug : - : (+:)
root tty1 Tue Aug : - : (:)
reboot system boot 3.10.-862.11.. Tue Aug : - : (+:)
dandy pts/ 172.16.54.1 Tue Aug : - : (:)
dandy pts/ 172.16.54.1 Tue Aug : - : (:)
dandy pts/ 172.16.54.1 Tue Aug : - : (:)
dandy pts/ 172.16.54.1 Tue Aug : - : (:)
dandy pts/ 172.16.54.1 Tue Aug : - : (:)
dandy pts/ 172.16.54.1 Sun Aug : - : (+:)
dandy pts/ 172.16.54.1 Sun Aug : - : (:)
dandy pts/ 172.16.54.1 Sun Aug : - : (:)
dandy pts/ 172.16.54.1 Sat Aug : - : (:)
dandy pts/ 172.16.54.1 Thu Aug : - : (+:)
dandy pts/ 172.16.54.1 Wed Aug : - : (:)
dandy pts/ 172.16.54.1 Wed Aug : - : (:)
root tty1 Wed Aug : - : (+:)
reboot system boot 3.10.-.el7.x Wed Aug : - : (+:) wtmp begins Wed Aug ::

这里提到了clientqueue跟inode,关于小文件过多,inode数量被消耗,无法写入文件的问题,请查看文章

4、/proc目录下

/proc 虚拟目录,是内存的映射,内核和进程的虚拟文件系统目录
/proc/version 内核版本
/proc/sys/kernel
/proc/sys/net/ipv4
cat /proc/sys/net/ipv4/tcp_tw_reuse ==>
cat /proc/sys/net/ipv4/tcp_max_tw_buckets ==>
、可以通过/etc/sysctl.conf进行修改,并用sysctl -p让它生效,效果是一样的
、也可以echo >/proc/sys/net/ipv4/tcp_tw_reuse追加到/etc/rc.local结尾,这样每次开机都会生效
、修改文件本身也可以echo >/proc/sys/net/ipv4/tcp_tw_reuse
/proc/cpuinfo 处理器信息
/proc/meminfo 系统内存信息
/proc/devices 当前运行内核所配置的所有设备清单
/proc/dma 当前正在使用的DMA通道
/proc/filesystems 当前运行内核所配置的文件系统
/proc/interrupts 正在使用的中断,和曾经有多少个中断
/proc/ioports 当前正在使用的I/O端口
/prov/loadavg 系统负载平均值信息,uptime的结果,值不要超过CPU的盒数

Centos 05 系统目录讲解的更多相关文章

  1. linux centos 05

    centos7安装mariadb 1.yum  得配置yum源,配置阿里云的 两个 yum源  ,阿里云的yum源中,会有 mariadb的软件包 阿里云的yum仓库中,mariadb版本如下 mar ...

  2. CentOS 常用命令大全

    下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...

  3. 深入剖析PHP输入流 php://input(与POST/GET的区别)

    PHP输入流php://input 转:http://www.nowamagic.net/academy/detail/12220520 在使用xml-rpc的时候,server端获取client数据 ...

  4. android开发关于和使用本机内存、内置存储卡和外置存储卡 (转)

    转自:http://www.2cto.com/kf/201304/204729.html 关于android存储器简介:                  android开发常常需要涉及数据缓存,这就 ...

  5. linux入门--Linux发行版本详解

    从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核.内核指的是一个提供设备驱动.文件系统.进程管理.网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心.一些组织或厂 ...

  6. Docker镜像浅谈

    先抛出几个我在学习过程中产生的几个问题. 1. 容器镜像是什么, 和装系统时的镜像有什么关系? 2. 容器镜像的作用是什么? 3. 不同版本的ubuntu镜像有什么区别, 比如说 ubuntu:18. ...

  7. .netcore在linux下使用P/invoke方式调用linux动态库

    http://www.mamicode.com/info-detail-2358309.html   .netcore下已经实现了通过p/invoke方式调用linux的动态链接库(*.so)文件 1 ...

  8. Docker | 第二章:第一个Docker应用

    前言 上一章节,已经简单讲解了Docker相关方面的知识,相信大家已经有个概念了.这章节开始,开始进行实践操作.和学习任何一门语言一样,我们今天也开始从Hello,World开始~ 对Docker不了 ...

  9. Linux 中常用的基础命令二

    1.Linux文件分层结构  FHS:Linux有一个组织叫LSB定义的Linux发行版基础目录名称命名法则及功用规定,这种标准叫FHS文件系统层级标准./bin   存放可执行的二进制程序,管理员和 ...

随机推荐

  1. 关于idea在运行web项目时部署的位置

    (转) 以前一直很好奇,在idea中运行tomcat,把项目部署到其中,运行起来,然后我去tomcat目录下去看,根本找不到我部署的项目 那我的项目是咋运行的啊… - - 后来我就查啊查 ,纠结啊纠结 ...

  2. Clion 配置

    plugins: one dark theme font : fira code retina

  3. 【vue】vue +element 搭建项目,mock模拟数据(纯干货)

    1.安装mockjs依赖 (c)npm install mockjs --save-dev 2.安装axios(Ajax) (c)npm install --save axios 3.项目目录 4.设 ...

  4. Linux内存管理 (9)mmap(补充)

    之前写过一篇简单的介绍mmap()/munmap()的文章<Linux内存管理 (9)mmap>,比较单薄,这里详细的梳理一下. 从常用的使用者角度介绍两个函数的使用:然后重点是分析内核的 ...

  5. 在项目中迁移MS SQLServer到Mysql数据库,实现MySQL数据库的快速整合

    在开发项目的时候,往往碰到的不同的需求情况,兼容不同类型的数据库是我们项目以不变应万变的举措之一,在底层能够兼容多种数据库会使得我们开发不同类型的项目得心应手,如果配合快速的框架支持,那更是锦上添花的 ...

  6. 解读 IoC 框架 InversifyJS

    原文链接 InversityJS 是一个 IoC 框架.IoC(Inversion of Control) 包括依赖注入(Dependency Injection) 和依赖查询(Dependency ...

  7. mongoDB操作详细

    简介 它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等 关系型数据库中有一个 "表" 的概念,有 ...

  8. 排序算法(sorting)

    学习到的排序算法的总结,包括对COMP20003中排序部分进行总结,部分图片来自COMP20003 有部分内容来自http://www.cnblogs.com/eniac12/p/5329396.ht ...

  9. Android艺术——探究Handler运行机制

    我们从开发的角度来说,Handler是Android 的消息机制的上层接口.说到Handler,大家都会说:哦,Handler这个我知道干什么的,更新UI.没错,Handler的确是用于更新UI的,具 ...

  10. Python——模块——时间模块

    1.time模块 (1)时间戳 >>> time.time() 1472016249.393169 (2)将时间戳转换成当前时间元祖 time.localtime()time.gmt ...