linux目录结构及根下目录的用途
/根下的目录
[root@oldboy35 ~]# ls / bin dev lib media opt sbin sys var boot etc lib64 mnt proc selinux tmp data home lost+found oldboy root srv usr
/bin:常用的二进制命令目录;比如ls、cp、mkdir、cut等命令 |
/boot:Linux的内核及引导系统程序所需要的文件目录 |
/dev:设备文件目录,比如声卡、磁盘… |
/etc:常用系统及二进制安装包配置文件默认路径和服务启动命令目录。 |
/home:普通用户的家目录默认存放目录 |
/lib:库文件存放目录 |
/lost+found:在ext3文件系统中,当系统意外奔溃或机器意外关机,会产生一些碎片在这里。 当系统在开机启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题,可能会有文件被移到这个目录中,可能需要用手动的方式来修复,或移动文件到原来的位置上。 |
/mnt :一般是用于临时挂载存储设备的挂载目录的,如cdrom,u盘等目录。 |
/opt :表示的是可选的意思,有些软件包也会被安装在这里,也就是自定义软件包,我们自己的编译软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过./configure –prefix=/opt目录,非必须这样,视习惯或规范而定。 |
/proc :操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统 |
/root :Linux超级权限用户root的家目录; |
/sbin :大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,这个目录和 /usr/bin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的; |
/tmp :临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就是用来存放临时文件的,权限比较特殊。/var/tmp目录和这个目录相似。 |
/usr :这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc 目录中。 |
/var :存放日志的目录 |
1.1 /etc/必须要掌握的linux目录
1.2 修改主机名及网卡的配置
目录 |
说明(*号表示重要程度) |
/etc/sysconfig/network-scripts/ifcfg-eth0 ****** |
#-->配置网络地址及GW等****使得网卡生效 (1) 查看eth0(第二块eth1) (2) 通过setup --> ‘network confguration’修改网卡配置就是这个文件 |
(3) 配置文件详解 (4) 固定IP地址 (5) (让你的网卡的配置文件生效)重启网卡 方法一:/etc/init.d/network restart (影响所有网卡) 方法二:ifdown eth0 && ifup eth0 (只针对eth0网卡) (1) 设置文件ifcfg-interface-name包含了初始化接口所需的大部分周详信息;其中interface-name将根据网卡的类型和排序而不同,一般其名字为eth0、eth1、ppp0 (2) 解释说明: DEVICE=name,其中name是物理设备名。 IPADDR=addr,其中addr是IP地址 NETMASK=mask,其中,mask是网络掩码值。 GATEWAY=addr,其中addr是网关地址。(rout-n) ONBOOT=answer,其中,answer是yes(引导时激活设备)或no(引导时不激活) USERCTL=answer,其中,anwser是yes(非root用户能控制该设备)或no BOOTPROTO=proto,其中,proto取下列值之一:none,引导时不使用协议;static静态分配地址;bootp,使用BOOTP协议,或dhcp,使用DHCP协议。 |
|
/etc/resolv.conf ***** |
#windows==>控制面板\网络和共享中心 #==>设置linux本地的客户端DNS的配置文件,DNS可以实现域名和IP的互相解析 ping www.baidu.com setup ’network configuration’==>’DNS configurstion
|
小结:
DNS1:网关地址 DNS2:233.5.5.5 223.5.5.5 223.6.6.6 |
|
/etc/hosts ****** |
#==>设置用户IP与名字(或域名)的对应解析表,相当于本地LAN局域网内的DNS解析文件 服务器IP地址www.baidu.com #类似C:\WINDOWS\system32\drivers\etc\hosts ,LAN内IP域名解析文件。开发、测试时做临时的域名解析常用,英文hosts—The static table lookup for host name . Host的解析在机房的服务器互相调用中也会常用,如门户网站的解析真实案例: 主机名:
taobao 172.38.18.23 vip.taobao.com 当然了大公司有自己的DNS服务器来管理大量的解析记录 |
/etc/redhat-release |
#==>包括一行声明RedHat版本和名称的信息 [root@m01 ~]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@m01 ~]# uname -r 2.6.32-642.el6.x86_64 [root@m01 ~]# uname -m x86_64 |
/etc/group (用户管理) |
#==>设定用户的组名与相关信息 *** chattr+i |
/etc/passwd (用户管理) |
#==>账号信息文件 **** |
/etc/shadow |
#==>密码信息文件 |
/etc/gshadow |
#==>组密码信息文件 |
/etc/sysconfig/network |
#==>修改机器名及网卡启动,网关等配置 1.永久更改主机名,需要同时修改以下两项 [root@m01 ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=m01
|
/etc/fstab File system mounting table ***** |
#==>实现开机要挂载的文件系统的一个列表 # 如何挂载到树枝 对应关系 挂载列表 fstab一旦配置错误,会导致服务器无法启动。如何修复? [root@oldboy35 ~]# blkid /dev/sda1: UUID="d441775d-6545-4a5e-99e6-29795133ceb6" TYPE="ext4" /dev/sda2: UUID="3e5ddb4b-e8a5-4b30-ac90-af899400d815" TYPE="swap" /dev/sda3: UUID="ed7de58e-da1d-407a-8dcd-4410dd7f8ccf" TYPE="ext4" 第一列挂载的设备,可以是设备名或UUID,或磁盘标签。 tail -1 /etc/fatab
|
/etc/rc.local ***** |
#msconfig 文件中存放需要启动的命令或脚本(命令的集合)用于存放开机自启动程序命令的文件(chkconfig常用来管理yun/rpm安装的程序的服务的开机自启动/etc/init.d)。 自己开发的程序,习惯把启动命令放入/etc/rc.local,实现开机启动这些程序,linux开机时会把/etc/rc.local里的内容执行一遍。
|
/etc/inttab #init(初始化) Tab(table 表) ***** |
#==>设定系统启动时init进程将把系统设置成什么样的runlevel运行级别及加载相关的级别对应启动文件设置。 0 ##关机 1 ##但用户模式 2 ##多用户模式 但是没有NFS。 3 ##多用户模式 命令模式(工作中默认) 4 ##没有使用 5 ##图形界面模式 桌面模式 6 ##重启
*****Linux开机启动流程
|
讨论 |
|
/etc/exports |
#==>设定NFS网络文件系统用的配置文件。 |
/etc/init.d ***** |
#==>这个目录是用来存放通过yum或rpm工具安装的软件的默认启动程序(启动脚本)的目录。 服务/软件的管理命令。 |
/etc/xinit.d |
#==>如果服务器是通过xinitd模式运行的,他的脚本要放在这个目录下。 无人职守安装时pxe+kickstart会用到/etc/xinit.d services 服务名start===/etc/init.d/服务名start /etc/init.d/iptables start /etc/init.d/network restart |
/etc/profile ***** |
#==>系统全局环境变量永久生效的配置文件*****定义别名以及PATH变量等 PATH变量==>命令的路径==>linux找命令去哪里找,PATH 用户的环境变量,~/.bash_profile, ~/.bashrc TMOUT HISTSIZE HISTFILESIZE
##国法=====>全局 /etc/profile /etc/bashrc
##家规====>自己家里生效 ~/.bash_profile ~/.bashrc |
/etc/bashrc |
放置别名,函数 alias rm =’echo cmd does not to be used’ cp mv |
/etc/profile.d |
#==>加载系统登录程序一个目录,命令或文件独立存在! 以文件的形式存在(*.sh为扩展名),但要可执行。 |
/etc/sudoers ***** |
** 为非根用户授予根用户的权限 visudo 类似vi /etc/sudoers,不建议vi改,因为没有语法检查。 [root@oldboy35 data]# visudo -c /etc/sudoers: parsed OK [root@oldboy35 data]# /etc/sudoers;解析正确 |
/etc/securetty |
##设定哪些终端可以让root登录 |
/etc/login.defs |
##所用用户登录时的缺省配置 |
/etc/modprobe.conf |
内核模块额外参数设定 |
/etc/syslog.conf |
日志设置文件***限c5.x |
/etc/rsyslog.conf |
日志设置文件***限c6.x |
1.2.1 其它的目录
目录 |
说明(*号多少表示重要程度) |
/lib |
###系统会使用到的函数库 |
/lib/modules |
###kernel 的相关模版 |
/var/lib/rpm |
### rpm 套件安装处 |
/usr/bin |
这个目录是可执行程序的目录; |
/usr/local |
源码编译安装存放路径 |
/usr/local/bin |
用户安装的最下的应用程序,和一些在/usr/local 目录下大应用程序的符号连接 |
/usr/local/sbin |
系统全局环境目录,可放置一些不需要加路径执行的脚本 |
/usr/share |
系统共用的东西存放地,比如/usr/share/doc和/usr/share/man |
/usr/src |
内核源码存放目录,比如下面有内核源码目录,比如linux目录等。 1、 rpm -ivh包名.rpm(存放rpm包,又无法使用yum的时候) 2、 yum install 包名(下载--rpm--解决软件)-简单方法使用(习惯:线上对外的服务器很少安装apache,nginx.mysql功能软件会用yum) 3、 源码(./configure,make,make install)定制。大中小企业重要服务、 门户:源码--定制rpm--制作yum仓库--yum安装。 |
/usr/bin |
使用者可执行的binary file的目录 |
1.2.2 /var目录下的路径知识
参数 |
说明(***号表示重要的程度) |
/var |
日志文件 |
/var/log |
各种系统日志存放地 |
/var/log/messages |
系统信息默认日志 ,非常重要。安周自动论循
[root@oldboy35 ~]# ll /var/log/messages -rw-------. 1 root root 6159 Mar 16 00:51 /var/log/messages [root@oldboy35 ~]# [root@oldboy35 ~]# ll /var/log/messages* -rw-------. 1 root root 6159 Mar 16 00:51 /var/log/messages -rw-------. 1 root root 190894 Mar 12 03:42 /var/log/messages-20170312
dmseg命令可以查看系统故障信息(/var/log/dmesg).依赖于rsyglog服务开启 上述轮询日志由/etc/logrotate.conf 和 /etc/logrotate.d/syslog控制
|
/var/log/secure ***** |
记录的用户的登录信息(啥时候登录的,是否成功,从哪里登录) 记录登入系统系统存取信息的文件,按周自动轮询,例如pop3,ssh,telnet,ftp等都会记录再次。系统安全的日志文件。依赖于rayglog服务开启 |
/var/log/wtmp |
记录登录者信息的文件,last、login。 |
/var/spool /var/spool/cron/root ***** |
定时任务crontab默认路径,按用户名命名的文件。
|
1.2.3 /proc下的重要路径知识
目录 |
说明(*号多少表示重要程度) |
/proc |
虚拟目录,是内存和进程的虚拟文件系统目录 |
/proc/version |
内核版本 [root@oldboy35 ~]# tail /proc/version Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016 [root@oldboy35 ~]#
|
/proc/sys/kernel |
系统内核功能 |
/proc/cpuinfo |
关于处理器的信息,如类型,厂家、型号和性能等,top 看 cpu sar |
/proc/devices |
当前运行内核所配置的文件系统 |
/proc/dma |
当前正在使用的DMA通道 |
/proc/filesystems |
当前运行内核所配置的文件系统 |
/proc/loadavg |
系统负载平均值信息(系统的繁忙情况,比较准确,但是不够细致系统性能指标)uptime 的结果****top uptime 负载值不要超过cpu的核数。 |
/proc/mount |
设备的挂载信息 df -h 类似 |
1.1.1 PATH环境变量及其作用
[root@m01 ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
##==>linux下面执行一个命令的简单 过程
需要在PATH路径下去寻找
找到就执行
找不到就 提示 command not found