Wargames与bash知识02

Wargames与bash知识之level4

这个关卡考察的file命令的使用。
Linux file命令是辨识文件类型的,file的返回的文件编码类型结果很多,常见有:empty:空文件、ASCII text文件、data:数据文件、c program等等。
关卡提示密码在目录inhere下一个人类可读的文件。
进入inhere目录,ls结果下:

bandit4@bandit:~$ cd inhere/
bandit4@bandit:~/inhere$ ls -Al
total 40
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file00
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file01
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file02
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file03
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file04
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file05
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file06
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file07
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file08
-rw-r----- 1 bandit5 bandit4 33 Oct  5 06:19 -file09

从返回的结果可看出,这个目录是是个下划线“-”开头,没有隐藏文件。file命令支持一次查看多个文件。file ./*,我们很容易就发现10个文件中的另类:-file07是一个ASCII text文件。 cat 这个文件任务结束。

bandit4@bandit:~/inhere$ file ./*
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
bandit4@bandit:~/inhere$ cat ./-file07
lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR

眼尖的网友可能发现我使用通配符*。在linux bash中文件名扩展支持使用统配符有“?”,“*”、“[…]”。
?代表一个任意字符
*代表任意字符串,包括空字符串。
[…]代表一个字符集合范围内的一个字符,如[0-9]就是一个任意的数字,[A-Z]代表一个大写字符、、[a-z]代表一个小写字符。支持POSIX定义的字符类别。POSIX字符类别有:
[:upper:] 表示大写字母[A~Z]
[:lower:] 表示小写字母[a~z]
[:digit:] 表示阿拉伯数字[0~9]
[:alnum:] 表示大小写字母和阿拉伯数字[AZaz0~9]
[:space:] 表示任何产生空白的字符,包括空格或Tab键等
[:alpha:] 表示大小写字母[AZaz]
[:cntrl:] 表示键盘的控制按键,包括Tab、Del等按键
[:graph:] 表示除了空格符(空格键与Tab键)外的其他所有按键
[:print:] 表示任何可以被打印出来的字符
[:xdigit:] 表示十六进制数字[09AFa~f]
[:blank:] 表示空格键与Tab键
[:punct:] 表示标点符号,包括:" ’ ? ! ; : # $…

下面演示一下使用方法:

 bandit4@bandit:~/inhere$ file ./-file0?
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
bandit4@bandit:~/inhere$ file ./-file0[1-9]
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
 
bandit4@bandit:~/inhere$ file ./-file0[[:digit:]]
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
 
还可以使用花括号扩展“{}”,这个扩展下次遇到再讲解吧。
 bandit4@bandit:~/inhere$ file ./-file{01..9}
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
 

今天有点事情,写的有点短,明日争取补上。

你可能感兴趣的:(bash,开发语言)