Linux 系统命令及其使用详解(第二部分)

来源:本站
导读:目前正在解读《Linux 系统命令及其使用详解(第二部分)》的相关信息,《Linux 系统命令及其使用详解(第二部分)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《Linux 系统命令及其使用详解(第二部分)》的详细说明。
简介:计算机高手必背 之 Linux 系统命令及其使用详解(第二部分)

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

名称: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</tmp/maildata

每月每天的午夜0点20分,2点20分,4点20分....执行echo"haha"

200-23/2***echo"haha"

注意:

当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上>/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[-V]

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

现在的时间

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

连线的使用者数量

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

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

范例:uptime

其结果为:

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

提醒:《Linux 系统命令及其使用详解(第二部分)》最后刷新时间 2024-03-14 01:03:46,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《Linux 系统命令及其使用详解(第二部分)》该内容的真实性请自行鉴别。