NotePublic/Software/System/Linux/Common/Linux_命令判断大小端序.md

46 lines
1.4 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 命令判断大小端序
笔者在开发Linux应用程序时由于判断大小端序的问题使用的方法是用C语言判断方法是可以判断得到系统是什么端序但是太麻烦了。笔者是比较懒的人不想写那么多代码想一句命令就解决端序判断的问题。
想了想通过理解端序的背后原理使用Shell命令来判断端序的问题。原来方法还是挺多的。笔者系统端序为小端序模式。
## 方法一
```bash
echo -n I | od -o | head -n1 | cut -f2 -d" " | cut -c6
```
* 输出1为小端模式0为大端模式
* 解析od命令的作用为将指定内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示
## 方法二
```bash
echo -n I | od -o | head -n1 | awk '{print $2}'| cut -c6
```
* 输出1为小端模式0为大端模式
* 解析awk命令为文本处理。
## 方法三
```bash
lscpu | grep -i byte
```
* 输出Byte Order: Little Endian
* 解析grep -i 为不区分大小写匹配;
* 注意在低版本的Linux可能不支持lscpu命令。
## 方法四
```bash
dpkg-architecture | grep -i end
```
* 输出:
* DEB_BUILD_ARCH_ENDIAN=little
* DEB_HOST_ARCH_ENDIAN=little
* DEB_TARGET_ARCH_ENDIAN=little
* 解析dpkg-architecture命令是列出dpkg打包的一些环境参数