一.Linux系统目录结构介绍
1.Linux 与 Windows目录结构对比
Linux与Windows的目录结构对比见下图。
Linux 目录特点: /etc/hosts /root/data/oldboy.txt
2.Linux系统目录结构基础特点
Linux 下一切从根开始
Linux 下的目录是一个有层次的目录结构
在 LInux中每个目录可以挂载到不同的设备(磁盘)上
Linux 下设备部能使用,不挂载的设备相当于没门没窗户的*(进不去出不来),挂载相当于给设备创造了一个入口(挂载点,一般为目录)
二.Linux的目录结构详解
1.目录层次标准 FHS
文件系统层次结构标准(FHS) 定义了在类Unix系统中的目录结构和目录内容。它由Linux基金会维护,最新版为2015年六月三日发布的3.0版,仅用于Linux的各类发行版中。
官网: http://www.pathname.com/fhs/
2.根下目录结构详解重要的LInux系统文件介绍
目录 |
说明 |
/lost |
found系统修复 |
/bin |
二进制命令所在的目录。 |
/boot |
系统引导程序所需的文件目录。安装系统分区的时候一般单独要分一个boot分区,大小可谓128-256M,该分区数据增长神效 |
/dev |
(Device flies)设备软件目录,比如磁盘、光驱….. |
/etc |
系统配置,启动程序 |
/home |
普通用户的家,目录默认数据存放目录 |
/lib |
启动系统和运行命令所需的共享库文件和内核模块存放 |
/mnt |
临时挂载存储设备的挂载点, u盘直接插入光驱无法使用,要先挂载后使用 |
/opt |
额外的应用软件包 |
/proc |
操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是虚拟文件系统的挂载点,proc并不是真正的文件系统,它的定义可以参见/etc/ fstab,系统运行很多信息都在这个目录下。 |
/proc/loadavg |
<==系统负载(系统繁忙程度) |
/proc/memrino |
<==系统内存信息 |
/proc/cpuinfo |
<==系统cpu信息 |
/proc/mounts |
<==系统挂载信息。 |
/root |
Linux超级用户root的家目录:root类似win32管理员administrator |
/sbin |
和管理系统相关的命令(超级管理员用) |
/tmp |
(Temporary files)临时文件目录, 这个目录可以被用作回收站使用 |
/usr |
用户或系统软件应用程序目录 |
/var |
这个目录的内容是经常变动的。是个用来存放系统日志的目录,系统日志的路径/var/log/messages; /var/lib用来存放一些库文件 |
3./etc系统初始化及配置相关重要文件
/etc/sysconfig/network-scripts/ifcfg-eth0 #网卡配置文件
/etc/resolv.conf #Linux系统DNS配置文件
/etc/sysconfig/network #CentOS-6主机名配置文件
/etc/hostname #CentOS-7主机名配置文件
/etc/syscconfig/i18n #CentOS-6字符集配置文件
/etc/locale.conf #CentOS-7字符集配置文件
/etc/hosts #ip地址与域名快速解析的文件
/etc/fstab #配置开机设备自动挂载的文件
/etc/rc.local #存放开机自启动程序命令的文件
/etc/inittab # centos7设定运行级别等配置的文件
/etc/systemd/system/default.target #centos7设定运行级别等配置的文件
/usr/lib/systemd/system/runlevel*.target #centos7运行级别
/etc/profile及/etc/bashrc #配置系统的环境变量/别名等的文件
/etc/profile.d #用户登录后执行的脚本所在的目录
/etc/issue和/etc/issue.net #配置在用户登录终端前显示信息的文件
/etc/init.d #软件启动程序所在的目录
/etc/motd #配置用户登录系统之后显示提示内容的文件
/etc/redhat-release #声明RedHat版本号和名称信息的文件
/etc/sysctl.conf #Linux内核参数设置文件
4.网卡配置文件详解
修改网卡配置文件之后,需要重启网卡才能生效
systemctl restart network
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
UUID=30126a53-c912--a7fe-af1925bd4d2f #网卡uuid克隆虚拟机需要删除。
HWADDR=:0c::fe:f9:8a #mac地址,网卡唯一标识,克隆虚拟机要删除。
NM_CONTROLLED=no #要不要被网络管理器控制,选no
USERCTL=no #USER ConTrol普通用户是否可以管理网卡,no
PEERDNS=yes #要不要覆盖/etc/resolv.conf文件(DNS客户端文件)
IPV6INIT=no #是否支持ipV6
DEVICE=eth0 #网卡设备的名字,eth0是第一块。
ONBOOT=yes #开机时,是否和系统一起启动
TYPE=Ethernet #以太网
BOOTPROTO=none #启动协议.dhcp(动态主机配置协议).static/none(静态ip)
IPADDR=10.0.0.200 #IP地址
NETMASK=255.255.255.0 #子网掩码(也可以是24)
GATEWAY=10.0.0.2 #网关
DNS1=223.5.5.5 #第一个DNS
DNS2=223.6.6.6 #第二个DNS
配置DNS的配置文件
两种方法
/etc/sysconfig/network-scripts/ifcfg-eth0
配置方法:DNS1=xxx.xxx.xxx.xxx DNS2=xxx.xxx.xxx.xxx
此配置文件配置好DNS后是需要重启网卡配置文件才能生效。
/etc/resolv.conf
配置方法:nameserver xxx.xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx
此配置配置完成后是实时生效的
优先级: 网卡中>/etc/resolv.conf
5.修改主机名
CentOS-6:
命令修改 #修改之后需要重新登录终端生效(临时生效,重启系统之后失效)
hostname 新的主机名
配置文件修改 #修改后需要重启系统(永久生效)
修改配置文件 /etc/sysconfig/network
CentOS-7
命令修改 #修改之后需要重新登录终端生效(临时生效,重启系统之后失效)
hostnamctl set-hostname 新的主机名
配置文件修改 #修改后需要重启系统(永久生效)
修改配置文件 /etc/hostname
6.修改字符集(中文乱码)
如何查看系统的字符集
echo $LANG 命令修改 #临时生效,重启系统之后失效
export LANG=zh_CN.UTF-
localectl set-locale LANG=en_US.utf8 #需重新加载配置文件生效 配置文件修改
CentOS-6修改配置文件/etc/syscconfig/i18n
CentOS-7修改配置文件/etc/locale.conf
生效(永久生效)
source 配置文件
7.运行级别
CentOS-6运行级别
如何查看
runlevel 如何修改
init 级别 / 或者修改运行级别配置文件/etc/inittab 运行级别及对应含义
关机状态 (不要把运行级别永久设置为0)
单用户模式 root密码忘记 故障
多用户模式 (不能使用NFS软件)
完全的多用户模式 文本模式 命令行模式
没有使用
桌面模式 X11
重启 (不要把运行级别永久设置为0)
CentOS-7运行级别
如何查看
systemctl get-default 如何修改
systemctl set-default 运行级别 运行级别
[root@oldboy ~]# ll /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. root root Jul : /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. root root Jul : /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. root root Jul : /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. root root Jul : /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. root root Jul : /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. root root Jul : /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. root root Jul : /usr/lib/systemd/system/runlevel6.target -> reboot.target
8.别名
查看系统中已经定义的别名
alias #alias 命令
命令设置 (临时生效,重启系统之后失效)
alias rm=' echo rm command bny'
配置文件修改
vim /etc/profile| /etc/bashrc (别名所有用户可用)#国法
vim ~/.bashrc| ~/.bash_profile(别名当前用户可用)#家规
生效(永久生效)
source 配置文件名
取消别名
unalias 有别名的命令
9.环境变量
如何查看系统已经存在的环境变量
env
命令设置(临时生效,重启系统之后失效)
export TEST= #环境变量统一大写(普通变量随意),名称不要与系统中已经定义好的变量冲突
查看
echo $TEST
配置文件定义
vim /etc/profile(所有用户可用)#国法
vim ~/.bash_profile(当前用户可用)#家规
生效(永久生效)
source 配置文件
取消环境变量
unset TEST
对系统的一个小优化
cat >>/etc/profile.d/color.sh<<"EOF"
alias ll='ls -l --color=auto --time-style=long-iso'
PS1='\[\e[32;1m\][\u@\h \W]\$ \[\e[0m\]'
EOF
source /etc/profile
10. /usr目录的重要知识介绍
/usr/local/:编译安装软件默认的位置路径
/usr/src:存放源码文件的目录
yum
yum install -y tree xxxx #安装软件
yum grouplist #查看已安装的软件包
yum groupinstall #安装指定的软件包
yum provides #查询命令属于哪个软件包
yum remove sl -y #删除一个软件包
rpm
-ivh rpm –ivh #软件包
-e rpm –e #卸载软件包
-qa rpm –qa #查询所有软件包
-ql rpm –ql #查看软件包里的文件列表
-qf rpm –qf #查询命令或文件属于哪个软件包
-qc rpm -qc #查询软件的主配置文件
编译安装三部曲
./conflgure #编译参数选项
make #开始编译
make install #开始安装
11. /var目录下的路径知识
/var/log #记录系统及软件运行信息文件所在的目录
/var/log/messages #系统级别日志文件
/var/log/secure #用户登录信息日志文件
/var/log/dmesg #记录硬件信息加载情况的日志文件
12. /proc目录下的重要路径知识
/proc/meminfo #系统内存信息
/proc/cpuinfo #关于处理器的信息,如类型,厂家,型号,性能等
/proc/loadavg #系统负载信息,uptime的结果
/proc/mounts #已加载的文件系统的列表
13. /dev目录下的路径知识
/dev/sd* #磁盘设备
/dev/sr0或者/dev/cdrom #光驱设备文件
/dev/zero #写0设备,作用:.清空磁盘数据 .产生空设备文件
/dev/null #黑洞设备,作用:销毁操作系统输出信息使用