Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。Linux操作命令的一个特点就是命令参数选项很多,全部记住难度很大。我们学习的关键在于理解命令的主要用途和学会使用帮助信息。

接下来,根据培训班学习计划,大致按照简单命令、文件和目录管理、用户管理三类介绍一下linux常用命令进行一下介绍,方便大家后续学习。

一.简单命令

1. man命令

功能:man命令用来详细了解某一个命令。单词“man”是“manual(手册)”的缩写,是各种命令用途说明的联机帮助页面,其中包括使用命令的格式,以及所有可供选择的选项。

格式:man[选项]命令名

说明:man命令实际上是一个文档命令,它从系统的帮助页中找到用户所需要查询的内容,然后将其显示出来。

例:查看man命令的说明信息。

# manman

用户可以用上下箭头或上下翻页来阅读相关信息。阅读完毕,按“q”键退出。


2. login命令

功能:系统登录命令。

格式:login[选项]

说明:登录时用户被允许输入十次密码,如果十次密码都没有通过,login程序自动终止。

选项参数:

name:用户登录名。

-h 主机名:由其他服务器使用,用来向远程登录的主机传输用户名。

登录时系统会提示用户输入“用户名”和“密码”,验证通过后,允许用户进入系统。在登录后执行login命令,表示由一台终端登录到另外一台终端,大多数shell都支持该命令。


3. exit命令

功能:本命令可以退出当前的shell,其作用相当于键入“Ctrl+D”。

格式:exit


4. logname命令

功能:本命令用于显示登录时的用户名。

格式:logname


5. who命令

功能:本命令用来查看系统中登录的用户。

格式:who[选项]

选项参数:

-m:查看关于自己的信息。

-q:显示用户的登录名和用户数目。

例1:查看用户自己的信息。

$ who -m

例2:显示登录的用户名和数量。

$ who -q


6. id命令

功能:本命令用来显示当前用户名和所属组名。

格式:id

例:显示当前用户名和组名。

$ id

若显示结果为

uid=0(root)  gid=0(root)  groups=0(root)

表示当前用户是root,其组名也是root。


7. passwd命令

功能:本命令用来设置用户的密码。

格式:passwd[选项]用户名

选项参数:

-x:用来设定用户密码有效的最长时间。

-n:设定用户只有n天后才可以修改密码。

-i:设置在i天后将用户的账号屏蔽掉,使用户在i天后无法登录。

-S:显示用户账号状态。

例1:用户改变自己登录的口令。

$ passwd

例2:超级用户改变其他用户的口令(假设lyc是其他用户账号)。

# passwdlyc


8. skill命令

功能:本命令用于强行将用户ID从系统中删除。

格式:skill用户ID


9. last命令

功能:本命令显示近期用户或者终端的登录情况。

格式:last[选项]

说明:不带选项的last命令是从文件/var/log/wtmp中查询近期用户或者终端的登录或离开的情况。

选项参数:

-n:指定输出记录的条数。

ID:指定查询的用户名。

例:指定显示5行登录记录。

# last -5

如果不使用-n选项,经常会不停地显示十几屏的输出,而管理员往往关心最近几次用户或终端登录的情况,因此-n选项是较为常用的选项。


10. mount命令

功能:本命令用于加载一个文件系统。

格式:mount[选项]device dir

选项参数:

–a:mount在文件/etc/fstab中列出的文件系统。

-fv:模拟mount过程并检查输出。

-F:经常与–a结合使用,同时mount多个文件系统。

-rw:设定被装载的文件系统为只读模式。

-w:设定被装载的文件系统为读写模式。

-t vfstype:设定被装载的文件系统的类型,若vfstype与实际文件系统不符,mount将会失败。


11. umount命令

功能:本命令用于卸载一个文件系统,用法与mount命令几乎完全相同。

说明:只有root级用户才有权使用mount和umount这两个命令。

格式:umount[选项]device dir

通常当mount一个文件系统后,需要使用umount命令来卸载。


12.shutdown命令

功能:关机命令。

格式:shutdown[选项]

说明:执行此命令时,每个用户都会收到一条信息,从中可以得到关机的最后期限。只有root账号才有权执行此命令。

选项参数:

-h:立即关机。

-i:在关机过程中给用户提示信息。

   -k:只发出警告信息而不真正关闭系统。

0123456122344

二.文件和目录管理

13. pwd命令

功能:pwd(print working directory)命令显示用户所在的位置。并输出当前工作目录。

格式:pwd


14. cd命令

功能:cd(change directory)命令用来改变工作目录。

格式:cd[工作目录]

说明:在使用cd进入某个目录时,用户必须具有对该目录的读权限。

cd或cd~  使用户回到登录目录;

cd /  回到整个系统的根目录;

cd/root  回到根用户或超级用户的主目录,只有根用户才能访问该目录;

cd/home   回到home目录,用户的登录目录通常贮存在此处;

Cd ..  回到上一级目录;

cd/dir1/subdir1  回到subdir1中,即dir1的子目录。

“~”表示为登录目录,“.”表示目前所在的目录,“..”表示目前目录位置的上一层目录。

例:要改换到根用户的登录目录中。

$ cd /root

如果用户没有以根用户身份登录,在访问该目录时会看到“denied permission(拒绝权限)”的提示。

拒绝到根用户和其他用户的账号(或登录目录)的访问是Linux系统防止有意或无意篡改的一种措施。要改换到根登录和根目录,使用su命令,详见3.2.5。


15. locate命令

功能:本命令用来定位文件或目录。

格式:locate字符串

说明:使用locate命令,系统将会显示每一个包含定位条件的目录或文件。

例:定位当前目录下名称中带有“fun”这个词的文件。

$ locatefun

locate命令使用数据库来定位文件或目录名中带有fun这个词的文件和目录。这个搜寻结果可能会包括一个叫做fun.txt的文件,一个叫做pfun.txt的文件,一个被命名为funails的目录等。


16.whereis命令

功能:本命令用来迅速地找到文件,还可以显示该文件的二进制文件、源代码文件和说明文件存放的位置

格式:whereis命令名

例1:查找locate命令说明文件存放的位置。

$ whereislocate

例2:查找locate命令文件存放的位置。

$ whereis–b locate


17. find命令

功能:本命令用来在硬盘上查找文件。

格式:find[选项]文件名

选项参数:

查找目录:如果查找目录为空,则在当前目录下寻找。

-name name:文件名称符合name的档案

-atime n:在过去n天内读取过的文件。

-mtime n:在过去n分钟内被读取过的文件。

例1:列出当前目录下所有扩展名是“c”的文件。

$find  -name "*.c"

例2:列出当前目录下所有最近20分钟内更新过的文件。

$ find -ctime-20


18. ls命令

功能:ls(list directory)命令用来显示用户当前或指定目录的内容。

格式:ls[选项][目录]

说明:在ls命令中还可以使用通配符“*”、“?”。这样可以使用户很方便地查找特定形式的文件和目录。如果不指定目录,将显示当前目录的内容,否则显示指定目录的内容。

选项参数:

–a:列举目录中的全部文件,包括隐藏文件。位于这个列表的起首处的“./”和“../.”依次是指父目录和用户当前目录。

-C:按列输出,纵向排列。

-d:将目录作为文件一样显示,而不显示目录下的文件。

–F:可以在每一个列举项目之后添加一个符号。其中符号“/”表明是一个目录、符号“@”表明是到其他文件的符号链接、符号“*”表明是一个可执行文件。

–l:加此参数可以列举目录内容的细节,包括权限、所有者、组、大小、创建日期、文件是否是到系统其他地方的链接,以及链接的指向。

–r:加此参数可以逆向(从后向前)地列举目录中的内容。

–s:输出文件的大小。

–t:按时间顺序对目录进行排序,新的文件排在前面。

–R:参数可以递归地列举在当前目录之下的所有目录的内容。

–S:加此参数可以按文件大小排序目录中的内容。


例1:输出当前目录下名称中有“lib”文件或目录的详细信息。

# ls–l  *lib*

显示结果为

drwxr-xr-x  130 root  root  69632 3月  10 14:07  lib

drwxr-xr-x   13 root  root   4096 3月   4 20:28  libexec

这个结果提供了许多细节信息。

1)第一列为文件模式。文件模式中第一位代表文件类型,其余九位用于三组不同用户的三组权限。文件类型有三种,其中“d”表示目录,“-(短线)”表示常规文件,“l”表示到系统上其他位置的另一个程序或文件的符号链接。

2)第二列即连接数。对文件而言,此数表示该文件在系统中保存的备份数,通常为1。对目录而言,表示的是该目录中的子目录数。

3)第三列即所有者名。指出该文件或目录是属于哪个用户的。

4)第四列即组名。指出该用户所属组名。

5)第五列即文件大小。指出该文件或目录占有的字节数。

6)第六列即最后修改日期和时间。说明文件最后一次修改或创建的日期和时间。

7)第七列即文件名。为文件或目录的真实名字。

例2:列出当前目录下所有信息。

$ ls –a

例3:列出文件的详细信息。

$ ls –l

例4:列出包括子目录下的所有文件。

$ ls -R


19. head命令

功能:head命令用来查看文件的开头部分。

格式:head[选项]文件名

选项参数:

-n:用数字n来指定要显示的行数。

本命令只限于查看文件的前几行,看不到文件实际上有多长。按照默认设置,只能阅读文件的前十行。

例:要指定显示文件“tty.txt”前20行。

$ head -20tty.txt


20. tail命令

功能:在缺省状态tail命令用于查看文件结尾的十行,与head命令恰恰相反。这有助于查看日志文件的最后十行来阅读重要的系统消息,还可以使用tail来观察日志文件被更新的过程。

格式:tail[选项]文件名

选项参数:

-f :自动实时地把打开文件中的新消息显示到屏幕上。

-n:显示文件最后n行。

例1:要即时观察/var/log/messages的变化。

# tail -f/var/log/messages

例2:显示文件“tty.txt”最后4行。

# tail –4


21. cat命令

功能:cat是“concatenate”的缩写,即合并文件。该命令可以显示文件的内容,或者是将多个文件合并成一个文件。

格式:cat文件和文件列表

例1:使用cat阅读短文。

# cattty.txt

例2:显示file1和file2,并重定向到file3。

$ catfile1 file2

$ catfile1 file2>file3

重定向就是使系统改变它所认定的标准输出,或者改变标准输出的目标。要重定向标准输出,使用“>”符号。把“>”符号放在cat命令之后(或在任何写入标准输出的工具程序和应用程序之后),会把它的输出重定向到跟在符号之后的文件中。

例3:查看Linux版本。

$ cat/etc/redhat-release


22.grep命令

功能:grep命令用于在文件中查找指定的字串。

格式:grep[选项]文件列表

说明:grep除了可以查找固定的字符串,还可以使用较为复杂的匹配模式。要实现复杂的匹配模式,需要使用如下的表达符号:

?  匹配字符串中的一个字符。

*  匹配任意个字符。

\*  匹配“*”字符。

\?  匹配“?”字符。

\) 匹配“)”字符。

选项参数:

-num:在匹配行找到后,将显示匹配行和匹配行前后num行的内容。

-A num:在匹配行找到后,将显示匹配行和匹配行后num行的内容。

-B num:在匹配行找到后,将显示匹配行和匹配行前num行的内容。

-n:在找到匹配的输出行前面加上该行在输入文件中的行数。

-s:对于不存在或者不可读的文件不输出错误信息。

文件列表:所要查询的文件和文件列表。

例:在tty.txt文件中查找每一个提到“Linux*b”的地方。

$grep  Linux\*b  tty.txt


23. cp命令

功能:cp(copy)命令可以将文件或目录复制到其他目录中,就如同DOS下的copy命令一样,功能非常强大。在使用cp命令时,需要指定源文件名与目标文件名或目标目录即可。

格式:cp[选项]源文件目标文件

选项参数:

-f:在复制过程中删除已经存在的目标文件。

-i:在复制过程中删除已经存在的目标文件时给出提示信息。

-r:递归复制所有目录,将所有的非目录内容当作文件一样复制。

-u:源文件比目标文件新或目标文件不存在则复制。

-R:递归复制整个目录。


例1:复制etc目录下单个文件passwd到根目录下。

# cp/etc/passwd ./

例2:使用通配符复制etc目录下mail开头的所有文件到根目录下。

# cp/etc/mail* ./

例3:使用-r选项复制etc目录下所有的内容,包括所有子目录到根目录下。

# cp–r/etc ./


24. touch命令

功能:使用touch命令来将文件的时间记录改为现在的时间。若文件不存在,系统会建立一个新的空白文件。

格式:touch  文件名

例:创建一个名字为 test.txt的文件。

$ touchtest.txt

如果用ls命令显示一下目录内容,会看到该文件的大小为零,这是因为它是一个空文件。


25. mv命令

功能:使用mv命令可以移动文件。

格式:mv[选项]源文件/源文件列表目标文件

选项参数:

-i:移动文件为交互模式,如果用户选择的文件会覆盖目标中的现存文件,系统会出现提示信息。

-f:移动文件为强制模式,移动文件不出现提示信息。

-u:若目标文件比源文件新,不覆盖目标文件。

例1:将文件sneakers.txt从当前目录移到主目录下的tigger目录中。

# mvsneakers.txt /tigger

例2:使用mv命令将当前目录下的intro.txt改变为in.txt。

# mvintro.txt in.txt

例3:将根目录下的etc子目录移到根目录中。

# mv/etc  /


26. rm命令

功能:本命令用来删除文件和目录。

格式:rm[选项]文件名

说明:文件或目录使用rm命令删除后,不可恢复。

选项参数:

-i:提示用户确认删除。这个选项可以避免误删文件。

-f:不提示地删除文件。

-r:将会删除某个目录及其中所有的文件和子目录。

例1:使用rm命令来删除当前目录下的文件let.txt。

# rmlet.txt

例2:删除当前目录下以let开头的文件。

# rm let*


27. mkdir命令

功能:mkdir(make directory)命令用来创建目录。

格式:mkdir[选项]目录列表

说明:用户只有对某个目录有写权限,才可以在其下建立目录。

选项参数:

-p:确定建立的每一层目录都存在,如果某一层目录不存在,则先建立这个不存在的目录。

-m:给予建立的目录以设定的权限,缺省情况下为drwxr-xr-x。

例1:在当前目录下建立新目录dir1。

# mkdirdir1

例2:若/home目录下无book目录,但是要在/home下创建book/Linux子目录。

# mkdir –p/home/book/Linux


28. rmdir命令

功能:rmdir命令用来删除目录。

格式:rmdir[选项]目录列表

选项参数:

-p:如果删除一个目录后,其父目录为空,则将其父目录一同删除。

例:删除当前目录下的book/Linux子目录

# rmdir –pbook/Linux

如果一个目录不为空,则无法删除该目录。