选项与参数:
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个组名就是我们上面提到的 initial group 啦~
该群组的 GID 会被放置到 /etc/passwd 的第四个字段内;
-G :后面接的组名则是这个账号还可以加入的群组;
这个选项与参数会修改 /etc/group 内的相关数据喔!
-M :强制!不要创建用户家目录!(系统账号默认值)
-m :强制!要创建用户家目录!(一般账号默认值)
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们配置的啦~
-d :指定某个目录成为家目录,而不要使用默认值;务必使用绝对路径!
-r :创建一个系统的账号,这个账号的 UID 会有限制 (参考 /etc/login.defs)
-s :后面接一个 shell ,若没有指定则默认是 /bin/bash 的啦~
-e :后面接一个日期,格式为『YYYY-MM-DD』此项目可写入 shadow 第八字段,
亦即账号失效日的配置项目啰;
-f :后面接 shadow 的第七字段项目,指定口令是否会失效;0为立刻失效,
-1 为永远不失效(口令只会过期而强制于登陆时重新配置而已)
useradd -D
GROUP=100 <==默认的群组
HOME=/home <==默认的家目录所在目录
INACTIVE=-1 <==口令失效日,在 shadow 内的第 7 栏
EXPIRE= <==账号失效日,在 shadow 内的第 8 栏
SHELL=/bin/bash <==默认的 shell
SKEL=/etc/skel <==用户家目录的内容数据参考目录
CREATE_MAIL_SPOOL=yes <==是否主动帮使用者创建邮件信箱(mailbox)
passwd [--stdin]
系统管理员的操作
passwd [-l] [-u] [--stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号
选项与参数:
--stdin :可以透过来自前一个管线的数据,作为口令输入,对 shell script 有帮助!
-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使口令失效;
-u :与 -l 相对,是 Unlock 的意思!
-S :列出口令相关参数,亦即 shadow 文件内的大部分信息
-n :后面接天数,shadow 的第 4 字段,多久不可修改口令天数
-x :后面接天数,shadow 的第 5 字段,多久内必须要更动口令
-w :后面接天数,shadow 的第 6 字段,口令过期前的警告天数
-i :后面接『日期』,shadow 的第 7 字段,口令失效日期
chage [-ldEImMW] 账号名
选项与参数:
-l :列出该账号的详细口令参数;
-d :后面接日期,修改 shadow 第三字段(最近一次更改口令的日期),格式 YYYY-MM-DD
-E :后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
-I :后面接天数,修改 shadow 第七字段(口令失效日期)
-m :后面接天数,修改 shadow 第四字段(口令最短保留天数)
-M :后面接天数,修改 shadow 第五字段(口令多久需要进行变更)
-W :后面接天数,修改 shadow 第六字段(口令过期前警告日期)
usermod [-cdegGlsuLU] username
选项与参数:
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!
-f :后面接天数,为 shadow 的第七字段。
-g :后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-G :后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group 啰~
-a :与 -G 合用,可『添加次要群组的支持』而非『配置』喔!
-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-s :后面接 Shell 的实际文件,例如 /bin/bash 或 /bin/csh 等等。
-u :后面接 UID 数字啦!即 /etc/passwd 第三栏的数据;
-L :暂时将用户的口令冻结,让他无法登陆。其实仅改 /etc/shadow 的口令栏。
-U :将 /etc/shadow 口令栏的 ! 拿掉,解冻啦!
userdel [-r] username
选项与参数:
-r :连同用户的家目录也一起删除
finger [-s] username
选项与参数:
-s :仅列出用户的账号、全名、终端机代号与登陆时间等等;
-m :列出与后面接的账号相同者,而不是利用部分比对 (包括全名部分)
chfn [-foph] [账号名]
选项与参数:
-f :后面接完整的大名;
-o :您办公室的房间号码;
-p :办公室的电话号码;
-h :家里的电话号码!
chsh [-ls]
选项与参数:
-l :列出目前系统上面可用的 shell ,其实就是 /etc/shells 的内容!
-s :配置修改自己的 Shell 啰
id [username]
groupadd [-g gid] [-r] 组名
选项与参数:
-g :后面接某个特定的 GID ,用来直接给予某个 GID ~
-r :创建系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。
groupmod [-g gid] [-n group_name] 群组名
选项与参数:
-g :修改既有的 GID 数字;
-n :修改既有的组名
groupdel [groupname]
# 关于系统管理员(root)做的操作:
gpasswd groupname
gpasswd [-A user1,...] [-M user3,...] groupname
gpasswd [-rR] groupname
选项与参数:
:若没有任何参数时,表示给予 groupname 一个口令(/etc/gshadow)
-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)
-M :将某些账号加入这个群组当中!
-r :将 groupname 的口令移除
-R :让 groupname 的口令栏失效
# 关于群组管理员(Group administrator)做的操作:
gpasswd [-ad] user groupname
选项与参数:
-a :将某位使用者加入到 groupname 这个群组当中!
-d :将某位使用者移除出 groupname 这个群组当中。
改变文件用户组
chgrp [-R] groupname dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
改变文件所有者
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
改变文件权限
[数字类型]
chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
[符号类型]
--------------------------------------------------------
| u | +(加入) | r |
chmod | g | -(除去) | w | 文件或目录
| o | =(设定) | x |
| a | | |
--------------------------------------------------------
例:
chmod u=rwx,g=rx,o=r filename
chmod a+w .bashrc
查看系统版本
uname -r
lsb_release -a
切换目录
cd [相对路径或绝对路径]
显示当前目录
pwd [-P]
选项与参数:
-P :显示出确实的路径,而非使用连结 (link) 路径。
新建目录
mkdir [-mp] 目录名称
选项与参数:
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递回创建起来!
删除“空”目录
rmdir [-p] 目录名称
选项与参数:
-p :连同上一级『空的』目录也一起删除
查看目录与文件
ls [-aAdfFhilnrRSt] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
选项与参数:
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-A :全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-f :直接列出结果,而不进行排序 (ls 默认会以档名排序!)
-F :根据文件、目录等资讯,给予附加数据结构,例如:
*:代表可运行档; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件;
-h :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来;
-i :列出 inode 号码;
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
-n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!)
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R :连同子目录内容一起列出来,等於该目录下的所有文件都会显示出来;
-S :以文件容量大小排序,而不是用档名排序;
-t :依时间排序,而不是用档名。
--color=never :不要依据文件特性给予颜色显示;
--color=always :显示颜色
--color=auto :让系统自行依据配置来判断是否给予颜色
--full-time :以完整时间模式 (包含年、月、日、时、分) 输出
--time={atime,ctime} :输出访问时间或改变权限属性时间 (ctime)
而非内容变更时间 (modification time)
查看磁盘分区 UUID
ls -l /dev/disk/by-uuid
复制文件与目录
cp [-adfilprsu] 来源档(source) 目标档(destination)
cp [options] source1 source2 source3 .... directory
选项与参数:
-a :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l :进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p :连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r :递回持续复制,用於目录的复制行为;(常用)
-s :复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u :若 destination 比 source 旧才升级 destination !
最后需要注意的,如果来源档有两个以上,则最后一个目的档一定要是『目录』才行!
删除文件与目录
rm [-fir] 文件或目录
选项与参数:
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!!
移动文件与目录或更改名称
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
获取文件名与目录名
basename /etc/sysconfig/network
network <== 很简单!就取得最后的档名~
dirname /etc/sysconfig/network
/etc/sysconfig <== 取得的变成目录名了!
查看文件内容
[正向显示]
cat [-AbEnTv]
选项与参数:
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
[反向显示]
tac /etc/issue
[带行号显示]
nl [-bnw] 文件
选项与参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
[按页翻动]
more /etc/man.config
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
[按页翻动且可前翻]
less /etc/man.config
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
[取出前几行]
head [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思(默认显示10行)
-n 选项后面的参数如果接的是负数,例如-n -100时,代表列出前面所有行数, 但不包括后面100行
[取出后几行]
tail [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思(默认显示10行)
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
-n 选项后面的参数如果接的是正数,例如-n +100时,代表列出第100行之后的数据,不包括前面99行
[查看非纯文本文件]
od [-t TYPE] 文件
选项或参数:
-t :后面可以接各种『类型 (TYPE)』的输出,例如:
a :利用默认的字节来输出;
c :使用 ASCII 字节来输出
d[size] :利用十进位(decimal)来输出数据,每个整数占用 size bytes ;
f[size] :利用浮点数值(floating)来输出数据,每个数占用 size bytes ;
o[size] :利用八进位(octal)来输出数据,每个整数占用 size bytes ;
x[size] :利用十六进位(hexadecimal)来输出数据,每个整数占用 size bytes ;
修改文件时间与创建新文件
touch [-acdmt] 文件
选项与参数:
-a :仅修订 access time;
-c :仅修改文件的时间,若该文件不存在则不创建新文件;
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime ;
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
查看文件默认权限
umask
umask -S
设定文件默认权限
umask 权限分数
设置文件隐藏属性
chattr [+-=][ASacdistu] 文件或目录名称
选项与参数:
+ :添加某一个特殊参数,其他原本存在参数则不动。
- :移除某一个特殊参数,其他原本存在参数则不动。
= :配置一定,且仅有后面接的参数
A :当配置了 A 这个属性时,若你有存取此文件(或目录)时,他的存取时间 atime
将不会被修改,可避免I/O较慢的机器过度的存取磁碟。这对速度较慢的计算机有帮助
S :一般文件是非同步写入磁碟的(原理请参考第五章sync的说明),如果加上 S 这个
属性时,当你进行任何文件的修改,该更动会『同步』写入磁碟中。
a :当配置 a 之后,这个文件将只能添加数据,而不能删除也不能修改数据,只有root
才能配置这个属性。
c :这个属性配置之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩,
但是在储存的时候,将会先进行压缩后再储存(看来对於大文件似乎蛮有用的!)
d :当 dump 程序被运行的时候,配置 d 属性将可使该文件(或目录)不会被 dump 备份
i :这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、配置连结也无法
写入或新增数据!』对於系统安全性有相当大的助益!只有 root 能配置此属性
s :当文件配置了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘
空间,所以如果误删了,完全无法救回来了喔!
u :与 s 相反的,当使用 u 来配置文件时,如果该文件被删除了,则数据内容其实还
存在磁碟中,可以使用来救援该文件喔!
注意:属性配置常见的是 a 与 i 的配置值,而且很多配置值必须要身为 root 才能配置
显示文件隐藏属性
lsattr [-adR] 文件或目录
选项与参数:
-a :将隐藏档的属性也秀出来;
-d :如果接的是目录,仅列出目录本身的属性而非目录内的档名;
-R :连同子目录的数据也一并列出来!
查看文件类型
file 文件名
查看分区信息
file -s 分区名
查找可执行文件
which [-a] command
选项或参数:
-a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称
这个命令是根据PATH这个环境变量所指定的路径去查询“执行文件”的文件名
查找特定文件
whereis [-bmsu] 文件或目录名
选项与参数:
-b :只找 binary 格式的文件
-m :只找在说明档 manual 路径下的文件
-s :只找 source 源文件
-u :搜寻不在上述三个项目当中的其他特殊文件
locate [-ir] keyword
选项与参数:
-i :忽略大小写的差异;
-r :后面可接正规表示法的显示方式
find [PATH] [option] [action]
选项与参数:
1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名;
-mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。
-newer file :file 为一个存在的文件,列出比 file 还要新的文件档名
2. 与使用者或群组名称有关的参数:
-uid n :n 为数字,这个数字是使用者的帐号 ID,亦即 UID ,这个 UID 是记录在
/etc/passwd 里面与帐号名称对应的数字。
-gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在
/etc/group
-user name :name 为使用者帐号名称喔!例如 dmtsai
-group name:name 为群组名称喔,例如 users ;
-nouser :寻找文件的拥有者不存在 /etc/passwd 的人!
-nogroup :寻找文件的拥有群组不存在於 /etc/group 的文件!
当你自行安装软件时,很可能该软件的属性当中并没有文件拥有者,
这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。
3. 与文件权限及名称有关的参数:
-name filename:搜寻文件名称为 filename 的文件;
-size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有:
c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB
还要大的文件,就是『 -size +50k 』
-type TYPE :搜寻文件的类型为 TYPE 的,类型主要有:一般正规文件 (f),
装置文件 (b, c), 目录 (d), 连结档 (l), socket (s),
及 FIFO (p) 等属性。
-perm mode :搜寻文件权限『刚好等於』 mode 的文件,这个 mode 为类似 chmod
的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !
-perm -mode :搜寻文件权限『必须要全部囊括 mode 的权限』的文件,举例来说,
我们要搜寻 -rwxr--r-- ,亦即 0744 的文件,使用 -perm -0744,
当一个文件的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,
因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
-perm +mode :搜寻文件权限『包含任一 mode 的权限』的文件,举例来说,我们搜寻
-rwxr-xr-x ,亦即 -perm +755 时,但一个文件属性为 -rw-------
也会被列出来,因为他有 -rw.... 的属性存在!
4. 额外可进行的动作:
-exec command :command 为其他命令,-exec 后面可再接额外的命令来处理搜寻到
的结果。
-print :将结果列印到萤幕上,这个动作是默认动作!
查看文件系统信息
dumpe2fs [-bh] 设备文件名
选项与参数:
-b :列出保留为坏轨的部分(一般用不到吧!?)
-h :仅列出 superblock 的数据,不会列出其他的区段内容!
查看单个文件的文件系统信息
stat -f [文件名]
查看文件系统的整体磁盘使用量
df [-ahikHTm] [目录或文件名]
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
查看目录容量
du [-ahskm] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
ln [-sf] 来源文件 目标文件
选项与参数:
-s :如果不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link
-f :如果 目标文件 存在时,就主动的将目标文件直接移除后再创建!
磁盘分区
fdisk [-l] 设备名称
选项与参数:
-l :输出后面接的设备所有的分区内容。若仅有 fdisk -l 时,
则系统将会把整个系统内能够搜寻到的设备的分区均列出来。
Command (m for help): m <== 输入 m 后,就会看到底下这些命令介绍
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition <==删除一个分区
l list known partition types
m print this menu
n add a new partition <==新增一个分区
o create a new empty DOS partition table
p print the partition table <==在屏幕上显示分区表
q quit without saving changes <==不储存离开fdisk程序
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit <==将刚刚的操作写入分区表
x extra functionality (experts only)
磁盘格式化
mkfs [-t 文件系统格式] 设备文件名
选项与参数:
-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
mke2fs [-b block大小] [-i block大小] [-L 标头] [-cj] 设备文件名
选项与参数:
-b :可以配置每个 block 的大小,目前支持 1024, 2048, 4096 bytes 三种;
-i :多少容量给予一个 inode 呢?
-c :检查磁盘错误,仅下达一次 -c 时,会进行快速读取测试;
如果下达两次 -c -c 的话,会测试读写(read-write),会很慢~
-L :后面可以接标头名称 (Label),这个 label 是有用的喔!e2label命令介绍会谈到~
-j :本来 mke2fs 是 EXT2 ,加上 -j 后,会主动加入 journal 而成为 EXT3。
其实 mke2fs 所使用的各项选项/参数也可以用在『 mkfs -t ext3 ... 』后面,因为最终使用的公用程序是相同的
磁盘检查
fsck [-t 文件系统] [-ACay] 设备名称
选项与参数:
-t :如同 mkfs 一样,fsck 也是个综合软件而已!因此我们同样需要指定文件系统。
不过由于现今的 Linux 太聪明了,他会自动的透过 superblock 去分辨文件系统,
因此通常可以不需要这个选项的啰!请看后续的范例说明。
-A :依据 /etc/fstab 的内容,将需要的装置扫瞄一次
-a :自动修复检查到的有问题的扇区,所以你不用一直按 y 啰!
-y :与 -a 类似,但是某些 filesystem 仅支持 -y 这个参数!
-C :可以在检验的过程当中,使用一个直方图来显示目前的进度!
EXT2/EXT3 的额外选项功能:(e2fsck 这支命令所提供)
-f :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入
细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
-D :针对文件系统下的目录进行优化配置。
badblocks -[svw] 设备名称
选项与参数:
-s :在屏幕上列出进度
-v :可以在屏幕上看到进度
-w :使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的设备已有文件时!
查看设备 UUID
blkid
磁盘挂载
mount -a
mount [-l]
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
选项与参数:
-a :依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
-l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
-t :与 mkfs 的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型。
常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),
nfs, cifs, smbfs(此三种为网络文件系统类型)
-n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序
的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。
此时就得要使用这个 -n 的选项了。
-L :系统除了利用装置文件名 (例如 /dev/hdc6) 之外,还可以利用文件系统的标头名称
(Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
-o :后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
ro, rw: 挂载文件系统成为只读(ro) 或可擦写(rw)
async, sync: 此文件系统是否使用同步写入 (sync) 或异步 (async) 的
内存机制,请参考文件系统运行方式。默认为 async。
auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
dev, nodev: 是否允许此 partition 上,可创建装置文件? dev 为可允许
suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?
exec, noexec: 是否允许此 partition 上拥有可运行 binary 文件?
user, nouser: 是否允许此 partition 让任何使用者运行 mount ?一般来说,
mount 仅有 root 可以进行,但下达 user 参数,则可让
一般 user 也能够对此 partition 进行 mount 。
defaults: 默认值为:rw, suid, dev, exec, auto, nouser, and async
remount: 重新挂载,这在系统出错,或重新升级参数时,很有用!
例如:
挂载光盘 mount -t iso9660 /dev/cdrom /mnt/media/cdrom
挂载软盘 mount -t vfat /dev/fd0 /mnt/media/floppy
挂载U盘 mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash
磁盘卸载
umount [-fn] 装置文件名或挂载点
选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。
磁盘参数修改
mknod 装置文件名 [bcp] [Major] [Minor]
选项与参数:
装置种类:
b :配置装置名称成为一个周边储存设备文件,例如硬盘等;
c :配置装置名称成为一个周边输入设备文件,例如鼠标/键盘等;
p :配置装置名称成为一个 FIFO 文件;
Major :主要装置代码;
Minor :次要装置代码;
分区卷标修改
e2label 装置名称 新的Label名称
tune2fs [-jlL] 装置代号
选项与参数:
-l :类似 dumpe2fs -h 的功能~将 superblock 内的数据读出来~
-j :将 ext2 的 filesystem 转换为 ext3 的文件系统;
-L :类似 e2label 的功能,可以修改 filesystem 的 Label 喔!
hdparm [-icdmXTt] 装置名称
选项与参数:
-i :将核心侦测到的硬盘参数显示出来!
-c :配置 32-bit (32位)存取模式。这个 32 位存取模式指的是在硬盘在与
PCI 接口之间传输的模式,而硬盘本身是依旧以 16 位模式在跑的!
默认的情况下,这个配置值都会被打开,建议直接使用 c1 即可!
-d :配置是否激活 dma 模式, -d1 为启动, -d0 为取消;
-m :配置同步读取多个 sector 的模式。一般来说,配置此模式,可降低系统因为
读取磁盘而损耗的效能~不过, WD 的硬盘则不怎么建议配置此值~
一般来说,配置为 16/32 是优化,不过,WD 硬盘建议值则是 4/8 。
这个值的最大值,可以利用 hdparm -i /dev/hda 输出的 MaxMultSect
来配置喔!一般如果不晓得,配置 16 是合理的!
-X :配置 UtraDMA 的模式,一般来说, UDMA 的模式值加 64 即为配置值。
并且,硬盘与主板芯片必须要同步,所以,取最小的那个。一般来说:
33 MHz DMA mode 0~2 (X64~X66)
66 MHz DMA mode 3~4 (X67~X68)
100MHz DMA mode 5 (X69)
如果您的硬盘上面显示的是 UATA 100 以上的,那么配置 X69 也不错!
-T :测试缓存区 cache 的存取效能
-t :测试硬盘的实际存取效能 (较正确!)
构建swap格式分区
mkswap 设备分区名
加载swap分区
swapon swap分区名
查看使用swap分区
swapon -s
卸载swap分区
swapoff 设备分区名
parted [设备] [命令 [参数]]
选项与参数:
命令功能:
新增分区:mkpart [primary|logical|extended] [ext3|vfat] 开始 结束
分割表 :print
删除分区:rm [partition]
文件压缩
compress [-rcv] 文件或目录 <==压缩
uncompress 文件.Z <==解压缩
选项与参数:
-r :可以连同目录下的文件也同时给予压缩
-c :将压缩数据输出成为 standard output (输出到萤幕)
-v :可以秀出压缩后的文件资讯以及压缩过程中的一些档名变化。
gzip [-cdtv#] 档名
选项与参数:
-c :将压缩的数据输出到萤幕上,可透过数据流重导向来处理;
-d :解压缩的参数;
-t :可以用来检验一个压缩档的一致性~看看文件有无错误;
-v :可以显示出原文件/压缩文件的压缩比等资讯;
-# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6
查看gzip压缩文件内容
zcat 档名.gz
bzip2 [-cdkzv#] 档名
选项与参数:
-c :将压缩的过程产生的数据输出到萤幕上!
-d :解压缩的参数
-k :保留原始文件,而不会删除原始的文件喔!
-z :压缩的参数
-v :可以显示出原文件/压缩文件的压缩比等资讯;
-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
查看bzip2压缩文件内容
bzcat 档名.bz2
打包压缩
tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩
tar [-j|-z] [tv] [-f 创建的档名] <==察看档名
tar [-j|-z] [xv] [-f 创建的档名] [-C 目录] <==解压缩
选项与参数:
-c :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)
-t :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
-j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
-z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项罗!
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-p :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
-P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
创建镜像文件
mkisofs [-o 映像档] [-rv] [-m file] 待备份文件.. [-V vol] \
> -graft-point isodir=systemdir ...
选项与参数:
-o :后面接你想要产生的那个映像档档名。
-r :透过 Rock Ridge 产生支持 Unix/Linux 的文件数据,可记录较多的资讯;
-v :显示建置 ISO 文件的过程
-m file :-m 为排除文件 (exclude) 的意思,后面的文件不备份到映像档中
-V vol :创建 Volume,有点像 Windows 在文件总管内看到的 CD title 的东西
-graft-point:graft有转嫁或移植的意思
例:
mkisofs -r -V 'linux_file' -o /tmp/system.img \
> -m /home/lost+found -graft-point /root=/root /home=/home /etc=/etc
刻录光盘
cdrecord -scanbus dev=ATA <==查询烧录机位置
cdrecord -v dev=ATA:x,y,z blank=[fast|all] <==抹除重复读写片
cdrecord -v dev=ATA:x,y,z -format <==格式化DVD+RW
cdrecord -v dev=ATA:x,y,z [可用选项功能] file.iso
选项与参数:
-scanbus :用在扫瞄磁盘总线并找出可用的烧录机,后续的设备为 ATA 接口
-v :在 cdrecord 运行的过程中,显示过程而已。
dev=ATA:x,y,z :后续的 x, y, z 为你系统上烧录机所在的位置,非常重要!
blank=[fast|all]:blank 为抹除可重复写入的CD/DVD-RW,使用fast较快,all较完整
-format :仅针对 DVD+RW 这种格式的 DVD 而已;
[可用选项功能] 主要是写入 CD/DVD 时可使用的选项,常见的选项包括有:
-data :指定后面的文件以数据格式写入,不是以 CD 音轨(-audio)方式写入!
speed=X :指定烧录速度,例如CD可用 speed=40 为40倍数,DVD则可用 speed=4 之类
-eject :指定烧录完毕后自动退出光盘
fs=Ym :指定多少缓冲内存,可用在将映像档先缓存至缓冲内存。默认为 4m,
一般建议可添加到 8m ,不过,还是得视你的烧录机而定。
针对 DVD 的选项功能:
driveropts=burnfree :打开 Buffer Underrun Free 模式的写入功能
-sao :支持 DVD-RW 的格式
备份设备内容
dd if="input_file" of="output_file" bs="block_size" count="number"
选项与参数:
if :就是 input file ,也可以是设备;
of :就是 output file ,也可以是设备;
bs :规划的一个 block 的大小,若未指定则默认是 512 bytes(一个 sector 的大小)
count:多少个 bs 的意思。
cpio -ovcB > [file|device] <==备份
cpio -ivcdu < [file|device] <==还原
cpio -ivct < [file|device] <==察看
备份会使用到的选项与参数:
-o :将数据 copy 输出到文件或装置上
-B :让默认的 Blocks 可以添加至 5120 bytes ,默认是 512 bytes !
这样的好处是可以让大文件的储存速度加快(请参考 i-nodes 的观念)
还原会使用到的选项与参数:
-i :将数据自文件或装置 copy 出来系统当中
-d :自动创建目录!使用 cpio 所备份的数据内容不见得会在同一层目录中,因此我们
必须要让 cpio 在还原时可以创建新目录,此时就得要 -d 选项的帮助!
-u :自动的将较新的文件覆盖较旧的文件!
-t :需配合 -i 选项,可用在"察看"以 cpio 创建的文件或装置的内容
一些可共享的选项与参数:
-v :让储存的过程中文件名称可以在萤幕上显示
-c :一种较新的 portable format 方式储存
---------------------------------------------------------------------------------------------------------------------------------------------------------------
查看命令类型(来自于外部命令(指的是其他非 bash 所提供的命令) 或是内建在 bash 当中)
type [-tpa] name
选项与参数:
:不加任何选项与参数时,type 会显示出 name 是外部命令还是 bash 内建命令
-t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:
file :表示为外部命令;
alias :表示该命令为命令别名所配置的名称;
builtin :表示该命令为 bash 内建的命令功能;
-p :如果后面接的 name 为外部命令时,才会显示完整文件名;
-a :会由 PATH 变量定义的路径中,将所有含 name 的命令都列出来,包含 alias
自定义变量导出为环境变量
export variable
取消变量
unset variable
观察环境变量与常见环境变量说明
env
观察所有变量 (含环境变量与自定义变量)
set
影响显示结果的语系变量
locale
读取来自键盘输入的变量
read [-pt] variable
选项与参数:
-p :后面可以接提示字符!
-t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!
声明变量类型
declare [-aixr] variable
选项与参数:
-a :将后面名为 variable 的变量定义成为数组 (array) 类型
-i :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
-x :用法与 export 一样,就是将后面的 variable 变成环境变量;
-r :将变量配置成为 readonly 类型,该变量不可被更改内容,也不能 unset
限制用户的某些系统资源
ulimit [-SHacdfltu] [配额]
选项与参数:
-H :hard limit ,严格的配置,必定不能超过这个配置的数值;
-S :soft limit ,警告的配置,可以超过这个配置值,但是若超过则有警告信息。
在配置上,通常 soft 会比 hard 小,举例来说,soft 可配置为 80 而 hard
配置为 100,那么你可以使用到 90 (因为没有超过 100),但介于 80~100 之间时,
系统会有警告信息通知你!
-a :后面不接任何选项与参数,可列出所有的限制额度;
-c :当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除错用),
这种文件就被称为核心文件(core file)。此为限制每个核心文件的最大容量。
-f :此 shell 可以创建的最大文件容量(一般可能配置为 2GB)单位为 Kbytes
-d :程序可使用的最大断裂内存(segment)容量;
-l :可用于锁定 (lock) 的内存量
-t :可使用的最大 CPU 时间 (单位为秒)
-u :单一用户可以使用的最大程序(process)数量。
设置命令别名
alias
取消命令别名
unalias
history [n]
history [-c]
history [-raw] histfiles
选项与参数:
n :数字,意思是『要列出最近的 n 笔命令行表』的意思!
-c :将目前的 shell 中的所有 history 内容全部消除
-a :将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,
则默认写入 ~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w :将目前的 history 记忆内容写入 histfiles 中!
!number
!command
!!
选项与参数:
number :运行第几笔命令的意思;
command :由最近的命令向前搜寻『命令串开头为 command』的那个命令,并运行;
!! :就是运行上一个命令(相当于按↑按键后,按 Enter)
读入环境配置文件
source config_file
终端机的环境配置
stty [-a]
选项与参数:
-a :将目前所有的 stty 参数列出来;
配置整个命令输出/输入的环境
set [-uvCHhmBx]
选项与参数:
-u :默认不激活。若激活后,当使用未配置变量时,会显示错误信息;
-v :默认不激活。若激活后,在信息被输出前,会先显示信息的原始内容;
-x :默认不激活。若激活后,在命令被运行前,会显示命令内容(前面有 ++ 符号)
-h :默认激活。与历史命令有关;
-H :默认激活。与历史命令有关;
-m :默认激活。与工作管理有关;
-B :默认激活。与刮号 [] 的作用有关;
-C :默认不激活。若使用 > 等,则若文件存在时,该文件不会被覆盖。
将各行信息分段切开
cut -d'分隔字符' -f fields <==用于有特定分隔字符
cut -c 字符区间 <==用于排列整齐的信息
选项与参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;
以行为单位取出目标信息
grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
数据排序
sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,默认是用 [tab] 键来分隔;
-k :以哪个区间 (field) 来进行排序的意思
重复数据只显示一次
uniq [-ic]
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
数据计数
wc [-lwm]
选项与参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
双向重定向
tee [-a] file
选项与参数:
-a :以累加 (append) 的方式,将数据加入 file 当中!
字符转换
tr [-ds] SET1 ...
选项与参数:
-d :删除信息当中的 SET1 这个字符串;
-s :取代掉重复的字符!
col [-xb]
选项与参数:
-x :将 tab 键转换成对等的空格键
-b :在文字内有反斜杠 (/) 时,仅保留反斜杠最后接的那个字符
将两个文件中具有相同数据的行加在一起
join [-ti12] file1 file2
选项与参数:
-t :join 默认以空格符分隔数据,并且比对『第一个字段』的数据,
如果两个文件相同,则将两笔数据联成一行,且第一个字段放在第一个!
-i :忽略大小写的差异;
-1 :这个是数字的 1 ,代表『第一个文件要用那个字段来分析』的意思;
-2 :代表『第二个文件要用那个字段来分析』的意思。
将两行加在一起,中间以[tab]按键隔开
paste [-d] file1 file2
选项与参数:
-d :后面可以接分隔字符。默认是以 [tab] 来分隔的!
- :如果 file 部分写成 - ,表示来自 standard input 的数据的意思。
将[tab]按键转换成空格键
expand [-t] file
选项与参数:
-t :后面可以接数字。一般来说,一个 tab 按键可以用 8 个空格键取代。
我们也可以自行定义一个 [tab] 按键代表多少个字符呢!
文件切割
split [-bl] file PREFIX
选项与参数:
-b :后面可接欲分割成的文件大小,可加单位,例如 b, k, m 等;
-l :以行数来进行分割。
PREFIX :代表前导符的意思,可作为分割文件的前导文字。
参数代换
xargs [-0epn] command
选项与参数:
-0 :如果输入的 stdin 含有特殊字符,例如 `, \, 空格键等等字符时,这个 -0 参数
可以将他还原成一般字符。这个参数可以用于特殊状态喔!
-e :这个是 EOF (end of file) 的意思。后面可以接一个字符串,当 xargs 分析到
这个字符串时,就会停止继续工作!
-p :在运行每个命令的 argument 时,都会询问使用者的意思;
-n :后面接次数,每次 command 命令运行时,要使用几个参数的意思。
当 xargs 后面没有接任何的命令时,默认是以 echo 来进行输出喔!
数据操作命令
sed [-nefr] [动作]
选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN
的数据一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过
sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的
sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是由萤幕输出。
动作说明: [n1[,n2]]function
n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』
function 有底下这些咚咚:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :替换, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将指定的行数据输出。通常 p 会与参数 sed -n 一起运行~
s :替换,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
格式化打印
printf '列印格式' 实际内容
选项与参数:
关於格式方面的几个特殊样式:
\a 警告声音输出
\b 倒退键(backspace)
\f 清除萤幕 (form feed)
\n 输出新的一行
\r 亦即 Enter 按键
\t 水平的 [tab] 按键
\v 垂直的 [tab] 按键
\xNN NN 为两位数的数字,可以转换数字成为字节。
关於 C 程序语言内,常见的变量格式
%ns 那个 n 是数字, s 代表 string ,亦即多少个字节;
%ni 那个 n 是数字, i 代表 integer ,亦即多少整数码数;
%N.nf 那个 n 与 N 都是数字, f 代表 floating (浮点),如果有小数码数,假设我共要十个位数,但小数点有两位,即为 %10.2f 罗!
数据处理命令
awk '条件类型1{动作1} 条件类型2{动作2} ...' filename
例:awk 'BEGIN {FS=":"} $3 < 10 {print $1 "\t " $3}'
文件比较
diff [-bBi] from-file to-file
选项与参数:
from-file :一个档名,作为原始比对文件的档名;
to-file :一个档名,作为目的比对文件的档名;
注意,from-file 或 to-file 可以 - 取代,那个 - 代表『Standard input』之意。
-b :忽略一行当中,仅有多个空白的差异(例如 "about me" 与 "about me" 视为相同
-B :忽略空白行的差异。
-i :忽略大小写的不同。
cmp [-s] file1 file2
选项与参数:
-s :将所有的不同点的位组处都列出来。因为 cmp 默认仅会输出第一个发现的不同点。
补丁命令
patch -pN < patch_file <==升级
patch -R -pN < patch_file <==还原
选项与参数:
-p :后面可以接『取消几层目录』的意思。
-R :代表还原,将新的文件还原成原来旧的版本。
文件打印准备
函数库管理
ldconfig [-f conf] [ -C cache]
ldconfig [-p]
选项与参数:
-f conf :那个 conf 指的是某个文件名称,也就是说,使用 conf 作为 libarary
函式库的取得路径,而不以 /etc/ld.so.conf 为默认值
-C cache:那个 cache 指的是某个文件名称,也就是说,使用 cache 作为缓存缓存
的函式库数据,而不以 /etc/ld.so.cache 为默认值
-p :列出目前有的所有函式库数据内容 (在 /etc/ld.so.cache 内的数据!)
函数库解析
ldd [-vdr] [filename]
选项与参数:
-v :列出所有内容资讯;
-d :重新将数据有遗失的 link 点秀出来!
-r :将 ELF 有关的错误内容秀出来!
for i in `ldd /bin/bash`;do echo $i;done |grep -v = |grep -v 0x |grep /|xargs ls -l
md5sum/sha1sum [-bct] filename
md5sum/sha1sum [--status|--warn] --check filename
选项与参数:
-b :使用 binary 的读档方式,默认为 Windows/DOS 文件型态的读取方式;
-c :检验文件指纹;
-t :以文字型态来读取文件指纹。
RPM软件管理
安装
rpm -ivh package_name
选项与参数:
-U:升级安装
-i :install 的意思
-v :察看更细部的安装资讯画面
-h :以安装资讯列显示安装进度
rpm 安装时常用的选项与参数说明
可下达的选项 | 代表意义 |
--nodeps | 使用时机:当发生软件属性依赖问题而无法安装,但你执意安装时 危险性: 软件会有依赖性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性依赖, 则可能会造成该软件的无法正常使用! |
--replacefiles | 使用时机: 如果在安装的过程当中出现了『某个文件已经被安装在你的系统上面』的信息,又或许出现版本不合的信息 (confilcting files) 时,可以使用这个参数来直接覆盖文件。 危险性: 覆盖的操作是无法复原的!所以,你必须要很清楚的知道被覆盖的文件是真的可以被覆盖,否则会欲哭无泪 |
--replacepkgs | 使用时机: 重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件文件时,可以使用 rpm -ivh *.rpm ,但若某些软件已经安装过了, 此时系统会出现『某软件已安装』的信息,导致无法继续安装。此时可使用这个参数来重复安装 |
--force | 使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体 |
--test | 使用时机: 想要测试一下该软件是否可以被安装到用户的 Linux 环境当中,可找出是否有属性依赖的问题。范例为: rpm -ivh pkgname.i386.rpm --test |
--justdb | 使用时机: 由於 RPM 数据库损坏或者是某些缘故产生错误时,可使用这个参数来更新软件在数据库内的相关信息 |
--nosignature | 使用时机: 想要略过数字证书的检查时,可以使用这个选项。 |
--prefix 新路径 | 使用时机: 要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的 /bin, /etc 等目录, 就可以使用『 --prefix /usr/local 』来处理了 |
--noscripts | 使用时机:不想让该软件在安装过程中自行运行某些系统命令。 说明: RPM 的优点除了可以将文件放置到定位之外,还可以自动执行一些前置操作的命令,例如数据库的初始化。 如果你不想要让 RPM 帮你自动运行这一类型的命令,就加上它吧 |
--oldpackage | 使用时机:对已安装的软件包进行降级。 说明: 如果系统已经安装了高版本的软件包,但由于众多其他软件包对其的依赖而导致不易卸载,但此时又需要使用其较低的版本时,可以使用 rpm -Uvh xxx.rpm --oldpackage 对其进行降级。 |
解压rpm包(不安装)
rpm包是使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:
rpm2cpio xxx.rpm | cpio -div
查询
rpm -qa <==已安装软件
rpm -q[licdR] 已安装的软件名称 <==已安装软件
rpm -qf 存在於系统上面的某个档名 <==已安装软件
rpm -qp[licdR] 未安装的某个文件名称 <==查阅RPM文件
选项与参数:
查询已安装软件的资讯:
-q :仅查询,后面接的软件名称是否有安装;
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi :列出该软件的详细资讯 (information),包含开发商、版本与说明等;
-ql :列出该软件所有的文件与目录所在完整档名 (list);
-qc :列出该软件的所有配置档 (找出在 /etc/ 底下的档名而已)
-qd :列出该软件的所有说明档 (找出与 man 有关的文件而已)
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-qf :由后面接的文件名称,找出该文件属於哪一个已安装的软件;
查询某个 RPM 文件内含有的资讯:
-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在於找出
某个 RPM 文件内的资讯,而非已安装的软件资讯!注意!
验证
rpm -Va
rpm -V 已安装的软件名称
rpm -Vp 某个 RPM 文件的档名
rpm -Vf 在系统上面的某个文件
选项与参数:
-V :后面加的是软件名称,若该软件所含的文件被更动过,才会列出来;
-Va :列出目前系统上面所有可能被更动过的文件;
-Vp :后面加的是文件名称,列出该软件内可能被更动过的文件;
-Vf :列出某个文件是否被更动过~
安装数字证书
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
卸载
rpm -e pam
重建数据库
rpm --rebuilddb
以SRPM文件构建RPM文件
rpmbuild --rebuild rp-pppoe-3.5-32.1.src.rpm
SRPM文件的编译
rpmbuild -ba rp-pppoe.spec <==编译并同时产生 RPM 与 SRPM 文件
rpmbuild -bb rp-pppoe.spec <==仅编译成 RPM 文件
在线升级机制
查询
yum [option] [查询工作项目] [相关参数]
选项与参数:
[option]:主要的选项,包括有:
-y :当 yum 要等待使用者输入时,这个选项可以自动提供 yes 的回应;
--installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径
[查询工作项目] [相关参数]:这方面的参数有:
search :搜寻某个软件名称或者是描述 (description) 的重要关键字;
list :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa;
info :同上,不过有点类似 rpm -qai 的运行结果;
provides:从文件去搜寻软件!类似 rpm -qf 的功能!
范例一:搜寻磁盘阵列 (raid) 相关的软件有哪些?
[root@www ~]# yum search raid
范例二:找出 mdadm 这个软件的功能为何
[root@www ~]# yum info mdadm
范例三:列出 yum 服务器上面提供的所有软件名称
[root@www ~]# yum list
范例四:列出目前服务器上可供本机进行升级的软件有哪些?
[root@www ~]# yum list updates <==一定要是 updates 喔!
范例五:列出提供 passwd 这个文件的软件有哪些
[root@www ~]# yum provides passwd
安装/升级
yum [option] [查询工作项目] [相关参数]
选项与参数:
install :后面接要安装的软件!
update :后面接要升级的软件,若要整个系统都升级,就直接 update 即可
删除
yum remove pam-devel
yum clean [packages|headers|all]
选项与参数:
packages:将已下载的软件文件删除
headers :将下载的软件档头删除
all :将所有容器数据都删除!
yum [群组功能] [软件群组]
选项与参数:
grouplist :列出所有可使用的『套件组』,例如 Development Tools 之类的;
groupinfo :后面接 group_name,则可了解该 group 内含的所有套件名;
groupinstall:这个好用!可以安装一整组的套件群组,相当的不错用!
groupremove :移除某个套件群组;
yum指定使用库源
yum --disablerepo=* --enablerepo=<库源名> <yum常规命令>,如使用c6-media库源(库源定义在/etc/yum.repos.d/目录下的各个.repo文件中):
yum --disablerepo=* --enablerepo=c6-media grouplist
yum查看当前系统所有库源
yum repolist