Ⅰ linux命令行查看內存
用 'top -i' 看看有多少進程處於 Running 狀態,可能系統存在內存或 I/O 瓶頸,用 free 看看系統內存使用情況,swap 是否被佔用很多,用 iostat 看看 I/O 負載情況...
還有一種辦法是 ps -ef | sort -k7 ,將進程按運行時間排序,看哪個進程消耗的cpu時間最多。
top:
主要參數 :
free
1.作用
free命令用來顯示內存的使用情況,使用許可權是所有用戶。
**2.格式 **
**3.主要參數 **
uptime
vmstat
**1 觀察磁碟活動情況 **
磁碟活動情況主要從以下幾個指標了解:
**2 觀察cpu活動情況 **
vmstat比top更能反映出cpu的使用情況:
iostat
用於統計CPU的使用情況及tty設備、硬碟和CD-ROM的I/0量
即使爬到最高的山上,一次也只能腳踏實地地邁一步。
Linux查看CPU和內存使用情況:
在做Linux系統優化的時候,物理內存是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監控寶貴的內存資源的使用情況。下面的清單詳細的列出了Linux系統下通過視圖工具或命令行來查看內存使用情況的各種方法。
1. /proc/meminfo
查看RAM使用情況最簡單的方法是通過 /proc/meminfo 。這個動態更新的虛擬文件實際上是許多其他內存相關工具(如:free / ps / top)等的組合顯示。 /proc/meminfo 列出了所有你想了解的內存的使用情況。進程的內存使用信息也可以通過/proc/<pid>/statm 和 /proc/<pid>/status 來查看。
atop命令是一個終端環境的監控命令。它顯示的是各種系統資源(CPU, memory, network, I/O, kernel)的綜合,並且在高負載的情況下進行了彩色標注。
free命令是一個快速查看內存使用情況的方法,它是對 /proc/meminfo 收集到的信息的一個概述。
GNOME System Monitor 是一個顯示最近一段時間內的CPU、內存、交換區及網路的使用情況的視圖工具。它還提供了一種查看CPU及內存使用情況的方法。
htop命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小、程序總內存大小、共享庫大小等的報告。列表可以水平及垂直滾動。
功能同 4 中介紹的GENOME版本。
memstat是一個有效識別executable(s), process(es) and shared libraries使用虛擬內存情況的命令。給定一個進程ID,memstat可以列出這個進程相關的可執行文件、數據和共享庫。
nmon是一個基於ncurses的系統基準測試工具,它可以監控CPU、內存、I/O、文件系統及網路資源等的互動模式。對於內存的使用,它可以實時的顯示 總/剩餘內存、交換空間等信息。
ps命令可以實時的顯示各個進程的內存使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 「–sort」選項對進程進行排序,例如按RSS進行排序:
smem命令允許你統計基於/proc信息的不同進程和用戶的內存使用情況。內存使用情況的分析可以導出圖表(如條形圖和餅圖)。
top命令提供了實時的運行中的程序的資源使用統計。你可以根據內存的使用和大小來進行排序。
vmstat命令顯示實時的和平均的統計,覆蓋CPU、內存、I/O等內容。例如內存情況,不僅顯示物理內存,也統計虛擬內存。
Ⅱ 求LCD顯示模塊 實現NiosII驅動240X128LCD顯示 VHDL語言編程 急求,求好心人幫助
/drivers/video/niosii/nois11.c
自己去看吧。還要看/drivers/video/fbmem.c 這裡面的函數有些會被調用.
給你舉個例子:
staticvoidipu_clear_usage(intipu,intdi)
{
ipu_usage[ipu][di]=false;
}
/*!
*.Itiscalledringthe
*driverbindingprocess.
*thisroutine:Framebufferinitialization,Memoryallocationand
*mapping,Framebufferregistration,IPUinitialization.
*
*@
*/
staticintmxcfb_probe(structplatform_device*pdev)
{
structipuv3_fb_platform_data*plat_data=pdev->dev.platform_data;
structfb_info*fbi;
structmxcfb_info*mxcfbi;
structresource*res;
structdevice*disp_dev;
charbuf[32];
intret=0;
/*InitializeFBstructures*/
fbi=mxcfb_init_fbinfo(&pdev->dev,&mxcfb_ops);
if(!fbi){
ret=-ENOMEM;
gotoinit_fbinfo_failed;
}
ret=mxcfb_option_setup(pdev,fbi);
if(ret)
gotoget_fb_option_failed;
/**********byzxyadd:modpara*************************************************
printk(" byzxy1:fbi->var.xres=0x%x,fbi->var.yres=0x%x ",fbi->var.xres,fbi->var.yres);
printk(" byzxy1:fbi->var.xres_virtual=0x%x,fbi->var.yres_virtual=0x%x ",fbi->var.xres_virtual,fbi->var.yres_virtual);
fbi->var.xres=800;
fbi->var.yres=480;
fbi->var.xres_virtual=1920;
fbi->var.yres_virtual=1440;
printk(" byzxy2:fbi->var.xres=0x%x,fbi->var.yres=0x%x ",fbi->var.xres,fbi->var.yres);
printk(" byzxy2:fbi->var.xres_virtual=0x%x,fbi->var.yres_virtual=0x%x ",fbi->var.xres_virtual,fbi->var.yres_virtual);
/***********************************************************/
mxcfbi=(structmxcfb_info*)fbi->par;
spin_lock_init(&mxcfbi->lock);
mxcfbi->fbi=fbi;
mxcfbi->ipu_int_clk=plat_data->int_clk;
mxcfbi->late_init=plat_data->late_init;
mxcfbi->first_set_par=true;
mxcfbi->panel_width_mm=plat_data->panel_width_mm;
mxcfbi->panel_height_mm=plat_data->panel_height_mm;
ret=mxcfb_dispdrv_init(pdev,fbi);
//byzxyadd
//printk(" byzxy1:mxcfbi->default_bpp==%d ",mxcfbi->default_bpp);
//mxcfbi->default_bpp=16;
//printk(" byzxy1:mxcfbi->default_bpp==%d ",mxcfbi->default_bpp);
if(ret<0)
gotoinit_dispdrv_failed;
ret=ipu_test_set_usage(mxcfbi->ipu_id,mxcfbi->ipu_di);
if(ret<0){
dev_err(&pdev->dev,"ipu%d-di%dalreadyinuse ",
mxcfbi->ipu_id,mxcfbi->ipu_di);
gotoipu_in_busy;
}
res=platform_get_resource(pdev,IORESOURCE_MEM,0);
if(res&&res->start&&res->end){
fbi->fix.smem_len=res->end-res->start+1;
fbi->fix.smem_start=res->start;
// printk(" byzxy2:fbi->fix.smem_start=0x%x ",fbi->fix.smem_start);
fbi->screen_base=ioremap(fbi->fix.smem_start,fbi->fix.smem_len);
// printk(" byzxy3:fbi->screen_base=0x%x ",fbi->screen_base);
// printk(" byzxy4:fbi->fix.smem_len=0x%x ",fbi->fix.smem_len);
//byzxysee2
/*.*/
if(!mxcfbi->late_init)
memset(fbi->screen_base,0,fbi->fix.smem_len);
}
mxcfbi->ipu=ipu_get_soc(mxcfbi->ipu_id);
if(IS_ERR(mxcfbi->ipu)){
ret=-ENODEV;
gotoget_ipu_failed;
}
/**/
if(!g_dp_in_use[mxcfbi->ipu_id]){
mxcfbi->ipu_ch_irq=IPU_IRQ_BG_SYNC_EOF;
mxcfbi->ipu_ch_nf_irq=IPU_IRQ_BG_SYNC_NFACK;
mxcfbi->ipu_alp_ch_irq=IPU_IRQ_BG_ALPHA_SYNC_EOF;
mxcfbi->ipu_vsync_pre_irq=mxcfbi->ipu_di?
IPU_IRQ_VSYNC_PRE_1:
IPU_IRQ_VSYNC_PRE_0;
mxcfbi->ipu_ch=MEM_BG_SYNC;
/**/
if(pdev->id==0)
mxcfbi->cur_blank=mxcfbi->next_blank=FB_BLANK_UNBLANK;
else
mxcfbi->cur_blank=mxcfbi->next_blank=FB_BLANK_POWERDOWN;
ret=mxcfb_register(fbi);
if(ret<0)
gotomxcfb_register_failed;
ipu_disp_set_global_alpha(mxcfbi->ipu,mxcfbi->ipu_ch,
true,0x80);
ipu_disp_set_color_key(mxcfbi->ipu,mxcfbi->ipu_ch,false,0);
res=platform_get_resource(pdev,IORESOURCE_MEM,1);
ret=mxcfb_setup_overlay(pdev,fbi,res);
if(ret<0){
mxcfb_unregister(fbi);
gotomxcfb_setupoverlay_failed;
}
g_dp_in_use[mxcfbi->ipu_id]=true;
ret=device_create_file(mxcfbi->ovfbi->dev,
&dev_attr_fsl_disp_property);
if(ret)
dev_err(mxcfbi->ovfbi->dev,"Error%doncreating"
"filefordispproperty ",
ret);
ret=device_create_file(mxcfbi->ovfbi->dev,
&dev_attr_fsl_disp_dev_property);
if(ret)
dev_err(mxcfbi->ovfbi->dev,"Error%doncreating"
"filefordispdevice"
"propety ",ret);
}else{
mxcfbi->ipu_ch_irq=IPU_IRQ_DC_SYNC_EOF;
mxcfbi->ipu_ch_nf_irq=IPU_IRQ_DC_SYNC_NFACK;
mxcfbi->ipu_alp_ch_irq=-1;
mxcfbi->ipu_vsync_pre_irq=mxcfbi->ipu_di?
IPU_IRQ_VSYNC_PRE_1:
IPU_IRQ_VSYNC_PRE_0;
mxcfbi->ipu_ch=MEM_DC_SYNC;
mxcfbi->cur_blank=mxcfbi->next_blank=FB_BLANK_POWERDOWN;
ret=mxcfb_register(fbi);
if(ret<0)
gotomxcfb_register_failed;
}
platform_set_drvdata(pdev,fbi);
ret=device_create_file(fbi->dev,&dev_attr_fsl_disp_property);
if(ret)
dev_err(&pdev->dev,"Error%doncreatingfilefordisp"
"property ",ret);
ret=device_create_file(fbi->dev,&dev_attr_fsl_disp_dev_property);
if(ret)
dev_err(&pdev->dev,"Error%doncreatingfilefordisp"
"devicepropety ",ret);
disp_dev=mxc_dispdrv_getdev(mxcfbi->dispdrv);
if(disp_dev){
ret=sysfs_create_link(&fbi->dev->kobj,
&disp_dev->kobj,"disp_dev");
if(ret)
dev_err(&pdev->dev,
"Error%doncreatingfile ",ret);
}
INIT_WORK(&mxcfbi->vsync_pre_work,mxcfb_vsync_pre_work);
snprintf(buf,sizeof(buf),"mxcfb%d-vsync-pre",fbi->node);
mxcfbi->vsync_pre_queue=create_singlethread_workqueue(buf);
if(mxcfbi->vsync_pre_queue==NULL){
dev_err(fbi->device,
"Failedtoallocvsync-preworkqueue ");
ret=-ENOMEM;
gotoworkqueue_alloc_failed;
}
#ifdefCONFIG_HAS_EARLYSUSPEND
mxcfbi->fbdrv_earlysuspend.level=EARLY_SUSPEND_LEVEL_DISABLE_FB;
mxcfbi->fbdrv_earlysuspend.suspend=mxcfb_early_suspend;
mxcfbi->fbdrv_earlysuspend.resume=mxcfb_later_resume;
mxcfbi->fbdrv_earlysuspend.data=pdev;
register_early_suspend(&mxcfbi->fbdrv_earlysuspend);
#endif
//byzxydel,toloadlogo.bmp
printk(" byzxy3:fbi->var.xres=%d,fbi->var.yres=%d ",fbi->var.xres,fbi->var.yres);
printk(" byzxy3:fbi->var.xres_virtual=%d,fbi->var.yres_virtual=%d ",fbi->var.xres_virtual,fbi->var.yres_virtual);
printk(" byzxy3:fbi->var.bits_per_pixel=%d,fbi->var.pixclock=%d ",fbi->var.bits_per_pixel,fbi->var.pixclock);
// printk(" byzxy3:fbi->var.xres_virtual=0x%x,fbi->var.yres_virtual=0x%x ",fbi->var.xres_virtual,fbi->var.yres_virtual);
#ifdefCONFIG_LOGO
fb_prepare_logo(fbi,0);
fb_show_logo(fbi,0);
#endif
return0;
workqueue_alloc_failed:
mxcfb_setupoverlay_failed:
mxcfb_register_failed:
get_ipu_failed:
ipu_clear_usage(mxcfbi->ipu_id,mxcfbi->ipu_di);
ipu_in_busy:
init_dispdrv_failed:
fb_dealloc_cmap(&fbi->cmap);
framebuffer_release(fbi);
get_fb_option_failed:
init_fbinfo_failed:
returnret;
}
staticintmxcfb_remove(structplatform_device*pdev)
{
structfb_info*fbi=platform_get_drvdata(pdev);
structmxcfb_info*mxc_fbi=fbi->par;
if(!fbi)
return0;
#ifdefCONFIG_HAS_EARLYSUSPEND
unregister_early_suspend(&mxc_fbi->fbdrv_earlysuspend);
#endif
device_remove_file(fbi->dev,&dev_attr_fsl_disp_dev_property);
device_remove_file(fbi->dev,&dev_attr_fsl_disp_property);
mxcfb_blank(FB_BLANK_POWERDOWN,fbi);
mxcfb_unregister(fbi);
mxcfb_unmap_video_memory(fbi);
if(mxc_fbi->ovfbi){
device_remove_file(mxc_fbi->ovfbi->dev,
&dev_attr_fsl_disp_dev_property);
device_remove_file(mxc_fbi->ovfbi->dev,
&dev_attr_fsl_disp_property);
mxcfb_blank(FB_BLANK_POWERDOWN,mxc_fbi->ovfbi);
mxcfb_unsetup_overlay(fbi);
mxcfb_unmap_video_memory(mxc_fbi->ovfbi);
}
ipu_clear_usage(mxc_fbi->ipu_id,mxc_fbi->ipu_di);
if(&fbi->cmap)
fb_dealloc_cmap(&fbi->cmap);
framebuffer_release(fbi);
return0;
}
/*!
*.
*/
staticstructplatform_drivermxcfb_driver={
.driver={
.name=MXCFB_NAME,
},
.probe=mxcfb_probe,
.remove=mxcfb_remove,
.suspend=mxcfb_suspend,
.resume=mxcfb_resume,
};
#ifdefCONFIG_HAS_EARLYSUSPEND
staticvoidmxcfb_early_suspend(structearly_suspend*h)
{
structplatform_device*pdev=(structplatform_device*)h->data;
structfb_info*fbi=platform_get_drvdata(pdev);
structmxcfb_info*mxcfbi=(structmxcfb_info*)fbi->par;
pm_message_tstate={.event=PM_EVENT_SUSPEND};
structfb_eventevent;
intblank=FB_BLANK_POWERDOWN;
if(mxcfbi->ipu_ch==MEM_FG_SYNC)
return;
if(strstr(mxcfbi->dispdrv->drv->name,"hdmi")){
/**/
memset(fbi->screen_base,0,fbi->fix.smem_len);
return;
}
mxcfb_core_suspend(pdev,state);
event.info=fbi;
event.data=␣
fb_notifier_call_chain(FB_EVENT_BLANK,&event);
}
staticvoidmxcfb_later_resume(structearly_suspend*h)
{
structplatform_device*pdev=(structplatform_device*)h->data;
structfb_info*fbi=platform_get_drvdata(pdev);
structmxcfb_info*mxcfbi=(structmxcfb_info*)fbi->par;
structfb_eventevent;
if(mxcfbi->ipu_ch==MEM_FG_SYNC)
return;
/**/
if(strstr(mxcfbi->dispdrv->drv->name,"hdmi"))
return;
mxcfb_core_resume(pdev);
event.info=fbi;
event.data=&mxcfbi->next_blank;
fb_notifier_call_chain(FB_EVENT_BLANK,&event);
}
#endif
/*!
*.Thefunctionregistersthepower
*
*fbmem.c
*
*@
*/
int__initmxcfb_init(void)
{
returnplatform_driver_register(&mxcfb_driver);
}
voidmxcfb_exit(void)
{
platform_driver_unregister(&mxcfb_driver);
}
mole_init(mxcfb_init);
mole_exit(mxcfb_exit);
Ⅲ 大佬手機刷入win10系統開機 小米8多少原生系統可以嘗鮮
作為一名鍾愛刷機的小強,什麼原生、移植包、官改包,只要有資源,有大佬能做出來。我真的超級樂意去感受,刷入之後感受它的新鮮感和未知的BUG。突然感覺自己有點像刷機屆的西門大官人,哈哈哈……喜新厭舊。
手持米8這款神器,雖然他的官方系統更到MIUI12就宣布停止了維護。可是它的刷機包還真是不少,移植包的就有來自酷友的@YouLinw 大佬移植的Flyme和一加的H2OS。原生系統更是多似九天銀河,比如Pixel、Lineage os、EvolutionX、DerpFest、Arrow OS、Atom、BootleggersROM、AOSiP、Havoc、POSP、Revenge OS、Syberia等等以及如馬丁龍豬創建的魔趣。穩定省電急速的官改更是不用說,W大、白鴿、香水、蛋黃、暗夜、小宛宛、烏堆小透明、星空未來等等。真的太多了太多了,此時此刻我真的想引用一句伏拉夫的至理名言「我們小米8真是太厲害了!」
米6雖然依然堅守米粉一線崗位,成為最佳釘子戶!可我們米8也是最佳的新一代刷機王,為什麼這么說呢?繼小米4適配Windows系統之後,手機運行win10的大任就由米8來抗了。來自UP主 5超級菜鳥5公布了win10刷入小米8的最新進展,這一下引爆機友們的興趣。
米8在Recovery刷入,這個熟悉的畫面。也是在下多少次三清後的重啟界面,這才是男人夢魂牽繞的玩具啊!再次佩服這個項目的大佬,確實適配的很厲害,要不咋說高手在民間。
開機運行的界面,不再是安卓轉圈圈載入。而是真的像黑客一般數據,存儲路徑位置的瘋狂載入。看著都舒服,莫名的高大上解壓。不知有密集恐懼症的人會不會感到不適?
看到大佬操作的時間,從刷入第一次開機再到開機界面大概有2分鍾。祝大佬早日突破,我已經迫不及待的攻陷win10系統,讓這個小美人刷進我的米8試一試。
不要在你的主手機中閃爍這個UEFI固件!!!
它非常不穩定,您可能會丟失數據。
UFS工作!
可以引導Linux Arm
時鍾工作!
測試ACPI等。添加了表格。
並且可以載入Windows PE。
2020.1.6修復5編譯器錯誤。
2020.1.7開始工作,在我手機上成功運行。
2020.1.8固定顯示。
2020.4.17修復UFS驅動器和修復內存映射(謝謝檸檬1味)。
2020.4.19添加ACPI等。表和修復DSDT 24錯誤。(PS。ACPI和SSDT等。表格由提供5超級菜鳥5
2020.4.24修復時鍾,時鍾工作正常&&將SmemDxe SPI SPMI硬體驅動程序PmicDxe按鈕xe晶元信息xe添加到二進制&&添加USB驅動程序
2020.4.30重新添加內存映射並可以將窗口引導至藍屏(停止代碼:內存管理器)和(停止代碼:IRQL不小於或等於)
2020.5.6解決很多問題,但不解決任何問題。
2020.5.8修復很多,但什麼都不做。
2020.5.10可以啟動窗口。感謝檸檬1味耐心和巨大的幫助!
2020.5.11更改SMBIOS信息並添加一些二進制文件
1.修復fts觸摸屏
2.修理ACPI的桌子
3.分割UFS
4 .讓USB工作
Ⅳ linux systool 在哪個工具包中
systool命令
硬體管理
systool命令指令顯示基於匯流排、類和拓撲顯示系統中設備的信息。
語法
systool(選項)(參數)
選項
-a:顯示被請求資源的屬性;
-b<匯流排>:顯示指定匯流排的信息;
-c<class>:顯示指定類的信息;
-d:僅顯示設備;
-h:顯示指令的用法;
-m<模塊名稱>:顯示指定模塊的信息;
-p:顯示資源的「sysfs」絕對路徑;
-v:顯示所有屬性;
-A<屬性>:顯示請求資源的屬性值;
-D:僅顯示驅動程序信息;
-P:顯示設備的父類。
參數
設備:指定要查看信息的設備名稱。
實例
[root@localhost ~]# systool
Supported sysfs buses:
acpi
i2c
ide
pci_express
pci
pcmcia
platform
pnp
scsi
serio
usb
Supported sysfs classes:
backlight
cpuid
dma_v3
firmware
graphics
hidraw
hwmon
i2c-adapter
input
leds
mem
misc
msr
net
pci_bus
pcmcia_socket
printer
raw
sas_device
sas_end_device
sas_expander
sas_host
sas_phy
sas_port
scsi_device
scsi_disk
scsi_generic
scsi_host
sound
tty
usb_device
usb_endpoint
usb_host
vc
vtconsole
Supported sysfs devices:
acpi
pci0000:00
platform
pnp0
sequencer2
sequencer
seq
system
timer
Supported sysfs moles:
8250
acpi_memhotplug
ac
asus_acpi
ata_piix
auth_rpcgss
backlight
battery
button
cifs
cpufreq
crypto_api
dell_wmi
dm_log
dm_mem_cache
dm_message
dm_mirror
dm_mod
dm_multipath
dm_raid45
dm_region_hash
dock
e1000e
edac_mc
ehci_hcd
exportfs
ext3
hwmon
i2c_core
i2c_ec
i2c_i801
i7core_edac
i8042
ip_conntrack_netbios_ns
ip_conntrack
ip_tables
iptable_filter
ipv6
it821x
jbd
joydev
keyboard
libata
lockd
lp
md_mod
mousedev
mpt2sas
nfnetlink
nfs_acl
nfsd
nls_utf8
ohci_hcd
parport_pc
parport
pci_hotplug
pcmcia
pcmcia_core
pcspkr
piix
power_meter
printk
processor
psmouse
rsrc_nonstatic
sbs
scsi_dh
scsi_mod
scsi_transport_sas
sd_mod
serio_raw
sg
shpchp
snd_hda_intel
snd_hwdep
snd_mixer_oss
snd_page_alloc
snd_pcm_oss
snd_pcm
snd_seq_device
snd_seq_mmy
snd_seq_midi_event
snd_seq_oss
snd_seq
snd_timer
snd
soundcore
sunrpc
tcp_bic
tpm_bios
tpm_tis
tpm
uhci_hcd
usbcore
usbhid
video
wmi
x_tables
xfrm_nalgo
xt_limit
xt_state
xt_tcpudp
yenta_socket
Ⅳ 如何用linux命令徹底刪除文件
1. shred – 覆蓋文件以隱藏內容
shred可覆蓋文件以隱藏內容,另外還可以刪除文件。
$ shred -zvu -n 5 passwords.list
這個命令包括的幾個選項有:
-z – 最後一次覆蓋添加0,以隱藏覆蓋操作
-v – 能夠顯示操作進度
-u – 覆蓋後截斷並刪除文件
-n – 指定覆蓋文件內容的次數(默認值是3次)
shred – 覆蓋文件以隱藏內容。
你可以在shred的參考手冊頁找到更多的使用選項和信息:
$ man shred
2. wipe – 安全地擦除Linux下的文件
Linux的wipe命令,可安全地刪除磁存儲器中的文件,後續無法恢復已刪除文件或目錄的內容。
首先,你需要安裝wipe工具才能使用它,運行下面命令:$ sudo apt-get install wipe [在Debian及其衍生版上]
$ sudo yum install wipe [在基於RedHat的系統上]
下面這個命令將擦除目錄private下面的一切內容。
$ wipe -rfi private/*
相關標志的用法如下:
-r – 告訴wipe遞歸查詢子目錄
-f – 啟用強行刪除,並禁用確認查詢
-i – 顯示刪除過程的進度
wipe – 安全地刪除Linux下的文件
注意:wipe只能適用於磁存儲器,對於固態磁碟要使用其他方法。
仔細閱讀wipe的參考手冊頁,了解更多的使用選項和使用說明:
$ man wipe
3. 面向Linux的secure-deletetion工具包
secure-delete是一套安全文件刪除工具,包含SRM(secure_deletion)工具,它是用來安全地刪除文件。
首先,你要安裝它,為此使用下面這個相關命令:$ sudo apt-get install secure-delete [在Debian及其衍生版上]
$ sudo yum install secure-delete [在基於RedHat的系統上]
一旦安裝完畢,你可以使用srm工具,在Linux系統上安全地刪除文件或目錄,如下所示。
$ srm -vz private/*
使用的選項如下:
-v – 啟用詳細信息模式
-z – 用0而不是隨機數據擦除上一次寫入的內容
srm – 安全刪除Linux下的文件
仔細閱讀srm的參考手冊頁,了解更多的使用選項和信息:
$ man srm
4. sfill –安全免費的磁碟/索引節點空間擦除工具
ffill是secure-deletetion工具包的一部分,它是一種安全免費的磁碟和索引節點空間擦除工具,可以安全地刪除閑置磁碟空間上的文件。sfill可檢查指定分區上的閑置空間,並用來自/dev/urandom的隨機數據來填充。
下面這個命令將在我的根分區上執行sfill,-v參數選項符啟用詳細信息模式:
$ sudo sfill -v /home/aaronkilik/tmp/
假設你創建了一個單獨的分區,/home用來存儲平常的系統用戶主目錄,那麼你可以在該分區上指定一個目錄,對它進行sfill操作:
$ sudo sfill -v /home/username
sfill有幾個局限性,參考手冊頁中有說明,你還能找到另外的使用標志和操作說明:
$ man sfill
注意:secure-deletetion工具包中的下面兩個工具(sswap和sdmem)與本文並不直接有關,不過我們會介紹它們,也許將來用得著。
5. sswap – 安全交換分區擦除工具
這是一個安全分區擦除工具,sswap刪除的數據駐留在交換分區上的數據。
警告:記得在使用sswap之前先卸載掉你的交換分區!不然系統可能會崩潰!
只要確定你的交換分區(並使用swapon命令,核實分頁和交換設備/文件是否開啟),下一步,使用swapoff命令,禁用分頁和交換設備/文件。
然後,在交換分區上運行sswap命令:
$ cat /proc/swaps
$ swapon
$ sudo swapoff /dev/sda6
$ sudo sswap /dev/sda6 #這個命令需要一段時間才能完成,默認情況下執行38趟
sswap – 安全交換分區擦除工具
確保仔細閱讀sswap的參考手冊頁,了解更多的使用選項和信息:
$ man sswap
6. sdmem – 安全內存擦除工具
sdmem是安全內存擦除工具,它旨在安全地刪除駐留在內存中的數據。
它原先名叫smem,但是在Den系統上,有另一個程序包名叫smem(報告每個進程和每個用戶的內存使用情況),於是開發人員將它改名為sdmem。
$ sudo sdmem -f -v
想了解更多的使用信息,請仔細閱讀sdmem的參考手冊頁:
$ man sdmem
Ⅵ 2021-01-11:linux中,如何看內存的使用情況呢
1./proc/meminfo
查看 RAM 使用情況最簡單的方法是通過 /proc/meminfo。這個動態更新的虛擬文件實際上是許多其他內存相關工具 (如:free / ps / top) 等的組合顯示。/proc/meminfo 列出了所有你想了解的內存的使用情況。進程的內存使用信息也可以通過 /proc//statm 和 /proc//status 來查看。
$cat/proc/meminfo
圖0:Linux下查看內存使用情況方法總結
2.atop
atop 命令是一個終端環境的監控命令。它顯示的是各種系統資源(CPU, memory, network, I/O, kernel)的綜合,並且在高負載的情況下進行了彩色標注。
$sudoatop
3.free
free 命令是一個快速查看內存使用情況的方法,它是對 /proc/meminfo 收集到的信息的一個概述。
$free-h
4.GNOME System Monitor
GNOME System Monitor 是一個顯示最近一段時間內的 CPU、內存、交換區及網路的使用情況的視圖工具。它還提供了一種查看 CPU 及內存使用情況的方法。
$gnome-system-monitor
5.htop
htop 命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小、程序總內存大小、共享庫大小等的報告。列表可以水平及垂直滾動。
$htop
6.KDE System Monitor
功能同 4 中介紹的 GENOME 版本。
$ksysguard
7.memstat
memstat 是一個有效識別 executable(s), process(es) and shared libraries 使用虛擬內存情況的命令。給定一個進程 ID,memstat 可以列出這個進程相關的可執行文件、數據和共享庫。
$memstat-p
8.nmon
nmon 是一個基於 ncurses 的系統基準測試工具,它可以監控 CPU、內存、I/O、文件系統及網路資源等的互動模式。對於內存的使用,它可以實時的顯示總 / 剩餘內存、交換空間等信息。
$nmon
9.ps
ps 命令可以實時的顯示各個進程的內存使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (totalamount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 「–sort」 選項對進程進行排序,例如按 RSS 進行排序:
$psaux–sort-rss
圖8:Linux下查看內存使用情況方法總結
10.smem
smem 命令允許你統計基於 / proc 信息的不同進程和用戶的內存使用情況。內存使用情況的分析可以導出圖表(如條形圖和餅圖)。
11.top
top 命令提供了實時的運行中的程序的資源使用統計。你可以根據內存的使用和大小來進行排序。
12.vmstat
vmstat 命令顯示實時的和平均的統計,覆蓋 CPU、內存、I/O 等內容。例如內存情況,不僅顯示物理內存,也統計虛擬內存。