linux系统目录结构笔记总结

运维技术 jikk345 1922℃ 0评论

linux系统的目录结构

逻辑上所有的目录只有一个顶点(”/”根),所以目录的起点。
根下面类似一个倒挂的树一样的层次的结构。
Linux只有一颗树。Linux不同的目录可以对应不同的分区。
Linux开机会自动挂载我们做系统时候分好的区
使用/etc/fstab文件自动分区
/ linux目录的顶点
小结:
1)linux的所有目录结构是一个有层次的倒挂着的树形目录结构。
2)根“/”是所有目录的顶点。
3)目录结构和分区设备是没有关系的。不同的目录可以跨越不同的磁盘或分区。
4)所有的目录都是按照一定的类别有规律的组织和命名的。

[root@Saltstac-node1 /]# tree -L 1
.
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── selinux
├── srv
├── sys
├── tmp
├── usr
└── var

相对路径和绝对路径的概念

绝对路径:从根开始就是绝对路径。/data
相对路径:只要不从根开始的都是相对路径。cd data/ cd..

目录层次标准FHS

目录层次标准,是linux的目录规范标准。
FHS定义两层规范
第一层:“/”目录下的各个目录应该什么文件数据,例如/etc目录下存放系统的配置文件。例:/etc/exports /etc/hosts,而/bin和sbin放置程序及系统命令。
第二层:针对/usr和/var两个目录的子目录来定义。例如/var/log放置系统登录文件,/usr/share放置共享数据等。

目录

/bin 存放常用的二进制命令
/boot 存放linux的内核及引导系统程序所需的文件目录。
/dev 存放设备文件的目录,比如声卡、磁盘、光驱。 目录下有一个/dev/null的黑洞设备,把文件放进这里全部没了(cat /dev/null >qinglin.txt)可以请空。
/etc 二进制(rpm和yum)的配置文件默认路径。服务的启动目录也存放的目录/etc/init.d/(yum.rpm)手动安装的可能不在这。
/home 是普通用户的家目录
/root 是linux超级权限用户root的家目录。
/lib 是存放库文件
/lost+found 系统意外的关机和崩溃,会产生一些文件碎片,当开机的过程中会用fsck进行修复。
/mnt 临时的挂载点>文件系统的(设备)入口,可以将U盘挂载到这。
/opt 表示是可选择安装软件的位置,有些软件会装在这里,这里是习惯或者规定的
/proc 内核和虚拟文件系统,磁盘,内存,CPU信息等
/proc/loadavg 负载信息
/proc/cpuinfo CPU信息
/proc/meminfo 内存信息
/tmp 临时文件目录,任何用户都可以创建目录,权限比较特殊。
/usr 系统存放程序的位置,命令,帮助文件。
/var 系统日志缓存什么的,这里的内容是经常变动的
/var/log/messages 系统故障日志
/var/log/secure 系统安装信息日志
小节:重要目录回顾
/dev/ 设备目录
/etc/ 配置文件以及服务启动的目录
/proc 显示内核及进程信息虚拟文件系统
/tmp 临时文件目录
/home 变通用户家目录
/var 变化目录,一般是日志文件目录
/usr 用户程序,及数据,帮助文件等的目录
/bin、/sbin、/usr/sbin 用户命令的目录
1

重要目录

/etc/issue
#-记录用户登录前显示的信息
[root@shell~]#  cat -n /etc/issue
1. CentOS release 5.8(Final)
2. Kernel \r on an \m

/etc/motd
[root@shell~]# echo “Welcom to qinglin Compute Service\!”>/etc/motd
[root@shell~]#  cat /etc/motd
Welcom to qinglin Compute Service\!
登录提醒
The contens of /etc/motd are displayed by login(1) after a suc – cessful
login but just before it executes the login shell
/etc/redhat-release
#-包括一行声明RedHat 版本号和名称的信息。
[root@shell~]#  cat /etc/redhat-release 
CentOS release 6.3 (Final)
[root@shell~]#  uname -r
2.6.32-358.6.2.el6.x86_64
[root@shell~]#  uname -m
x86_64
/etc/group
#-设定用户的组名与相关信息  #-目录重要性:  配套命令chattr+i /etc/group 锁定该目录提高安全性
/etc/passwd
#-帐号信息文件 #-目录重要性:★★★★★ 配套命令chattr+i /etc/passwd 锁定该目录
/etc/shadow
#-密码信息文件  配套命令chattr+i /etc/shadow
/etc/sudoers
#-密码文件 可以执行使用sudo命令的配置文件(提升权限) #-目录重要性:★★★  配套命令chattr+i /etc/sudoers
visudo 类似 vi /etc/sudoers
visudo -c 检查语法
/etc/securetty 
#-设定哪些终端可以让root登录
/etc/login.defs 
#-所有用户登录时的缺省配置
/etc/modprobe.d
#-内核模板额外参数设定
/etc/syslog.conf
#-日志设置文件 #-目录重要性:★★★ 限(CetOS 5x)
/etc/rsyslog.conf
#-日志设置文件 #-目录重要性:★★★ 限(CetOS 6x)
/etc/rc.local
#-存放开机自启动文件的目录
/usr/local
#-目录一般是用来存放用户自编译安装软件的存放目录。一般是通过源码软件包安装的软件,如果没有特别的指定安装目录的话,一般是存放在这个目录。
相当于windows下的C:\Program Files。
/usr/local/sbin
#-系统全局环境目录。可放置一些不需要加路径执行脚本的脚本等。
/usr/src #-内核源码存放目录。比如下面有内核源码目录,比如linux、linux-2.xxx.xx 目录等。
/usr/bin
#-使用者可执行 binary file 的目录
/usr/local/bin
#-使用者可执行 binary file 的目录
/usr/lib
#-系统会使用到的函数库。
/usr/local/bin
#-系统会使用到的函数库。
/var
#-日志文件
/var/log
#-各种系统日志存放地
/var/log/messages
#-系统信息默认日志文件,非常重要。#-目录重要性:★★★★★
 [root@shell]# ll /var/log/messages*  查看messages的文件,可以cat任意一个日志文件。

-rw——- 1 root root 701 Jan 19 09:27 /var/log/messages 
-rw——- 1 root root 152783 Dec 27 13:14 /var/log/messages-20141228 
-rw——- 1 root root 34652 Jan 3 13:22 /var/log/messages-20150104 
-rw——- 1 root root 26644 Jan 10 20:15 /var/log/messages-20150111 
-rw——- 1 root root 17536 Jan 17 08:36 /var/log/messages-20150118

/var/log/secure    
#-存放SSH登录信息的
[root@shell]# ll /var/log/secure  
-rw——- 1 root root 52890 Jan 19 19:01 /var/log/secure
/var/log/wtmp
#-记录登录者信息的文件  
last      即可查询登录情况
lastlog 可以汇报最近所有用户的登录情况
/var/spool
/var/spool/cron/root
#-定时任务 crontab默认路径,按用户名命名的文件。#-目录重要性:★★★★★
/proc
#-虚拟目录。是内存的映射,内核和进程的虚拟文件目录。
/proc/version
#-内核版本。
[root@shell]#cat /proc/version 
Linux version 2.6.32-358.6.2.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Thu May 16 20:59:36 UTC 2013
/proc/sys/kernel
#-系统内核功能。
/proc/sys/net/ipv4
#-修改内核参数
[root@shell]# cat /proc/sys/net/ipv4/tcp_max_tw_buckets
5000
[root@shell]# cat /proc/sys/net/ipv4/tcp_tw_reuse
0
修改proc的配置时临时生效
/etc/sysctl.conf 内核参数里配置才是永远生效的。
两个路径修改的效果是一样的。
/proc/cpuinfo
#-CPU的信息。如类型,厂家,型号和性能等。
[root@shell]# cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model            : 45
model name  : Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
stepping        : 7
cpu MHz        : 2299.877
cache size      : 15360 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush mmx fxsr sse sse2 ht syscall nx lm up rep_good unfair_spinlock pni ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm
bogomips        : 4599.75
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:
/proc/meminfo
#-查看内存的信息
[root@shell]# cat /proc/meminfo

重要子目录的说明(重点)

1、/etc/fstab:开机自动挂载硬盘
(注,如果挂载点写的不对,可能重启服务器后会启动不起来,我个人喜欢用rc.local写挂载命令)
第1列:要被挂载的设备(注,第1列可以是uuid,或磁盘标签)
第2列:挂载点
第3列:挂载什么格式的文件系统(ext3还是ext4)
第4列:挂载的选项,是可读还是什么的
第5列:备份,0值是不备份,最好人工备份,不要他备份
第6列:自检,0是开机不扫描自己挂载的就设置0,系统的/分区最好用1,不仅扫描,还帮你修复。

[root@Saltstac-node1 ~]# vim /etc/fstab 
UUID=0b0731bf-da59-44f8-a928-e6d3f099c720       /       ext4    defaults        1 1
UUID=b96c4a29-99df-458b-a16b-12bd98a35df6       /boot   ext4    defaults        1 2
UUID=7fedc171-9871-4008-bf4e-d023e00a23e7       swap    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0    
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

df -h:人类可读的硬盘挂载情况

[root@Saltstac-node1 ~]# df -h 
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        18G  1.7G   16G  10% /
tmpfs           495M     0  495M   0% /dev/shm
/dev/sda1       194M   29M  155M  16% /boot

dd:生成一个8M文件,一般用来测试

[root@Saltstac-node1 ~]# dd if=/dev/zero of=test.txt bs=8M count=1 
1+0 records in
1+0 records out
8388608 bytes (8.4 MB) copied, 0.266855 s, 31.4 MB/s
[root@Saltstac-node1 ~]# du -sh test.txt 
8.0M    test.txt

2、/etc/rc.local:让一个程序开机自启动
建议都写在rc.local,包括非系统磁盘的挂载,并且一定要写注释。
下列实现开机自动启动nginx

[root@Saltstac-node1 ~]# vim /etc/rc.local 
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/app/nginx/sbin/nginx

3、/etc/inittab:设定系统启动时进入init的级别
设置成什么样的runlevel级别及加载的相关的级别对应的设置

[root@Saltstac-node1 ~]# vim /etc/inittab 
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 
id:3:initdefault:

查看系统的级别,结果为运行级别3

[root@Saltstac-node1 ~]# runlevel
N 3

4、系统启动流程
(a)开机BIOS 自检
(b)MBR 引导:硬盘0柱面0磁道1扇区有的前446byte。
(c)grub 引导菜单:/etc/grub.conf
(d)加载内核kernel
(e)启动init进程
(f)读取inittab文件,执行rc.sysinit,rc等脚本
(g)启动migetty
2
5、/etc/profile.d/
加载系统登陆程序一个目录,命令或文件独立以文件的形式存在(*.sh扩展名),但要可执行的
该目录存储开机自运行的脚本。
/etc/profile是写在配置文件里的,/etc/profile.d是以文件的形式存在的,且也好维护。
profile和profile.d都是开机运行的全局生效的。

[root@Saltstac-node1 ~]# cd /etc/profile.d/
[root@Saltstac-node1 profile.d]# ls
colorls.csh  cvs.sh     lang.csh  less.sh      vim.csh
colorls.sh   glib2.csh  lang.sh   modules.csh  vim.sh
cvs.csh      glib2.sh   less.csh  modules.sh   which2.sh

6、/proc/mounts
设备挂载信息,df-h类似。


转载请注明:清麟博客 » linux系统目录结构笔记总结

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址