linux指令大全(完整篇) - 核能革新 ChinaNet
热图推荐
    查看: 7494|回复: 7

    linux指令大全(完整篇)

    [复制链接]

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
    发表于 2015-4-8 10:10:42 | 显示全部楼层 |阅读模式
    名称: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

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


    回复

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:11:00 | 显示全部楼层
    范例:
    chmod a=rwx file


    chmod 777 file

    效果相同
    chmod ug=rwx,o=x file


    chmod 771 file

    效果相同

    若用chmod 4755 filename可使此程式具有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 :
    chown jessie:users file1.txt

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

    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:11:32 | 显示全部楼层
    名称:cp
    使用权限:所有使用者

    使用方式:

    cp [options] source dest
    cp [options] source... directory

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

    把计?

    -a 尽可能将档案状态、权限等资料都照原状予以复制。
    -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
    -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
    范例:
    将档案 aaa 复制(已存在),并命名为 bbb :
    cp aaa bbb

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

    名称:cut

    使用权限:所有使用者

    用法:cut -cnum1-num2 filename

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

    范例:

    shell>> cat example
    test2
    this is test1
    shell>> cut -c0-6 example ## print 开头算起前 6 个字元
    test2
    this i

    名称 : find
    用法 : find
    使用说明 :

    将档案系统内符合 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
    范例:
    将目前目录及其子目录下所有延伸档名是 c 的档案列出来。
    # find . -name "*.c"

    将目前目录其其下子目录中所有一般档案列出
    # find . -ftype f

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

    名称:less

    使用权限:所有使用者

    使用方式:

    less [Option] filename

    说明:
    less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用者往回卷动
    以浏览已经看过的部份,同时因为 less 并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如 vi)来的快速。

    范例:

    指令名称 : ln
    使用权限 : 所有使用者

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

    [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
    [--help] [--version] [--]
    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:11:59 | 显示全部楼层
    说明 : 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

    名称: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 : 建立资料库

    名称 : ls
    使用权限 : 所有使用者

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

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

    -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
    -l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
    -r 将档案以相反次序显示(原定依英文字母次序)
    -t 将档案依建立时间之先后次序列出
    -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
    -F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
    -R 若目录下有档案,则以下之档案亦皆依序列出

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

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

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

    名称: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 若目的地已有同名档案,则先询问是否覆盖旧档。

    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:12:18 | 显示全部楼层
    范例:

    将档案 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
    名称 : 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 !

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

    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:12:35 | 显示全部楼层
    cal 2001 : 显示公元 2001 年年历。

    [root@mylinux /root]# cal 2001
    2001

    January February March
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 1 2 3 1 2 3
    7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
    14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
    21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
    28 29 30 31 25 26 27 28 25 26 27 28 29 30 31

    April May June
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 7 1 2 3 4 5 1 2
    8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
    15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
    22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
    29 30 27 28 29 30 31 24 25 26 27 28 29 30

    July August September
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 7 1 2 3 4 1
    8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
    15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
    22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
    29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
    30
    October November December
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 1 2 3 1
    7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
    14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
    21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
    28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
    30 31

    [root@mylinux /root]#

    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
    2000

    January February
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    1 32 33 34 35 36
    2 3 4 5 6 7 8 37 38 39 40 41 42 43
    9 10 11 12 13 14 15 44 45 46 47 48 49 50
    16 17 18 19 20 21 22 51 52 53 54 55 56 57
    23 24 25 26 27 28 29 58 59 60
    30 31
    March April
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    61 62 63 64 92
    65 66 67 68 69 70 71 93 94 95 96 97 98 99
    72 73 74 75 76 77 78 100 101 102 103 104 105 106
    79 80 81 82 83 84 85 107 108 109 110 111 112 113
    86 87 88 89 90 91 114 115 116 117 118 119 120
    121
    May June
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    122 123 124 125 126 127 153 154 155
    128 129 130 131 132 133 134 156 157 158 159 160 161 162
    135 136 137 138 139 140 141 163 164 165 166 167 168 169
    142 143 144 145 146 147 148 170 171 172 173 174 175 176
    149 150 151 152 177 178 179 180 181 182

    July August
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    183 214 215 216 217 218
    184 185 186 187 188 189 190 219 220 221 222 223 224 225
    191 192 193 194 195 196 197 226 227 228 229 230 231 232
    198 199 200 201 202 203 204 233 234 235 236 237 238 239
    205 206 207 208 209 210 211 240 241 242 243 244
    212 213
    September October
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    245 246 275 276 277 278 279 280 281
    247 248 249 250 251 252 253 282 283 284 285 286 287 288
    254 255 256 257 258 259 260 289 290 291 292 293 294 295
    261 262 263 264 265 266 267 296 297 298 299 300 301 302
    268 269 270 271 272 273 274 303 304 305

    November December
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    306 307 308 309 336 337
    310 311 312 313 314 315 316 338 339 340 341 342 343 344
    317 318 319 320 321 322 323 345 346 347 348 349 350 351
    324 325 326 327 328 329 330 352 353 354 355 356 357 358
    331 332 333 334 335 359 360 361 362 363 364 365
    366

    [root@mylinux /root]#

    名称 : 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...个小时要执行,其余类推

    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:13:11 | 显示全部楼层
    使用者也可以将所有的设定先存放在档案 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 即可。

    名称 : 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 : 显示版本编号

    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:13:28 | 显示全部楼层
    例子 :
    显示时间后跳行,再显示目前日期 :
    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

    名称: 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 时间除以
    本帖转自52mc论坛
    回复 支持 反对

    使用道具 举报

      关注我们
    • 微信公众号:
    • NuclearNet
    • 扫描二维码加关注

    Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.

    联系我们|网站声明|中国核网-核能领域第一垂直门户网站

    快速回复 返回顶部 返回列表