一.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-4552-a7fe-af1925bd4d2f #网卡uuid克隆虚拟机需要删除。 HWADDR=00:0c:29: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-8 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 关机状态 (不要把运行级别永久设置为0) 1 单用户模式 root密码忘记 故障 2 多用户模式 (不能使用NFS软件) 3 完全的多用户模式 文本模式 命令行模式 4 没有使用 5 桌面模式 X11 6 重启 (不要把运行级别永久设置为0)
CentOS-7运行级别
如何查看 systemctl get-default 如何修改 systemctl set-default 运行级别 运行级别 [root@oldboy ~]# ll /usr/lib/systemd/system/runlevel*.target lrwxrwxrwx. 1 root root 15 Jul 23 17:05 /usr/lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Jul 23 17:05 /usr/lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Jul 23 17:05 /usr/lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Jul 23 17:05 /usr/lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Jul 23 17:05 /usr/lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Jul 23 17:05 /usr/lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Jul 23 17:05 /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=123 #环境变量统一大写(普通变量随意),名称不要与系统中已经定义好的变量冲突 查看 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设备,作用:1.清空磁盘数据 2.产生空设备文件 /dev/null #黑洞设备,作用:销毁操作系统输出信息使用