Linux指令大全
1.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
2.head显示文件头
3.du报告磁盘使用空间
du[选项][目录或文件]
-a显示每一个文件的磁盘使用量
-s仅显示汇总的使用量
-k报告结果以k字节为单位
4.df[选项][资源](报告磁盘剩余空间)
-l本地文件系统
-k报告磁盘空间,以k为单位
5.which报告命令位置【选项】【命令】
6.tail显示文件尾
7.mv移动文件或者改名
mv src_file _list dst_file
8.touch创建一个不存在的文件
9.tar打包:
tar cvf文件名待打包目录解包:tarxvf文件名查看:tar tvf文件名查看打包文件的内容
10.Gzip压缩:
gzip –c文件名>文件名.gz解压缩:gzip –d xxx
11.
nohup当终端退出后,由该终端启动的后台程序也会自动退出,如果不让退出,可以用nohup命令,nohupfind . –name abc –print>newtext&
12.cd
使用权限:所有使用者
使用方式: cd [dirName]
说明:变换工作目录至dirName。其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory (也就是刚login时所在的目录)。另外,"~"也表示为home
directory的意思,"."则是表示目前所在的目录,".."则表示目前目录位置的上一层目录。范例:跳到/usr/bin/ :
cd /usr/bin
跳到自己的home directory :
cd ~
跳到目前目录的上上两层:
cd ../..
13.
bc计算器输入命令bc后进行计算,按回车出结果ctrl+d退出(+ - * / %“^”)加、减、乘、除、求模、乘方运算
14.
finger显示用户信息finger root
15.
who am I【查看使用者自己的用户信息】
who【查看正在使用unix的用户】
16.
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 777file
语法为: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效果相同若用chmod 4755 filename可使此程式具有root的权限
17.
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 *
18.
cp
使用权限:所有使用者使用方式:
cp [options] source dest
cp [options] source... directory说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
-a尽可能将档案状态、权限等资料都照原状予以复制。
-r若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案aaa复制(已存在),并命名为bbb :
cp aaa bbb
将所有的C语言程式拷贝至Finished子目录中:
cp *.c Finished
19.
cut
使用权限:所有使用者用法:cut -cnum1-num2 filename
说明:显示每行从开头算起num1到num2的文字。范例:
shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print开头算起前6个字元
test2
this i
20.
less
使用权限:所有使用者使用方式:
less [Option] filename
说明:
less的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用者往回卷动
以浏览已经看过的部份,同时因为less并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如vi)来的快速。范例:
21.
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
22.
locate
使用权限:所有使用者
使用方式:locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
说明:
locate让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。在一般的distribution之中,资料库的建立都被放在contab中自动执行。一般使用者在使用时只要用
# locate your_file_name
的型式就可以了。参数:
-u
-U建立资料库,-u会由根目录开始,-U则可以指定开始的位置。
-e将排除在寻找的范围之外。
-l如果是1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate必须至实际的档案系统中取得档案的权限资料。
-f将特定的档案系统排除在外,例如我们没有到理要把proc档案系统中的档案放在资料库中。
-q安静模式,不会显示任何错误讯息。\
-n至多显示个输出。
-r使用正规运算式做寻找的条件。
-o指定资料库存的名称。
-d指定资料库的路径
-h显示辅助讯息
-v显示更多的讯息
-V
显示程式的版本讯息范例:
locate chdrv :寻找所有叫chdrv的档案
locate -n 100 a.out :寻找所有叫a.out的档案,但最多只显示100个
locate -u :建立资料库
23.:
ls
使用权限:所有使用者使用方式: ls [-alrtAFR] [name...]
说明:显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
-a显示所有档案及目录(ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
-l除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
-r将档案以相反次序显示(原定依英文字母次序)
-t将档案依建立时间之先后次序列出
-A同-a,但不列出"." (目前目录)及".." (父目录)
-F在列出的档案名称后加一符号;例如可执行档则加"*",目录则加"/"
-R若目录下有档案,则以下之档案亦皆依序列出范例:
列出目前工作目录下所有名称是s开头的档案,愈新的排愈后面:
ls -ltr s*
将/bin目录以下所有目录及档案详细资料列出:
ls -lR /bin
列出目前工作目录下所有档案及目录;目录于名称后加"/",可执行档于名称后加"*" :
ls -AF
24.
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之档案内容
25.
名称:mv
使用权限:所有使用者使用方式:
mv [options] source dest
mv [options] source... directory说明:将一个档案移至另一档案,或将数个档案移至另一目录。参数:-i若目的地已有同名档案,则先询问是否覆盖旧档。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
范例:将档案aaa更名为bbb :
mv aaa bbb
将所有的C语言程式移至Finished子目录中:
mv -i *.c
26.
:rm
使用权限:所有使用者使用方式:rm [options] name...
说明:删除档案及目录。把计
-i删除前逐一询问确认。
-f即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r将目录及以下之档案亦逐一删除。
范例:
删除所有C语言程式档;删除前逐一询问确认:
rm -i *.c
将Finished子目录及子目录中所有档案删除:
rm -r Finished
rm file*
27
.rmdir
使用权限:于目前目录有适当权限的所有使用者使用方式:rmdir [-p] [-r]dirName
说明:删除空的目录。参数:-p是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
-r目录是非空的时候删除
范例:将工作目录下,名为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
28.
名称: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
29.
名称: 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 :
at 5pm + 2 weeks /bin/ls
明天的17:20执行/bin/date :
at 17:20 tomorrow /bin/date
1999年的最后一天的最后一分钟印出the end of world !
at 23:59 12/31/1999 echo the end of world !
30.
名称:cal
使用权限:所有使用者使用方式:cal[-mjy] [month [year]]
说明:
显示日历。若只有一个参数,则代表年份(1-9999),显示该年的年历。年份必须全部写出:``cal 89将不会是显示1989年的年历。使用两个参数,则表示月份及年份。若没有参数则显示这个月的月历。
1752年9月第3日起改用西洋新历,因这时大部份的国家都采用新历,有10天被去除,所以该月份的月历有些不同。在此之前为西洋旧历。
-m :以星期一为每周的第一天方式显示。
-j :以凯撒历显示,即以一月一日起的天数显示。
-y :显示今年年历。范例:
cal :显示本月的月历。
[root@mylinux /root]# date
Tue Aug 15 08:00:18 CST 2000
[root@mylinux /root]# cal
August 2000
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
[root@mylinux /root]# cal 2001 :显示公元2001年年历。
cal 5 2001 :显示公元2001年5月月历。
[root@mylinux /root]# cal 5 2001
May 2001
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
[root@mylinux /root]#
cal -m :以星期一为每周的第一天方式,显示本月的月历。
[root@mylinux /root]# cal -m
August 2000
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
[root@mylinux /root]#
cal -jy :以一月一日起的天数显示今年的年历。
[root@mylinux /root]# cal –jy
31.名称: crontab
使用权限:所有使用者使用方式:
crontab [ -u user ] filecrontab [ -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寄一封信给alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜0点20分, 2点20分, 4点20分....执行echo "haha"
20 0-23/2 * * * echo "haha"
注意:
当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上> /dev/null
2>&1即可
32.名称: 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中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
名称: sleep
使用权限:所有使用者使用方式:sleep [--help] [--version] number[smhd]
说明:
sleep可以用来将目前动作延迟一段时间参数说明:
--help :显示辅助讯息
--version :显示版本编号
number :时间长度,后面可接s、m、h或d
其中s为秒,m为分钟,h为小时,d为日数例子:显示目前时间后延迟1分钟,之后再次显示时间:
date;sleep 1m;date
33.名称: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详细的内容如下:
Time Resources
E执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的CPU时间
e执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的CPU时间。
S指令执行时在核心模式(kernel mode)所花费的时间,单位是秒。
U指令执行时在使用者模式(user mode)所花费的时间,单位是秒。
P执行指令时CPU的占用比例。其实这个数字就是核心模式加上使用者模式的CPU时间除以总时间。
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。对同一个系统来说这是个常数
IO Resources
F此程序的主要记忆体页错误发生次数。所谓的主要记忆体页错误是指某一记忆体页已经置换到置换档(swap file)中,而且已经分配给其他程序。此时该页的内容必须从置换档里再读出来。
R此程序的次要记忆体页错误发生次数。所谓的次要记忆体页错误是指某一记忆体页虽然已经置换到置换档中,但尚未分配给其他程序。此时该页的内容并未被破坏,不必从置换档里读出来
W此程序被交换到置换档的次数
c此程序被强迫中断(像是分配到的CPU时间耗尽)的次数
w此程序自愿中断(像是在等待某一个I/O执行完毕,像是磁碟读取等等)的次数
I此程序所输入的档案数
O此程序所输出的档案数
r此程序所收到的Socket Message
s此程序所送出的Socket Message
k此程序所收到的信号( Signal )数量
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
34.名称:uptime
使用权限:所有使用者
使用方式:uptime [-V]
说明:uptime提供使用者下面的资讯,不需其他参数:现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数:-V显示版本资讯。
范例:uptime
其结果为:
10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
35.名称: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]
36.: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 [返回]
37.
finger
使用权限:所有使用者使用方式:finger[options] user[@address]
说明:finger可以让使用者查询一些其他使用者的资料。会列出来的资料有:
Login Name
User Name
Home directory
Shell
Login status
mail status
.plan
.project
.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.
38.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)
39.
passwd
使用权限:所有使用者使用方式:passwd[-k] [-l] [-u [-f]] [-d] [-S] [username]
说明:用来更改使用者的密码参数:
-k-l-u-f
-d关闭使用者的密码认证功能,使用者在登入时将可以不用输入密码,只有具备root权限的使用者方可使用.
-S显示指定使用者的密码认证种类,只有具备root权限的使用者方可使用.
[username]指定帐号名称.
40.
file
1.作用file通过探测文件内容判断文件类型,使用权限是所有用户。
2.格式file [options]文件名
3.[options]主要参数
-v:在标准输出后显示版本信息,并且退出。
-z:探测压缩过的文件类型。
-L:允许符合连接。
-f name:从文件namefile中读取要分析的文件名列表。
4.简单说明
使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件,还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。
5.应用实例
如果我们看到一个没有后缀的文件grap,可以使用下面命令:
$ file grap
grap:English text
此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。
41.
mkdir
1.作用
mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。
2.格式
mkdir
[options]目录名
3.[options]主要参数
-m,--mode=模式:设定权限<模式>,与chmod类似。
-p,--parents:需要时创建上层目录;如果目录早已存在,则不当作错误。
-v,--verbose:每次创建新目录都显示信息。
--version:显示版本信息后离开。
4.应用实例
在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:
$
mkdir-m 777 tsk
42.
grep
1.作用
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
2.格式
grep[options]
[option]:
3.主要参数
[options]主要参数:
-c:只输出匹配行数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$:匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[
]:单个字符,如[A]即A符合要求 。
[
- ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
*:有字符,长度可以为0。
正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。
4.应用实例
查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\{3\}\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。
$grep
'[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。3.grep命令系统调用
grep是Linux/Unix中使用最广泛的命令之一,许多Linux系统内部都可以调用它。
(1)如果要查询目录列表中的目录,方法如下:
$ ls -l
| grep '∧d'
(2)如果在一个目录中查询不包含目录的所有文件,方法如下:
$ ls -l
| grep '∧[∧d]'
(3)用find命令调用grep,如所有C源代码中的“Chinput”,方法如下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
通常用于过滤查找ps –ef |grepsendmail
43.
dd
1.作用
dd命令用来复制文件,并根据参数将数据转换和格式化。
2.格式
dd [options]
3.[opitions]主要参数
bs=字节:强迫ibs=<字节>及obs=<字节>。
cbs=字节:每次转换指定的<字节>。
conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。
count=块数目:只复制指定<块数目>的输入数据。
ibs=字节:每次读取指定的<字节>。
if=文件:读取<文件>内容,而非标准输入的数据。
obs=字节:每次写入指定的<字节>。
of=文件:将数据写入<文件>,而不在标准输出显示。
seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。
skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。
4.应用实例
dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:
$ rdev vmlinuz /dev/hda
$dd if=vmlinuz of=/dev/fd0
上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。2.使用dd命令将init.rd格式的root.ram内容导入内存
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0#
44.find
命令查找文件的几种方法:
(1)根据文件名查找
例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:
find /-name lilo.conf
find命令后的“/”表示搜索整个硬盘。
(2)快速查找文件
根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:
find /etc-name smb.conf
这样,使用“快速查找文件”方式可以缩短时间。
(3)根据部分文件名查找方法
有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:
find /-name '*abvd*'
输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。
(4)使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。
find /etc -size +500000c -and -mtime +1
find[path][options][expression]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。
3.主要参数
[options]参数:
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。
-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。
-mindepth levels:表示至少查找到开始目录的第level层子目录。
-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。
-version:打印版本。
[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。
—name:支持统配符*和?。
-atime n:搜索在过去n天读取过的文件。
-ctime n:搜索在过去n天修改过的文件。
-group grpoupname:搜索所有组为grpoupname的文件。
-user用户名:搜索所有文件属主为用户名(ID或名称)的文件。
-size n:搜索文件大小是n个block的文件。-print:输出搜索结果,并且打印。
使用说明:
将档案系统内符合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的档案。
d:目录
c:字型装置档案
b:区块装置档案
p:具名贮列
f:一般档案
l:符号连结
s: socket
-pid n : process id是n的档案你可以使用( )将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
范例:执行命令和立即显示的内容如下:
$ find . -nameabc -print&
10722
10722表示进程号(PID)。当find命令在后台执行完后,会显示结果。
将目前目录及其子目录下所有延伸档名是c的档案列出来。
# find . -name "*.c"
将目前目录其其下子目录中所有一般档案列出
# find . -ftype f
将目前目录及其子目录下所有最近20分钟内更新过的档案列出
# find . -ctime -20
例2]在后台运行find命令,在当前目录及其子目路下查找文件名为abc的文件并将结果存到myfind文件中。
执行命令如下:
$ find . -name abc -print>myfind&
45.cmp
1.作用
cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。
2.格式cmp[options]文件名
3.[options]主要参数
-l:将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。
46.diff
1.作用
diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。
2.格式
diff [options]源文
件目标文件
3.[options]主要参数
-a:将所有文件当作文本文件来处理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。
47关机重启命令
(1)shutdown
–hy 0关机
hhalt
rreboot
y回答yes
0倒记时间
(2)系统的重启
#shutdown –ry 0或者#reboot