Linux命令基础
在Linux系统中,凡是在字符操作界面中输入的能够完成特定操作和任务的字符串,都可以称“命令”。而严格一点来说,“命令”通常只代表了实现某一类功能的指令或程序的名称。
1.Shell
Linux系统中运行的一种特殊程序
在用户和内核之间充当“翻译官”
用户登录Linux系统时,自动加载一个shell程序
Bash是Linux系统中默认使用的shell程序,文件位于/bin/bash。
2.命令分类和格式
根据Linux命令与shell程序的关系,分为:
内部命令:指的是集成于shell解释器程序(Bash)内部的一些特殊指令,也称Wie内建(Built-in)指令。内部命令属于shell的一部分,所以并没有单独对应的系统文件,只要shell解释器被运行,内部指令也就是自动载入内存了,用户可以直接使用。内部命令无需从硬盘中重新读取文件,因此执行效率较高。
外部命令:指的是Linux系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应了系统的一个文件,是属于shell解释器程序之外的命令,所以称为外部命令。Linux系统必须知道外部命令对应的文件位置,才能够由shell加载并执行
Linux系统默认会将存放外部命令、程序的目录(如/bin、/usr/bin、/usr/local/bin等)添加到用户的“搜索路径”中,当使用位于这些目录中的外部命令时,用户不需要指定具体的位置。
3.Linux命令行的格式
通用的命令行使用格式
命令字 [选项] [参数]
(英文字符区分大小写)
-
命令字
命令字即命令名称,是整条命令中最关键的一部分(在Linux的命令环境中,无论是命令名还是文件名,对英文字符的处理都是区分大小写的)
唯一确定一条命令 -
选项
选项的作用是调节命令的具体功能,决定这条命令如何执行。同一个命令配合不同的选项使用时,可以获得相似但具有细微差别的功能。
短格式选项:使用“-”符号引导(多个单字符选项可以组合在一起)
长格式选项:使用“–”符号引导
不同的命令字,其能够使用的选项也会不同(选项的个数和内容)。
选项的数量可以是多个,也可以省略。同时使用多个选项时,选项之间使用空格分隔。若不使用选项,将执行命令字的默认功能。
使用单个字符的选项时,一般在选项前使用“-”符号(半角的减号符)引导,称为短格式选项。多个单个字符选项可以组合在一起使用
使用多个字符的选项时,一般在选项前使用“–”符号(两个半角的减号符)引导,称为长格式选项。 -
参数
命令字的处理对象,通常请况下命令参数可以是文件名、目录(路径)名或用户名等内容。根据所使用命令字的不同,命令参数的个数可以是零到多个。在输入一条Linux命令时,应根据该命令字的不同,命令参数的个数可以是零到多个。在输入一条Linux命令时,应根据该命令字具体的格式提供对应的命令参数,以确保命令的正常运行。
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
编辑Linux命令行
键位 | 解释 |
---|---|
Tab键: | 自动补齐 |
反斜杠“\”: | 强制换行 |
Ctrl+U组合键: | 清空至行首 |
Ctrl+K组合键: | 清空至行尾 |
Ctrl+L组合键: | 清屏 |
Ctrl+C组合键: | 取消本次命令编辑 |
获得命令帮助的方法
内部命令help
查看shell内部命令的帮助信息
命令的“–help”选项
适用于大多数Linux外部命令
使用man命令阅读手册页
使用“↑”“↓”方向键滚动一行文本
使用page up 和page down 键翻页
按“Q”和“q”键退出阅读环境
按“\”键查找内容
在阅读man手册页时将以全屏的文本方式显示,并且提供了交互式的操作环境。按↑、↓方向键可以向上、向下滚动- -行文本内容:按Page Up键和Page Down键可以向上、向下翻页显示:按Q键或q键可以随时退出手册页的阅读环境;按/键后可以对手册内容进行查找,如输入“l-v”可以查找到“-v”选项的帮助信息,若找到的结果有多个,还可以按n键或N键分别向下、向上进行定位选择。如果需要将man手册页的内容保存成文本文件以便在其他系统中查看,可以结合col命令去除手册页中的格式控制字符,并将显示结果保存为新的文件。例如,以下操作可以将Is命令的帮助手册保存为文本文件Ishelp.txt.
col 是一个命令程序,用于过滤文本中的一些特殊控制字符:另外还使用了“|”和“>”符号,这是Shell环境中的两种特殊功能应用,分别称为管道,重定向输出。其含义及作用如下所述。
管道:用竖杠符号平表示,用于将前面命令的屏露输出结果作为后面命令的操作对象(输入)。就好像一一根管道一样,从这头塞入内容,从另一头出来。
重定向输出:用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将保存到“>”号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向。
pwd(Print Working Directory)命令,显示目前所在目录的命令
显示用户当前所在的工作目录位置
格式 | 说明 |
---|---|
-P : | 显示出确实的路径,而非使用连结 (link) 路径。 |
cd(Change Directory)命令,用来变换工作目录的命令
将用户的工作目录更改到其他位置
格式 | 说明 |
---|---|
cd [dirName] | 切换到目标位置dirName:要切换的目标目录。 |
cd ~ | 跳到自己的 home 目录 |
cd | 若不指定目标位置,切换到当前用户的宿主目录 |
cd … | 返回上一层 |
cd - | 切换到上一次执行cd命令之前所在的宿主目录(返回上一次) |
cd …/… | 跳到目前目录的上上两层 |
绝对路径
相对路径
相对路径的表现形式
4.查看目录或文件属性信息
ls(list)命令,列表显示目录内容
显示目录中内容,包括子目录和文件相关属性信息
ls [选项] [文件或命令...]
ls [-aAdfFhilnrRSt] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
使用的参数可以是目录名,也可以是文件名,允许在同一条命令中同时使用多个参数
常用选项
-l 、-a 、-A 、-d 、-h 、-R 、–color
格式 | 说明 |
---|---|
-a | 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)连同隐藏文件( 开头为 . 的文件) 一起列出来(常用) |
-A | 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录) |
-d | 仅列出目录本身,而不是列出目录内的文件数据(常用) |
-l | 长数据串列出,除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出(常用) |
-r | 将文件以相反次序显示(原定依英文字母次序) |
-t | 将文件依建立时间之先后次序列出 |
-F | 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/” |
-R | 若目录下有文件,则以下之文件亦皆依序列出 |
结合通配符
“?”:匹配文件名中的一个未知字符
“*”:匹配文件名中的任意多个字符
Is(List)命令,显示目录内容
Is命令主要用于显示目录中的内容,包括子目录和文件的相关属性信息等。使用的参数可以是目录名,也可以是文件名,允许在同一条命令中同时使用多个参数。
Is命令可以使用的选项种类非常多,这里只列出几个最常用的选项以供参考。
-l:以长格式(Long) 显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。不使用-I选项时,Is 命令默认以短格式显示目录名或文件名信息。
-a:显示所有(AlI) 子目录和文件的信息,包括名称以点号"."开头的隐藏目录和隐藏文件。
-A:与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前目录的”.”和表示父目录的”..”。
-d:显示目录(Directory) 本身的属性,而不是显示目录中的内容。
-h: 以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后将显示为KB、MB等单位。此选项需要结合-l选项一起使用。
-R:以递归(Recursive) 的方式显示指定目录及其子目录中的所有内容。
--color: 在字符模式中以颜色区分不同的文件,如果使用"--colortty", 则表示使用终端预定义的颜色方案。通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件。
执行不带任何选项、参数的Is 命令,可显示当前目录中包含的子目录、文件列表信息(不包括隐藏目录、文件)
du(disk usage)命令,查看当前目录的总大小
统计目录及文件空间占用情况
统计是定命令(或文件)所占用磁盘空间的大小
du [选项] [文件或命令...]
常用选项
格式 | 说明 |
---|---|
-a或-all | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-b或-bytes | 显示目录或文件大小时,以byte为单位。 |
-c或–total | 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 |
-D或–dereference-args | 显示指定符号连接的源文件大小。 |
-h或–human-readable | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-H或–si | 与-h参数相同,但是K,M,G是以1000为换算单位。 |
-k或–kilobytes | 以1024 bytes为单位。 |
-l或–count-links | 重复计算硬件连接的文件。 |
-L<符号连接>或–dereference<符号连接> | 显示选项中所指定符号连接的源文件大小。 |
-m或–megabytes | 以1MB为单位。 |
-s或–summarize | 只统计所占用空间总的(summary)大小,而不是统计每个子目录、文件大小 |
-S或–separate-dirs | 显示个别目录的大小时,并不含其子目录的大小。 |
如果需要统计一个文件夹内所有文件的空间大小,可以结合“-sh”选项,将要统计的目录作为参数。
如果需要分别统计多个文件所占用的空间大小,可以结合“-ah”选项,使用目录作为参数是,最后将列出该目录总共占用的空间大小。
5.创建目录和文件
mkdir (make directory)命令,创建新目录
创建新的空目录
mkdri [选项] 目录位置及名称...
格式 | 说明 |
---|---|
-m | 配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色 |
-p | 一次性创建嵌套的多层目录,帮助你直接将所需要的目录(包含上一级目录)递归创建起来! |
touch命令 创建空文件
更新文件的时间标记
经常用于创建多个新的空文件
touch 文件...
使用文件名作为参数,可以同时创建多个文件。当目标文件已存在时,将更新该文件的时间标记,否则将创建指定名称的空文件。
ln 创建链接文件
为文件或目录建立链接文件,类似于Windows系统的快捷方式
链接文件类型
软链接(又称符号链接)
硬链接
ln [-s] 源文件或目录... 连接文件或目标位置
In命令 创建链接(Link)文件
In命令用于为文件或目录建立链接文件( 类似于Windows系统中的快捷方式),提高用户定位文件或定位目录的效率。链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同复制高亮
软链接与硬链接的区别主要在于,删除原始文件后,软链接将失效,但硬链接仍然可用:软链接适用于文件或目录,但硬链接只可用于文件,不能为目录建立硬链接:软链接与原始文件可以位于不同的文件系统中,但硬链接必须与原始文件在同-个文件系统(如一个Linux分区)内。
使用In命令时,默认创建的是硬链接。如果需要创建软链接,必须结合"-s”选项明确指定。 链接文件或目标位置当目标位置是一个已经存在的目录时,新创建的链接文件将保存到该目录中,并使用与源文件或目录相同的名称。
6.复制、删除、移动目录和文件
cp(Copy)命令,复制文件或目录
cp命令用于复制文件或目录,将需要复制的文件或目录(源)重建一-份并 保存为新的文件或目录(可保存到其他目录中)。cp命令的基本使用格式如下:
cp [选项]... 源文件或目录... 目标文件或目录
需要复制多个文件或目录时,目标位置必须是目录,且目标目录必须已经存在。cp 命令较常用到的几个选项如下。
格式 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,而直接强制(Force) 复制。 |
-i | 覆盖目标同名文件或目录时提醒用户确认(Interactive, 交互式)。 |
-p | 复制时保持(Preserve) 源文件的权限、属主及时间标记等属性不变。 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录。 |
rm(Remove)命令,删除文件或目录
m命令用于删除指定的文件或目录,在Linux命令行界面中,删除的文件是难以恢复的,因此使用rm命令删除文件时需要格外小心。m命令使用要删除的文件或目录名作为参数。常用的几个选项如下(与cp命令的对应选项含义基本相似)所述。
格式 | 说明 |
---|---|
-f | 删除文件或目录时不进行提醒,而直接强制删除。 |
-i | 删除文件或目录时提醒用户确认。 |
-r | 删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。 |
mv(Move)命令,移动文件或目录
mv命令用于将指定的文件或目录转移位置,如果目标位置与源位置相同,则效果相当于为文件或目录改名。mv命令的基本使用格式如下:
mv [选项]... 源文件或目录... 目标文件或目录
需要移动多个文件或目录时,目标位置必须是目录,且目标目录必须已经存在。
如果在同一个目录下移动文件或目录,则相当于执行重命名操作。
如果移动一个文件或目录到一个已经存在的文件夹中,可以只指定目标文件夹位置
7.查找目录和文件
which命令 查找用户所执行的命令文件存放的目录
which命令用于查找Linux命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量PATH决定(可以执行"echo $PATH"命令查看),这个范围也是Linux 操作系统在执行命令或程序时的默认搜索路径。
which命令使用要查找的命令或程序名作为参数,默认当找到第一一个目标后即不再继续查找,若希望在所有搜索路径中查找,可以添加“-a”选项。
find命令 查找文件或目录
find命令是Linux 操作系统中功能非常强大的查找命令,可以根据目标的名称、类型、大小等不同属性进行精细查找。find 命令在查找时采用递归的方式,其使用形式相当灵活,
也可以相当复杂。这里只介绍最常用的几种用法。find 命令的基本使用格式如下:
find [查找范围] [查找条件表达式]
其中,查找范围对应的是在其中查找文件或子目录的目录位置(可以有多个),而查找条件则决定了find 命令根据哪些属性、特征进行查找。
较常用的几种查找条件类型如下所述。
- 按名称查找:关键字为"-name",根据目标文件的名称进行查找,允许使用”*”及”?”通配符。
- 按文件大小查找:关键字为"-size",根据目标文件的大小进行查找,一般使用“+”和“-”号设置超过或小于指定的大小作为查我条件。常用的容量单位包括kB (注意k是小写)、MB、GB.
- 按文件属主查找:关键字为"-user", 根据文件是否属于目标用户进行查找。
- 按文件类型查找: 关键字为"-type", 根据文件的类型进行查找,这里的类型指的是普通文件(f)、 目录(d)、 块设备文件(b)、 字符设备文件©等。块设备指的是成块实取数据的设备(如硬盘、内存等),而字符设备指的是按单个字符读取数据的设备(如键盘、鼠标等)。
设置find命令的查找条件时,若需要使用“*”或"?"通配符,最好将文件名用双引号括起来,以避免当前目录下符合条件的文件干扰查找结果。
使用"type"查找条件可以过滤出指定类型的文件。
需要同时使用多个查找条件时,各表达式之间可以使用逻辑运算符“-a”与“-o”分别表示
(and)或者(or)。