近几年来,尽管Linux发展非常迅速,图形界面越来越友好,但是在真正的开发应用中,Linux命令行的应用还是分厂重要的,而且许多Linux功能在命令行界面要比图形化界面下运行快。
可以说不会命令行,就不算会Linux。
Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里只介绍比较重要和使用频率最多的命令。
命令一般的使用格式为:
command [-options] [parameter1] …
command:命令名,相应功能的英文单词或单词的缩写
[-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选
parameter1 …:传给命令的参数,可以是零个一个或多个
help是一般的Linux命令自带的帮助信息,但并不是所有命令都自带有这个选项。
命令格式一般为: 命令名称 --help
man是Linux提供的一个手册,里面包含了绝大部分的命令、函数使用的说明。
该手册分成很多个章节(section),使用man时可以指定不同章节来浏览不同的内容。
命令格式一般为: man [选项] 命令名称
man中各个section意义如下:
ls是英文单词list的简写,功能为列出目录的内容。
命令格式一般为: ls 选项 文件名称
常用的选项有:
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
其中在ls -lh中列出的信息含义如下图所示:
与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用通配符来同时引用多个文件名。
通配符 | 含义 |
---|---|
* | 文件代表文件名中所有字符 |
ls a* | 查找以a开头的文件 |
ls *a | 查找结尾为a的文件 |
? | 代表文件名中任意一个字符 |
ls ?.c | 只找第一个字符任意,后缀为.c的文件 |
ls a.? | 只找只有3个字符,前2字符为a.,最后一个字符任意的文件 |
Linux允许将命令执行结果重定向到一个文件,本应该显示在终端上的内容会被保存到指定的文件中。
命令格式为: 命令 > 文件(假如文件不存在,则创建,存在则覆盖其原来的内容 )
注意:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。
在查看内容时,如果信息过长无法在一屏上显示时,就会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),与快捷键Ctrl+L的作用相同。
在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。而且Linux所有的目录和文件名对大小写敏感。
cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录,主要的几种命令格式如下表:
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。 |
cd | ~ 切换到当前用户的主目录(/home/用户目录) |
cd | . 切换到当前目录 |
cd | … 切换到上级目录 |
cd | - 可进入上一个进入的目录 |
注意:如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”。
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入 pwd
即可,后面不带参数。
通过mkdir命令可以创建一个新的目录。命令格式为:mkdir -p 路径名
其中参数 -p可递归创建目录。
可使用rmdir命令删除一个目录,命令格式为:rmdir 路径名
。但该目录必须为空目录,不然提示删除失败。
现实中一般使用rm删除文件或目录。但使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用 -i参数以逐个确认要删除的文件。
命令格式为:rm [-选项] 文件名
常用的选项有:
参数 | 含义 |
---|---|
-i | 以进行交互式方式执行,(Y/N)(y/n) |
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
链接文件分为软连接和硬链接。
命令格式:
命令格式为:cat 文件名
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep的一般命令格式为:grep [-选项] ‘搜索内容串’ 文件名
常用选项说明:
选项 | 含义 |
---|---|
-v | 显示不包含匹配文本的所有行(相当于求反) |
-n | 显示匹配行及行号 |
-i | 忽略大小写 |
搜索内容串可以为:
参数 | 含义 |
---|---|
^a | 搜寻以a开头的行 ,例如:grep -n ‘^a’ 1.txt |
a$ | 行尾,搜寻以a结束的行,例如:grep -n ‘a$’ 1.txt |
[Ss]igna[Ll] | 匹配 [] 里中一系列字符中的一个,搜寻匹配单词signal、signaL、Signal、SignaL的行 |
- | 匹配任意字符 |
命令格式为: wc [-选项] 文件名
常用的选项有:
选项 | 含义 |
---|---|
-l | 统计行数 |
-w | 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。 |
-c | 统计字节数 |
-m | 统计字符数。这个标志不能与 -c 标志一起使用。 |
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
命令格式为:find [搜索范围] [-选项]
常用的选项有:
选项 | 含义 |
---|---|
name <查询方式> | 按照指定的文件名查找模式查找文件 |
user<用户名> | 查找属于指定用户名的所有文件 |
size<文件大小> | 按照指定的文件大小查找文件 |
这里给出几个示例:
命令 | 含义 |
---|---|
find ./ -name test.sh | 查找当前目录下所有名为test.sh的文件 |
find ./ -name ‘*.sh’ | 查找当前目录下所有后缀为.sh的文件 |
find /tmp -size 2M | 查找在/tmp 目录下等于2M的文件 |
find /tmp -size +2M | 查找在/tmp 目录下大于2M的文件 |
find /tmp -size -2M | 查找在/tmp 目录下小于2M的文件 |
find ./ -size +4k -size -5M | 查找当前目录下大于4k,小于5M的文件 |
find ./ -perm 777 | 查找当前目录下权限为 777 的文件或目录 |
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
命令格式为:cp [-选项] 原文件 复制文件
常用的选项有:
选项 | 含义 |
---|---|
-a | 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。 |
-f | 删除已经存在的目标文件而不提示 |
-i | 交互式复制,在覆盖目标文件之前将给出提示要求用户确认 |
-r | 递归复制整个目录下的文件 |
-v | 显示拷贝进度 |
使用mv命令可以移动文件或目录,也可以给文件或目录重命名。
命令格式为:mv [-选项] 目录或文件名 移动的目录或文件名
常用的选项有:
选项 | 含义 |
---|---|
-f | 禁止交互式操作,如有覆盖也不会给出提示 |
-i | 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件 |
-v | 显示移动进度 |
案例一:将主目录下的e.txt移动到 test 文件夹中:
案例二:将test3改名为 renew_name:
Linux系统文件类型不是根据文件扩展名分类的,通过file命令可以确认文件具体类型。
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar的命令格式为:
tar [-选项] 打包文件名.tar 文件
常用的选项有:
选项 | 含义 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
tar具体分为两个阶段:
tar -cvf 归档文件名.tar 文件1 文件2 目录1 目录2 ...
tar -xvf 归档文件名.tar -C 指定路径
tar与gzip的区别为:
gzip 的命令格式为:gzip [-选项] 被压缩文件
常用的选项有:
选项 | 含义 |
---|---|
-d | 解压 |
-r | 压缩所有子目录 |
重点:tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程,具体实现方式如下: