常用 Linux 命令集(多图)

1、df

df 查看硬盘空间的使用情况

查看本机硬盘空间的使用情况:

常用 Linux 命令集(多图)_第1张图片
硬盘空间使用情况

2、du

du 查看 目录 和 文件 所占磁盘空间大小

du -s 目录/文件

查看目录 IDEA_workspace 目录下 所有目录和文件 占用空间大小:

常用 Linux 命令集(多图)_第2张图片
IDEA_workspace 目录下各目录占用磁盘空间大小

3、df du

当遇到 “No space left on device” 时,应该如何利用上述两个命令来找到将磁盘空间占满的目录 或 文件。

执行 df 命令,整体查看磁盘空间使用情况,发现 /data 目录使用率已经达到 100%。

常用 Linux 命令集(多图)_第3张图片
单机磁盘空间使用状态

执行 du 命令,查看 /data 目录下的 目录/文件 占用磁盘空间状态,/data/flume_sink_data 几乎占满整块磁盘。

4、ln

ln 常用来建立软链接

ln -s 源文件 目标文件

当某一工程目录特别深的情况下,可以建立软链接,缩短路径名

建立软链接,缩短目录长度

可以把 软链接 当做一个 变量引用,将其指向一个容易发生变化的量。

通过软链接指向当前日志目录

5、alias 

alias 创建命令名别名

alias 别名='命令'   设置别名; unalias 别名    撤销别名

显示已经设置好的别名

常用 Linux 命令集(多图)_第4张图片
显示已有别名

设置 mkdir 别名为 mk


创建 a/b/c 目录

6、history

history 显示历史执行命令

history n 显示最近 n 条执行命令

显示最近 5 条执行命令

常用 Linux 命令集(多图)_第5张图片
最近 5 条执行命令

7、source

source 让配置文件生效

在 5 中设置别名 mk 之后,在其他 shell 对话框中并不生效,如何使其永久生效。

在 ~/.bashrc 文件中,添加 alias mk="mkdir -p" ,此时并不会生效;source ~/.bashrc 才会生效。

常用 Linux 命令集(多图)_第6张图片
在 .bashrc 中添加 alias 

8、通配符

*    代表 0 个到无穷多个任意字符

?    代表 1 个任意字符

[]    代表在中括号内的一个任意字符,例如:[abcd] 代表 a,b,c,d 中任何一个字符

[^]     同上一个刚好相反,不在 中括号 内的任意字符,例如:[^abcd] 代表不是 a,b,c,d 中的任一字符

[-]    代表一个包含在某一范围内的一个任意字符,例如:[0-9] 代表在 0-9 范围内的任一字符

使用通配符来选择符合条件的文件集合:

常用 Linux 命令集(多图)_第7张图片
使用通配符来筛选出符合条件的文件集合

9、特殊字符

#    注释

\    转义字符,将“特殊字符 和 通配符” 还原成一般字符

|    管道

;    多个命令连续执行分隔符

~    用户的主文件夹

$    变量的前导符

>, >>    数据流重定向,> 替换, >> 追加

''    包含字符串的单引号,不具有变量置换功能

“”    包含字符串的双引号,具有变量置换功能

``    包含命令,代表可以提前执行的命令,与 $() 相同。

()    为子 shell 的开始与结束

{}    为命令块的组合

常用 Linux 命令集(多图)_第8张图片
上述特殊字符的使用

10、grep

grep 以行为单位,通过一些过滤条件,将所需要的行信息过滤过来。

grep [-invc] '查找字符串' filename

-i    不区分大小写字符

-n    显示行号

-v    不包含查找字符串

-c    显示符合需求的字符串总行数

从某一个数据文件中取得你想要的数据:

常用 Linux 命令集(多图)_第9张图片
熟悉 grep 的各个参数

16、sort

sort 将数据内容进行排序,默认是按字符串类型进行排序

sort [-nrtku] filename

-n    使用 "纯数字" 进行排序

-r    反向排序

-u    uniq,当相同的数据出现时,仅显示一行作为代表

-t    分隔符(默认按 Tab 键进行分隔)   -k  指定以哪个分区来进行排序

使用 sort 对文件内的数据进行排序:

常用 Linux 命令集(多图)_第10张图片
排序

17、uniq

uniq 以"行"为单位,将具有相同内容的相邻行仅保留一行。

uniq [-ic] filename

-i    忽略大小写

-c    对具有相同内容的相邻行进行统计计数

对 data 内的数据进行排序,并进行统计计数:

常用 Linux 命令集(多图)_第11张图片
统计 data 内数据进行排序,并统计条数

18、wc

wc 统计一个文件中包含多少字,字符,行。

wc [-cl] filename

-c    计算 file name 中的字符个数

-l    计算 file name 中的行数

统计 data 文件中 zhangguanghui 25 的行数

统计 data 中包含 zhangguanghui 的行数

19、awk

awk '条件类型1{动作1} 条件类型2{动作2}...' filename

awk 以行为单位,将每行数据按照 某个字符(默认空格符) 进行切割,并依次赋值给 $1, $2, $3...$n (n 为切割出来的段数);然后计算条件类型1,如果符合条件的话,就执行动作1;然后计算条件类型2,如果符合条件的话,就执行动作2;....;然后依次按上述步骤处理每一行数据。

其中还有一些特殊字符:$0 代表整行数据;NF 每一行数据被切割成的字段总数;NR 表示 awk 当前处理的哪一行数据; FS 指定分隔符,默认是空格符。

BEGIN{动作1;动作2}  表示在开始执行 awk 命令前执行的一些准备工作。例如:假如我们想指定分隔符的话,则需要在 BEGIN 内提前指定。 

END{动作1;动作2}   表示在 awk 处理完每一行数据之后,执行的一些结束工作。

计算 data2 中所有用户的年龄和:

计算 data2 中所有用户的年龄和

20、|

| 表示管道,代表数据通道

cmd1 | cmd2 | cmd3    cmd1 的输出作为 cmd2 的输入;cmd2 的输出作为 cmd3 的输入。

从 data 中取出包含 "zhangguanghui" 字符串的行

常用 Linux 命令集(多图)_第12张图片
统计 data 中包含 "zhangguanghui" 字符串的行数

21、xargs

xargs 读入 stdin 中的数据,并且以 空格符 或 断行字符 进行分段,将 stdin 的数据分割成 arguments,并将 arguments 赋值给接下来要执行的 命令。

xargs [-pn0] command

-p    在执行每个命令时都要询问用户

-n    后面接数字,表示每次执行 command 命令时,使用几个参数。

-0    如果输入 stdin 的数据中含有特殊字符,例如 `, \, 等,这个参数将其还原成普通字符。

上面介绍的 grep, sort, uniq, awk 等命令都支持管道命令,但是有些命令却不支持管道,例如 chmod。例如:我们想将某目录下的文件修改成可执行的:

常用 Linux 命令集(多图)_第13张图片
将某目录下的某些文件修改成可执行的

22、find

find [PATH] [option] [command]

option:

(1) 与时间相关,-mtime, -atime, -ctime

(2) 与用户相关,-uid, -gid, -user, -group, -nouser, -nogroup

(3) 与文件权限 和 名称相关的参数,-name, -size, -type, -perm 

command

(1) -exec  command,举例: -exec ls -l {}\;

其中 {} 代表由 find 找到的内容,\; 代表 -exec 执行的命令结束。

从日志文件中,将 2 天前的日志删除:

常用 Linux 命令集(多图)_第14张图片
删除 2 天前的数据

你可能感兴趣的