目录结构

逻辑上所有的目录都在一个最高级别的根目录“/“下,根(/)目录是所有目录的起始点,其下面的子目录是一个层次,(树状结构)。但是这些目录可以分布在不同的硬盘分区甚至不同的设备上。所有的目录内容按照类别组织。例如:一个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,这个文件系统文件是不可或缺的更改参数