導航:首頁 > 編程系統 > linuxsmem

linuxsmem

發布時間:2023-06-14 05:25:52

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=&blank;
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 進行排序:

閱讀全文

與linuxsmem相關的資料

熱點內容
迷你編程登錄迷你號驗證碼是什麼 瀏覽:398
做數據表如何打出平方 瀏覽:447
在vmos下載的文件路徑在哪 瀏覽:771
有什麼購物app是用微信支付的 瀏覽:99
數控編程中夾持什麼意思 瀏覽:295
文件夾能容納多少張截圖 瀏覽:85
視頻文件查找 瀏覽:786
如何進入java的編程界面 瀏覽:371
二級開發者還有哪些app 瀏覽:241
app充值請聯系itunes 瀏覽:678
矢量app和cdr哪個好 瀏覽:85
系統文件壞了如何修復 瀏覽:20
鍵盤系統文件誤刪 瀏覽:738
白金英雄壇所有版本 瀏覽:842
ps文件轉hsj 瀏覽:382
哪個網站電影 瀏覽:490
ps4游戲文件格式名稱 瀏覽:290
caxa教程2007 瀏覽:832
新點是什麼小說網站 瀏覽:753
魔獸世界冰封王座3版本轉換器 瀏覽:418

友情鏈接