Linux文件系统介绍:
一 、Linux文件结构
文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。
Linux使用树状目录结构,在安装的时候,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
┃ /根目录
┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var
┃ ┃
┏━┻━┓ ┏━━┳━━┳━━┳━┻━┳━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
rc.d cron.d X11R6 src lib local man bin
┃
┏━━━┳━━┳━┻━┳━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d …… linux bin lib src
该结构的最上层是根目录,其他的所有目录都是从根目录出发而生成的。
微软的DOS和windows也是采用树型结构,但是在DOS和 windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,它们之间的关系是并列的。但是在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,各个磁盘分区上的树型目录不一定是并列的。
举例说明:
有一块硬盘,分成了4个分区,分别是/;/boot;/usr和windows下的fat
对于/和/boot或者/和/usr,它们是从属关系;对于/boot和/usr,它们是并列关系。
如果把windows下的fat分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
因为linux是一个多用户系统,制定一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。下面列出了linux下一些主要目录的功用。
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库(动态链接共享库),作用类似windows里的.dll文件
/sbin 系统管理命令,存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 该目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/X11R6 存放X window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库
二 、linux文件系统
文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。
文件系统分配策略:块分配( block allocation)和扩展分配( extent allocation )
块分配:磁盘上的文件块根据需要分配给文件,避免了存储空间的浪费。但当文件扩充时,会造成文件中文件块的不连续,从而导致过多的磁盘寻道时间。 每一次文件扩展时,块分配算法就需要写入文件块的结构信息,也就是 meta-dada 。meta-data总是与文件一起写入存储设备,改变文件的操作要等到所有meta-data的操作都完成后才能进行, 因此meta-data的操作会明显降低整个文件系统的性能。
扩展分配:文件创建时,一次性分配一连串连续的块,当文件扩展时,也一次分配很多块。meta-data在文件创建时写入,当文件大小没有超过所有已分配文件块大小时,就不用写入meta-data,直到需要再分配文件块的时候。扩展分配采用成组分配块的方式,减少了SCSI设备写数据的时间,在读取顺序文件时具有良好的性能,但随机读取文件时,就和块分配类似了。文件块的组或块簇 ( block cluster) 的大小是在编译时确定的。簇的大小对文件系统的性能有很大的影响。
注: meta-data 元信息:和文件有关的信息,比如权限、所有者以及创建、访问或更改时间等。
Linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。
对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。
可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:
硬连接:原文件名和连接文件名都指向相同的物理地址。目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)文件在磁盘中只有一个拷贝,节省硬盘空间;
由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。
符号连接:用ln -s命令建立文件的符号连接,符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。
可以删除原有的文件而保存连接文件,没有防止误删除功能。
Linux文件系统类型:
ext2: 早期linux中常用的文件系统
ext3 : ext2的升级版,带日志功能
RAMFS : 内存文件系统,速度很快
NFS : 网络文件系统,由SUN发明,主要用于远程文件共享
MS-DOS : MS-DOS文件系统
VFAT : Windows95/98 操作系统采用的文件系统
FAT : WindowsXP 操作系统采用的文件系统
NTFS : WindowsNT/XP 操作系统采用的文件系统
HPFS : OS/2 操作系统采用的文件系统
PROC : 虚拟的进程文件系统
ISO9660 : 大部分光盘所采用的文件系统
ufsSun : OS 所采用的文件系统
NCPFS : Novell 服务器所采用的文件系统
SMBFS : Samba 的共享文件系统
XFS : 由SGI开发的先进的日志文件系统,支持超大容量文件
JFS : IBM的AIX使用的日志文件系统
ReiserFS : 基于平衡树结构的文件系统
udf: 可擦写的数据光盘文件系统
虚拟文件系统VFS
linux支持的所有文件系统称为逻辑文件系统,而linux在传统的逻辑文件系统的基础上增加了一个虚拟文件系统( Vitual File System ,VFS) 的接口层。
虚拟文件系统(VFS) 位于文件系统的最上层,管理各种逻辑文件系统,并可以屏蔽各种逻辑文件系统之间的差异,提供统一文件和设备的访问接口。
文件的逻辑结构
文件的逻辑结构可分为两大类:字节流式的无结构文件和记录式的有结构文件。
由字节流(字节序列)组成的文件是一种无结构文件或流式文件,不考虑文件内部的逻辑结构,只是简单地看作是一系列字节的序列,便于在文件的任意位置添加内容。
由记录组成的文件称为记录式文件,记录是这种文件类型的基本信息单位,记录式文件通用于信息管理。
文件类型:
普通文件:通常是流式文件
目录文件:用于表示和管理系统中的全部文件
链接文件:用于不同目录下文件的共享
设备文件:包括块设备文件和字符设备文件,块设备文件表示磁盘文件、光盘等,字符设备文件按照字符操作终端、键盘等设备。
管道(FIFO)文件 : 提供进程间通信的一种方式
套接字(socket) 文件: 该文件类型与网络通信有关
文件结构: 包括索引节点和数据
索引节点:又称I节点,在文件系统结构中,包含有关相应文件的信息一个记录,这些信息包括文件权限、文件名、文件大小、存放位置、建立日期等。文件系统中所有文件的索引节点保存在索引节点表中。
数据:文件的实际内容。可以是空的,也可以非常大,并且拥有自己的结构。
ext2文件系统
ext2文件系统的数据块大小一般为1024B、2048B 或 4096B
ext2文件系统采用的索引节点(inode): 索引节点采用了多重索引结构,主要体现在直接指针和3个间接指针。直接指针包含12个直接指针块,它们直接指向包含文件数据的数据块,紧接在后面的3个间接指针是为了适应文件的大小变化而设计的。
假设数据块大小为1024B,利用12个直接指针,可以保存最大为12KB的文件,当文件超过12KB时,则要利用单级间接指针,该指针指向的数据块保存有一组数据块指针,这些指针依次指向包含有实际数据的数据块,
假如每个指针占用4B,则每个单级指针数据块可保存1024/4=256 个数据指针,因此利用直接指针和单级间接指针可保存1024*12+1024*256=268 KB的文件。当文件超过268KB时,再利用二级间接指针,直到使用三级间接指针。
利用直接指针、单级间接指针、二级间接指针、三级间接指针可保存的最大文件大小为:1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,约 16GB
若数据块大小为2048B,指针占4B,则最大文件大小为: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB 约 268GB
若数据块大小为4096B,指针占4B,则最大文件大小为:4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744KB ,约 4TB,注: 命令 tune2fs -l/dev/sda5 可查看文件系统
ext2文件系统最大文件名长度: 255个字符
ext2文件系统的缺点:
ext2在写入文件内容的同时并没有同时写入文件meta-data, 其工作顺序是先写入文件的内容,然后等空闲时候才写入文件的meta-data。若发生意外,则文件系统就会处于不一致状态。在重新启动系统的时候,linux会启动 fsk ( file system check) 的程序,扫描整个文件系统并试图修复,但不提供保证。
ext3文件系统:
ext3基于ext2的代码,所以磁盘格式与ext2相同,使用相同的元数据。
ext2文件系统无损转化为ext3文件系统: tune2fs -j/dev/sda6
日志块设备(Journaling block device layer,JBD)完成ext3文件系统日志功能。JBD不是ext3文件系统所特有的,它的设计目标是为了向一个块设备添加日志功能。
当一个文件修改执行时,ext3文件系统代码将通知JBD,称为一个事务(transaction)。发生意外时,日志功能具有的重放功能,能重新执行中断的事务。
日志中的3种数据模式:
1)、data=writeback :不处理任何形式的日志数据,给用户整体上的最高性能
2)、data=odered :只记录元数据日志,但将元数据和数据组成一个单元称为事务(transaction)。此模式保持可靠性与文件系统的一致性,性能远低于data=writeback模式,但比data=journal模式快
3)、data=journal :提供完整的数据及元数据日志,所有新数据首先被写入日志,然后才被定位。意外发生过后,日志可以被重放,将数据与元数据带回一致状态。这种模式整体性能最慢,但数据需要从磁盘读取和写入磁盘时却是3种模式中最快的。
ext3文件系统最大文件名长度: 255个字符
ext3文件系统的优点:可用性、数据完整性、速度、兼容性
10、ReiserFS文件系统
ReiserFS文件系统是由Hans Reiser和他领导的开发小组共同开发的,整个文件系统完全是从头设计的,是一个非常优秀的文件系统。也是最早用于Linux的日志文件系统之一。
ReiserFS的特点,先进的日志机制
ReiserFS有先进的日志(Journaling/logging)功能 机制。日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。文件与数据的安全性有了很大提高。
高效的磁盘空间利用, Reiserfs对一些小文件不分配inode。而是将这些文件打包,存放在同一个磁盘分块中。而其它文件系统则为每个小文件分别放置到一个磁盘分块中。
独特的搜寻方式,ReiserFS基于快速平衡树(balanced tree)搜索,平衡树在性能上非常卓越,这是一种非常高效的算法。ReiserFS搜索大量文件时,搜索速度要比ext2快得多。Reiserfs文件系统使用B*Tree存储文件,而其它文件系统使用B+Tree树。B*Tree查询速度比B+Tree要快很多。Reiserfs在文件定位上速度非常快。
在实际运用中,ReiserFS 在处理小于 4k 的文件时,比ext2 快 5 倍;带尾文件压缩功能(默认)的ReiserFS 比ext2文件系统多存储6%的数据。
支持海量磁盘,ReiserFS是一个非常优秀的文件系统,一直被用在高端UNIX系统上,可轻松管理上百G的文件系统,ReiserFS文件系统最大支持的文件系统尺寸为16TB。这非常适合企业级应用中。
优异的性能,由于它的高效存储和快速小文件I/O特点,使用ReiserFs文件系统的PC,在启动X窗口系统时,所花的时间要比在同一台机器上使用ext2文件系统少1/3。另外,ReiserFS文件系统支持单个文件尺寸为4G的文件,这为大型数据库系统在linux上的应用提供了更好的选择。
三 、挂载文件系统
由上一节知道,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的“按一定方式”就是指的挂载。
将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。
根分区:
/根目录
┃
┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var
┃
┏━┻━┓
┃ ┃
rc.d cron.d
┃
┏━━━┳━━━┳━┻━┳━━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d ……
/usr分区 :
usr
┃
┏━━━━┳━━━╋━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃
X11R6 src lib local man bin
┃ ┃
┃ ┏━━━╋━━━┓
┃ ┃ ┃ ┃
linux bin lib src
1、挂载点必须是一个目录。
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;windowsNT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、 NTFS。挂载前要了解linux是否支持所要挂载的文件系统格式。
挂载时使用mount命令:格式:mount [-参数] [设备名称] [挂载点]
其中常用的参数有:-t 指定设备的文件系统类型,常见的有:
minix linux最早使用的文件系统
ext2 linux目前常用的文件系统
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 网络文件系统
iso9660 CD-ROM光盘标准文件系统
ntfs windowsNT 2000的文件系统
hpfs OS/2文件系统
auto 自动检测文件系统
-o 指定挂载文件系统时的选项。也可用在/etc/fstab中。常用的有
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
nouser 使一般用户无法挂载
user 可以让一般用户挂载设备
提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。
例子:windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。
# mkdir /mnt/winc
# mkdir /mnt/floppy
# mkdir /mnt/cdrom
# mount -t vfat /dev/hda1 /mnt/winc
# mount -t msdos /dev/fd0 /mnt/floppy
# mount -t iso9660 /dev/cdrom /mnt/cdrom
现在就可以进入/mnt/winc等目录读写这些文件系统了。
要保证最后两行的命令不出错,要确保软驱和光驱里有盘。(要是硬盘的磁盘片也可以经常随时更换的话,我想就不会犯这样的错误了 :-> )
如果windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。这就要用到 -o 参数里的codepage iocharset选项。codepage指定文件系统的代码页,简体中文代码是936;iocharset指定字符集,简体中文一般用cp936或 gb2312。
当挂载的文件系统linux不支持时,mount会报错,如windows2000的ntfs文件系统。可以重新编译linux内核以获得对该文件系统的支持。
四 、自动挂载
每次开机访问windows分区都要运行mount命令显然太烦琐,为什么访问其他的linux分区不用使用mount命令呢?
其实,每次开机时,linux自动将需要挂载的linux分区挂载上了。那么是不是可以设定让linux在启动的时候也挂载其他分区,如windows分区,以实现文件系统的自动挂载呢?
这是完全可以的。在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。
/dev/hda2 / ext3 defaults 1 1
/dev/hda1 bootext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /procproc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660noauto,codepage=936,iocharset=gb2312 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp9360 0
/dev/hda5 /mnt/wind vfatdefaults,codepage=936,iocharset=cp936 0 0
在/etc/fstab文件里,第一列是挂载的文件系统的设备名,第二列是挂载点,第三列是挂载的文件系统类型,第四列是挂载的选项,选项间用逗号分隔。
最后两行添加的是windows下的C;D盘,加了codepage=936和iocharset=cp936参数以支持中文文件名。参数defaults实际上包含了一组默认参数:
rw 以可读写模式挂载
suid 开启用户ID和群组ID设置位
dev 可解读文件系统上的字符或区块设备
exec 可执行二进制文件
auto 自动挂载,光驱和软驱不自动挂载,noauto
nouser 使一般用户无法挂载
async 以非同步方式执行文件系统的输入输出操作
Linux常用命令:
Cd..cd../.. cd- 移动到上次目录,cd~ 移动到用户主目录
Df -T 检查文件系统的磁盘空间占用情况
Free -b/-k/-m 检查内存使用情况
Touch生成空文件,如:在对用户或组激活配额前,在目录中生成空文件aquota.user和aquota.group或改变现有文件的时间标志(不带参数),如果希望某台计算机除了root账号之外,其他账号都不得登录时,可在/ect目录中用touch nologin生成一个名为nologin的文件,当其他用户要登录时,系统只要发现此文件存在,就会禁止他们登录:
Inode:是每个Linux分区对文件使用的标示符,包括文件的元数据,权限,长度,最后访问时间,文件所在的磁盘块,不同分区有不同的inode号
链接的文件实际上都是指向磁盘中相同的数据,因为每个文件仅占用一个inode,所以它们inode编号应该一样。执行ls –i命令来查看文件的inode编号:
[@free lambert]$ ls –i LambertLink 10423 LambertLink
[@free lambert]$ ls –i /tmp/var/ForEveryOne 10423 /var/tmp/ForEveryOne
从上面的结果可看出这两个文件的inode编号一样的,若是用复制而非链接的方法,则是两个不相干的文件,各自拥有inode编号。
Ln:硬链接(不加任何参数),由于两个文件保持相同的inode号,如删除原文件,硬链接保留文件,保持原有文件所有信息
软链接(S),如删除文件,则软链接指向空文件,原文件丢失
#ln–s/usr/local/httpd/htdocs webroot
通过用户主目录下的Webroot访问web服务器上的文档
Rm:删除文件与目录,rmdir –p 删除空目录 rm –rf 删除非空目录文件
File:浏览文件类型
Head/Tailmore/less cat
Chmod/Chown/chgrp
Umask:
root用户搭配的值为:022/027/077,普通用户:002 ,特殊权限:UID/GID/STICKY
设置UID,S(SUID, Set UID):可执行的文件若搭配这个权限,该文件便能得到权限,可以任意存取文件所有者能使用的全部系统资源。设置GID,S(SGID,Set GID):应用在文件上面,其效果和SUID相同,只不过将范围由文件所有者扩大成组。也就是说,拥有此权限的文件,可以任意存取整个组所能使用的系统资源。
#mount–Oiocharset=cp936 /dev/hda5 /mnt/harddisk 避免中文目录显示乱码
#mount–tiso9660 –o loop mandraker90-inst.iso /mnt/iso
#grep–rapache *.txt 同时查找子目录
#ps–ef|grep –v root
#useradd–d/home/mydir –g users 指明用户主目录和所属组
#bzip2–kfile1 file 2 压缩当前目录下的file1,file2保留原目录
#bzip2–dfile1.bz2 file2.bz2
#jobs 查看当前终端中后台的所有进程及其状态
#Fg 将后台进程恢复到前台
Ctrl+C强制结束当前终端中运行的命令
#kill-9
标准输入: STDIN.文件编号0
标准输出: STDOUT.文件编号1
标准错误: STDERR.文件编号2
重定向:不从标准的输入输出端接受/输出文件
Ls /etc/sysconfig >etcdir
>> 可将多个命令输出结果保存到同一个文件,新命令输出不覆盖文件中原有的内容
2> 错误重定向
&> 命令执行的输出,错误输出重定向到指定的同一个文件中
VI编辑器:VI
–X a.txt 对文档加密(打开时提示输入密码)
1、命令方式:可滚动文本,搜索不同文本字符串,删除特定字符行
:set num 设置行号
20G 转到20行
移动用Pgup/Pgdown或Ctrl+B/Ctrl+F
删除文本:X: 删除当前字符 Dw:删除当前单词 Dd:删除当前行
用U命令撤消最后一个命令 yy copy (yy前加数字为多行复制) P 粘贴
搜索文本: /dollar 搜索该单词
2、插入方式:(ESC进入)
i 从光标当前位置开始
a 从光标当前位置后一个字符开始 A 从光标当前位置行末开始
o 从光标当前位置下一行开始 O 从光标当前位置上一行开始
cw 删除与光标当前位置对应的单词或空格,从该单词开始插入文本
3、执行方式: 命令加 :!ls /etc/cron.daily
VI创建脚本示例:文件可以有扩展名,或者没有
#!/bin/bash 使用Bash解释执行shell脚本
#this is my first helloword program
Echo hello world!
保存退出
#Chmodu+x hello.sh
#bashhello.sh 或者. /hello.sh或./hell.sh
其他文本编辑器:
1、在GUI中打开emacs #emacs /etc/inittab
2、pico pine e-mail RPM包中一起安装
#pico /etc/inittab 控制符为^X,用Ctrl+X运行,Ctrl+g打开帮助
3、joe #joe/etc/inittab Ctrl+K帮助
Tar包是unix中标准的文件交换格式,它把系统中需要备份的数据打包归档到磁带中,tar只打包,不压缩
#tarcvf tmp.rar /tmp/ c: 建立tar包 v: 更多提示信息 f:指定包名
#file tmp.rar 查看tmp.rar文件类型
#tar zcvf tmp.tar.gz /tmp/ 打包压缩并保存到指定文件,Z:使用gzip进行压缩
#filetmp.tar.gz
#tar tf tmp.rar 显示指定tar包中的文件目录列表
#tar ztf tmp.tar.gz 先调用gzip解压再显示文件目录列表
#tar xvf tmp.tar 释放指定tar包文件中内容
#tar zxvf tmp.tar.gz 解压并释放指定压缩tar包中的内容
#redhat-config-packages
RPM包的管理
#rpm –qi xinetd |grep URL URL http://www.xinetd.org
http://rpmfind.net www.rpmfind.net
www.linuxaid.com www.linuxeden.com www.linuxcn.org www.linuxsir.com
1.以.a为扩展名的文件: #tar xv file.a
2.以.z为扩展名的文件: #uncompress file.Z
3.以.gz为扩展名的文件: #gunzip file.gz
4.以.bz2为扩展名的文件: #bunzip2 file.bz2
5.以.tar.Z为扩展名的文件: #tar xvZf file.tar.Z
或 #compress -dc file.tar.Z | tar xvf
6.以.tar.gz/.tgz为扩展名的文件: #tar xvzf file.tar.gz
或 gzip -dc file.tar.gz | tar xvf -
7.以.tar.bz2为扩展名的文件: #tar xvIf file.tar.bz2
或 bzip2 -dc file.tar.bz2 | xvf -
8.以.cpio.gz/.cgz为扩展名的文件: #gzip-dc file.cgz | cpio -div
9.以.cpio/cpio为扩展名的文件: #cpio -div file.cpio
或cpio -divc file.cpio
10.以.rpm为扩展名的文件安装: #rpm -i file.rpm
11.以.rpm为扩展名的文件解压缩: #rpm2cpiofile.rpm | cpio -div
12.以.deb为扩展名的文件安装: #dpkg -i file.deb
13.以.deb为扩展名的文件解压缩:
#dpkg-deb --fsys-tarfile file.deb | tar xvf - ar p
file.deb data.tar.gz | tar xvzf -
14.以.zip为扩展名的文件: #unzip file.zip
在linux下解压Winzip格式的文件
要是装了jdk的话,可以用jar命令;还可以使用unzip命令。
直接解压.tar.gz文件
xxxx.tar.gz文件使用tar带zxvf参数,可以一次解压开。XXXX为文件名。 例如:
$tar zxvf xxxx.tar.gz 各种压缩文件的解压(安装方法)
文件扩展名 解压(安装方法)
.a ar xv file.a
.Z uncompress file.Z
.gz gunzip file.gz
.bz2 bunzip2 file.bz2
.tar.Z tar xvZf file.tar.Z
compress -dc file.tar.Z | tar xvf -
.tar.gz/.tgz tar xvzf file.tar.gz
gzip -dc file.tar.gz | tar xvf -
.tar.bz2 tar xvIf file.tar.bz2
bzip2 -dc file.tar.bz2 | xvf -
.cpio.gz/.cgz gzip -dc file.cgz | cpio -div
.cpio/cpio cpio -div file.cpio
cpio -divc file.cpio
.rpm/install rpm -i file.rpm
.rpm/extract rpm2cpio file.rpm | cpio -div
.deb/install dpkg -i file.deb
.deb/exrtact dpkg-deb --fsys-tarfile file.deb | tar xvf -
ar p file.deb data.tar.gz | tar xvzf -
.zip unzip file.zip
bzip2 -d myfile.tar.bz2 | tar xvf
tar xvfz myfile.tar.bz2
x 是解压
v 是复杂输出
f 是指定文件
z gz格式
gzip
gzip[选项]要压缩(或解压缩)的文件名
-c将输出写到标准输出上,并保留原有文件。
-d将压缩文件压缩。
-l对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小、压缩比、未压缩文件的名字
-r递归式地查找指定目录并压缩或压缩其中的所有文件。
-t测试压缩文件是正完整。
-v对每一个压缩和解压缩的文件,显示其文件名和压缩比。
-num-用指定的数字调整压缩的速度。
举例:
把/usr目录并包括它的子目录在内的全部文件做一备份,备份文件名为usr.tar
tar cvf usr.tar /home
把/usr 目录并包括它的子目录在内的全部文件做一备份并进行压缩,备份文件名是usr.tar.gz
tar czvf usr.tar.gz /usr
压缩一组文件,文件的后缀为tar.gz
#tar cvf back.tar /back/
#gzip -q back.tar
or
#tar cvfz back.tar.gz /back/
释放一个后缀为tar.gz的文件。
#tar zxvf back.tar.gz
#gzip back.tar.gz
#tar xvf back.tar
Linux中使用光盘
#ll /dev/cdrom 所有设备文件都放在/dev目录下
#ll /mnt/cdrom/ 挂载点目录中不应有文件,否则在光盘挂载后会找不到这些文件
#mount -t iso9660 /dev/cdrom/mnt/cdrom
#ls /mnt/cdrom
#umount/mnt/cdrom 卸载光盘需退出挂载点目录及子目录
#eject
#grep cdrom /etc/fstab fstab文件中设置/dev/cdrom设备的默认挂载点为/mnt/cdrom
#mount/dev/cdrom
#cp/dev/cdrom mycd.iso 把光盘设备文件作为源文件名,iso文件作为目的文件
#file mycd.iso
#mkisofs -r -o myhome.iso /home 使用Linux系统中的文件/目录制作ISO文件
#file myhome.iso 查看文件类型
#mount -o loop mycd.iso /mnt/cdrom 挂载ISO 文件
#ls /mnt/cdrom
把已制作好的ISO文件刻录成光盘
#cdrecord -scanbus
#cdrecord -v speed=8 dev=0,0 /home/share/ISO/DATA.ISO
Linux中使用软盘,主要用于与Windows系统交换文件和引导系统,支持ext2,fat格式的软盘
#mke2fs /dev/fd0
#mount /mnt/floppy
#ls /mnt/floppy
Lost+found ext2格式的软盘中存在的目录
#mkdosfs /dev/fd0 制作fat文件系统
#mdira: 查看软盘中内容
#gfloppy 图形化界面的格式化软盘工具,在“主菜单”“系统工具”“软盘格式化器”或者在图形化界面的虚拟终端下输入gfloppy
制作启动盘
#mkbootdisk–__device /dev/fd0 ‘uname -r’ Linux内核版本号
#mount/mnt/floppy
#ls/mnt/floppy
Boot.msg initrd.img Ldlinux.sys syslinux.cfg vmlinuz
#umount/mnt/floppy/
制作软盘镜像
#cp /dev/fd0 mydisk.img 直接把软盘设备文件作源文件复制到软盘镜像文件
#file mydisk.img
从镜像文件制作软盘
#cpmydisk.img /dev/fd0
把软盘镜像文件挂载到文件系统中指定目录
#mount–oloop boot.img /mnt/floopy/
#ls/mnt/floppy
#umount/mnt/floppy
MS-DOS下制作启动盘:
D:\>dosutils>rewrite
\images\bootdisk.img
写入的映像目录和名称
A: 写入映像的驱动器盘符
在Linux系统下:
#mount /dev/cdrom /mnt/cdrom
#cd /mnt/cdrom/images
#dd if=bootdisk.img of=/dev/fd0bs=1440K
Mtools工具集中的命令只对FAT格式软盘进行操作
Mattrib mdel mlabel #mshowfat a:*(显示软盘中分配给指定文件的簇)
Mbadblocks mdeltree mmd mtools
Mcd mdir #mmount a: mtoolstest
#mchecka: mdu mmove mtype
Mcomp mformat mrd mzip mcopy #minfo a: mren
使用USB存储设备 Linux中把usb存储设备作为SCSI设备
/dev/sda 第一个SCSI设备
/dev/sdb 第二个SCSI设备
/dev/sda1 第一个SCSI设备上的第一个主分区
/dev/sda2 第一个SCSI设备上的第二个主分区
/dev/sda5 第一个SCSI设备上的第一个逻辑分区
/dev/sda6 第一个SCSI设备上的第二个逻辑分区
U盘:如果U盘中没有分区,使用相应的SCSI设备的设备文件名进行挂载
如果U盘中存在分区,使用相应分区的设备文件名进行挂载
USB硬盘:使用mount命令挂载USB硬盘,需指定相应分区的设备文件名
#mount–tvfat /dev/sdb1 /mnt/usb-disk/
#umount /mnt/usb-disk/
Linux中的分区与FS
Ext3在ext2上加入文件系统日志,宕机重启时,OS会根据文件系统的日志快速检测并恢复文件系统到正常
Swap 用于OS管理内存的交换空间
Vfat Linux中把DOS下所有FAT文件系统称为VFAT
NFS 用于在Linux系统间通过网络进行文件共享 把NFS服务器提供的共享目录挂 载到本地文件目录中
ISO9660 光盘所选用的标准文件系统
日志文件系统 reiserfs jfs文件系统
建立使用文件系统 假设在Linux系统中添加并使用新硬盘
Mke2fs 建立ext3文件系统
Mkdosfs 建立Vfat文件系统
Mkreiserfs 建立reiser文件系统
Mkfs.jfs 建立jfs文件系统
Mkswap 建立swap文件系统
#fdisk
#fdisk /dev/hda
#fdisk /dev/hdb
Q 查看分区信息 n 新建分区信息
P 建立主分区 1-4 指定主分区号 或指定分区的启始/结束柱面号
P 查验分区设置 w 保存分区设置 q 不保存退出
Parted 用于对指定硬盘中的分区进行维护
#mke2fs /dev/hdb1
#e2label /dev/hdb1/var/ftp 设卷标
#e2label /dev/hdb1
/var/ftp
#findfs LABEL=/var/ftp 查找指定卷标的文件系统
/dev/hdb1
#e2fsck /dev/hdb1 不能用于检测系统中已装载的文件系统
#e2fsck /dev/sda1
#mount
#more /etc/mtab
#mount /dev/hdb1(设备文件名,分区) /var/ftp(挂载点目录)
#mount |grephdb1
#umount/var/ftp
#more /etc/fstab 设置系统启动时自动挂载FS
文件系统:Linux中的一切都配置成文件,文件系统通常挂载到指定分区
/ 所有其它目录都在文件系统层次的根目录下
/bin 包含基本命令行实用程序,不能在另一个分区配置这个目录,存放普通用户执行的命令,如cp、rpm、kill、tar、mv、rm与ping等常用命令,还有各种不同的Shell,如bash、bash2、tcsh等。
/sbin:此目录存放启动系统需运行,例如 fsck、init、grub、lilo与swapon等
/boot 系统启动所要的命令与文件,如:GRUB/内核,通常使用独立分区,
/dev 设备驱动程序文件 如:/dev/fd0 /mnt/floppy
/etc 基本的配置命令/文件,如口令,监控程序,X窗口,/etc/X11,/etc/rc.d等
/home 除root用户以外的所有用户的主目录
/initrd 配置启动期间初始内存盘使用的空目录,如删除该目录,系统不能启动
/lib 列出几个不用应用程序和Linux内核所需的程序库(共享的函数库),而/lib/modules存放系统内核的模块。某些可被模块化的部分,并不需要在编译系统内核本体,避免内核过大导致效率较低。
/lost+found 文件系统发生问题时,Linux会自动扫描磁盘试图修正错误,若找到遗失或错误的区域,会将这些区域转成文件存放于目录中,等候管理员进一步处理。(如fsck)
/misc 默认为空,供管理员堆放公共杂物。默认权限时全部用户都可以读取和执行文件,但是只有管理员能够写入文件。(共享NFS目录的公共挂载点)
/mnt /mnt/floppy /mnt/cdrom /mnt/zip等可移动存储设备的挂载点
/opt 包括sun staroffice与corel wordperfect之类的第三方应用程序的标准位置
/proc系统内核和执行程序之间的信息,执行ps、free等命令时所看到的信息,就是从这里读取。该目录内的文件并非真的存在,用户看到的虚拟文件。当前运行的所有内核相关进程该目录中的所有文件列出当前资源分配
/root 根用户主目录
/sbin 系统管理命令
/tftpboot支持无盘工作站,也称为远程终端,,无盘工作站从Linux终端服务器装载该目录
/tmp 供全部用户临时放置文件的专用存储地址,(具有读/写/执行权限)也是下载存储之处,默认/etc/cron.daily/tmpwatch脚本从该目录中清除超过10天的文件
/usr 包括所有用户可用的程序和数据
/usr/bin:放置用户可以执行的命令程序,如find、free、gcc等。
/usr/share/doc:存放各种文件的目录。
/usr/share/man:放置多种帮助文件。
/usr/src:存放源代码的地方,Linux系统内核的源代码就放在此目录下。
/var 变量数据,包括日志和打印假脱机,该目录经常装载到另一个分区
/proc当前运行的所有内核相关进程
/misc共享NFS目录的公共挂载点
/initrd 配置启动期间初始内存使用的空目录,删除则Linux无法启动
/lib应用程序和Linux内核所需的程序库
/lost+found
逻辑卷管理:实现磁盘空间的动态划分和调整
1.PV 物理卷 可以是分区或整个硬盘
2.VG(卷组) 建立在物理卷上,一个VG中至少要包括一个物理卷可动态添加物理卷到卷 组中,LVM中可只有一个卷组或多个
3.LV (逻辑卷) 建立在卷组上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展或缩小空间,多个逻辑卷可以属于同一个卷组,也可属于不同的卷组
4.PE(物理区域) 是物理卷中可用于分配的最小存储单元,物理区域大小确定后将不能更改,同一卷组中的所有物理卷的PE大小需一致
5.LE(罗辑区域) 逻辑卷中可用于分配的最小存储单元,LE大小取决于逻辑卷所在卷组中的物理区域大小
6.VGDA(卷组描述区域)存于每个物理卷中,用于描述该物理卷本身,物理卷所属卷组,卷组中的逻辑卷,逻辑卷中物理区域的分配,它是在使用PVcreate建立物理卷时建立的
LVM的操作 物理卷可建立在整个物理硬盘上(不需要在该磁盘上建立任何分区),也可建立在硬盘分区上(需事先对硬盘进行分区,并设置分区为LVM),
1. 建立LVM类型的分区
#fdisk /dev/hdb
N 新建分区 t 改变分区类型
P 建立主分区 P 查看分区
2.建立物理卷
#pvdisplay /dev/hdb1
#pvcreate /dev/hdb1
3.使用物理卷建立卷组
#vgcreate myvg /dev/hdb1
4.在卷组中建立逻辑卷
#lvcreate -L 10M -n myLv1 myvg
5.在逻辑卷上建立文件系统 ext3 reiserfs
6.将文件系统挂载到Linux系统目录中,不能是/boot文件系统
7.在卷组中添加新的物理卷
#vgextend myvg /dev/hdb2
8.扩充逻辑卷的容量
#lvextend -L +4M /dev/my vg/myLv
#lvreduce
调整逻辑卷中文件系统
1.ext2文件系统 调整该文件系统大小需使用resize2fs 需先卸载ext2fs,也可使用LVM 自带的e2fsadm命令同时对逻辑卷和ext2文件系统调整大小,省去了lvextend,在执行e2fsadm前同样先卸载
2.reiserfs文件系统 resize-reiserfs可调整其大小,可不卸载文件系统
LVM中的设备文件
1.物理卷设备文件 物理卷直接建立在物理硬盘或分区上
#pvscan
2.卷组设备文件 使用/dev 下与卷组同名的目录表示,卷组目录在使用vgcreate命令创建卷组时创建
#vgscan
#LL –d /dev/myvg*
#LL /etc/lvmtab.d/ 其中有卷组的信息文件,每个卷组对应一个同名文件
3.逻辑卷设备文件 位于其所在卷组的卷组目录中,使用lvcreate命令建立逻辑卷组时创建
#lvscan
#LL/dev/myvg /*
物理卷命令
Pvchange 改变PV属性 #pvchange–X y /dev/hdb1 #pvchange –allocation n /dev/hdb1
Pvcreate
Pvdata 显示PV上的VGDA信息 #pvdata /dev/hdb1
Pvdisplay 显示PV属性 #pvdisplay /dev/hdb1
Pvmove 在PV间移动PE/LE
Pvscan 在硬盘中查找PV
#pvcreate /dev/hdb2
#pvmove /dev/hdb2
卷组命令
Vgcfgbackup 用于把卷组中的VGDA信息备份到/etc/lvmconf目录中的文件
Vgcfgrestore 从卷组备份文件中恢复指定物理卷的VGDA信息,再执行vgmknodes
Vgchange 改变卷组的相应属性,卷组中可容纳的最大逻辑卷数,卷组是否有效,是否可分配lvscan
Vgck 检查卷组中卷组描述区域VGDA信息的一致性
Vgcreate 使用指定的物理卷创建卷组
Vgdisplay 显示卷组的属性信息(逻辑卷,物理卷及其大小)
Vgexport 输出一个卷组,使系统不可识别该卷组,输出的卷组不能被vgscan识别
Vgextend 将一个/多个已初始化的物理卷添加到指定卷组
Vgimport 输入一个已输出的卷组,使当前系统可以识别该卷组
Vgmerge 合并两个已存在的卷组,要求两个卷组的PE大小相等,(源卷组非活动)
Vgmknodes建立,重建已有卷组的卷组目录和其中的设备文件
Vgreduce 从卷组中去除一个/多个未使用的物理卷
Vgremove 删除指定的卷组(被删的卷组中不含逻辑卷),该卷组不能是活动的
Vgrename 原卷组名路径,新卷组名路径
Vgscan 查找卷组,建立/etc/Lvmtab目录,/etc/Lvmtab.d文件
Vgsplit 将一个/多个物理卷从其所在的卷组分离到新创建的卷组,被拆分的卷组应是活动的,被分离出的物理卷中不含任何逻辑卷
逻辑卷命令:
E2fsadm
Lvchange
Lvcreate
Lvdisplay
Lvextend
Lvreduce 逻辑卷中被减少部分的数据将会丢失
Lvremove
Lvrename
#e2fsadm -L +4M /dev/myvg/myLv
#Lvcreate -L 10M–nmyLv1 myvg
#Lvremove /dev/myvg/myLv1
逻辑卷管理命令:
Lvchange 复位逻辑卷管理器,设置所有卷组,逻辑卷处于非活动状态
Lvmdiskscan 检测所有SCSI,IDE设备,输出摘要信息
Lvmsadc 收集逻辑卷的读写统计数据 保存到指定日志文件
Lvmsar 报告lvmsadc命令收集的数据,从lvmsadc生成的日志文件中读取
#lvmsadc lvmlog
#lvmsar lvmlog
管理分区:
#fdisk–L
-a设置或清除可引导标志
-d 删除分区
-L列出已知分区
-m显示可用的fdisk实用命令
-n配置新分区
-P列出当前分区表
-q退出不保存
-t可改变分区系统ID 82是swap分区
-v验证
-w 保存
#mkfs -t ext2/dev/sdb1
-t ext3
-t vfat
#mkswap /dev/sdb5 设置为交换分区
#tunne2fs -j/dev/hdb1 将ext2文件系统生成杂志,变成ext3
#du 列出当前目录及下面的每个文件所用的空间量
#df 每个硬盘卷上的*空间量
Rpm包的管理
#rpm–qa|more 分页显示
#rpm–qa|grepX
#rpm–qixinetd 查询系统是否已安装指定软件包(描述信息)
#rpm–q xinetd file bash 在同一命令中查询多个软件包
#rpm–qf/etc/passwd 查询系统中指定文件所属的软件包
#rpm–qpcvs-1.11.2… 查询RPM包文件中的信息,常用于未安装软件包之前了解
#rpm–qpi…
#rpm–qpL…
#rpm–ivh vcs…
#rpm–e软件包的名 不是软件包安装文件名
#rpm–Ucvs-1.11.2…
RPM包的公钥管理
#rpm --test -i cvs-1.11.2…
#head /mnt/cdrom/RPM-GPG-KEY
#rpm –import /mnt/cdrom/RPM-GPG-KEY
#rpm –qa gpg-pubkey* 查询系统中安装的所有RPM公钥
Gpg-pubkey-db42ab…
#rpm–qigpg-pubkey-db42ab… 查询指定RPM公钥的详细信息
#rpm–kcvs-1.11.2… 对RPM包做多种形式的校验,检验有效性
Linux中的进程管理
#w 显示当前主机中已登录的所有用户及用户当前所执行的命令
#who 显示登录到系统的所有用户
#whoam I #id un
#id 显示指定用户的uid gid
#LL/bin |head -4
可执行的程序种类:
1.二进制可执行程序,类似DOS中的.com .exe
#file/bin/ls 不能使用文本文件命令查看
2.可执行脚本文件
#file/etc/rc.d/init.d/xinetd
#LL /etc/rc.d/init.d/xinetd
#head/etc/rc.d/init.d/xinetd 可使用文本文件命令对可执行脚本程序进行浏览编辑
命令程序的路径
#pwd
#/bin/uname
#../bin/uname
#echo $PATH
/usr/local/sbin : /usr/local/bin : /sbin : /bin : /usr/sbin: /usr/bin :
#uname
#su–user1
$echo$PATH
/bin : /usr/bin : /usr/local/bin : /usr/bin/x11:
#./install 执行当前目录下的某应用程序的安装程序
#startx & 在后台运行程序
Ctrl+z 把当前控制台中的运行程序挂到后台
Jobs 显示当前控制台中后台进程
Fg 后台进程号 恢复后台进程到前台
Bg 后台进程号 恢复后台挂起的进程
Ps(-e)|head 显示当前所有控制台的进程
Top 显示CPU,内存利用率,进程状态(实时监控)
Free 显示内存使用情况
#ps|grep vi
#kill7740
#kill-9 进程号 强行结束指定进程的运行(非正常结束)
#ps |grep vi
#killall vi
#killall -9 vi
用户与组的管理:
#silent:x:600:100::/home/silent/bin/bash在账号最前面加上“#”暂停用户登录
[root@freeroot]# userdel
–r silent 一并将其用户帐号,目录及邮件文件都删除。
[root@freeroot]# crontab
–u silent -1 查看用户设置的计时器
[root@freeroot]# crontab
–u silent –r删除该用户的计时器文件。
#LL /etc/passwd 只定义用户帐号,不保存口令
Password中各字段划分
Account: 登录使用的用户名
Password 用户口令
Uid
Gid 所属私有组号,对应group文件中的gid
Gecos 用户信息说明字段,保存用户全名的信息
Directory 用户宿主目录
Shell 用户使用的shell 空白则为使用/bin/sh
#LL/etc/shadow 存放已加密的用户口令,只有root用户可读
#LL/etc/group 存放用户的组帐号信息
#head/etc/group
Group文件中每个用户组的信息字段
Group-name:
Password:
Gid:
User-list: 属于该组的用户成员列表
#LL/etc/gshadow 定义用户组口令,组管理员信息,只有root用户可读
该文件的信息字段:
Groupname 用户组名称
Encryptedpassword 用户组口令
Groupadministrators 组的管理员帐号,管理员有权对该组添、删除帐户
Gourpmembers 属于该组的用户成员列表 “,分隔”
#vipw 对Password文件编辑时自动锁定该文件,结束后解锁,比直接使用VI安全
#vigr 对group文件编辑时自动锁定该文件, 结束后解锁,比直接使用VI安全
#pwck 检测/etc/group /etc/shadow每行字段的格式值是否正确
#grpck 检测/etc/group /etc/gshadow每行字段的格式值是否正确
#useradduser1 passwd XXX
#tail -l /etc/passwd
#tail -l /etc/shadow
#useradd -g root user1
#useradd -D 显示设置useradd命令使用的默认值 /etc/default/useradd
#more /etc/default/useradd
#useradd–D -S /bin/csh
#usermod -L user2 user1 改变user1的用户名为user2
#tail -L /etc/passwd
#usermod -L user1 锁定user1不能登录,在shadow文件中指定用户帐号的口令字段前加入锁定符号!
#usermod -U user1 解锁用户帐号
#tail–L/etc/shadow
#userdel–ruser1 删除用户帐号,同时删除用户宿主目录及邮件池文件
#LL–d/home/user1
#groupaddmygroup
#grepmygroup /etc/group GID>500
#groupadd –r sysgroup
#grep sysgroup /etc/group 建立系统组账号,GID<500
#groupmod -g 503 mygroup
#groupmod -n newgroup mygroup
#grep mygroup /etc/group
#useradd–g mygroup myuser
#groupdelmygroup 当有用户使用组帐号作为私有组时不能删除该组帐号
#userdel -r myuser 先删除用户帐号
#groupdelmygroup
#grepmygroup /etc/group
#passwduser1 只有root用户可指定用户帐号设置口令
$passwd 需先验证当前口令,再可修改
#passwd -s user1 查询指定用户帐号的口令状态
#passwd -L user1 锁定指定用户口令,只有root可使用
#passwd -u user1 解锁指定用户口令,只有root可使用
#passwd -d user1 删除指定用户口令,不能登录,只有root可用该命令
#gpasswd -a user1 bin 添加用户user1到bin组
#groupsuser1
#gpasswd -d user1 bin 从用户组bin中删除用户user1
#groupwd -A user1 users 设置user1为users组的管理员
#groupwd -A users 设置组管理列表为空,可取消组管理员
#grep users /etc/gshadow
#chfn user1 设置指定用户的finger信息,保存在/etc/passwd
#finger user 查询user1的信息
#chsh -L 显示当前系统用的shell
#chsh -s /bin/csh user1 设置用户登录的shell
#id 显示用户当前的uid gid 用户所属的组列表
#whoami 显示当前用户的名称
$su root 普通用户切换到任何用户都需提供口令
#exit
#su -用户帐号 转换到指定用户帐号并改变相应的PATH
$echo$PASH
#groupsroot 显示指定用户所属的组,如未指定用户则显示当前用户所属的组#more /etc/gshadow |grep root
#newgrp 用户所属的组帐号,转换用户的当前组到指定的组帐号,不指定参数转换为用户私有组
#redhat-config-users
CUPS(Common UnixPrinting System)打印管理服务
#rpm -q cups cups-libs 位于第一张光盘
#head /etc/rc.d/init.d/cups
#!/bin/sh
#servicecups start(status/stop)
#chkconfig–listcups
#Ls/etc/cups
CUPS服务器的配置文件 客户端配置文件
#tail /etc/cups/cupsd.conf #head /etc/cups/client.conf
#mancupsd.conf
CUPS打印机配置文件 CUPS类配置文件
#man /etc/cups/printers.conf #LL /etc/cups/classes.conf
#man classes.conf
#redhat-config-printer 打印机配置程序
http://localhost:631 从CUPS所在的Linux主机登录进行管理
Linux是多用户的操作环境,如果任由每个用户存放文件而不加限制,磁盘空间将迅速消耗,很快便无法使用。Quota的功能就是去限制用户运用的磁盘空间。在系统尚未设置磁盘空间时,可用执行quota命令检查自己的磁盘使用空间,若出现下列信息,则表示没有限制:
[lambert@free lambert]$ quota
Disk quotas for user lambert (501):none ← 无限制
这表示用户lambert可以任意堆放文件,直到塞满整个磁盘为之,这样将造成其他用户都无法储存数据。为了避免这种毫无节制、滥用空间的灾难发生,本节将讨论如何为用户设置磁盘空间的限制。
一,编辑fstab文件
用文本编辑程序打开/etc/fstab 文件,其内容如下:
编辑ext3文件系统原有分区的设置表示要创建用户与组的磁盘空间限制:
LABEL=//ext3 defaults,usrquota,grpquota 1 1 ← ext3文件系统分区
倘若只要限制用户或组的磁盘空间,则只需要加上usrquota或grpquota其中一项即可,保存文件后退出,请重新启动。
fstab文件中各字段的意义可用man fstab和man mount命令来查看相关信息。
二,生产配置文件
修改fstab文件后,请先在系统根目录下执行touchaquota.user与touch aquota.group命令,自行创建aquota.user及aquota.group两个文件,接着执行quotacheck命令设置:
[root@free root]# quotacheck –ugavmc
Quotacheck: Scanning / dec/ hda1[/]done
Quotacheck: Checked 10064 directories and 202332files
以下是用于quotacheck命令的参数说明:
-a参数:扫描fstab文件加入quota设置的分区。
-d参数:详细显示命令执行过程,便于调试或了解程序执行的情形。
-g参数:扫描磁盘空间时,计算每个组标识符(GID)所占用的目录和文件数目。
-v参数:标识命令执行过程。
-m参数:强制执行命令。
-c参数:不读取已经存在的aquota数据库,重新扫描硬盘并保存。
进行如上操作后然后重新启动,并设置用户的磁盘空间。
三,执行quotaon
要取消磁盘空间的限制,执行quotaoff -avug命令即可。
[root@free root]# quotaoff –avug
/dec/hda1[/]:group quotas turned off
/dec/hda1[/]:user quotas turned off
四,检查是否超过磁盘限制
一般的用户执行 quota –v命令,可知自己是否超过限制:
[lambert@free lambert]# quota –v
Disk quotas for user lambert(501):
whois
功能说明:查找并显示用户信息。
语 法:whois [帐号名称]
补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
---------------------------------------------------------
whoami
功能说明:先似乎用户名称。
语 法:whoami [--help][--version]
补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。
参 数:
--help 在线帮助。
--version 显示版本信息。
---------------------------------------------------
who
功能说明:显示目前登入系统的用户信息。
语 法:who [-Himqsw][--help][--version][am i][记录文件]
补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的
终端机,登入时间以及从何处登入或正在使用哪个X显示器。
参 数:
-H或--heading 显示各栏位的标题信息列。
-i或-u或--idle 显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
-m 此参数的效果和指定"am i"字符串相同。
-q或--count 只显示登入系统的帐号名称和总人数。
-s 此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
-w或-T或--mesg或--message或--writable 显示用户的信息状态栏。
--help 在线帮助。
--version 显示版本信息。
----------------------------------------------------
w
功能说明:显示目前登入系统的用户信息。
语 法:w [-fhlsuV][用户名称]
补充说明:执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w
指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
参 数:
-f 开启或关闭显示用户从何处登入系统。
-h 不显示各栏位的标题信息列。
-l 使用详细格式列表,此为预设值。
-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V 显示版本信息。
-----------------------------------------------------
vlock(virtual console lock)
功能说明:锁住虚拟终端。
语 法:vlock [-achv]
补充说明:执行vlock指令可锁住虚拟终端,避免他人使用。
参 数:
-a或--all 锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
切换终端机的功能一并关闭。
-c或--current 锁住目前的终端阶段作业,此为预设值。
-h或--help 在线帮助。
-v或--version 显示版本信息。
--------------------------------------------------------
usermod
功能说明:修改用户帐号。
语 法:usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G ][-l][-s ][-u ][用户帐号]
补充说明:usermod可用来修改用户帐号的各项设定。
参 数:
-c 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e 修改帐号的有效期限。
-f 修改在密码过期后多少天即关闭该帐号。
-g 修改用户所属的群组。
-G 修改用户所属的附加群组。
-l 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID。
-U 解除密码锁定。
-------------------------------------------------------
userdel
功能说明:删除用户帐号。
语 法:userdel [-r][用户帐号]
补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
参 数:
-f 删除用户登入目录以及目录中所有文件。
----------------------------------------------------------
userconf
功能说明:用户帐号设置程序。
语 法:userconf [--addgroup ][--adduser ][--delgroup][--deluser ][--help]
补充说明:userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。
参 数:
--addgroup 新增群组。
--adduser 新增用户帐号。
--delgroup 删除群组。
--deluser 删除用户帐号。
--help 显示帮助。
------------------------------------------------------
useradd
功能说明:建立用户帐号。
语 法:useradd [-mMnr][-c ][-d ][-e ][-f ][-g ][-G ][-s][-u ][用户帐号] 或 useradd -D[-b][-e ][-f ][-g ][-G ][-s ]
补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
参 数:
-c 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d 指定用户登入时的启始目录。
-D 变更预设值.
-e 指定帐号的有效期限。
-f 指定在密码过期后多少天即关闭该帐号。
-g 指定用户所属的群组。
-G 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s 指定用户登入后所使用的shell。
-u 指定用户ID。
----------------------------------------------------
uname
功能说明:显示系统信息。
语 法:uname [-amnrsv][--help][--version]
补充说明:uname可显示电脑以及操作系统的相关信息。
参 数:
-a或--all 显示全部的信息。
-m或--machine 显示电脑类型。
-n或-nodename 显示在网络上的主机名称。
-r或--release 显示操作系统的发行编号。
-s或--sysname 显示操作系统名称。
-v 显示操作系统的版本。
--help 显示帮助。
--version 显示版本信息。
-----------------------------------------------------
top
功能说明:显示,管理执行中的程序。
语 法:top [bciqsS][d ][n ]
补充说明:执行top指令可显示目前正在系统中执行的程序,并通过它所提供的互动式界面,用热键加以管理。
参 数:
b 使用批处理模式。
c 列出程序时,显示每个程序的完整指令,包括指令名称,路径和参数等相关信息。
d 设置top监控程序执行状况的间隔时间,单位以秒计算。
i 执行top指令时,忽略闲置或是已成为Zombie的程序。
n 设置监控信息的更新次数。
q 持续监控程序执行的状况。
s 使用保密模式,消除互动模式下的潜在危机。
S 使用累计模式,其效果类似ps指令的"-S"参数。
------------------------------------------------------
tload
功能说明:显示系统负载状况。
语 法:tload [-V][-d ][-s ][终端机编号]
补充说明:tload指令使用ASCII字符简单地以文字模式显示系统负载状态。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形。
参 数:
-d 设置tload检测系统负载的间隔时间,单位以秒计算。
-s 设置图表的垂直刻度大小,单位以列计算。
-V 显示版本信息。
------------------------------------------------------
swatch(simple watcher)
功能说明:系统监控程序。
语 法:swatch [-A ][-c ][-f ][-I ][-P ][-r ][-t ]
补充说明:swatch可用来监控系统记录文件,并在发现特定的事件时,执行指定的动作。swatch所监控的事件以及对应事件的动作都存放在 swatch的配置文件中。预设的配置文件为拥护根目录下的.swatchrc。然而在Red Hat Linux的预设用户根目录下并没有.swatchrc配置文件,您可将/usr/doc/swatch-2.2/config_files/swatchrc.personal文件复制到用户根目录下的.swatchrc,然后修改.swatchrc所要监控的事件及执行的动作。
参 数:
-A 预设配置文件中,动作的分隔字符,预设为逗号。
-c设置文件> 指定配置文件,而不使用预设的配置文件。
-f记录文件> 检查指定的记录文件,检查完毕后不会继续监控该记录文件。
-I分隔字符> 指定输入记录的分隔字符,预设为换行字符。
-P分隔字符> 指定配置文件中,事件的分隔字符,预设为逗号。
-r时间> 在指定的时间重新启动。
-t 检查指定的记录文件,并且会监控加入记录文件中的后继记录。
----------------------------------------------------------
suspend
功能说明:暂停执行shell。
语 法:suspend [-f]
补充说明:suspend为shell内建指令,可暂停目前正在执行的shell。若要恢复,则必须使用SIGCONT信息。
参 数:
-f 若目前执行的shell为登入的shell,则suspend预设无法暂停此shell。若要强迫暂停登入的shell,则必须使用-f参数。
-----------------------------------------------------
sudo
功能说明:以其他身份来执行指令。
语 法:sudo [-bhHpV][-s ][-u ][指令] 或 sudo [-klv]
补充说明:sudo可让用户以其他的身份来执行指定的指令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
参 数:
-b 在后台执行指令。
-h 显示帮助。
-H 将HOME环境变量设为新身份的HOME环境变量。
-k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l 列出目前用户可执行与无法执行的指令。
-p 改变询问密码的提示符号。
-s 执行指定的shell。
-u 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
-v 延长密码有效期限5分钟。
-V 显示版本信息。
--------------------------------------------------------
su(super user)
功能说明:变更用户身份。
语 法:su [-flmp][--help][--version][-][-c ][-s ][用户帐号]
补充说明:su可让用户暂时变更登入的身份。变更时须输入所要变更的用户帐号与密码。
参 数:
-c或--command= 执行完指定的指令后,即恢复原来的身份。
-f或--fast 适用于csh与tsch,使shell不用去读取启动文件。
-.-l或--login 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。
-m,-p或--preserve-environment 变更身份时,不要变更环境变量。
-s或--shell= 指定要执行的shell。
--help 显示帮助。
--version 显示版本信息。
[用户帐号] 指定要变更的用户。若不指定此参数,则预设变更为root。
------------------------------------------------------
sliplogin
功能说明:将SLIP接口加入标准输入。
语 法:sliplogin [用户名称]
补充说明:sliplogin可将SLIP接口加入标准输入,把一般终端机的连线变成SLIP连线。通常可用来建立SLIP服务器,让远端电脑以 SLIP连线到服务器。sliplogin活去检查/etc/slip/slip.hosts文件中是否有相同的用户名称。通过检查后,sliplogin会调用执行shell script来设置IP地址,子网掩码等网络界面环境。此shell script通常是/etc/slip/slip.login。
---------------------------------------------------
shutdown
功能说明:系统关机指令。
语 法:shutdown [-efFhknr][-t 秒数][时间][警告信息]
补充说明:shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
参 数:
-c 当执行"shutdown -h11:50"指令时,只要按+键就可以中断关机的指令。
-f 重新启动时不执行fsck。
-F 重新启动时执行fsck。
-h 将系统关机。
-k 只是送出信息给所有用户,但不会实际关机。
-n 不调用init程序进行关机,而由shutdown自己进行。
-r shutdown之后重新启动。
-t 送出警告信息和删除信息之间要延迟多少秒。
[时间] 设置多久时间后执行shutdown指令。
[警告信息] 要传送给所有登入用户的信息。
-----------------------------------------------------------
screen
功能说明:多重视窗管理程序。
语 法:screen [-AmRvx -ls -wipe][-d ][-h ][-r ][-s ][-S]
补充说明:screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
参 数:
-A 将所有的视窗都调整为目前终端机的大小。
-d 将指定的screen作业离线。
-h 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
----------------------------------------------------
rwho
功能说明:查看系统用户。
语 法:rwho [-a]
补充说明:rwho指令的效果类似who指令,但它会显示局域网里所有主机的用户。主机必须提供rwhod常驻服务的功能,方可使用rwho指令。
参 数:
-a 列出所有的用户,包括闲置时间超过1个小时以上的用户。
----------------------------------------------------
rsh(remote shell)
功能说明:远端登入的Shell。
语 法:rsh [-dn][-l ][主机名称或IP地址][执行指令]
补充说明:rsh提供用户环境,也就是Shell,以便指令能够在指定的远端主机上执行。
参 数:
-d 使用Socket层级的排错功能。
-l 指定要登入远端主机的用户名称。
-n 把输入的指令号向代号为/dev/null的特殊外围设备。
---------------------------------------------------------
rlogin(remote login)
功能说明:远端登入。
语 法:rlogin [-8EL][-e ][-l ][主机名称或IP地址]
补充说明:执行rlogin指令开启终端机阶段操作,并登入远端主机。
参 数:
-8 允许输入8位字符数据。
-e脱离字符> 设置脱离字符。
-E 滤除脱离字符。
-l用户名称> 指定要登入远端主机的用户名称。
-L 使用litout模式进行远端登入阶段操作。
-------------------------------------------------------
renice
功能说明:调整优先权。
语 法:renice [优先等级][-g ...][-p...][-u ...]
补充说明:renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20--19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。
参 数:
-g 使用程序群组名称,修改所有隶属于该程序群组的程序的优先权。
-p 改变该程序的优先权等级,此参数为预设值。
-u 指定用户名称,修改所有隶属于该用户的程序的优先权。
-------------------------------------------------------
reboot
功能说明:重新开机。
语 法:dreboot [-dfinw]
补充说明:执行reboot指令可让系统停止运作,并重新开机。
参 数:
-d 重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有"-n"参数的效果。
-f 强制重新开机,不调用shutdown指令的功能。
-i 在重开机之前,先关闭所有网络界面。
-n 重开机之前不检查是否有未结束的程序。
-w 仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
pstree(process status tree)
功能说明:以树状图显示程序。
语 法:pstree [-acGhlnpuUV][-H ][/]
补充说明:pstree指令用ASCII字符显示树状结构,清楚地表达程序间的相互关系。如果不指定程序识别码或用户名称,则会把系统启动时的第一个程序视为基层,并显示之后的所有程序。若指定用户名称,便会以隶属该用户的第一个程序当作基层,然后显示该用户的所有程序。
参 数:
-a 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。
-c 不使用精简标示法。
-G 使用VT100终端机的列绘图字符。
-h 列出树状图时,特别标明现在执行的程序。
-H 此参数的效果和指定"-h"参数类似,但特别标明指定的程序。
-l 采用长列格式显示树状图。
-n 用程序识别码排序。预设是以程序名称来排序。
-p 显示程序识别码。
-u 显示用户名称。
-U 使用UTF-8列绘图字符。
-V 显示版本信息。
---------------------------------------------------------
ps(process status)
功能说明:报告程序状况。
语 法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C ][-g][-G ][-p ][p ][-s ][-t ][t ][-u ][-U ][U ][-][--cols ][--columns][--cumulative][--deselect][--forest][--headers][--help][-- info][--lines][--no-headers][--group ][-Group ][--pid ][--rows ][--sid ][--tty
][--user][--User ][--version][--width ]
补充说明:ps是用来报告程序执行状况的指令,您可以搭配kill指令随时中断,删除不必要的程序。
参 数:
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外。
a 显示现行终端机下的所有程序,包括其他用户的程序。
-A 显示所有程序。
-c 显示CLS和PRI栏位。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
-C 指定执行指令的名称,并列出该指令的程序的状况。
-d 显示所有程序,但不包括阶段作业领导者的程序。
-e 此参数的效果和指定"A"参数相同。
e 列出程序时,显示每个程序所使用的环境变量。
-f 显示UID,PPIP,C与STIME栏位。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
-g 此参数的效果和指定"-G"参数相同,当亦能使用阶段作业领导者的名称来指定。
g 显示现行终端机下的所有程序,包括群组领导者的程序。
-G 列出属于该群组的程序的状况,也可使用群组名称来指定。
h 不显示标题列。
-H 显示树状结构,表示程序间的相互关系。
-j或j 采用工作控制的格式显示程序状况。
-l或l 采用详细的格式来显示程序状况。
L 列出栏位的相关信息。
-m或m 显示所有的执行绪。
n 以数字来表示USER和WCHAN栏位。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
-p 指定程序识别码,并列出该程序的状况。
p 此参数的效果和指定"-p"参数相同,只在列表格式方面稍有差异。
r 只列出现行终端机正在执行中的程序。
-s 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
-t 指定终端机编号,并列出属于该终端机的程序的状况。
t 此参数的效果和指定"-t"参数相同,只在列表格式方面稍有差异。
-T 显示现行终端机下的所有程序。
-u 此参数的效果和指定"-U"参数相同。
u 以用户为主的格式来显示程序状况。
-U 列出属于该用户的程序的状况,也可使用用户名称来指定。
U 列出属于该用户的程序的状况。
v 采用虚拟内存的格式显示程序状况。
-V或V 显示版本信息。
-w或w 采用宽阔的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
X 采用旧式的Linux i386登陆格式显示程序状况。
-y 配合参数"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
- 此参数的效果和指定"p"参数相同。
--cols 设置每列的最大字符数。
--columns 此参数的效果和指定"--cols"参数相同。
--cumulative 此参数的效果和指定"S"参数相同。
--deselect 此参数的效果和指定"-N"参数相同。
--forest 此参数的效果和指定"f"参数相同。
--headers 重复显示标题列。
--help 在线帮助。
--info 显示排错信息。
--lines 设置显示画面的列数。
--no-headers 此参数的效果和指定"h"参数相同,只在列表格式方面稍有差异。
--group 此参数的效果和指定"-G"参数相同。
--Group 此参数的效果和指定"-G"参数相同。
--pid 此参数的效果和指定"-p"参数相同。
--rows 此参数的效果和指定"--lines"参数相同。
--sid 此参数的效果和指定"-s"参数相同。
--tty 此参数的效果和指定"-t"参数相同。
--user 此参数的效果和指定"-U"参数相同。
--User 此参数的效果和指定"-U"参数相同。
--version 此参数的效果和指定"-V"参数相同。
--widty 此参数的效果和指定"-cols"参数相同。
----------------------------------------------------------
procinfo(process information)
功能说明:显示系统状态。
语 法:procinfo [-abdDfhimsSv][-F ][-n ]
补充说明:procinfo指令从/proc目录里读取相关数据,将数据妥善整理过后输出到标准输出设备。
参 数:
-a 显示所有信息。
-b 显示磁盘设备的区块数目,而非存取数目。
-d 显示系统信息每秒间的变化差额,而非总和的数值。本参数必须配合"-f"参数使用
-D 此参数效果和指定"-d"参数类似,但内存和交换文件的信息为总和数值。
-f 进入全画面的互动式操作界面。
-F 把信息状态输出到文件保存起来,而非预设的标准输出设备。
-h 在线帮助。
-i 显示完整的IRP列表。
-m 显示系统模块和外围设备等相关信息。
-n间隔秒数> 设置全画面互动模式的信息更新速度,单位以秒计算。
-s 显示系统的内存,磁盘空间,IRP和DMA等信息,此为预设值。
-S 搭配参数"-d"或"-D"使用时,每秒都会更新信息,不论是否有使用参数"-n"。
-v 显示版本信息。
----------------------------------------------------
nice
功能说明:设置优先权。
语 法:nice [-n ][--help][--version][执行指令]
补充说明:nice指令可以改变程序执行的优先权等级。
参 数: -n或-或--adjustment= 设置欲执行的指令的优先权等级。等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。
--help 在线帮助。
--version 显示版本信息。
----------------------------------------------------
newgrp
功能说明:登入另一个群组。
语 法:newgrp [群组名称]
补充说明:newgrp指令类似login指令,当它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。
---------------------------------------------------
logrotate
功能说明:管理记录文件。
语 法:logrotate [-?dfv][-s ][--usage][配置文件]
补充说明:使用logrotate指令,可让你轻松管理系统所产生的记录文件。它提供自动替换,压缩,删除和邮寄记录文件,每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc目录下,文件名称为 logrotate.conf。
参 数:
-?或--help 在线帮助。
-d或--debug 详细显示指令执行过程,便于排错或了解程序执行的情况。
-f或--force 强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然。
-s或--state= 使用指定的状态文件。
-v或--version 显示指令执行过程。
-usage 显示指令基本用法。
--------------------------------------------------------
logout
功能说明:退出系统。
语 法:logout
补充说明:logout指令让用户退出系统,其功能和login指令相互对应。
---------------------------------------------------
logname
功能说明:显示用户名称。
语 法:logname [--help][--version]
补充说明:执行logname指令,它会显示目前用户的名称。
参 数:
--help 在线帮助。
--vesion 显示版本信息。
--------------------------------------------------------
login
功能说明:登入系统。
语 法:login
补充说明:login指令让用户登入系统,您亦可通过它的功能随时更换登入身份。在Slackware发行版中,您可在指令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当/etc目录里含名称为nologin的文件时,系统只root帐号登入系统,其他用户一律不准登入。
-------------------------------------------------------
lastb
功能说明:列出登入系统失败的用户相关信息。
语 法:lastb [-adRx][-f ][-n ][帐号名称...][终端机编号...]
补充说明:单独执行lastb指令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容
记录的登入失败的用户名单,全部显示出来。
参 数:
-a 把从何处登入系统的主机名称或IP地址显示在最后一行。
-d 将IP地址转换成主机名称。
-f 指定记录文件。
-n或- 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息。
-------------------------------------------------------
last
功能说明:列出目前与过去登入系统的用户相关信息。
语 法:last [-adRx][-f ][-n ][帐号名称...][终端机编号...]
补充说明:单独执行last指令,它会读取位于/var/log目录下,名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
参 数:
-a 把从何处登入系统的主机名称或IP地址,显示在最后一行。
-d 将IP地址转换成主机名称。
-f 指定记录文件。
-n 或- 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息。
---------------------------------------------------------
kill
功能说明:删除执行中的程序或工作。
语 法:kill [-s ][程序] 或 kill [-l ]
补充说明:kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
参 数:
-l 若不加选项,则-l参数会列出全部的信息名称。
-s 指定要送出的信息。
[程序] [程序]可以是程序的PID或是PGID,也可以是工作编号。
-----------------------------------------------------------
id
功能说明:显示用户的ID,以及所属群组的ID。
语 法:id [-gGnru][--help][--version][用户名称]
补充说明:id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
参 数:
-g或--group 显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name 显示用户,所属群组或附加群组的名称。
-r或--real 显示实际ID。
-u或--user 显示用户ID。
-help 显示帮助。
-version 显示版本信息。
------------------------------------------------------------
halt
功能说明:关闭系统。
语 法:halt [-dfinpw]
补充说明:halt会先检测系统的runlevel。若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
参 数:
-d 不要在wtmp中记录。
-f 不论目前的runlevel为何,不调用shutdown即强制关闭系统。
-i 在halt之前,关闭全部的网络界面。
-n halt前,不用先执行sync。
-p halt之后,执行poweroff。
-w 仅在wtmp中记录,而不实际结束系统。
----------------------------------------------------------
groupmod(group modify)
功能说明:更改群组识别码或名称。
语 法:groupmod [-g ][-n ][群组名称]
补充说明:需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
参 数:
-g 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n 设置欲使用的群组名称。
--------------------------------------------------------
groupdel(group delete)
功能说明:删除群组。
语 法:groupdel [群组名称]
补充说明:需要从系统上删除群组时,可用groupdel指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
----------------------------------------------------------
gitps(gnu interactive tools process status)
功能说明:报告程序状况。
语 法:gitps [acefgjlnrsSTuvwxX][p ][t ][U ]
补充说明:gitps是用来报告并管理程序执行的指令,基本上它就是通过ps指令来报告,管理程序,也能通过gitps指令随时中断,删除不必要的程序。因为gitps指令会去执行ps指令,所以其参数和ps指令相当类似。
参 数:
a 显示 现行终端机下的所有程序,包括其他用户的程序。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或是常驻服务的标示.
e 列出程序时,显示每个程序所使用的环境变量。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
g 显示现行终端机下的所有程序,包括群组领导者的程序。
j 采用工作控制的格式来显示程序状况。
l 采用纤细的格式来显示程序状况。
n 以数字来表示USER和WCHAN栏位。
p 指定程序识别码,并列出该程序的状况。
r 只列出现行终端机正在执行中的程序。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序信息。
t 指定终端机编号,并列出属于该终端机的程序的状况。
T 显示现行终端机下的所有程序。
u 以用户为主的格式来显示程序状况。
U 列出属于该用户的程序的状况。
v 采用虚拟内存的格式显示程序状况。
w 采用宽阔的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
X 采用旧试的Linux i386登陆格式显示程序状况。
----------------------------------------------------------
fwhois
功能说明:查找并显示用户信息。
语 法:fwhios [帐号名称]
补充说明:本指令的功能有点类似finger指令,它会去查找并显示指定帐号的用户相关信息。不同之处在于fwhois指令是到Network Solutions的WHOIS数据库去查找,该帐号名称必须有在上面注册才能寻获,且名称没有大小写的差别。
------------------------------------------------------
free
功能说明:显示内存状态。
语 法: free [-bkmotV][-s ]
补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参 数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
-----------------------------------------------------
finger
功能说明:查找并显示用户信息。
语 法:finger [-lmsp][帐号名称...]
补充说明:finger指令会去查找,并显示指定帐号的用户相关信息,包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行 finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。
参 数:
-l 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容。
-m 排除查找用户的真实姓名。
-s 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。
-p 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。
Linux下Lumaqq的安装:
1、下载LumaQQ 2005
下载地址:http://lumaqq.linuxsir.org/main/?q=node/245
下载带JRE的版本,只需要解压安装就可以使用,免去了安装JRE和配置环境变量的麻烦.
还必需要下载Patch,这是个补丁包.
下载后是一个压缩包lumaqq_2005-linux_gtk2_x86_with_jre.tar.gz
注意如果之前安装过其他版本的LUMAQQ,那么除了要删除以前LUMAQQ的安装文件,还要检查一下HOME目录中是否有lumaqq这个可执行文件,如果有的话务必删除.
2、安装
首先新建一个目录,不要把LUMAQQ安装在系统文件夹中,因为有时需要对LUMAQQ作一些更新,更新过程中的误操作很容易导致系统文件丢失,新建目录/soft,把
lumaqq_2005-linux_gtk2_x86_with_jre.tar.gz,
lumaqq_2005_patch_2006.02.02.15.00.zip复制到该目录下.
#mkdir /soft
#cp lumaqq_2005-linux_gtk2_x86_with_jre.tar.gz /soft
#cp lumaqq_2005_patch_2006.02.02.15.00.zip /soft
解包安装.
#tar -zxvf lumaqq_2005-linux_gtk2_x86_with_jre.tar.gz
解包后的文件都放进了LumaQQ这个目录中.
进入这个目录,然后运行lumaqq可执行文件
#cd LumaQQ/
#./lumaqq
3,使用
第一次运行时可能会有较长时间的好友属性下载配置过程.要多等一段时间(大约半小时).有时候好友属性会因为种种原因无法配置,这是该版本QQ的BUG. LUMAQQ修补BUG的补丁叫作Patch,安装它还可以修复不少这个版本LUMAQQ的BUG.
把下载的lumaqq_2005_patch_2006.02.02.15.00.zip解压,解压后的文件全部覆盖到LumaQQ/目录下的lib目录中.
#unzip lumaqq_2005_patch_2006.02.02.15.00.zip
#unzip -d /soft/LumaQQ/lib/ -o lumaqq_2005_patch_2006.02.02.15.00.zip
Linux控制台下的中文处理—zhcon
下载zhcon0.2.5及升级补丁:http://sourceforge.net/projects/zhcon
执行:
tar -zxvf zhcon-0.2.5.tar.gz
cd zhcon-0.2.5
zcat ../zhcon-0.2.5-to-0.2.6.diff.gz | patch -p1
./configure
make
make install
运行zhcon:
zhcon --utf8
这样运行后可以显示中文文件名,但vi编辑有中文文件内容时还是有问题
目前的解决办法:
1.要进行中文文件名操作时用 zhcon --utf8运行,把文件名改为英文,然后CTRL+D退出
2.运行zhcon,编辑有中文内容的英文文件名就OK了
Linux最初的开放完全是围绕ASCII编码体系进行的,没有考虑非英语用户面临的问题,因此导致其使用门槛较高,尤其对于亚洲用户而言,由于采用象形文字的特殊性(包括中文、日文、韩文,简称为CJK),使得对Linux进行本地化更为困难。在这样的背景下,ejoy等人发起了zhcon项目。该项目的目标是“为中文Linux使用者提供一个便捷易用的中文环境,特别适用于初学者,以及需要发布linux中文应用程序的开发者。”
本文结合zhcon的最新版本0.2.6对在Linux的安装进行简要的说明。zhcon的源代码和RPM包可以从http://zhcon.sourceforge.net/下载得到。本文中需要下载的文件有两个:一个是zhcon-0.2.5.tar.gz,一个是zhcon-0.2.5-to-0.2.6.diff.gz。假设都将这两个文件下载到/root目录下。
首先解压并解包zhcon-0.2.5.tar.gz文件:
[root@cyczhcon]# tar -zxvf zhcon-0.2.5.tar.gz
解压之后在/root目录下得到一个zhcon-0.2.5。这个目录包含了zhcon-0.2.5版本的所有源代码和man手册等。
然后将zhcon-0.2.5-to-0.2.6.diff.gz解压:
[root@cyczhcon]# gzip -d zhcon-0.2.5-to-0.2.6.diff.gz
解压后得到zhcon-0.2.5-to-0.2.6.diff文件。这个文件实际上是一个补丁文件,通过下面的命令将此文件打补丁到zhcon-0.2.5的源代码中:
[root@cyczhcon]# patch -p0 < zhcon-0.2.5-to-0.2.6.diff
这样,原来的0.2.5版本的zhcon就升级到了0.2.6版本了。接下来的过程就是UNIX平台固定的“安装三步曲”了:
[root@cyc zhcon-0.2.5]#./configure 配置
[root@cyczhcon-0.2.5]# make 编译
[root@cyczhcon-0.2.5]# make install 安装
这样,中文控制台终端zhcon就安装好了。要使用zhcon,只需要在控制台下键入命令:
[root@cyczhcon-0.2.5]# zhcon
要获取zhcon的帮助信息,只需要输入man zhcon命令即可,另外,zhcon的man手册说配置文件zhcon.conf位于/etc目录下,但是在0.2.6版本中zhcon.conf是位于/usr/local/etc/目录下的,此外,zhcon所用到的字体资源等是位于/usr/local/lib/zhcon/目录下的。除了可以用于Linux之外,zhcon目前还被移植到了FreeBSD平台上。历史原理参见:http://zhcon.sourceforge.net/develop_cn.html。