Linux指令大全 linux系统管理必备知识




Linux指令大全 linux系统管理必备知识

2022-07-20 20:32:45 网络知识 官方管理员

Linux指令大全linux系统管理必备知识,需要的朋友可以收藏下。

名称:cat

使用权限:所有使用者

使用方式:cat[-AbeEnstTuv][--help][--version]fileName

说明:把档案串连接后传到基本输出(萤幕或加>fileName到另一个档案)

参数:

-n或--number由1开始对所有输出的行数编号

-b或--number-nonblank和-n相似,只不过对于空白行不编号

-s或--squeeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行

-v或--show-nonprinting

范例:

cat-ntextfile1>textfile2把textfile1的档案内容加上行号后输入textfile2这个档案里

cat-btextfile1textfile2>>textfile3把textfile1和textfile2的档案内容加上行号(空白行不加)之后将内容附加到textfile3

名称:cd

使用权限:所有使用者

使用方式:cd[dirName]

说明:变换工作目录至dirName。其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的homedirectory(也就是刚login时所在的目录)。

另外,"~"也表示为homedirectory的意思,"."则是表示目前所在的目录,".."则表示目前目录位置的上一层目录。

范例:跳到/usr/bin/:

cd/usr/bin

跳到自己的homedirectory:

cd~

跳到目前目录的上上两层:

cd../..

指令名称:chmod

使用权限:所有使用者

使用方式:chmod[-cfvR][--help][--version]modefile...

说明:Linux/Unix的档案存取权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所存取。

把计:

mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。

+表示增加权限、-表示取消权限、=表示唯一设定权限。

r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

-c:若该档案权限确实已经更改,才显示其更改动作

-f:若该档案权限无法被更改也不要显示错误讯息

-v:显示权限变更的详细资料

-R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

--help:显示辅助说明

--version:显示版本

范例:将档案file1.txt设为所有人皆可读取:

chmodugo+rfile1.txt

将档案file1.txt设为所有人皆可读取:

chmoda+rfile1.txt

将档案file1.txt与file2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:

chmodug+w,o-wfile1.txtfile2.txt

将ex1.py设定为只有该档案拥有者可以执行:

chmodu+xex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取:

chmod-Ra+r*

此外chmod也可以用数字来表示权限如chmod777file

语法为:chmodabcfile

其中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。

范例:

chmoda=rwxfile

chmod777file

效果相同

chmodug=rwx,o=xfile

chmod771file

效果相同

若用chmod4755filename可使此程式具有root的权限

指令名称: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:

chownjessie:usersfile1.txt

将目前目录下的所有档案与子目录的拥有者皆设为users群体的使用者lamport:

chmod-Rlamport:users*

名称:cp

使用权限:所有使用者

使用方式:

cp[options]sourcedest

cp[options]source...directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

把计

-a尽可能将档案状态、权限等资料都照原状予以复制。

-r若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。

-f若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。

范例:

将档案aaa复制(已存在),并命名为bbb:

cpaaabbb

将所有的C语言程式拷贝至Finished子目录中:

cp*.cFinished

名称:cut

使用权限:所有使用者

用法:cut-cnum1-num2filename

说明:显示每行从开头算起num1到num2的文字。

范例:

shell>>catexample

test2

thisistest1

shell>>cut-c0-6example##print开头算起前6个字元

test2

thisi

名称:find

用法:find

使用说明:

将档案系统内符合expression的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。

find根据下列规则判断path和expression,在命令列上第一个-(),!之前的部份为path,之后的是expression。如果path是空字串则使用目前路径,如果expression是空字串则使用-print为预设expression

expression中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount,-xdev:只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案

-aminn:在过去n分钟内被读取过

-anewerfile:比档案file更晚被读取过的档案

-atimen:在过去n天过读取过的档案

-cminn:在过去n分钟内被修改过

-cnewerfile:比档案file更新的档案

-ctimen:在过去n天过修改过的档案

-empty:空的档案-gidnor-groupname:gid是n或是group名称是name

-ipathp,-pathp:路径名称符合p的档案,ipath会忽略大小写

-namename,-inamename:档案名称符合name的档案。iname会忽略大小写

-sizen:档案大小是n单位,b代表512位元组的区块,c表示字元数,k表示kilobytes,w是二个位元组。-typec:档案类型是c的档案。

d:目录

c:字型装置档案

b:区块装置档案

p:具名贮列

f:一般档案

l:符号连结

s:socket

-pidn:processid是n的档案

你可以使用()将运算式分隔,并使用下列运算。

exp1-andexp2

!expr

-notexpr

exp1-orexp2

exp1,exp2

范例:

将目前目录及其子目录下所有延伸档名是c的档案列出来。

#find.-name"*.c"

将目前目录其其下子目录中所有一般档案列出

#find.-ftypef

将目前目录及其子目录下所有最近20分钟内更新过的档案列出

#find.-ctime-20

名称:less

使用权限:所有使用者

使用方式:

less[Option]filename

说明:

less的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用者往回卷动

以浏览已经看过的部份,同时因为less并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如vi)来的快速。

范例:

指令名称:ln

使用权限:所有使用者

使用方式:ln[options]sourcedist,其中option的格式为:

[-bdfinsvF][-Sbackup-suffix][-V{numbered,existing,simple}]

[--help][--version][--]

说明:Linux/Unix档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种:硬连结(hardlink)与软连结(symboliclink),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

lnsourcedist是产生一个连结(dist)到source,至于使用硬连结或软链结则由参数决定。

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

-f:链结时先将与dist同档名的档案删除-d:允许系统管理者硬链结自己的目录-i:在删除与dist同档名的档案时先进行询问-n:在进行软连结时,将dist视为一般的档案-s:进行软链结(symboliclink)-v:在连结之前显示其档名-b:将在链结时会被覆写或删除的档案进行备份-SSUFFIX:将备份的档案都加上SUFFIX的字尾-VMETHOD:指定备份的方式--help:显示辅助说明--version:显示版本

范例:

将档案yy产生一个symboliclink:zz

ln-syyzz

将档案yy产生一个hardlink:zz

lnyyxx

名称:locate

使用权限:所有使用者

使用方式:locate[-q][-d][--database=]

locate[-r][--regexp=]

locate[-qv][-o][--output=]

locate[-e][-f]

locate[-Vh][--version][--help]

说明:

locate让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。

在一般的distribution之中,资料库的建立都被放在contab中自动执行。一般使用者在使用时只要用

#locateyour_file_name

的型式就可以了。参数:

-u

-U

建立资料库,-u会由根目录开始,-U则可以指定开始的位置。

-e

排除在寻找的范围之外。

-l

如果是1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate必须至实际的档案系统中取得档案的权限资料。

-f

将特定的档案系统排除在外,例如我们没有到理要把proc档案系统中的档案放在资料库中。

-q

安静模式,不会显示任何错误讯息。

-n

至多显示个输出。

-r

使用正规运算式做寻找的条件。

-o

指定资料库存的名称。

-d

指定资料库的路径

-h

显示辅助讯息

-v

显示更多的讯息

-V

显示程式的版本讯息范例:

locatechdrv:寻找所有叫chdrv的档案

locate-n100a.out:寻找所有叫a.out的档案,但最多只显示100个

locate-u:建立资料库

名称:ls

使用权限:所有使用者

使用方式:ls[-alrtAFR][name...]

说明:显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。

-a显示所有档案及目录(ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)

-l除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出

-r将档案以相反次序显示(原定依英文字母次序)

-t将档案依建立时间之先后次序列出

-A同-a,但不列出"."(目前目录)及".."(父目录)

-F在列出的档案名称后加一符号;例如可执行档则加"*",目录则加"/"

-R若目录下有档案,则以下之档案亦皆依序列出

范例:

列出目前工作目录下所有名称是s开头的档案,愈新的排愈后面:

ls-ltrs*

将/bin目录以下所有目录及档案详细资料列出:

ls-lR/bin

列出目前工作目录下所有档案及目录;目录于名称后加"/",可执行档于名称后加"*":

ls-AF

名称:more

使用权限:所有使用者

使用方式:more[-dlfpcsu][-num][+/pattern][+linenum][fileNames..]

说明:类似cat,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能(与vi相似),使用中的说明文件,请按h。

参数:-num一次显示的行数

-d提示使用者,在画面下方显示[Pressspacetocontinue,qtoquit.],如果使用者按错键,则会显示[Presshforinstructions.]而不是哔声

-l取消遇见特殊字元^L(送纸字元)时会暂停的功能

-f计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)

-p不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

-c跟-p相似,不同的是先显示内容再清除其他旧资料

-s当遇到有连续两行以上的空白行,就代换为一行的空白行

-u不显示下引号(根据环境变数TERM指定的terminal而有所不同)

+/在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示

+num从第num行开始显示

fileNames欲显示内容的档案,可为复数个数

范例:

more-stestfile逐页显示testfile之档案内容,如有连续两行以上空白行则以一行空白行显示。

more+20testfile从第20行开始显示testfile之档案内容。

名称:mv

使用权限:所有使用者

使用方式:

mv[options]sourcedest

mv[options]source...directory

说明:将一个档案移至另一档案,或将数个档案移至另一目录。

参数:-i若目的地已有同名档案,则先询问是否覆盖旧档。

范例:

将档案aaa更名为bbb:

mvaaabbb

将所有的C语言程式移至Finished子目录中:

mv-i*.c

名称:rm

使用权限:所有使用者

使用方式:rm[options]name...

说明:删除档案及目录。

把计

-i删除前逐一询问确认。

-f即使原档案属性设为唯读,亦直接删除,无需逐一确认。

-r将目录及以下之档案亦逐一删除。

范例:

删除所有C语言程式档;删除前逐一询问确认:

rm-i*.c

将Finished子目录及子目录中所有档案删除:

rm-rFinished

名称:rmdir

使用权限:于目前目录有适当权限的所有使用者

使用方式:rmdir[-p]dirName

说明:删除空的目录。

参数:-p是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

范例:

将工作目录下,名为AAA的子目录删除:

rmdirAAA

在工作目录下的BBB目录中,删除名为Test的子目录。若Test删除后,BBB目录成为空目录,则BBB亦予删除。

rmdir-pBBB/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

与-lNUMBER相同。

--verbose

于每个输出档被开启前,列印出侦错资讯到标准错误输出。

--help

显示辅助资讯然后离开。

--version

列出版本资讯然后离开。

SIZE可加入单位:b代表512,k代表1K,m代表1Meg。

范例:

PostgresSQL大型资料库备份与回存:

因Postgres允许表格大过你系统档案的最大容量,所以要将表格dump到单一的档案可能会有问题,使用split进行档案分割。

%pg_dumpdbname|split-b1m-filename.dump.

重新载入

%createdbdbname

%catfilename.dump.*|pgsqldbname

名称:touch

使用权限:所有使用者

使用方式:

touch[-acfm]

[-rreference-file][--file=reference-file]

[-tMMDDhhmm[[CC]YY][.ss]]

[-dtime][--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列出版本讯息。

范例:

最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。

touchfile

touchfile1file2

将file的时间记录改为5月6日18点3分,公元两千年。时间的格式可以参考date指令,至少需输入MMDDHHmm,就是月日时与分。

touch-c-t05061803file

touch-c-t050618032000file

将file的时间记录改变成与referencefile一样。

touch-rreferencefilefile

将file的时间记录改成5月6日18点3分,公元两千年。时间可以使用am,pm或是24小时的格式,日期可以使用其他格式如6May2000。

touch-d"6:03pm"file

touch-d"05/06/2000"file

touch-d"6:03pm05/06/2000"file

Linux指令大全(1)

catcd

chmodchown

cpcut

名称:cat

使用权限:所有使用者

使用方式:cat[-AbeEnstTuv][--help][--version]fileName

说明:把档案串连接后传到基本输出(萤幕或加>fileName到另一个档案)

参数:

-n或--number由1开始对所有输出的行数编号

-b或--number-nonblank和-n相似,只不过对于空白行不编号

-s或--squeeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行

-v或--show-nonprinting

范例:

cat-ntextfile1>textfile2把textfile1的档案内容加上行号后输入textfile2这个档案里

cat-btextfile1textfile2>>textfile3把textfile1和textfile2的档案内容加上行号(空白行不加)之后将内容附加到textfile3

名称:cd

使用权限:所有使用者

使用方式:cd[dirName]

说明:变换工作目录至dirName。其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的homedirectory(也就是刚login时所在的目录)。

另外,"~"也表示为homedirectory的意思,"."则是表示目前所在的目录,".."则表示目前目录位置的上一层目录。

范例:跳到/usr/bin/:

cd/usr/bin

跳到自己的homedirectory:

cd~

跳到目前目录的上上两层:

cd../..

指令名称:chmod

使用权限:所有使用者

使用方式:chmod[-cfvR][--help][--version]modefile...

说明:Linux/Unix的档案存取权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所存取。

把计:

mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。

+表示增加权限、-表示取消权限、=表示唯一设定权限。

r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

-c:若该档案权限确实已经更改,才显示其更改动作

-f:若该档案权限无法被更改也不要显示错误讯息

-v:显示权限变更的详细资料

-R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

--help:显示辅助说明

--version:显示版本

范例:将档案file1.txt设为所有人皆可读取:

chmodugo+rfile1.txt

将档案file1.txt设为所有人皆可读取:

chmoda+rfile1.txt

将档案file1.txt与file2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:

chmodug+w,o-wfile1.txtfile2.txt

将ex1.py设定为只有该档案拥有者可以执行:

chmodu+xex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取:

chmod-Ra+r*

此外chmod也可以用数字来表示权限如chmod777file

语法为:chmodabcfile

其中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。

范例:

chmoda=rwxfile

chmod777file

效果相同

chmodug=rwx,o=xfile

chmod771file

效果相同

若用chmod4755filename可使此程式具有root的权限

指令名称: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:

chownjessie:usersfile1.txt

将目前目录下的所有档案与子目录的拥有者皆设为users群体的使用者lamport:

chmod-Rlamport:users*

名称:cp

使用权限:所有使用者

使用方式:

cp[options]sourcedest

cp[options]source...directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

把计

-a尽可能将档案状态、权限等资料都照原状予以复制。

-r若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。

-f若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。

范例:

将档案aaa复制(已存在),并命名为bbb:

cpaaabbb

将所有的C语言程式拷贝至Finished子目录中:

cp*.cFinished

名称:cut

使用权限:所有使用者

用法:cut-cnum1-num2filename

说明:显示每行从开头算起num1到num2的文字。

范例:

shell>>catexample

test2

thisistest1

shell>>cut-c0-6example##print开头算起前6个字元

test2

thisi

名称:find

用法:find

使用说明:

将档案系统内符合expression的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。

find根据下列规则判断path和expression,在命令列上第一个-(),!之前的部份为path,之后的是expression。如果path是空字串则使用目前路径,如果expression是空字串则使用-print为预设expression

expression中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount,-xdev:只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案

-aminn:在过去n分钟内被读取过

-anewerfile:比档案file更晚被读取过的档案

-atimen:在过去n天过读取过的档案

-cminn:在过去n分钟内被修改过

-cnewerfile:比档案file更新的档案

-ctimen:在过去n天过修改过的档案

-empty:空的档案-gidnor-groupname:gid是n或是group名称是name

-ipathp,-pathp:路径名称符合p的档案,ipath会忽略大小写

-namename,-inamename:档案名称符合name的档案。iname会忽略大小写

-sizen:档案大小是n单位,b代表512位元组的区块,c表示字元数,k表示kilobytes,w是二个位元组。-typec:档案类型是c的档案。

d:目录

c:字型装置档案

b:区块装置档案

p:具名贮列

f:一般档案

l:符号连结

s:socket

-pidn:processid是n的档案

你可以使用()将运算式分隔,并使用下列运算。

exp1-andexp2

!expr

-notexpr

exp1-orexp2

exp1,exp2

范例:

将目前目录及其子目录下所有延伸档名是c的档案列出来。

#find.-name"*.c"

将目前目录其其下子目录中所有一般档案列出

#find.-ftypef

将目前目录及其子目录下所有最近20分钟内更新过的档案列出

#find.-ctime-20

名称:less

使用权限:所有使用者

使用方式:

less[Option]filename

说明:

less的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用者往回卷动

以浏览已经看过的部份,同时因为less并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如vi)来的快速。

范例:

指令名称:ln

使用权限:所有使用者

使用方式:ln[options]sourcedist,其中option的格式为:

[-bdfinsvF][-Sbackup-suffix][-V{numbered,existing,simple}]

[--help][--version][--]

说明:Linux/Unix档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种:硬连结(hardlink)与软连结(symboliclink),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

lnsourcedist是产生一个连结(dist)到source,至于使用硬连结或软链结则由参数决定。

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

-f:链结时先将与dist同档名的档案删除-d:允许系统管理者硬链结自己的目录-i:在删除与dist同档名的档案时先进行询问-n:在进行软连结时,将dist视为一般的档案-s:进行软链结(symboliclink)-v:在连结之前显示其档名-b:将在链结时会被覆写或删除的档案进行备份-SSUFFIX:将备份的档案都加上SUFFIX的字尾-VMETHOD:指定备份的方式--help:显示辅助说明--version:显示版本

范例:

将档案yy产生一个symboliclink:zz

ln-syyzz

将档案yy产生一个hardlink:zz

lnyyxx

名称:locate

使用权限:所有使用者

使用方式:locate[-q][-d][--database=]

locate[-r][--regexp=]

locate[-qv][-o][--output=]

locate[-e][-f]

locate[-Vh][--version][--help]

说明:

locate让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。

在一般的distribution之中,资料库的建立都被放在contab中自动执行。一般使用者在使用时只要用

#locateyour_file_name

的型式就可以了。参数:

-u

-U

建立资料库,-u会由根目录开始,-U则可以指定开始的位置。

-e

排除在寻找的范围之外。

-l

如果是1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate必须至实际的档案系统中取得档案的权限资料。

-f

将特定的档案系统排除在外,例如我们没有到理要把proc档案系统中的档案放在资料库中。

-q

安静模式,不会显示任何错误讯息。

-n

至多显示个输出。

-r

使用正规运算式做寻找的条件。

-o

指定资料库存的名称。

-d

指定资料库的路径

-h

显示辅助讯息

-v

显示更多的讯息

-V

显示程式的版本讯息范例:

locatechdrv:寻找所有叫chdrv的档案

locate-n100a.out:寻找所有叫a.out的档案,但最多只显示100个

locate-u:建立资料库

名称:ls

使用权限:所有使用者

使用方式:ls[-alrtAFR][name...]

说明:显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。

-a显示所有档案及目录(ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)

-l除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出

-r将档案以相反次序显示(原定依英文字母次序)

-t将档案依建立时间之先后次序列出

-A同-a,但不列出"."(目前目录)及".."(父目录)

-F在列出的档案名称后加一符号;例如可执行档则加"*",目录则加"/"

-R若目录下有档案,则以下之档案亦皆依序列出

范例:

列出目前工作目录下所有名称是s开头的档案,愈新的排愈后面:

ls-ltrs*

将/bin目录以下所有目录及档案详细资料列出:

ls-lR/bin

列出目前工作目录下所有档案及目录;目录于名称后加"/",可执行档于名称后加"*":

ls-AF

名称:more

使用权限:所有使用者

使用方式:more[-dlfpcsu][-num][+/pattern][+linenum][fileNames..]

说明:类似cat,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能(与vi相似),使用中的说明文件,请按h。

参数:-num一次显示的行数

-d提示使用者,在画面下方显示[Pressspacetocontinue,qtoquit.],如果使用者按错键,则会显示[Presshforinstructions.]而不是哔声

-l取消遇见特殊字元^L(送纸字元)时会暂停的功能

-f计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)

-p不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

-c跟-p相似,不同的是先显示内容再清除其他旧资料

-s当遇到有连续两行以上的空白行,就代换为一行的空白行

-u不显示下引号(根据环境变数TERM指定的terminal而有所不同)

+/在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示

+num从第num行开始显示

fileNames欲显示内容的档案,可为复数个数

范例:

more-stestfile逐页显示testfile之档案内容,如有连续两行以上空白行则以一行空白行显示。

more+20testfile从第20行开始显示testfile之档案内容。

名称:mv

使用权限:所有使用者

使用方式:

mv[options]sourcedest

mv[options]source...directory

说明:将一个档案移至另一档案,或将数个档案移至另一目录。

参数:-i若目的地已有同名档案,则先询问是否覆盖旧档。

范例:

将档案aaa更名为bbb:

mvaaabbb

将所有的C语言程式移至Finished子目录中:

mv-i*.c

名称:rm

使用权限:所有使用者

使用方式:rm[options]name...

说明:删除档案及目录。

把计

-i删除前逐一询问确认。

-f即使原档案属性设为唯读,亦直接删除,无需逐一确认。

-r将目录及以下之档案亦逐一删除。

范例:

删除所有C语言程式档;删除前逐一询问确认:

rm-i*.c

将Finished子目录及子目录中所有档案删除:

rm-rFinished

名称:rmdir

使用权限:于目前目录有适当权限的所有使用者

使用方式:rmdir[-p]dirName

说明:删除空的目录。

参数:-p是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

范例:

将工作目录下,名为AAA的子目录删除:

rmdirAAA

在工作目录下的BBB目录中,删除名为Test的子目录。若Test删除后,BBB目录成为空目录,则BBB亦予删除。

rmdir-pBBB/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

与-lNUMBER相同。

--verbose

于每个输出档被开启前,列印出侦错资讯到标准错误输出。

--help

显示辅助资讯然后离开。

--version

列出版本资讯然后离开。

SIZE可加入单位:b代表512,k代表1K,m代表1Meg。

范例:

PostgresSQL大型资料库备份与回存:

因Postgres允许表格大过你系统档案的最大容量,所以要将表格dump到单一的档案可能会有问题,使用split进行档案分割。

%pg_dumpdbname|split-b1m-filename.dump.

重新载入

%createdbdbname

%catfilename.dump.*|pgsqldbname

名称:touch

使用权限:所有使用者

使用方式:

touch[-acfm]

[-rreference-file][--file=reference-file]

[-tMMDDhhmm[[CC]YY][.ss]]

[-dtime][--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列出版本讯息。

范例:

最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。

touchfile

touchfile1file2

将file的时间记录改为5月6日18点3分,公元两千年。时间的格式可以参考date指令,至少需输入MMDDHHmm,就是月日时与分。

touch-c-t05061803file

touch-c-t050618032000file

将file的时间记录改变成与referencefile一样。

touch-rreferencefilefile

将file的时间记录改成5月6日18点3分,公元两千年。时间可以使用am,pm或是24小时的格式,日期可以使用其他格式如6May2000。

touch-d"6:03pm"file

touch-d"05/06/2000"file

touch-d"6:03pm05/06/2000"file"

Linux指令大全(2)

名称:at

使用权限:所有使用者

使用方式:at-V[-qqueue][-ffile][-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:即使程式/指令执行完成后没有输出结果,也要寄封信给使用者

-ffile:读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入

-l:列出所有的指定(使用者也可以直接使用atq而不用at-l)

-d:删除指定(使用者也可以直接使用atrm而不用at-d)

-v:列出所有已经完成但尚未删除的指定

例子:

三天后的下午5点锺执行/bin/ls:

at5pm+3days/bin/ls

三个星期后的下午5点锺执行/bin/ls:

at5pm+2weeks/bin/ls

明天的17:20执行/bin/date:

at17:20tomorrow/bin/date

1999年的最后一天的最后一分钟印出theendofworld!

at23:5912/31/1999echotheendofworld!

名称:cal

使用权限:所有使用者

使用方式:cal[-mjy][month[year]]

说明:

显示日历。若只有一个参数,则代表年份(1-9999),显示该年的年历。年份必须全部写出:``cal89将不会是显示1989年的年历。使用两个参数,则表示月份及年份。若没有参数则显示这个月的月历。

1752年9月第3日起改用西洋新历,因这时大部份的国家都采用新历,有10天被去除,所以该月份的月历有些不同。在此之前为西洋旧历。

匡兜

-m:以星期一为每周的第一天方式显示。

-j:以凯撒历显示,即以一月一日起的天数显示。

-y:显示今年年历。

范例:

cal:显示本月的月历。

[root@mylinux/root]#date

TueAug1508:00:18CST2000

[root@mylinux/root]#cal

August2000

SuMoTuWeThFrSa

12345

6789101112

13141516171819

20212223242526

2728293031

[root@mylinux/root]#

cal2001:显示公元2001年年历。

[root@mylinux/root]#cal2001

2001

JanuaryFebruaryMarch

SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa

123456123123

789101112134567891045678910

141516171819201112131415161711121314151617

212223242526271819202122232418192021222324

282930312526272825262728293031

AprilMayJune

SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa

12345671234512

89101112131467891011123456789

151617181920211314151617181910111213141516

222324252627282021222324252617181920212223

2930272829303124252627282930

JulyAugustSeptember

SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa

123456712341

8910111213145678910112345678

15161718192021121314151617189101112131415

222324252627281920212223242516171819202122

29303126272829303123242526272829

30

OctoberNovemberDecember

SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa

1234561231

78910111213456789102345678

14151617181920111213141516179101112131415

212223242526271819202122232416171819202122

2829303125262728293023242526272829

3031

[root@mylinux/root]#

cal52001:显示公元2001年5月月历。

[root@mylinux/root]#cal52001

May2001

SuMoTuWeThFrSa

12345

6789101112

13141516171819

20212223242526

2728293031

[root@mylinux/root]#

cal-m:以星期一为每周的第一天方式,显示本月的月历。

[root@mylinux/root]#cal-m

August2000

MoTuWeThFrSaSu

123456

78910111213

14151617181920

21222324252627

28293031

[root@mylinux/root]#

cal-jy:以一月一日起的天数显示今年的年历。

[root@mylinux/root]#cal-jy

2000

JanuaryFebruary

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

13233343536

234567837383940414243

910111213141544454647484950

1617181920212251525354555657

23242526272829585960

3031

MarchApril

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

6162636492

6566676869707193949596979899

72737475767778100101102103104105106

79808182838485107108109110111112113

868788899091114115116117118119120

121

MayJune

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

122123124125126127153154155

128129130131132133134156157158159160161162

135136137138139140141163164165166167168169

142143144145146147148170171172173174175176

149150151152177178179180181182

JulyAugust

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

183214215216217218

184185186187188189190219220221222223224225

191192193194195196197226227228229230231232

198199200201202203204233234235236237238239

205206207208209210211240241242243244

212213

SeptemberOctober

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

245246275276277278279280281

247248249250251252253282283284285286287288

254255256257258259260289290291292293294295

261262263264265266267296297298299300301302

268269270271272273274303304305

NovemberDecember

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

306307308309336337

310311312313314315316338339340341342343344

317318319320321322323345346347348349350351

324325326327328329330352353354355356357358

331332333334335359360361362363364365

366

[root@mylinux/root]#

名称:crontab

使用权限:所有使用者

使用方式:

crontab[-uuser]filecrontab[-uuser]{-l|-r|-e}

说明:

crontab是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-uuser的话,就是表示设定自己的时程表。

餐数:

-e:执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL环境变数来指定使用那个文字编辑器(比如说setenvVISUALjoe)

-r:删除目前的时程表

-l:列出目前的时程表

时程表的格式如下:

f1f2f3f4f5program

其中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中,用crontabfile的方式来设定时程表。

例子:

每月每天每小时的第0分钟执行一次/bin/ls:

07***/bin/ls

在12月内,每天的早上6点到12点中,每隔20分钟执行一次/usr/bin/backup:

06-12/3*12*/usr/bin/backup

周一到周五每天下午5:00寄一封信给alex@domain.name:

017**1-5mail-s"hi"alex@domain.name/dev/null2>&1即可。

名称:date

使用权限:所有使用者

使用方式:

date[-u][-ddatestr][-sdatestr][--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:00UTC到目前为止的秒数

%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为秒数

把计:

-ddatestr:显示datestr中所设定的时间(非系统时间)

--help:显示辅助讯息

-sdatestr:将系统时间设为datestr中所设定的时间

-u:显示目前的格林威治时间

--version:显示版本编号

例子:

显示时间后跳行,再显示目前日期:

date+%T%n%D

显示月份与日数:

date+%B%d

显示日期与设定时间(12:34:56):

date--date12:34:56

注意:

当你不希望出现无意义的0时(比如说1999/03/07),则可以在标记中插入-符号,比如说date+%-H:%-M:%-S会把时分秒中无意义的0给去掉,像是原本的08:09:04会变为8:9:4。另外,只有取得权限者(比如说root)才能设定系统时间。

当你以root身分更改了系统时间之后,请记得以clock-w来将系统时间写入CMOS中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

名称:sleep

使用权限:所有使用者

使用方式:sleep[--help][--version]number[smhd]

说明:sleep可以用来将目前动作延迟一段时间

参数说明:

--help:显示辅助讯息

--version:显示版本编号

number:时间长度,后面可接s、m、h或d

其中s为秒,m为分钟,h为小时,d为日数

例子:

显示目前时间后延迟1分钟,之后再次显示时间:

date;sleep1m;date

名称:time

使用权限:所有使用者

使用方式:time[options]COMMAND[arguments]

说明:time指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如CPU时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在Linux上显示不出来。这是因为在Linux上部分资源的分配函式与time指令所预设的方式并不相同,以致于time指令无法取得这些资料。

把计

-oor--output=FILE

设定结果输出档。这个选项会将time的输出写入所指定的档案中。如果档案已经存在,系统将覆写其内容。

-aor--append

配合-o使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。

-fFORMATor--format=FORMAT

以FORMAT字串设定显示方式。当这个选项没有被设定的时候,会用系统预设的格式。不过你可以用环境变数time来设定这个格式,如此一来就不必每次登入系统都要设定一次。

一般设定上,你可以用

t

表示跳栏,或者是用

n

表示换行。每一项资料要用%做为前导。如果要在字串中使用百分比符号,就用。(学过C语言的人大概会觉得很熟悉)

time指令可以显示的资源有四大项,分别是:

Timeresources

Memoryresources

IOresources

Commandinfo

详细的内容如下:

TimeResources

E执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的CPU时间。

e执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的CPU时间。

S指令执行时在核心模式(kernelmode)所花费的时间,单位是秒。

U指令执行时在使用者模式(usermode)所花费的时间,单位是秒。

P执行指令时CPU的占用比例。其实这个数字就是核心模式加上使用者模式的CPU时间除以总时间。

MemoryResources

M执行时所占用的实体记忆体的最大值。单位是KB

t执行时所占用的实体记忆体的平均值,单位是KB

K执行程序所占用的记忆体总量(stack+data+text)的平均大小,单位是KB

D执行程序的自有资料区(unshareddataarea)的平均大小,单位是KB

p执行程序的自有堆叠(unsharedstack)的平均大小,单位是KB

X执行程序间共享内容(sharedtext)的平均值,单位是KB

Z系统记忆体页的大小,单位是byte。对同一个系统来说这是个常数

IOResources

F此程序的主要记忆体页错误发生次数。所谓的主要记忆体页错误是指某一记忆体页已经置换到置换档(swapfile)中,而且已经分配给其他程序。此时该页的内容必须从置换档里再读出来。

R此程序的次要记忆体页错误发生次数。所谓的次要记忆体页错误是指某一记忆体页虽然已经置换到置换档中,但尚未分配给其他程序。此时该页的内容并未被破坏,不必从置换档里读出来

W此程序被交换到置换档的次数

c此程序被强迫中断(像是分配到的CPU时间耗尽)的次数

w此程序自愿中断(像是在等待某一个I/O执行完毕,像是磁碟读取等等)的次数

I此程序所输入的档案数

O此程序所输出的档案数

r此程序所收到的SocketMessage

s此程序所送出的SocketMessage

k此程序所收到的信号(Signal)数量

CommandInfo

C执行时的参数以及指令名称

x指令的结束代码(ExitStatus)

-por--portability

这个选项会自动把显示格式设定成为:

real%e

user%U

sys%S

这么做的目的是为了与POSIX规格相容。

-vor--verbose

这个选项会把所有程式中用到的资源通通列出来,不但如一般英文语句,还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。

范例:

利用下面的指令

time-vps-aux

我们可以获得执行ps-aux的结果和所花费的系统资源。如下面所列的资料:

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND

root10.00.41096472?SApr190:04init

root20.00.000?SWApr190:00[kflushd]

root30.00.000?SWApr190:00[kpiod]

......

root242690.01.02692996pts/3R12:160:00ps-aux

Commandbeingtimed:"ps-aux"

Usertime(seconds):0.05

Systemtime(seconds):0.06

PercentofCPUthisjobgot:68%

Elapsed(wallclock)time(h:mm:ssorm:ss):0:00.16

Averagesharedtextsize(kbytes):0

Averageunshareddatasize(kbytes):0

Averagestacksize(kbytes):0

Averagetotalsize(kbytes):0

Maximumresidentsetsize(kbytes):0

Averageresidentsetsize(kbytes):0

Major(requiringI/O)pagefaults:238

Minor(reclaimingaframe)pagefaults:46

Voluntarycontextswitches:0

Involuntarycontextswitches:0

Swaps:0

Filesysteminputs:0

Filesystemoutputs:0

Socketmessagessent:0

Socketmessagesreceived:0

Signalsdelivered:0

Pagesize(bytes):4096

Exitstatus:0

名称:uptime

使用权限:所有使用者

使用方式:uptime[-V]

说明:uptime提供使用者下面的资讯,不需其他参数:

现在的时间

系统开机运转到现在经过的时间

连线的使用者数量

最近一分钟,五分钟和十五分钟的系统负载

参数:-V显示版本资讯。

范例:uptime

其结果为:

10:41amup5days,10min,1users,loadaverage:0.00,0.00,1.99

名称:chfn

使用权限:所有使用者

用法:shell>>chfn

说明:提供使用者更改个人资讯,用于fingerandmailusername

范例:

shell>>chfn

Changingfingerinformationforuser

Password:[del]

Name[]:JohnneyHuang###提供finger时的资料

Office[]:NCCU

OfficePhone[]:[del]

HomePhone[]:[del]

名称:chsh

使用权限:所有使用者

用法:shell>>chsh

说明:更改使用者shell设定

范例:

shell>>chsh

Changingfihangingshellforuser1

Password:[del]

Newshell[/bin/tcsh]:###[是目前使用的shell]

[del]

shell>>chsh-l###展示/etc/shells档案内容

/bin/bash

/bin/sh

/bin/ash

/bin/bsh

/bin/tcsh

/bin/csh

finger[返回]

名称:finger

使用权限:所有使用者

使用方式:finger[options]user[@address]

说明:finger可以让使用者查询一些其他使用者的资料。会列出来的资料有:

LoginName

UserName

Homedirectory

Shell

Loginstatus

mailstatus

.plan

.project

.forward

其中.plan,.project和.forward就是使用者在他的HomeDirectory里的.plan,.project和.forward等档案里的资料。如果没有就没有。finger指令并不限定于在同一伺服器上查询,也可以寻找某一个远端伺服器上的使用者。只要给一个像是E-mailaddress一般的地址即可。

把计

-l

多行显示。

-s

单行显示。这个选项只显示登入名称,真实姓名,终端机名称,闲置时间,登入时间,办公室号码及电话号码。如果所查询的使用者是远端伺服器的使用者,这个选项无效。

范例:下列指令可以查询本机管理员的资料:

fingerroot

其结果如下:

Login:rootName:root

Directory:/rootShell:/bin/bash

Neverloggedin.

Nomail.

NoPlan.

名称:last

使用权限:所有使用者

使用方式:shell>>last[options]

说明:显示系统开机以来获是从每月初登入者的讯息

把计

-R省略hostname的栏位

-num展示前num个

username展示username的登入讯息

tty限制登入讯息包含终端机代号

范例:

shell>>last-R-2

johnneypts/1MonAug1420:42stillloggedin

johnneypts/0MonAug1419:59stillloggedin

wtmpbeginsTueAug109:01:102000###/var/log/wtmp

shell>>last-2minery

minerypts/0140.119.217.115MonAug1418:37-18:40(00:03)

minerypts/0140.119.217.115MonAug1417:22-17:24(00:02)

wtmpbeginsTueAug109:01:102000

名称:login

这个命令都不会就不要干算了!呵呵我也不在这里多费笔墨耽误大家美好青春了^_^

名称:passwd

使用权限:所有使用者

使用方式:passwd[-k][-l][-u[-f]][-d][-S][username]

说明:用来更改使用者的密码

参数:

-k

-l

-u

-f

-d关闭使用者的密码认证功能,使用者在登入时将可以不用输入密码,只有具备root权限的使用者方可使用.

-S显示指定使用者的密码认证种类,只有具备root权限的使用者方可使用.

[username]指定帐号名称.

名称:who

使用权线:所有使用者都可使用

使用方式:who-[husfV][user]

说明:显示系统中有那些使用者正在上面,显示的资料包含了使用者ID,使用的终端机,从那边连上来的,上线时间,呆滞时间,CPU使用量,动作等等。

把计:

-h:不要显示标题列

-u:不要显示使用者的动作/工作

-s:使用简短的格式来显示

-f:不要显示使用者的上线位置

-V:显示程式版本"

Linux指令大全(3)

名称:/etc/aliases

使用权限:系统管理者

使用方式:请用newaliases更新资料库

说明:

sendmail会使用一个在/etc/aliases中的档案做使用者名称转换的动作。当sendmail收到一个要送给xxx的信时,它会依据aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如mailinglist就会用到这个功能,在mailinglist中,我们可能会创造一个叫redlinux@link.ece.uci.edu的mailinglist,但实际上并没有一个叫redlinux的使用者。实际aliases档的内容是将送给这个使用者的信都收给mailinglist处理程式负责分送的工作。

/etc/aliases是一个文字模式的档案,sendmail需要一个二进位格式的/etc/aliases.db。newaliases的功能传是将/etc/aliases转换成一个sendmail所能了解的资料库。范例:

#newaliases

下面命令会做相同的事,

#sendmail-bi

相关命令:

mail,mailq,newaliases,sendmail

mail[返回]

名称:mail

使用权限:所有使用者

使用方式:mail[-iInv][-ssubject][-ccc-addr][-bbcc-addr]user1[user2...]

说明:

mail不仅只是一个指令,mail还是一个电子邮件程式,不过利用mail来读信的人应该很少吧!对于系统管理者来说mail就很有用,因为管理者可以用mail写成script,定期寄一些备忘录提醒系统的使用者。

参数:

i忽略tty的中断讯号。(interrupt)

I强迫设成互动模式。(Interactive)

v列印出讯息,例如送信的地点、状态等等。(verbose)

n不读入mail.rc设定档。

s邮件标题。

ccc邮件地址。

bbcc邮件地址。

范例:

将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而user2没有主机位置,就会送给邮件伺服器的user2使用者。

mailuser1@email.address

mailuser1@email.addressuser2

将mail.txt的内容寄给user2同时cc给user1。如果将这一行指令设成cronjob就可以定时将备忘录寄给系统使用者。

mail-s标题-cuser1user2>exprlength"thisisatest"

14

###数字商数

shell>>expr14%9

5

###从位置处抓取字串

shell>>exprsubstr"thisisatest"35

isis

###数字串onlythefirstcharacter

shell>>exprindex"testforthegame"e

2

###字串真实重现

shell>>exprquotethisisatestformela

thisisatestformela

名称:tr

###1.比方说要把目录下所有的大写档名换为小写档名?

似乎有很多方式,"tr"是其中一种:

#!/bin/sh

dir="/tmp/testdir";

files=`find$dir-typef`;

foriin$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.自己试验中...lowercasetouppercase

trabcdef...[del]ABCDE...[del]

tra-zA-Z

tr[:lower:][:upper:]

shell>>echo"thisisatest"|tra-zA-Z>www

shell>>catwww

THISISATEST

###3.去掉不想要的字串

shell>>tr-dthis###去掉有关t.e.s.t

this

man

man

test

e

###4.取代字串

shell>>tr-s"this""TEST"

this

TEST

th

TE

指令:clear

用途:清除萤幕用。

使用方法:在console上输入clear。

名称:reset,tset

使用方法:tset[-IQqrs][-][-ech][-ich][-kch][-mmapping][terminal]

使用说明:

reset其实和tset是一同个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。如果指定型态是?的话,这个程式会要求使用者输入终端机的型别。

由于这个程式会将终端机设回原始的状态,除了在login时使用外,当系统终端机因为程式不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o例如不小心把二进位档用cat指令进到终端机,常会有终端机不再回应键盘输入,或是回应一些奇怪字元的问题。此时就可以用reset将终端机回复至原始状态。选项说明:

-p

将终端机类别显示在萤幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别。

-ech

将erase字元设成ch

-ich

将中断字元设成ch

-kch

将删除一行的字元设成ch

-I

不要做设定的动作,如果没有使用选项-Q的话,erase、中断及删除字元的目前值依然会送到萤幕上。

-Q

不要显示erase、中断及删除字元的值到萤幕上。

-r

将终端机类别印在萤幕上。

-s

将设定TERM用的命令用字串的型式送到终端机中,通常在.login或.profile中用

范例:

让使用者输入一个终端机型别并将终端机设到该型别的预设状态。

#reset?

将erase字元设定control-h

#reset-e^B

将设定用的字串显示在萤幕上

#reset-s

Eraseiscontrol-B(^B).

Killiscontrol-U(^U).

Interruptiscontrol-C(^C).

TERM=xterm;

名称:compress

使用权限:所有使用者

使用方式:compress[-dfvcV][-bmaxbits][file...]

说明:

compress是一个相当古老的unix档案压缩指令,压缩后的档案会加上一个.Z延伸档名以区别未压缩的档案,压缩后的档案可以以uncompress解压。若要将数个档案压成一个压缩档,必须先将档案tar起来再压缩。由于gzip可以产生更理想的压缩比例,一般人多已改用gzip为档案压缩工具。

参数:

c输出结果至标准输出设备(一般指荧幕)

f强迫写入档案,若目的档已经存在,则会被覆盖(force)

v将程式执行的讯息印在荧幕上(verbose)

b设定共同字串数的上限,以位元计算,可以设定的值为9至16bits。由于值越大,能使用的共同字串就越多,压缩比例就越大,所以一般使用预设值16bits(bits)

d将压缩档解压缩

V列出版本讯息

范例:

将source.dat压缩成source.dat.Z,若source.dat.Z已经存在,内容则会被压缩档覆盖。

compress-fsource.dat

将source.dat压缩成source.dat.Z,并列印出压缩比例。

-v与-f可以一起使用

compress-vfsource.dat

将压缩后的资料输出后再导入target.dat.Z可以改变压缩档名。

compress-csource.dat>target.dat.Z

-b的值越大,压缩比例就越大,范围是9-16,预设值是16。

compress-b12source.dat

将source.dat.Z解压成source.dat,若档案已经存在,使用者按y以确定覆盖档案,若使用-df程式则会自动覆盖档案。由于系统会自动加入.Z为延伸档名,所以source.dat会自动当作source.dat.Z处理。

compress-dsource.dat

compress-dsource.dat.Z

名称:lpd

使用权限:所有使用者

使用方式:lpd[-l][#port]

lpd是一个常驻的印表机管理程式,它会根据/etc/printcap的内容来管理本地或远端的印表机。/etc/printcap中定义的每一个印表机必须在/var/lpd中有一个相对应的目录,目录中以cf开头的档案表示一个等待送到适当装置的印表工作。这个档案通常是由lpr所产生。

lpr和lpd组成了一个可以离线工作的系统,当你使用lpr时,印表机不需要能立即可用,甚至不用存在。lpd会自动监视印表机的状况,当印表机上线后,便立即将档案送交处理。这个得所有的应用程式不必等待印表机完成前一工作。

参数:

-l:将一些除错讯息显示在标准输出上。

#port:一般而言,lpd会使用getservbyname取得适当的TCP/IPport,你可以使用这个参数强迫lpd使用指定的port。

范例:

这个程式通常是由/etc/rc.d中的程式在系统启始阶段执行。

名称lpq

--显示列表机贮列中未完成的工作用法

lpq[l][P][user]

说明

lpq会显示由lpd所管理的列表机贮列中未完成的项目。

范例

范例1.显示所有在lp列表机贮列中的工作

#lpq-PlpRankOwnerJobFilesTotalSize1stroot238(standardinput)1428646bytes

相关函数

lpr,lpc,lpd

名称:lpr

使用权限:所有使用者

使用方式:lpr[-Pprinter]

将档案或是由标准输入送进来的资料送到印表机贮列之中,印表机管理程式lpd会在稍后将这个档案送给适当的程式或装置处理。lpr可以用来将料资送给本地或是远端的主机来处理。

参数:

-pPrinter:将资料送至指定的印表机Printer,预设值为lp。

范例:

将www.c和kkk.c送到印表机lp。

lpr-Plpwww.ckkk.c

名称:lprm

--将一个工作由印表机贮列中移除用法

/usr/bin/lprm[P][file...]

说明

尚未完成的印表机工作会被放在印表机贮列之中,这个命令可用来将常未送到印表机的工作取消。由于每一个印表机都有一个独立的贮列,你可以用-P这个命令设定想要作用的印列机。如果没有设定的话,会使用系统预设的印表机。

这个命令会检查使用者是否有足够的权限删除指定的档案,一般而言,只有档案的拥有者或是系统管理员才有这个权限。

范例

将印表机hpprinter中的第1123号工作移除

lprm-Phpprinter1123

将第1011号工作由预设印表机中移除

lprm1011

名称: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的磁片。并且省略确认的步骤。

名称:mformat

使用权限:所有使用者

使用方式:

mformat[-tcylinders][-hheads][-ssectors][-lvolume_label][-F][-IfsVer-sion][-Ssizecode][-2sectors_on_track_0][-Msoftware_sector_size][-a][-X][-C][-Hhidden_sectors][-rroot_sectors][-Bboot_sector][-0rate_on_track_0][-Arate_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档案系统的磁碟影像档(diskimage)。当然对一个实体磁碟机下这个参数是没有意义的。

-H隐藏磁区的数目。这通常适用在格式化硬碟的分割区时,因为通常一个分割区的前面还有分割表。这个参数未经测试,能不用就不用。

-n磁碟序号

-r根目录的大小,单位是磁区数。这个参数只对FAT12和FAT16有效。

-B使用所指定的档案或是设备的开机磁区做为这片磁片或分割区的开机磁区。当然当中的硬体参数会随之更动。

-k尽量保持原有的开机磁区。

-0第0轨的资料传输率

-A第0轨以外的资料传输率

-2使用2m格式

-1不使用2m格式

范例:

mformata:

这样会用预设值把a:(就是/dev/fd0)里的磁碟片格式化。

名称:mkdosfs

使用权限:所有使用者

使用方式:mkdosfs[-c|-lfilename]

[-fnumber_of_FATs]

[-FFAT_size]

[-ivolume_id]

[-mmessage_file]

[-nvolume_name]

[-rroot_dir_entry]

[-ssector_per_cluster]

[-v]

device

[block_count]

说明:建立DOS档案系统。device指你想要建立DOS档案系统的装置代号。像是/dev/hda1等等。block_count则是你希望配置的区块数。如果block_count没有指定则系统会自动替你计算符合该装置大小的区块数。

参数:

-c建立档案系统之前先检查是否有坏轨。

-l从得定的档案中读取坏轨记录。

-f指定档案配置表(FAT,FileAllocationTable)的数量。预设值为2。目前Linux的FAT档案系统不支援超过2个FAT表。通常这个不需要改。

-F指定FAT表的大小,通常是12或是16个位元组。12位元组通常用于磁碟片,16位元组用于一般硬碟的分割区,也就是所谓的FAT16格式。这个值通常系统会自己选定适当的值。在磁碟片上用FAT16通常不会发生作用,反之在硬碟上用FAT12亦然。

-i指定VolumeID。一般是一个4个位元组的数字,像是2e203a47。如果不给系统会自己产生。

-m当使用者试图用这片磁片或是分割区开机,而上面没有作业系统时,系统会给使用者一段警告讯息。这个参数就是用来变更这个讯息的。你可以先用档案编辑好,然后用这个参数指定,或是用

-m-

这样系统会要求你直接输入这段文字。要特别注意的是,档案里的字串长度不要超过418个字,包括展开的跳栏符号(TAB)和换行符号(换行符号在DOS底下算两个字元!)

-n指定VolumeName,就是磁碟标签。如同在DOS底下的format指令一样,给不给都可以。没有预设值。

-r指定根目录底下的最大档案数。这里所谓的档案数包括目录。预设值是在软碟上是112或是224,在硬碟上是512。没事不要改这个数字。

-s每一个磁丛(cluster)的磁区数。必须是2的次方数。不过除非你知道你在作什么,这个值不要乱给。

-v提供额外的讯息

范例:

mkdosfs-nTester/dev/fd0将A槽里的磁碟片格式化为DOS格式,并将标签设为Tester"


发表评论:

最近发表
网站分类
标签列表