Linux常用命令简略汇总(持续更新整理中)

useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM] [-c 说明栏] [-d 主文件夹绝对路径] [-s shell] 用户账号名
选项与参数:
-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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值