一、Linux命令
名称: cd
使用权限: 所有使用者
使用方式: cd [dirName]
说明: 变换工作目录至dirName。其中dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory (也就是刚login 时所在的目录)。
另外,"~" 也表示为home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。
范例: 跳到/usr/bin/ :
cd /usr/bin
跳到自己的home directory :
cd ..
跳到目前目录的上上两层:
cd ../
指令名称: 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
名称:locate 使用权限:所有使用者使用方式: locate [-q] [-d <path>] [--database=<path>] <search string> locate [-r <regexp>] [--regexp=<regexp>] locate [-qv] [-o <file>] [--output=<file>] locate [-e <dir1,dir2,...>] [-f <fstype1,...>] <[-l <level>] [-c] <[-U ] [-u]> locate [-Vh] [--version] [--help] 说明:
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有文件名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。
在一般的distribution 之中,数据库的建立都被放在contab 中自动执行。一般使用者在使用时只要用
# locate your_file_name
的型式就可以了。参数:
-u -U <dir> 建立数据库,-u 会由根目录开始,-U 则可以指定开始的位置。
-e <dir> 将<dir> 排除在寻找的范围之外。
-l <level> 如果<level> 是1.则激活安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate 必须至实际的档案系统中取得档案的权限资料。
-f <filetype> 将特定的档案系统排除在外,例如我们没有到理要把proc 档案系统中的档案放在数据库中。
-q 安静模式,不会显示任何错误讯息。
-n <num> 至多显示<num> 个输出。
-r <reg> 使用正规表达式<reg> 做寻找的条件。
-o <file> 指定数据库存的名称。
-d <dir> 指定数据库的路径
-h 显示辅助讯息
-v 显示更多的讯息
-V 显示程序的版本讯息范例:
locate chdrv : 寻找所有叫chdrv 的档案locate -n 100 a.out : 寻找所有叫a.out 的档案,但最多只显示100 个locate -u : 建立数据库
名称: sync 使用权限: 系统管理者使用方式: sync 说明: Linux 系统中欲写入硬盘的资料有的时候会了效率起见,会写到filesystem buffer 中,这个buffer 是一块内存空间,如果欲写入硬盘的资料存于此buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于buffer 中的资料强制写入硬盘中。
名称:adduser 使用权限:系统管理员使用方式:adduser [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-p passwd] [-s shell] [-u uid [ -o]] [-n] [-r] loginid 或adduser -D [-g default_group] [-b default_home] [-f default_inactive] [-e default_expire_date] [-s default_shell] 附注:adduser 与useradd 指令为同一指令(经由符号连结symbolic link) 说明:新增使用者帐号或更新预设的使用者资料参数: -c comment 新使用者位于密码文件(通常是/etc/passwd)的批注资料-d home_dir 设定使用者的家目录为home_dir ,默认值为预设的home 后面加上使用者帐号loginid -e expire_date 设定此帐号的使用期限(格式为YYYY-MM-DD),默认值为永久有效-f inactive_time 范例:
adduser是增加使用者,相对的,也有删除使用者的指令,userdel
语法:userdel [login ID]
名称:su 使用权限:所有使用者使用方式:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 说明:变更为其它使用者的身份,除root 外,需要键入该使用者的密码参数: -f 或--fast 不必读激活档(如csh.cshrc 等),仅用于csh 或tcsh -m -p 或--preserve-environment 执行su 时不改变环境变量-c command 或--command=command 变更为帐号为USER 的使用者并执行指令(command)后再变回原来使用者-s shell 或--shell=shell 指定要执行的shell (bash csh tcsh 等),默认值为/etc/passwd 内的该使用者(USER) shell --help 显示说明文件--version 显示版本信息- -l 或--login 这个参数加了之后,就好象是重新login 为该使用者一样,大部份环境变量(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定USER ,内定是root USER 欲变更的使用者帐号
ARG 传入新的shell 参数范例: su -c ls root 变更帐号为root 并在执行ls 指令后退出变回原使用者。su root -f 变更帐号为root 并传入-f 参数给新执行的shell。su - clsung 变更帐号为clsung 并改变工作目录至clsung 的家目录(home dir)。
名称:sudo 使用权限:在/etc/sudoers 中有出现的使用者使用方式:sudo -V sudo -h sudo -l sudo -v sudo -k sudo -s sudo -H sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s sudo command 说明:以系统管理者的身份执行指令,也就是说,经由sudo 所执行的指令就好象是root 亲自执行参数: -V 显示版本编号-h 会显示版本编号及指令的使用方式说明-l 显示出自己(执行sudo 的使用者)的权限-v 因为sudo 在第一次执行时或是在N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N 分钟,也会问密码-k 将会强迫使用者在下一次执行sudo 时问密码(不论有没有超过N 分钟) -b 将要执行的指令放在背景执行-p prompt 可以更改问密码的提示语,其中%u 会代换为使用者的帐号名称, %h 会显示主机名称-u username/#uid 不加此参数,代表要以root 的身份执行指令,而加了此参数,可以以username 的身份执行指令(#uid 为该username 的使用者号码) -s 执行环境变量中的SHELL 所指定的shell ,或是/etc/passwd 里所指定的shell -H 将环境变量中的HOME (家目录)指定为要变更身份的使用者家目录(如不加-u 参数就是系统管理者root ) command 要以系统管理者身份(或以-u 更改为其它人)执行的指令范例: sudo -l 列出目前的权限sudo -V 列出sudo 的版本信息
名称:init 使用权限:开机时使用方式:init [0123456Ss] 说明:init 是所有行程(process)的父行程(parent),开机时一定会先从这个指令开始(可以用ps -aux 看看第一个行程就是init),并参考/etc/inittab 档来完成整个开机程序,共有八个执行层级(runlevel),而改变只能透过telinit 的指令来更改参数: 0 开机执行层级为0 ,用来关闭系统1 开机执行层级为1 ,用来进行单一使用者模式(single user mode) 4 开机执行层级为4 ,表示进入X window 时的模式6 开机执行层级为6 ,用来重新开机S 或s 不是直接使用的,配合开机执行层级1 时使用,当加上S 或s 表示开机后不参考/etc/inittab 檔235 请参照/etc/inittab 档案内容以及/etc/rc.d/rc2.d,/etc/rc.d/rc3.d,/etc/rc.d/rc5.d 等目录范例: 由于这并不是让使用者可以单独下指令的执行文件,请参照/etc/inittab
名称:reboot 使用权限:系统管理者使用方式:reboot [-n] [-w] [-d] [-f] [-i] 说明:若系统的runlevel 为0 或6 ,则重新开机,否则以shutdown 指令(加上-r 参数)来取代参数: -n : 在重开机前不做将内存资料写回硬盘的动作-w : 并不会真的重开机,只是把记录写到/var/log/wtmp 档案里-d : 不把记录写到/var/log/wtmp 档案里(-n 这个参数包含了-d) -f : 强迫重开机,不呼叫shutdown 这个指令-i : 在重开机之前先把所有网络相关的装置先停止范例: reboot 重开机。reboot -w 做个重开机的仿真(只有纪录并不会真的重开机)。
名称:halt 使用权限:系统管理者使用方式:halt [-n] [-w] [-d] [-f] [-i] [-p] 说明:若系统的runlevel 为0 或6 ,则关闭系统,否则以shutdown 指令(加上-h 参数)来取代参数:
-n : 在关机前不做将内存资料写回硬盘的动作-w : 并不会真的关机,只是把记录写到/var/log/wtmp 档案里-d : 不把记录写到/var/log/wtmp 档案里(-n 这个参数包含了-d) -f : 强迫关机,不呼叫shutdown 这个指令-i : 在关机之前先把所有网络相关的装置先停止-p : 当关机的时候,顺便做关闭电源(poweroff)的动作范例: halt -p 关闭系统后关闭电源。halt -d 关闭系统,但不留下纪录。
名称: shutdown
使用权限: 系统管理者
使用方式: shutdown [-t seconds] [-rkhncfF] time [message]
说明: shutdown 可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
参数:
-t seconds : 设定在几秒钟之后进行关机程序-k : 并不会真的关机,只是将警告讯息传送给所有只用者-r : 关机后重新开机-h : 关机后停机-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机-c : 取消目前已经进行中的关机动作-f : 关机时,不做fcsk 动作(检查Linux 文件系统) -F : 关机时,强迫进行fsck 动作time : 设定关机的时间message : 传送给所有使用者的警告讯息
名称:mattrib 使用权限:所有使用者使用方式: mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] [-/] [-X] msdosfile [ msdosfiles ... ]说明:本程序可用来修改MS_DOS 档案的属性。参数: -a/+a 除去/设定备份属性。-h/+h 除去/设定隐藏属性。-r/+r 除去/设定只读属性。-s/+s 除去/设定系统属性。-/ 递归的处理包含所有子目录下的档案。-X 以较短的格式输出结果。
范例: mattrib a: 列出A 槽MSDOS 格式磁盘上所有档案的属性。mattrib -h -s -r a:msdos.sys 除去A 槽磁盘上msdos.sys 档案的隐藏、系统与只读属性。mattrib -r -/ a:\*.* 除去A 槽磁盘上包含子目录下所有档案的只读属性。
名称:mcopy 使用权限:所有使用者使用方式: mcopy [-b/ptnvmoQO***RA] sourcefile targetfile mcopy [-b/ptnvmoQO***RA] sourcefile [ sourcefiles... ] targetdirectory mcopy [-tnvm] MSDOSsourcefile 说明: 本程序可用来复制MSDOS 格式档案到Linux 中,或是由Linux 中复制MSDOS 档案到磁盘上。mcopy 可复制单一的档案到所指定的文件名称,或是复制数个档案到所指定的目录之中。来源与目的档案可为MSDOS 或是Linux 档案。参数: b 批次模式.这是为大量的档案复制进行最佳化的选项,但是当在复制档案过程中产生crash 时,会有安全性的问题产生。/ 递归的复制。包含目录所含档案与其下所有子目录中的档案。p 维持档案原来的属性。Q 当复制多个档案产生错误时,尽快结束程序。t 复制纯文本文件。将carriage return/line feeds 转换成line feeds 字符。n 在覆盖Linux 档案时不会出现警示讯息。o 在覆盖MSDOS 档案时不会出现警示讯息。m 维持档案原来的修改时间。当目的档案已存在,且使用-n 选项时,mcopy 会询问是否要覆盖或是另存新档。范例: mcopy a:\autoexec.bat . 将A 槽磁盘根目录中的autoexec.bat 复制到目前工作目录之下。
指令名称: ln
使用权限: 所有使用者
使用方式: ln [options] source dist,其中option 的格式为:
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--help] [--version] [--]
说明: Linux/Unix 档案系统中﹐有所谓的连结(link)﹐我们可以将其视为档案的别名﹐而连结又可分为两种: 硬连结(hard link)与软连结(symbolic link)﹐硬连结的意思是一个档案可以有多个名称﹐而软连结的方式则是产生一个特殊的档案﹐该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中﹐而软连结却可以跨越不同的档案系统。
ln source dist 是产生一个连结(dist)到source﹐至于使用硬连结或软链接则由参数决定。
不论是硬连结或软链接都不会将原本的档案复制一份﹐只会占用非常少量的磁盘空间。
参数:
-f : 链接时先将与dist 同档名的档案删除-d : 允许系统管理者硬链接自己的目录-i : 在删除与dist 同档名的档案时先进行询问-n : 在进行软连结时﹐将dist 视为一般的档案-s : 进行软链接(symbolic link)-v : 在连结之前显示其档名-b : 将在链接时会被覆写或删除的档案进行备份-S SUFFIX : 将备份的档案都加上SUFFIX 的字尾-V METHOD : 指定备份的方式--help : 显示辅助说明--version : 显示版本
范例:
将档案yy 产生一个symbolic link : zz
ln -s yy zz
将档案yy 产生一个hard link : zz
ln yy xx
名称:mdel 使用权限:所有使用者使用方式: mdel [-v] msdosfile [ msdosfiles ... ] 说明: 本程序可用来删除MSDOS 格式的档案。在删除只读文件之前会先有提示讯息产生。参数: -v 显示更多的讯息。范例: mdel a:\autoexec.bat . 将A 槽磁盘根目录中的autoexec.bat 删除。
名称:mdeltree 使用权限:所有使用者使用方式: mdeltree [-v] msdosdirectory [msdosdirectories...] 说明: 本程序可用来删除MSDOS 格式档案及目录。mdeltree 会将所指定的目录与目录之下的所有档案与目录都删除掉。如果所指定的档案或目录不存在,则会传回错误讯息。
参数: -v 显示更多的讯息。范例: mcopy a:\msdosdir . 将A 槽磁盘根目录中的msdosdir 目录以下的档案与目录都删除掉。
名称:mlabel 使用权限:所有使用者使用方式: mlabel [-vcs] drive:[new_label] 说明: 本程序可设定磁盘的卷标(Label)。如果磁盘上设定过卷标,mlabel 会将他显示给使用者。如果没有指定新卷标并且没有指定c 或s 选项,mlabel 会提示使用者输入新的卷标。如果直接按下Enter ,就会将原本的卷标删除。参数: -v 更多的讯息。-c 清除原有的卷标,不出现提示讯息。-s 显示目前的卷标,不出现提示讯息。范例: mlabel a:newlabel。将A 槽磁盘的卷标更改为newlabel。
名称:mcd 使用权限:所有使用者使用方式: mcd [msdosdirectory] 说明:可变更mtools 系列指令目前在MSDOS 磁盘上的工作目录。与MSDOS 的CD 指令不同,mcd 亦可变更工作磁盘。参数: 没有参数时会传回目前的工作目录。范例: mcd a:\temp 变更目前工作目录到a:\temp 中。mcd 传回目前工作目录。
名称: mkdir
使用权限:于目前目录有适当权限的所有使用者
使用方式:mkdir [-p] dirName
说明:建立名称为dirName 之子目录。
参数:-p 确保目录名称存在,不存在的就建一个。
范例:
在工作目录下,建立一个名为AAA 的子目录:
mkdir AAA
在工作目录下的BBB 目录中,建立一个名为Test 的子目录。若BBB 目录原本不存在,则建立一个。(注:本例若不加-p,且原本BBB目录不存在,则产生错误。)
mkdir -p BBB/Test
名称:more 使用权限:所有使用者使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] 说明:类似cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空格键(space)就往下一页显示,按b 键就会往回(back)一页显示,而且还有搜寻字符串的功能(与vi 相似),使用中的说明文件,请按h 。参数:-num 一次显示的行数-d 提示使用者,在画面下方显示[Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示[Press 'h' for instructions.] 而不是'哔' 声-l 取消遇见特殊字符^L(走纸字符)时会暂停的功能-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) -p 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容-c 跟-p 相似,不同的是先显示内容再清除其它旧资料-s 当遇到有连续两行以上的空白行,就代换为一行的空白行-u 不显示下引号(根据环境变量TERM 指定的terminal 而有所不同) +/ 在每个档案显示前搜寻该字符串(pattern),然后从该字符串之后开始显示+num 从第num 行开始显示fileNames 欲显示内容的档案,可为复数个数范例: more -s testfile 逐页显示testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。more +20 testfile 从第20 行开始显示testfile 之档案内容。
名称:mv
使用权限:所有使用者
使用方式:
mv [options] source dest mv [options] source... directory
说明:将一个档案移至另一档案,或将数个档案移至另一目录。
参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。
范例:
将档案aaa 更名为bbb :
mv aaa bbb
将所有的C语言程序移至Finished 子目录中:
mv -i *.c
名称:rm
使用权限:所有使用者
使用方式:rm [options] name...
说明:删除档案及目录。
参数:
-i 删除前逐一询问确认。-f 即使原档案属性设为只读,亦直接删除,无需逐一确认。-r 将目录及以下之档案亦逐一删除。
范例:
删除所有C语言程序文件;删除前逐一询问确认:
rm -i *.c
将Finished 子目录及子目录中所有档案删除:
rm -r Finished
名称:rmdir
使用权限:于目前目录有适当权限的所有使用者
使用方式: rmdir [-p] dirName
说明: 删除空的目录。
参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
范例:
将工作目录下,名为AAA 的子目录删除:
rmdir AAA
在工作目录下的BBB 目录中,删除名为Test 的子目录。若Test 删除后,BBB 目录成为空目录,则BBB 亦予删除。
rmdir -p BBB/Test
名称: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
名称: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
touch 也可以制造一个空档(0 byte),例如DHCP Server 所需要的/etc.dbcpd.leases,dhcpd必须要有这个档案才能运作正常。[root@/root]#touch /etc/dhcpd.leases [root@/root]#ls -l /etc/dhcpd.less -rw-r-r-l root root 0 Jul 3 05:50 /etc/dhcpd.leases
名称: at
使用权限: 所有使用者
使用方式: at -V [-q queue] [-f file] [-mldbv] TIME
说明: at 可以让使用者指定在TIME 这个特定时刻执行某个程序或指令,TIME 的格式是HH:MM其中的HH 为小时,MM 为分钟,甚至你也可以指定am, pm, midnight, noon, teatime(就是下午4 点钟)等口语词。
如果想要指定超过一天内的时间,则可以用MMDDYY 或者MM/DD/YY 的格式,其中MM 是分钟,DD 是第几日,YY 是指年份。另外,使用者甚至也可以使用像是now + 时间间隔来弹性指定时间,其中的时间间隔可以是minutes, hours, days, weeks。
另外,使用者也可指定today 或tomorrow 来表示今天或明天。当指定了时间并按下enter 之后,at 会进入交谈模式并要求输入指令或程序,当你输入完后按下ctrl+D 即可完成所有动作,至于执行的结果将会寄回你的帐号中。
参数:
-V : 印出版本编号-q : 使用指定的队列(Queue)来储存,at 的资料是存放在所谓的queue 中,使用者可以同时使用多个queue,而queue 的编号为a, b, c... z 以及A, B, ... Z 共52 个-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入-l : 列出所有的指定(使用者也可以直接使用atq 而不用at -l) -d : 删除指定(使用者也可以直接使用atrm 而不用at -d) -v : 列出所有已经完成但尚未删除的指定
例子:
三天后的下午5 点钟执行/bin/ls :
at 5pm + 3 days /bin/ls
三个星期后的下午5 点钟执行/bin/ls :
t 5pm + 2 weeks /bin/ls
明天的17:20 执行/bin/date :
at 17:20 tomorrow /bin/date
1999 年的最后一天的最后一分钟印出the end of world !
名称:cat 使用权限:所有使用者使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(屏幕或加> fileName 到另一个档案) 参数: -n 或--number 由1 开始对所有输出的行数编号-b 或--number-nonblank 和-n 相似,只不过对于空白行不编号-s 或--squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行-v 或--show-nonprinting 范例: cat -n textfile1 > textfile2 把textfile1 的档案内容加上行号后输入textfile2 这个档案里cat -b textfile1 textfile2 >> textfile3 把textfile1 和textfile2 的档案内容加上行号(空白行不加)之后将内容附加到textfile3 里。
范例:
把textfile1 的档案内容加上行号后输入textfile2这个档案里
cat -n textfile1 > textfile2
把textfile1 和textfile2 的档案内容加上行号(空白行不加)之后将内容附加到textfile3 里
cat -b textfile1 textfile2 >>textfile3
名称: crontab
使用权限: 所有使用者
使用方式:
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
说明:
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定user 的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-u user 的话,就是表示设定自己的时程表。
餐数:
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL 环境变量来指定使用那个文字编辑器(比如说setenv VISUAL joe) -r : 删除目前的时程表-l : 列出目前的时程表
时程表的格式如下:
f1 f2 f3 f4 f5 program
其中f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当f1 为* 时表示每分钟都要执行program,f2 为* 时表示每小时都要执行程序,其余类推当f1 为a-b 时表示从第a 分钟到第b 分钟这段时间内要执行,f2 为a-b 时表示从第a 到第b 小时都要执行,其余类推当f1 为*/n 时表示每n 分钟个时间间隔执行一次,f2 为*/n 表示每n 小时个时间间隔执行一次,其余类推当f1 为a, b, c,... 时表示第a, b, c,... 分钟要执行,f2 为a, b, c,... 时表示第a, b, c...个小时要执行,其余类推
使用者也可以将所有的设定先存放在档案file 中,用crontab file 的方式来设定时程表。
例子:
每月每天每小时的第0 分钟执行一次/bin/ls :
0 7 * * * /bin/ls
在12 月内, 每天的早上6 点到12 点中,每隔20 分钟执行一次/usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午5:00 寄一封信给[email]alex@domain.name[/email] :
0 17 * * 1-5 mail -s "hi" [email]alex@domain.name[/email] < /tmp/maildata
每月每天的午夜0 点20 分, 2 点20 分, 4 点20 分....执行echo "haha"
20 0-23/2 * * * echo "haha"
注意:
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上> /dev/null 2>&1 即可。
名称: sleep
使用权限: 所有使用者
使用方式: sleep [--help] [--version] number[smhd]
说明: sleep 可以用来将目前动作延迟一段时间
参数说明:
--help : 显示辅助讯息--version : 显示版本编号number : 时间长度,后面可接s、m、h 或d 其中s 为秒,m 为分钟,h 为小时,d 为日数
例子:
显示目前时间后延迟1 分钟,之后再次显示时间:
名称: date
使用权限: 所有使用者
使用方式:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明:
date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面:
% : 印出% %n : 下一行%t : 跳格%H : 小时(00..23) %I : 小时(01..12) %k : 小时(0..23) %l : 小时(1..12) %M : 分钟(00..59) %p : 显示本地AM 或PM %r : 直接显示时间(12 小时制,格式为hh:mm:ss [AP]M) %s : 从1970 年1 月1 日00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61) %T : 直接显示时间(24 小时制) %X : 相当于%H:%M:%S %Z : 显示时区
日期方面:
%a : 星期几(Sun..Sat) %A : 星期几(Sunday..Saturday) %b : 月份(Jan..Dec) %B : 月份(January..December) %c : 直接显示日期与时间%d : 日(01..31) %D : 直接显示日期(mm/dd/yy) %h : 同%b %j : 一年中的第几天(001..366) %m : 月份(01..12) %U : 一年中的第几周(00..53) (以Sunday 为一周的第一天的情形) %w : 一周中的第几天(0..6) %W : 一年中的第几周(00..53) (以Monday 为一周的第一天的情形) %x : 直接显示日期(mm/dd/yy) %y : 年份的最后两位数字(00.99) %Y : 完整年份(0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为MMDDhhmm[[CC]YY][.ss],其中MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
参数:
-d datestr : 显示datestr 中所设定的时间(非系统时间) --help : 显示辅助讯息-s datestr : 将系统时间设为datestr 中所设定的时间-u : 显示目前的格林威治时间--version : 显示版本编号
例子:
显示时间后跳行,再显示目前日期:
date '+%T%n%D'
显示月份与日数:
date '+%B %d'
显示日期与设定时间(12:34:56) :
date --date '12:34:56'
注意:
当你不希望出现无意义的0 时(比如说1999/03/07),则可以在标记中插入- 符号,比如说date '+%-H:%-M:%-S' 会把时分秒中无意义的0 给去掉,像是原本的08:09:04 会变为8:9:4。另外,只有取得权限者(比如说root)才能设定系统时间。
当你以root 身分更改了系统时间之后﹐请记得以clock -w 来将系统时间写入CMOS 中﹐这样下次重新开机时系统时间才会持续抱持最新的正确值。
名称: time
使用权限: 所有使用者
使用方式: time [options] COMMAND [arguments]
说明: time 指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等信息。例如CPU 时间、内存、输入输出等等。需要特别注意的是,部分信息在Linux 上显示不出来。这是因为在Linux 上部分资源的分配函式与time 指令所预设的方式并不相同,以致于time 指令无法取得这些数据。
参数:
 -o or --output=FILE 设定结果输出档。这个选项会将time 的输出写入所指定的档案中。如果档案已经存在,系统将覆写其内容。
 -a or --append 配合-o 使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。
 -f FORMAT or --format=FORMAT 以FORMAT 字符串设定显示方式。当这个选项没有被设定的时候,会用系统预设的格式。不过你可以用环境变量time 来设定这个格式,如此一来就不必每次登入系统都要设定一次。一般设定上,你可以用
'\t'
表示跳栏,或者是用
'\n'
表示换行。每一项资料要用% 做为前导。如果要在字符串中使用百分比符号,就用。(学过C 语言的人大概会觉得很熟悉) time 指令可以显示的资源有四大项,分别是: Time resources Memory resources IO resources Command info 详细的内容如下:
o Time Resources
 E 执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的CPU 时间。
 e 执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的CPU 时间。
 S 指令执行时在核心模式(kernel mode)所花费的时间,单位是秒。
 U 指令执行时在使用者模式(user mode)所花费的时间,单位是秒。
 P 执行指令时CPU 的占用比例。其实这个数字就是核心模式加上使用者模式的CPU 时间除以总时间。
o Memory Resources
 M 执行时所占用的物理内存的最大值。单位是KB
 t 执行时所占用的物理内存的平均值,单位是KB
 K 执行程序所占用的内存总量(stack+data+text)的平均大小,单位是KB
 D 执行程序的自有资料区(unshared data area)的平均大小,单位是KB
 p 执行程序的自有堆栈(unshared stack)的平均大小,单位是KB
 X 执行程序间共享内容(shared text)的平均值,单位是KB
 Z 系统内存页的大小,单位是byte。对同一个系统来说这是个常数
o IO Resources
 F 此程序的主要内存页错误发生次数。所谓的主要内存页错误是指某一内存页已经置换到置换档(swap file)中,而且已经分配给其它程序。此时该页的内容必须从置换档里再读出来。
 R 此程序的次要内存页错误发生次数。所谓的次要内存页错误是指某一内存页虽然已经置换到置换档中,但尚未分配给其它程序。此时该页的内容并未被破坏,不必从置换档里读出来
 W 此程序被交换到置换档的次数
 c 此程序被强迫中断(像是分配到的CPU 时间耗尽)的次数
 w 此程序自愿中断(像是在等待某一个I/O 执行完毕,像是磁盘读取等等)的次数
 I 此程序所输入的档案数
 O 此程序所输出的档案数
 r 此程序所收到的Socket Message
 s 此程序所送出的Socket Message
 k 此程序所收到的信号( Signal )数量
o Command Info
 C 执行时的参数以及指令名称
 x 指令的结束代码( Exit Status )
 -p or --portability 这个选项会自动把显示格式设定成为: real %e user %U sys %S 这么做的目的是为了与POSIX 规格兼容。
 -v or --verbose 这个选项会把所有程序中用到的资源通通列出来,不但如一般英文语句,还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。
 
范例:
利用下面的指令
time -v ps -aux
我们可以获得执行ps -aux 的结果和所花费的系统资源。如下面所列的资料:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd] root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod] ...... root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux Command being timed: "ps -aux" User time (seconds): 0.05 System time (seconds): 0.06 Percent of CPU this job got: 68% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16 Average shared text size (kbytes): 0 Average unshared data size (kbytes): 0 Average stack size (kbytes): 0 Average total size (kbytes): 0 Maximum resident set size (kbytes): 0 Average resident set size (kbytes): 0 Major (requiring I/O) page faults: 238 Minor (reclaiming a frame) page faults: 46 Voluntary context switches: 0 Involuntary context switches: 0 Swaps: 0 File system inputs: 0 File system outputs: 0
Socket messages sent: 0 Socket messages received: 0 Signals delivered: 0 Page size (bytes): 4096 Exit status: 0
名称: uptime 使用权限: 所有使用者使用方式: uptime [-V] 说明: uptime 提供使用者下面的信息,不需其它参数:
1. 现在的时间
2. 系统开机运转到现在经过的时间
3. 联机的使用者数量
4. 最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本信息。范例: uptime 其结果为: 10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
指令名称: chown
使用权限: root
使用方式: chmod [-cfhvR] [--help] [--version] user[:group] file...
说明: Linux/Unix 是多人多任务操作系统﹐所有的档案皆有拥有者。利用chown 可以将档案的拥有者加以改变。一般来说﹐这个指令只有是由系统管理者(root)所使用﹐一般使用者没有权限可以改变别人的档案拥有者﹐也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
参数:
user : 新的档案拥有者的使用者IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改﹐才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更﹐而非该link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递归的方式逐个变更)--help : 显示辅助说明--version : 显示版本
范例:
将档案file1.txt 的拥有者设为users 群体的使用者jessie :
chown jessie:users file1.txt
将目前目录下的所有档案与子目录的拥有者皆设为users 群体的使用者lamport :
chmod -R lamport:users *
名称:chfn
使用权限:所有使用者
用法:shell>> chfn
说明:提供使用者更改个人信息,用于finger and mail username
范例:
shell>> chfn
Changing finger information for user
Password: [del]
Name[]:Johnney Huang ### 提供finger 时的资料
Office[]:NCCU
Office Phone[]: [del]
Home Phone[]: [del]
名称:chsh
使用权限:所有使用者
用法:shell>> chsh
说明:更改使用者shell 设定
范例:
shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的shell]
[del]
shell>> chsh -l ### 展示/etc/shells 档案内容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
名称: finger
使用权限: 所有使用者
使用方式: finger [options] user[@address]
说明:finger 可以让使用者查询一些其它使用者的资料。会列出来的资料有:
1. Login Name
2. User Name
3. Home directory
4. Shell
5. Login status
6. mail status
7. .plan
8. .project
9. .forward
其中.plan ,.project 和.forward 就是使用者在他的Home Directory 里的.plan , .project 和.forward 等档案里的资料。如果没有就没有。finger 指令并不限定于在同一服务器上查询,也可以寻找某一个远程服务器上的使用者。只要给一个像是E-mail address 一般的地址即可。
参数:
 -l 多行显示。
 -s 单行显示。这个选项只显示登入名称,真实姓名,终端机名称,闲置时间,登入时间,办公室号码及电话号码。如果所查询的使用者是远程服务器的使用者,这个选项无效。
范例:下列指令可以查询本机管理员的数据:
finger root
其结果如下:
Login: root Name: root Directory: /root Shell: /bin/bash Never logged in. No mail. No Plan.
名称:last
使用权限:所有使用者
使用方式:shell>> last [options]
说明:显示系统开机以来获是从每月初登入者的讯息
参数:
-R 省略hostname 的字段
-num 展示前num 个
username 展示username 的登入讯息
tty 限制登入讯息包含终端机代号
范例:
shell>> last -R -2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in
wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp
shell>> last -2 minery
minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02)
wtmp begins Tue Aug 1 09:01:10 2000
名称: who
使用权线: 所有使用者都可使用
使用方式: who - [husfV] [user]
说明: 显示系统中有那些使用者正在上面,显示的数据包含了使用者ID,使用的终端机,从那边连上来的,上线时间,呆滞时间,CPU 使用量,动作等等。
参数:
-h : 不要显示标题列-u : 不要显示使用者的动作/工作-s : 使用简短的格式来显示-f : 不要显示使用者的上线位置-V : 显示程序版本
名称:/etc/aliases 使用权限:系统管理者使用方式: 请用newaliases 更新数据库说明:
sendmail 会使用一个在/etc/aliases 中的档案做使用者名称转换的动作。当sendmail 收到一个要送给xxx 的信时,它会依据aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如mailing list 就会用到这个功能,在mailinglist 中,我们可能会创造一个叫[email]redlinux@link.ece.uci.edu[/email] 的mailinglist,但实际上并没有一个叫redlinux 的使用者。实际aliases 档的内容是将送给这个使用者的信都收给mailing list 处理程序负责分送的工作。
/etc/aliases 是一个文字模式的档案,sendmail 需要一个二进制元格式的/etc/aliases.db。newaliases 的功能传是将/etc/aliases 转换成一个sendmail 所能了解的数据库。范例:
# newaliases
下面命令会做相同的事,
# sendmail -bi
相关命令: mail, mailq, newaliases, sendmail
名称:mail
使用权限:所有使用者
使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
说明: mail 不仅只是一个指令﹐ mail 还是一个电子邮件程序﹐不过利用mail 来读信的人应该很少吧﹗对于系统管理者来说mail 就很有用﹐因为管理者可以用mail 写成script ﹐定期寄一些备忘录提醒系统的使用者。
参数: i 忽略tty 的中断讯号。(interrupt) I 强迫设成互动模式。(Interactive) v 打印出讯息﹐例如送信的地点﹑状态等等。(verbose) n 不读入mail.rc 设定档。s 邮件标题。c cc 邮件地址。b bcc 邮件地址。
范例:
将信件送给一个或以上的电子邮件地址﹐由于没有加入其它的选项﹐使用者必须输入标题与信件的内容等。而user2 没有主机位置﹐就会送给邮件服务器的user2 使用者。
mail [email]user1@email.addr[/email]ess mail [email]user1@email.addr[/email]ess user2
将mail.txt 的内容寄给user2 同时cc 给user1 。如果将这一行指令设成cronjob 就可以定时将备忘录寄给系统使用者。
mail -s 标题-c user1 user2 < mail.txt
名称:cp
使用权限:所有使用者
使用方式:
cp [options] source dest cp [options] source... directory
说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
参数:
-a 尽可能将档案状态、权限等资料都照原状予以复制。-r 若source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
指令:mesg
使用权限: 所有使用者
使用方式: mesg [y|n]
说明: 决定是否允许其它人传讯息到自己的终端机接口
参数:
y : 允许讯息传到终端机接口上。n : 不允许讯息传到终端机接口上。如果没有设定,则讯息传递与否则由终端机接口目前状态而定。
例子:
改变目前讯息设定,改成不允许讯息传到终端机接口上:
mesg n
与mesg 相关的指令有: talk,write,wall。
名称:/etc/aliases 使用权限:系统管理者使用方式: newaliases 说明:
sendmail 会使用一个在/etc/aliases 中的档案做使用者名称转换的动作。当sendmail 收到一个要送给xxx 的信时,它会依据aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如mailing list 就会用到这个功能,在mailinglist 中,我们可能会创造一个叫[email]redlinux@link.ece.uci.edu[/email] 的mailinglist,但实际上并没有一个叫redlinux 的使用者。实际aliases 档的内容是将送给这个使用者的信都收给mailing list 处理程序负责分送的工作。
/etc/aliases 是一个文字模式的档案,sendmail 需要一个二进制元格式的/etc/aliases.db。newaliases 的功能传是将/etc/aliases 转换成一个sendmail 所能了解的数据库。
参数:没有任何参数。范例:
# newaliases
下面命令会做相同的事,
# sendmail -bi
相关命令: mail, mailq, newaliases, sendmail
名称: talk
使用权限: 所有使用者
使用方式:
talk person [ttyname]
说明: 与其它使用者对谈
参数:
person : 预备对谈的使用者帐号,如果该使用者在其它机器上,则可输入[email]person@machine.name[/email] ttyname : 如果使用者同时有两个以上的tty 联机,可以自行选择合适的tty 传讯息
例子.1 :
与现在机器上的使用者Rollaend对谈,此时Rollaend 只有一个联机:
talk Rollaend <br>
接下来就是等Rollaend响应,若Rollaend接受,则Rollaend输入`talk jzlee`即可开始对谈,结束请按ctrl+c
例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈:
talk [email]Rollaend@linuxfab.cx[/email] pts/2<br>
接下来就是等Rollaend响应,若Rollaend接受,则Rollaend输入`talk [email]jzlee@jzlee.home[/email]`即可开始对谈,结束请按ctrl+c
注意: 若屏幕的字会出现不正常的字符,试着按ctrl+l 更新屏幕画面。
名称: wall
使用权限: 所有使用者
使用方式:
wall [ message ]
使用说明:
wall 会将讯息传给每一个mesg 设定为yes 的上线使用者。当使用终端机接口做为标准传入时, 讯息结束时需加上EOF (通常用Ctrl+D)。
例子:
传讯息"hi" 给每一个使用者:
wall hi
名称: write
使用权限: 所有使用者
使用方式:
write user [ttyname]
说明: 传讯息给其它使用者
参数:
user : 预备传讯息的使用者帐号ttyname : 如果使用者同时有两个以上的tty 联机,可以自行选择合适的tty 传讯息
例子.1 :
传讯息给Rollaend,此时Rollaend 只有一个联机:
write Rollaend <br>
接下来就是将讯息打上去,结束请按ctrl+c
例子.2 :传讯息给Rollaend,Rollaend 的联机有pts/2,pts/3 :
write Rollaend pts/2<br>
接下来就是将讯息打上去,结束请按ctrl+c
注意: 若对方设定mesg n,则此时讯席将无法传给对方,
名称:nice
使用权限:所有使用者
使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]
说明:以更改过的优先序来执行程序, 如果未指定程序, 则会印出目前的排程优先序, 内定的adjustment 为10, 范围为-20 (最高优先序) 到19 (最低优先序)
参数:
-n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加adjustment --help 显示求助讯息--version 显示版本信息
范例:
将ls 的优先序加1 并执行:
nice -n 1 ls
将ls 的优先序加10 并执行:
nice ls 将k的优先次序加10并执行
注意: 优先序(priority) 为操作系统用来决定CPU 分配的参数,Linux 使用『回合制(round-robin)』的算法来做CPU 排程,优先序越高,所可能获得的CPU时间就越多。
名称:kill
使用权限:所有使用者
使用方式:
kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ]
说明:kill 送出一个特定的信号(signal) 给行程id 为pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止(TERM) 的信号
参数:
-s (signal) : 其中可用的讯号有HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用kill -l -p : 印出pid , 并不送出信号-l (signal) : 列出所有可用的信号名称
范例:
将pid 为323 的行程砍掉(kill) :
kill -9 323
将pid 为456 的行程重跑(restart) :
kill -HUP 456
名称:ps 使用权限:所有使用者使用方式:ps [options] [--help] 说明:显示瞬间行程(process) 的动态参数: ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A 列出所有的行程-w 显示加宽可以显示较多的信息-au 显示较详细的信息-aux 显示所有包含其它使用者的行程
au(x)输出格式
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID:pid
%CPU:占用的cpu使用率
VSZ:占用的内存使用率
RSS:占用的虚拟内存大小
TTY:占用的内存大小
STAT:该行程的状态
D:不可中断的静止
R:正在执行中
S:静止状态
T:暂停执行
Z:不存在但暂时无法消除
W:没有足够的内存分页可分配
<:高的先序的行程
N:低优先序的行程
L:有内存分页分配并锁在内存内
START:行程开始时间
COMMAND:所执行的指令。
名称:cut
使用权限:所有使用者
用法:cut -cnum1-num2 filename
说明:显示每行从开头算起num1 到num2 的文字。
范例:
shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print 开头算起前6 个字符
test2
this i
名称:pstree 使用权限:所有使用者使用方式: pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user] pstree -V 说明:将所有行程以树状图显示, 树状图将会以pid (如果有指定) 或是以init 这个基本行程为根(root) ,如果有指定使用者id , 则树状图会只显示该使用者所拥有的行程参数: -a 显示该行程的完整指令及参数, 如果是被内存置换出去的行程则会加上括号-c 如果有重复的行程名, 则分开列出(默认值是会在前面加上* 范例:
pstree init-+-amd |-apmd
|-atd |-httpd---10*[httpd] %pstree -p init(1)-+-amd(447) |-apmd(105) |-atd(339) %pstree -c init-+-amd |-apmd |-atd |-httpd-+-httpd | |-httpd | |-httpd | |-httpd ....
名称:skill
使用权限:所有使用者
使用方式: skill [signal to send] [options] 选择程序的规则
说明:
送个讯号给正在执行的程序,预设的讯息为TERM (中断) , 较常使用的讯息为HUP , INT , KILL , STOP , CONT ,和0
讯息有三种写法:分别为-9 , -SIGKILL , -KILL , 可以使用-l 或-L 已列出可使用的讯息。
一般参数:
-f 快速模式/尚未完成
-i 互动模式/ 每个动作将要被确认
-v 详细输出/ 列出所选择程序的信息
-w 智能警告讯息/ 尚未完成
-n 没有动作/ 显示程序代号
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。
-t 终端机代号( tty 或pty )
-u 使用者名称
-p 程序代号( pid )
-c 命令名称可使用的讯号:
以下列出已知的讯号名称,讯号代号,功能。
名称(代号) 功能/ 描述
ALRM 14 离开
HUP 1 离开
INT 2 离开
KILL 9 离开/ 强迫关闭
PIPE 13 离开
POLL 离开
PROF 离开
TERM 15 离开
USR1 离开
USR2 离开
VTALRM 离开
STKFLT 离开/ 只适用于i386, m68k, arm 和ppc 硬件
UNUSED 离开/ 只适用于i386, m68k, arm 和ppc 硬件
TSTP 停止/产生与内容相关的行为
TTIN 停止/产生与内容相关的行为
TTOU 停止/产生与内容相关的行为
STOP 停止/强迫关闭
CONT 从新激活/如果在停止状态则从新激活,否则忽略
PWR 忽略/在某些系统中会离开
WINCH 忽略
CHLD 忽略
ABRT 6 核心
FPE 8 核心
ILL 4 核心
QUIT 3 核心
SEGV 11 核心
TRAP 5 核心
SYS 核心/或许尚未实作
EMT 核心/或许尚未实作
BUS 核心/核心失败
XCPU 核心/核心失败
XFSZ 核心/核心失败
范例:
停止所有在PTY 装置上的程序
skill -KILL -v pts/*
停止三个使用者user1 , user2 , user3
skill -STOP user1 user2 user3
其它相关的命令: kill
名称:renice
使用权限:所有使用者
使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
参数:
-p pid 重新指定行程的id 为pid 的行程的优先序-g pgrp 重新指定行程群组(process group)的id 为pgrp 的行程(一个或多个) 的优先序-u user 重新指定行程拥有者为user 的行程的优先序
范例:
将行程id 为987 及32 的行程与行程拥有者为daemon 及root 的优先序号码加1 :
renice +1 987 -u daemon root -p 32
注意: 每一个行程(Process)都有一个唯一的(unique) id。
名称:top
使用权限:所有使用者
使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
说明:实时显示process 的动态
参数:
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按s q : 没有任何延迟的显示速度,如果使用者是有superuser 的权限,则top 将会以最高的优先序执行c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程( dead child process ) 的CPU time 累积起来s : 安全模式,将交谈式指令取消, 避免潜在的危机i : 不显示任何闲置(idle) 或无用(zombie) 的行程n : 更新的次数,完成后将会退出top b : 批次文件模式,搭配"n" 参数一起使用,可以用来将top 的结果输出到档案内
范例:
显示更新十次后退出;
top -n 10
使用者将不能利用交谈式指令来对行程下命令:
top -s
将更新显示二次的结果输入到名称为top.log 的档案里:
top -n 2 -b < top.log
指令expr
### 字符串长度
shell>> expr length "this is a test"
14
### 数字商数
shell>> expr 14 % 9
5
### 从位置处抓取字符串
shell>> expr substr "this is a test" 3 5
is is
### 数字符串only the first character
shell>> expr index "testforthegame" e
2
### 字符串真实重现
shell>> expr quote thisisatestformela
thisisatestformela
指令tr
### 1.比方说要把目录下所有的大写档名换为小写档名?
似乎有很多方式,"tr"是其中一种:
#!/bin/sh
dir="/tmp/testdir";
files=`find $dir -type f`;
for i in $files
do
dir_name=`dirname $i`;
ori_filename=`basename $i`
new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null;
#echo $new_filename;
mv $dir_name/$ori_filename $dir_name/$new_filename
done
### 2.自己试验中...lowercase to uppercase
tr abcdef...[del] ABCDE...[del]
tr a-z A-Z
tr '[:lower:]' '[:upper:]'
shell>> echo "this is a test" | tr a-z A-Z > www
shell>> cat www
THIS IS A TEST
### 3.去掉不想要的字符串
shell>> tr -d this ### 去掉有关t.e.s.t
this
man
man
test
e
### 4.取代字符串
shell>> tr -s "this" "TEST"
this
TEST
th
TE
名称: reset, tset
使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]
使用说明:
reset 其实和tset 是一同个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变量、命令列或是其它的组态文件决定目前终端机的型态。如果指定型态是'?' 的话,这个程序会要求使用者输入终端机的型别。
由于这个程序会将终端机设回原始的状态,除了在login 时使用外,当系统终端机因为程序不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o 例如不小心把二进制元文件用cat 指令进到终端机,常会有终端机不再响应键盘输入,或是响应一些奇怪字符的问题。此时就可以用reset 将终端机回复至原始状态。选项说明:
-p
将终端机类别显示在屏幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别。
-e ch
将erase 字符设成ch
-i ch
将中断字符设成ch
-k ch
将删除一行的字符设成ch
-I
不要做设定的动作,如果没有使用选项-Q 的话,erase、中断及删除字符的目前值依然会送到屏幕上。
-Q
不要显示erase、中断及删除字符的值到屏幕上。
-r
将终端机类别印在屏幕上。
-s
将设定TERM 用的命令用字符串的型式送到终端机中,通常在.login 或.profile 中用
范例:
让使用者输入一个终端机型别并将终端机设到该型别的预设状态。
# reset ?
将erase 字符设定control-h
# reset -e ^B
将设定用的字符串显示在屏幕上
# reset -s Erase is control-B (^B). Kill is control-U (^U). Interrupt is control-C (^C). TERM=xterm;
名称: find 用法: find <path> <expression> 使用说明:
将档案系统内符合expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同信息的组合,只有完全相符的才会被列出来。
find 根据下列规则判断path 和expression,在命令列上第一个- ( ) , ! 之前的部份为path,之后的是expression。如果path 是空字符串则使用目前路径,如果expression 是空字符串则使用-print 为预设expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案-amin n : 在过去n 分钟内被读取过
-anewer file : 比档案file 更晚被读取过的档案-atime n : 在过去n 天过读取过的档案-cmin n : 在过去n 分钟内被修改过-cnewer file :比档案file 更新的档案-ctime n : 在过去n 天过修改过的档案-empty : 空的档案-gid n or -group name : gid 是n 或是group 名称是name -ipath p, -path p : 路径名称符合p 的档案,ipath 会忽略大小写-name name, -iname name : 文件名称符合name 的档案。iname 会忽略大小写-size n : 档案大小是n 单位,b 代表512 字节的区块,c 表示字符数,k 表示kilo bytes,w 是二个字节。-type c : 档案类型是c 的档案。
o d: 目录
o c: 字型装置档案
o b: 区块装置档案
o p: 具名贮列
o f: 一般档案
o l: 符号连结
o s: socket
-pid n : process id 是n 的档案
你可以使用( ) 将表达式分隔,并使用下列运算。
 exp1 -and exp2
 ! expr
 -not expr
 exp1 -or exp2
 exp1, exp2
范例: 将目前目录及其子目录下所有延伸文件名是c 的档案列出来。
# find . -name "*.c"
将目前目录其其下子目录中所有一般档案列出
# find . -ftype f
将目前目录及其子目录下所有最近20 分钟内更新过的档案列出
# find . -ctime -20
名称:compress
使用权限:所有使用者
使用方式:compress [-dfvcV] [-b maxbits] [file ...]
说明: compress 是一个相当古老的unix 档案压缩指令﹐压缩后的档案会加上一个.Z 延伸档名以区别
未压缩的档案﹐压缩后的档案可以以uncompress 解压。若要将数个档案压成一个压缩档﹐必须先将档案tar 起来再压缩。由于gzip 可以产生更理想的压缩比例﹐一般人多已改用gzip 为档案压缩工具。
参数: c 输出结果至标准输出设备(一般指荧幕) f 强迫写入档案﹐若目的档已经存在﹐则会被覆盖(force) v 将程序执行的讯息印在荧幕上(verbose) b 设定共同字符串数的上限﹐以位计算﹐可以设定的值为9 至16 bits 。由于值越大﹐能使用的共同字符串就越多﹐压缩比例就越大﹐所以一般使用默认值16 bits (bits) d 将压缩档解压缩V 列出版本讯息
范例:
将source.dat 压缩成source.dat.Z ﹐若source.dat.Z 已经存在﹐内容则会被压缩档覆盖。
compress -f source.dat
将source.dat 压缩成source.dat.Z ﹐并打印出压缩比例。-v 与-f 可以一起使用
compress -vf source.dat
将压缩后的资料输出后再导入target.dat.Z 可以改变压缩档名。
compress -c source.dat > target.dat.Z
-b 的值越大﹐压缩比例就越大﹐范围是9-16 ﹐默认值是16 。
compress -b 12 source.dat
将source.dat.Z 解压成source.dat ﹐若档案已经存在﹐使用者按y 以确定覆盖档案﹐若使用-df 程序则会自动覆盖档案。由于系统会自动加入.Z 为延伸档名﹐所以source.dat 会自动当作source.dat.Z 处理。
compress -d source.dat
Name: cpio - copy file archives in and out cpio -i [ bBcdfkmPrsStuvV6 ] [ -C bufsize ] [ -E file ] [ -H header ] [ -I file [ -M message ] ] [ -R id ] [ pattern ... ] cpio -o [ aABcLPvV ] [ -C bufsize ] [ -H header ] [ -O file [ -M message ] ] cpio -p [ adlLmPuvV ] [ -R id ] directory Description: An ironic term that refers to the GNU General Public License (the GPL), signifying a radical departure from standard copyright. Back-up utility, similar to tar. Option:
-i (copy in) cpio -i extracts files from the standard input. -o (copy out) cpio -o reads the standard input to obtain a list of path names and copies those files onto the standard output. -p (pass) cpio -p reads the standard input to obtain a list of path names of files. The following options can be appended in any sequence to the -o, -i, or -p options: -a Reset access times of input files after they have been copied. Access times are not reset for linked files when cpio -pla is specified (mutually exclusive with -m). -A Append files to an archive. The -A option requires the -O option. Valid only with archives that are files, or that are on floppy diskettes or hard disk partitions. -b Reverse the order of the bytes within each word. (Use only with the -i option.) -B Block input/output 5120 bytes to the record. The default buffer size is 512 bytes when this and the -C options are not used. -B does not apply to the pass option; -B is meaningful only with data directed to or from a character special device, for example, /dev/rmt/0m. -c Read or write header information in ASCII character form for portability. There are no UID or GID restrictions associated with this header format. Use this option between SVR4based machines, or the -H odc option between unknown machines. The -c option implies the use of expanded device numbers, which are only supported on SVR4-based systems. When transferring files between Solaris 1.x or Interactive UNIX and Solaris 2.x use -H odc.
gzip [-acdfhlLnNqrtvV][-S<压缩字尾字符串>][- <压缩率>][--best][--fast][档案] 常用的就-d 解压缩与-N -n 压缩档案-r则代表「recursive」将指定目录底下的所有档案和子目录一并处理
选项
-a --ascii ASCII文字模式
-c --stdout --to-stdout 压缩后档案输出至标准输出,不更动源文件。如果有多个input file的时候,会把所有档案连接后再送出。
-d --decompress --uncompress 解压缩
-f --force 强行压缩或解压缩
-h --help 显示online Help
-l --list 对每个被压缩的档案,列出以下讯息: compressed size: 压缩后的大小uncompressed size: 未压缩前的大小ratio: 压缩比率(0.0% if unknown)uncompressed_name: 未压缩前的文件名称
-L 显示版本版权讯息
-n 压缩档案时不储存原来档案的名称与时间
-N 相对于小写,储存原来档案的名称与时间
-q 不显示警告讯息
-r 指定目录下所有的档案和子目录一并处理
-S 更改压缩字尾字符串
-t 测试压缩档
-V 显示指令执行的过程
-v 版本讯息
-数字压缩比例1~9之间的数值
Rpm: Description: Command used to manage all of the rpm software packages on a Linux system.
Option:
 -i Install a package
 -q To see if a package is installed on the system.
 -U Update the package
 -e All information about a package is completely erased.
 -qa List all the packages installed on the system.
 -qi List a description of a package
 -ql List all the files in a package
 -qf Show which package contains a certain file
Name: rpm2cpio - Converts Red Hat Packge (RPM) to cpio archive rpm2cpio [filename] Description: rpm2cpio converts the .rpm file specified as it's sole argument to a cpio archive on standard out. If no argument is given, a rpm stream is read from standard in. rpm2cpio rpm-1.1-1.i386.rpm rpm2cpio < glint-1.0-1.i386.rpm
名称:uudecode
使用权限:所有使用者
使用方式:uuencode [-hv] [file1 ...]
说明:
uudecode 将uuencode 编码后的档案还原﹐ uudecode 只会将begin 与end 标记之间的编码资料还原﹐程序会跳过标记以外的资料。
begin 644 file1.txt 15&AI<R!I<R!A(&9I;&4N"@H" end
这里的文字不会被译码
参数: h 列出指令使用格式(help) v 列出版本讯息
范例:
将file.uud 还原﹐而还原后的档名储存在file.uud 檔中。
uuencode file.uud
可以一起还原好几个档案。
uuencode file1.uud file2.uud
名称:uuencode
使用权限:所有使用者
使用方式:uuencode [-hv] [sourcefile] targetfile
说明:
早期在许多unix 系统的传送协议只能传送七位字符﹐并不支持二进制档案﹐像中文文字文件就有用到八位﹐所以无法完整地送到另一架机器上。uuencode 指令﹐可以将二进制文件转换成七
位的档案﹐传送到另一架机器上再以uudecode 还原。最常见的是用在以电子邮件传送二进制文件。uuencode 编码后的资料都以begin 开始﹐以end 作为结束。
begin 644 decode.dat
(内容编码)
end
begin 后的644 是unix 档案的存取权限代码。而decode.dat 则是还原后的档名。
参数: h 列出指令使用格式(help) v 列出版本讯息(version)
范例:
将source.dat 编码后存成file.uud 檔。由于uuencode 会将编码后的数据在荧幕上列出﹐所以必须将资料导入file.uud 中﹐而target.dat 是file.uud 还原后的文件名字﹐而不是编码后的档案。
uuencode source.dat target.dat > file.uud
执行指令后﹐由标准输入装置读入资料﹐简单地说是由键盘输入后在荧幕显示的数据﹐按Crtl + d 键后就会被编码﹐输出至file.uud 中。由于程序是以行为处理单位﹐若无法跳出程序﹐请多按几次Ctrl + d 直到程序结束为止。
uuencode target.dat > file.uud
类似上一个指令﹐不过使用一个导入的技巧﹐将source.dat 压缩后的资料传送给uuencode 处理之后﹐存成file.uud 檔。file.uud 档还原后就是source.dat.Z 檔。
compress -c source.dat | uuencode source.dat.Z > file.uud
显示版本讯息后﹐结束执行程序。
uuencode -v
名称: lpd
使用权限: 所有使用者
使用方式:lpd [-l] [#port] lpd 是一个常驻的打印机管理程序,它会根据/etc/printcap 的内容来管理本地或远程的打印机。/etc/printcap 中定义的每一个打印机必须在/var/lpd 中有一个相对应的目录,目录中以cf 开头的档案表示一个等待送到适当装置的印表工作。这个档案通常是由lpr 所产生。
lpr 和lpd 组成了一个可以离线工作的系统,当你使用lpr 时,打印机不需要能立即可用,甚至不用存在。lpd 会自动监视打印机的状况,当打印机上线后,便立即将档案送交处理。这个得所有的应用程序不必等待打印机完成前一工作。
参数:
 -l: 将一些除错讯息显示在标准输出上。
 #port: 一般而言,lpd 会使用getservbyname 取得适当的TCP/IP port,你可以使用这个参数强迫lpd 使用指定的port。
范例: 这个程序通常是由/etc/rc.d 中的程序在系统启始阶段执行。
名称lpq
lpq -- 显示列表机贮列中未完成的工作
用法
lpq [l] [P] [user]
说明
lpq 会显示由lpd 所管理的列表机贮列中未完成的项目。
范例
范例1. 显示所有在lp 列表机贮列中的工作
# lpq -PlpRank Owner Job Files Total Size1st root 238 (standard input) 1428646 bytes
相关函数
lpr,lpc,lpd
名称: lpr
使用权限: 所有使用者
使用方式:lpr [ -P printer ] 将档案或是由标准输入送进来的资料送到打印机贮列之中,打印机管理程序lpd 会在稍后将这个档案送给适当的程序或装置处理。lpr 可以用来将料资送给本地或是远程的主机来处理。
参数:
 -p Printer: 将资料送至指定的打印机Printer,默认值为lp。
范例: 将[url]www.c[/url] 和kkk.c 送到打印机lp。
lpr -Plp [url]www.c[/url] kkk.c
名称lprm
lprm -- 将一个工作由打印机贮列中移除
用法
/usr/bin/lprm [P] [file...]
说明
尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将常未送到打印机的工作取消。由于每一个打印机都有一个独立的贮列,你可以用-P 这个命令设定想要作用的印列机。如果没有设定的话,会使用系统预设的打印机。
这个命令会检查使用者是否有足够的权限删除指定的档案,一般而言,只有档案的拥有者或是系统管理员才有这个权限。
范例
将打印机hpprinter 中的第1123 号工作移除
lprm -Phpprinter 1123
将第1011 号工作由预设打印机中移除
lprm 1011
§ 1.8 less
名称:less
使用权限:所有使用者
使用方式
less [Option] filename
说明:、
less的作用与more十分相似,都可以用来浏览文本文件的内容,不同的是less允许使用者往回卷动,以浏览已经看过的部分,同时因为less并未在一开始就读入整个档案,因此在遇到大型档案的开启时,会比一般的文书编辑器(如vi)来的快速
名称: fdformat
使用权限: 所有使用者
使用方式:fdformat [-n] device
使用说明: 对指定的软盘机装置进行低阶格式化。使用这个指令对软盘格式化的时候,最好指定像是下面的装置:
 /dev/fd0d360 磁盘驱动器A: ,磁盘为360KB 磁盘
 /dev/fd0h1440 磁盘驱动器A: ,磁盘为1.4MB 磁盘
 /dev/fd1h1200 磁盘驱动器B: ,磁盘为1.2MB 磁盘
如果使用像是/dev/fd0 之类的装置,如果里面的磁盘不是标准容量,格式化可能会失败。在这种情况之下,使用者可以用setfdprm 指令先行指定必要参数。
参数:
 -n 关闭确认功能。这个选项会关闭格式化之后的确认步骤。
范例:
fdformat -n /dev/fd0h1440
将磁盘驱动器A 的磁盘格式化成1.4MB 的磁盘。并且省略确认的步骤。
名称: mkdosfs
使用权限: 所有使用者
使用方式: mkdosfs [ -c | -l filename ]
[ -f number_of_FATs ]
[ -F FAT_size ]
[ -i volume_id ]
[ -m message_file ]
[ -n volume_name ]
[ -r root_dir_entry ]
[ -s sector_per_cluster ]
[ -v ]
device
[ block_count ]
说明: 建立DOS 档案系统。device 指你想要建立DOS 档案系统的装置代号。像是/dev/hda1 等等。block_count 则是你希望配置的区块数。如果block_count 没有指定则系统会自动替你计算符合该装置大小的区块数。
参数:
 -c 建立档案系统之前先检查是否有坏轨。
 -l 从得定的档案中读取坏轨记录。
 -f 指定档案配置表(FAT , File Allocation Table)的数量。默认值为2 。目前Linux 的FAT 档案系统不支持超过2 个FAT 表。通常这个不需要改。
 -F 指定FAT 表的大小,通常是12 或是16 个字节。12 字节通常用于磁盘片,16 字节用于一般硬盘的分割区,也就是所谓的FAT16 格式。这个值通常系统会自己选定适当的值。在磁盘片上用FAT16 通常不会发生作用,反之在硬盘上用FAT12 亦然。
 -i 指定Volume ID。一般是一个4 个字节的数字,像是2e203a47 。如果不给系统会自己产生。
 -m 当使用者试图用这片磁盘或是分割区开机,而上面没有操作系统时,系统会给使用者一段警告讯息。这个参数就是用来变更这个讯息的。你可以先用档案编辑好,然后用这个参数指定,或是用-m - 这样系统会要求你直接输入这段文字。要特别注意的是,档案里的字符串长度不要超过418 个字,包括展开的跳栏符号(TAB)和换行符号(换行符号在DOS 底下算两个字符!)
 -n 指定Volume Name,就是磁盘卷标。如同在DOS 底下的format 指令一样,给不给都可以。没有默认值。
 -r 指定根目录底下的最大档案数。这里所谓的档案数包括目录。默认值是在软盘上是112 或是224 ,在硬盘上是512。没事不要改这个数字。
 -s 每一个磁丛(cluster)的扇区数。必须是2 的次方数。不过除非你知道你在作什么,这个值不要乱给。
 -v 提供额外的讯息
范例: mkdosfs -n Tester /dev/fd0 将A 槽里的磁盘片格式化为DOS 格式,并将卷标设为Tester
经验技巧
名称: mformat
使用权限: 所有使用者
使用方式:
mformat [-t cylinders] [-h heads] [-s sectors] [-l volume_label] [-F] [-I fsVer-sion] [-S sizecode] [-2 sectors_on_track_0] [-M software_sector_size] [-a] [-X] [-C] [-H hidden_sectors] [-r root_sectors] [-B boot_sector] [-0 rate_on_track_0] [-A rate_on_other_tracks] [-1] [-k] drive:
在已经做过低阶格式化的磁盘上建立DOS 档案系统。如果在编译mtools 的时候把USE_2M 的参数打开,部分与2M 格式相关的参数就会发生作用。否则这些参数(像是S,2,1,M)不会发生作用。
参数:
 -t 磁柱(synlider)数
 -h 磁头(head)数
 -s 每一磁道的扇区数
 -l 卷标
 -F 将磁盘格式化为FAT32 格式,不过这个参数还在实验中。
 -I 设定FAT32 中的版本号。这当然也还在实验中。
 -S 扇区大小代码,计算方式为sector = 2^(大小代码+7)
 -c 磁丛(cluster)的扇区数。如果所给定的数字会导致磁丛数超过FAT 表的限制,mformat 会自动放大扇区数。
 -s
 -M 软件扇区大小。这个数字就是系统回报的扇区大小。通常是和实际的大小相同。
 -a 如果加上这个参数,mformat 会产生一组Atari 系统的序号给这块软盘。
 -X 将软盘格式化成XDF 格式。使用前必须先用xdfcopy 指令对软盘作低阶格式化的动作。
 -C 产生一个可以安装MS-DOS 档案系统的磁盘影像文件(disk image)。当然对一个实体磁盘驱动器下这个参数是没有意义的。
 -H 隐藏扇区的数目。这通常适用在格式化硬盘的分割区时,因为通常一个分割区的前面还有分割表。这个参数未经测试,能不用就不用。
 -n 磁盘序号
 -r 根目录的大小,单位是扇区数。这个参数只对FAT12 和FAT16 有效。
 -B 使用所指定的档案或是设备的开机扇区做为这片磁盘或分割区的开机扇区。当然当中的硬件参数会随之更动。
 -k 尽量保持原有的开机扇区。
 -0 第0 轨的数据传输率
 -A 第0 轨以外的数据传输率
 -2 使用2m 格式
 -1 不使用2m 格式
范例:
mformat a:
这样会用默认值把a: (就是/dev/fd0)里的磁盘片格式化。
名称: MAKEDEV 使用方法: MAKEDEV -V MAKEDEV [ -n ] [ -v ] update MAKEDEV [ -n ] [ -v ] [ -d ] device ... 使用说明: 这个命令可以用法新增/dev/ 下的装置档案,多数distribution 已经将所有的档案都产生,故一般而言不太会需要用到这个命令。
名称: dumpkeys 使用权限: 所有使用者使用方式:
dumpkeys [ -hilfn1 -Sshape -ccharset --help --short-info
--long-info --numeric --full-table --separate-lines
--shape=shape --funcs-only --keys-only --compose-only
--charset=charset ]
使用说明:
这个命令用来将键盘的对映表写到标准输出之中,输出的格式可以被loadkeys 命令加载。而这个表格的功能在于将键盘硬件所产生的扫描码(scan code),转换成ASCII 或是任何的字符串。
这是在Linux 上特有的指令,它允许你将键盘上的按键组合,如ctrl-a. shift-a 等转换成适当的字符串。例如你可以将alt-ctrl-f12 定义成『linux』,以后只要按下alt-ctrl-f12 就等于输入linux 这个字了。
要将alt-ctrl-f12 定义成linux 有二件事要做,首先你必需将alt-ctrl-f12 这个按键组合定义成某个功能键,在这里我们使用f20。
control alt keycode 88 = F20
上面的keycode 88 便是F12 这个键的硬件扫描码。下一步便是将F20 这个功能键定义成linux
string F20="linux"
将包括这二行的档案用loadkeys 加载后便可以用alt-ctrl-f12 来输入linux 了。chdrv, yact 等console 模式中文系统便是使用这个功能来重新定义键盘。选项: 相关命令: loadkeys
名称: loadkeys 使用权限: 所有使用者使用方式: loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ]...]
[ -m --mktable ] [ -c --clearcompose ] [ -s --clearstrings ] [ filename... ] 使用说明: 这个命令可以根据一个键盘定义表改变linux 键盘驱动程序转译键盘输入过程。详细的说明请参考dumpkeys。
选项: -v --verbose 印出详细的资料,你可以重复以增加详细度。
-q --quiet 不要显示任何讯息。-c --clearcompose 清除所有composite 定义。
-s --clearstrings 将定串定义表清除。
相关命令: dumpkeys
名称: rdev 使用权限: 所有使用者使用方式: 使用这个指令的基本方式是: rdev [-rsvh ] [-o offset ] [ image [value [ offset ] ] ] 但是随着使用者想要设定的参数的不同,底下的方式也是一样:
 rdev [ -o offset ] [ image [ root_device [ offset ] ] ]
 swapdev [ -o offset ] [ image [ swap_device [ offset ] ] ]
 ramsize [ -o offset ] [ image [ size [ offset ] ] ]
 videomode [ -o offset ] [ image [ mode [ offset ] ] ]
 rootflags [ -o offset ] [ image [ flags [ offset ] ] ]
说明: rdev 可以用来取得或是设定开机核心影像文件(kernel image)的各项参数,像是:
1. root device
2. swap device
3. RAM disk
4. video mode
参数:
 -r
 -s
 -v
 -h
 -o
范例: uptime 其结果为: 10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
名称:setleds 使用权限:一般使用者使用方式: setleds [-v] [-L] [-D] [-F] [{+|-}num] [{+|-}caps] [{+|-}scroll]说明: 用来设定键盘上方三个LED 的状态。在Linux 中,每一个虚拟主控台都有独立的设定。参数: -F 预设的选项,设定虚拟主控台的状态。-D 除了改变虚拟主控台的状态外,还改变预设的状态。-L 不改变虚拟主控台的状态,但直接改变LED 显示的状态。这会使得LDE 显示和目前虚拟主控台的状态不符合。我们可以在稍后用-L 且不含其它选项的setleds 命令回复正常状态。-num +num 将数字键打开或关闭。-caps +caps 把大小写键打开或关闭。-scroll +scroll 把选项键打开或关闭。范例: 将数字键打开,其余二个灯关闭。
# setleds +num -caps -scroll
名称: dd 使用权限: 所有使用者dd 这个指令在manual 里的定义是convert and copy a file
使用方式: dd [option]
如果你想要线上看manual, 可以试试: dd --help
或是info dd
如果你想要看看这个版本如何: dd --version
输入或输出dd if=[STDIN] of=[STDOUT]
强迫输入或输出的Size为多少Bytes bs: dd -ibs=[BYTE] -obs=[SIZE]
强迫一次只做多少个Bytes cbs=BYTES
跳过一段以后才输出seek=BLOCKS
跳过一段以后才输入skip=BLOCKS
当然你可以拿这个来方便的拷贝光盘(注意,你的光盘是标准的iso9660格式才可以这么做唷!)
dd if=/dev/cdrom of=cdrom.iso 其中if 后面以及of 后面的内容依你的需求调整。
然后给系统这个指令就可以烧了:
cdrecord -v cdrom.iso 这篇不是在讲cdrecord 的,所以上面的指令是最为简单但是不一定能符合您的硬件环境....
名称: ls
使用权限: 所有使用者
使用方式: ls [-alrtAFR] [name...]
说明: 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
参数:
-a 显示所有档案及目录(ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) -l 除文件名称外,亦将档案型态、权限、拥有者、档案大小等信息详细列出-r 将档案以相反次序显示(原定依英文字母次序) -t 将档案依建立时间之先后次序列出-A 同-a ,但不列出"." (目前目录) 及".." (父目录) -F 在列出的文件名称后加一符号;例如可执行文件则加"*", 目录则加"/" -R 若目录下有档案,则以下之档案亦皆依序列出
范例:
列出目前工作目录下所有名称是s 开头的档案,愈新的排愈后面:
ls -ltr s*
将/bin 目录以下所有目录及档案详细资料列出:
ls -lR /bin
列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*" :
ls -AF
名称:df 使用权限: 所有使用者> 使用方式: df [选项]... [FILE]...
显示档案系统的状况,或是看所有档案系统的状况(默认值)
-a, --all 包含所有的具有0 Blocks 的档案系统
--block-size={SIZE} 使用{SIZE} 大小的Blocks
-h, --human-readable 使用人类可读的格式(默认值是不加这个选项的...)
-H, --si 很像-h, 但是用1000 为单位而不是用1024
-i, --inodes 列出inode 信息,不列出已使用block
-k, --kilobytes 就像是--block-size=1024
-l, --local 限制列出的档案结构
-m, --megabytes 就像--block-size=1048576
--no-sync 取得信息前不sync (默认值)
-P, --portability 使用POSIX 输出格式
--sync 在取得信息前sync
-t, --type=TYPE 限制列出档案系统的TYPE
-T, --print-type 显示档案系统的形式
-x, --exclude-type=TYPE 限制列出档案系统不要显示TYPE
-v (忽略)
--help 显示这个帮手并且离开
--version 输出版本信息并且离开
指令:e2fsck
使用权限: 超级使用者
使用方式: e2fsck [-pacnydfvFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] device
说明: 检查使用Linux ext2 档案系统的partition 是否正常工作
参数:
device : 预备检查的硬盘partition,例如:/dev/sda1 -a : 对partition 做检查,若有问题便自动修复,等同-p 的功能-b : 设定存放superblock 的位置-B : 设定单位block 的大小-c : 检查该partition 是否有坏轨-C file : 将检查的结果存到file 中以便查看
-d : 打印e2fsck 的debug 结果-f : 强制检查-F : 在开始检查前,将device 的buffer cache 清空,避免有错误发生-l bad_blocks_file : 将有坏轨的block资料加到bad_blocks_file 里面-L bad_blocks_file : 设定坏轨的block资料存到bad_blocks_file 里面,若无该档则自动产生-n : 将档案系统以[只读]方式开启-p : 对partition 做检查,若有问题便自动修复-v : 详细显示模式-V : 显示出目前e2fsck 的版本-y : 预先设定所有检查时的问题均回答[是]
例子:
检查/dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] :
e2fsck -a -y /dev/hda5
注意:
大部份使用e2fsck 来检查硬盘partition 的情况时,通常都是情形特殊,因此最好先将该partition umount,然后再执行e2fsck 来做检查,若是要非要检查/ 时,则请进入singal user mode 再执行。
指令:fdisk
用途:观察硬盘之实体使用情形与分割硬盘用。
使用方法:
一、在console 上输入fdisk -l /dev/sda ,观察硬盘之实体使用情形。
二、在console 上输入fdisk /dev/sda,可进入分割硬盘模式。
1. 输入m 显示所有命令列示。
2. 输入p 显示硬盘分割情形。
3. 输入a 设定硬盘激活区。
4. 输入n 设定新的硬盘分割区。
4.1. 输入e 硬盘为[延伸]分割区(extend)。
4.2. 输入p 硬盘为[主要]分割区(primary)。
5. 输入t 改变硬盘分割区属性。
6. 输入d 删除硬盘分割区属性。
7. 输入q 结束不存入硬盘分割区属性。
8. 输入w 结束并写入硬盘分割区属性。
名称:exportfs 使用权限:系统管理者使用方式: exportfs
说明:
参数: 没有任何参数。
范例:
# newaliases
下面命令会做相同的事,
# sendmail -bi
相关命令: mail, mailq, newaliases, sendmail
指令:fsck
使用权限: 超级使用者
使用方式: fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]
说明: 检查与修复Linux 档案系统,可以同时检查一个或多个Linux 档案系统
参数:
filesys : device 名称(eg./dev/sda1),mount 点(eg. / 或/usr) -t : 给定档案系统的型式,若在/etc/fstab 中已有定义或kernel 本身已支持的则不需加上此参数-s : 依序一个一个地执行fsck 的指令来检查-A : 对/etc/fstab 中所有列出来的partition 做检查-C : 显示完整的检查进度-d : 打印e2fsck 的debug 结果-p : 同时有-A 条件时,同时有多个fsck 的检查一起执行-R : 同时有-A 条件时,省略/ 不检查-V : 详细显示模式
-a : 如果检查有错则自动修复-r : 如果检查有错则由使用者回答是否修复
例子:
检查msdos 档案系统的/dev/hda5 是否正常,如果有异常便自动修复:
fsck -t msdos -a /dev/hda5
注意:
此指令可与/etc/fstab 相互参考操作来加以了解。
名称: mount 使用权限: 系统管理者或/etc/fstab中允许的使用者使用方式: mount [-hV] mount -a [-fFnrsvw] [-t vfstype] mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir 说明:
将某个档案的内容解读成档案系统,然后将其挂在目录的某个位置之上。当这个命令执行成功后,直到我们使用umnount 将这个档案系统移除为止,这个命令之下的所有档案将暂时无法被存取。
这个命令可以被用来挂上任何的档案系统,你甚至可以用-o loop 选项将某个一般的档案当成硬盘机分割挂上系统。这个功能对于ramdisk,romdisk 或是ISO 9660 的影像文件之解读非常实用。
参数
-V
显示程序版本-h
显示辅助讯息-v
显示较讯息,通常和-f 用来除错。-a 将/etc/fstab 中定义的所有档案系统挂上。
-F 这个命令通常和-a 一起使用,它会为每一个mount 的动作产生一个行程负责执行。在系统需要挂上大量NFS 档案系统时可以加快挂上的动作。
-f 通常用在除错的用途。它会使mount 并不执行实际挂上的动作,而是仿真整个挂上的过程。通常会和-v 一起使用。
-n 一般而言,mount 在挂上后会在/etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r 等于-o ro
-w 等于-o rw
-L 将含有特定卷标的硬盘分割挂上。
-U 将档案分割序号为的档案系统挂下。-L 和-U 必须在/proc/partition 这种档案存在时才有意义。
-t 指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async 打开异步模式,所有的档案读写动作都会用异步模式执行。
-o sync 在同步模式下执行。
-o atime -o noatime 当atime 打开时,系统会在每次读取档案时更新档案的『上一次存取时间』。当我们使用flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto -o noauto 打开/关闭自动挂上模式。
-o defaults 使用预设的选项rw, suid, dev, exec, auto, nouser, and async.
-o dev -o nodev-o exec -o noexec 允许执行档被执行。
-o suid -o nosuid 允许执行档在root 权限下执行。
-o user -o nouser 使用者可以执行mount/umount 的动作。
-o remount 将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是只读的系统,现在用可擦写的模式重新挂上。
-o ro 用只读模式挂上。
-o rw 用可擦写模式挂上。
-o loop= 使用loop 模式用来将一个档案当成硬盘分割挂上系统。
范例
将/dev/hda1 挂在/mnt 之下。
#mount /dev/hda1 /mnt
将/dev/hda1 用只读模式挂在/mnt 之下。
#mount -o ro /dev/hda1 /mnt
将/tmp/image.iso 这个光盘的image 文件使用loop 模式挂在/mnt/cdrom之下。用这种方法可以将一般网络上可以找到的Linux 光盘ISO 文件在不烧录成光盘的情况下检视其内容。
#mount -o loop /tmp/image.iso /mnt/cdrom
相关命令umount
指令:fstab
使用权限: 超级使用者
使用方式: 使用编辑器来修改/etc/fstab (eg. vi /etc/fstab)
说明: 存放档案系统与目录结构对应资料的档案
fstab 字段说明:
第一栏(fs_spec): 实际的device 名称第二栏(fs_file): 对应到的目录结构(mount point) 第三栏(fs_vfstype):该partition 的档案系统,常见的有:
minix、ext、ext2、msdos、iso9660、nfs、swap
第四栏(fs_mntops): 在mount 时的参数第五栏(fs_freq): 在使用dump 时是否记录,不需要则输入0 第六栏(fs_passno): 决定在开机时执行fsck 的先后顺序
例子:
IDE 硬盘分成两个partition 与一个swap,还有一台光驱跟一台软盘机的情形:
<pre> /dev/hda1 / ext2 defaults 1 1 <br> /dev/hda5 /home ext2 defaults 1 2 <br> /dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0 <br> /dev/hda6 swap swap defaults 0 0 <br> /dev/fd0 /mnt/floppy ext2 noauto,owner 0 0 <br> none /proc proc defaults 0 0 <br> none /dev/pts devpts gid=5,mode=620 0 0 <br> </pre>
指令:mkfs
使用权限: 超级使用者
使用方式: mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
说明: 建立linux 档案系统在特定的partition 上
参数:
device : 预备检查的硬盘partition,例如:/dev/sda1 -V : 详细显示模式-t : 给定档案系统的型式,Linux 的默认值为ext2 -c : 在制做档案系统前,检查该partition 是否有坏轨-l bad_blocks_file : 将有坏轨的block资料加到bad_blocks_file 里面block : 给定block 的大小
例子:
在/dev/hda5 上建一个msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:
mkfs -V -t msdos -c /dev/hda5
名称: swapon 使用者权限: 超级使用者(super-user) 使用方式: /sbin/swapon -a [-v] /sbin/swapon [-v] [-p priority] specialfile ... /sbin/swapon [-s] -h 请帮帮我-V 显示版本讯息-s 显示简短的装置讯息-a 自动激活所有SWAP装置-p 设定优先权,你可以在0到32767中间选一个数字给他。或是在/etc/fstab 里面加上pri=[value] ([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用swapon -a 来激活他们,而且有优先权设定。
 
 
 
smbclient –L IP或者NETBIOS名称,作用是显示某台提供samba服务的服务器上的共享资源。命令执行效果如下:
smbclient –L glass
Sharename Type Comment
--------- ---- -------
IPC$ IPC 远程 IPC
HPLaserJ Printer HP LaserJet 6P
ADMIN$ Disk 远程管理
littlep Disk
C$ Disk 默认共享
Server Comment
--------- -------
GLASS
GRIND
Workgroup Master
--------- -------
BLUESUN GLASS
WORKGROUP HEIHEI
第一段列举了该机器(glass)上面的共享资源,第二段列举了glass所在的工作组里面所有提供samba服务的机器,第三列举了其他工作组提供 browse服务的Master机器(关于Master和Browse服务可以参考我的前面一篇samba使用大全-samba服务器)。
使用网络资源:
smbclient //IP或者NETBIOS名称/共享资源名 [-U 用户名]
命令执行效果如下:
smbclient //glass/littlep
added interface ip=192.168.1.123 bcast=192.168.1.255 nmask=255.255.255.0
Got a positive name query response from 192.168.1.123 (192.168.1.123)
Password:
Domain=[BLUESUN] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: >
接下来的操作和ftp的时候命令一样,用get下载文件而用put上传文件,命令可以用help查看。
还有一种方法是用文件系统的方式(这种方式要确定你的内核支持smbfs,如果没有支持的话,编译内核的时候必须选中File systems--->Network File Systems---> SMB file system support (to mount Windows shares etc.) ):
smbmount //IP或者NETBIOS名称/共享资源名 /本地挂接点 [-o option]
常用的的option有username=<用户名>,password=<密码>,guest(指定为用guest访问,不用提供密码,前面的即使用username=guest参数的话也会要求输入密码),ro(有时候为了系统安全要指定为只读模式),rw,同时多个 option的话用逗号隔开。
或者可以用mount –t smbfs [–o option] //IP或者NETBIOS名称/共享资源名 /本地挂接点来实现同样的功能。
例子如下:
smbmount //glass/littlep /test -o guest或者mount –t smbfs –o guest //glass/littlep /test,然后就能通过访问/test来使用网络上的资源了。
如果不需要使用的时候,可以简单地使用smbumount /test或者umount /test来解除这个挂接。