目录结构
逻辑上所有的目录都在一个最高级别的根目录“/“下,根(/)目录是所有目录的起始点,其下面的子目录是一个层次,(树状结构)。但是这些目录可以分布在不同的硬盘分区甚至不同的设备上。所有的目录内容按照类别组织。例如:一个linux下的应用程序,它的可执行程序在/usr/bin,而它的数据文件和帮助在/usr/share下,运行时加载的配置文件和服务启动命令却在/etc下。
2.1 FHS(Filesystem hierarchy standard ,Linux配置标准)
第一层是“/“目录下的各个目录应该放什么文件数据,例如:/etc目录下应放置的配置文件,/bin和/sbin应该放置程序命令等。第二层是针对/usr和/var这两个目录的子目录来定义。例如:/var/log下放置系统日志文件。
主要目的:
希望用户可以了解到已安装软件通常放置于哪个目录下
重点:
规范每个特定目录下应该要放置什么样的数据
可分享(shareable) | 不可分享的(unshareable) | |
不可变(static) | /usr(软件放置处) | /etc(配置文件) |
/opt(第三方软件) | /boot(开机与内核文件) | |
可变动的(variable) | /var/mail(用户邮件信箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
可分享的:可以分享给网络上的其他主机,执行文件与用户邮件等。需挂载使用
不可分享的:仅与本身机器有关的,设备文件或者与程序有关的socket
不变的:有些数据是不会经常变动的,比如:函数、文件说明文件,主机服务配置
可变动的:经常要修改的数据,登陆文件,新闻组
目录的定义:
/(root,根目录):与开机系统有关
/usr(UNIX software resource):与软件安装/执行有关
/var(variable):与系统动作过程有关
2.2 /根目录(/)的意义与内容
是系统中最重要的目录,所有的目录都是由根目录衍出来的,同时根目录也与开机 、还原、系统修复等操作有关。由于系统开机都需要特定的开机软件、内核文件、开机所需的程序、函数库等文件数据,若系统出现错误时,根目录也必须包含有能够修复系统的程序才行。所以,建议根目录不要放在一个大的分区当,放入的数据越多,出现错误的机率就越大。
因此,FHS建议:根目录(/)所在的分区应该越小越好,且应用程序所安装的软件最好不要放在与根目录同一个分区当中,保持根目录越小越好。不但性能好,根目录所在的文件也较不容易发生错误。
[演示执行过程]
[root@oldboy ~]# tree -L 2 / >dirlist.txt
[root@oldboy ~]# more dirlist.txt #→当内容比较多时,可一屏一屏的查看。
/
|-- bin
| |-- alsaunmute
| |-- arch
……
根目录下的主要目录:
[root@liubin /]# tree -L 1
.
|-- application
|-- bin
|-- boot
|-- data
|-- dev:@@@→设备文件目录
|-- etc:@@@@@→常用系统及二进制安装包配置文件默认路径和服务启动命令目录
|-- home:@@→普通用户的家目录默认存放目录
|-- lib
|-- lost+found
|-- media
|-- misc
|-- mnt
|-- net
|-- oldboy
|-- opt
|-- proc@@@@@→操作系统运行时,进程信息及内核信息。它不是真正的文件系统
|-- root
|-- sbin@@@→系统管理的命令,root用户可执行命令存放地
|-- selinux
|-- srv
|-- sys
|-- tmp@@@→临时文件目录
|-- usr
`-- var
目录 | 应放置文件内容 |
/bin | 系统有很多放置执行文件的目录.它还放置了在单用户维护模式下还能够被操作的命令.在/bin下面的命令还能够被root与一般的账户所使用.主要有cat.chmod.chown.date.mv.mkdir.cp.bash |
/boot | Liunx内核及引导程序所需要的文件目录。 常见分区:/boot 128M || swap 内存的1.5到2倍 || /根 |
/dev | ***设备文件目录,如: |
/etc | *****常用系统及二进制安装包配置文件默认路径和服务启动命令目录 |
/home | **普通用户的家目录默认存放目录 |
/lib | 库存放目录 |
/lost+found | 在ext3文件系统中,当系统意外崩溃或机器发生意外关机,会产生一结文件碎片在这里.当系统在开机启动.当系统发生问题,可能会有文件被移动到这个目录中,可能需要用手工的方式来修复,或移动到文件原来的位置上. |
/mnt | 一般是用于临时挂载存储设备的挂载目录的,如有cdrom,u盘等目录 |
/opt | 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过./configure –prefix=/opt/目录,非必须这样,视习惯而定 |
/proc | *****操作系统运行时,进程信息及内核信息(比如CPU,硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统 proc的挂载目录,Proc并不是真正的文件系统,它的定义可以参见/etc/fstab. |
/root | Linux超级权限用户root的家目录 |
/sbin | 大多是涉及系统管理的命令存放,是超级权限用户root的可执行命令存放地, |
/tmp | ***临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的,权限比较特殊。/var/tmp目录和这个目录相似 [root@liubin /]# ll -ld /tmp/ drwxrwxrwt 5 root root 4096 Nov3 16:32 /tmp/ ==>粘滞位? |
/usr | 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版本官方提供的软件包时,大多数安装在这个里。如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts,帮助目录/usr/share/man或/usr/share/doc,普通用户可执行文件目录/usr/bin或/usr/local/sbin或/usr/X11R6/bin,比如/usr/sbin或/usr/X11R6/sbin或/usr/locl/sbin等;还有程序的头文件存放目录/usr/include. |
/var | ***这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log这是用来存放系统日志的目录,系统日志路径/var/log/messages./var/www目录定义apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如mysql的,以及mysql数据库的存放地 |
重点记住:
2.2.1 一级目录:
/proc #→存放系统运行信息目录
目录 | 说明(*号多少表示重要程度) |
/proc | 虚拟目录,是内存的映射 |
/proc/version | 内核版本 |
/proc/sys/kernel | 系统内核功能 |
/proc/cpuinfo | 关于处理器的信息,如类型、厂家、型号和性能等***** |
/proc/devices | 当前运行内核所配置的所有设备清单 |
/proc/dma | 当前正在使用的DMA通道 |
/proc/filesystems | 当前运行内核所配置的文件系统 |
/proc/interrupts | 正在使用的中断,和曾经有多少个中断。***** |
/proc/ioports | 当前正在使用的I/O端口 |
/proc/loadavg | 系统负载信息,uptime的结果***** |
操作系统运行时,进程信息及内核信息(比如CPU,硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统 proc的挂载目录,Proc并不是真正的文件系统,它的定义可以参见/etc/fstab.
[批量执行命令]
cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/loadavg
cat /proc/mounts
[演示执行过程]
[root@liubin ~]# cat /proc/cpuinfo#→查看CPU信息
CPU信息
[root@liubin ~]# cat /proc/meminfo#→查看内存信息
内存信息
[root@liubin ~]# cat /proc/loadavg #→查看负载,监控系统的繁忙程度
0.00 0.00 1/115 8941 #→1分钟,5分钟,15分钟
[root@liubin oldboy]# cat /proc/mounts#→查看系统有哪些挂载
……
/dev/cdrom /mnt/vcdrom iso9660 ro 0 0#→可以在这里看出,我有个CD挂载在/mnt/vcdrom
/dev/loop0 /mnt/vcdrom iso9660 ro 0 0
……
[root@bin tools]# uptime
04:44:51 up4:44,2 users,load average: 0.00, 0.00, 0.00
/sbin #→系统管理的命令存放
大多是涉及系统管理的命令存放,是超级权限用户root的可执行命令存放地。
[root@liubin ~]# which fdisk#→查看命令的路径
/sbin/fdisk
[root@liubin sbin]# ll |grep 'chkconfig'#→在这里我们用grep在/sbin中过渡出chkconfig命令
-rwxr-xr-x 1 root root46256 Jan 272010 chkconfig
/usr #→(UNIX software resource UNIX操作系统软件资源)系统存放程序的目录
/usr/local 相于C盘,C:\windows\ 我们一般喜欢把程序装其中
这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。
Linux发行版本官方提供的软件包时,大多数安装在这个里。如:
有涉及服务器配置文件的,会把配置文件安装在/etc目录中。
/usr目录下包括涉及字体目录/usr/share/fonts,
帮助目录/usr/share/man或/usr/share/doc,
普通用户可执行文件目录/usr/bin或/usr/local/sbin或/usr/X11R6/bin,比如/usr/sbin或/usr/X11R6/sbin或
/usr/locl/sbin等;/usr/bin与/bin不同之处?(是否与开机过程有关)
程序的头文件存放目录/usr/include.
[root@liubin sbin]# ll /usr/
total 140
drwxr-xr-x3 root root4096 Oct 30 05:18 X11R6#→x window系统重要数据所放处
drwxr-xr-x2 root root 20480 Nov3 13:24 bin #→绝大部分的用户可使用的命令。
drwxr-xr-x2 root root4096 May 112011 etc#→服务器配置文件
drwxr-xr-x2 root root4096 May 112011games
drwxr-xr-x6 root root4096 Oct 30 05:19include#→程序头文件存放目录
drwxr-xr-x6 root root4096 Oct 30 05:19kerberos
drwxr-xr-x 48 root root 20480 Oct 30 06:29lib#→各种软件的函数库、目标文件等等
drwxr-xr-x8 root root4096 Oct 30 06:29libexec
drwxr-xr-x 11 root root4096 Oct 30 05:17local#→系统管理员在本机自行下载的软件。
drwxr-xr-x2 root root 12288 Oct 30 06:29sbin#→sbin、bin都是存放命令
drwxr-xr-x 64 root root4096 Oct 30 05:20share #→帮助目录
drwxr-xr-x4 root root4096 Oct 30 05:17 src#一般源码就放这。Linux源码建议放:/usr/src/linux下
lrwxrwxrwx1 root root10 Oct 30 05:17 tmp -> ../var/tmp
[root@liubin sbin]#
/var#→常态性变动的文件
目录 | 说明 |
/var | 日志文件 |
/var/log | 各种系统日志存放地 |
/var/log/messages | *****系统信息默认日志文件非常重要。按周自动轮循 |
/var/log/secure | ****记录登入系统存取信息的文件,按周自动轮循,例如pops,ssh,telnet,ftp等都会记录在此 |
/var/log/wtmp | 记录登陆者信息的文件,last |
/var/spool /var/spool/cron/root | *****定时任务crontab默认目录,按用户名命名的文件 |
/var/spool/mail | 系统用户邮件存放目录 |
/var/spool/clientqueue | ***临时邮件目录,有很多原因会导致这个目录碎文件很多,比如crontab命令不加>/dev/null等 |
[演示执行过程]
[root@liubin var]# tree -L 1
.#→本目录,日志文件
|-- account
|-- cache
|-- db
|-- empty
|-- games
|-- lib
|-- local
|-- lock
|-- log#→各种系统日志存放地
||--messages#→系统信息默认日志文件非常重要。按周自动轮循
||--secure#→记录登入系统存取信息的文件,按周自动轮循
||--wtmp#→记录登入者信息的文件
|-- mail -> spool/mail
|-- nis
|-- opt
|-- preserve
|-- racoon
|-- run
|-- spool#→定时任务crontab默认目录,按用户名命令的文件
||--cron/root#→与spool相同
||--mail#→系统用户邮件存放目录
||--clientqueue#→临时邮件目录
|-- tmp
`-- yp
2.2.2 二级目录
必须要掌握的目录
目录 | 说明(*号多少表示重要程度) |
/etc/sysconfig/network-scripts/ifcfg-eth0 | 配置网络地址及GW等***** |
/etc/resolv.conf | 设置本机的客户端DNS***** |
/etc/hosts | 设定用户IP与名字(或域名)的对应表,相当于本地LAN内DNS **** |
/etc/sysconfig/network | 可以修改机器名及网卡启动等配置 |
/etc/fstab | 记录开机要mount的文件系统 ***** |
/etc/inittab | 设定系统启动时init进程将把系统设置成什么样的runlevel及加载相关的启动文件设置**** |
/etc/exports | 设定NFS系统用的配置文件路径 |
/etc/init.d | 这个目录是用来存放系统或服务器以system V模式启动的脚本,这在以system V模式启动或初始化的系统中常见。比如centos/redhat;***** |
/etc/xinit.d | 如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下。有些系统没有这个目录,比如slackware,有些老的版本也没有。在redhat/fedora中比较新的版本中存在。 |
/etc/profile | 系统全局环境变量配置路径***** |
/etc重要目录总结:
目录 | 说明(*号多少表示重要程度) |
/etc/issue | #→记录用户登录前显示的信息 |
/etc/group | #→设定用户的组名与相关信息*** |
/etc/passwd | #→账户信息***** |
/etc/shadow | #→密码信息 |
/etc/sudoers | #→可以sudo命令的配置文件**** |
/etc/securetty | #→设定哪些终端可以让root登录 |
/etc/login.defs | #→所有用户登陆时的缺省配置 |
/etc/modprobe.conf | #→内核模块额外参数设定 |
/etc/syslog.conf | #→日志设置文件*** |
其他路径知识(了解)
目录 | 说明(*号多少表示重要程度) |
/etc/DIR_COLORS | 设定颜色 |
/etc/host.conf | 文件说明用户的系统如何查询节点名,默认order hosts,bind |
/etc/hosts.allow | 设置允许使用inetd的机器使用 |
/etc/hosts.deny | 设置不允许使用inetd的机器使用 |
/etc/protocols | 系统支持的协议文件 |
/etc/X11 | X window的配置文件 |
网卡的配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0#→配置网络地址及GW等※※※※※
方法1.
#→Eth0:eth表示以太(eth0)类型网卡,0表示第一块网卡,1表示第二块网卡,而ppp0则表示
[root@liubin ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0#→设备名称
HWADDR=00:0c:29:8c:da:5e#→设备硬件地址
ONBOOT=yes#→answer是yes(引导时激活设备)或No(引导时不激活设备)
BOOTPROTO=none #→None,引导时不使用协议;static静态分配地址
NETMASK=255.255.255.0 #→掩码
IPADDR=10.0.0.71#→ip地址
GATEWAY=10.0.0.254 #→网关
TYPE=Ethernet#→类型为以太
[root@liubin /]# /etc/rc.d/init.d/network restart#→重启网卡
Shutting down interface eth0:[OK]#→正在关闭接口eth0:
Shutting down loopback interface:[OK]#→关闭环回接口:
Bringing up loopback interface:[OK]#→设备网络参数:
Bringing up interface eth0:[OK]#→弹出界面eth0
[root@liubin /]# ifconfig#→查看网卡参数
eth0Link encap:EthernetHWaddr 00:0C:29:12:B7:9D
inet addr:10.57.8.46Bcast:10.57.255.255Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fe12:b79d/64 Scope:Link
[root@liubin /]# ifconfig eth0 down#→禁用网卡
[root@liubin /]# ifconfig eth0 up#→启用网卡
方法2.
也可以在开机之后,自动运行:rc.local
将以下命令加入rc.local中,每次开机之前运行:
/sbin/ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up
#配置第一个以太网卡eth0的IP地址,子网掩码,UP起激活作用
/sbin/ifconfig lo 127.0.0.1 up
#配置并激活回环设备lo
/sbin/route add host 127.0.0.1 lo
#让Linux将本地网的信息发送到eth0接口
/sbin/route add net 10.0.0.1 netmask 255.255.255.0 eth0
#指定访问远程网络的缺省网关
/sbin/route default gw 10.0.0.254 eth0
DNS的配置文件:
/etc/resolv.conf #→设置本机的客户端DNS ※※※※※
[root@liubin ~]# cat /etc/resolv.conf
nameserver 202.106.0.20
nameserver 8.8.8.8
#→用文件改,按格式改就好了
Host的配置文件:
/etc/host.conf #→设置主机文件表
可加入如下行:
[root@liubin ~]# vi /etc/hosts
order hosts,bind
multi on
10.57.8.46 webmail.xjtu.edu.cn webmail
第一行表示:查找名称时,首先检查本地hosts文件,然后按/etc/resolv.conf所指定的Nameservers顺序查找。重新启动就可以了。
网卡小结:
目录 | 说明 |
/etc/sysconfig/network- scripts/ifcfg-eth0 | ※※※※※配置网络地址及GW等 |
/etc/resolv.conf | ※※※※※设备配置的客户端DNS |
/eth/hosts | ※※※※※设定用户IP与名字(或域名)的对应表,相当于本地LAN内DNS 类似c:\windows\system32\drivers\etc\hosts,LAN内IP域名解析文件。开发、测试时常用,英文hosts-the statis table lookup for host names. Host的解析在机房的服务器互相调用中也会常用,如门户网站的解析真实案例: Taobao: 172.38.18.23 reltime-search.config-vip.taobao.com 172.65.54.47 tpbk2configslave1.config-host.taobao.com Alibaba: 172.26.58.49 vafd.china.alibaba.com 172.23.54.47 normy1.vip.xyi.cn.alidc.net 当然了,大公司还可能会有内部DNS,来管理大量的解析的记录 |
Windows下的host文件配置:
C:\WINDOWS\system32\drivers\etc\#→LAN内IP域名解析文件
如图2-1
在windows下,在C:\WINDOWS\system32\drivers\etc\host增加路径即可
/etc:
#→包含很多文件,许多网络配置文件也在/etc中
挂载设备的配置文件(/etc/fstab)
/etc/fstab #→记录开机要mount的文件系统※※※※※
[root@liubin ~]# cat /etc/fstab
LABEL=//ext3defaults1 1
LABEL=/boot/bootext3defaults1 2
tmpfs/dev/shmtmpfsdefaults0 0
devpts/dev/ptsdevptsgid=5,mode=6200 0
sysfs/syssysfs defaults0 0
proc/procprocdefaults0 0
LABEL=SWAP-sda2swapswapdefaults
[root@oldboy ~]# df -h
文件系统容量已用可用已用% 挂载点
/dev/sda3 7.5G 2.3G 4.8G 33% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 249M 0 249M 0% /dev/shm
/dev/sdb1 3.0G 81M 2.8G 3% /mfsdata
[root@oldboy ~]# cat /etc/fstab
LABEL=//ext3defaults1 1
LABEL=/boot/bootext3defaults1 2
tmpfs/dev/shmtmpfsdefaults0 0
devpts/dev/ptsdevptsgid=5,mode=6200 0
sysfs/syssysfsdefaults0 0
proc/procprocdefaults0 0
LABEL=SWAP-sda2swapswapdefaults0 0
开机启动文件配置(/etc/inittab)
/etc/inittab
#→设定系统启动时init进程将把系统设置成什么样的runlevel及加载相关的启动文件设置。※※※※
[root@liubin ~]# cat /etc/inittab
……
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
系统服务的启动命令(/etc/init.d)
/etc/init.d
#→这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V模式启动或初始化的系统中常见。比如Centos/RedHat;※※※※※
/etc/init.d目录它包含系统中各种服务的start/stop脚本。
init.d 初始化脚本称之为System V风格初始化,是System V系统传统之一,后来成为一些Unix系统的共同特性的源头。值得一提的是,在/etc目录下可能还包含rc#.d目录,这也是System V风格,#为数字0到6,为系统的运行级别runlevel。可见System V风格影响深远。
init.d目录下脚本的执行方式:
/etc/initi.d/command OPTION
command指服务的命令,比如bluetooth,networking,samba,ssh等等。
OPTION指stop,start,reload,restart,force-reload。
比如重启SSH服务的命令为(执行这个目录下的脚本,需要root用户权限):
$ sudo /etc/init.d/ssh restart
service命令 也是调用这里的服务么?
停止SSH服务: service ssh stop
全局环境变量的配置文件(/etc/profile)
/etc/profile #→系统全局环境变量配置路径※※※※※
[root@liubin ~]# cat /etc/profile
……
unset i
unset pathmunge
export LANG="en_us”#→将LANG改成en_us
用户登陆前显示信息(/etc/issue)
/etc/issue#→记录用户登录前显示的信息
Getty在登陆提示符前的输出信息,通常包括系统的一段短说明或欢迎信息,内容由系统管理员确定
[批量执行命令]
cp /etc/issue /etc/issue.ori
echo "welcome to binzai!!" >> /etc/issue
[演示执行过程]
[root@liubin oldboy]# ls -sl/etc/issue#→-sl:以块的形式列出文件空间
8 -rw-r--r-- 1 root root 47 Feb 252012 /etc/issue#→无意中输入-s,发现文件权限前面多了个8,man了一下
[root@liubin oldboy]# cat /etc/issue#→我们可以通过/etc/issue查看到登陆信息,现在我要改变它
CentOS release 5.8 (Final)
Kernel \r on an \m
[root@liubin oldboy]# cp /etc/issue /etc/issue.ori#→改变配置文件之前,复制一份
[root@liubin oldboy]# ll /etc/iss*#→查看/etc/所有以iss开头的文件
-rw-r--r-- 1 root root 47 Feb 252012 /etc/issue
-rw-r--r-- 1 root root 47 Nov4 22:49 /etc/issue.ori
方法1.
[root@liubin ~]# vim /etc/issue#→我们可以通常vim直接更改
CentOS release 5.8 (Final)
Kernel \r on an \m
welcome to binzai !!
方法2.#→为了简单的输入,我们这里用echo
[root@liubin ~]#echo "welcome to binzai !!" >> /etc/issue # >>重定向符号后面必须带有空格
提示:
只要更改此文件,logout一下,那么在登陆界面立即会更改!!
[新增提示内容]
1.ls新添加-s –r –S参数
[root@liubin ~]# ls –ltr#→按时间进行倒序排序
total 44
-rw-r--r-- 1 root root2893 Oct 30 05:20 install.log.syslog
-rw-r--r-- 1 root root 15639 Oct 30 05:20 install.log
-rw------- 1 root root841 Oct 30 05:20 anaconda-ks.cfg
-rw-r--r-- 1 root root108 Nov3 07:05 root.log
-rw-r--r-- 1 root root0 Nov3 10:04 EOF
[root@liubin ~]# ls –lSr#→按文件空间倒序排序
total 44
-rw-r--r-- 1 root root0 Nov3 10:04 EOF
-rw-r--r-- 1 root root108 Nov3 07:05 root.log
-rw------- 1 root root841 Oct 30 05:20 anaconda-ks.cfg
-rw-r--r-- 1 root root2893 Oct 30 05:20 install.log.syslog
-rw-r--r-- 1 root root 15639 Oct 30 05:20 install.log
[root@liubin ~]# ls –lsr#→按文件块大小倒序[l1]排序
total 44
8 -rw-r--r-- 1 root root108 Nov3 07:05 root.log
8 -rw-r--r-- 1 root root2893 Oct 30 05:20 install.log.syslog
20 -rw-r--r-- 1 root root 15639 Oct 30 05:20 install.log
8 -rw------- 1 root root841 Oct 30 05:20 anaconda-ks.cfg
0 -rw-r--r-- 1 root root0 Nov3 10:04 EOF
[root@liubin ~]# ls -ls #→正常输出与上作比较
total 44
0 -rw-r--r-- 1 root root0 Nov3 10:04 EOF
8 -rw------- 1 root root841 Oct 30 05:20 anaconda-ks.cfg
20 -rw-r--r-- 1 root root 15639 Oct 30 05:20 install.log
8 -rw-r--r-- 1 root root2893 Oct 30 05:20 install.log.syslog
8 -rw-r--r-- 1 root root108 Nov3 07:05 root.log
2.>>数据流重定向
将某个命令执行后应该要出现在屏幕上的数据传输到其他地方,例如文件或设备之类。
command |
file |
File/device |
File/device |
Standard input |
Standard output |
Standard error |
a.标准输入(stdin)
代码为0 ,使用< 或<<
b.标准输出(stdout)
代码为1,使用> 或>>
c.标准错误输出(srderr)
代码为2,使用2>或>>
用户组相关信息(/etc/group)
/etc/group#→设定用户的组名与相关信息※※※
类似/etc/passwd ,但是不是用户而组
用户密码相关(/etc/passwd)
/etc/passwd#→帐号信息 ※※※※※
用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息
看看/etc/passwd文件里面到底是什么?
[root@liubin ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
….(省略)..
liubin:x:500:500::/home/liubin:/bin/bash#→每一行都是一个账户,我们系统有30多个账户
太多了,看看到底有多少行呢?
[root@liubin ~]# cat -n /etc/passwd |tail -1|cut -f1#→有三种方法在这里,我记住了第一个,最麻烦的
[root@liubin ~]# sed -n "$=" /etc/passwd
[root@liubin ~]# sed -n '$=' /etc/passwd
[root@liubin ~]# wc -l /etc/passwd
33 /etc/passwd
详细解析/etc/passwd
1.系统账号:系统必须有的账号。例:bin、nobody :系统正常运行所需要的
2.查看账号:
Root :x:0:0:root:/root:/bin/bash
liubin:x: 500:500::/home/liubin:/bin/bash
[1][2][3] [4][5][6][7]#→一共有七部分,每部分用‘:’分隔
[1]账号名称:对应的UID(文件的特殊权限:SUID,SGID,Sticky bit)
[2]密码:以前linux密码直接存在该文件中,现在存到/etc/shadow中,后面者是用x表示。!表示不用密码登录。别忘记我们在做系统优化时,已经把这一项屏蔽咯!!
[3]UID:就是用户识别码(ID)
0:账户是管理员身份
1~499:保留给系统(系统服务使用)
500~65535:一般用户
[4]GID:与/etc/group文件有关,就是用户初始化组的ID
[5]用户信息说明栏:说明是哪个用户,比如root
[6]家目录:用户主目录
[7]shell:shell脚本,一般默认都是bash
用户密码相关信息(/etc/shadow)
/etc/shadow#→密码信息
在安装了影子口令软件的系统上的影子文件。影子口令文件将/etc/passwd文件中的加密口令移动到/etc/shadow中,而后者只对root可读。这使破译口令更困难
解析/etc/shadow文件
[root@liubin ~]# cat /etc/shadow
root:$1$SF1cTOfX$LEunn0qEvHTfXaQENEzVO/:15642:0:99999:7:::
liubin:$1$IzRY2Kse$r54nwu4h.ZP9BQopRjoih1:15646:0:99999:7:::
[1][2][3][4][5][6][7][8] [9]
….
[1]账户
[2]密码:可以看到已经加密了哦。*、!表示这个账户不会用来登录
[3]最近更改密码的日期:15646
[4]密码不可更改的天数:0
[5]密码需要重新更改的天数:99999
[6]密码更改期限前的警告日期:7
[7]密码过期的宽限时间::
[8]账户失效时间::
[9]保留:
如果我把密码清除了,是不是就不要密码登陆了?
[root@liubin ~]# vim /etc/shadow#→发现此文件是只读的,那我们来修改一下权限吧
[root@liubin ~]# ls -al /etc/shadow
-r-------- 1 root root 1007 Nov3 07:24 /etc/shadow
[root@liubin ~]# chmod 600 /etc/shadow#→使用chmod 将权限修改
[root@liubin ~]# ll -al /etc/shadow#→查看已经修改了
-rw------- 1 root root 1007 Nov3 07:24 /etc/shadow
[root@liubin ~]# vim /etc/shadow
abc::15646:0:99999:7:::
[root@liubin ~]# source /etc/shadow#→将此文件重新运行一下
#→用abc登陆,然后可以看到不用密码哦!!!!
/etc内其它目录应用
1)/etc/sudoers
/etc/sudoers#→可以sudo命令的配置文件 ※※※※
记录可以用superuser的身份来执行一些工作
2)/etc/securetty
/etc/securetty#→设定哪些终端可以让root登录
确认安全终端,即哪个终端允许root登陆,一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权。
3)/etc/login.defs
/etc/login.defs#→所有用户登录时的缺省配置
4)/etc/modprobe.conf
/etc/modprobe.conf#→内核模块额外参数设定
5)/etc/syslog.conf
/etc/syslog.conf #→日志设置文件※※※
6)/etc/xinit.d
无人值守安装
/etc/xinit.d
#→如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下。有些系统没有这个目录,比如
Slackware,有些老的版本也没有。在Rehat/Fedora中比较新的版本中存在。
[root@liubin oldboy]# ll /etc/init.d
lrwxrwxrwx 1 root root 11 Oct 22 23:28 /etc/init.d -> rc.d/init.d
7)/etc/exports
/etc/exports #→设定NFS系统用的配置文件路径
本机要给别人的Mount的文件系统,典型NFS系统所存在的档案,TCP/IP for OS/2若要使用network file system,而要把自己的filesystem 让别人mount,这个文件系统文件是不可或缺的更改参数