Unix/Linux命令详解

 cd 命令

功能:改变工作目录。
语法:cd [directory]
说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。
该命令可以使用通配符。

例如:假设用户当前目录是:/home/xu,现需要更换到/home/xu/pro目录中,
$ cd pro


cd命令特殊符号
~ :也表示用户主目录
.   :表示目前所在的目录
.. :表示目前目录位置的上一层目录

cd命令特殊符号
~ :也表示用户主目录
.   :表示目前所在的目录
.. :表示目前目录位置的上一层目录

例如:
跳到自己的主目录 :
cd ~

跳到目前目录的上上两层 :
cd ../..

mkdir命令
功能:创建一个目录(类似DOS下的md命令)。
语法:mkdir [选项] dirname
说明:该命令创建由dirname命名的目录。要求创建目录的用户在当前目录中(dirname的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。

命令中各选项的含义为:
?- m ,--mode=模式:对新建目录设置存取权限。也可以用chmod命令设置。
?- p ,--parents:可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

例如:在当前目录中建立inin 和inin下的/mail目录,也就是连续建两个目录。
$ mkdir – p ./inin/mail/
该命令的执行结果是在当前目录中创建嵌套的目录层次inin /mail。

rmdir 命令
功能:删除空目录。
语法:rmdir [选项] dirname
说明:dirname表示目录名。该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。

命令中各选项的含义为:
?- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

例如:
$ rmdir - p /usr/xu/txt
将/usr/xu/txt目录删除。

rm命令
功能:在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

语法:rm [选项] 文件…
说明:如果没有使用- r选项,则rm不会删除目录。使用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。

该命令的各选项含义如下:
- f 忽略不存在的文件,从不给出提示。
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。
- i 进行交互式删除。
$ rm - i test example
  Remove test ?n
  Remove example ?y


pwd 命令
在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用户目前处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,该命令显示整个路径名。
语法:pwd
说明:此命令显示出当前工作目录的绝对路径。

例如:假设用户当前目录是:/home/wang/liu而用户记不清具体的的路径,那么就可以使用pwd查看。
$pwd
/home/wang/liu

ls 命令
ls是英文单词list的简写,其功能为列出目录的内容。这是用户使用频率最多的命令 ,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。


使用ls命令时会有几种不同的颜色
?蓝色表示是目录
?绿色表示是可执行文件
?红色表示是压缩文件
?浅蓝色表示是链接文件
?加粗的黑色表示符号链接
?灰色表示是其它格式文件   /etc/DIR_CLOCR


语法:ls [选项] [目录或是文件]
对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。

ls命令中各选项的含义如下:
- a 显示指定目录下所有子目录与文件,包括隐藏文件。
- A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和“..”。
- l 以长格式来显示文件的详细信息。这个选项最常用。每行列出的信息依次是:
?文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字
?对于符号链接文件,显示的文件名之后有“—〉”和引用文件路径名。

-F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。

注:ls的参数是Linux命令中最多的 ,这里列举了最常用的,其余请参考资料。


例1:列出当前目录的内容。
$ ls -F
bin/ lib/ var/
etc/ tmp/ index. html

例2:列出某个目录的内容。
$ ls –F /home/wang
Mai1/ map1e/ mm/ ptr/ telnetd*
fd/ mbox mount sobsrc. tgz tmp/


例3:列出某个目录下所有的文件(包括隐藏文件)。
$ 1s -aF /home/wang
./ . .e1m/ .netscape/ map1e ptr/
../ .fvwin2rc95 .term/ mbox sobsrc. tgz
.bash-history .ncftp/ fd/ mount tmp/


例4:用长格式列出某个目录下所有的文件(包括隐藏文件)。
$ 1s -laF /home/wang
total 584
drwxr-xr-x l2 root root 1024 Nov 02 22:07 ./
drwxr-xr-x 15 bbs bbs 1024 Jul 29 07:08 ../


通配符
* :代表任意长度的字符
?:代表任意一个字符
[ ] :代表可选的字符集范围


特殊字符和文件名参数:*
可以用 * 来查找以特定字符集开头或结尾的文件
可以用来查找特定扩展名的文件
与rm命令配合可以同时删除包含特定字符的文件


例1:列出所有以doc开头的文件
$ ls
doc1 doc2 document docs mydoc monday tuesday
$ ls doc*
doc1 doc2 document docs
$ ls *day
monday tuesday

例2:显示所有的C语言程序文件
$ ls *.c
Calc.c main.c


例3:删除所有以 doc 开头的文件
$ rm doc *


例4:列出并删除所有的文件
$ ls *
doc1 doc2 document docs mydoc monday tuesday
$ rm *
$ ls
$


例5:
(1) $ rm *.c
(2) $ rm * .c

第一条语句删除所有以.c为扩展名的文件
第二条语句中注意 * 与 .c 之间的空格。rm命令中空格的作用是分隔参数。第二条语句删除了所有文件
特殊字符和文件名参数:?
只匹配文件名中一个单一的不完整字符。


例1:
$ ls
doc1 docA document
$ ls doc?
doc1 docA


例2:寻找第二个字母为y,第4、5个字母分别为o、c,文件名长度为6的文件
$ ls ?y?oc?
mydocs mylock sydoc1


例3:显示所有只有一个字符扩展的所有文件
$ ls *.?
Clac.c lib.a


特殊字符和文件名参数:[ ]
方括号里面可以包含一个字符集的范围
可以使用“-”指明上限和下限


例1:列出以“doc”开头并以数字1到3结束的文件
$ ls doc[1-3]
doc1 doc2 doc3
列出以“doc”开头并以字母B到E结束的文件
$ ls doc[B-E]
docB docD

例2:列出以 .c 或 .o 为扩展名的文件
$ ls *.[co]
Main.c main.o calc.c

转义字符:/
反斜杠“/”用来引用特殊字符
又是特殊字符是文件名的一部分,这种情况下,需要在前面加上转义字符“ / ”

例1:查找以?结尾的文件 answer?
$ ls answer/?
answer?

例2:列出所有以“answer?”开头并有扩展的文件
$ ls answer/?.*
answer?.quiz answer?.mid answer?.final



cp命令
功能:该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。


语法:cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。 需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

该命令的各选项含义如下:

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和 f 选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。

例如:
$ cp - i exam1.c /usr/huang/shiyan1.c
该命令将文件exam1.c拷贝到/usr/huang 这个目录下,并改名为 shiyan1.c。

$ cp - r /usr/xu/ /usr/liu/
将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。


mv命令
功能:用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。
语法:mv [选项] 源文件或目录 目标文件或目录
说明:需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并未增加,而cp对文件进行复制,文件个数增加了。
命令中各选项的含义为:
- i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用 i 选项。


例1:将/usr/xu中的所有文件移到当前目录(用“.”表示)中:
  $ mv /usr/xu/ * .
  
例2:将文件wch.txt重命名为wjz.doc
  $ mv wch.txt wjz.doc

ln命令
功能:该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。

语法:ln [选项] 目标 [链接名]
说明:链接有两种,一种被称为硬链接(Hard Link),一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。


如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。



例:$ ln - s hm /home/huang
用户为当前目录下的文件hm创建了一个符号链接/home/huang


find
功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。
语法:find 起始目录 寻找条件 操作


“寻找条件”最常用参数
-empty : 空的文件;
-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name , -iname : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字符数,k 表示 kilo bytes。


-type c : c包括有d: 目录,c: 字型装置文件,b: 区块装置文件,f: 一般文件,l: 符号连结,s: socket
-pid n : process id 是 n 的文件
-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 , -iname : 文件名称符合 name 的文件。iname 会忽略大小写
size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字符数,k 表示 kilo bytes。
-type c : c包括有d: 目录,c: 字型装置文件,b: 区块装置文件,f: 一般文件,l: 符号连结,s: socket
-pid n : process id 是 n 的文件


例1:
将目前目录及其子目录下所有扩展名是 c 的文件列出来。
# find . -name “*.c”


例2:
将目前目录其其下子目录中所有一般文件列出
# find . -ftype f


例3:将目前目录及其子目录下所有最近 20 分钟内更新过的文件列出
# find . -ctime -20


例4:从根目录开始全磁盘范围内查找my.txt 文件
# find / -name my.txt

cat命令

功能1:在标准输出上显示文件
?。
语法:cat [ - 选项 ] 文件
说明:该命令功能之一是用来显示文件。它依次读取其后所指文件的内容并将其输出到标准输出
cat命令中各个选项的含义
- v 用一种特殊形式显示控制字符,LFD与TAB除外。
加了- v选项后,- T和- E选项将起作用。其中:
?- T 将TAB显示为“ù I”。该选项需要与- v选项一起使用。即如果没有使用- v选项,则这个选项将被忽略。
?- E 在每行的末尾显示一个$符。该选项需要与- v选项一起使用。



- u 输出不经过缓冲区。
- A 等于- vET。
- t 等于- vT。
- e 等于- vE。
例1:$ cat example.txt
则在屏幕上显示出example.txt 文件的内容。

例2:$ cat - A exam2.txt
则在屏幕上显示出exam2.txt 文件的内容,而且如果文件中含有特殊字符的话,一并显示。

    I am a boy ! ùI You are a cute boy$


cat命令
功能2:连接两个或多个文件
说明:该命令功能之二是用来将两个或多个文件连接起来。


例3:$ cat file1 file2 > file3

这样就把文件filel和文件file2的内容合并起来,放入文件file3中。(此时在屏幕上并不能直接看到该命令执行后的结果。若想看到连接后的文件内容,可以再使用“cat file3”。)


more命令
功能:在终端屏幕按屏显示文本文件。
语法: more [ - 选项 ] 文件
说明: 该命令一次显示一屏文本,显示满之后,停下来,并在终端底部打印出
- - More- - ,系统还将同时显示出已显示文本占全部文本的百分比,若要继续显示,按回车或空格键即可。


more命令中各个选项的含义
- p 显示下一屏之前先清屏。
- c 作用同- p基本一样。
l 不处理< Ctrl+l >(换页符)。如果没有给出这个选项,则more命令在显示了一个包含有< Ctrl+l >字符的行后将暂停显示,并等待接收命令。
- s 文件中连续的空白行压缩成一个空白行显示。


重定向 >>   和   管道  

重定向>>
功能:>> 符号将输出添加到一个现有的文件中
说明:重定向允许将命令输出重定向到文件中,而不是标准输出,或者类似地,也可重定向输入。重定向的标准符号 > 创建一个新的文件。
例如:
$ more test2.out
Another test.
$ cat test.out >> test2.out
$ cat test2.out
Another test.
This is a test.

管道
功能:一个命令的输入是另一个的输入
说明:管道使用 |符号,并且在命令之间工作。

例如:您可以用以下方式将一个命令的输出直接发送到打印机上:

$ ls -l * | lpr

可以用以下方式快速地找到历史列表中的一个命令:
$ history | grep cat


系统安全及访问权限命令


passwd
功能:用来更改使用者的密码
语法:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

-d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用.
-S 显示指定使用者的密码认证种类, 只有具备 root 权限的使用者方可使用.
[username] 指定帐号名称.



who命令
功能:
该命令主要用于查看当前在线上的用户情况。这个命令非常有用。如果用户想和其他用户建立即时通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。




who命令
who [imqsuwHT] [--count] [--idle] [--heading] [--help] [--message] [--mesg] [--version] [--writable] [file] [am i]
说明:
所有的选项都是可选的,也就是说可以单独使用who命令。
不使用任何选项时,who命令将显示以下三项内容:
login name:登录用户名;
terminal line:使用终端设备;
login time:登录到系统的时间。
如果给出的是两个非选项参数,那么who命令将只显示运行who程序的用户名、登录终端和登录时间。通常这两个参数是“am i”,即该命令格式为:“who am i”。
参数:
-m 和“who am i”的作用一样,显示运行该程序的用户名。
-q,--count 只显示用户的登录帐号和登录用户的数量,该选项优先级高于其他任何选项。
-s 忽略。主要是用于和其他版本的who命令兼容。
-i,-u,--idle 在登录时间后面显示该用户最后一次对系统进行操作至今的时间,也就是常说的“发呆”时间。其中“.”符号代表该用户在前1秒仍然处于活动状态;“old”则表示该用户空闲已经超过了24小时。


例如:
$ who
root tty1 Mar 17 13:49
foxy tty2 Mar 17 13:49
root tty3 Mar 17 13:49
bbs ttyp0 Mar 17 13:49 (river.net
可以看到,现在系统一共有四个用户。第一列是登录用户的帐号;第二列是登录所使用的终端;第三列是登录时间;第四列是用户从什么地方登录的网络地址,这里是域名


查看登录用户的详细情况
[root@linux sbin]# who -uH
wzm   pts/0   Aug 7 10:32   .   3160 (159.226.139.224)
wzm   pts/1   Aug 7 10:42   ? 3313 (159.226.139.224)
最后来看看使用“who am i”格式命令的结果
[root@linux sbin]# who am i
wzm     pts/0     Aug 7 10:32 (159.226.139.224)


w命令
功能:该命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且统计数据相对who命令来说更加详细和科学,可以认为w命令就是who命令的一个增强版。
语法:w -[husfV] [user]
参数:
-h 不显示标题。
-u 当列出当前进程和CPU时间时忽略用户名。这主要是用于执行su命令后的情况。
-s 使用短模式。不显示登录时间、JCPU和PCPU时间。
-f 切换显示FROM项,也就是远程主机名项。默认值是不显示远程主机名,当然系统管理员可以对源文件作一些修改使得显示该项成为默认值。
-V 显示版本信息。


例如:

[root@linux sbin]# w
2:50pm up 2 min,4 users load average:0.22,0.16,0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
wzm   pts/0   159.226.139.224 10:32am 0.00s 0.33s 0.04s /usr/sbin/sshd


ps


功能:
前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
语法:ps [选项]

ps 命令参数:
-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
注意:实际上这是一个非常容易使用的命令,一般的用户只需掌握一些最常用的命令参数就可以了。
最常用的三个参数是u、a、x,下面将通过例子来说明其具体用法。


ps命令举例:
[root@linux sbin]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START   TIME COMMAND
root   2 0.0 0.0   0   0 ?     SW   Aug05   0:00 [keventd]
root   3 0.0 0.0   0   0 ?     SW   Aug05   0:00 [kapmd]
root   9 0.0 0.0   0   0 ?     SW   Aug05   0:00 [bdflush]
root   5 0.0 0.0   0   0 ?     SW   Aug05   0:01 [kswapd]
root   10 0.0 0.0   0   0 ?   SW   Aug05   0:00 [kupdated]
root 15 0.0 0.0   0   0 ?   SW   Aug05   0:00 [kjournald]


chmod 命令

chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
1. 文字设定法
chmod [who] [+ | - | =] [mode] 文件名?

命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。


设置mode所表示的权限可用下述字母的任意组合:

r可读、w 可写、x 可执行。
x只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
2. 数字设定法
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字设定法的一般形式为:
chmod [mode] 文件名?



例子:
(1)文字设定法:
例1:$ chmod a+x sort
即设定文件sort的属性为:
文件属主(u) 增加执行权限
与文件属主同组用户(g) 增加执行权限
其他用户(o) 增加执行权限
例2:$ chmod ug+w,o-x text
即设定文件text的属性为:
文件属主(u) 增加写权限
与文件属主同组用户(g) 增加写权限
其他用户(o) 删除执行权限


(2)数字设定法:
例1: $ chmod 644 mm.txt
$ ls –l
即设定文件mm.txt的属性为:
-rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt
文件属主(u)inin 拥有读、写权限
与文件属主同组人用户(g) 拥有读权限
其他人(o) 拥有读权限
例2: $ chmod 750 wch.txt
$ ls –l
-rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt
即设定wchtxt这个文件的属性为:
文件主本人(u)inin 可读/可写/可执行权 ,与文件主同组人(g) 可读/可执行权, 其他人(o) 没有任何权限



chgrp命令
功能:改变文件或目录所属的组。
语法:chgrp [选项] group filename?
该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。


该命令的各选项含义为:
R 递归式地改变指定目录及其下的所有子目录和文件的属组。
例1:$ chgrp - R book /opt/local /book
改变/opt/local /book/及其子目录下的所有文件的属组为book

chown 命令
功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
语法:chown [选项] 用户或组 文件
说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。



该命令的各选项含义如下:
-R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
- v 显示chown命令所做的工作。
例1:把文件shiyan.c的所有者改为wang。
$ chown wang shiyan.c
例2:把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。
$ chown - R wang.users /his


关机和登录命令

login

功能:login的作用是登录系统,它的使用权限是所有用户。
语法:login [name][-p ][-h 主机名称]
说明:如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。
一般界面是这样的:
Linux 2.4.20-8 (linux) (10:36 on Saturday, 07 August 2004)
localhost login:root
password:


参数

-p:通知login保持现在的环境参数。

-h:用来向远程登录的之间传输用户名。

登录后会看到下面这个界面 :
Last login: Sat Aug 7 10:36:42 on vc/1
You have new mail.
[wzm@linux wzm]$

shutdown

功能:shutdown命令的作用是关闭计算机,它的使用权限是超级用户。
语法:shutdown [-h][-i][-k][-m][-t]
说明:shutdown命令可以安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统,这是十分危险的。因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。

参数

-t:在改变到其它运行级别之前,告诉init程序多久以后关机。
-k:并不真正关机,只是送警告信号给每位登录者。
-h:关机后关闭电源。
-F:在重启计算机时强迫fsck。
-time:设定关机前的时间。
-m: 将系统改为单用户模式。
-i:关机时显示系统信息。


halt
功能:halt命令的作用是关闭系统,它的使用权限是超级用户。
语法:halt [-n] [-w] [-d] [-f] [-i] [-p]

说明:halt就是调用shutdown -h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操作完成后就会停止内核。若系统的运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。 


参数说明:
-n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。
-w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。
-f:没有调用shutdown,而强制关机或重启。
-i:关机(或重启)前,关掉所有的网络接口。
-f:强迫关机,不呼叫shutdown这个指令。
-p: 当关机的时候顺便做关闭电源的动作。
-d:关闭系统,但不留下纪录。 


reboot

功能:reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
语法:reboot [-n] [-w] [-d] [-f] [-i]
参数说明:
-n: 在重开机前不做将记忆体资料写回硬盘的动作。
-w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i: 在重开机之前先把所有与网络相关的装置停止。


mount
功能:mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
语法:mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
说明:
-h:显示辅助信息。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。





-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
-t vfstype:显示被加载文件系统的类型。
例如:
mount USB
# mount /dev/sda1 /mnt/usb
mount软盘:
mount -t ext2 /dev/fd0 /mnt/floppy
mount cdrom :
mount –t iso9660 /dev/had /mnt/cdrom
mont SCSI cdrom
mount -t iso9660 /dev/sdb /mnt/scdrom


umount


功能:umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。
语法:unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
说明:umount命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就不能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装它。仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。


exit


功能:exit命令的作用是退出系统,它的使用权限是所有用户。
语法:exit
说明:exit命令没有参数,运行后退出系统进入登录界面。


last


功能:last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。
语法:1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D]


参数:

-n:指定输出记录的条数。
-f file:指定用文件file作为查询用的log文件。
-t tty:只显示指定的虚拟控制台上登录情况。
-h 节点:只显示指定的节点上的登录情况。
-i IP:只显示指定的IP上登录的情况。
-1:用IP来显示远端地址。
-y:显示记录的年、月、日。
-ID:知道查询的用户名。
-x:显示系统关闭、用户登录和退出的历史。



系统管理相关命令

df命令
功能:显示磁盘文件系统与使用状况
语法:df [选项]... [FILE]...
-a, --all 显示全部文件系统,包含具有 0 Blocks 的文件系统
--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
-h, --human-readable 使用1024 为单位可读性高的格式
-H, --si 很像 -h, 但是用 1000 为单位
-i, --inodes 列出 inode 信息
-k, 设定block-size=1024
-l, 仅显示本地的文件系统
-m, 设定block-size=1048576
--no-sync 取得磁盘使用信息前不使用 sync (预设值)


-P, --portability 使用 POSIX 输出格式
--sync 取得磁盘使用信息前使用 sync,将内存数据写入磁盘
-t, --type=TYPE 仅列出文件系统类型的磁盘信息
-T, --print-type 显示文件系统的类型
-x, --exclude-type=TYPE不要列出文件系统类型的磁盘信息
[root@linux wzm]# df
/dev/hdc2         8064304   840680   6813968 11% /
/dev/hdc1           101089     9324   86546 10% /boot
/dev/hdc6         2016016   776924   1136680 41% /home
none             127632       0   127632   0% /dev/shm
/dev/hdc7         1510032   41484   1391840   3% /tmp
/dev/hdc5         2016016   1659556   254048 87% /usr
/dev/hdc3         5036316   2579260   2201224 54%


top命令
功能:实时显示 process 的动态
语法:top [-] [d delay] [q] [c] [S] [s] [n]
参数:
d : 改变显示的更新速度。
q : 没有任何延迟的显示速度,超级用户使用时 top以最高的优先序执行
c : 两种显示模式切换:显示文件名;显示完整路径与文件名
S : 累积模式,将己完成或消失的子行程 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 配合 “n” 参数使用,可以将 top 的结果输出到档案内
例:显示更新十次后退出 ;   top -n 10


crontab命令
功能:crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
语法:
crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }


crontab命令参数:
-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 寄一封信给 [email protected]:
0 17 * * 1-5 mail -s "hi" [email protected] name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"

注意 :

当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

kill命令

功能:杀死僵死的进程
说明:常规用户可以看到所有的系统进程,但他们只能终止他们自己拥有的进程。
例如:把进程为4112杀死
$ kill 4112


网络操作命令


Ifconfig

功能:用于配置网卡
语法:ifconfig命令有以下两种格式:
   ifconfig [interface]
   ifconfig interface [aftype] option | address …
说明:ifconfig的第一种格式(或使用不带任何参数的ifconfig命令)可以用来查看当前系统的网络配置情况。
例如:
$ifconfig eth0 159.226.139.234 netmask 255.255.255.192 up

常用选项说明:
hw class addr 设置指定接口设备的MAC地址,关键字的后面必须跟硬件名或者与之等价的ASCII码。目前支持的硬件类有ether, ax25, ARCnet和 netrom。
broadcast address 广播地址通常源于网络编号,通过设置主机部分的所有位得来。有的I P采用的方案有所不同:这个选项可适用于某些奇怪的环境(如果已经设置了广播地址, ifconfig就会显示出一个BROADCAST标记)。
irqaddress 设置指定接口设备使用的中断行
address 设置指定接口设备的IP地址。
dstaddr adderss 为PPP设置远程IP地址,此关键字可用pointopoint代替。



netstat
功能:显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作
语法:netstat [选项]
命令中各选项的含义如下:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同“ifconfig -e”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。


nslookup

功能:nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。
语法:nslookup [IP地址/域名]
[例]在本地机上使用nslookup命令。
[root@linux wzm]# nslookup 159.226.139.234
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:       159.226.139.1
Address:     159.226.139.1#53
Non-authoritative answer:
234.139.226.159.in-addr.arpa   name = linux.xab.ac.cn.
Authoritative answers can be found from:
139.226.159.in-addr.arpa     nameserver = ms.xab.ac.cn.
ms.xab.ac.cn   internet address = 159.226.139.1


ping命令

功能:ping命令用于查看网络上的主机是否在工作,它向该主机发送ICMP ECHO_REQUEST包。有时我们想从网络上的某台主机上下载文件,可是又不知道那台主机是否开着,就需要使用ping命令查看。
语法:ping [选项] 主机名/IP地址
命令中各选项的含义如下:
-c 数目 在发送指定数目的包后停止。
-f 大量且快速地送网络封包给一台机器,看它的回应。
-I 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。


-l 次数 在指定次数内,以最快的方式送封包数据到指定机器(只有超级用户可以使用此选项)。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 不经由网关而直接送封包到一台机器,通常是查看本机的网络接口是否有问题。
-s 字节数 指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
-d 设定SO_DEBUG的选项。


mail命令
功能:读取及发邮件
语法:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
说明:mail 不仅只是一个指令, mail 还是一个电子邮件程式,对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
参数:
i 忽略 tty 的中断讯号。 (interrupt)
I 强迫设成互动模式。 (Interactive)
v 列印出讯息,例如送信的地点、状态等等。 (verbose)
n 不读入 mail.rc 设定档。
s 邮件标题。
c cc 邮件地址。
b bcc 邮件地址

例如:

mail [email protected]
mail [email protected] user2
mail -s 标题 -c user1 user2 < mail txt


finger命令

功能:finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。
语法:finger [选项] [使用者] [用户@主机]
命令中各选项的含义如下:
-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
-l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
-p 除了不显示.plan文件和.project文件以外,与-l选项相同。

例如
[root@linux wzm]# finger yiluo
Login: yiluo                   Name: (null)
Directory: /home/yiluo             Shell: /bin/bash
Last login Wed Jul 21 15:39 (CST) on pts/2 from 159.226.139.150
Mail last read Sat Aug 7 11:49 2004 (CST)
No Plan.


备份与压缩命令
用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩。下面分别介绍备份与压缩的命令。


tar命令

功能:tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。
语法:tar [主选项+辅选项] 文件或者目录
说明:使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。


辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

例如
把/home目录下包括它的子目录全部做备份文件,备份文件名为test.tar。
$ tar cvf tes.tar /home
把/home目录下包括它的子目录全部做备份文件,并进行压缩,备份文件名为test.tar.gz 。
$ tar czvf test.tar.gz /home
把test.tar.gz这个备份文件还原并解压缩
$ tar zxvf test.tar.gz
查看test.tar备份文件的内容,并以分屏方式显示在显示器上。
$ tar tvf test.tar | more

gzip命令


功能:减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名




功能:减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名


gzip命令各选项的含义:


-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6



gzip命令

假设一个目录/home下有文件mm.txt、sort.txt、xx.com。
例1:把/home目录下的每个文件压缩成.gz文件。
$ cd /home
$ gzip *
$ ls
m.txt.gz sort.txt.gz xx.com.gz
例2:把例1中每个压缩的文件解压,并列出详细的信息。
$ gzip -dv *
mm.txt.gz 43.1%-----replaced with mm.txt
sort.txt.gz 43.1%-----replaced with sort.txt
xx.com.gz 43.1%-----replaced with xx.com
$ ls
mm.txt sort.txt xx.com



unzip命令



功能:用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。
语法:unzip [选项] 压缩文件名.zip
各选项的含义分别为:
  -x 文件列表 解压缩文件,但不包括指定的file文件。
 -v 查看压缩文件目录,但不解压。
 -t 测试文件有无损坏,但不解压。
 -d 目录 把压缩文件解到指定目录下。
 -z 只显示压缩文件的注解。
 -n 不覆盖已经存在的文件。
 -o 覆盖已存在的文件且不要求用户确认。
 -j 不重建文档的目录结构,把所有文件解压到同一目录下。

例1:将压缩文件text.zip在当前目录下解压缩。
$ unzip text.zip
例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
$ unzip -n text.zip -d /tmp
例3:查看压缩文件目录,但不解压。
$ unzip -v text.zip

你可能感兴趣的:(linux,login,网络,file,user,终端)