㈠ 如何確認系統是採用大端還是小端**
如何確認系統是採用大端還是小端**
1、大小端
**大端(存儲)模式:**是指一個數據的低位位元組序的內容放在高地址處,高位位元組序存的內容放在低地址處。
如:一個數0x12345678存放在一個4位元組空間里
**小端(存儲)模式:**是指一個數據的低位位元組序內容存放在低地址處,高位位元組序的內容存放在高地址處。(可以總結為「小小小」即低位、低地址、小端)
如:一個數0x12345678存放在一個4位元組空間里
在計算機系統中,我們是以位元組為單位存放數據的,每個地址單元都對應著一個位元組,一個位元組為8bit。但在C語言中存在不同的數據類型,佔用的位元組數也各不相同,那麼就存在怎樣存放多個位元組的問題,因此就出現了大端存儲模式和小端存儲模式。
大小端是由CPU和操作系統來決定的,在操作系統中,x86和一般的OS(如windows,FreeBSD,linux)使用的是小端模式,但比如Mac OS是大端模式。
知道為什麼有模式的存在,下面需要了解下具有有什麼應用場景:
1)不同端模式的處理器進行數據傳遞時必須要考慮端模式的不同
2)在網路上傳輸數據時,由於數據傳輸的兩端對應不同的硬體平台,採用的存儲位元組順序可能不一致。所以在TCP/IP協議規定了在網路上必須採用網路位元組順序,也就是大端模式。對於char型數據只佔一個位元組,無所謂大端和小端。而對於非char類型數據,必須在數據發送到網路上之前將其轉換成大端模式。接收網路數據時按符合接受主機的環境接收。
2、如果知道當前系統是採用的什麼模式:
1)
通過查看一個變數在內存中存放的位置來判斷
int test1_endian() {
int i = 1;
char *a = (char *)&i;
if (*a == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
2、用聯合體
int test2_endian() {
union {
int i;
char c;
}un;
un.i = 1;
if(un.c == 1) {
printf("小端");
}
else {
printf("大端");
}
return 0;
}
㈡ linux如何查看埠
x使用過程中,需要了解當前系統開放了哪些埠,並且要查看開放這些埠的具體進程和用戶,可以通過netstat命令進行簡單查詢
netstat命令各個參數說明如下:
-t : 指明顯示TCP埠
-u : 指明顯示UDP埠
-l : 僅顯示監聽套接字(所謂套接字就是使應用程序能夠讀寫與收發通訊協議(protocol)與資料的程序)
-p : 顯示進程標識符和程序名稱,每一個套接字/埠都屬於一個程序。
-n : 不進行DNS輪詢,顯示IP(可以加速操作)
即可顯示當前伺服器上所有埠及進程服務,於grep結合可查看某個具體埠及服務情況··
netstat -ntlp //查看當前所有tcp埠·
netstat -ntulp |grep 80 //查看所有80埠使用情況·
netstat -ntulp | grep 3306 //查看所有3306埠使用情況·
Linux查看程序埠佔用情況
使用命令:
ps -aux | grep tomcat
發現並沒有8080埠的Tomcat進程。
使用命令:netstat –apn
查看所有的進程和埠使用情況。發現下面的進程列表,其中最後一欄是PID/Program name
發現8080埠被PID為9658的java進程佔用。
進一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看
就可以明確知道8080埠是被哪個程序佔用了!然後判斷是否使用KILL命令幹掉!
方法二:直接使用 netstat -anp | grep portno
即:netstat -anp|grep 8080
netstat -anp|grep 8080 --> tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 28500/java
ps -aux | grep 28500 --> r/local/tomcat9-jforum/tomcat
安裝lsof list open files//---也可以 netstat -tunlp|grep 埠號 netstat -anp|grep 埠號
yum install lsof
lsof -i:8080 查看8080埠佔用
lsof abc.txt 顯示開啟文件abc.txt的進程
lsof -c abc 顯示abc進程現在打開的文件
lsof -c -p 1234 列出進程號為1234的進程所打開的文件
lsof -g gid 顯示歸屬gid的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd為4的進程
lsof -i 用以顯示符合條件的進程情況
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不止一個)
port --> 埠號 (可以不止一個)
lsof -i //顯示所有打開的埠
lsof -i:80 //顯示所有打開80埠的進程
lsof -i -U //顯示所有打開的埠和UNIX domain文件
其實我一般這樣用:
[root@VM_39_230_centos bin]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 16422 mysql 19u IPv6 148794 0t0 TCP *:mysql (LISTEN)
mysqld 16422 mysql 39u IPv6 643698 0t0 TCP localhost:mysql->localhost:36582 (ESTABLISHED)
mysqld 16422 mysql 45u IPv6 643699 0t0 TCP localhost:mysql->localhost:36584 (ESTABLISHED)
mysql
㈢ linux 有沒有直接查詢系統大小端 的命令
linux下查詢系統安裝了哪些軟體包一般使用命令 rpm -aqlinux下查詢軟體包安裝位置的命令 rpm -aq
㈣ 如何查看linux環境的大小端
不同機器內部對變數的位元組存儲順序不同,有的採用大端模式(big-endian),有的採用小端模式(little-endian)。 大端模式是指高位元組數據存放在低地址處,低位元組數據放在高地址處。 小端模式是指低位元組數據存放在低地址處,高位元組數據放在高地址處。...
㈤ 怎麼查看 linux arm 大小端 命令
使用命令查看linux中文件或者目錄的大小
-sh foldername