Linux必知必会的目录结构

Posted wenrulaogou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux必知必会的目录结构相关的知识,希望对你有一定的参考价值。

1.目录结构

/bin                     二进制文件  命令

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

/boot                    系统的引导文件 系统内核

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

/etc                     系统配置文件

/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

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

[[email protected] ~]# 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配置文件
[[email protected]-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
[[email protected]-50 ~]# hostname oldboyedu50  修改
[[email protected] ~]# hostname              查看
oldboyedu50  
2.3.2 永久修改主机名
[[email protected]-50 ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oldboyedu-50   ##把名字修改为你要改的
修改完退出  重启服务器后生效

2.4 /etc/hosts

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

了解/etc/hosts的作用

[[email protected] ~]# cat /etc/hosts                          查看内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
测试
[[email protected]-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地址与域名的对应关系

[[email protected]-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

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

在开机的时候给每个设备创建一个入口  开机的时候自动挂载列表
[[email protected]-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
设备磁盘分区                               挂载点

[[email protected]-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

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

[[email protected] ~]# 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  

技术分享图片
[[email protected] ~]# 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 

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

技术分享图片
[[email protected] ~]# cat /etc/init.d
cat: /etc/init.d: Is a directory
[[email protected] ~]# 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信息 
[[email protected]-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
[[email protected]-50 ~]# lscpu  查看cpu的信息

3.2 /proc/meminfo

系统内存信息 
[[email protected]-50 ~]# cat /proc/meminfo
可以查看内存的信息  信息过长 此处不粘贴详细内容
cat /proc/meminfo  一般用 free -h代替           
-h使free显示的内容可读
total 一共    used  使用   free  剩余
[[email protected]-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

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

3.4 /proc/loadavg 

系统负载信息
数字接近系统的核心总数的  就算是高了
 [[email protected] ~]# cat /proc/loadavg      显示系统负载信息
0.0    0.00 0.00 1/167 2280 
最近一分钟  最近5分钟  最近15分钟  有167个进程 有一个在运行
[[email protected] ~]# w                      可用w代替  非全屏状态下可能会报错
 23:30:33 up  1:45,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              [email protected]   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
[[email protected]-50 ~]# uptime   也能够查看系统负载
19:11:33 up 41 min,  3 users,  load average: 0.00, 0.00, 0.00

4. /usr目录下内容

4.1/usr/local与/usr/share

4.1.1 /usr/local

linux下安装软件默认的位置 编译安装

4.1.2 /usr/share

文档和帮助

5. /var目录下内容

/var 目录 variable 经常变化

/var/log  日志

5.1 /var/messages

系统默认的日志

5.2 /var/log/secure

记录用户的登陆信息日志

/var/log/secure  #安全日志  记录用户的登陆信息日志 
Jul 10 21:51:25 oldboyedu-50 sshd[25452]: Failed password for root from 10.0.0.1 port 56276 ssh2
Jul 10 21:51:26 oldboyedu-50 sshd[25452]: Failed password for root from 10.0.0.1 port 56276 ssh2
                                          failed 错误的

5.3 查看实时更新

命令 tail -f

比如tail -f /var/log/ secure
输入命令后只要不撤销 日志有更新就会一直显示在底部

5.4 如何优雅的查看日志

1.head
2.tail
3.grep
4.less    一页一页查看内容
          空格  或者f 下一页
          b     上一页
          q  退出
5.more    一页一页查看内容   快捷键和less相同

 

以上是关于Linux必知必会的目录结构的主要内容,如果未能解决你的问题,请参考以下文章

大数据必知必会的-Linux命令

大数据必知必会的-Linux命令

大数据必知必会的-Linux命令

大数据必知必会的-Linux命令

数据结构和算法必知必会的 50 道题目 12 种语言代码实现

身为开发必知必会的Linux:Linux远程连接/命令的使用