巧学活用Linux
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.常用的Linux基本命令有哪些?

1)cat命令

【功能】连接文件并在标准输出上输出。

【用法】cat[选项列表][文件列表]...

【描述】将文件列表中的文件或标准输入连接到标准输出。

【选项】

-A,--show-all;等价于-vET。

-b,--number-nonblank:给非空输出行编号。

-e:等价于-vE。

-E,--show-ends:在每行结束显示“$”。

-n,--number:所有输出行编号。

-s,--squeeze-blank:所有的连续的多个空行替换为一个空行。

-t:等价于-vT。

-T,--show-tabs:把TAB字符显示为“^I”。

-u:被忽略的选项。

-v,--show-nonprinting:除了LFD和TAB外,所有控制符用“^”和“M-”方式显示。

--help:显示帮助并退出。

--version:显示版本信息并退出。

【范例】把test1的内容加上行号后,输入到test2里:

cat- n test1>test2

把test1和test2的内容加上行号(空白行不加)后,将内容附加到test3里:

cat- b test1 test2>> test3

2)chmod命令

【功能】改变文件的访问权限。

【用法】chmod [options] mode file...

POSIX选项:[-R]

GNU选项(最短方式):[-cfvR] [--reference=rfile] [--help] [--version] [--]

【描述】使用chmod命令改变指定文件访问权限有两种方式,一种是用符号标志进行更改,另一种是采用八进制数指定新的访问权限。使用符号标志进行更改的语法格式为

[ugoa...][[+-=][rwxXstugo...]...][,...]

u:表示该档案的拥有者。

g:表示与该档案的拥有者属于同一个群体(group)者。

o:表示其他以外的人。

a:表示u、g、o三者皆是。

+:增加权限。

-:取消权限。

=:唯一设定权限。

r:可读取。

w:可写入。

x:可执行。

X:只有当该档案是个子目录或已经被设定过为可执行。

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

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

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

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

--help:显示辅助说明。

--version:显示版本。

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

chmod ugo+r test1.txt

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

chmod a+r test1.txt

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

chmod ug+w,o-w test1.txt test2.txt

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

chmod u+x ex1.py

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

chmod-R a+r *

此外,chmod命令也可以用数字来表示权限(如chmod 777test),语法为:

chmod abc test

其中,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=5。

例如,范例:chmod a=rwx test和chmod777test效果相同;chmod ug=rwx,o=x test 和 chmod 771 test 效果相同;若用chmod 4755 testname可使其具有root的权限。

3)chown命令

【功能】修改文件所有者和组别。

【用法】chown [options] user [:group] file...

POSIX选项:[-R]

GNU选项(最短格式):[-cfhvR] [--dereference] [--reference=rfile][--help] [--version] [--]

【描述】chown 修改每个由第一个非选项参数声明的给定文件(file)的用户和/或组的所有权。如果只给出了用户名(或者数字用户标志),那么该用户即成为每个指定文件的所有者,而该文件的组别并不改变;如果用户名后面紧跟着冒号和组名(或者是数字组标志),并且它们之间没有空格,则文件的组所有权也随之改变。

【GNU细节】GNU版本允许使用一个点来替代冒号(因为点是有效的用户名中的字符,所以这不被POSIX所接纳)。如果有一个冒号或者点,而没有组名跟在用户名后,则该用户即成为文件的所有者,而且文件的组改为该用户的登录组;如果给定了冒号或点,以及组,但省略了用户名,则只有文件的组被修改(在这种情况下,chown执行的是与chgrp相同的功能)。

【POSIX选项】

-R:递归地修改目录及其下面内容的所有权.

【GNU选项】

-c:--changes:详尽地描述每个文件实际改变了哪些所有权。

-f:--silent,--quiet:不打印文件所有权不能修改的报错信息。

-h:--no-dereference:只作用于其本身的符号链接,而不修改其所指向的文件。

-v:--verbose:详尽描述对每个文件所执行的操作(或者无操作)。

【范例】将档案test1.txt的拥有者设为users群体的使用者zhang:

chown zhang:users test1.txt

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

chmod-Rzhang:users *

4)cd命令

【权限】所有使用者。

【用法】:cd [dirName]

cd [-L|-P] [dir]

【描述】改变当前路径到 dir。这个变量的默认值是HOME目录。环境变量CDPATH定义了包含dir的搜索路径。在CDPATH中可选的路径名以冒号(:)分隔。CDPATH中的空路径名与当前路径相同,就是“.”。如果目录名以斜杠(/)起始,则CDPATH不会被使用。

【选项】

-P:使用物理路径结构而不是跟随符号链接(参见set命令中的-P选项)。

-L:强制跟随符号链接。

另外,选项-与$OLDPWD是相同的。如果成功地改变了目录,返回值为true;否则为false。

【范例】跳到/usr/bin/:

cd/usr/bin

跳到自己的home directory:

cd~

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

cd ../..

5)cp命令

【功能】复制文件和目录。

【用法】cp [选项] 文件路径

cp [选项] 文件...目录

POSIX 选项:[-fipRr]

GNU参数(最短形式):[-abdfilprsuvxPR] [-S SUFFIX] [-V{numbered,existing,simple}] [--sparse=WHEN] [--help] [--version] [--]

【POSIX选项】

-f:如果需要,删除已存在的目的文件。

-i:提示是否覆盖现有普通目标文件。

-p:保留原文件的所有者、组、权限(包括setuid和setgid位),上次修改时间和上次访问时间。如果制作所有者或组信息的副本时出错,则setuid和setgid位被清空。

-R:递归复制目录,如果对象不是普通文件或目录,则做相应正确处理。因此,一个FIFO或特殊文件在复制后,仍然是一个FIFO型或相应的特殊文件。

-r:递归复制目录,如果对象不是普通文件或目录,则做一些未声明处理。因此,允许并鼓励用-r选项做-R的同义词。

【GNU选项】

-a,--archive:复制时,尽可能保持文件的结构和属性(但不保持目录结构)。等同于-dpR。

-d,--no-dereference:复制符号链接作为符号链接而不是复制它指向的文件,并且保护在副本中原文件之间的硬链接.

-f,--force:删除存在的目标文件。

-i,--interactive:无论是否覆盖现存文件都作提示。

-l,--link:制作硬链接代替非目录复制。

-p,--preserve:保持原始文件的所有者、组、许可和时间表属性。

-P,--parents:一个斜杠和指定的源文件名构成目的文件。最后送给cp的参数必须是一个已存在的目录的名字。例如,cp--parents a/b/c existing_dir表示复制文件‘a/b/c’到texisting_dir(现有的目录)‘/a/b/c’,建立任何缺少的中间目录。

-r:递归地复制目录,复制任何非目录和非符号链接。

【范例】档案aaa复制(已存在),并命名为bbb:

cp aaa bbb

将所有的C语言程序复制到Finished子目录中:

cp *.c Finished

6)cut命令

【功能】在文件的每一行中提取片断。

【用法】../src/cut [OPTION]... [FILE]...

【描述】在每个文件(file)的各行中,把提取的片断显示在标准输出。

【选项】

-b,--bytes=LIST:输出这些字节。

-c,--characters=LIST:输出这些字符。

-d,--delimiter=DELIM:使用DELIM取代TAB做字段(field)分隔符。

-f,--fields=LIST:输出这些字段。

-n:(忽略)

-s,--only-delimited:不显示没有分隔符的行。

--output-delimiter=STRING:使用STRING作为输出分隔符,默认的输出分隔符为输入分隔符。

--help:显示帮助信息,然后结束。

--version:显示版本信息,然后结束。

只能使用-b,-c或-f中的某一个选项。LIST由一个范围(range)或逗号隔开的多个范围组成。范围是下列形式之一:

N:第N个字节、字符或字段,从1计数起。

N-:从第N个字节、字符或字段直至行尾。

N-M:从第N到第M(包括第M)个字节、字符或字段。

-M:从第1到第M(包括第M)个字节、字符或字段。

如果没有指定文件(FILE),或FILE是“-”,就从标准输入读取数据。

【范例】

shell>> cat example

testfile

this is testfile

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

结果:

testfil

this is

7)find命令

【功能】在层次目录中递归地处理文件。

【用法】

Find path-option [-print] [-exec-ok command] {} \;

其中,

-print:将查找到的文件输出到标准输出。

-exec command {} \; :将查找到的文件执行command操作({}和 \;之间有空格)。

-ok:和-exec相同,但在操作前要询问用户。

【选项】

-name filename:查找名为filename的文件。

-perm:按执行权限来查找。

-user username:按文件属主来查找。

-group groupname:按组来查找。

-mtime-n+n:按文件更改时间来查找(-n指n天以内,+n指n天以前)。

-atime-n+n:按文件访问时间来查找(-n指n天以内,+n指n天以前)。

-ctime-n+n:按文件创建时间来查找(-n指n天以内,+n指n天以前)。

-mmin-n+n:按文件更改时间来查找(-n指n分钟以内,+n指n分钟以前)。

-amin-n+n:按文件访问时间来查找(-n指n分钟以内,+n指n分钟以前)。

-cmin-n+n:按文件创建时间来查找(-n指n分钟以内,+n指n分钟以前)。

-nogroup:查找无有效属组的文件,即文件的属组在/etc/groups中不存在。

-nouser:查找无有效属主的文件,即文件的属主在/etc/passwd中不存。

-newer f1 !f2:查找更改时间比f1新但比f2旧的文件。

-type b/d/c/p/l/f:查找块设备、目录、字符设备、管道、符号链接、普通文件。

-size n[c]:查找长度为n块(或n字节)的文件。

-depth:在进入子目录前,先行查找完本目录。

-fstype:查找更改时间比f1新但比f2旧的文件。

-mount:查找文件时,不跨越文件系统mount点。

-follow:如果遇到符号链接文件,就跟踪链接所指的文件。

-cpio:对匹配的文件使用cpio命令,将其备份到磁带设备中。

-prune:忽略某个目录。

【范例】

基本用法:find/-name 文件名

查找ver1.d,ver2.d *.c文件并打印:find ver1.d ver2.d-name '*.c'-print

从当前目录查找,仅查找目录,找到后打印路径名(可用于打印目录结构):find .-type d-print

无错误查找:find/-name access_log 2 >/dev/null

按尺寸查找(查找1500B大小的文件,c表示字节):find/-size 1500c

按尺寸查找(查找大于1500B大小的文件,+表示大于):find/-size+1500c

按尺寸查找(查找小于1500B大小的文件,-表示小于):find/-size-1500c

按时间查找(最后n分钟):find/-amin n

按时间查找(最后n天):find/-atime n

按时间查找(最后n分钟改变状态):find/-cmin n

按时间查找(最后n天改变状态):find/-ctime n

查找空白文件、空白文件夹、没有子目录的文件夹:find/-empty

查找系统中总是错误的文件:find/-false

查找存在于指定文件系统的文件(如type为ext2):find/-fstype type

查找组ID为n的文件:find/-gid n

组名为“gname”的文件:find/-group gname

在某层指定目录中优先查找文件内容:find/-depth n

在某个层次目录中按递减方式查找:find/-maxdepth levels查找字符串:find .-name '*.html'-exec grep 'mailto:'{}

8)ls命令

【功能】列目录内容。

【用法】ls [选项] [文件名...]

POSIX标准选项:[-CFRacdilqrtu1]

GNU选项(短格式):[-1abcdfgiklmnopqrstuxABCDFGLNQRSUX"][-w cols] [-T cols] [-I pattern] [--full-time][--format={long,verbose, commas,across,vertical,single-column}] [--sort={none,time,size,extension}][--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]][--help] [--version] [--]

【GNU选项】

-1,--format=single-column:一行输出一个文件(单列输出)。若标准输出不是到终端,此选项就是默认选项。

-a,--all:列出目录中所有文件,包括以“.”开头的文件。

-b,--escape:把文件名中不可输出的字符用反斜杠加字符编号(就像在C语言中一样)的形式列出。

c,--time=ctime,--time=status:按文件状态改变时间(i节点中的ctime)排序并输出目录内容。若采用长格式输出(选项“-l”),使用文件的状态改变时间取代文件修改时间。

-d,--directory:将目录名像其他文件一样列出,而不是列出它们的内容。

-f:不排序目录内容;按它们在磁盘上存储的顺序列出。同时启动“-a”选项,如果在“-f”前存在“-l”、“--color”或“-s”,则禁止它们。

-g:忽略,为兼容UNIX用。

-i,--inode:在每个文件左边打印 i 节点号(也叫文件序列号和索引号,file serial number and index number)。i节点号在每个特定的文件系统中是唯一的。

-k,--kilobytes:如果列出文件大小,则以千字节(KB)为单位。

-l,--format=long,--format=verbose:除每个文件名外,增加显示文件类型、权限、硬链接数、所有者名、组名、大小(byte)及时间信息(如果未指明是其他时间,即指修改时间)。对于6个月以上的文件或超出未来1小时的文件,时间信息中的时分将被年代取代。每个目录列出前,有一行“总块数”显示目录下全部文件所占的磁盘空间。块默认是1024B;如果设置了POSIXLY_CORRECT环境变量,除非用“-k”选项,则默认块大小是512B。每一个硬链接都计入总块数(因此可能重复计数,这无疑是个缺点)。

-m,--format=commas:水平列出文件,每行尽可能多,相互用逗号和一个空格分隔。

-n,--numeric-uid-gid:列出数字化的UID和GID,而不是用户名和组名。

-o:以长格式列出目录内容,但不显示组信息。等于使用“--format=long--no-group ”选项。提供此选项是为了与其他版本的ls兼容。

-p:在每个文件名后附上一个字符以说明该文件的类型。类似“-F”选项,但不标志可执行文件。

-q,--hide-control-chars:用问号代替文件名中非打印的字符。这是默认选项。

-r,--reverse:逆序排列目录内容。

-s,--size:在每个文件名左侧输出该文件的大小,以1024B的块为单位。如果设置了 POSIXLY_CORRECT 的环境变量,除非用“-k”选项,块大小是512B。

-t,--sort=time:按文件最近修改时间(i节点中的mtime)而不是按文件名字典序排序,新文件靠前。

-u,--time=atime,--time=access,--time=use:类似选项“-t”,但是用文件最近访问时间(i节点中的atime)取代文件修改时间。如果使用长格式列出,打印的时间是最近访问时间。

-w,--width cols:假定屏幕宽度是cols(cols以实际数字取代)列。如果未用此选项,默认值是这样获得的:如果可能,先尝试取自终端驱动,否则尝试取自环境变量COLUMNS(如果已设置),都不行则取80。

-x,--format=across,--format=horizontal:多列输出,横向排序。

【范例】默认情况下ls–l显示什么呢?

linux-0v47:/home/zpj#ls-l

总用量224

-rw------- 1 zpj users 560 11月 3 08:10 .bash_history
-rw-r--r-- 1 zpj users 1177 11月 1 15:15 .bashrc
drwxr-xr-x 2 zpj users 4096 11月 1 15:15 bin
drwxr-xr-x 3 zpj users 4096 11月 1 15:16 .cache
……
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 公共
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 模板
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 视频
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 图片
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 文档
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 下载
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 音乐
drwxr-xr-x 2 zpj users 4096 11月 1 15:17 桌面

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

ls-ltr h*
linux-0v47:/home/zpj # ls-ltr h*
-rw-r--r-- 1 zpj users 30 11月 3 10:24 hi~
-rw-r--r-- 1 zpj users 27 11月 3 10:24 hi

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

ls-lR/bin
linux-0v47:/bin # ls-lR/bin
/bin:

总用量10140

          -rwxr-xr-x 1 root root 26332 10 月 18 20:09 arch
          lrwxrwxrwx 1 root root 21 10 月 20 19:09 awk -> /etc/alterna
tives/awk
          -rwxr-xr-x 1 root root 26312 10 月 18 20:09 basename
          -rwxr-xr-x 1 root root 632020 9 月 30 21:57 bash
          -rwxr-xr-x 1 root root 46928 10 月 18 20:09 cat
          -rwxr-xr-x 1 root root 55096 10 月 18 20:09 chgrp
          -rwxr-xr-x 1 root root 55064 10 月 18 20:09 chmod
          -rwxr-xr-x 1 root root 59200 10 月 18 20:09 chown
          -rwxr-xr-x 1 root root 9756 10 月 10 20:53 chvt
          -rwxr-xr-x 1 root root 9752 10 月 10 20:53 clrunimap
          -rwxr-xr-x 1 root root 112680 10 月 18 20:09 cp
          -rwxr-xr-x 1 root root 139072 9 月 20 03:15 cpio
          lrwxrwxrwx 1 root root 4 11 月 1 14:57 csh -> tcsh
          -rwxr-xr-x 1 root root 59180 10 月 18 20:09 date
          -rwxr-xr-x 1 root root 9800 10 月 12 22:16 dbus-cleanup-sockets
          -rwxr-xr-x 1 root root 436528 10 月 12 22:16 dbus-daemon
          -rwxr-xr-x 1 root root 13944 10 月 12 22:16 dbus-monitor
          -rwxr-xr-x 1 root root 18104 10 月 12 22:16 dbus-send
          -rwxr-xr-x 1 root root 5660 10 月 12 22:16 dbus-uuidgen
          -rwxr-xr-x 1 root root 55156 10 月 18 20:09 dd
          -rwxr-xr-x 1 root root 9760 10 月 10 20:53 deallocvt
          -rwxr-xr-x 1 root root 71612 10 月 18 20:09 df
          -rwxr-xr-x 1 root root 22136 10 月 12 22:52 dmesg
          lrwxrwxrwx 1 root root 8 10 月 20 19:08 dnsdomainname
-> hostname
          lrwxrwxrwx 1 root root 8 10 月 20 19:08 domainname
-> hostname
          -rwxr-xr-x 1 root root 57824 10 月 10 20:53 dumpkeys
          -rwxr-xr-x 1 root root 26308 10 月 18 20:09 echo
          -rwxr-xr-x 1 root root 42788 9 月 22 19:14 ed
          -rwxr-xr-x 1 root root 120996 10 月 3 15:35 egrep
          -rwsr-xr-x 1 root audio 22556 9 月 20 19:02 eject
          lrwxrwxrwx 1 root root 3 10月 20 19:08 ex -> vim
          ……

9)more命令

【功能】在显示器上阅读文件的过滤器。

【用法】more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file ...]

【描述】More是一个过滤器,用于分页显示(一次一屏)文本。

【选项】

-num:指定屏幕的行数(以整数表示)。

-d:显示提示信息 "[Press space to continue,'q' to quit.]",当按下其他键时,显示"[Press 'h' for instructions.]"。

-l:通常情况下,把^L(form feed)当做特殊字符,遇到这个字符就会暂停。-l选项可以阻止这种特性。

-f:计数逻辑行,而不是屏幕行。

-p:不卷屏,而是清除整个屏幕,然后显示文本。

-c:不卷屏,而是从每一屏的顶部开始显示文本,每显示完一行,就清除这一行的剩余部分。

-s:把重复的空行压缩成一个空行。

-u:防止下画线。

+/:在显示每个文件前,搜索+/选项指定的文本串。

+num:从行号num开始显示。

【范例】逐页显示testfile之档案内容,如有连续两行以上空白行则以一行空白行显示:

more-s testfile

从第20行开始显示testfile之档案内容:

more+20 testfile

10)mv命令

【功能】移动(改名)文件。

【用法】mv [选项]... 源文件 目标文件

mv [选项]... 源文件... 目录

mv [选项]...--target-directory=DIRECTORY SOURCE...

【描述】改“源文件”名到“目标文件”名,或者移动“源文件”(可以不止一个)到一个“目录”。

【选项】

--backup[=CONTROL]:为现有的每一个目标文件作一个备份。

-b:和--backup一样,但是不接受参数。

-f,--force:覆盖前不提示。

-i,--interactive:覆盖前提示。

--strip-trailing-slashes:删除任何“源文件”参数后面跟随的斜杠。

-S,--suffix=SUFFIX:省略一般的备份后缀。

--target-directory=DIRECTORY:移动全部“源文件”参数到“目录”。

-u,--update:只移动更老的或者标志新的非目录。

-v,--verbose:说明完成了什么。

--help:显示帮助且退出程序。

--version:输出版本信息且退出程序。

这是备份后缀'~',除非设定--suffix 或 SIMPLE_BACKUP_ SUFFIX。这个版本管理方法可以选择通过--backup 选项或通过

VERSION_CONTROL 环境变量的值为

none,off 永不做备份(即使用--backup)

numbered,t 做备份编号

existing,nil 编号,如果编号备份存在,用其他的简单方法

simple,never 总是做简单备份

【范例】

将档案 aaa 更名为 bbb:

mv aaa bbb

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

mv-i *.c

11)rm命令

【功能】移除文件或者目录

【用法】rm [options"]file...

POSIX选项:[-fiRr]

GNU 选项(最短格式):dfirvR][--help][--version][--]

【描述】rm移除每个给定的文件。默认情况下,它不能移除目录。但是,当给定了-r或-R选项时,在指定目录下的整个目录树都会被移除,而且对通过“rm-r”能够移除的目录树深度是没有限制的。当文件路径末端部分只有.和..时会出错,因此可用“rm-r .*”来避免情况的发生。

如果给定了-i选项,或者一个文件不可写,而且标准输入是终端,又没有给定-f选项,则rm会提示用户是否要删除该文件,它写一个问题到stderr,并且从stdin读入一个应答。如果应答是否定的,该文件将被跳过。

【POSIX选项】

-f:不作确认提示。不会写出诊断信息。如果错误只是文件不存在,则不会生成一个状态返回的错误。

-i:进行确认提示(在同时给定-f和-i选项时,列在最后的生效。)

-r(或者-R):递归地移除目录树。

【SVID细节】

System V接口定义(System V Interface Definition,SVID)禁止移除正在执行的可执行二进制文件的最后一个链接。

GNU的实现会因为可移除的层次深度的上限而招致损坏。如果确有必要,可使用‘deltree’工具来移除非常深的目录树。

【GNU选项】

-d,--directory:直接把欲删除的目录下的数据清除,并删除该目录。

-f,--force:强制删除文件或目录。

-i,--interactive:提示是否移除每个文件。如果回答是否定的,文件将被跳过。

-r,-R,--recursive:递归地移除目录中的内容。

-v,--verbose:在移除每个文件之前打印其名称。

--help:在标准输出上打印用法信息,并且以成功状态退出。

--version:在标准输出上打印版本信息,然后以成功状态退出。

--:终止选项列表

【范例】

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

rm-i *.c

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

rm-r Finished

12)rmdir命令

【功能】删除空目录。

【用法】rmdir[options]directory...

POSIX 选项:[-p]

GNU选项(缩写):[-p] [--ignore-fail-on-non-empty] [--help] [--version] [--]

【描述】删除空目录。如果所给出的目录不为空,则报错。

【POSIX 选项】

-p:如果目录由多个路径名组成,从最后一个路径名开始依次删除,直到所有的路径名都被删完。例如,命令“rmdir-p a/b/c”按照“rmdir/a/b/c”→“rmdir a/b”→“rmdir a”的顺序删除目录。

【GNU选项】

--ignore-fail-on-non-empty:通常,rmdir拒绝删除非空目录。这个选项将使命令忽略非空目录而进行删除操作。

--help:在标准输出上显示使用信息并顺利退出。

--version:在标准输出上显示版本信息并顺利退出。

--:终端选项列表。

【范例】将工作目录下,名为 AAA 的子目录删除:

rmdir AAA

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

rmdir-p BBB/Test

13)split命令

【功能】分割文件。

【用法】../src/split [OPTION] [INPUT [PREFIX]]

【描述】把输入文件INPUT按固定大小的文件片PREFIXaa,PREFIXab,...输出;默认的PREFIX是'x'。如果没有指定INPUT或INPUT是-,就从标准输入读取数据。

【选项】

-b,--bytes=SIZE:输出文件大小定为SIZE字节。

-C,--line-bytes=SIZE:输出文件大小定为最多SIZE字节的行。

-l,--lines=NUMBER;输出文件大小定为NUMBER行。

-NUMBER:同-lNUMBER。

--verbose:在打开每一个输出文件前,把诊断信息送往标准错误。

--help:显示帮助信息,然后结束。

--version:显示版本信息,然后结束。

指定SIZE时,可以使用倍乘后缀:b表示512,k表示1K,m表示1M。

【范例】

PostgresSQL 大型资料库备份与回存(因Postgres允许表格大过你系统档案的最大容量,所以要将表格 dump 到单一的档案可能会有问题,应使用split进行档案分割):

% pg_dump dbname | split-b 1m- filename.dump.重新载入
% createdb dbname
% cat filename.dump.* | pgsql dbname

14)touch命令

【功能】修改文件的时间戳记。

【用法】touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)...

被废弃的版本:touch [-acm][ugly_time] file(文件)...

GNU版本:touch [-acfm] [-r file(参照文件)] [-t decimtime(时间值)] [-d time(时间值)] [--time={atime,access,use,mtime, modify}] [--date=time] [--reference=file][--no-create] [--help] [--version] [--] file(文件)...

【描述】touch命令修改每个指定文件(file)的存取(access)和/或修改(modification)时间戳记。除非使用-r或-t选项,这些时间戳记都将修改为当前的时间。

使用-r选项时,这些戳记将按照文件ref_file 的时间戳记来修改(即变得和ref_file时间戳记值相同)。使用-t选项,则这些戳记将按照给定的时间值time进行修改。同时使用或同时不使用-a选项和-m选项,存取和修改两个戳记都将被更改。若只使用-a选项,则只修改存取戳记;若只使用-m选项,则只修改修改戳记。若要修改戳记的文件尚不存在,除非使用-c选项,touch将创建它(作为空文件,并赋予0666的模式且受umask值的限制)。

【POSIX选项】

-a:修改文件的存取时间。

-c:不创建文件。

-m:修改文件。

-r ref_file:将参照文件 ref_file 相应的时间戳记的数值作为指定文件file时间戳记的新值。

-t time:使用指定的时间值time作为指定文件file相应时间戳记的新值。此处的time规定为如下形式的十进制数:

[[CC]YY]MMDDhhmm[.SS]

【GNU选项】

-a,--time=atime,--time=access,--time=use:只修改存取时间。

-c,--no-create:如果要修改的文件不存在,此选项使touch不去创建它。

-d,--date=time:使用时间值time代替指定文件的戳记值。可以包含月份名、时区名,以及'am'和'pm'等。

-f:此选项用于兼容BSD版本的touch(1)。

-m,--time=mtime,--time=modify:只修改修改时间。

-r file,--reference=file:使用参照文件file的时间戳记值修改指定文件的时间戳记。

-t decimtime:这里时间值decimtime格式为MMDDhhmm[[CC]YY][.ss],从左至右分别是月份、日期、小时、分钟,可选的世纪和年,以及可选的秒。touch将用这组数值修改指定文件的时间戳记。

【注意】 这个格式与POSIX标准所规定的格式并不一样。

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

touch file
touch file1 file2

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

touch-c-t 05061803 file
touch-c-t 050618032000 file

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

touch-r referencefile file

将file的时间记录改成5月6日18点3分,公元2000年。时间可以使用am,pm,或者是24h的格式,日期可以使用其他格式(如6May 2000):

touch-d "6:03pm" file
touch-d "05/06/2000" file
touch-d "6:03pm 05/06/2000" file

15)at命令

【功能】排队、检查或删除以后要执行的作业。

at,batch,atq,atrm-

【用法】

at [-V] [-q 队列] [-f 文件] [-mldbv] 时间

at-c 作业 [作业...]

atq [-V] [-q 队列] [-v]

atrm [-V] 作业 [作业...]

batch [-V] [-q 队列] [-f 文件] [-mv] [时间]

【描述】at 和 batch 从标准输入或一个指定的文件读取命令,这些命令在以后某个时间用/bin/sh 执行。

at:在指定的时间执行命令。

atq:列出用户的等待执行的作业;在用户是超级用户的情况下,列出所有人的作业。

atrm:删除作业。

batch:在系统负载水平允许时,执行命令;换句话说,当平均负载降到低于0.8,或者降到了在atrun文件中指定的期望值时运行。

at命令允许相当复杂的时间指定,它扩展了POSIX.2标准,接受HH:MM的时间式样,用于指定在一天的某个时间运行一个作业(如果时间已经过了,则假定为第二天)。

可以指定midnight(午夜)、noon(中午)或teatime(下午4点),也可以用AM或PM后缀指定一天的上午或下午。可以给出month-name day加上可选的年份的式样用于指定运行at命令的日期,或者给出MMDDYY、MM/DD/YY或DD.MM.YY式样用于指定运行at命令的日期。日期的指定必须跟在时间指定的后面。也可以给出像now+计数时间单位的式样,这里的时间单位可以是minutes、hours、days或weeks,也可以给时间加一个today后缀来指定at命令今天运行作业,可以给时间加一个tomorrow后缀来指定at命令明天运行作业。

例如,要在3天后的下午4点运行一个作业,at时间参数可以指定为4pm+3 days;要在7月31日上午10:00运行一个作业,at 时间参数可以指定为 10am Jul 31;要在明天上午1点运行一个作业,at时间参数可以指定为1amtomorrow。

【范例】三天后的下午 5 点执行/bin/ls:

at 5pm+3days/bin/ls

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

at 5pm+2 weeks/bin/ls

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

at 17:20 tomorrow/bin/date

2012年的最后一天的最后一分钟输出“the end of 2012!”:

at 23:59 12/31/2012 echo the end of 2012 !

16)cal命令

【功能】显示一个日历。

【用法】cal[-mjy] [月份 [年份]]

【描述】显示一个简单的日历。如果没有指定参数,则显示当前月份。

【选项】

-m:显示星期一作为一周的第一天(默认为星期日)。

-j:显示儒略历的(Julian)日期(以1为基的天数,从1月1日开始计数)。

-y:示当前年份的日历。

【范例】显示当前时间、日期:

显示当月日历:

显示某个特定时间的日历(如2011年10月):

以一月一日起的天数显示某年日历,默认是当前年:

linux-0v47:/home/*** # cal-jy

17)date命令

【功能】打印或设置系统日期和时间。

【用法】date [选项]... [+格式]

date [选项] [MMDDhhmm[[CC]YY][.ss]]

【描述】根据指定格式显示当前时间或设置系统时间。

【选项】

-d,--date=STRING:显示由STRING指定的时间,而不是当前时间。

-f,--file=DATEFILE显示DATEFILE中每一行指定的时间,如同将DATEFILE中的每行作为--date的参数一样。

-I,--iso-8601[=TIMESPEC]:按照ISO-8601的日期/时间格式输出时间。TIMESPEC='date'(或者不指定时)仅输出日期,等于“hours”,'“minutes”,或'“seconds” 时按照指定精度输出日期及时间。

-r,--reference=FILE:显示FILE的最后修改时间。

-R,--rfc-822:根据RFC-822指定格式输出日期。

-s,--set=STRING:根据STRING设置时间。

-u,--utc,--universal:显示或设置全球时间(格林威治时间)。

--help:显示本帮助文件并退出。

--version:显示版本信息并退出。

格式FORMAT控制着输出格式。仅当选项指定为全球时间时本格式才有效。分别解释如下:

%% 文本的 %

%a 当前区域的星期几的简写(Sun..Sat)

%A 当前区域的星期几的全称(不同长度)(Sunday..Saturday)

%b 当前区域的月份的简写(Jan..Dec)

%B 当前区域的月份的全称(变长)(January..December)

%c 当前区域的日期和时间(Sat Nov 04 12:02:33 EST 1989)

%d (月份中的)几号(用两位表示)(01..31)

%D 日期(按照月/日期/年格式显示)(mm/dd/yy)

%e (月份中的)几号(去零表示)( 1..31)

%h 同 %b

%H 小时(按24h制显示,用两位表示)(00..23)

%I 小时(按12h制显示,用两位表示)(01..12)

%j (一年中的)第几天(用3位表示)(001..366)

%k 小时(按24h制显示,去零显示)(0..23)

%l 小时(按12h制显示,去零表示)(1..12)

%m 月份(用两位表示)(01..12)

%M 分钟数(用两位表示)(00..59)

%n 换行

%p 当前时间是上午(AM)还是下午(PM)

%r 时间,按12h制显示(hh:mm:ss [A/P]M)

%s 从1970年1月1日0点0分0秒到现在历经的秒数(GNU扩充)

%S 秒数(用两位表示)(00..60)

%t 水平方向的 tab 制表符

%T 时间,按24h制显示(hh:mm:ss)

%U (一年中的)第几个星期,以星期天作为一周的开始(用两位表示)

%V (一年中的)第几个星期,以星期一作为一周的开始(用两位表示)

%w 用数字表示星期几(0..6); 0 代表星期天

%W (一年中的)第几个星期,以星期一作为一周的开始(用两位表示)(00..53)

%x 按照(mm/dd/yy)格式显示当前日期

%X 按照(%H:%M:%S)格式显示当前时间

%y 年的后两位数字(00..99)

%Y 年(用 4 位表示)(1970...)

%z 按照 RFC-822 中指定的数字时区显示(如-0500)(为非标准扩充)

%Z 时区(如EDT(美国东部时区)),如果不能决定是哪个时区则为空

%M 分钟数(用两位表示)(00..59)

默认情况下,用 0 填充数据的空缺部分。GNU的date命令能分辨在'%'和数字指示之间的以下修改。'-'(连接号)不进行填充 '_'(下划线)用空格进行填充。

【范例】显示时间后跳行,再显示目前日期后跳行:

linux-0v47:/home/*** # date+%T%n%D%n%A
23:27:24
11/02/11
星期三

18)sleep命令

【功能】延迟指定数量的时间。

【用法】sleep [OPTION]... NUMBER[SUFFIX]

【描述】暂停NUMBER秒。SUFFIX的含义:s代表秒数,m代表分钟,h代表小时,d代表天数。

【选项】

--help:显示帮助信息,然后结束。

--version:显示版本信息,然后结束。

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

linux-0v47:/home/*** # date;sleep 1m ;date
2011年11月03日 星期四07:44:56 CST
2011年11月03日 星期四07:45:56 CST

当然,如果要改变延迟时间,则可以改变上面的时间,例如:

linux-0v47:/home/****# date;sleep 5s ;date
2011年 11月 03日 星期四 07:47:09 CST
2011年 11月 03日 星期四 07:47:14 CST

19)uptime命令

【功能】告知系统运行了多久时间。

【用法】

uptime
uptime [-V]

【描述】uptime命令给出下列信息的一行显示:当前时间,系统运行了多久时间,当前登录的用户有多少,以及前1分钟,5分钟和15分钟系统的平均负载。这与通过 w(1)显示的首行包括的信息相同。

【范例】

Uptime
linux-0v47:/home/*** # uptime
09:41 up 0:05,3 个用户,平均负载:0.16,0.36,0.21

20)chfn命令

【功能】改变用户的finger信息。

【用法】chfn [-f full-name] [-o office] [-p office-phone] [-h home-phone] [-u] [-v] [username]

【描述】chfn命令是用于改变用户的finger信息。信息是存放在/etc/passwd文档内。可藉由finger来显示用户的信息。Linux finger命令会显示4段信息,这些信息均可由chfn命令改变;真实姓名,工作地点电话,以及用户的电话。

  • 命令行模式:每一段信息均可在命令列上指定。如果没有给定信息,chfn命令自动进入交互模式。
  • 交互模式:在交互模式中,chfn命令会在每一栏前进行提示。在提示状态下,可以输入新的信息,或者按回车键而不改变。输入“none”,则表示该栏空白。

【选项】

-f,--full-name:真实姓名。

-o,--office:办公室号码。

-p,--office-phone:办公室电话。

-h,--home-phone:家里的电话。

-u,--help:显示使用说明信息。

-v,--version:显示版本信息。

【范例】

linux-0v47:/home/*** # chfn
Changing finger information for root.
Enter the new value,or press ENTER for the default
          Full Name [root]:
          Room Number []:
          Work Phone []:
          Home Phone []:
Other []:
Finger information not changed.

21)finger命令

【功能】用户信息查找程序。

【用法】finger [-lmsp] [user ...] [user@host ...]

【描述】显示关于系统用户的信息。

【选项】

-l:显示用户的账号名称、真实姓名、用户专属目录、登录所用的shell、登录时间、转信地址、电子邮件状态,以及计划文件和方案文件内容。

-m:排除查找用户的真实姓名。

-s:显示该用户的账号名称、真实姓名、登录终端机、闲置时间、登录时间,以及地址和电话。

-p:显示该用户的账号名称、真实姓名、用户专属目录、登录所用的shell、登录时间、转信地址、电子邮件状态,但不显示该用户的计划文件和方案文件内容。

不指定finger的选项:如果提供操作者,默认设为“-l”输出风格,否则为“-s”风格。

【注意】 在两种格式中,如果信息不足,都可能丢失一些域,如果没有指定参数,finger命令会为当前登录的每个用户打印一个条目。

finger命令可以用来查看远地机器上的用户信息,格式是指定user为“user@host”或“@host”,前者默认的输出为-l风格,后者默认的输出为-s 风格。-l选项是唯一的向远地机器传递的选项。

【范例】查看系统中某个账户资料:

linux-0v47:/home/*** # finger ***
Login:***                                        Name:***
Directory:/home/***                              Shell:/bin/bash
On since Thu Nov 3 09:36(CST)on :0(messages off)from console
On since Thu Nov 3 09:37(CST)on pts/0,idle 0:14
On since Thu Nov 3 09:41(CST)on pts/1(messages off)
No Mail.

22)last命令

【功能】显示最近登录的用户列表。

【用法】last [-R] [-num] [-n num] [-adiox] [-f file] [name...][tty...]

lastb [-R] [-num] [-n num] [-f file] [-adiox] [name...] [tty...]

【描述】向后检索/var/log/wtmp文件(也可以用-f 选项指定被检索的文件),并显示自这个文件创建以来所有登录(退出)系统的用户列表。在指定了用户名和终端名的情况下,last命令只显示符合这些参数的记录。终端的名字可以简写,因此“last 0”等同于“last tty0”。

当last命令捕捉到了SIGINT信号(产生于中断键,通常是“Ctrl”+“C”键)或 SIGQUIT 信号(产生于退出键,通常是“Ctrl”+“\”键)时,last命令会显示它对文件已经检索了多少;在SIGINT信号的情况下,last命令将终止运行。

每次系统重新启动时,虚拟用户reboot都会被记录到日志中,因此last reboot命令会列出自日志文件创建以来的所有重新启动的日志记录。

lastb命令默认列出/var/log/btmp文件中的日志记录,这个文件包含有所有不良的登录企图。除此之外,等同于last命令。

【选项】

-num:指定last要显示多少行。"-n num"等同 –num。

-R:不显示主机名列。

-a:在最后一列显示主机名。

-d:对于非本地的登录,Linux 不仅保存远程主机名,而且保存IP地址(IP number)。这个选项可以将IP地址(IP number)转换为主机名。

-i:类似于显示远程主机 IP 地址(IP number)的-d 选项,只不过它用数字和点符号显示IP数。

-o:读取一个旧格式的 wtmp 文件(用linux-libc5应用程序写入的)。

-x:显示系统关机记录和运行级别改变的日志。

【范例】

linux-0v47:/home/*** # last-R-2
***     pts/1    Thu Nov 3 09:41    still logged in
***     pts/0    Thu Nov 3 09:37    still logged in
wtmp begins Tue Nov 1 15:16:12 2011

23)passwd命令

【功能】更改使用者密码。

【用法】passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

【选项】

-k:告知系统用户应在密码到期前更改密码。

-l:对指定用户上锁(仅root用户有权使用)。

-u:对指定用户解锁(仅root用户有权使用)。

-f:更改由finger命令访问的用户信息。

-d:删除指定用户密码(仅root用户有权使用)。

-S:显示指定用户的密码状态信息(仅root用户有权使用)。username:指定账号名称。

【范例】

linux-0v47:/home/*** # passwd Changing password for root.

新口令:

重新输入新口令:

口令已更改。

24)wall命令

【功能】向所有人的终端发送消息。

【用法】wall [message]

【描述】wall命令向所有登录的并且mesg(1)权限设为yes的用户发送消息。消息可以作为wall命令的一个参数或标准输入。当把终端作为标准输入时,消息应该以EOF键结束(即“Ctrl”+“D”键)。

【范例】

linux-0v47:/home/***j # wall hi
Broadcast Message from***@linu(/dev/pts/1)at 10:24 ... welcome to enter the system

25)kill命令

【功能】终止进程。

【用法】

kill[-ssignal|-p][-a]pid...

kill-l [signal]

【描述】给指定进程发送指定信号。如果没有指定信号,则发送TERM信号。TERM信号会终止不能俘获该信号的进程。对于其他进程,可能需要使用KILL(9)信号,因为该信号不能够被俘获。大多数现代的shell有一个内嵌的kill函数。

【选项】

pid ...:给kill命令指定一个该发信号的进程列表。每个pid可为下面4种之一。

进程名:发信号给所命名的进程。n(n>0):将发信号pid为n的进程。

-1:只有发信号的用户能够控制那些进程,将发信号给所有从MAX_INT到2的进程。

-n(n>1):发信号给属于进程组n的进程。如果给定一个负的参数,则信号必须首先声明,否则它会被当做信号发送出去。

-s:指定发送的信号。信号可以以信号名或数字的方式给定。

-p:指定kill只打印命名进程的进程标志(pid),而不应发送给它信号。

-l:打印信号名的列表(这可以在/usr/include/linux/signal.h中找到)。

【范例】将pid为23的进程终止(kill):

kill-9 23

将pid为23的进程重启(restart):

kill-HUP 23

26)ps命令

【功能】显示瞬间进程(process)的动态。

【用法】ps [options] [--help]

【选项】ps命令的参数非常多,在此仅列出几个常用的参数并大略介绍其含义。

-A:列出所有的进程。

-w:显示加宽,可以显示较多的信息。

-au:显示较详细的信息。

-aux:显示所有包含其他使用者的进程。

【范例】

linux-0v47:/home/*** # ps -au

Warning:bad ps syntax,perhaps a bogus '-'? See http://procps.sf.net/faq.html

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 614 0.0 0.1 2148 632 tty1 Ss+ 09:36 0:00

/sbin/agetty tty1 38400

root 752 2.8 14.4 102816 71964 tty7 Ss+ 09:36 1:42

/usr/bin/Xorg

-br :0 vt7 -nolisten tcp -auth /var/lib/xdm/authdir/authfiles/A:0-su39ic

*** 2174 0.0 0.4 5584 2340 pts/1 Ss 09:41 0:00 /bin/bash

root 2187 0.0 0.3 5368 1828 pts/1 S 09:41 0:00 su root

root 2192 0.0 0.4 5492 2216 pts/1 S 09:41 0:00 bash

root 3269 0.0 0.1 2616 888 pts/1 R+ 10:36 0:00 ps -au

27)renice命令

【功能】重新指定一个或多个进程(Process)的优先次序(一个或多个将根据命令后面的参数而定)。

【用法】renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

【选项】

-p pid:重新指定进程的ID为pid的进程的优先次序。

-g pgrp:重新指定进程群组(Process Group)的ID为pgrp的进程(一个或多个)的优先次序。

-u user:重新指定进程拥有者为 user 的进程的优先次序。

【范例】将进程ID为987及32的进程与进程拥有者为daemon及root的优先次序号码加1:

renice+1 987-u daemon root-p 32

【注意】 每一个进程(Process)都有一个唯一的ID。

28)top命令

【功能】即时显示进程的动态。

【用法】top [-] [d delay] [p] [q] [c] [S] [s] [i] [n] [b]

【选项】

d:指定刷新时间间隔(单位:s)。

q:无延迟刷新。

p:显示指定进程的状态。

c:切换显示模式。共有两种模式,一种是只显示执行文件的名称,另一种是显示完整的路径与名称。

S:累积模式,会将已完成或消失的子行程(Dead Child Process)的CPU时间累积起来。

s:安全模式,将交谈式指令取消,避免潜在的危机。

i:不显示任何闲置(Idle)或无用(Zombie)的进程。

n:刷新的次数,完成后将退出top命令。

b:批次文件模式,搭配“n”参数一起使用,可用于将top命令的结果输出到档案内。

【范例】

            linux-0v47:/home/*** # top -n 2
            top - 10:46:06 up 1:09, 3 users, load average:0.01,0.04,0.07
            Tasks:127 total, 1 running,126 sleeping, 0 stopped, 0
       zombie
            Cpu(s):8.3%us,6.6%sy,0.0%ni,84.8%id,0.0%wa,0.0%hi,0.3%si,
       0.0%st
            Mem: 498832k total, 485376k used, 13456k free, 19768k
       buffers
            Swap: 761852k total, 15708k used, 746144k free, 155760k
       cached
            PID USER PR NI VIRT RES SHR S %CPU %MEM
       TIME+ COMMAND
            752 root 20 0 121m 73m 3808 S 11.9 15.1 1:51.27 Xorg
          2172 *** 20 0 220m 28m 19m S 1.7 5.9 0:12.20 konsole
          1921 *** 20 0 180m 29m 20m S 0.7 6.0 0:08.15 kwin
            700 root 20 0 24436 2428 2168 S 0.3 0.5 0:03.75
            vmtoolsd
          1960 *** 20 0 287m 42m 25m S 0.3 8.8 0:12.05
plasma-desktop
            2796 root 20 0 0 0 0 S 0.3 0.0 0:00.23
kworker/0:0
            3453 root 20 0 2512 1028 736 R 0.3 0.2 0:00.02 top
            1 root 20 0 5124 2092 1568 S 0.0 0.4 0:02.19 systemd
            2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
            3 root 20 0 0 0 0 S 0.0 0.0 0:00.00
ksoftirqd/0
            5 root 20 0 0 0 0 S 0.0 0.0 0:00.00
            kworker/u:0
            6 root RT 0 0 0 0 S 0.0 0.0 0:00.00
migration/0
            7 root -2 19 0 0 0 S 0.0 0.0 0:00.49 rcuc0
            8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 rcun0
            9 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcub0
            10 root RT 0 0 0 0 S 0.0 0.0 0:00.01 rcun1
            11 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcub1
            12 root RT 0 0 0 0 S 0.0 0.0 0:00.03
watchdog/0
            13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
            14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
            15 root 20 0 0 0 0 S 0.0 0.0 0:00.00
kdevtmpfs
            16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
            17 root 20 0 0 0 0 S 0.0 0.0 0:00.01
        sync_supers
            18 root 20 0 0 0 0 S 0.0 0.0 0:00.00
            bdi-default
            19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00
kintegrityd
            20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
            21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
            22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
            23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md
            25 root 20 0 0 0 0 S 0.0 0.0 0:00.00
khungtaskd
            26 root 20 0 0 0 0 S 0.0 0.0 0:00.68
          kswapd0
            27 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
            28 root 20 0 0 0 0 S 0.0 0.0 0:00.00
fsnotify_mark
            29 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto

29)expr命令

【功能】一般用于整数值计算,但也可用于字符串操作。

【用法】expr argument operator argument

【选项】

argument:第1个参数。

operator:操作运算符。

argument:第2个参数。

【范例】

linux-0v47:/home/zpj # expr 10+10
20
linux-0v47:/home/zpj # expr 15 % 43
linux-0v47:/home/zpj # expr 10+10
20
linux-0v47:/home/zpj # expr 15 % 4
3
linux-0v47:/home/zpj # expr length "this is a test"
14
linux-0v47:/home/zpj # expr substr "this is a test" 3 8
is is a
linux-0v47:/home/zpj # expr index "testforthegame" e
2
linux-0v47:/home/zpj # expr thisisatestformela
thisisatestformela

30)nohup命令

【功能】使程序运行时不挂起,不向tty输出信息。

【用法】nohup Command [Arg…] [&]

【描述】执行COMMAND命令,忽略hangup(挂起)信号。

【选项】

--help:显示此帮助,然后退出。

--version:显示版本信息,然后退出。

【范例】

nohup tar cf/dev/tape/home &

31)mkdir命令

【功能】建立目录。

【用法】mkdir [选项] 目录...

POSIX 选项:[-p] [-m mode]

GNU 选项(缩写):[-p][-m mode] [--verbose][--help][--version][--]

【描述】用指定的名字建立目录。默认新建立的目录模式为0777,即不加保护地对所有人都可读、可写、可执行。

【选项】

-m mode,--mode=mode:为新建立的目录设定模式,就像应用命令chmod一样,以后仍然使用默认模式建立新目录。

-p,--parents:为所给出的目录建立丢失了的父目录。所建立的父目录的模式相当于用命令umask进行了“u+wx”的设置。忽略参数对已存在的目录的覆盖。

--verbose:打印新建立的每一个目录名。与--parents联合使用最有效。

-help:在标准输出上显示使用信息并退出。

-version:在标准输出上显示版本信息并退出。

--:终端选项列表。

【范例】

linux-0v47:/home/zpj # mkdir test//新建一个名字叫test的文件夹
linux-0v47:/home/zpj # ls –l//下面看看新建是否成功
-rw------- 1 zpj users 560 11月 3 08:10 .bash_history-rw-r--r-- 1 zpj users 1177 11月 1 15:15 .bashrc
drwxr-xr-x 2 zpj users 4096 11月 1 15:15 bin
drwxr-xr-x 3 zpj users 4096 11月 1 15:16 .cache
drwxr-xr-x 2 root root 4096 11月 3 18:20 test
drwx------ 5 zpj users 4096 11月 1 15:17 .config
drwx------ 3 zpj users 4096 11月 1 15:16 .dbus
-rw------- 1 zpj users 121 11月 3 10:51 .directory
-rw------- 1 zpj users 26 11月 1 15:16 .dmrc
-rw-r--r-- 1 zpj users 1637 11月 1 15:15 .emacs
-rw------- 1 zpj users 16 11月 1 15:17 .esd_auth
drwxr-xr-x 2 zpj users 4096 11月 1 16:07 .fontconfig
drwxr-xr-x 2 zpj users 4096 11月 1 15:16 .fonts
drwx------ 3 zpj users 4096 11月 3 09:36 .gconf
drwx------ 2 zpj users 4096 11月 1 15:17 .gnome2
drwxr-xr-x 2 zpj users 4096 11月 1 15:17 .gstreamer-0.10
-rw-r--r-- 1 zpj users 328 11月 1 15:16 .gtkrc-2.0-kde4
-rw-r--r-- 1 zpj users 27 11月 3 10:24 hi
-rw-r--r-- 1 zpj users 30 11月 3 10:24 hi~
-rw-r--r-- 1 zpj users 861 11月 1 15:15 .inputrc
drwx------ 4 zpj users 4096 11月 2 18:46 .kde4
-rw------- 1 zpj users 35 11月 1 16:32 .lesshst
drwxr-xr-x 3 zpj users 4096 11月 1 16:07 .libreoffice
drwx------ 3 zpj users 4096 11月 1 15:17 .local
drwx------ 4 zpj users 4096 11月 1 16:08 .mozilla

根据上面的记录我们可以看到

drwxr-xr-x 2 root root 4096 11月 3 18:20 test

说明新建文件夹确实成功了。

在Linux中有相对路径和绝对路径之分,上述命令使用的是相对路径/root,下面用绝对路径新建一个文件夹。未建前/home 下的文件夹:

linux-0v47:/home # ls
lost+found zpj

新建文件:

linux-0v47:/home/zpj # mkdir/home/test
linux-0v47:/home # ls
ceshi lost+found zpj

可以看出/home下已经有了一个名字为test的文件夹

32)du命令

【功能】报告磁盘空间使用情况。

【用法】du [options] [file...]

POSIX 选项:[-askx]

GNU 选项(最短格式):[-abcDhHklLmsSxX] [--block-size=size][--exclude=pattern] [--max-depth=n] [--help] [--version] [--]

【描述】du命令报告指定的文件已使用的磁盘空间的总量,包括在层次结构中以指定文件为根的目录在内。“已使用的磁盘空间”指的是为指定的文件下的整个文件层次结构所使用的空间。在未给定参数的情况下,du命令报告当前目录所使用的磁盘空间。

POSIX细节:输出结果默认以512B为计数单位,若给以-k 选项,则以1024B为计数单位。

GNU细节:在没有用选项指定计数单位的情况下,输出结果以1024B为计数单位,但不包括由于设置了环境变量POSIXLY_CORRECT而跟从POSIX 标准的情况。

【POSIX选项】

-a:显示对涉及的所有文件的统计,而不只是包含子目录。

-k:用1024B作为计数单位,替代默认的512B的计数单位。

-x:只输出指定参数的实际使用空间,而不包括其下的子目录。

-s:只统计指定参数的在同一设备上所使用的空间。

【GNU 选项】

-a,--all:显示对所有文件的统计,而不只是包含子目录。

-b,--bytes:输出以字节为单位的大小,替代默认的1024B的计数单位。

--block-size=size:输出以块为单位的大小,块的大小为 size 字节。(file-utils-4.0 的新选项)

-c,--total:在处理完所有参数后,给出所有这些参数的总计。这个选项被用于给出指定的一组文件或目录使用的空间的总和。

-D,--dereference-args:引用命令行参数的符号连接(但不影响其他的符号连接)这对找出像/usr/tmp这样的目录的磁盘使用量有用,/usr/tmp 等通常是符号连接。例如,在/var/tmp下建立一个目录test,而/usr/tmp是指向/var/tmp的符号连接。du/usr/tmp命令返回一项/usr/tmp,而du- D/usr/tmp命令返回两项/usr/tmp,/usr/tmp/test。

--exclude=pattern:在递归时,忽略与指定模式相匹配的文件或子目录。模式可以是任何Bourne shell的文件 glob 模式。

-h,--human-readable:为每个数附加一个表示大小单位的字母,如用M表示二进制的MB。

-H,--si:与-h 参数起同样的作用,只是使用法定的 SI 单位(用1000的幂而不是 1024 的幂,这样 M 代表的就是1000000 而不是 1048576)。(fileutils-4.0 的新选项)

-k,--kilobytes:输出以1024B为计数单位的大小。

-l,--count-links:统计所有文件的大小,包括已经被统计过的(作为一个硬连接)。

-L,--dereference:引用符号连接(不是显示连接点本身,而是连接指向的文件或目录所使用的磁盘空间)。

-m,--megabytes:输出以MB的块为计数单位的大小(即1048576B)。

--max-depth=n:只输出命令行参数的小于等于第 n 层的目录的总计。--max-depth=0的作用同于-s选项。

-s,--summarize:对每个参数只显示总和。

-S,--separate-dirs:单独报告每一个目录的大小,不包括子目录的大小。

-x,--one-file-system:忽略与被处理的参数不在同一个文件系统的目录。

-X file,--exclude-from=file:除了从指定的文件中得到模式外,与--exclude一样。模式以行的形式列出。如果指定的文件是'-',那么从标准输入中读出模式。(fileutils-4.0的新选项)

--help:在标准输出上输出帮助信息后正常退出。

--version:在标准输出上输出版本信息后正常退出。

--:终结选项列表。

【范例】

linux-0v47:/home/zpj # du-h
8.0K   ./public_html
4.0K   ./音乐
8.0K   ./.mozilla/firefox/Crash Reports
12K    ./.mozilla/firefox/21v5p18v.default/bookmarkbackups
……
4.0K   ./图片
8.0K   ./文档
4.0K   ./bin
4.0K   ./视频
8.0K   ./.dbus/session-bus
12K    ./.dbus
120K   ./.cache/ibus/bus
124K   ./.cache/ibus
128K   ./.cache
4.0K   ./.gnome2
4.0K   ./ceshi
28K    ./桌面
184M   .

通过以上的显示可以看出,/home/zpj 文件夹共占用硬盘184MB空间。

那么,想查看其他文件夹空间大小怎么办呢?例如,要查看/root文件夹占用空间情况:

Du/root –h
linux-0v47:/home/zpj # du/root-h
4.0K   /root/bin
8.0K   /root/.config/YaST2
20K    /root/.config
16K    /root/.gnupg
8.0K   /root/inst-sys/.config
8.0K   /root/inst-sys/.gnupg
20K    /root/inst-sys
8.0K   /root/.dbus/session-bus
12K    /root/.dbus
8.0K   /root/.kde4/share/config
12K    /root/.kde4/share
16K    /root/.kde4
36K    /root/.kbd
140K   /root
/root 占用空间 140KB

33)groupadd命令

【功能】建立新群组。

【用法】groupadd [-g gid [-o]] [-r] [-f] group

【描述】groupadd命令可指定群组名称来建立新的群组账号。需要时,可从系统中取得新群组值。

【选项】

-g gid ID:除非使用-o参数,否则该值必须是唯一的,不可相同。数值不可为负。

预设为最小不得小于500而逐次增加。0~499传统上是保留给系统账号使用。

-r:用于建立系统账号。它会自动选定一个小于499的gid,除非命令行再加上-g参数。这是RED HAT额外增设的选项。

-f:force标志。使得新增一个已经存在的群组账号时,系统会出现错误信息然后结束groupadd命令。如果是这样的情况,不会改变这个群组,也可同时加上-g选项。当加上一个gid时,此时gid就不用是唯一值,可不加-o参数,建好群组后会显示结果。这是RED HAT 额外增设的选项 。

【范例】创建一个新组testuser:

linux-0v47:/bin # groupadd testuser

下面来看下是否创建成功了:

linux-0v47:/etc # cat/etc/group

(前面有很多组,与本次目的无关,故删除)

users:x:100:
testuser:!:1000:

由此可看,testuser组创建成功

34)useradd命令

【功能】账号建立或更新新使用者的信息。

【用法】useradd [-c comment] [-d home_dir][-e expire_date] [-f inactive_time][-g initial_group] [-G group[,...]][-m [-k skeleton_dir]] [-o][-p passwd][-s shell] [-u uid] login

useradd-D [-g default_group] [-b default_home][-e default_expire_ date] [-f default_inactive][-s default_shell]

【描述】新账号建立,当不加-D参数,useradd指令使用命令列来指定新账号的设定值and使用系统上的预设值。新使用者账号将产生一些系统档案,使用者目录建立,复制起始档案等,这些均可以利用命令列选项指定。此版本为Red Hat Linux提供,可帮每个新加入的使用者建立个别的群组,无须添加-n选项。

【选项】

-c comment:新账号password文档的说明。

-d home_dir:新账号每次登入时所使用的home_dir。预设值default_home内login名称,并当做登入时目录名称。

-e expire_date:账号终止日期。日期的指定格式为MM/DD/YY。

-f inactive_days:账号过期几日后永久停权。当值为0时,账号则立刻被停权。而当值为-1时,则关闭此功能。预设值为-1。

-g initial_group:群组名称或以数字作为使用者登入起始群组(group)。群组名必须为现有存在的名称。群组数字也须为现有存在的群组。预设的群组数字为1 。

【范例】建立一个test账户,并且所属于新建的用户组testuser:

linux-0v47:/home/zpj # useradd-g testuser test

下面查看用户是否建立成功了,所属是否是testuser组:

linux-0v47:/home/zpj # finger test
Login:test                      Name:
Directory:/home/test            Shell:/bin/bash
Never logged in.
No Mail.
No Plan.
linux-0v47:/home/zpj # groups test
test :testuser video

由此可以看出,用户创建成功。

35)uname命令

【功能】显示输出系统信息。

【用法】uname [OPTION]...

【描述】显示相应的系统信息。没有指定选项时,同有-s选项。

【选项】

-a,--all;显示所有的信息。

-m,--machine:显示机器(硬件)类型。

-n,--nodename:显示机器的网络节点主机名。

-r,--release:显示操作系统发行版本。

-s,--sysname:显示操作系统名。

-p,--processor:显示主机处理器(CPU)类型。

-v:显示操作系统版本。

--help:显示本帮助并退出。

--version:显示版本信息并退出。

【范例】显示系统所有信息:

linux-0v47:/home/zpj # uname
Linux
linux-0v47:/home/zpj # uname-a
Linux linux-0v47 3.1.0-rc9-1-desktop #1 SMP PREEMPT Thu Oct 13 19:25:59 UTC 2011(11f65b5)i686 i686 i386 GNU/Linux

36)userdel命令

【功能】删除用户账号及其相关文件。

【用法】userdel [-r] [用户账号]

【描述】修改系统账号文件,删除所有与用户账号相关的部分。用户账号必须是存在的。若不加参数,则仅删除使用者账号,而不删除相关文件。

【选项】

-r:用户账号目录下的文档一并移除。在其他位置上的文件也将逐一被找出并删除。

【文件】

/etc/passwd:用户账号信息。

/etc/shadow:用户账号信息加密。

/etc/group:群组信息。

【返回值】

0:删除成功。

1:无法更新密码文件。

2:语法错误。

6:用户不存在。

8:用户处于登录状态。

10:无法更新群组文件。

12:无法删除主目录。

【范例】删除已建立的用户test:

linux-0v47:/home/zpj # userdel test
linux-0v47:/home/zpj #

37)df命令

【功能】报告文件系统磁盘空间的使用情况。

【用法】df [OPTION]... [FILE]...

POSIX 选项:[-kP]

GNU选项(最短方式):[-ahHiklmPv] [-t fstype] [-x fstype] [--block-size=size] [--print-type] [--no-sync] [--sync] [--help] [--version] [--]

【描述】df命令显示的是该文件系统的可用空间,而非包含设备节点的文件系统(只能是根文件系统)。此版本的df命令不能显示未使用文件系统的可用空间,这是由于大多数系统在响应这样的请求时,必须很清楚该文件系统的结构。

【选项】

-a,--all:列出包括BLOCK为0的文件系统。

--block-size=SIZE use SIZE-byte blocks:指定块的大小。

-h,--huma-readable":用常见的格式显示出大小(如1K、234M、

2G)。

-H,--si":同上,但是这里的1kB等于1000B而不是1024B。

-i,--inodes:用信息索引点代替块来表示使用状况。

-k,--kilobytes:指定块大小等于1024B来显示使用状况。

-l,--local:只显示本地文件系统使用状况。

-m,--megabytes:以指定块大小等于1048576B(1MB)来显示使用状况。

--no-sync:在取得使用信息前禁止调用同步(default)。

-P,--portability:使用POSIX格式输出。

--sync:在取得使用信息前调用同步。

-t,--type=TYPE:只显示指定类型(TYPE)的文件系统。

-T,--print-type:输出每个文件系统的类型。

-x,--exclude-type=TYPE:只显示指定类型(TYPE)之外的文件系统。

-v:(忽略)

--:输出该命令的帮助信息并退出。

--version:输出版本信息并退出。

【范例】

linux-0v47:/home/zpj # df
文件系统   1K-块    已用     可用   已用%   挂载点
rootfs     5160416  4190828  707344  86%/
devtmpfs   243396   36       243360  1%/dev
tmpfs      249416   312      249104  1%/dev/shm
tmpfs      249416   532      248884  1%/run
/dev/sda   2 5160   416      4190828 707344 86%/
tmpfs      249416   0        249416  0%/sys/fs/cgroup
tmpfs      249416   532      248884  1%/var/lock
tmpfs      249416   532      248884  1%/var/run
tmpfs      249416   0        249416  0%/media
/dev/sda3  4407608  327392   3856320 8%/home