CTF-All-In-One/doc/1.3_linux_basic.md
2017-08-05 20:44:45 +08:00

61 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Linux 基础
- [常用基础命令](#常用基础命令)
- [字节序](#字节序)
- [输入输出](#输入输出)
## 常用基础命令
```text
ls 用来显示目标列表
cd [path] 用来切换工作目录
pwd 以绝对路径的方式显示用户当前工作目录
man [command] 查看Linux中的指令帮助、配置文件帮助和编程帮助等信息
apropos [whatever] 在一些特定的包含系统命令的简短描述的数据库文件里查找关键字
cat [file] 连接文件并打印到标准输出设备上
less [file] 允许用户向前或向后浏览文字档案的内容
mv [file1] [file2] 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
cp [file1] [file2] 用来将一个或多个源文件或者目录复制到指定的目的文件或目录
rm [file] 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉
nano / vim / emacs 字符终端的文本编辑器
```
```text
管道命令符 "|" 将一个命令的标准输出作为另一个命令的标准输入
```
## 字节序
目前计算机中采用两种字节存储机制大端Big-endian和小端Little-endian
>MSB (Most Significan Bit/Byte):最重要的位或最重要的字节。
>
>LSB (Least Significan Bit/Byte):最不重要的位或最不重要的字节。
Big-endian 规定 MSB 在存储时放在低地址在传输时放在流的开始LSB 存储时放在高地址在传输时放在流的末尾。Little-endian 则相反。常见的 Intel 处理器使用 Little-endian而 PowerPC 系列处理器则使用 Big-endian另外 TCP/IP 协议和 Java 虚拟机的字节序也是 Big-endian。
例如十六进制整数 0x12345678 存入以 1000H 开始的内存中:
![](../pic/1.3_byte_order.png)
## 输入输出
- 使用命令的输出作为可执行文件的输入参数
- ```$ ./vulnerable 'your_command_here'```
- ```$ ./vulnerable $(your_command_here)```
- 使用命令作为输入
- ```$ your_command_here | ./vulnerable```
- 将命令行输出写入文件
- ```$ your_command_here > filename```
- 使用文件作为输入
- ```$ ./vulnerable < filename```