Linux常用命令及使用技巧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令及使用技巧相关的知识,希望对你有一定的参考价值。

本文重点讲述Linux命令的使用,命令是学习Linux必须熟练掌握的一个部分。Linux下的命令大概有600个,而常用的命令其实只有80个左右,这些常用的命令是需要灵活掌握的。虽然Linux的各个发行版大同小异,但是常用命令基本相同,因此只要掌握了常用的Linux命令,就能融会贯通、触类旁通各个Linux版本了。本章通过分类的方式详细介绍常用命令的使用语法与技巧。

4.1 Linux下的shell简介

4.1.1 什么是shell(略)

4.1.2 shell命令的语法分析

Linux下的各种shell的主要区别在于命令行的语法。对于一些普通的命令,各个shell版本的语法基本相同,只有在编写一个shell脚本或者使用一些shell高级特性的时候,各个版本shell的差异才会显示出来。

shell语法分析是指shell对命令的扫描处理过程,也就是,把命令或者用户输入的内容分解成要处理的各个部分的操作。在Linux系统下,shell语法分析包含很多内容,如重定向、文件名扩展和管道等。

本节以bash为例,介绍shell命令的语法分析。

1.shell的命令格式

用户登录系统后,shell命令行启动。shell遵循一定的语法格式将用户输入的命令进行分析解释并传递给系统内核。shell命令的一般格式为:

command [options] [arguments]

其中,

  • command:表示命令的名称。
  • options:表示命令的选项。
  • arguments:表示命令的参数。

根据习惯,我们一般把具有以上格式的字符串称为命令行。命令行是用户与shell之间对话的基本单位。

在命令行中,选项是包含一个或多个字母的代码,主要用于改变命令的执行方式。一般在选项前面有一个“-”符号,用于区别参数。例如:

[[email protected] ~]#ls -a

ls命令加上-a选项后,列出当前目录下的所有文件(包含隐藏文件)。如果ls不加“-a”选项,则仅仅显示当前目录下的文件名和目录(不显示隐藏文件)。

一般命令都有很多选项,可以单独列出它们,也可以在“-”后面把需要的选项都列出来,例如:

ls–a –l

也可以写成:

ls–al

很多命令都可以接受参数。参数就是在选项后面紧跟的一个或多个字符串,这些字符串指定命令的操作对象,如文件或者目录。例如,要显示/etc目录下的所有文件及信息,可用以下命令。

[[email protected] ~]#ls –al  /etc

特殊情况下,有些命令可以不带参数,例如ls命令,而有些必须带参数。当参数不够时,shell就会给出错误提示。例如,mv命令至少需要两个参数。

[[email protected] ~]#mv  mylinux1.txt  mylinux.txt

在shell的一个命令行中,还可以输入多个命令,用分号将各个命令分开,例如:

[[email protected] ~]#ls –al;cp mylinux1.txt  mylinux2.txt

相反,也可以在多行中输入一个命令,用“\”将一个命令持续到下一行。

[[email protected] ~]#cp –i >mylinux1.txt >mylinux2.txt

2.shell的通配符

通配符主要是为了方便用户对文件或者目录的描述,例如,当用户仅仅需要以“.sh”结尾的文件时,使用通配符就能很方便地实现。各个版本的shell都有通配符,这些通配符是一些特殊字符,用户可以在命令行的参数中使用这些字符,进行文件名或者路径名的匹配。shell将把与命令行中指定的匹配规则符合的所有文件名或者路径名作为命令的参数,然后执行这个命令。

bash中常用的通配符有“*”、“?”、“[]”。

(1)“*”——匹配任意一个或多个字符

例如:

[[email protected] ~]#ls *.txt

这条命令列出当前目录中所有以“.txt”结尾的文件(除去以“.”开头的文件)。

[[email protected] ~]#cp doc/* /opt

这条命令表示将doc目录下的所有文件(除去以“.”开头的文件)复制到/opt目录下。

[[email protected] ~]#ls –al /etc/*/*.conf

这条命令列出/etc目录的子目录下所有以“.conf”结尾的文件。在/etc目录下以“.conf”结尾的文件将不会列出。

(2)“?”——匹配任意单一字符

例如:

[[email protected] ~]#ls ab?.txt

这条命令列出当前目录下以ab开头,随后一个字母是任意字符,接着以“.txt”结尾的文件。

[[email protected] ~]#ls ab??.txt

这条命令列出当前目录下以ab开头,随后的两个字母是任意字符,接着以“.txt”结尾的文件。

(3)“[]”——匹配任何包含在方括号内的单字符

例如:

[[email protected] ~]#ls /dev/sda[12345]
/dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sda5

上面的命令列出了在/dev目录下以sda开头,第4个字符是1、2、3、4或5的所有文件。

[[email protected] ~]#ls /dev/sda[1-5]

在方括号中“1-5”给出了匹配的范围,与上面一条命令完全等效。

(4)通配符的组合使用

在Linux下,通配符也可以组合使用,例如:

[[email protected] ~]#ls [0-9]?.conf

这条命令列出当前目录下以数字开头,随后一个是任意字符,接着以“.conf”结尾的所有文件。

[[email protected] ~]#ls [xyz]*.txt

这条命令列出当前目录下以x、y或z开头,最后以“.txt”结尾的文件。

3.shell的重定向

Linux下系统打开3个文件,即标准输入、标准输出和标准错误输出。用户的shell将键盘设为默认的标准输入,默认的标准输出和标准错误输出为屏幕。也就是,用户从键盘输入命令,然后将结果和错误消息输出到屏幕。

所谓的重定向,就是不使用系统默认的标准输入/输出,而是重新指定,因此重定向分为输入重定向、输出重定向和错误输出重定向。要实现重定向就需要了解重定向操作符,shell就是根据重定向操作符来决定重定向操作的。

(1)输入重定向

输入重定向用于改变命令的输入源,利用输入重定向,就可以将一个文件的内容作为命令的输入,而不从键盘输入。

用于输入重定向的操作符有“<”和“<<”。例如:

[[email protected] ~]#wc</etc/shadow
40   40 1169

这里用wc命令统计输入给它的文件/etc/inittab的行数、单词数和字符数。

还有一种输入重定向操作符“<<”。这种重定向告诉shell,当前命令的标准输入为来自命令行中一对分隔号之间的内容。例如:

[[email protected] ~]#wc<< aa
> # Default runlevel. The runlevels used by RHS are:
> #   0 - halt (Do NOT set initdefault to this)
> #   1 - Single user mode
> #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
> #   3 - Full multiuser mode
> #   4 - unused
> #   5 - X11
> #   6 - reboot (Do NOT set initdefault to this)
>aa
8  65 303

上面的命令将一对分隔号aa之间的内容作为wc命令的输入。分隔号可以是任意字符。shell将在第一个分隔号后开始读取内容,直到出现另一个分隔号读取结束,然后将内容送给wc命令处理。

(2)输出重定向

输出重定向不是将命令的输出结果在屏幕输出,而是输出到一个指定文件中。

在Linux下输出重定向用得很多。例如,某个命令的输出很长,一个屏幕无法显示完毕,这时可以将命令的输出指定到一个文件,然后用more命令查看这个文件,从而得到命令输出的完整信息。

用于输出重定向的操作符有“>”和“>>”。例如:

[[email protected] ~]#ps –ef >ps.txt

这条命令将ps –ef输出的系统运行进程信息全部输入到了ps.txt文件,而不输出到屏幕,可以用more命令查看ps.txt文件中系统运行的进程信息。

[[email protected] ~]#more file1 file2 file3 >file

其中,more命令用于查看文件的内容,上面的命令是将file1、file2和file3的内容全部输出到file文件中,类似于文件内容的合并。

如果在“>”后面指定的文件不存在,shell就会自动重建一个;如果文件存在,那么这个文件原有的内容将被覆盖;如果不想覆盖存在的文件,可以使用“>>”操作符。例如:

[[email protected] ~]#ls –al /etc/* >>/root/install.log

这条命令将/etc目录及其子目录下的所有文件信息追加到/root/install.log文件的后面。/root/install.log文件原来的内容仍然存在。

(3)错误重定向

错误重定向和标准输出重定向一样,可以使用操作符“2>”和“2>>”实现对错误输出的重定向。例如:

[[email protected] ~]#tar zxvf text.tar.gz 2> error.txt

其中,tar是打包命令,可以在屏幕上看到tar的解压过程。如果“text.tar.gz”是个损坏的压缩包,就会把错误消息输出到error.txt文件。

4.shell的管道

管道可以把很多命令连接起来,可以把第1个命令的输入当作第2个命令的输出,第2个命令的输出当作第3个命令的输入,依此类推。因此,管道的作用就是把一个命令的输出当作下一个命令的输入,而不经过任何中间文件。

通过管道符“|”可以建立管道连接,例如:

[[email protected] ~]#ls -al /etc/* |more

这条命令表示将/etc目录以及子目录下的所有文件分屏显示。

[[email protected] ~]#ps -ef|grep httpd|wc –l

这个命令用于查看系统中正在运行的httpd进程,并统计httpd的进程数。

5.shell中的引用

在bash中有很多特殊字符,这些字符本身就具有特殊含义。如果在shell的参数中使用它们,就会出现问题。Linux中使用了“引用”技术来忽略这些字符的特殊含义,引用技术就是通知shell将这些特殊字符当作普通字符处理。shell中用于引用的字符有转义字符“\”、单引号“‘”、双引号“""”。

(1)转义字符“\”

如果将“\”放到特殊字符前面,shell就忽略这些特殊字符的原有含义,把它们当作普通字符对待,例如:

[[email protected] ~]#ls
abc?*  C:\backup
[[email protected] ~]#mv abc\?\*  abc
[[email protected] ~]#mv C\:\\backup backup

上面是将abc?*重命名为abc,将C:\backup重命名为backup。因为文件名中包含特殊字符,所以都使用了转义字符“\”。

(2)单引号“‘”

如果将字符串放到一对单引号之间,那么字符串中所有字符的特殊含义将被忽略,例如:

[[email protected] ~]#mv C\:\\backup backup
[[email protected] ~]#mv ‘C:\backup‘  backup

上面两条命令完全等效。

(3)双引号“""”

双引号的引用与单引号基本相同,包含在双引号内的大部分特殊字符可以当作普通字符处理,但是仍有一些特殊字符即使用双引号括起来,也仍然保留自己的特殊含义,比如“$”、“\”和“`”。

[[email protected] ~]#str="The \$SHELL Current shell is $SHELL"
[[email protected] ~]#str1="\$$SHELL"
[[email protected] ~]#echo $str
The $SHELL Current shell is /bin/bash
[[email protected] ~]#echo $str1
$/bin/bash

从上面的输出可以看出,“$”和“\”在双引号内仍然保留了特殊含义。

[[email protected] ~]# str="This hostname is `hostname`" 
[[email protected] ~]# echo $str
This hostname is WEBServer

上面的输出中,字符“`”在双引号中也保留了自己的特殊含义。

6.shell的自动补全命令行

自动补全命令行是bash一个简单而且实用的功能,自动补全命令行也就是在输入命令时不必把命令输全,shell就能智能判断用户所要输入的命令。

当用户输入某个命令的一部分后,按Tab键,shell就会根据系统环境变量信息提示出与用户输入命令相似的所有命令和文件,例如:

[[email protected] ~]# if<按Tab键>
if    ifcfg    ifconfig   ifdown    ifenslave  ifnames    ifrename   ifup  
[[email protected] ~]# if

可以从上面看到,用户输入“if”后按Tab键,即可显示以“if”为前缀的所有命令和文件。如果需要的是ifconfig命令,那么只须再次输入“co”,然后按Tab键,shell就能补全命令。

如果我们要进入一个很深的目录中,并且每个目录的名字又很长,此时利用bash的自动补全功能,就再好不过了。

4.2 系统管理与维护

4.2.1 ls命令

1.功能说明

ls命令显示指定工作目录下的内容,列出工作目录所含的文件及子目录。此命令与Windows下的dir类似。另外,Linux也提供了dir命令,用户也可以用dir命令代替ls命令。ls的语法如下。

ls [选项] [路径或文件]

ls的选项及其说明如表4.1所示。

表4.1 ls的选项及其说明

选 项

说 明

-a

显示指定目录下的所有文件以及子目录,包含隐藏文件(Linux下将“.”开头的文件或者目录视为隐藏文档)

-d

只显示目录列表,不显示文件

-l

除文件名称外,同时将文件或者子目录的权限、使用者和大小等信息详细列出

-s

在每个文件名后输出该文件的大小

-k

以k字节的形式表示文件的大小

-u

以文件上次被访问的时间排序

-t

以时间排序

-o

显示除组信息外的详细信息

-x

按列输出,横向排序

-r

对目录反向排序

-q

用“?”代替不可输出的字符

-m

横向输出文件名,并以“,”作为分格符

-S

以文件大小排序

-R

列出所有子目录下的文件

-pF

在每个文件名后附上一个字符以说明该文件的类型。“*”表示可执行的普通文件,“/”表示目录,“@”表示符号链接,“ | ”表示FIFO,“=”表示套接字(socket)

-C

按列输出,纵向排序

-R

列出所有子目录下的文件

-Q

把输出的文件名用双引号括起来

2.举例(略)

4.2.2 pwd命令

功能说明

显示当前的工作目录,执行pwd指令可立刻得知目前所在的工作目录的绝对路径名称,pwd命令的语法如下。

pwd

4.2.3 cd命令

1.功能说明

改变当前工作目录,其用法与Windows下的cd类似。具体的语法格式如下。

cd  [目录名]

cd命令的选项及其说明如表4.2所示。

表4.2 cd命令的选项及其说明

选 项

说 明

cd [目录]

切换到有目录名指定的目录下,注意,Linux下文件和目录是区分大小写的

cd 或者cd ~

返回当前用户的默认工作目录,注意,cd与“~”之间有一个空格

cd ~[用户名]

返回指定用户的工作目录下,注意,这里“~”和用户名之间没有空格

cd ..或者cd ../

返回到上级工作目录下

cd /

返回到根目录下

2.举例(略)

4.2.4 date命令

1.功能说明

显示或者修改系统时间与日期。只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。date命令的语法如下。

date [选项] 显示时间格式(以+开头,后面接时间格式)

date命令的选项及其说明如下。

  • -s --set:设置系统时间。
  • -d --date:显示描述的日期。

时间显示格式如表4.3所示。

表4.3 时间显示格式

格 式

表 示 含 义

%H

显示小时,表示范围00~23

%I

显示小时,表示范围01~12

%k

显示小时,表示范围0~23

%l

显示小时,表示范围1~12

%M

显示分钟,显示格式为00~59

%S

显示秒钟,显示格式为00~59

%p

显示是AM(上午)还是PM(下午)

%r

显示时间,格式为hh:mm:ss AM或PM,其中hh代表小时,mm代表分钟,ss代表秒

%T

显示时间,格式为hh:mm:ss

%x

显示年份和日期,格式为mm/dd/yyyy,这里的yyyy代表年份

%X

显示时间格式,相当于%H:%M:%S的组合

%a

显示星期几

%b或%B

显示月份,%b是月的简称,%B是显示月的全称

%m

显示月份,表示格式为从01~12

%Z

显示时区

%d

显示一个月的第几天

%D

显示年份和月份,格式为mm/dd/yy,这里yy代表年份的最后两个数字

%Y或%y

显示年份,%Y显示完整的年份,%y显示年份的最后两个数字

%c

显示日期和时间格式,相当于“%a %d %b %Y %r %Z”的组合

2.举例(略)

4.2.5 passwd命令

1.功能说明

用于设置用户密码。语法格式如下。

passwd [用户名]

2.举例(略)

4.2.6 su命令

1.功能说明

su命令主要用于改变用户身份,其格式如下。

su [选项] [用户名]

su命令的选项及其说明如表4.4所示。

表4.4 su命令的选项及其说明

选 项

说 明

-

加载相应用户下的环境变量

-l

使目前的shell成为改变身份后用户默认的shell

-c

改变身份运行一个指令后就结束

-m

改变用户身份,但是不改变环境变量

2.举例(略)

4.2.7 clear命令

功能说明

clear命令用来清除屏幕信息,格式如下。

clear

4.2.8 man命令

1.功能说明

man命令用来显示指定命令的帮助信息,其格式如下。

man [命令名称]

2.举例(略)

4.2.9 who命令

1.功能说明

who命令显示目前登录到系统的用户,其格式如下。

who [选项] [file]

who命令的一般输出格式如下。

名称 [状态] 终端 时间 [活动] [进程标识](主机名)
  • 名称:用户的登录名。
  • 状态:表明终端是否对用户都是可写的。
  • 终端:类似于pts/1、pts/2等,此终端标识在/dev目录中可找到。
  • 时间:用户登录系统的时间。
  • 活动:某个用户在自己的终端上最后一次活动发生以来到现在的时间,如果此项是个“.”,就表示一分钟内的终端活动;如果终端保持静止已经超过24小时或自从系统启动以来还没有被使用过,那么此项标记为“old”。
  • 进程标识:用户登录shell的进程id。
  • 主机名:登录到Linux系统上的客户端机器标识。

who命令的选项及其说明如表4.5所示。

表4.5 who命令的选项及其说明

选 项

说 明

-a

列出所有信息,相当于所有选项

-b

列出系统最近启动的日期

-l

列出所有可登录的终端信息

-m

仅列出关于当前终端的信息。“who –m”命令等同于“who am i”和“who am I”命令

-q

列出在本地系统上的用户和用户数的清单

-r

显示当前系统的运行级别

-s

仅显示名称、终端和时间字段信息。这是who默认的输出,即“who”和“who –s”命令是等效的

-u

显示当前每个用户的用户名、登录终端、登录时间、终端活动和进程标识

-T或-w

显示tty终端的状态,“+”表示对任何人可写,“-”表示仅对root用户或所有者可写,“?”表示遇到终端故障

在Linux下who通常通过/var/run/utmp文件来获取信息,如果“[file]”选项指定另一个文件,则who命令不再默认读取/var/run/utmp文件,而是读取指定文件来获取信息。

2.举例(略)

4.2.10 w命令

1.功能说明

用于显示登录到系统的用户信息,其格式如下。

w [选项] [用户]

w命令的选项及其说明如表4.6所示。

表4.6 w命令的选项及其说明

选 项

说 明

-h

不显示输出信息的标题

-l

用长格式输出

-s

用短格式输出,不显示登录时间、JCPU和PCPU时间

-V

显示版本信息

[用户]表示当指定用户后,只显示该用户的信息。

2.举例(略)

4.2.11 uname命令

1.功能说明

uname命令用来显示操作系统相关信息。其格式如下。

uname [选项]

uname命令的选项及其说明如表4.7所示。

表4.7 uname命令的选项及其说明

选 项

说 明

-a

显示操作系统全部信息

-m

显示系统CPU类型,是32位还是64位系统

-n

显示操作系统的主机名

-s

显示操作系统类型

-r

显示操作系统内核版本

2.举例(略)

4.2.12 uptime命令

1.功能说明

uptime命令用来输出系统任务队列信息,其格式如下。

uptime

uptime输出当前系统时间、系统开机到现在的运行时间、目前有多少用户在线和系统平均负载等。

2.举例(略)

4.2.13 last命令

功能说明

列出目前与过去登入系统的用户相关信息。当执行last指令时,它会默认读取位于/var/log目录下名称为wtmp的文件,并把该给文件记录的登入系统的用户名单全部显示出来。

last [选项] [-n 显示列数]

last命令的选项及其说明如表4.8所示。

表4.8 last命令的选项及其说明

选 项

说 明

-a

把从何处登入系统的主机名称或IP地址显示在最后一行

-R

不显示登入系统的主机名称或IP地址

-x

显示系统关机、重新开机以及执行等级的改变等信息

-n <显示列数>或-<显示列数>

设置列出名单的显示列数

-d

将显示的IP地址转换成主机名称

4.2.14 dmesg命令

功能说明

显示开机信息。内核会将开机信息存储在系统缓冲区(ring buffer)中,如果开机来不及查看相关信息,可以在开机后利用dmesg命令查看,也可以在/var/log/目录中查看dmesg文件。其格式如下。

dmesg [选项]

dmesg命令的选项及其说明如表4.9所示。

表4.9 dmesg命令的选项及其说明

选 项

说 明

-c

显示开机信息后,清除ring buffer信息

-s

设置缓冲区大小,默认设置为8192

-n

设置记录信息的层级

4.2.15 free命令

1.功能说明

free命令用来显示系统内存状态,具体包括系统物理内存、虚拟内存、共享内存和系统缓存。其格式如下。

free [选项] [-s (间隔秒数)]

free命令的选项及其说明如表4.10所示。

表4.10 free命令的选项及其说明

选 项

说 明

-b

以字节为单位显示内存使用情况

-m

以MB为单位显示内存使用情况

-K

以KB为单位显示内存使用情况

-t

显示内存总和列

-s(间隔秒数)

根据指定的间隔秒数持续显示内存使用情况

-o

不显示系统缓冲区列

2.举例(略)

4.2.16 ps命令

1.功能说明

ps命令显示系统进程在瞬间的运行动态,其格式如下。

ps [选项]

ps的选项非常之多,这里仅仅列出常用的选项介绍,ps命令的选项及其说明如表4.11所示。

表4.11 ps命令的选项及其说明

选 项

说 明

a

显示所有用户的进程,包含每个程序的完整路径

-x

显示所有系统程序,包括那些没有终端的程序

-u

显示使用者的名称和起始时间

-f

详细显示程序执行的路径群

-c

只显示进程的名称,不显示进程的完整路径

-e

将除内核进程以外所有进程的信息写到标准输出

2.举例(略)

4.2.17 top命令

top命令提供了对系统处理器状态的实时监控,它能够实时显示系统中各个进程的资源占用状况。该命令可以按照对CPU的使用、内存使用和执行时间对系统任务进程进行排序显示,同时top命令还可以通过交互式命令进行设定显示。

1.功能说明

查看即时活跃的进程,类似于Windows的任务管理器。其格式如下。

top [选项]

top的选项很多,这里列出常用的选项及其说明,如表4.12所示。

表4.12 top命令的选项及其说明

选 项

说 明

-d

指定每两次屏幕信息刷新之间的时间间隔

-i

不显示闲置或者僵死的进程信息

-c

显示进程的整个命令路径,而不是只显示命令名称

-s

使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险

-b

分屏显示输出信息,结合“-n”选项可以将屏幕信息输出到文档

-n

top输出信息更新的次数,完成后将退出top命令

除了一些选项之外,top命令还有很多交互式命令。交互式命令就是在top命令执行过程中使用的一些命令,这些命令都是单个字母,从应用来讲,熟悉这些交互式命令至关重要。

表4.13所示为交互式命令及其具体说明。

表4.13 交互式命令及其说明

交互式命令

说 明

h或?

显示帮助信息,给出交互式命令的一些说明总结

k

终止一个进程,系统将提示用户输入一个需要终止进程的PID

i

忽略闲置进程和僵死进程,这是一个开关式命令

s

改变top输出信息两次刷新之间的时间,系统将提示输入新的时间,单位是秒。如果输入小数,就换算成毫秒;如果输入0,系统输出将不断刷新,默认刷新时间是5秒。需要注意的是,如果设置太短的时间,可能会引起系统不断刷新,无法看清输出显示情况,而且系统负载也会加大

o或者O

改变top输出信息中显示项的顺序。按小写的a~z键可以将相应的列向右移动,而按大写的A~Z键可以将相应的列向左移动。最后按Enter键确定

f或者F

从当前显示列表中添加或者删除项。按f键之后会显示列的列表,按a~z键即可显示或隐藏对应的列。最后按Enter键确定

m

切换显示内存信息

t

切换显示进程和CPU状态信息

r

重新设置一个进程的优先级,系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10

l

切换显示平均负载和启动时间信息

q

退出top显示

c

切换显示完整命令行和命令名称信息

M

根据驻留内存大小进行排序输出

P

根据CPU使用百分比大小进行排序输出

T

根据时间/累计时间进行排序输出

S

切换到累计模式

W

将当前top设置写入~/.toprc文件中

2.举例(略)

4.3 文件管理与编辑

4.3.1 mkdir命令

1.功能说明

mkdir命令用于创建一个目录。mkdir是make directory的缩写。其格式如下。

mkdir [选项] 目录名

mkdir命令的选项及其说明如表4.14所示。

表4.14 mkdir命令的选项及其说明

选 项

说 明

-m

对新建目录设置存取权限

-p

可以指定一个路径名称。此时,若路径中的某些目录尚不存在,加上此选项后,系统将自动创建那些尚不存在的目录,也就是说,一次可以创建多个目录

2.举例(略)

4.3.2 more命令

1.功能说明

如果一个文本文件比较长,一屏无法显示完毕,就需要使用more命令。more命令读取文本文件时,每次显示一屏,并且在每屏后暂停,同时在屏幕底部显示单词“More”。如果此时按Enter键,more命令就会接着再显示文本的一行,依此类推;如果按空格键,more命令就继续显示文本文件的另一屏信息。其格式如下。

more [选项] 文件名

more命令的选项及其说明如表4.15所示。

表4.15 more命令的选项及其说明

选 项

说 明

-d

在屏幕底部more提示符后显示友好信息,此信息是有关使用哪些键继续,哪些键退出,哪些键提供more命令帮助的

-s

将输出文件中的多个空行减少为只有一个空行输出。以文件的第1行为准

-p

先清除显示屏以前的信息,再显示文本信息

-c

显示文件时,每屏显示都清除屏幕先前的信息,然后从最顶端显示出来

2.举例(略)

4.3.3 cat命令

1.功能说明

cat命令用来将文件的内容输出到标准输出,类似于DOS下的type命令,同时cat还可以用于连接合并文件。其格式如下。

cat [选项] 文件名

或者:

cat 文件1  文件2 >文件3

cat命令的选项及其说明如表4.16所示。

表4.16 cat命令的选项及其说明

选 项

说 明

-A

将文件中的制表符显示为“^I”,同时在每行的末尾显示一个$符号

-b

将文件中的所有非空行按顺序编号,编号从1开始

2.举例(略)

4.3.4 diff命令

1.功能说明

diff命令用来比较文件的差异。diff以逐行的方式比较文本文件的异同,如果指定比较的是目录,则diff会比较目录中相同文件名的文件,但不会比较其中的子目录。其格式如下。

diff [选项]  文件1  文件2

diff命令的选项及其说明如表4.17所示。

表4.17 diff命令的选项及其说明

选 项

说 明

-c

显示全部内容,并标出不同之处

-b

忽略行尾的空格,同时字符串中的一个或多个空格都将视为相同

-r

当文件1和文件2为目录时,会比较子目录中的文件

-s

当两个文件相同时,显示文件的相同信息

2.输出格式

通常输出信息由如下格式组成。

n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4

其中,字母a、d、c之前的n1和n2代表文件1的行号,字母a、d、c之后的n3和n4代表文件2的行号,字母a、d、c分别表示附加、删除和修改操作。在上面输出形式的每行后紧跟着两个文件的若干不同行,其中以“<”打头的行属于文件1,以“>”打头的行属于文件2。

3.举例(略)

4.3.5 grep命令

1.功能说明

grep命令是Linux下的文本过滤工具,grep根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容。其格式如下。

grep [选项] 需要查找的字符串文件名

grep命令的选项有很多,这里列出最常使用的选项说明,如表4.18所示。

表4.18 grep命令的选项及其说明

选 项

说 明

-A NUM

除了列出符合条件的行外,同时列出每个符合条件行的后NUM行

-c

只显示符合条件的行数,而不显示每行的具体信息

-f file

事先将要搜索的样式写入一个文件中,每行一个样式,然后以这个文件作为条件进行搜索

-i

搜索时忽略大小写

-n

在搜索结果中显示行号

-B

与选项“-A”相反,除了列出符合条件的行外,同时列出每个符合条件行的前NUM行

2.举例(略)

4.3.6 rm命令

功能说明

rm命令用来删除某个目录及其下的所有文件及子目录。对于链接文件,只是断开了链接,原文件保持不变。其格式如下。

rm [选项] 文件或者目录

rm命令的选项及其说明如表4.19所示。

表4.19 rm命令的选项及其说明

选 项

说 明

-r

告诉rm将选项中列出的全部目录以及子目录还有文件均递归地删除,如果在选项中不指定“-r”选项,“rm”命令将不能删除目录

-f

忽略不存在的问题,也不给出提示

-i

交互式删除,即在删除前进行确认

 

注意

 使用rm命令要特别小心,“rm-rf”组合要慎用,因为一旦文件被删除,就不能被恢复。Linux没有类似于Windows的回收站。因此,为了防止文件或者目录被误删除,可以使用rm的“-i”选项,来逐个确认要删除的文件。使用“-i”选项时,如果用户输入“y”,文件将被删除;如果输入其他任何信息,文件则不被删除。

4.3.7 touch命令

1.功能说明

touch命令用来改变指定文件的访问时间和修改时间,若指定文件不存在则创建此文件。如果没有指定时间,则使用当前时间。其格式如下。

touch [选项] 设定的时间文件

touch命令的选项及其说明如表4.20所示。

表4.20 touch命令的选项及其说明

选 项

说 明

-a

改变文件的访问时间为系统当前时间,无须设置时间选项

-m

改变文件的修改时间为系统当前时间,无须设置时间选项

-c

如果文件不存在,不创建也不提示

-d或者-t

使用指定的日期或时间

-r<参考文件或目录>

把指定文件或目录的日期、时间都设成和参考文件或目录的日期、时间相同

2.举例

下面是touch命令的一个操作实例,“#”号后面的内容为命令注释。

[[email protected]~]# touch test.txt#创建一个文件test.txt
[[email protected]~]# ls -l#显示文件创建时间(修改时间)
total 0
-rw-r--r--  1 root root 0 Jul 18 06:44 test.txt
[[email protected]~]# ls –lu#显示文件的访问时间
total 0
-rw-r--r--  1 root root 0 Jul 18 06:44 test.txt
[[email protected]~]# date     #显示系统当前时间
Fri Jul 18 06:45:21 CST 2008
[[email protected]~]# touch -a test.txt #改变文件的访问时间为系统当前时间
[[email protected]~]# ls -lu
total 0
-rw-r--r--  1 root root 0 Jul 18 06:45 test.txt
[[email protected]~]# ls -l 
total 0
-rw-r--r--  1 root root 0 Jul 18 06:44 test.txt
[[email protected]~]# touch -m test.txt  #改变文件的修改时间为系统当前时间
[[email protected]~]# ls -l
total 0
-rw-r--r--  1 root root 0 Jul 18 06:46 test.txt
[[email protected]~]# touch linux.txt
[[email protected]~]# ls -l
total 0
-rw-r--r--  1 root root 0 Jul 18 06:47 linux.txt
-rw-r--r--  1 root root 0 Jul 18 06:46 test.txt
[[email protected]~]# ls -lu  
total 0
-rw-r--r--  1 root root 0 Jul 18 06:47 linux.txt
-rw-r--r--  1 root root 0 Jul 18 06:45 test.txt
[[email protected]~]# touch -a -r linux.txt  test.txt 
#将test.txt文件的访问时间修改为linux.txt文件的访问时间
[[email protected]~]# ls -lu
total 0
-rw-r--r--  1 root root 0 Jul 18 06:47 linux.txt
-rw-r--r--  1 root root 0 Jul 18 06:47 test.txt
[[email protected]~]# touch -d "20080718 06:40" linux.txt 
#将linux.txt文件的修改时间设定为2008年7月18日6点40分
[[email protected]~]# ls -l
total 0
-rw-r--r--  1 root root 0 Jul 18 06:40 linux.txt
-rw-r--r--  1 root root 0 Jul 18 06:46 test.txt

4.3.8 ln命令

1.功能说明

ln命令用来在文件或目录之间创建链接。

Linux下的链接有两种,一种是硬链接(Hard Link),另一种是符号链接(Symbolic Link),默认情况下ln命令产生的是硬链接。

  • 硬链接:是指通过文件的inode来进行链接。在Linux的文件系统中,保存在磁盘的所有类型的文件都会分配一个编号,这个编号称为inode号(Inode Index)。多个文件指向同一个inode在Linux系统中是允许的,这就是所谓的硬链接。硬链接的作用是允许一个文件拥有多个有效的路径名,这样用户就可以对一些重要文件建立硬链接,以防止误删除操作。因为对应该文件的inode有一个以上的链接,所以只删除一个链接并不影像inode本身和其他链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会释放,也就是说,此时文件才会被真正删除。
  • 符号链接:也叫软链接,软链接类似于Windows中的快捷方式,因此软链接是一个指向真正的文件或者目录位置的符号连接。

ln命令的格式如下。

ln [选项] 源文件目标链接名

ln命令的选项及其说明如表4.21所示。

表4.21 ln命令的选项及其说明

选 项

说 明

-f

如果在目标位置存在与链接名相同的文件,这个文件将被删除

-s

进行软链接

-d

允许系统管理员硬链接自己的目录

-b

对将在链接时会被覆盖或者删除的文件进行备份

2.举例(略)

4.3.9 file命令

1.功能说明

file命令用来显示文件的类型。对于长度为0的文件,将识别为空文件;对于符号连接文件,默认情况下将显示符号链接引用的真实文件路径。其格式如下。

file [选项] 文件名

file命令的选项及其说明如表4.22所示。

表4.22 file命令的选项及其说明

选 项

说 明

-b

显示文件类型结果,不显示对应文件名称

-L

直接显示符号链接所指向文件的类型

-z

显示压缩文件的信息

-i

如果文件不是常规文件,则不进一步对文件类型进行分类

2.举例(略)

4.3.10 cp命令

1.功能说明

cp命令用来将给出的文件或者目录复制到另一个文件或者目录中。cp与Windows下的copy命令类似,但是cp命令更加强大。其格式如下。

cp [选项] 源文件或目录目标文件或目录

cp命令的选项及其说明如表4.23所示。

表4.23 cp命令的选项及其说明

选 项

说 明

-a

在复制目录时使用。它保留所有的信息,包含文件链接、文件属性,并递

以上是关于Linux常用命令及使用技巧的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用管理命令

linux下crontab命令的使用

linux常用命令及使用技巧

kali linux下的常用bash命令

Linux系统下的文件管理类常命令及使用方式

linux常用命令多少个

(c)2006-2024 SYSTEM All Rights Reserved IT常识