本文主要记录了OverTheWire Bandit答案以及使用的linux命令。
Bandit答案
ssh -p 2220 bandit?@bandit.labs.overthewire.org
关卡 | 秘钥 |
---|---|
Level0 | bandit0 |
Level1 | boJ9jbbUNNfktd78OOpsqOltutMc3MY1 |
Level2 | CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9 |
Level3 | UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK |
Level4 | pIwrPrtPN36QITSp3EQaw936yaFoFgAB |
Level5 | koReBOKuIDDepwhWk7jZC0RTdopnAYKh |
Level6 | DXjZPULLxYr17uwoI01bNLQbtFemEgo7 |
Level7 | HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs |
Level8 | cvX2JJa4CFALtqS87jk27qwqGhBM9plV |
Level9 | UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR |
Level10 | truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk |
Level11 | IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR |
Level12 | 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu |
Level13 | |
Level14 | |
Level15 |
常用linux命令
ls
ls [-alrtAFR] [name…]
参数 | 解释 |
---|---|
-a | 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出) |
-l | 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 |
-r | 将文件以相反次序显示(原定依英文字母次序) |
-t | 将文件依建立时间之先后次序列出 |
-A | 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录) |
-F | 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/“ |
-R | 若目录下有文件,则以下之文件亦皆依序列出 |
cat
cat [-AbeEnstTuv] [–help] [–version] fileName
参数 | 解释 |
---|---|
-n 或 –number | 由 1 开始对所有输出的行数编号。 |
-b 或 –number-nonblank | 和 -n 相似,只不过对于空白行不编号。 |
-s 或 –squeeze-blank | 当遇到有连续两行以上的空白行,就代换为一行的空白行。 |
-v 或 –show-nonprinting | 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 |
-E 或 –show-ends | 在每行结束处显示 $。 |
-T 或 –show-tabs | 将 TAB 字符显示为 ^I。 |
-e | 等价于 -vE。 |
-A, –show-all | 等价于 -vET。 |
-e | 等价于”-vE”选项; |
-t | 等价于”-vT”选项; |
file
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>…][文件或目录…]
参数 | 解释 |
---|---|
-b | 列出辨识结果时,不显示文件名称。 |
-c | 详细显示指令执行过程,便于排错或分析程序执行的情形。 |
-f<名称文件> | 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。 |
-L | 直接显示符号连接所指向的文件的类别。 |
-m<魔法数字文件> | 指定魔法数字文件。 |
-v | 显示版本信息。 |
-z | 尝试去解读压缩文件的内容。 |
[文件或目录…] | 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。 |
du
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][–block-size][–exclude=<目录或文件>][–max-depth=<目录层数>][–help][–version][目录或文件]
参数 | 解释 |
---|---|
-a或-all | 显示目录中个别文件的大小。 |
-b或-bytes | 显示目录或文件大小时,以byte为单位。 |
-c或–total | 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 |
-D或–dereference-args | 显示指定符号连接的源文件大小。 |
-h或–human-readable | 以K,M,G为单位,提高信息的可读性。 |
-H或–si | 与-h参数相同,但是K,M,G是以1000为换算单位。 |
-k或–kilobytes | 以1024 bytes为单位。 |
-l或–count-links | 重复计算硬件连接的文件。 |
-L<符号连接>或–dereference<符号连接> | 显示选项中所指定符号连接的源文件大小。 |
-m或–megabytes | 以1MB为单位。 |
-s或–summarize | 仅显示总计。 |
-S或–separate-dirs | 显示个别目录的大小时,并不含其子目录的大小。 |
-x或–one-file-xystem | 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 |
-X<文件>或–exclude-from=<文件> | 在<文件>指定目录或文件。 |
–exclude=<目录或文件> | 略过指定的目录或文件。 |
–max-depth=<目录层数> | 超过指定层数的目录后,予以忽略。 |
–help | 显示帮助。 |
–version | 显示版本信息。 |
find
find path -option [-print] [-exec -ok command ] {} \;
参数 | 解释 |
---|---|
-mount, -xdev | 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 |
-amin n | 在过去 n 分钟内被读取过 |
-anewer file | 比文件 file 更晚被读取过的文件 |
-atime n | 在过去 n 天过读取过的文件 |
-cmin n | 在过去 n 分钟内被修改过 |
-cnewer file | 比文件 file 更新的文件 |
-ctime n | 在过去 n 天过修改过的文件 |
-empty | 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name |
-ipath p, -path p | 路径名称符合 p 的文件,ipath 会忽略大小写 |
-name name, -iname name | 文件名称符合 name 的文件。iname 会忽略大小写 |
-size n | 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。 |
-type ? | c:文件类型是 c 的文件。d: 目录。c: 字型装置文件。b: 区块装置文件。p: 具名贮列。f: 一般文件。l: 符号连结。s: socket |
-pid n | process id 是 n 的文件 |
-user name | name 是文件所属的用户 |
-group group | group 是文件所属的组 |
grep
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][–help][范本样式][文件或目录…]
参数 | 解释 |
---|---|
-a 或 –text | 不要忽略二进制的数据。 |
-A<显示行数> 或 –after-context=<显示行数> | 除了显示符合范本样式的那一列之外,并显示该行之后的内容。 |
-b 或 –byte-offset | 在显示符合样式的那一行之前,标示出该行第一个字符的编号。 |
-B<显示行数> 或 –before-context=<显示行数> | 除了显示符合样式的那一行之外,并显示该行之前的内容。 |
-c 或 –count | 计算符合样式的列数。 |
-C<显示行数> 或 –context=<显示行数>或-<显示行数> | 除了显示符合样式的那一行之外,并显示该行之前后的内容。 |
-d <动作> 或 –directories=<动作> | 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。 |
-e<范本样式> 或 –regexp=<范本样式> | 指定字符串做为查找文件内容的样式。 |
-E 或 –extended-regexp | 将样式为延伸的普通表示法来使用。 |
-f<规则文件> 或 –file=<规则文件> | 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。 |
-F 或 –fixed-regexp | 将样式视为固定字符串的列表。 |
-G 或 –basic-regexp | 将样式视为普通的表示法来使用。 |
-h 或 –no-filename | 在显示符合样式的那一行之前,不标示该行所属的文件名称。 |
-H 或 –with-filename | 在显示符合样式的那一行之前,表示该行所属的文件名称。 |
-i 或 –ignore-case | 忽略字符大小写的差别。 |
-l 或 –file-with-matches | 列出文件内容符合指定的样式的文件名称。 |
-L 或 –files-without-match | 列出文件内容不符合指定的样式的文件名称。 |
-n 或 –line-number | 在显示符合样式的那一行之前,标示出该行的列数编号。 |
-q 或 –quiet或–silent | 不显示任何信息。 |
-r 或 –recursive | 此参数的效果和指定”-d recurse”参数相同。 |
-s 或 –no-messages | 不显示错误信息。 |
-v 或 –revert-match | 显示不包含匹配文本的所有行。 |
-V 或 –version | 显示版本信息。 |
-w 或 –word-regexp | 只显示全字符合的列。 |
-x –line-regexp | 只显示全列符合的列。 |
-y | 此参数的效果和指定”-i”参数相同。 |
uniq
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][–help][–version][输入文件][输出文件]
注:uniq only filter adjacent matching lines from INPUT
参数 | 解释 |
---|---|
-c或–count | 在每列旁边显示该行重复出现的次数。 |
-d或–repeated | 仅显示重复出现的行列。 |
-f<栏位>或–skip-fields=<栏位> | 忽略比较指定的栏位。 |
-s<字符位置>或–skip-chars=<字符位置> | 忽略比较指定的字符。 |
-u或–unique | 仅显示出一次的行列。 |
-w<字符位置>或–check-chars=<字符位置> | 指定要比较的字符。 |
–help | 显示帮助。 |
–version | 显示版本信息。 |
[输入文件] | 指定已排序好的文本文件。 |
[输出文件] | 指定输出的文件。 |
sort
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][–help][–verison][文件]
参数 | 解释 |
---|---|
-b | 忽略每行前面开始出的空格字符。 |
-c | 检查文件是否已经按照顺序排序。 |
-d | 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 |
-f | 排序时,将小写字母视为大写字母。 |
-i | 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 |
-m | 将几个排序好的文件进行合并。 |
-M | 将前面3个字母依照月份的缩写进行排序。 |
-n | 依照数值的大小排序。 |
-o | <输出文件> 将排序后的结果存入指定的文件。 |
-r | 以相反的顺序来排序。 |
-t | <分隔字符> 指定排序时所用的栏位分隔字符。 |
+<起始栏位>-<结束栏位> | 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 |
–help | 显示帮助。 |
–version | 显示版本信息。 |
strings
Usage: strings [option(s)] [file(s)]
Display printable strings in [file(s)] (stdin by default)
参数 | 解释 |
---|---|
-a - –all | Scan the entire file, not just the data section [default] |
-d –data | Only scan the data sections in the file |
-f –print-file-name | Print the name of the file before each string |
-n –bytes=[number] | Locate & print any NUL-terminated sequence of at |
-\<number> | least [number] characters (default 4). |
-t –radix={o,d,x} | Print the location of the string in base 8, 10 or 16 |
-w –include-all-whitespace | Include all whitespace as valid string characters |
-o | An alias for –radix=o |
-T –target= |
Specify the binary file format |
-e –encoding={s,S,b,l,B,L} | Select character size and endianness: s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit |
-s –output-separator=\<string> | String used to separate strings in output. |
@\<file> | Read options from \ |
-h –help | Display this information |
-v -V –version | Print the program’s version number |
tr
tr [-cdst][–help][–version][第一字符集][第二字符集]
tr [OPTION]…SET1[SET2]
参数 | 解释 |
---|---|
-c, –complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
-d, –delete:删除指令字符
-s, –squeeze-repeats:缩减连续重复的字符成指定的单个字符
-t, –truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
–help:显示程序用法信息
–version:显示程序本身的版本信息
字符集合的范围 | 解释 |
---|---|
\NNN | 八进制值的字符 NNN (1 to 3 为八进制值的字符) |
\ | 反斜杠 |
\a | Ctrl-G 铃声 |
\b | Ctrl-H 退格符 |
\f | Ctrl-L 走行换页 |
\n | Ctrl-J 新行 |
\r | Ctrl-M 回车 |
\t | Ctrl-I tab键 |
\v | Ctrl-X 水平制表符 |
CHAR1-CHAR2 | 字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。 |
[CHAR*] | 这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止 |
[CHAR*REPEAT] | 这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始) |
[:alnum:] | 所有字母字符与数字 |
[:alpha:] | 所有字母字符 |
[:blank:] | 所有水平空格 |
[:cntrl:] | 所有控制字符 |
[:digit:] | 所有数字 |
[:graph:] | 所有可打印的字符(不包含空格符) |
[:lower:] | 所有小写字母 |
[:print:] | 所有可打印的字符(包含空格符) |
[:punct:] | 所有标点字符 |
[:space:] | 所有水平与垂直空格符 |
[:upper:] | 所有大写字母 |
[:xdigit:] | 所有 16 进位制的数字 |
[=CHAR=] | 所有符合指定的字符(等号里的 CHAR,代表你可自订的字符) |