导航:首页 > 编程系统 > 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相关的资料

热点内容
微信白拿官网 浏览:362
安卓系统怎么不更新系统文件 浏览:976
appsupport什么意思 浏览:705
html5中加入js 浏览:441
美服applestoreid 浏览:889
微信数据文件能清吗 浏览:107
图片编辑到文件里打印怎么有重影 浏览:593
舟山四轴编程培训哪个学校好 浏览:542
没加别人QQ可以发word文件 浏览:51
手机桌面的文件路径 浏览:892
改款新宝来怎么使用手机app 浏览:281
dede工具 浏览:507
5g网盟app怎么下载 浏览:486
微信备份老是连接中断 浏览:886
出台多少份文件 浏览:380
鞋子怎么搭配衣服的app 浏览:755
文件名使用的通配符的符号是什么 浏览:916
lol分卷文件损坏怎么办 浏览:276
6分管车螺纹怎么编程 浏览:732
海口农商银行信用卡app是什么 浏览:770

友情链接