linux系统日志分析

linux系统日志分析
linux系统日志分析

RedHat系统日志分析

其实,可以说成是监控系统的记录,系统一举一动基本会记录下来。这样由于信息非常全面很重要,通常只有root 可以进行视察!通过登录文件(日志文件)可以根据屏幕上面的错误讯息与再配合登录文件的错误信息,几乎就可以解决大部分的Linux 问题!所以日志文件异常重要,作为一个合格的linux系统工程师,日志文件是必要熟练掌握的部分。

常见的几个登录文件有:

/var/log/secure:记录登入系统存取数据的文件,例如pop3, ssh, telnet, ftp 等都会被记录;/var/log/wtmp:记录登入者的讯息数据,由于本文件已经被编码过,所以必须使用last指令来取出文件的内容;

/var/log/messages:尤为重要,几乎发生的错误讯息(或是重要信息)都会被记录在此;

/var/log/boot.log:记录开机或者是一些服务启动的时候,所显示的启动或关闭讯息;

/var/log/maillog 或/var/log/mail/*:纪录邮件存取或往来( sendmail 与pop3 )的使用者记录;/var/log/cron:记录crontab 这个例行性服务的内容的。

/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log:分别是几个不同的网络服务的记录文件!

登录文件的纪录程序之一:syslogd

通常经过syslog 而记录下来的数据主要有:

事件发生的日期与时间;

发生此事件的主机名称;

启动此事件的服务名称(如samba, xinetd 等) 或函式名称(如libpam ..);

该讯息数据内容

syslogd的daemon配置文件:/etc/syslog.conf

内容语法是这样的:

服务名称[.=!]讯息等级讯息记录的文件名或装置或主机

# 例如底下:

https://www.360docs.net/doc/c813213786.html, /var/log/maillog_info

服务名称:该服务产生的讯息会被纪录的意思。syslog 认识的服务主要有底下这些:auth, authpriv:主要与认证有关的机制,例如telnet, login, ssh 等需要认证的服务都是使用此一机制;

cron:例行性命令cron/at 等产生讯息记录的地方;

daemon:与各个daemon 有关的讯息;

kern:核心(kernel) 产生讯息的地方;

lpr:打印相关的讯息!

mail:只要与邮件收发有关的讯息纪录都属于这个;

news:与新闻群组服务器有关的东西;

syslog:syslogd 这支程序本身产生的信息啊!

user, uucp, local0 ~ local7:与Unix like 机器本身有关的一些讯息。

讯息等级

系统将讯息分为七个主要的等级,依序是由不重要排列到重要讯息等级:

info:仅是一些基本的讯息说明而已;

notice:比info 还需要被注意到的一些信息内容;

warning 或warn:警示讯息,可能有问题,但是还不至于影响到某个daemon 运作。

err 或error :一些重大的错误讯息,这就要去找原因了。

crit:比error 还要严重的错误信息,crit 是临界点(critical) 的缩写,已经很严重了!alert:警告警告,已经很有问题的等级,比crit 还要严重!

emerg 或panic:疼痛等级,意指系统已经几乎要当机的状态!很严重的错误信息了。

除了这些有等级的讯息外,还有两个特殊的等级,那就是debug(错误侦测等级) 与none (不需登录等级) 两个,当要作一些错误侦测,或者是忽略掉某些服务的信息时,就用这俩!在讯息等级之前还有[.=!] 的连结符号!他代表的意思是:

. :代表比后面还要高的等级(含该等级)都被记录下来的意思,例如:https://www.360docs.net/doc/c813213786.html, 代表只要是mail 的信息,而且该信息等级高于info (含info )时,就会被记录下来。

.=:代表所需要的等级就是后面接的等级而已!

.!:代表不等于。

日志文件记录的文件名或装置或主机常见的放置处:

文件的绝对路径:通常就是放在/var/log 里头的文件!

打印机或其它:例如/dev/lp0 这个打印机装置(即使被黑客可以删除掉日志文件,但是最终删除不了打印出来的日志信息)

使用者名称:显示给使用者!

远程主机:例如@https://www.360docs.net/doc/c813213786.html,,要对方主机也能支持才行!

*:代表目前在线的所有人,类似wall 这个指令的意义!

看看在尚未开启网络服务的情况下来自Fedora Core Release 4 的相关资料

[root@linux ~]# vi /etc/syslog.conf

#kern.* /dev/console

# 只要是kernel 产生的讯息,全部都送到console 去!默认是关闭的。

*.info;mail.none;authpriv.none;cron.none /var/log/messages

# 在已知各服务的讯息中,不要记录到这个文件中,把已知的服务记录到单独的日志文件中去,方便日后查询,否则messages这个文件就太混乱了。这个文件非常重要,所有未知的信息都会被记录在这个文件中,所以有问题,找这个文件就八九不离十了。

authpriv.* /var/log/secure

# 这个就是经过一些身份确认的行为之后,需要记录身份的文件。

mail.* -/var/log/maillog

# 只要跟mail 有关的(不论是pop3 还是sendmail )都会被纪录到这个文件!

cron.* /var/log/cron

#例行性命令相关的。

*.emerg *

# 任何时候发生的警告讯息都会显示给在线的所有人!那个*就是目前在线的所有人。uucp,news.crit /var/log/spooler

# 记录新闻错误高于crit 的等级的信息,写入spooler 当中!

local7.* /var/log/boot.log

# 将开机的当中的讯息写入/var/log/boot.log 中!

每个版本的syslog.conf 差异是很大的,所以,每个登录文件记录的数据其实不很固定。例:让所有的信息都额外写入到/var/log/admin.log!

[root@linux ~]# vi /etc/syslog.conf

*.info /var/log/admin.log 》》如果服务器硬盘容量够大,这么做也不失为一个良策。

[root@linux ~]# /etc/init.d/syslog restart

[root@linux ~]# ll /var/log/admin.log

-rw------- 1 root root 122 Oct 23 22:21 /var/log/admin.log 》》注意权限

一台主机管理多台主机登录文件

# 1. 先取得port number 的信息!

[root@linux ~]# grep 514 /etc/services

syslog 514/udp 》》syslog的固定端口

# 注意,/etc/services 里面必须要存在这一行才行,否则自行手写!

# 2. 修改syslogd 的启动配置文件

[root@linux ~]# vi /etc/sysconfig/syslog

#SYSLOGD_OPTIONS="-m 0" 改成底下这样子

SYSLOGD_OPTIONS="-m 0 -r"

# 3. 重新启动与观察syslogd !

[root@linux ~]# /etc/init.d/syslog restart

[root@linux ~]# netstat -tlunp

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

udp 0 0 0.0.0.0:514 0.0.0.0:* 24314/syslogd

Linux 主机已经可以接收来自其它主机的登录信息了!client 端的设定就简单了!只要指定某个信息传送到这部主机即可!比如,登录文件主机IP 为192.168.1.100 ,而client 端希望所有的数据都送给主机,可以在/etc/syslog.conf 里面新增这样的一行:

[root@linux ~]# vi /etc/syslog.conf

*.* @192.168.1.100

未来主机上面的登录文件当中,每一行的主机名称就会显示来自不同主机的信息了。

登录文件服务程序之二,轮滚(logrotate):

对于Linux 的系统安全来说,日志文件是极其重要的工具。系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。

对于Linux 的系统安全来说,日志文件是极其重要的工具。

系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。logrotate 还可以用来备份日志文件,本篇将通过以下几部分来介绍日志文件的管理:1、logrotate 配置

2、缺省配置logrotate

3、使用include 选项读取其他配置文件

4、使用include 选项覆盖缺省配置

5、为指定的文件配置转储参数

一、logrotate 配置

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过cron 程序来执行。

logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。

logrotate 的配置文件是/etc/logrotate.conf。主要参数如下表:

参数功能

compress通过gzip 压缩转储以后的日志

nocompress不需要压缩时,用这个参数

copytruncate用于还在打开中的日志文件,把当前日志备份并截断nocopytruncate备份日志文件但是不截断

create mode owner group 转储文件,使用指定的文件模式创建新的日志文件

nocreate不建立新的日志文件

delaycompress 和compress 一起使用时,转储的日志文件到下一次转储时才压缩nodelaycompress覆盖delaycompress 选项,转储同时压缩。

errors address专储时的错误信息发送到指定的Email 地址

ifempty即使是空文件也转储,这个是logrotate 的缺省选项。

notifempty如果是空文件的话,不转储

mail address把转储的日志文件发送到指定的E-mail 地址

nomail转储时不发送日志文件

olddir directory转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

noolddir转储后的日志文件和当前日志文件放在同一个目录下

prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行

postrotate/endscript在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

daily指定转储周期为每天

weekly指定转储周期为每周

monthly指定转储周期为每月

rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和~

size size 当日志文件到达指定的大小时才转储,Size 可以指定bytes (缺省)以及KB (sizek)或者MB (sizem).

二、缺省配置logrotate

logrotate 缺省的配置/etc/logrotate.conf。

Red Hat Linux 缺省安装的文件内容是:

# see “man logrotate” for details

# rotate log files weekly

weekly

# keep 4 weeks worth of backlogs

rotate 4

# send errors to root

errors root

# create new (empty) log files after rotating old ones

create

# uncomment this if you want your log files compressed

#compress

1

# RPM packages drop log rotation information into this directory

include /etc/logrotate.d

# no packages own lastlog or wtmp ?we&aposll rotate them here

/var/log/wtmp {

monthly

create 0664 root utmp

rotate 1

}

/var/log/lastlog {

monthly

rotate 1

}

# system-specific logs may be configured here

缺省的配置一般放在logrotate.conf 文件的最开始处,影响整个系统。在本例中就是前面12行。

第三行weekly 指定所有的日志文件每周转储一次。

第五行rotate 4 指定转储文件的保留4份。

第七行errors root 指定错误信息发送给root。

第九行create 指定logrotate 自动建立新的日志文件,新的日志文件具有和

原来的文件一样的权限。

第11行#compress 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。

三、使用include 选项读取其他配置文件

include 选项允许系统管理员把分散到几个文件的转储信息,集中到一个

主要的配置文件。当logrotate 从logrotate.conf 读到include 选项时,会从指定文件读入配置信息,就好像他们已经在/etc/logrotate.conf 中一样。

第13行include /etc/logrotate.d 告诉logrotate 读入存放在/etc/logrotate.d目录中的日志转储参数,当系统中安装了RPM 软件包时,使用include 选项十分有用。RPM软件包的日志转

储参数一般存放在/etc/logrotate.d 目录。

include 选项十分重要,一些应用把日志转储参数存放在/etc/logrotate.d 。

典型的应用有:apache, linuxconf, samba, cron 以及syslog。

这样,系统管理员只要管理一个/etc/logrotate.conf 文件就可以了。

四、使用include 选项覆盖缺省配置

当/etc/logrotate.conf 读入文件时,include 指定的文件中的转储参数将覆盖缺省的参数,如下例:

# linuxconf 的参数

/var/log/htmlaccess.log

{ errors jim

notifempty

nocompress

weekly

prerotate

/usr/bin/chattr -a /var/log/htmlaccess.log

endscript

postrotate

/usr/bin/chattr +a /var/log/htmlaccess.log

endscript

}

/var/log/netconf.log

{ nocompress

monthly

}

在这个例子中,当/etc/logrotate.d/linuxconf 文件被读入时,下面的参数将覆盖/etc/logrotate.conf中缺省的参数。

Notifempty

errors jim

五、为指定的文件配置转储参数

经常需要为指定文件配置参数,一个常见的例子就是每月转储/var/log/wtmp。为特定文件而使用的参数格式是:

# 注释

/full/path/to/file

{

option(s)

}

下面的例子就是每月转储/var/log/wtmp 一次:

#Use logrotate to rotate wtmp

/var/log/wtmp

{

monthly

rotate 1

}

六、其他需要注意的问题

1、尽管花括号的开头可以和其他文本放在同一行上,但是结尾的花括号必须单独成行。

2、使用prerotate 和postrotate 选项

下面的例子是典型的脚本/etc/logrotate.d/syslog,这个脚本只是对

/var/log/messages 有效。

/var/log/messages

{

prerotate

/usr/bin/chattr -a /var/log/messages

endscript

postrotate

/usr/bin/kill -HUP syslogd

/usr/bin/chattr +a /var/log/messages

endscript

}

第一行指定脚本对/var/log messages 有效

花ê哦阅诓康慕疟驹诵杏? /var/log/messages

prerotate 命令指定转储以前的动作/usr/bin/chattr -a 去掉/var/log/messages文件的“只追加”属性endscript 结束prerotate 部分的脚本postrotate 指定转储后的动作

/usr/bin/killall -HUP syslogd

用来重新初始化系统日志守护程序syslogd

/usr/bin/chattr +a /var/log/messages

重新为/var/log/messages 文件指定“只追加”属性,这样防治程序员或用户覆盖此文件。

最后的endscript 用于结束postrotate 部分的脚本

3、logrotate 的运行分为三步:

判断系统的日志文件,建立转储计划以及参数,通过cron daemon 运行下面的代码是Red Hat Linux 缺省的crontab 来每天运行logrotate。

#/etc/cron.daily/logrotate

#! /bin/sh

/usr/sbin/logrotate /etc/logrotate.conf

4、/var/log/messages 不能产生的原因:

这种情况很少见,但是如果你把/etc/services 中的514/UDP 端口关掉的话,这个文件就不能产生了。

小结:本文通过对Red Hat 系统上典型的logrotate 配置例子的介绍,详细说明了logrotate 程序的应用方法。希望对所有Linux系统管理员有所帮助。

Logrotate补充:

所谓的logrotate ,就是将旧的log 文件更名,然后建立一个空的log 文件,如此一来,新的log 文件将从零开始记录,然后只要将旧的log 文件留下一段时间!旧的纪录保存了一段时间没有问题,那么就可以让系统自动的将他删掉,否则占用硬盘空间。如图比如规定了message日志文件轮滚3次:

最初的日志文件message

轮滚一次后message message1

轮滚二次后message message1 message2

轮滚三次后message message1 message2 message3

删除(如果再次轮滚,message3就会被删除,而message2就会变成message3,且系统会新建立一个message)

注意,相同颜色的mssage表示的是一个内容的文件,只不过每次轮滚他的名字后面会改一次数字。

logrotate 的配置文件

/etc/logrotate.conf

/etc/logrotate.d/

注意!logrotate.conf 才是主要的参数文件,logrotate.d 是一个目录,该目录里面的所有文件都会被主动的读入/etc/logrotate.conf 当中来进行!另外,在/etc/logrotate.d/ 里面的文件中,如果没有规定到的一些细部设定,则以/etc/logrotate.conf 的规定来指定为默认值![root@linux ~]# vi /etc/logrotate.conf

# 底下是"logrotate 的预设值,如果个别的文件设定了其它的参数,那么将以个别的文件设定为主,若该文件没有设定到的参数,则以这个档案的内容为默认值!

Weekly 预设每个礼拜对登录文件进行一次rotate 的工作

rotate 4 保留四个登录文件!

create 是否建立新的登录文件来记录!

#compress rotate 之后的登录文件,是否压缩,通常是不要压缩啦,压缩登录文件扩展名会变成messages.1.gz !系统负载不大,且日志比较大,可以考虑压缩。

include /etc/logrotate.d 》》将底下这个目录中的所有文件都读进来执行rotate 的工作!

/var/log/wtmp {

monthly

create 0664 root utmp

rotate 1

}

。。。省略。。。

# 在logrotate.conf 文件当中,只有这个数据是在记载如何对登录文件进行轮替的!这个登录文件记载的就是使用login 登入系统时的使用者状态,last就是读自/var/log/wtmp 当中记录的数据!整个段落的意义是:

# 1. 每个月进行一次log rotate 的工作;

# 2. 将文件的权限设定为664 ,且拥有者为root ,群组为utmp;

# 3. 仅保存前一个月的rotate 备份!可以修改大一点

[root@linux ~]# vi /etc/logrotate.d/syslog

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler

/var/log/boot.log /var/log/cron {

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript

}

设定的项目与前面提到的相同,并且可加入轮替前(pre) 与后(post) 的一些特殊执行的指令!这个设定需与sharedscripts .... endscript 设定合用才行;

prerotate:启动logrotate 之前进行的指令,例如修改登录文件的属性等动作;postrotate:做完logrotate 之后启动的指令,例如重新启动(kill -1 或kill -HUP) 某个服务!

这一段设定值说明的是:『/var/log 目录内的messages, secure, mailog, spooler, boot.log 及cron 这六个文件,每个礼拜进行一次轮替,且保留四个登录档,此外,在轮替进行完毕之后,执行syslog 的重新启动』因为没有提到该设定项目,所以就用/etc/logrotate.conf 内的默认值来作用

解决charrt+a与lorotate矛盾的方法:

矛盾处:a属性会让文件只能添加数据,不能修改文件名,不能删除(防止日志文件被入侵,被恶意删除),而lorotate需要修改文件的文件名。

解决办法就是利用prerotate 与postrotate 来进行登录文件轮替前、后所需要作的动作!可以这样修改一下这个文件!

[root@linux ~]# vi /etc/logrotate.d/syslog

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler

/var/log/boot.log /var/log/cron {

sharedscripts

prerotate

/usr/bin/chattr -a /var/log/messages

endscript

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

/usr/bin/chattr +a /var/log/messages

endscript

}

特别留意,/bin/kill -HUP ...这一行的目的在于将系统的syslogd重新以其参数( syslog.conf )的资料读入一次!也可以想成是reload 的意思!由于建立了一个新的空的纪录文件,如果不执行此一行来重新启动服务,那么记录的时候将会发生错误!另外注意颜色字体部分格式,需要配套书写。

实际测试logrotate 的动作

[root@linux ~]# logrotate [-vf] logfile

参数:

-v :启动显示模式,会显示logrotate 运作的过程喔!

-f :不论是否符合设定文件的数据,强制每个登录文件都进行rotate 的动作!

例:强制进行logrotate 的动作

[root@linux ~]# logrotate -vf /etc/logrotate.conf

# 此命令属于企业危险命令,因为旧的日志对企业安全有很大作用,如果强行轮滚,造成提前删除旧日志文件,可能会有麻烦,所以不要乱用!预设的logrotate 的执行时间就是放在/etc/cron.daily/logrotate 里面的!由于logrotate 的工作已经加入crontab 里了!所以现在每天系统都会自动的查看logrotate !

案例:建立了/var/log/admin.log,想要加上+a属性,要求:

登录文件轮替一个月进行一次;

该登录文件若大于10MB 时,则主动进行轮替,不需要考虑一个月的期限;

保存五个备份文件;

备份文件不要压缩

[root@linux ~]# chattr +a /var/log/admin.log

[root@linux ~]# lsattr /var/log/admin.log

-----a------- /var/log/admin.log

[root@linux ~]# mv /var/log/admin.log /var/log/admin.log.1

mv: cannot move '/var/log/admin.log' to '/var/log/admin.log.1':permission deny

[root@linux ~]# vi /etc/logrotate.d/admin

# This configuration is from lonogo 2009/6/26

/var/log/admin.log {

monthly

size=10M

rotate 5

nocompress

sharedscripts

prerotate

/usr/bin/chattr -a /var/log/admin.log

endscript

sharedscripts

postrotate

/usr/bin/killall -HUP syslogd

/usr/bin/chattr +a /var/log/admin.log

endscript

}

[root@linux ~]# logrotate -v /etc/logrotate.conf

。。省略。。

[root@linux ~]# logrotate -vf /etc/logrotate.d/admin 强行滚一下

....省略....

[root@linux ~]# lsattr /var/log/admin.log* 看看滚后的文件的权限变化了

-----a------- /var/log/admin.log

------------- /var/log/admin.log.1

注意,/etc/syslog.conf 与/etc/logrotate.d/*通常是配合使用,目录下的.d目录下的文件未提及的设置,会参考助.conf配置文件的设置。

分析登录文件

dmesg

[root@linux ~]# dmesg | more

由于系统在开机的过程当中尚未将硬盘mount 上来,所以无法直接将数据直接读到log file 当中去,但是为了除错上面的方便,所以在开机的过程当中的讯息还是要记录下来,这个时候系统就将ram 开了一个小区块来储存这个数据!这个开机记录文件就是:/proc/kmsg!

几乎所有的核心信息都可以使用dmesg 来查阅得到的,例想要知道开机有没有捉到网卡,dmesg | grep 'eth' !

last

[root@linux ~]# last -n number

[root@linux ~]# last -f filename

参数:

-n :last 会读出这个月的数据,若数据量太大,可使用-n 来严格要求显示的笔数。例如20 笔数据:last -n 20 或last -20 均可。

-f :last预设读出/var/log/wtmp,但是我们可以透过-f 读取不同的登录文件信息!

例,将上个月的资料读出,仅读出5笔资料

[root@linux ~]# last -n 5 -f /var/log/wtmp.1

dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00)

dmtsai2 work:0 work Mon Oct 24 14:18 gone - no logout

dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00)

dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00)

dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00)

[root@linux ~]# lastlog

lastlog 只是读出/var/log/lastlog 内的信息. 他会显示目前系统上面的所有账号当中,每个账号最近一次登入的时间!

Linux文件系统分析

Linux文件系统分析 一、什么是文件系统 . 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点;一旦文件系统被挂载。文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如NTFS或FAT;文件系统涉及两个非常独特的事情,目录树或在磁盘或分区上文件的排列;文件系统是基于操作系统的,建立在磁盘媒质上的可见体系结构,例如这种结构对于一个Unix用户来说可以用ls 或其它工具可以看到;文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法;在计算机业,一个文件系统是有组织存储文件或数据的方法,目的是易于查询和存取。文件系统是基于一个存储设备,比如硬盘或光盘,并且包含文件文件物理位置的维护;也可以说文件系统也是虚拟数据或网络数据存储的方法。 二、常见的文件系统 Linux系统核心支持十多种文件系统类型:jfs、 ReiserFS、ext、ext2、ext3、iso9660、xfs、 minx、msdos、umsdos、Vfat、NTFS、Hpfs、Nfs、smb、sysv、proc等。这里我们对最常用的几个文件系统的发展情况和优缺点作详细介绍:ext、ext2、ext3、jsf、、xfs、ReiserFS。一、 ext ext是第一个专门为Linux的文件系统类型,叫做扩展文件系统。它在1992年4月完成的。它为Linux的发展取得了重要作用。但是在性能和兼容性上存在许多缺陷。现在已经很少使用了。二、 ext2 ext2是为解决ext文件系统的缺陷而设计的可扩展的高性能的文件系统。又被称为二级扩展文件系统。它是在1993年发布的,设计者是Rey Card。ext2是Linux文件系统类型中使用最多的格式。并且在速度和CPU利用率上较突出,是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。Ext2 可以支持256字节的长文件名,其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的Intel x86兼容处理器的系统中,簇最大为 4KB, 则单一文件大小上限为 2048GB, 而文件系统的容量上限为 6384GB。尽管Linux可以支持种类繁多的文件系统,但是2000年以前几乎所有的Linux发行版都用ext2作为默认的文件系统。 ext2的缺点:ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data (和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta- data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。另外但由于目前核心 2.4 所能使用的单一分割区最大只有 2048GB,尽管文件系统的容量上限为 6384G但是实际上能使用的文件系统容量最多也只有 2048GB。三、 ext3 ext3是由开放资源社区开发的日志文件系统,主要开发人员是Stephen tweedie。ext3被设计成是ext2的升级版本,尽可能地方便用户从ext2fs向ext3fs迁移。ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性。这个文件系统被称为ext2

(完整版)linux文件系统管理-权限管理实验4报告

实验报告 课程Linux系统应用与开发教程实验名称linux文件系统管理-权限管理(高级设置) 一、实验目的 1、掌握Linux文件系统权限的设置 2、掌握linux用户帐号与组管理 3、掌握linux 文件共享的设置方法 4、掌握linux 文件共享的权限设置方法 二、实验内容 1、使用root帐号通过系统提供的6个虚拟控制台登陆到linux,或在x-windows开启一个终端。 2、完成以下的实验内容 (1)、假设你是系统管理员:现要在公司linux服务器系统中新增一些用户与一个用户组。 ?使用groupadd account 添加一个名为account的组 ?使用useradd -G account acc-user1,(该命令将添加一个用户名为acc-user1的用户, 同时会建立一个与用户名同名的私有组(该私有组为用户的默认组,这个组中只有一个用户名),并把该用户将加入account的标准组,同时,按同样的方法建立acc-user2、acc-user3、acc-user4。 ?建立用户后,请使用x-window中的用户与组管理工具查看用户与组建立情况,检查用户与组的归属情况。 (2)、开启多个控制台,分别使用acc-user1、acc-user2、acc-user3登陆系统(可以在控制台分别登陆,也可以在X-windows中多开几个终端程序,默认使用root登陆,然后使用su命令通过切换用户的方式登陆,其语法为“su - user-name”,提示可以在登陆成功后运行命令“id”查看当前登陆的用户属于哪些组,当前的默认组是什么?) (3)、为account组建立一个公共共享目录/home/account-share,满足以下的权限设定要求,以及设置何种的umask: ?该目录的拥有者为acc-user1,所属组为account。 ?在该目录下建立一个/home/account-share/full-share的子目录,修改该目录的权限,使得account组的成员均能在对该目录有完全控制权限,account组外的其他用户没有任何权限,即account组的成员都可以在该目录下建立文件,同时在该子目录full-share下建立的文件,只有文件建立者有权限删除,并且每个用户在该子目录full-share下建立的文件也能自动与该account组成员可读共享。 ?在/home/account-share/为每个用户建立一个与用户名同名的子目录(如/home/account-share/acc-user1为用户acc-user1的目录,其拥有者为acc-user1,所在的组为account),配置该子目录的拥有者有完全控制权限,而同组用户只能读取,同时在用户在该目录下建立的文件,可供同组用户读。 (4)、考虑完成以上的共享目录权限设置,应注意哪些设置。包括目录的权限,目录的拥有者,目录所在的组,具体文件的权限,umask设置等。 (5)、实验报告应体现出使用不同身份的用户对所配置目录的访问测试过程。 三、实验环境 安装有vmware或visual pc软件的window主机,系统中有提供turbolinux或redhat的硬盘

Linux 0.1.1文件系统的源码阅读

Linux 0.11文件系统的源码阅读总结 1.minix文件系统 对于linux 0.11内核的文件系统的开发,Linus主要参考了Andrew S.Tanenbaum 所写的《MINIX操作系统设计与实现》,使用的是其中的1.0版本的MINIX文件系统。而高速缓冲区的工作原理参见M.J.Bach的《UNIX操作系统设计》第三章内容。 通过对源代码的分析,我们可以将minix文件系统分为四个部分,如下如1-1。 ●高速缓冲区的管理程序。主要实现了对硬盘等块设备进行数据高速存取的函数。 ●文件系统的底层通用函数。包括文件索引节点的管理、磁盘数据块的分配和释放 以及文件名与i节点的转换算法。 ●有关对文件中的数据进行读写操作的函数。包括字符设备、块设备、管道、常规 文件的读写操作,由read_write.c函数进行总调度。 ●涉及到文件的系统调用接口的实现,这里主要涉及文件的打开、关闭、创建以及 文件目录等系统调用,分布在namei和inode等文件中。 图1-1 文件系统四部分之间关系图

1.1超级块 首先我们了解一下MINIX文件系统的组成,主要包括六部分。对于一个360K软盘,其各部分的分布如下图1-2所示: 图 1-2 建有MINIX文件系统的一个360K软盘中文件系统各部分的布局示意图 注释1:硬盘的一个扇区是512B,而文件系统的数据块正好是两个扇区。 注释2:引导块是计算机自动加电启动时可由ROM BIOS自动读入得执行代码和数据。 注释3:逻辑块一般是数据块的2幂次方倍数。MINIX文件系统的逻辑块和数据块同等大小 对于硬盘块设备,通常会划分几个分区,每个分区所存放的不同的文件系统。硬盘的第一个扇区是主引导扇区,其中存放着硬盘引导程序和分区表信息。分区表中得信息指明了硬盘上每个分区的类型、在硬盘中其实位置参数和结束位置参数以及占用的扇区总数。其结构如下图1-3所示。 图1-3 硬盘设备上的分区和文件系统 对于可以建立不同的多个文件系统的硬盘设备来说,minix文件系统引入超级块进行管理硬盘的文件系统结构信息。其结构如下图1-4所示。其中,s_ninodes表示设备上得i节点总数,s_nzones表示设备上的逻辑块为单位的总逻辑块数。s_imap_blocks 和s_zmap_blocks分别表示i节点位图和逻辑块位图所占用的磁盘块数。 s_firstdatazone表示设备上数据区开始处占用的第一个逻辑块块号。s_log_zone_size 是使用2为底的对数表示的每个逻辑块包含的磁盘块数。对于MINIX1.0文件系统该值为0,因此其逻辑块的大小就等于磁盘块大小。s_magic是文件系统魔幻数,用以指明文件系统的类型。对于MINIX1.0文件系统,它的魔幻数是0x137f。

linux总结

1软件通常分为系统软件、应用软件、支撑软件 2 操作系统是用户与计算机硬件之间的界面,它是控制、管理计算机系统内各种硬件和软件资源,有效的组织多道程序运行的系统软件。 3 Linux系统吧计算机系统中的硬件资源和软件资源有机地结合在一起,从而提供丰富的功能,包括:控制硬件、管理资源、提供用户接口,处理输入/输出、监视系统、通信。 4 Linux的优点:1与UNIX系统兼容 2自由软件和源码公开 3 性能高和安全性强 4 便于制定和再开发 5 互操作性高 5 Linux 有俩种版本:核心(Kernel)版本和发行(Distribution)版本 6 Linux核心版本根据约定,若版本号为奇数,则表示该版本加入新内容,但不一定稳定,为测试版本。若版本号为偶数,则表示这是一个可以使用的稳定版本 7 安装红旗Linux需要俩个必备的分区,即一个根文件系统分区(类型为ext3,ext2或reiserfs)和一个交换分区(类型为swap) 8 Linux操作系统支持以下文件类型:普通文件、目录文件、设备文件和符号链接文件。 9 设备文件除了在文件I节点中存放属性信息外,他们不包含任何属性信息外,它不包含任何数据,系统利用它们来标记各个设备驱动器 10 符号链接文件时一种特殊文件,提供对其他文件的参照 11 cp命令将源文件或目录复制到目标文件或目录中 12 rm命令删除文件或目录 13 mv命令对文件或目录重新命令,或者将文件从一个目录移到另一个目录中。 14 wc命令统计指定文件的字节数、字数、行数,并将统计结果显示出来 15 绝对路径名和相对路径名的联系与区别 联系:当为命令指定文件路径名是,要指定俩种路径中一种 区别:绝对路径名总是以斜线字符(/)开头 相对路径不能以斜线字符开头 16 硬链接:建立硬链接时,在别的目录或本目录中增加目标文件的一个目录项,这样的一个文件就登记在多个目录中 17 符号链接(软链接)是将一个路径名链接到一个文件,这些文件是一种特别类型的文件 18 软硬链接的区别:1软链接建立了一个新文件而硬链接没有建立新文件 2 软链接没有硬链接的限制,可以对目录文件建立软链接,也可以在不同文件系统之间建立软链接 19 chgrp命令改变文件或目录所属的用户组 20 chown命令改变某个文件或目录的所有者和所属的组 21 ps命令查看当前系统中运行的进程信息 22 kill命令用来终止一个进程的运行 23 vi编辑器三中工作方式:命令方式、插入方式、ex转义方式 24 退出vi的命令 :wq :ZZ :x :q! 四种 25 执行shell脚本的方式: 1 输入定向到shell脚本 2 以脚本名作为bash 参数 3 将shell脚本的权限设置为可执行 26 名称补全的方法是输入目录或文件名的开头部分,然后按Tab键 27 通配符用于模式匹配(四种 * ? [字符组] !) 27 由双引号括起来的字符除($ ‘ \)均作为普通字符对待

Linux文件系统目录结构的详细解说 1

linux一些重要子目录的解说收藏 /etc/init.d 这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V 模式启动或初始化的系统中常见。比如Fedora/RedHat; /etc/xinit.d 如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下。有些系统没有这个目录,比如Slackware,有些老的版本也没有。在Rehat/Fedora中比较新的版本中存在。 /etc/rc.d 这是Slackware发行版有的一个目录,是BSD方式启动脚本的存放地;比如定义网卡,服务器开启脚本等。 /etc/X11 这是X-Windows相关的配置文件存放地。 /usr/bin 这个目录是可执行程序的目录,普通用户就有权限执行;当我们从系统自带的软件包安装一个程序时,他的可执行文件大多会放在这个目录。比如安装gaim软件包时。相似的目录是/usr/local/bin;有时/usr/bin中的文件是/usr/local/bin的链接文件; /usr/sbin 这个目录也是可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行;相似目录是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等; /usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。这个目录下面有子目录。自己看看吧。 /usr/share 系统共用的东西存放地,比如/usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。 /usr/src 是内核源码存放的目录,比如下面有内核源码目录,比如linux 、linux-2.xxx.xx 目录等。有的系统也会把源码软件包安装在这里。比如Fedora/Redhat,当我们安装file.src.rpm 的时候,这些软件包会安装在/usr/src/redhat相应的目录中。 /var/adm 比如软件包安装信息、日志、管理信息等,在Slackware操作系统中是有这个目录的。在Fedora中好象没有;自己看看吧。 /var/log 系统日志存放,分析日志要看这个目录的东西; /var/spool 打印机、邮件、代理服务器等假脱机目录; 5、附录:目录结构的简明查阅手册

02.linux文件系统

常见的目录: / Linux系统根目录 /bin 系统启动时候需要的二进制文件(二进制) /dev 设备文件目录 /etc 操作系统的配置文件 /home 用户信息存放的目录 /usr 程序和数据存放的目录 /var 包含在正常操作中被改变的目录:假脱机文件,记录文件 加锁文件 目录文件操作命令 pwd:查看当前所在目录 cd:打开目录 ls -a:查看目录文件 ll:以列的方式显示目录下的文件列表 mkdir:创建文件目录 rm -rf :删除文件或者目录 rm -ri: 删除文件前询问用户 cp :复制文件命令 mv: 移动文件或者修改用户名 eg: mv usr/local/test1 usr/local/test2 rm -rf usr/local/test1 usr/local/test2/test1

文件操作命令:[了解] head:从文件开始显示文件内容 head -n:显示文件开始的n行数据 tail:从文件结尾显示文件内容 tail -f:动态加载某个文件内容 tail -n:查看文件结尾n行内容 文件编辑命令: vim:一款功能强大的全屏幕文本编辑器 vi命令: 打开文件: vim【文件名】 进入编辑模式: i ,a 退出编辑模式:esc键 进入命令模式:“:” 保存并退出:wq或者x 退出不保存:q! 保存:w 练习: 1.需求说明 将myInfo.txt中的hadoop替换成mongoDB,并保存文件在myInfo.txt 第二后插入以下语句后保存文件 Linux is fun. 查看myinfo.txt的第二行信息 将myinfo.txt 重命名为wangmingInfo.txt 复制wangmingInfo.txt 到test/java/javaEE/student目录删除原来的temp目录 2.需求说明 在用户主目录下递归创建 test/java/javaEE/ 文件目录 进入test/java/javaEE/目录,并创建temp/文件目录

通俗易懂讲解Linux文件系统

Linux 文件系统基本概念 Linux 在最初的设i|?是MINIX1文件系统,它只支持14字节的文件名, 它的最大文件只支持到64MBo 在MINIX 1之后的文件系统是exl 文件系统。 ext 系统相较于MINIX 1来说,在支持字节大小和文件大小上均有很大提升, 但是ext 的速度仍没有MINIX 1快,于是,ext 2被开发出来,它能够支持长 文件名和大文件,而且具有比MINIX 1更好的性能。这使他成为Linux 的主 要文件系统。只不过Linux 会使用VFS 曾支持多种文件系统。在Linux 链接 时,用户可以动态的将不同的文件系统挂载倒VFS 上。 Linux 中的文件是一个任意长度的字节序列,Linux 中的文件可以包含任 意信息,比如ASCII 码、二进制文件和其他类型的文件是不加区分的。 为了方便起见,文件可以被组织在一个U 录中,U 录存储成文件的形式在 很大程度上可以作为文件处理。U 录可以有子U 录,这样形成有层次的文件系 统,Linux 系统下面的根U 录是/,它通常包含了多个子U 录。字符/还用于对 U 录名进行区分,例如/usr/cxuan 表示的就是根目录下面的usr tl 录,其中有 一个叫做cxuan 的子U 录。 下面我们介绍一下Linux 系统根口录下面的U 录名 ? /bin,它是巫要的二进制应用程序,包含二进制文件,系统的所有用户使用的命 令都 在这里 ? /boot,启动包含引导加载程序的相关文件 ? /dev.包含设备文件,终端文件,USB 或者连接到系统的任何设备 ? /etc,配置文件,启动脚本等,包含所有程序所需要的配置文件,也包含了启动 /停 止单个应用程序的启动和关闭shell 脚本 ? /home,本地主要路径,所有用户用home U 录存储个人信息 ? /lib,系统库文件,包含支持位于/bin 和/sbin 下的二进制库文件 ? /lost+found,在根U 录下提供一个遗失+査找系统,必须在root 用户下才能査 看当 前U 录下的内容 ? /media,挂载可移动介质 ? /mnt,挂载文件系统 ? /opt,提供一个可选的应用程序安装U 录 ? /proc.特殊的动态U 录,用于维护系统信息和状态,包括当前运行中进程信息 root 用户的主要U 录文件夹 巫要的二进制系统文件 系统和用户创建的临时文件,系统重启时,这个U 录下的文件都会被删 /usr,包含绝大多数用户都能访问的应用程序和文件 /var,经常变化的文件,诸如日志文件或数据库等 在Linux 中,有两种路径,一种是绝对路径(absolute path),绝对路径告 诉你从根U 录下查找文件,绝对路径的缺点是太长而且不太方便。还有一种 是相对路径(relative path),相对路径所在的LI 录也叫做丄作tl 录(working directory)。 如果/usr/local/books 是工作U 录,那么shell 命令 cp books books-replica 就表示的是相对路径,而 cp /usr/Iocal/books/books /usr/local/books/books-replica /root ? /sbim /tmp,

linux 实验报告 文件系统与文件管理

学生课程实验报告书课程:《linux网络操作系统》 级系 专业班 学号: 姓名: 指导教师:

一、实验项目:用户与组群管理 二、实验日期: 三、实验原理: 1.熟悉Linux下常用的操作指令。 2.加深对文件,目录,文件系统等概念的理解。 3.掌握Linux文件系统的目录结构。 4.掌握有关Linux文件系统操作的常用命令。 5.了解有关文件安全方面的知识。 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 进入虚拟机,并在此平台上练习文件管理有关命令.一般在[root @ localhost xxxx]$ 提示符下键入有关命令。 1.浏览文件系统 〈1〉运行pwd命令,确定你当前的工作目录。 〈2〉利用以下命令显示当前工作目录的内容:(理解各字段彻底意义。) 〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i 可以显示文件的I节点号) ls –ai 〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。 〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。

〈6〉使用cd命令,将工作目录改到根目录(/)上。 ①用相对路径将工作目录改到根目录。 ②用绝对路径将工作目录改到根目录。 〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容,体会各目录作用及访问权限。 〈8〉使用ls-l命令列出/dev的内容。 Ls –l /dev 列出/dev目录的内容,文件太多显示多屏,各行第一个字符为b的表示块特别文件;各行第一个字符为c的表示字符特别文件。 〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。 〈10〉使用命令cd ../..,你将工作目录移到什麽地方? 2.查看你的文件 〈1〉利用cd命令,将工作目录改到你的主目录上。 〈2〉将工作目录改到你的子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中。 Ls –l 反馈信息中有新文件 file1。请注意并记下文件长度为:

UnixLinux文件系统简介

Unix/Linux 文件系统简介 一、Unix 命令格式 1、Unix 命令提示符 在命令行操作环境下,Unix 系统会显示一提示符,提示用户可以在此提示符后输入一行命令。不同的Shell 有不同的缺省提示符,如 B Shell 、Bourne-again Shell 的缺省提 示符为"$" ,C Shell 的缺省提示符为"%" 。但当以root 用户登录时,系统提示符统一缺省为"#" 。 2、基本命令格式 Unix 命令的基本格式如下: Command [option(s)] [argument(s)] Unix 命令由一个命令(command )和零到多个参数构成。Unix 的命令区分大小写,且命令和参数之间、参数与参数之间都应用空格隔开。 二、Unix 文件系统 1、Unix 文件系统分类 Unix 操作系统可由多个可以动态安装及拆卸的文件系统组成。Unix 文件系统主要分为两大类:根文件系统和附加文件系统。根文件系统是Unix 系统至少应含有的一个文件系统,它包含了构成操作系统的有关程序和目录,由“/ ”符号来表示。附加文件系统是除根文件系 统以外的其它文件系统,它必须挂(mount )到根文件系统的某个目录下才能使用。本文中若无特别声明,则都是针对根文件系统来进行说明的。 2、Unix 文件类型 在Unix 中文件共分为四种: (1)普通文件(- ):又分为文本文件、二进制文件、数据文件; ( 2 )目录文件( d ); ( 3 )设备文件(l ); (4)链接文件(b/c ):又可分为块设备文件、字符设备文件。 普通文件中的文本文件主要包括ASCII 文本文件、英文文本文件和一些可执行的脚本文件等;二进制文件主要是32 位的可执行文件等;数据文件主要是系统中的应用程序运行时产生的文件。 目录文件是用来存放文件目录的。 设备文件代表着某种设备,一般放在/dev 目录下。它分为块设备文件和字符设备文件,块设备文件以区块为输入输出单元,如磁盘;字符设备文件是以字符作为输入输出单元,如串口。 链接文件类似于Windows 系统中的快捷方式,它指向链接文件所链接着的文件。 值得注意的是,与Windows 系统不同,Unix 系统中目录本身就是一个文件,另外文件类型与文件的后缀名无关。 不同类型的文件有着不同的文件类型标识(可使用“ls -l ”命令来进行查看),它们使用 下列符号来表示相应的文件类型: - 普通文件d 目录文件b 块设备文件c 字符设备文件 l 链接文件 3、Unix 目录结构 Unix 系统采用树型的目录结构来组织文件,每一个目录可能包含了文件和其他的目录。 该结构以根目录“/ 为”起点向下展开,每个目录可以有许多子目录,但每个目录都只能有一个父目录。 4、Unix 文件名称 Unix 文件名称的最大长度为256 字符,其对字母大小写敏感,比如file1 和File1 是表示两个不同的文件。要说明的是,如果用“.作”为文件名的第一个字母,则表示此文件为 隐含文件,如“ .cshrc ”文”件(对于此文件,后文将有介绍)。

linux文件系统的比较

Linux日志文件系统及性能分析 简介:日志文件系统可以在系统发生断电或者其它系统故障时保证整体数据的完整性,Linux是目前支持日志文件系统最多的操作系统之一,本文重点研究了Linux常用的日志文件系统:EXT3、ReiserFS、XFS和JFS日志技术,并采用标准的测试工具PostMark和Bonnie++对它们进行了测试,给出了详细的性能分析,对Linux服务器应用具有重要的参考价值。 一、概述 所谓日志文件系统是在传统文件系统的基础上,加入文件系统更改的日志记录,它的设计思想是:跟踪记录文件系统的变化,并将变化容记录入日志。日志文件系统在磁盘分区中保存有日志记录,写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,系统重启时,会根据日志记录来恢复中断前的写操作。在日志文件系统中,所有的文件系统的变化都被记录到日志,每隔一定时间,文件系统会将更新后的元数据及文件容写入磁盘。在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,然后它修改元数据。目前Linux的日志文件系统主要有:在Ext2基础上开发的Ext3,根据面向对象思想设计的ReiserFS,由SGI IRIX系统移植过来的XFS,由IBM AIX系统移植过来的JFS,其中EXT3完全兼容EXT2,其磁盘结构和EXT2完全一样,只是加入日志技术;而后三种文件系统广泛使用了B 树以提高文件系统的效率。 回页首 二、Ext3 Ext3文件系统是直接从Ext2文件系统发展而来,目前Ext3文件系统已经非常稳定可靠,它完全兼容Ext2文件系统,用户可以平滑地过渡到一个日志功能健全的文件系统。Ext3日志文件系统的思想就是对文件系统进行的任何高级修改都分两步进行。首先,把待写块的一个副本存放在日志中;其次,当发往日志的I/O 数据传送完成时(即数据提交到日志),块就写入文件系统。当发往文件系统的I/O 数据传送终止时(即数据提交给文件系统),日志中的块副本就被丢弃。 2.1 Ext3日志模式 Ext3既可以只对元数据做日志,也可以同时对文件数据块做日志。具体来说,Ext3提供以下三种日志模式: ?日志(Journal ) 文件系统所有数据和元数据的改变都记入日志。这种模式减少了丢失每个

Linux文件系统分析-精品

Linux文件系统分析-精品 2020-12-12 【关键字】目录、情况、空间、文件、运行、地方、系统、透明、配合、执行、统一、发展、建立、了解、位置、网络、基础、需要、环境、方式、特色、办法、标准、结构、反映、速度、关系、分析、管理、引导、服务、实现 1. 磁盘分区和目录 Linux 发行版本之间的差别很少,差别主要表现在管理的特色工具以及软件包管理方式的不同。目录结构基本上都是一样的。Windows 的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C , D , E , F 等。 Linux 的文件结构是单个的树状结构. 可以用tree 进行展示。在Ubuntu 下安装tree (sudo apt-get install tree ), 并可通过命令来查看。 每次安装系统的时候我们都会进行分区,Linux 下磁盘分区和目录的关系如下: –任何一个分区都必须挂载到某个目录上。 –目录是逻辑上的区分。分区是物理上的区分。 –磁盘Linux 分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。 –根目录是所有Linux 的文件和目录所在的地方,需要挂载上一个磁盘分区。 以下是我们可能存在的一种目录和分区关系: 图1:目录和分区关系 Q: 如何查看分区和目录及使用情况? –fdisk 查看硬盘分区表 –df :查看分区使用情况 –du: 查看文件占用空间情况 Q:为什么要分区,如何分区?

–可以把不同资料,分别放入不同分区中管理,降低风险。 –大硬盘搜索范围大,效率低 –磁盘配合只能对分区做设定 –/home /var /usr/local 经常是单独分区,因为经常会操作,容易产生碎片 2. Mount 挂载和NFS 简介 挂载的概念:当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录上,而这个目录就称为“挂载点(mount point )”,这样才可以读取这些设备,而这些对应的动作就是“挂 载”。将物理分区细节屏蔽掉。用户只有统一的逻辑概念。所有的东西都是文件。Mount 命令可以实现挂载: mount [-fnrsvw] [-t vfstype] [-o options] device dir Q :所有的磁盘分区都必须被挂载上才能使用,那么我们机器上的硬盘分区是如何被挂载的? A :这主要是它利用了/etc/fstab 文件。每次内核加载它知道从这里开始mount 文件系统。每次系统启动会根据该文件定义自动挂载。若没有被自动挂载,分区将不能使用。如下是我的/etc/fstab 的定义,主要是根据装机的分区来的: # proc/proc proc defaults00 #/dev/sda1 被自动挂载到/ UUID=cb1934d0-4b72-4bbf-9fad-885d2a8eeeb1 /ext3relatime,errors=remount-ro 01 # /dev/sda5 被自动挂载到分区/home UUID=c40f813b-bb0e-463e-aa85-5092a17c9b94 /home ext3relatime02 #/dev/sda7 被自动挂载到/work UUID=0f918e7e-721a-41c6-af82-f92352a568af /work ext3relatime02 # 分区/dev/sda6 被自动挂载到swap UUID=2f8bdd05-6f8e-4a6b-b166-12bb52591a1f none swap sw00 Q :移动硬盘如何挂载?如何挂载一个新的分区? 移动硬盘有驱动模块会自动挂载,如果有个新硬盘,要先进行分区,并通过mount 命令挂载到某个文件夹。如果要自动挂载则可以修改/etc/fstab 文件. NFS 简介:NFS 相信在很多地方都有广泛使用,是一个非常好的文件共享方式。我们公司所使用的上传服务就是把文件上传到某台网络服务器上,中间就是通过NFS 实现。 使用NFS 客户端可以透明的地访问服务器端的文件。NFS 也是通过mount 来实现,底层是通过NFS 通信协议实现。基本原理:

linux基础知识总结

第一、二章 1、Linux与UNIX的区别与关系? 联系:linux与unix的源代码相兼容 区别:是否遵循GPL版权协议 2、GNU是什么?它对Linux的发展起了什么作用? GNU是“GNU is not unix的递归缩写”是一个黑客(hacker)组织,倡导GPL版权协议。 GNU为linux开发了大量的软件,各种使用Linux 作为内核的GNU 操作系统正被广泛地使用著;虽然这些系统通常被称作为―Linux‖,但是它们应该更精确地被称为GNU/Linux 系统。 3、GPL/LGPL是什么?主要内容是什么? 通用公共软件许可证和程序库通用公共许可证 GPL协议的主要内容是只要在一个软件中使用GPL协议的产品,则该软件产品必须也采用GPL 协议,既必须也是开源。 LGPL是一个为主要为类库设计使用的开源协议,允许商业软件使用LGPL类库而不需要开源商业软件的代码,但是LGPL也规定,用户必须能够获得程序中使用的程序库源代码,并允许修改。 4、/dev/hda 5、/dev/s db6各表示什么意思? 硬件设备中,第一块IDE硬盘的第一个逻辑分区和第二块SCSI硬盘的第二个逻辑分区。 5、如何创建启动软盘? Linux系统中: #dd if=bootdisk.img of=/dev/fd0 bs=1440k 6、Swap分区大小如何确定? 实际物理内存的2-3倍 7、什么是文件系统?Linux默认文件系统是什么? 文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。 linux中默认ext3文件系统。 8、你如何理解单根系统及优点? 单根结构便于管理和扩展磁盘空间。 9、我们通过修改什么文件设定程序的运行方式? 配置文件 10、简单描述系统启动过程。 第八章详解 11、我的电脑中新添加了一块硬盘,如何在当前RH系统中使用? 给硬盘分区# fdisk /dev/hdb 格式化成ext3格式#mke2fs -j /dev/sdb1 硬盘挂载#mount /dev/sdb1 /mnt/sdb1 可固化挂接#vi /etc/fstab /dev/sdb1 /mnt/sdb1 ext3 defaults 1 1 12、s hell的作用是什么? Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口,负责将用户输入命令解释给内核执行,并将执行结果解释给用户。它是命令语言、命令解释程序及程序设计语言的统称。

linux文件系统总结

linux文件系统总结-1 文件系统: 文件系统是对一个存储设备上的数据和元数据进行组织的机制。由于定义如此宽泛,支持它的代码会很有意思。正如前面提到的,有许多种文件系统和媒体。由于存在这么多类型,可以预料到Linux 文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。文件系统作为协议另一种看待文件系统的方式是把它看作一个协议。网络协议(比如IP)规定了互联网上传输的数据流的意义,同样,文件系统会给出特定存储媒体上数据的意义。 挂装: 在Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)。使用mount 命令将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。 块设备: 块设备就是以块(比如磁盘扇区)为单位收发数据的设备,它们支持缓冲和随机访问(不必顺序读取块,而是可以在任何时候访问任何块)等特性。块设备包括硬盘、CD-ROM 和RAM 盘。与块设备相对的是字符设备,字符设备没有可以进行物理寻址的媒体。字符设备包括串行端口和磁带设备,只能逐字符地读取这些设备中的数据。 磁盘分区概述: Linux 和UNIX 中的基本文件存储单元都是磁盘分区,即将一个或多个硬盘的逻辑划分,操作系统将每个逻辑分区视为独立的磁盘。文件和文件管理系统“居住”在磁盘分区中。Linux 将这些磁盘分区作为设备处理,进而通过/dev 目录中的特殊文件使用文件I/O 机制。 有两种类型的设备文件:块和字符/原始。两者之间的一个重要差别是,块设备被缓冲,而字符设备因为没有文件管理系统,所以不被缓冲。

Linux 文件系统总叙述

作者:北南南北 来自:https://www.360docs.net/doc/c813213786.html, 摘要:本文通过文件系统的定义说起,然后通过引文简单的介绍了一下文件系统类型;对Linux常用的ext2、ext3及reiserfs 根据本人使用经验也泛泛的谈了谈,但并不是专业的。如何阅读本文,还是用马克思理论告诉我们的方法:一分为二,边看边批吧;目录索引一、什么是文件系统(Filesystem) 1、常见定义方法; 2、理解文件系统的关健词; 1)磁盘的分割: 2)文件系统的创建: 3)挂载(mount): 4)文件系统可视的几何结构: 二、文件系统的类型; 三、Linux 文件系统的选择和安全性; 1、Linux操作系统安装过程中的文件系统的选择; 1)ext2 文件系统; 2)ext3 文件系统:是由ext2文件系统发展而来; 3)reiserfs 文件系统; 4)ext3、reiserfs、ext2 文件系统对大文件支持的对比; 2、ext2、ext3及reiserfs文件系统的安全性; 1)ext2、ext3和reiserfs 文件系统自动修复能力对比; 2)ext2、ext3和reiserfs 反删除功能对比; 四、Linux 支持的文件系统; 五、文件系统的特性; 六、在Linux中,文件系统的创建和挂载;七、关于本文; 八、参考文档; 九、相关文档; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 正文 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 一、什么是文件系统(Filesystem); 1、常见定义方法; 什么是文件系统(filesystem),用一两句话解答出来,实在有点困难,这个问题只能留给文件系统的设计者或对文件系统精通的专业人士来答复;下面是关于filesystem的定义是我从https://www.360docs.net/doc/c813213786.html, 上搜索到的;下面我们分析一下,对我们来说,了解一下也有好处。如果您是专业人士,如果您有自己的定义方法,请在本文后面留言;谢谢;定义一; A directory structure contained within a disk drive or disk area. The total available disk space can be composed of one or more filesystems. A filesystem must be mounted before it can be accessed. To mount a filesystem, you must specify a directory to act as the mount point. Once mounted, any access to the mount point directory or its subdirectories will access the separate filesystem. 文件系统是包括在一个

实验2Linux文件系统

实验2 Linux文件系统 一.实验目的 通过实验掌握Linux中文件管理的基本概念,包括常用命令格式、文件类型、目录结构等,初步了解有关文件安全方面的知识。 二.实验内容 1.使用pwd,cd,ls等命令浏览文件系统。 2.使用cat,cp,mv,head,tail,rm等命令查看和操作文件。 3.使用find,grep命令进行文件查找和模式匹配。 4.使用chmod命令修改文件的权限。 3、 实验报告 1. 简要说明实验的目的、任务与设备 2. 写出具体的实验步骤 3. 总结实验过程中遇到的问题及解决方法 4. 实验体会 四. 实验步骤 所有实验内容均在终端命令行界面完成。 一.目录操作 〈1〉确认当前用户的主目录,和显示当前的工作目录。 增加用户mary(注意设置密码),注销root用户,利用mary用户登录进入Linux。确认此时的当前用户的主目录与root用户登录时的主目录有什么区别。 〈2〉利用ls命令显示当前工作目录的内容: 〈3〉运行以下命令,查看有何显示结果: ls –ai 〈4〉使用mkdir命令建立一个子目录subdir。 〈5〉使用带-d选项的ls命令,能看到有关子目录的信息。 〈6〉使用cd命令,将工作目录改到根目录(/)上。 〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容。〈8〉使用ls-l命令列出/dev的内容。 〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。 〈10〉使用命令cd ../..,查看工作目录移到了什麽地方?

二.文件处理 〈1〉利用cd命令,将工作目录改到你的主目录上。 〈2〉将工作目录改到你的子目录subdir下,然后运行命令: date > file1(将当前日期和时间存放到新建文件file1中。) 〈3〉使用cat命令查看file1文件的内容。 〈4〉利用man命令显示date命令的用法: man date 〈5〉将date命令的用法附加到文件file1的后面: man date >> file1 〈6〉利用cat命令显示文件file1的内容。 〈7〉利用ls -l file1命令列出文件file1的较详细的信息。 〈11〉将工作目录移到你的主目录。显示文件file1前10行的内容:〈12〉显示文件file1的最后10行(这是默认值)的内容。 〈13〉显示目录/bin的详细内容。 〈14〉分屏显示/bin目录的内容。 〈15〉利用cp命令生成文件file1的副本fa。然后利用ls -l命令查看工作目录的内容。 〈16〉利用rm fa命令将文件fa删除。再利用ls -l命令查看工作目录内容。 〈17〉运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中? 〈18〉利用cat file*命令列出当前工作目录中以file开头的所有文件。〈19〉运行cat file?命令,与上面结果相比有何差别? 三. 查找文件和目录操作 1.增加用户xiaomei。 2.利用grep命令在/etc/passwd文件中找到xiaomei的有关信息,并输出到文件xiaomeipd中。并用cat查看xiaomeipd的内容 3.利于whereis命令查找命令ftp 4.查找文件passwd,并显示其路径 四.文件存取权限的操作(可放到讲完文件后在最后一次实验做) 1.创建目录sample,设置访问权限如下: 使创建该目录的用户拥有所有三种权限,同组用户只具备读访问权限,其它用户没有该目录的访问权限。

相关文档
最新文档