第三章【Linux 常用命令之文件管理】

举报
Yuchuan 发表于 2021/11/21 18:53:12 2021/11/21
【摘要】 Linux 常用命令之文件管理

一、 概述

  • 很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务。
  • Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。
  • 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令行,就不算会 Linux
  • Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里只介绍比较重要和使用频率最多的命令

二、 命令使用方法

1、 Linux 命令格式

command  [-options]  [parameter1]  …

说明:

  •  command:命令名,相应功能的英文单词或单词的缩写
  •  [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选
  •  parameter1 …:传给命令的参数,可以是零个一个或多个

12.png

2、 查看帮助文档

1) --help

一般是 Linux 命令自带的帮助信息,并不是所有命令都自带这个选项

如我们想查看命令 ls 的用法:ls --help

13.jpg

2) man(有问题找男人)

man 是 Linux 提供的一个手册,包含了绝大部分的命令、函数使用说明。

该手册分成很多章节(section),使用 man 时可以指定不同的章节来浏览不同的内容。

man 中各个 section 意义如下:

  1. Standard commands(标准命令)
  2. System calls(系统调用,如open,write
  3. Library functions(库函数,如printf,fopen
  4. Special devices(设备文件的说明,/dev下各种设备)
  5. File formats(文件格式,如passwd
  6. Games and toys(游戏和娱乐)
  7. Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
  8. Administrative Commands(管理员命令,如ifconfig
MAN(1)                                                               Manual pager utils                                                              MAN(1)

NAME
       man - an interface to the on-line reference manuals

SYNOPSIS
       man  [-C  file]  [-d]  [-D]  [--warnings[=warnings]]  [-R  encoding]  [-L  locale]  [-m  system[,...]]  [-M  path]  [-S list] [-e extension] [-i|-I]
       [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification]  [-p
       string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page[.section] ...] ...
       man -k [apropos options] regexp ...
       man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
       man -f [whatis options] page ...
       man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]]
       [-H[browser]] [-X[dpi]] [-Z] file ...
       man -w|-W [-C file] [-d] [-D] page ...
       man -c [-C file] [-d] [-D] page ...
       man [-?V]

DESCRIPTION
       man is the system's manual pager.  Each page argument given to man is normally the name of a program, utility or function.  The manual page  associ‐
       ated  with each of these arguments is then found and displayed.  A section, if provided, will direct man to look only in that section of the manual.
       The default action is to search in all of the available sections following a pre-defined order ("1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x  4x  5x
       6x 7x 8x" by default, unless overridden by the SECTION directive in /etc/man_db.conf), and to show only the first page found, even if page exists in
       several sections.

       The table below shows the section numbers of the manual followed by the types of pages they contain.

       1   Executable programs or shell commands
       2   System calls (functions provided by the kernel)
       3   Library calls (functions within program libraries)
       4   Special files (usually found in /dev)
       5   File formats and conventions eg /etc/passwd
       6   Games
       7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
       8   System administration commands (usually only for root)
       9   Kernel routines [Non standard]

       A manual page consists of several sections.

man使用格式如下:

man [选项命令名

man设置了如下的功能键:

功能键

功能

空格键

显示手册页的下一屏

Enter

一次滚动手册页的一行

b

回滚一屏

f

前滚一屏

q

退出man命令

h

列出所有功能键

/word

搜索word字符串

如,我们想查看 ls 的用法:man 1 ls ( 1:为数字“1”,代表第 1 section,标准命令 )

14.jpg

实际上,我们不用指定第几个章节也用查看,如,man ls。但是,有这个一种情况,假如,命令的名字和函数的名字刚好重名(如:printf),它既是命

令,也可以是库函数,如果,我们不指定章节号,man printf,它只查看命令的用法,不会查询函数的用法,因为 man 是按照手册的章节号的顺序进行搜索的。

15.jpg

所以,使用 man 手册时,最好指定章节号:

17.jpg

3、 使用技巧

1) 自动补全

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令。

2) 历史命令

当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来。

三、 常用命令

1、 文件管理

1) 查看文件信息:ls

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。

Linux文件或者目录名称最长可以有256个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。

ls常用参数:

参数

含义

-a

显示指定目录下所有子目录与文件,包括隐藏文件

-l

以列表方式显示文件的详细信息

-h

配合 -l 以人性化的方式显示文件大小

18.png

图中列出的信息含义如下图所示:

19.png

DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。

通配符

含义

*

文件代表文件名中所有字符

ls te*

查找以te开头的文件

ls *html

查找结尾为html的文件

代表文件名中任意一个字符

ls ?.c

只找第一个字符任意,后缀为.c的文件

ls a.?

只找只有3个字符,前2字符为a.,最后一个字符任意的文件

[]

[”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。

[abc]

匹配abc中的任意一个

[a-f]

匹配从af范围内的的任意一个字符

ls [a-f]*

找到从af范围内的的任意一个字符开头的文件

ls a-f

查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用

\

如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。

ls \*a

查找文件名为*a的文件

2) 输出重定向命令:>

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )

20.png

>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。

3) 分屏显示:more

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。

21.png

4) 管道:|

管道:一个命令的输出可以通过管道做为另一个命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)

22.png

5) 清屏:clear

clear作用为清除终端上的显示(类似于DOScls清屏功能),也可使用快捷键:Ctrl + l ( l” 为字母 )

23.jpg

6) 切换工作目录: cd

在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感

cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。

命令

含义

cd

切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。

cd ~

切换到当前用户的主目录(/home/用户目录)

cd .

切换到当前目录

cd ..

切换到上级目录

cd -

可进入上一个进入的目录

24.jpg

注意:如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加  “ / ”。

25.jpg

7) 显示当前路径:pwd

使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

26.png

8) 创建目录:mkdir

通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。

需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

27.jpg

9) 删除目录:rmdir

可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。

10) 删除文件:rm

可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

常用参数及含义如下表所示:

参数

含义

-i

以进行交互式方式执行

-f

强制删除,忽略不存在的文件,无需提示

-r

递归地删除目录下的内容,删除文件夹时必须加此参数

28.png

11) 建立链接文件:ln

  • Linux链接文件类似于Windows下的快捷方式。
  • 链接文件分为软链接和硬链接。
  • 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
  • 硬链接:硬链接只能链接普通文件,不能链接目录。

使用格式:

    ln 源文件 链接文件

    ln -s 源文件 链接文件

如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。

注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

29.png

12) 查看或者合并文件内容:cat

30.png

13) 文本搜索:grep

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

grep [-选项] ‘搜索内容串’文件名

grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grepa 1.txt

常用选项说明:

选项

含义

-v

显示不包含匹配文本的所有行(相当于求反)

-n

显示匹配行及行号

-i

忽略大小写

grep搜索内容串可以是正则表达式。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

grep常用正则表达式:

参数

含义

^a

行首,搜寻以 m 开头的行

grep -n '^a' 1.txt

ke$

行尾,搜寻以 ke 结束的行

grep -n 'ke$' 1.txt

[Ss]igna[Ll]

匹配 [] 里中一系列字符中的一个

搜寻匹配单词signalsignaLSignalSignaL的行

grep -n '[Ss]igna[Ll]' 1.txt

. ()

匹配一个非换行符的字符

匹配 e e 之间有任意一个字符,可以匹配 eeeeaeeve,但是不匹配 eeeaae

grep -n 'e.e' 1.txt

31.png

14) 计算文件行数或字数:wc

常用选项说明:

选项

含义

-l

统计行数

-w

统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-c

统计字节数

-m

统计字符数。这个标志不能与 -c 标志一起使用。

32.png

15) 查找文件:find

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

命令

含义

find ./ -name test.sh

查找当前目录下所有名为test.sh的文件

find ./ -name '*.sh'

查找当前目录下所有后缀为.sh的文件

find ./ -name "[A-Z]*"

查找当前目录下所有以大写字母开头的文件

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 0777

查找当前目录下权限为 777 的文件或目录

16) 拷贝文件:cp

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

常用选项说明:

选项

含义

-a

该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。

-f

删除已经存在的目标文件而不提示

-i

交互式复制,在覆盖目标文件之前将给出提示要求用户确认

-r

若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。

-v

显示拷贝进度

cp vim_configure/ code/ -ivr 把文件夹 vim_configure 拷贝到 code 目录里:

33.png

17) 移动文件:mv

用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

选项

含义

-f

禁止交互式操作,如有覆盖也不会给出提示

-i

确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件

-v

显示移动进度

34.png

18) 获取文件类型:file

Linux系统文件类型不是根据文件扩展名分类的,通过file命令可以确认文件具体类型。

35.png

19) 归档管理:tar

计算机中的数据经常需要备份,tarUnix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式

tar  [参数打包文件名  文件

tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:

参数

含义

-c

生成档案文件,创建打包文件

-v

列出归档解档的详细过程,显示进度

-f

指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后

-t

列出档案中包含的文件

-x

解开档案文件

注意:除了f需要放在参数的最后,其它参数的顺序任意。

36.png

20) 文件压缩解压:gzip

  • tar与gzip命令结合使用实现文件打包、压缩。
  • tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用tar.gz

gzip使用格式如下:

gzip  [选项被压缩文件

常用选项:

选项

含义

-d

解压

-r

压缩所有子目录

37.png

tar这个命令并没有压缩的功能,它只是一个打包的命令,但是tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。

 压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...

-z

指定压缩包的格式为:file.tar.gz

 例如:tar zcvf test.tar.gz 1.c 2.c 3.c 4.c 1.c 2.c 3.c 4.c 压缩成 test.tar.gz

38.png

解压用法: tar zxvf 压缩包包名

参数

含义

-z

指定压缩包的格式为:file.tar.gz

39.png

解压到指定目录:-C (大写字母“C”)

例子:tar -xvf new.tar.gz -C ./test/ 将 new.tar.gz 解压到当前目录下的 test 目录下:

40.png

21) 文件压缩解压:bzip2

  • tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)
  • tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用tar.bz2
  • tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
  • 压缩用法:tar cjvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
  • 解压用法:tar xjvf 压缩包包名 (tar jxvf bk.tar.bz2)

22) 文件压缩解压:zip、unzip

  • 通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip
  • 压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
  • 解压文件:unzip -d 解压后目录文件 压缩文件

41.png

23) 查看命令位置:which

42.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。