欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux必知必会的目录结构之/etc和/proc

程序员文章站 2022-03-12 09:48:49
1.目录结构 /bin 二进制文件 命令 /sbin 超级命令 只有root用户可以使用 /boot 引导文件 系统内核 /dev 设备文件 光盘 硬盘分区 /ect 系统配置文件 /home 普通用户的家目录 /root 用户的家目录 /lib lib库文件 /lib64 lib库文件 /lost ......

1.目录结构

/bin                   二进制文件  命令

/sbin                     超级命令 只有root用户可以使用

/boot                    引导文件 系统内核

/dev                        设备文件 光盘 硬盘分区

/ect                  系统配置文件

/home                  普通用户的家目录

/root                     用户的家目录

/lib                   lib库文件

/lib64               lib库文件

/lost+found         临时保存数据

/mnt                     临时挂载点

/opt                   第三方软件安装位置

/proc                    虚拟目录 存放内存中的信息 进程 服务信息

/sys                   虚拟目录 存放内存中的信息 进程 服务信息

/tmp                     临时存储文件

/usr                  用户安装

/var                  存放日志

2./etc目录下内容

2.1 /etc/sysconfig/network-scripts/ifcfg-eth0

第一块网卡的配置文件

system config/networ-scripts/interface(接口/w网卡)config

如果要修改网卡的信息  修改后 重启即可生效

[root@oldboy ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 linux第一块网卡的配置文件
DEVICE=eth0                                        <==设备名称
TYPE=Ethernet                                      <==网络类型  以太网 
UUID=9624a449-b94d-4633-9139-e8459206301d          <==系统中给每个设备的标识符号 在系统中唯一  
ONBOOT=yes                                         <==boot on 在开机或重启网络的时候自启动
NM_CONTROLLED=yes                                  <==是否受系统的network服务控制
BOOTPROTO=none                                     <==网卡获取IP的方法 网卡静态IP还是动态IP
HWADDR=00:0C:29:91:97:B5                           <==HardWare ADDRress硬件地址/MAC地址 网卡唯一
IPADDR=10.0.0.201                                  <==服务器的ip地址
PREFIX=24
##等同于NATMASK=255.255.255.0 子网掩码 决定你一个局域网中最多可以有多少台服务器
GATEWAY=10.0.0.254                                gate way 默认网关  所有人离开进入都要经过网关
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
DNS1=223.5.5.5                                        <== dns
DNS2=223.6.6.6                                        <== dns

BOOTPROTO   static/none   静态IP

               dhcp系统默认  自动获取IP地址

NATMASK=255.255.255.0  这个一般没有  PREFIX=24 一般由这个代替

子网掩码 决定你一个局域网中最多可以有多少台服务器

2.2 /etc/resolv.conf  

DNS  (domain name server/system)域名解析

可使用的DNS(公共DNS)

1.阿里云

DNS1 223.5.5.5

DNS2 223.6.6.6

2.114

114.114.114.114

114.114.115.115

DNS配置文件
网卡里的配置文件优先于/etc/resolv.conf   
/etc/resolv.conf                                 dns配置文件
[root@oldboyedu-50 ~]# cat /etc/resolv.conf
# Generated by NetworkManager


# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
nameserver 223.5.5.5
nameserver 223.6.6.6

2.3 /etc/sysconfig/network

修改主机名的地方

临时修改主机名
hostname
1.临时修改  hostname
[root@oldboyedu-50 ~]# hostname oldboyedu50  修改
[root@oldboyedu-50 ~]# hostname              查看
oldboyedu50  
2.3.2 永久修改主机名
[root@oldboyedu-50 ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oldboyedu-50   ##把名字修改为你要改的
修改完退出  重启服务器后生效

2.4 /etc/hosts

ip与域名(主机名)解析关系

了解/etc/hosts的作用

[root@oldboyedu50-lnb ~]# cat /etc/hosts                          查看内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
测试
[root@oldboyedu50-lnb ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.200 jd.com            ###IP地址与域名的对应关系

[root@oldboyedu50-lnb ~]# ping jd.com   再次ping  京东 IP地址变为10.0.0.200
PING jd.com (10.0.0.200) 56(84) bytes of data.
64 bytes from jd.com (10.0.0.200): icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from jd.com (10.0.0.200): icmp_seq=2 ttl=64 time=0.026 ms

2.5 /etc/fstab

在开机的时候给每个设备创建一个入口  开机的时候自动挂载列表

在开机的时候给每个设备创建一个入口  开机的时候自动挂载列表
[root@oldboyedu50-lnb ~]# column -t /etc/fstab  用 column -t 查看 可以先排列好内容再显示
#
#                                          /etc/fstab
#                                          Created     by            anaconda        on          Tue         Jul         10      18:21:44     2018
#
#                                          Accessible  filesystems,  by              reference,  are         maintained  under   '/dev/disk'
#                                          See         man           pages           fstab(5),   findfs(8),  mount(8)    and/or  blkid(8)     for   more  info
#
UUID=c4f4be67-f408-4f14-b01e-a0c0777932cb  /           ext4          defaults        1           1
UUID=8dc40910-35ed-4d1b-acd7-5dad0ad47746  /boot       ext4          defaults        1           2
UUID=09e2ce6c-7249-4239-8843-5ef9cc3a9a99  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
设备磁盘分区                               挂载点

[root@oldboyedu50-lnb ~]# blkid   可用blkid显示的信息与上面内容对比
/dev/sda1: UUID="8dc40910-35ed-4d1b-acd7-5dad0ad47746" TYPE="ext4" 
/dev/sda2: UUID="09e2ce6c-7249-4239-8843-5ef9cc3a9a99" TYPE="swap" 
/dev/sda3: UUID="c4f4be67-f408-4f14-b01e-a0c0777932cb" TYPE="ext4"

2.6 /etc/rc.local

存放开机自启动的程序或命令  开机的时候自动运行

[root@oldboyedu50-lnb ~]# cat /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.
##需要开机自启动的命令或脚本可以放在这个文件内
##效果类似于win7下面的启动

2.7 /etc/inittab  

Linux必知必会的目录结构之/etc和/proc
[root@oldboyedu50-lnb ~]# cat /etc/inittab 
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# 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:           需要更改直接vim在此处修改就可以
View Code

运行等级详解

#   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) ##多用户模式 没有NFS
#   3 - Full multiuser mode                      
##完全多用户模式 (命令行模式/文本模式)工作默认的环境
#   4 - unused                                   待开发
#   5 - X11                                      桌面模式  图形化界面
#   6 - reboot (Do NOT set initdefault to this)  #重启
init  3   修改运行级别

2.8 /etc/init.d

系统的软件/服务的管理命令 存放在这里 

2.9 /etc/profile 

配置别名 配置环境变量的地方

Linux必知必会的目录结构之/etc和/proc
[root@oldboy ~]# cat /etc/init.d
cat: /etc/init.d: Is a directory
[root@oldboy ~]# cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`/usr/bin/id -u`
        UID=`/usr/bin/id -ru`
    fi
    USER="`/usr/bin/id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
fi

HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null 2>&1
        fi
    fi
done

unset i
unset -f pathmunge
View Code

2.10 /etc/bashrc 

配置别名的地方

2.10.1  .bash_profile与 .bashrc

国法:对所有用户生效          

/etc/profile   (改这一个就可以)

/etc/bashrc                   

家规 :只对当前用户生效       

.bash_profile                 

.bashrc     

3. /proc目录下内容

3.1 /proc/cpuinfo

系统cpu信息 
[root@oldboyedu-50 ~]# cat /proc/cpuinfo                  一般常用的是  lscpu
processor    : 0                                           第几个核心  此处表示第一个
vendor_id    : GenuineIntel
cpu family    : 6
model        : 60
model name    : Intel(R) Core(TM) i5-4200H CPU @ 2.80GHz
stepping    : 3
microcode    : 34
cpu MHz        : 2793.547
cache size    : 3072 KB
physical id    : 0                                            第几颗CPU(物理) 此处表示第一个
###以下还有信息 但是不常用 不再显示
cat /proc/cpuinfo                  一般常用的是  lscpu
[root@oldboyedu-50 ~]# lscpu  查看cpu的信息

3.2 /proc/meminfo

系统内存信息 
[root@oldboyedu-50 ~]# cat /proc/meminfo
可以查看内存的信息  信息过长 此处不粘贴详细内容
cat /proc/meminfo  一般用 free -h代替           
-h使free显示的内容可读
total 一共    used  使用   free  剩余
[root@oldboyedu-50 ~]# free -h  查看内存信息    -h参数 使free显示的内容可读
             total       used       free     shared    buffers     cached
Mem:          980M       619M       360M       228K        51M       397M
-/+ buffers/cache:       170M       809M
Swap:         767M         0B       767M

3.3 /proc/mounts

[root@oldboyedu-50 ~]# cat /proc/mounts
用cat /proc/mounts  信息显示很杂乱  一般用column -t  /proc/mounts代替
[root@oldboyedu-50 ~]# column -t  /proc/mounts   ##使文件信息对齐后显示

3.4 /proc/loadavg 

系统负载信息
数字接近系统的核心总数的  就算是高了
 [root@oldboy ~]# cat /proc/loadavg      显示系统负载信息
0.0    0.00 0.00 1/167 2280 
最近一分钟  最近5分钟  最近15分钟  有167个进程 有一个在运行
[root@oldboy ~]# w                      可用w代替  非全屏状态下可能会报错
 23:30:33 up  1:45,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                22:04    1:25m  0.03s  0.03s -bash
root     pts/0    10.0.0.1         22:05    1:04m  0.05s  0.05s -bash
root     pts/1    10.0.0.1         22:27    0.00s  0.24s  0.13s w
[root@oldboyedu-50 ~]# uptime   也能够查看系统负载
19:11:33 up 41 min,  3 users,  load average: 0.00, 0.00, 0.00