Linux基础命令篇

1.通配符

作用:用于匹配文件名(包括文件夹,但是不能匹配文件里的内容);用来模糊查找文件。

通常指包含四种“ * , ? , [ ]  , { }  ”字符的字符串。

具体见下图:

通配符 含义及作用
代表一个字符,匹配一个字符 f?.txt
* 代表任意长度字符,匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
{1..10} 1到10
{a..z} a b c ...z
{A..Z} A B C .....Z
[123]([此处括号里值代表一个字符]) 取其中之一,有就显示,没有也无所谓
[a-z]单个小写字母 范围需要注意
[0-9]单个数字 匹配数字范围(0123456789)
\ 转义符,表示原来的意思
[[:lower:]] 小写字母表示 a-z
[[:upper:]] 大写字母表示 A-Z
[^xxx] 匹配列表中的所有字符(xxx)以外的字符
[[:digit:]] 任意数字,相当于0-9
[[:alpha:]] 任意字母

运用实例如下图:

Linux基础命令篇_第1张图片

2. mkdir 命令用于创建空白的目录(可以理解为文件夹)

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

mkdir 命令除了可以创建单个空白目录外,还可以结合 -p 参数递归创建出具有嵌套关系的文件目录。

具体操作如下图所示:

Linux基础命令篇_第2张图片

3. rmdir 命令用于删除空白目录

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

rmdir 命令除了可以创建单个空白目录外,还可以结合 -p 参数递归删除具有嵌套叠层关系的文件目录。删除指定目录后,如果该目录的上层目录已变成空目录,就会将它一并删除。

Linux基础命令篇_第3张图片

注: 该命令只能删除空白目录哦

4. touch命令

touch命令用于创建空文件或者设置文件的时间。

格式:touch  [选项]  [文件]

  • touch 新文件…(可为空) 文件名 如果不存在就是新建空文件。

  • touch 如果 touch 文件 后面跟的文件已存在,不会破坏已有文件 ,会刷新文件时间。

每个文件有三个时间戳:

  1. access time 访问时间,atime,读取文件内容

  2. modify time 修改时间,mtime,改变文件内容(数据)

  3. change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )

5. 硬连接与软连接

硬连接 [(方法:ln+原始文件 + 硬链接重命名文件)] ------------> 同一个文件取不同的名或者叫多个名字,不支持文件夹,创建一个连接数加一,多路径访问。

软连接 [ 方法: ln -s 原始文件路径(相对于软连接的路径) 软链接后的路径(相当于快捷方式))] -------------> 类似于windows里快捷方式,软连接,符号连接,会指向原来的文件

对比项 硬链接 软链接
本质 本质是同一个文件 本质不是同一个文件
inode(身份证号) 相同 不同
连接数 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 删除,新建都不会改变
文件夹 不支持 支持
删除源文件 只是链接数减一,但链接文件的访问不受影响 无法访问连接文件
文件类型 和源文件相同 链接文件,和源文件无关
文件大小 和源文件相同(指向硬盘上的同一个文件) 源文件的路径的长度

6. du命令

查看当前所在文件夹占用了磁盘的多少单元块。

格式: du  [选项]  [文件或目录… ]

选项 说明
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s(--summarize) 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
--max-depth=n (-d 1) 最大显示到第n层,超过指定层数的目录后,予以忽略
--exclude 不计入统计,略过指定的目录或文件
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-H或--si 与-h参数相同 但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-m或--megabytes 以1MB为单位。
--help 显示帮助
--version 显示版本信息
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。

注:  a s无法同时使用

文件夹是可以嵌套的,有的时候,我们只想展示第一级或第二级子文件夹的信息,而不希望 du 统计的层次太深,那么我们可以用 --max-depth(-d) 选项来进行控制。包括隐藏文件也会统计。

7. cp 命令

    cp命令用于复制文件或者目录。

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

    注:如果源文件是多个文件复制到目标文件,只能复制到文件夹(即目标文件是文件夹)

7.1 cp [选项]... 源文件(源文件是目录)... 目标文件

源文件复制到文件夹,需要使用 -r 选项,表示递归

7.2 cp [选项]... 源文件... 普通文件(已存在的普通文件) 

会将源内容覆盖至目标文件,并且会询问是否覆盖它(提示覆盖的原因:是因为命令别名造成的,-i表示交互式,如果不想提示则目录起始点使用反斜杠)

7.3 cp [选项]... 源文件... 目标文件(不存在)

执行正常的复制操作,会新建目标文件并将源内容填充到目标文件中

7.4 cp命令的选项及其作用:

选项 说明
-f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持源文件的权限、属主及时间标记等属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a 完整保留所有的信息
-v 可视化
-u 相当于增备,差异备份(只对文件夹起作用)

8. mv 命令

mv命令用于剪切文件或将文件重命名。

格式:mv  [选项]  [源文件]  [目标路径 | 目标文件名]

剪切操作不同于复制操作,因为它会默认把源文件删除掉,且保留剪切后的文件。如果在同一个目录中对一个文件进行剪切操作,其实也就是对其重命名。

 选项:      

  • -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;

  • -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);

  • -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;

  • -v:显示文件或目录的移动过程;

9. rm命令

rm命令用于删除文件或者目录。

格式:rm  [选项]  [文件]

在Linux系统中删除文件时,系统会默认询问是否要执行删除文件,如果不想总看到这种反复的确认信息,可以在 rm 命令后跟上 -f 参数(选项)来强制删除。另外,想要删除一个目录,需要在 rm 命令后面加一个 -r 选项才可以,否则删不掉。

选项:

  • -f    强制

  • -i    交互

  • -r    递归(删除目录需要)

10.查找类命令(which   whereis   locate   find )

10.1 which命令

用来查找系统PATH目录下的可执行文件命令所在的位置。

格式:which  [参数]  [命令名称]

10.2 whereis命令

用于寻找二进制程序,源代码文件和man手册页等相关文件的路径。

格式:whereis  [参数]  [命令名称]

10.3 locate命令

用于查找文件和目录。

格式:locate  [参数]  [文件名.zip]

特点:locate命令 要比 find-name 快的多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用 whereis 和 locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立的文件却无法查到,就是因为数据库文件没有被更新。所有我们在使用 locate 命令之前,需要利用 up-datedb 命令进行手动更新数据库。

10.4 find命令

用于按照指定条件查找文件。

格式:find  [查找路径 | 范围]  [寻找条件]

注: 如果没有查找路径或范围则就是当前目录的查找,寻找条件操作后面可以跟处理动作

find 命令属于精确查找。

常用选项:

查找类型 关键字 说明
按名称查找 -name 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 -iname "文件名称" 不区分大小写
按文件大小查找 -size 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB
按文件属主查找 -user 根据文件是否属于目标用户进行查找
按文件类型查找 -type 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
按inode号 -inum 根据文件inode号查找
按权限查找 -perm 按文件权限查找
最大搜索目录深度 -maxdepth level 将你的文件已分级的形式查找
最小搜索目录深度 -mindepth level 同上 find /etc -maxdepth 2 -mindepth 2
按照属组来找 -group 匹配所有组
按照属主来找 -user 匹配所有者
按照无所有组来找 -nogroup 匹配无所有组的文件
按照无所有者来找 -nouser 匹配无所有者的文件,无主文件

拓展:

-exec......{} \;               后面可跟用于进一步处理搜索结果的命令

例子:

找到30天以上的大于1G的以 log 结尾的普通文件,并移动到/opt下

find  /  -mtime +30 size +1G -type f -name "*log" -exec mv {}  /opt \

你可能感兴趣的:(linux,运维,服务器)