用file命令查看
㈡ Linux c 語言怎麼方便的讀取 cpu,磁碟信息
我附上我的代碼給你參考。
CPU佔用 需要查看/proc/stat 的信息
磁碟需要 使用statfs這個函數來確認文件所包含的信息。
我附上我的代碼給你參考。
我的代碼支持CPU使用率(佔用率),內存佔用率,及磁碟佔用率。
#include<stdio.h>
#include<stdlib.h>
#include<sys/time.h>
#include<unistd.h>
#include<sys/vfs.h>
#include<error.h>
#defineGsize(1024.00*1024.00*1024.00)
#defineMsize(1024.00*1024.00)
#ifndefEXT2_SUPER_MAGIC
#defineEXT2_SUPER_MAGIC0xef53
#endif
doubletime_so_far();
floatget_cpu_rate();
floatget_memory_rate();
floatget_disk_rate();
intmain(intargc,char*argv[])
{
get_cpu_rate();
get_memory_rate();
get_disk_rate();
return0;
}
doubletime_so_far(){
structtimevaltp;
if(gettimeofday(&tp,(structtimezone*)NULL)==-1)
perror("gettimeofday");
return((double)(tp.tv_sec))+(((double)tp.tv_usec)*0.000001);
}
floatget_cpu_rate(){
FILE*f1;
doubleti,tf;
charc[10],d[10];
intt,i1,i2,i3,i4,i5,i6;
ti=time_so_far();
f1=fopen("/proc/stat","r");
fscanf(f1,"%s %d %d %d ",c,&i1,&i2,&i3);
fclose(f1);
printf("%s %d %d %d ",c,i1,i2,i3);
usleep(1000000);
tf=time_so_far();
f1=fopen("/proc/stat","r");
fscanf(f1,"%s %d %d %d ",c,&i4,&i5,&i6);
fclose(f1);
printf("%s %d %d %d ",c,i4,i5,i6);
t=(i4+i5+i6)-(i1+i2+i3);
printf("%d ",t);
printf("cpuusage:%.2f%% ",(t/((tf-ti)*100))*100);
}
floatget_memory_rate(){
FILE*f1;
intitemp1,itemp2;
charc[10],d[10];
f1=fopen("/proc/meminfo","r");
fscanf(f1,"%s %d %s",c,&itemp1,d);
printf("memorytotalis%dKb ",itemp1);
printf("memorytotalis%.2fMb ",itemp1/1024.0);
fscanf(f1,"%s %d %s",c,&itemp2,d);
printf("memoryfreeis%dKb ",itemp2);
printf("memoryfreeis%.2fMb ",itemp2/1024.0);
fclose(f1);
printf("menusage:%.2f%% ",((itemp1-itemp2)*100.0)/itemp1);
}
floatget_disk_rate(){
structstatfs*fs;
longlongblocks,bfree;
if(statfs("/",fs)!=0)
{
perror("stafts");
printf("exit ");
exit(1);
}
blocks=fs->f_blocks;
bfree=fs->f_bfree;
//if(fs.f_type==EXT2_SUPER_MAGIC)
//{
printf("Disksizeof/is%.2fG ",blocks*fs->f_bsize/Gsize);
printf("FreeDisksizeof/is%.2fG ",bfree*fs->f_bsize/Gsize);
printf("Diskusageof/is%.2f%% ",bfree*100.0/blocks);
//}
}
㈢ linux怎麼使用stat命令查看文件信息
linux下查看文件詳細信息命令stat。
說明:Access訪問時間。Modify修改時間。Change狀態改變時間。可以stat *查看這個目錄所有文件的狀態
與文件相關的3個時間:
1、訪問時間,讀一次這個文件的內容,這個時間就會更新。比如對這個文件使用more命令。ls、stat命令都不會修改文件的訪問時間。
2、修改時間,對文件內容修改一次,這個時間就會更新。比如:vi後保存文件。ls -l列出的時間就是這個時間。
3、狀態改變時間。通過chmod命令更改一次文件屬性,這個時間就會更新。查看文件的詳細的狀態、准確的修改時間等,可以通過stat命令文件名。
size: 427
說明:
文件的大小.
Blocks: 8
說明:
這個文件佔用了8個塊,塊的單位是512個位元組,因為文件系統的塊為4096個位元組,除以512個位元組,就是8個Blocks.也就是一個文件最小也要佔用8個block.
regular file
說明:
文件的狀態是不是正常的,此處為完整文件(個人理解是這個意思,請高手指點)
Device: fd00h/64768d
說明:是指存放文件的設備 詳細的不太理解 請高手賜教
IO Block: 4096
說明:
IO
Block表示文件系統塊的大小,ext3默認為4096,可以調整為2048等,但ext3最大也即是4096,可以通過tune2fs
-l /dev/sda1來確認.
Inode: 23724038
說明:
Inode就是I節點,這里說明的是23724038並不是系統已經用了這么多個inode,比如現在新建文件2,inode為23724039,這時新建文件3,inode為23724040,此時你刪了文件2,再建文件4,它的inode還是23724039.
最後要注意一個文件只有一個Inode,Inode指引我們找到文件的信息.
Links: 1
說明:
只有這個文件名用了這個Inode.如果有兩個文件名用了這個Inode,這里的數字將是2,例如一個硬鏈接。
㈣ linux必學的60個命令
Linux常用的命令可以分為以下幾類:安裝和登錄命令、文件處理命令、系統管理相關命令、網路操作命令、系統安全相關命令、其它命令。
安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last。
文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln。
系統管理相關命令:df、top、free、quota、at、lp、adser、groupadd、kill、crontab。
網路操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup。
系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who。
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
Linux簡介
Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX的多用戶、多任務、支持多線程和多CPU的操作系統。伴隨著互聯網的發展,Linux得到了來自全世界軟體愛好者、組織、公司的支持。
它除了在伺服器方面保持著強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有著長足的進步。使用者不僅可以直觀地獲取該操作系統的實現機制,而且可以根據自身的需要來修改完善Linux,使其最大化地適應用戶的需要。
Linux不僅系統性能穩定,而且是開源軟體。其核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網路中,為了追求速度和安全,Linux不僅僅是被網路運維人員當作伺服器使用,甚至當作網路防火牆,這是Linux的一大亮點。
㈤ linux常用命令有哪些
linux 常用命令有:
pwd 命令
使用 pwd 命令找出您所在的當前工作目錄(文件夾)的路徑。該命令將返回一個絕對(完整)路徑,該路徑基本上是所有以 / 開頭的目錄的路徑。絕對路徑的一個示例是 /home/username。
cd 命令
要瀏覽 Linux 文件和目錄,請使用 cd 命令。根據您所在的當前工作目錄,它需要目錄的完整路徑或名稱。假設您位於 /home/username / Documents 中,並且想要轉到 Documents 的子目錄 Photos。為此,只需鍵入以下命令:cd Photos。另一種情況是,如果您想切換到一個全新的目錄,例如 /home/username / Movies。在這種情況下,您必須輸入 cd,然後輸入目錄的絕對路徑:cd /home/username / Movies。有一些快捷方式可幫助您快速導航:cd ..(帶有兩個點)將一個目錄向上移動 cd 直接轉到主文件夾 cd-(帶連字元)移動到上一個目錄附帶說明一下,Linux 的 shell 是區分大小寫的。因此,您必須准確輸入名稱的目錄。
ls 命令
LS 命令用於查看目錄的內容。默認情況下,此命令將顯示當前工作目錄的內容。如果要查看其他目錄的內容,請鍵入 ls,然後鍵入目錄的路徑。例如,輸入 LS / 家 / 用戶名 / 文檔查看的內容的文件。您可以使用 ls 命令使用以下變體:ls -R 還將列出子目錄中的所有文件 ls -a 將顯示隱藏的文件 ls -al 將列出文件和目錄以及詳細信息,例如許可權,大小,所有者等。
cat 命令
cat(連接的縮寫)是 Linux 中最常用的命令之一。它用於在標准輸出(sdout)上列出文件的內容。要運行此命令,請鍵入 cat,然後輸入文件名及其擴展名。例如:cat file.txt。以下是使用 cat 命令的其他方法:cat> filename 創建一個新文件 cat filename1 filename2> filename3 連接兩個文件(1 和 2),並將它們的輸出存儲在新文件中(3)將文件轉換為大寫或小寫使用,cat filename | tr a-z A-Z >output.txt
cp 命令
使用 cp 命令將文件從當前目錄復制到另一個目錄。例如,命令 cp scenery.jpg/home /username/ Pictures 將在您的 Pictures 目錄中創建一個 Scene.jpg 副本(來自當前目錄)。
mv 命令
mv 命令的主要用途是移動文件,盡管它也可以用於重命名文件。mv 中的參數類似於 cp 命令。您需要輸入 mv,文件名和目標目錄。例如:mv file.txt/home /username/ Documents。
mkdir 命令
使用 mkdir 命令創建一個新目錄 - 如果鍵入 mkdir Music,它將創建一個名為 Music 的目錄。還有一些額外的 mkdir 命令:要在另一個目錄中生成新目錄,請使用此 Linux 基本命令 mkdir Music / Newfile 使用 p(父級)選項在兩個現有目錄之間創建一個目錄。例如,mkdir -p Music / 2022 / Newfile 將創建新的 「2022」 文件。
rmdir 命令
如果需要刪除目錄,請使用 rmdir 命令。但是,rmdir 僅允許您刪除空目錄。
rm 命令
該 RM 命令用於刪除目錄以及其中的內容。如果只想刪除目錄(作為 rmdir 的替代方法),請使用 rm -r。注意:使用此命令時要格外小心,並仔細檢查您所在的目錄。這將刪除所有內容,並且沒有撤消操作。
touch 命令
該觸摸命令允許您創建通過 Linux 命令行新的空白文件。例如,輸入 touch /home/username/Documents/Web.html 在 Documents 目錄下創建一個名為 Web 的 HTML 文件。
locate 命令
您可以使用此命令來定位文件,就像 Windows 中的搜索命令一樣。此外,將 - i 參數與該命令一起使用將使其不區分大小寫,因此即使您不記得其確切名稱,也可以搜索文件。要搜索包含兩個或多個單詞的文件,請使用星號(*)。例如,locate -i school * note 命令將搜索包含單詞 「school」 和 「 note」 的任何文件,無論它是大寫還是小寫。
find 命令
在類似定位命令,使用 查找也搜索文件和目錄。區別在於,您可以使用 find 命令在給定目錄中查找文件。例如,find /home/-name notes.txt 命令將在主目錄及其子目錄中搜索名為 notes.txt 的文件。使用查找時的其他變化 是:要查找當前目錄中使用的文件,請使用 find . -name notes.txt 要查找目錄,請使用 /-type d -name notes. txt13. grep 命令無疑對日常使用很有幫助的另一個基本 Linux 命令是 grep。它使您可以搜索給定文件中的所有文本。為了說明這一點,grep blue notepad.txt 將在記事本文件中搜索單詞 blue。包含搜索到的單詞的行將被完整顯示。
sudo 命令
該命令是 「SuperUser Do」 的縮寫,使您能夠執行需要管理或超級用戶許可權的任務。但是,建議不要將此命令用於日常使用,因為如果您做錯了一些事情,很容易發生錯誤。
df 命令
使用 df 命令可獲取有關系統磁碟空間使用情況的報告,以百分比和 KB 表示。如果要以兆位元組為單位查看報告,請輸入 df -m。
命令
如果要檢查文件或目錄佔用了多少空間,答案是 (磁碟使用情況)命令。但是,磁碟使用情況摘要將顯示磁碟塊號,而不是通常的大小格式。如果要以位元組,千位元組和兆位元組為單位查看它,請在命令行中添加 - h 參數。
head 命令
所述頭命令用於查看任何文本文件的第一行。默認情況下,它將顯示前十行,但是您可以根據自己的喜好更改此數字。例如,如果只想顯示前五行,則鍵入 head -n 5 filename.ext。
tail 命令
該命令與 head 命令具有相似的功能,但是 tail 命令將顯示文本文件的最後十行,而不是顯示第一行。例如,tail -n filename.ext。
diff 命令
diff 命令是差異的縮寫,diff 命令逐行比較兩個文件的內容。分析文件後,它將輸出不匹配的行。程序員在需要進行程序更改時經常使用此命令,而不是重寫整個源代碼。此命令最簡單的形式是 diff file1.ext file2.ext
tar 命令
該 tar 命令是最常用的命令歸檔多個文件到一個壓縮包。類似於 zip 格式常見的 Linux 文件格式,壓縮是可選的。該命令具有很長的功能列表,非常復雜,例如將新文件添加到現有檔案中,列出檔案內容,從檔案中提取內容等等。查看一些實際示例,以了解有關其他功能的更多信息。
chmod 命令
chmod 是另一個 Linux 命令,用於更改文件和目錄的讀取,寫入和執行許可權。由於此命令相當復雜,因此您可以閱讀完整的教程以正確執行它。
chown 命令
在 Linux 中,所有文件均歸特定用戶所有。該 CHOWN 命令使您可以更改或文件的所有權轉讓給指定的用戶名。例如,chown linuxuser2 file.ext 將使 linuxuser2 成為 file.ext 的所有者。
Jobs 命令
jobs 命令將顯示所有當前作業及其狀態。作業基本上是由 Shell 啟動的進程。
kill 命令
如果您的程序無響應,則可以使用 kill 命令手動終止它。它將向運行異常的應用發送特定信號,並指示該應用自行終止。您總共可以使用 64 個信號,但是人們通常只使用兩個信號:SIGTERM(15) — 請求程序停止運行,並給它一些時間來保存其所有進度。如果在輸入 kill 命令時未指定信號,則將使用此信號。SIGKILL(9) - 強製程序立即停止。未保存的進度將丟失。除了知道信號之外,您還需要知道要殺死的程序的進程標識號(PID)。如果您不知道 PID,只需運行命令 ps ux。在知道您要使用什麼信號以及程序的 PID 之後,輸入以下語法:kill [signal option] PID.
ping 命令
使用 ping 命令檢查與伺服器的連接狀態。例如,只需輸入 ping google.com,該命令將檢查您是否能夠連接到 Google 並測量響應時間。
wget 命令
Linux 命令行非常有用 - 您甚至可以在 wget 命令的幫助下從 Internet 下載文件。為此,只需鍵入 wget,然後輸入下載鏈接即可。
uname 命令
該 UNAME 命令,短期對於 Unix 名,將列印您的 Linux 系統,如計算機名稱的詳細信息,操作系統,內核,等等。
top 命令
作為與 Windows 中的任務管理器等效的終端,top 命令將顯示正在運行的進程的列表以及每個進程使用的 CPU 數量。監視系統資源使用情況非常有用,尤其是知道哪個進程由於消耗太多資源而需要終止時。
history 命令
當您使用 Linux 一段時間後,您會很快注意到每天可以運行數百個命令。因此,如果您想查看之前輸入的命令,運行歷史記錄命令特別有用。
man 命令
對某些 Linux 命令的功能感到困惑嗎?不用擔心,您可以使用 man 命令從 Linux 的外殼程序中輕松地學習如何使用它們。例如,輸入 man tail 將顯示 tail 命令的手動指令。
echo 命令
此命令用於將一些數據移到文件中。例如,如果要將文本 「Hello,我的名字叫 John」 添加到名為 name.txt 的文件中,則可以鍵入 echo Hello, my name is John >> name.txt
zip,unzip 命令
使用 zip 命令將文件壓縮到 zip 歸檔文件中,然後使用 unzip 命令從 zip 歸檔文件中提取壓縮文件。
hostname 命令
如果您想知道主機 / 網路的名稱,只需鍵入 hostname。在末尾添加 - I 將顯示您的網路的 IP 地址。
useradd,userdel 命令