47)passwd *
1.作用 passwd命令原来修改账户的登陆密码,使用权限是所有用户。
2.格式
passwd [选项] 账户名称
3.主要参数
-l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。
-u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
-x, --maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-n, --minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。
-S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。
4.应用实例
$ passwd
Changing password for user cao.
Changing password for cao
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
从上面可以看到,使用passwd命令需要输入旧的密码,然后再输入两次新密码。
(48)su **
1.作用
su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
2.格式
su [选项]... [-] [USER [ARG]...]
3.主要参数
-f, --fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l, --login:加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。
-m, -p ,--preserve-environment:执行su时不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
USER:欲变更的使用者账号,ARG传入新的Shell参数。
4.应用实例
变更账号为超级用户,并在执行df命令后还原使用者。 su -c df root
(49)umask
1.作用
umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。
2.格式
umask [-p] [-S] [mode]
3.参数
-S:确定当前的umask设置。
-p:修改umask 设置。
[mode]:修改数值。
4.说明
传统Unix的umask值是022,这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,那么这种“组保护模式”就不在需要了。严密的权限设定构成了
Linux安全的基础,在权限上犯错误是致命的。需要注意的是,umask命令用来设置进程所创建的文件的读写权限,最保险的值是0077,即关闭创建文件的进程以外的所有进程的读写权限,表示为-rw-------。在~/.bash_profile中,加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。
5.应用实例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先显示当前状态,然后把umask值改为177,结果只有文件所有者具有读写文件的权限,其它用户不能访问该文件。这显然是一种非常安全的设置。
(50)chgrp
1.作用
chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。
2.格式
chgrp [选项]... 组 文件...
或
chgrp [选项]... --reference=参考文件 文件...
将每个<文件>的所属组设定为<组>。
3.参数
-c, --changes:像 --verbose,但只在有更改时才显示结果。
--dereference:会影响符号链接所指示的对象,而非符号链接本身。 -h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。
-f, --silent, --quiet:去除大部分的错误信息。
--reference=参考文件:使用<参考文件>的所属组,而非指定的<组>。
-R, --recursive:递归处理所有的文件及子目录。
-v, --verbose:处理任何文件都会显示信息。
4.应用说明
该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
5.应用实例
改变/opt/local /book/及其子目录下的所有文件的属组为book,命令如下:
$ chgrp - R book /opt/local /book
(51)chmod **
指令名称 : chmod
使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
说明 :
Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。
把计 :
mode :权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c :若该档案权限确实已经更改,才显示其更改动作
-f :若该档案权限无法被更改也不要显示错误讯息
-v :显示权限变更的详细资料
-R :对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help :显示辅助说明
--version :显示版本
范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 : chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
范例:
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file
效果相同
若用chmod 4755 filename可使此程式具有root的权限
(52)chown ** 1.作用 更改一个或多个文件或目录的属主和属组。使用权限是超级用户。
2.格式
chown [选项] 用户或组 文件
3.主要参数
--dereference:受影响的是符号链接所指示的对象,而非符号链接本身。
-h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。
--from=目前所有者:目前组只当每个文件的所有者和组符合选项所指定的,才会更改所有者和组。其中一个可以省略,这已省略的属性就不需要符合原有的属性。
-f, --silent, --quiet:去除大部分的错误信息。
-R, --recursive:递归处理所有的文件及子目录。
-v, --verbose:处理任何文件都会显示信息。
4.说明
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户ID;组可以是组名或组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限。
5.应用实例
1.把文件shiyan.c的所有者改为wan
$ chown wan shiyan.c
2.把目录/hi及其下的所有文件和子目录的属主改成wan,属组改成users。
$ chown - R wan.users /hi
(53)touch
使用权限:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
参数:
a改变档案的读取时间记录。
m改变档案的修改时间记录。
c假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f不使用,是为了与其他 unix 系统的相容性而保留。
r使用参考档的时间记录,与 --file 的效果一样。
d设定时间与日期,可以使用各种不同的格式。
t设定档案的时间记录,格式与 date 指令相同。
--no-create不会建立新档案。
--help列出指令格式。
--version列出版本讯息。
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
touch file
touch file1 file2
将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
将 file 的时间记录改变成与 referencefile 一样。
touch -r referencefile file
将 file 的时间记录改成 5 月 6 日 18 点 3 分,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file
touch -d " 05/06/2000" file
touch -d "6:03pm 05/06/2000" file
(54)split
使用权限:所有使用者 使用方式:split [OPTION] [INPUT [PREFIX]]
说明:
将一个档案分割成数个。而从 INPUT 分割输出成固定大小的档案,其档名依序为 PREFIXaa, PREFIXab...;PREFIX 预设值为 `x。若没有 INPUT 档或为 `-,则从标准输入读进资料。
匡兜
-b, --bytes=SIZE
SIZE值为每一输出档案的大小,单位为 byte。
-C, --line-bytes=SIZE
每一输出档中,单行的最大 byte 数。
-l, --lines=NUMBER
NUMBER值为每一输出档的列数大小。
-NUMBER
与 -l NUMBER 相同。
--verbose
于每个输出档被开启前,列印出侦错资讯到标准错误输出。
--help
显示辅助资讯然后离开。
--version
列出版本资讯然后离开。
SIZE可加入单位: b 代表 512, k 代表 1K, m 代表 1 Meg。
范例:
PostgresSQL大型资料库备份与回存:
因 Postgres 允许表格大过你系统档案的最大容量,所以要将表格 dump 到单一的档案可能会有问题,使用 split进行档案分割。
% pg_dump dbname | split -b 1m - filename.dump.
重新载入
% createdb dbname
% cat filename.dump.* | pgsql dbname
(55)ps **
1.作用
ps显示瞬间进程 (process) 的动态,使用权限是所有使用者。
2.格式
ps [options] [--help]
3.主要参数
ps的参数非常多, 此出仅列出几个常用的参数。
-A:列出所有的进程。
-l:显示长列表。
-m:显示内存信息。
-w:显示加宽可以显示较多的信息。
-e:显示所有进程。
a:显示终端上的所有进程,包括其它用户的进程。
-au:显示较详细的信息。
-aux:显示所有包含其它使用者的进程。
4.说明
要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的作用:ps aux执行后,USER表示进程拥有者;PID表示进程标示符;%CPU表示占用的CPU使用率;%MEM占用的物理内存使用率;VSZ表示占用的虚拟内存大小;RSS为进程占用的物理内存值;TTY为终端的次要装置号码。
STAT表示进程的状态,其中D为不可中断的静止(I/O动作);R正在执行中;S静止状态;T暂停执行;Z不存在,但暂时无法消除;W没有足够的内存分页可分配;高优先序的进程;N低优先序的进程;L有内存分页分配并锁在内存体内 (实时系统或 I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。
4.应用实例
在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量进程的情况。除了可以使用top命令查看内存使用情况之外,还可以使用下面的命令:
ps aux | sort +5n
(56)who *
1.作用
who显示系统中有哪些用户登陆系统,显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用,以及做了些什么。 使用权限为所有用户。
2.格式
who - [husfV] [user]
3.主要参数
-h:不要显示标题列。
-u:不要显示使用者的动作/工作。
-s:使用简短的格式来显示。
-f:不要显示使用者的上线位置。
-V:显示程序版本。
4.说明
该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然 talk进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。who命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。 动手练习5
1.使用
Linux命令检测系统入侵者
安装过Mandrake
Linux和Red Hat
Linux的用户都会知道,
Linux系统会内置三种不同级别(标准、高、更高)的防火墙,当进行了
Linux服务器的安装和一些基本的设置后,服务器应该说是比较安全的,但是也会有黑客通过各种方法利用系统管理员的疏忽侵入系统。如何快速查找黑客非常重要。一般来说,可以使用命令查询黑客是否入侵,见表 1。
表1 查询黑客入侵现象的命令对应表
举例说明,如果黑客嗅探网络,那么它必须使网卡接口处于混杂模式,使用下面命令进行查询:
#ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1
......
从这个命令的输出中,可以看到上面讲到的这些概念。第一行的00:00:E8:A0:25:86是mac地址,第二行的192.168.1.7是IP地址,第四行讲的是接收数据状态,这时正在被黑客嗅探。一般而言,网卡有几种接收数据帧的状态,如Broadcast、Multicast、 Promiscuous等。Broadcast是指接收所有类型为广播报文的数据帧;Multicast是指接收特定的组播报文;Promiscuous 则是通常说的混杂模式,是指对报文中的目的硬件地址不加任何检查、全部接收的工作模式。
2.限制su命令的滥用
我们知道,超级用户在
Linux中有最大的权利,几乎所有黑客都想得到这个目标。
Linux可以增加对切换到超级用户的限制。使用PAM (Pluggable Authentication Modules)可以禁止除在wheel组以外的任何人su成root,修改/etc/pam.d/su文件,除去屏蔽标识#。使用 /usr/sbin/usermod G10 bjecadm将bjecadm这个账号加入gid为10的组,就是wheel组。命令如下:
/etc/pam.d/su #使用密码验证#
auth sufficient /lib/security/pam_wheel.so debug
#限制只有wheel组用户才可以切换到root#
auth required /lib/security/pam_wheel.so use_uid
chmod -G10 bjecadm
另外,每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/sulog文件中写一条信息,若该文件记录了大量试图用su进入root的无效操作信息,则表明了可能有人企图破译root口令。
Linux命令有着强大的功能。对于
Linux系统管理员来说,往往只需要通过各种安全命令技巧,组合构成安全防线。从计算机安全的角度看,世界上没有绝对安全的计算机系统,
Linux系统也不例外。
6、其它
在前面几讲中,我们把
Linux命令按照在系统中的作用分成几个部分分别予以介绍。但是,还有一些命令不好划分,然而学习它们同样是比较重要的。
(57)tar **
1.作用
tar命令是Unix/
Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。
2.格式
tar [主选项+辅选项] 文件或目录
3.主要参数
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
-c创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-r把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t列出档案文件的内容,查看已经备份了哪些文件。
-u更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
-x从档案文件中释放文件。
辅助选项:
-b该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512 bytes)。
-f使用档案文件或设备,这个选项通常是必选的。
-k保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
-m在还原文件时,把所有文件的修改时间设定为现在。
-M创建多卷的档案文件,以便在几个磁盘中存放。
-v详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
-w每一步都要求确认。
-z用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
4.应用说明
tar是Tape Archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。如果下载过
Linux的源代码,或许已经碰到过tar文件
请注意,不要忘了
Linux是区分大小写的。例如,tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如,-t和-T执行不同的功能。文件或目录名称可以混合使用大小写,而且就像命令和命令行开关一样是区分大小写的。
5.应用实例
tar是一个命令行的工具,没有图形界面。使用Konsole打开一个终端窗口,接下来是一个简单的备份命令(在/temp目录中创建一个back.tar的文件,/usr目录中所有内容都包含在其中。):
$tar cvf - /usr > /temp/back.tar
另外,tar命令支持前面第三讲中讲过的crontab命令,可以用crontab工具设置成基于时间的有规律地运行。例如,每晚6点把/usr目录备份到hda—第一个IDE接口的主驱动器 (总是位于第一个硬盘)中,只要将下面语句添加到root的crontab中即可:
$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr
一般情况下,以下这些目录是需要备份的:
◆/etc 包含所有核心配置文件,其中包括网络配置、系统名称、防火墙规则、用户、组,以及其它全局系统项。
◆ /var 包含系统守护进程(服务)所使用的信息,包括DNS配置、DHCP租期、邮件缓冲文件、HTTP服务器文件、dB2实例配置等。
◆/home 包含所有默认用户的主目录,包括个人设置、已下载的文件和用户不希望失去的其它信息。
◆/root 根(root)用户的主目录。
◆/opt 是安装许多非系统文件的地方。IBM软件就安装在这里。OpenOffice、JDK和其它软件在默认情况下也安装在这里。 有些目录是可以不备份的:
◆ /proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图,包括诸如/proc/kcore这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。
◆/dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,就可以备份/dev。然而,如果计划还原到一个已安装的
Linux 系统,那么备份/dev是没有必要的。
(58)unzip *
1.作用
unzip命令位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip及MS Windows中的Winzip软件功能一样,将文件压缩成.zip文件,以节省硬盘空间,当需要的时候再将压缩文件用unzip命令解开。该命令使用权限是所有用户。
2.格式
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>]
3.主要参数
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f:更新现有的文件。
-l:显示压缩文件内所包含的文件。
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t:检查压缩文件是否正确。
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中。
-v:执行是时显示详细的信息。
-z:仅显示压缩文件的备注文字。
-a:对文本文件进行必要的字符转换。
-b:不要对文本文件进行字符转换。
-C:压缩文件中的文件名称区分大小写。
-j:不处理压缩文件中原有的目录路径。
-L:将压缩文件中的全部文件名改为小写。
-M:将输出结果送到more程序处理。
-n:解压缩时不要覆盖原有的文件。
-o:不必先询问用户,unzip执行后覆盖原有文件。
-P<密码>:使用zip的密码选项。
-q:执行时不显示任何信息。
-s:将文件名中的空白字符转换为底线字符。
-V:保留VMS的文件版本信息。
-X:解压缩时同时回存文件原来的UID/GID。
[.zip文件]:指定.zip压缩文件。
[文件]:指定要处理.zip压缩文件中的哪些文件。
-d<目录>:指定文件解压缩后所要存储的目录。
-x<文件>:指定不要处理.zip压缩文件中的哪些文件。
-Z unzip:-Z等于执行zipinfo指令。在
Linux中,还提供了一个叫zipinfo的工具,能够察看zip压缩文件的详细信息。unzip最新版本是5.50。
(59)gunzip *
1.作用
gunzip命令作用是解压文件,使用权限是所有用户。
2.格式
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...]
或者
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]
3.主要参数
-a或--ascii:使用ASCII文字模式。
-c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备。
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。
-h或--help:在线帮助。
-l或--list:列出压缩文件的相关信息。
-L或--license:显示版本与版权信息。
-n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。
-N或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。
-q或--quiet:不显示警告信息。
-r或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或--suffix<压缩字尾字符串>:更改压缩字尾字符串。
-t或--test:测试压缩文件是否正确无误。
-v或--verbose:显示指令执行过程。
-V或--version:显示版本信息。
4.说明
gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。gunzip最新版本是1.3.3 。
(60)unarj *
1.作用 unarj解压缩格式为.arj格式的文件,使用权限是所有用户。
2.格式
unarj [eltx][.arj压缩文件]
3.主要参数
e:解压缩.arj文件。
l:显示压缩文件内所包含的文件。
t:检查压缩文件是否正确。
x:解压缩时保留原有的路径。
4.说明
带有.arj扩展名的文件是由用于MS DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序,所以在
(61)man **
1.作用
man命令用来提供在线帮助,使用权限是所有用户。在
Linux系统中存储着一部联机使用的手册,以供用户在终端上查找。使用man命令可以调阅其中的帮助信息,非常方便和实用。
2.格式
man命令名称
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...
3.参数
-C config_file:指定设定文件man.conf,缺省值是/etc/man.conf。
-M path:指定了联机手册的搜寻路径, 如果没有指定则使用环境变数MANPATH的设定;如果没有使用MANPATH, 则会使用/usr/lib/man.conf内的设定;如果MANPATH是空字串,则表示使用缺省值。
-P pager:指定使用何种pager.man会优先使用此选项设定,然后是依环境变数MANPAGER设定,然后是环境变数PAGER;man缺省使用/usr/bin/less -is。
-S section_list man:所搜寻的章节列表(以冒号分隔),此选项会覆盖环境变数MANSECT的设定。
-a man:缺省情况是在显示第一个找到的手册之后,就会停止搜寻,使用此选项会强迫man继续显示所有符合name的联机手册。
-c:即使有最新的cat page,也继续对联机手册重新作排版,本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。
-d:不要真的显示联机手册,只显示除错讯息。
-D:同时显示联机手册与除错讯息。
-h:显示求助讯息然后结束程式。
-K:对所有的联机手册搜寻所指定的字串。请注意,本功能回应速度可能很慢,如果指定section(区域)会对速度有帮助。
-m system:依所指定的system名称而指定另一组的联机手册。
man:是manual(手册)的缩写。在输入命令有困难时,可以立刻得到这个文档。例如, 如果使用ps命令时遇到困难,可以输入man ps得到帮助信息,此时会显示出ps的手册页(man page)。
由于手册页man page是用less程序来看的(可以方便地使屏幕上翻和下翻), 所以在man page里可以使用less的所有选项。
less中比较重要的功能键有:
[q]退出;
[Enter]一行行地下翻;
[Space]一页页地下翻;
[b]上翻一页;
[/]后跟一个字符串和[Enter]来查找字符串;
[n]发现上一次查找的下一个匹配。
4.阅读手册页
手册页在很少的空间里提供了很多的信息, 这里简单介绍一下大多数手册页中都有的部分内容。
Linux手册页主要有九个部分:用户指令、系统调用、程序库、设备说明、文件格式、游戏、杂项、系统指令、内核,手册页快照。
5.应用实例
Linux命令中有一些基础的、重要的命令,例如ps、find、cat和ls等。下面来举一个综合应用的例子,由此可以看出man的地位在
Linux中可谓至关重要。但是,man所显示的信息却不是普通的文本,如果直接将这些文字重定向到一个文本文件,就会发现在man中高亮显示的文字就变成了两个,而且有不计其数的制表符,使打印、编辑都变得非常不便。不过,使用下面这样一条语句就能得到ps命令打印。
# man ps | col -b | lpr
这条命令同时运用了输出重定向和管道两种技巧,作用是将ps命令的帮助信息可以直接打印出来。更多的Man文件可以查看
Linux Man
(62)clear **
这个命令是用来清除屏幕的,它不需要任何参数,和dos下面的clr具有相同的功能,如果你觉得屏幕太紊乱,就可以使用它清除屏幕上的信息。
动手练习6
1.在
Linux命令行下发送邮件
虽然
Linux桌面应用发展很快,但是命令行(Shell)在
Linux中依然有很强的生命力。如果能确认电子邮件服务器支持8bit的字节,就可以直接使用下面命令:
cat<附件文件名> | mail <邮件地址>
cat(cat是concatenate的缩写)命令是将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件,这里我们用它来合并邮件的文本。
写好邮件名称,比如叫cjkmail,然后使用下面命令:
$uuencode<附件文件名> <附件文件名> >>cjkmail
这样就可以用vi编辑器写cjkmail文件,并在前面写上信的正文,然后寄出。
对方收到信后,把信中属于cjkmail中的内容拷贝出来,存为themail.uue。如果对方是在Windows下,就可以用WinRAR或WinZip解压,这样就可以看到附件。
如果对方也使用
Linux,可以用undecode命令还原:
$ uudencode -o<附件文件名> themail.uue
2.实现tar的分卷
笔者想把一个378MB的文件压缩成多个63MB的文件(笔者的USB为64MB),使用下面命令:
$tar czvf - dir | split -d -b 63m
然后合并命令:
$cat x* > dir.tgz 以上例子实际是由三个命令组合完成的,即用tar打包,用split分割,用cat合并。“tar czvf - dir”的意思是把dir目录打包,并输出到标准输出(argv),这样就可以直接用管道输出给split。
3.连续执行一个命令
使用watch命令,可以反复执行命令。如果和ls配合,可以达到观察某文件大小变化的效果。
$watch ls-l file.name
4.用tar命令导出一个文件
有一个tar格式的DVD文件GLvPro6.4_linux.tar,因为该文件非常大(4.7GB),如果全部解压比较麻烦,可以用下面命令先导出readme.txt看看。
tar xvf GLvPro6.4_linux.tar readme.txt
这样readme.txt就单独被导出了。
5.用tar打包一个目录时只备份其中的几个子目录
tar cf --exclude home/cjh home/cao
这样home目录下只有cjh和cao两个子目录备份。
到此为止,
Linux必学的60个命令已经全部介绍完了。
Linux的命令行方式功能强大,如果熟练掌握了
Linux的常用命令,往往只需要通过各种技巧就可以组合构成一条复杂的命令,从而完成用户任务。
Linux系统中的命令实在是太多了,不可能像在MS DOS中把所有的命令及参数都记住。
Linux系统提供了一些方法,比如可以通过“help”和“man”来查询名令。
Linux 操作系统是UNIX 操作系统的一种系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。