一.目录结构详述
linux系统的目录结构最顶端是“/”,一切目录从根开始。 我们可以通过tree命令得到根(/)下的目录结构。
[root@linux01 ~]# tree -L 1 /
/
├── bin -> usr/bin <-- binary二进制文件(命令)
├── boot <-- 引导程序,内核镜像
├── dev <-- dev设备目录
├── etc <-- etc系统服务配置文件保存目录
├── home <-- 普通的家目录
├── lib -> usr/lib <-- 系统库libary
├── lib64 -> usr/lib64
├── media
├── mnt <-- mnt 临时挂载点,例如:光驱设备挂载
├── opt <-- opt option 可选
├── proc <-- process 虚拟文件系统(虚拟目录) ====>实际都是内存中的信息
├── root <-- root用户的家目录
├── run
├── sbin -> usr/sbin <-- super bin只有root能用的命令
├── srv
├── sys
├── tmp <-- 垃圾堆
├── usr <-- 存放程序
└── var <-- variable 经常变 /var/log/messages /var/log/secure
二. 重点目录文件
列举一些常见且很重要的目录。这些是大家必须要熟记的 .
-
2.1 /etc/必须要掌握的linux目录路径知识
1)./etc/sysconfig/network-scripts/ifcfg-eth0
配置网络地址及GW等,使得网卡生效 . 查看eth0 (第二块eth1) . 显示网卡配置信息详解 . 可以设置固定IP地址 . 重启网卡/etc/init.d/network restart(影响所有网卡) . 重启网卡ifdown eth0 && ifup eth0(只针对eth0网卡)
网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0
[root@web01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 <- 第一块网卡物理设备名;第二块为eth1,有些系统也会以em等字符标识(centos7系统) TYPE=Ethernet <- 上网类型,目前基本都是以太网 UUID=sasd-sdasd-wqe-12 <- 通用唯一识别码,如果是vmware克隆的虚拟机无法启动网卡可以去除此项。 ONBOOT=yes <- 这个地方要设置为yes,才能保证是否激活网卡设备 NM_CONTROLLED=no <- 是否通过NetworkManager管理网卡设备(centos6关闭) BOOTPROTO=none <- 启动协议,获取IP地址配置方式,有none|bootp|dhcp三个选项 none,引导时不使用协议,静态分配地址 bootp,使用BOOTP协议 dhcp,使用DHCP协议 IPADDR=10.0.0.51 <- 表示本台局域网中服务器的固定IP地址 NETMASK=255.255.255.0 <- 子网掩码,用来规划网络为和主机位的,一般为255.255.255.0 GATEWAY=10.0.0.254 <- 局域网上网网关地址 DNS1=223.5.5.5 <- 主DNS,这里默认会覆盖以及优先于/etc/resolv.conf的配置生效 DNS2=223.6.6.6 <- 第二个DNS,这里默认会覆盖以及优选于/etc/resolv.conf的配置文件 USERCTL=no PEERDNS=yes <- 是否确认网卡配置文件中的DNS配置优先于/etc/resolv.conf配置文件 IPV6INIT=no <- 是否支持IPV6 HWADDR=00:0c:29:10:2e:28 <- 以太网硬件地址即MAC地址(48位),如果是vmware克隆的虚拟机 无法启动网卡可以毫不犹豫的删除此项。
2). /etc/resolv.conf
设置linux本地的客户端DNS的配置文件,DNS可以实现域名和IP的互相解析。 ping www.baidu.com 负责域名和IP互相解析的服务就是DNS(domain name system). www.baidu.com 《==》203.71.88.10 不要再网卡配置文件里配置DNS,而是在/etc/resolv.conf里配。 小结: linux客户端DNS可以在网卡配置文件里设置(ifcfg-eth0) linux客户端DNS也可以在/etc/resolv.conf里设置。 网卡里的设置DNS优先于/etc/resolv.conf,如果重启网络网卡的dns会覆盖/etc/resolv.conf 的设置。 DNS1:223.5.5.5 DNS2:223.6.6.6
3)./etc/hosts
设定用户IP与名字(域名)的对应解析表,相当于本地LAN局域网内的DNS解析文件 服务器ip地址 www.baidu.com 类似C:\WINDOWS\system32\drivers\etc\hosts,LAN内IP域名解析文件。 开发、测试时做临时的域名解析常用,英文hosts - The static table lookup for host names。 host的解析在机房的服务器互相调用中也会常用,如门户网站的解析真实案例: 主机名: 1. 反映出这台机器用途 2. /etc/hosts taobao: 172.38.18.23 realtime-search.config-vip.taobao.com 172.65.54.47 tpbk2configslave1.config-host.taobao.com alibaba: 172.26.58.40 vafd.china.alibaba.com 172.23.54.47 normy1.vip.xyi.cn.alidc.net 当然了,大公司还可能会有内部DNS,来管理大量解析的记录。 hosts文件在企业里的作用: 1、开发,产品,测试等人员,用于通过正式的域名测试产品。www.jd.com hosts 解析 10.0.0.200 www.jd.com 进行测试:www.jd.com 2、服务器之间的调用可以用域名(内部的DNS),方便迁移。
4)./etc/sysconfig/network
可修改机器名及网卡启动,网关等配置。 查看主机名信息: # 查看主机名 [root@web01 ~]# uname -n web01 [root@web01 ~]# hostname web01 [root@web01 ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=web01 # 修改主机名 # 临时修改主机名称 [root@web01 ~]# hostname web02 <-- 重启服务器后失效 # 永久修改主机名称 [root@web01 ~]# sed -i 's#HOSTNAME=web01#HOSTNAME=web02#g' /etc/sysconfig/network
5). /etc/fstab (file system mounting table)
为什么执行df -h 有一些系统自动挂载的信息? 实现开机要挂载的文件系统的一个列表(如何实现将苹果(设备文件)挂载树枝上(挂载点)) 开机的时候,给什么设备创建什么入口对应关系 开机自动挂载列表 系统开机启动的时候把磁盘分区挂载到目录上面(给你系统的磁盘开门) [root@web01 ~]# vim /etc/fstab UUID=588f8c0f-7e91-449b-8a21-76b6db5d60fe / ext4 defaults 1 1 UUID=30fdf891-525f-40c4-9021-290dfd8c70b9 /boot ext4 defaults 1 2 UUID=6e3e72fa-9c3c-4ea6-b865-3a645abfa7db swap swap defaults 0 0 挂载什么 挂载到哪 类型 挂载参数 是否备份 是否检查磁盘 172.16.1.31:/data /mnt nfs defaults 0(dump) 0(fsck) [root@web01 ~]# blkid /dev/sda3: UUID="588f8c0f-7e91-449b-8a21-76b6db5d60fe" TYPE="ext4" /dev/sda1: UUID="30fdf891-525f-40c4-9021-290dfd8c70b9" TYPE="ext4" /dev/sda2: UUID="6e3e72fa-9c3c-4ea6-b865-3a645abfa7db" TYPE="swap" fstab一旦配置错误,会导致服务器无法启动。如何修复?
6). /etc/rc.local
文件中放着开机需要启动的命令或脚本(命令的集合)。 用于存放开机自启动程序命令的文件 chkconfig常用来管理yum/rpm安装的程序的服务的开机自启动 /etc/init.d。 自己开发的程序,习惯把启动命令放入/etc/rc.local,实现开机启动这些程序, linux开机时会把/etc/rc.local里的内容执行一遍。 企业里如何用: chkconfig和 /etc/rc.local,可以选择/etc/rc.local,服务器的档案。
7). /etc/inittab
系统的运行级别的配置文件 设定系统启动时init进程将把系统设置成什么样的runlevel运行级别及加载相关的级别对应启动文件设置。 0 关机(不要把运行级别设置为0) 1 单用户模式 root密码忘了 跑机房或远程控制卡(默认没有网络) 2 多用户模式 但是没有NFS(网络文件系统) 3 完全多用户模式 命令模式 文本模式(工作中默认) 4 没有使用 5 图形界面模式 桌面模式 X11 6 重启(不要把运行级别设置为6) 说明:以上信息在inittab文件注释中均有说明
8)./etc/init.d
这个目录是用来存放通过yum或rpm工具安装的软件的默认启动程序(启动脚本)的目录。 服务/软件的管理命令。 # Centos/RedHat文件目录应用方法 [root@C64_x86_64 ~]# ll /etc/init.d lrwxrwxrwx. 1 root root 11 8月 24 15:06 /etc/init.d -> rc.d/init.d 说明:/etc/init.d等价于/etc/rc.d/init.d/ # 在RHEL环境中: service 服务名 start 等价于 /etc/init.d/服务名 start /etc/init.d/iptables stop /etc/init.d/network restart
9). /etc/profile
系统全局环境变量永久生效的配置文件 配置系统环境变量和别名 定义别名以及PATH变量等 [root@web01 ~]# head -4 /etc/profile # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc 环境变量====特殊的变量 1. 大写 2. linux在哪里都可以使用的变量 PATH变量===>命令的路径====>linux找命令去哪里找,PATH 用户的环境变量:~/.bash_profile,~/.bashrc TMOUT HISTSIZE HISTFILESIZE ##国法====>全局 /etc/profile /etc/bashrc ##家规====>自己家里生效 ~/.bash_profile ~/.bashrc ~ ####当前用户的家目录 .bashrc ####linux 以.开头的文件或目录 是隐藏 ls -a
10). /etc/bashrc
放置别名 函数 [root@web01 ~]# head -4 /etc/bashrc # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile [root@web01 ~]# alias rm='echo "rm cmd does not to be used."' cp mv
11). /usr/local
/usr/local 编译安装的默认安装位置 这个目录一般是用来存放用户自编译安装软件的存放目录; 一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。 相当于:c:\Program files。 安装软件默认的安装位置(编译安装) linux下面安装程序的方法(想吃饭): rpm 安装法 (rpm -ivh包名.rpm) 说明:买回来的速冻水饺(半成品),依赖的软件,自己手动安装。 yum install 包名(yum包管理器,调用安装命令), 说明:依赖的软件,依赖的包,yum给你解决。 源码安装(编译安装)(./configure(准备菜 ,切菜) ,make(炒菜),make install(上菜)) 源码放入/usr/src下面。
三. 扩展目录文件
-
3.1 /var目录下的路径知识
1). /var
存放变化数据信息的目录
2). /var/log
各种系统日志存放目录
3). /var/log/messages
系统默认的日志文件,非常重要。按周自动轮循(一周来一刀 每周切割一次) 补充说明: dmseg命令可以查看系统故障信息(/var/log/dmesg)。 依赖于rsyglog服务开启。 上述轮询日志由/etc/logrotate.conf和/etc/logrotate.d/syslog控制
4). /var/log/secure
记录的用户的登录信息(啥时候登录的,是否成功,从哪里登录) 谁 从哪里来 是否进来了 记录登入系统存取信息的文件,按周自动轮循,例如 pop3, ssh, telnet, ftp 等都会记录在此。系统安全的日志文件。依赖于rsyglog服务开启。
5)./var/spool /var/spool/cron/root
定时任务crontab默认路径,按用户名命名的文件。(系统闹钟)
-
3.2 /proc目录下的路径知识
1). /proc
虚拟目录,是内存的映射,内核和进程的虚拟文件系统目录
2). /proc/cpuinfo
关于处理器的信息,如类型、厂家、型号和性能等。 top看cpu,sar。 https://blog.csdn.net/stpice/article/details/76039720 http://lovesoo.org/linux-sar-command-detailed.html
3). /proc/meminfo
系统内存信息,free -m
4). /proc/loadavg
系统负载平均值信息(系统的繁忙情况,比较准确,但是不够细致系统性能指标), uptime 的结果,负载值不要超过CPU的核数。 看负载top,uptime。 负载:系统的繁忙程度。 w
5). /proc/mounts
设备的挂载信息,df -h类似。 当前系统中,苹果如何挂载到树枝。