首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux^M困惑

我们有时在Windows编辑文件,放到了Linux环境中,打开文件,可能发现每行结尾多了一个“^M”,导致一些在Windows能执行解析程序,放到了Linux中,执行就会报错,问题就出在这个"^M...在Linux中vim无法显示\r,因为ascii中对应不是Linux标准acsii字符,其实其对应ASCII码十进制形式13(无显示形式),对应八进制形式15(显示为^M)。...对这个问题解决可能有很多种, 1. 在Windows使用文本工具进行转换win-->linux,例如notepad++、UltraEdit直接进行转换。 2....在Linux,可以用dos2unix file,将文件转换格式。 3. 在Linux,可以用cat file | tr -d "\r" > new_file,进行替换。 4....在Linux,可以用sed 's/^M//old_file > new_file,进行替换。

1.8K30

LinuxVIRT,RES,SWAP

这里分享下个人对其中几个概念理解 程序地址空间: 当程序在磁盘上存储时候,我们可以用相应工具来分析文件结构,这个时候显示地址 程序文件中描述 地址空间, 比如用 readelf 命令来查看一个...elf文件信息,其中地址都属于 程序地址空间; 内存虚拟地址空间(VIRT): 磁盘上程序要运行,都需要载入内存,这时候就出现了内存虚拟地址空间,一般内存虚拟地址空间和 程序地址空间不同,一条申请内存空间语句...SWAP 和 RES: 理解了上面的VIRT, 那么SWAP就表示 那部分存储在swap分区上大小. 而RES 就表示 使用物理内存大小....这里需要注意: 一个进程占用RES大小包含了改进程单独使用RES, 同时也包含了系统共享内存空间,所以要判断一个进程独自占用物理内存大小,需要用RES 减去 其占用共享内存RES部分...通过ps 命令rsz option 来输出内存使用情况; C. cat /proc/[PID]/status 来查看 内存相关情况, 其实该命令结果不止显示内存,内存信息其内容一小部分;

6.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

linux top命令VIRT,RES,SHR,DATA含义

而不是实际使用量 RES:resident memory usage 常驻内存 1、进程当前使用内存大小,但不包括swap out 2、包含其他进程共享 3、如果申请100m内存,实际使用10m...2、真正该程序要求数据空间,真正在运行中要使用。 top 运行中可以通过 top 内部命令对进程显示方式进行控制。...VIRT=SWAP+RES p SWAP 进程使用虚拟内存中,被换出大小,单位kb。 q RES 进程使用、未被换出物理内存大小,单位kb。...RES=CODE+DATA r CODE 可执行代码占用物理内存大小,单位kb s DATA 可执行代码以外部分(数据段+栈)占用物理内存大小,单位kb t SHR 共享内存大小,单位kb u nFLT...sched.h 默认情况仅显示比较重要 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。

3.4K20

linux,Makefile啥??

Linux环境程序员如果不会使用GNU make来构建和管理自己工程,应该不能算是一个合格专业程序员,至少不能称得上Unix程序员。...在Linux(unix)环境使用GNUmake工具能够比较容易构建一个属于你自己工程,整个工程编译只需要一个命令就可以完成编译、连接以至于最后执行。...Makefile命名规则 默认情况,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、 “makefile”、“Makefile”文件,在这三个文件名中,最好使用“Makefile...最好不要用“GNUmakefile”,GNUmake识别的。...Makefile也可以为其他名字,比如makefile.linux,但你需要使用make参数(-f or --file)制定对应文件,例如: make -f makefile.linux Makefile

1.1K20

为什么计算机最小存储单位字节?而最小到传输单位bit?

而事实上电脑中还有比字节更小单位,因为一个字节由八个二进制位组成,换一句话说,每个二进制位所占空间才是电脑中最小单位,我们把它称为位,也称比特(bit)。由此可见,一个字节等于八个位。...另外,内存中运算最小存储单位字节,位运算也是在一个字节存储单位基础上进行,所以存储最小单位可以理解为字节。...2.bit二进制数一位包含信息或2个选项中特别指定1个需要信息量称为一比特,表示信息最小单位,只有两种状态:0和1。...电脑内部电路工作有高电平和低电平两种状态.所以就用二进制来表示信号,以便计算机识别。所以计算机能传输最小单位当然你信号单位bit,而不是字节,串口最小也有一位传递。...另外数字信息流基本单位bit(比特),时间基本单位s(秒),因此bit/s(比特/秒)描述带宽单位,1bit/s带宽基本单位,所谓带宽其实指的是传输速度快慢,也就是指在一个固定时间内

8.9K53

Linux程序如何被执行

之前写过一篇文章 Linuxc语言中main函数如何被调用,该篇文章侧重于从user space层面讲程序运行,而文章中提到有关kernel space层面的相关系统调用,比如fork、execve...return retval; ... } 该方法大致逻辑: 1. 分配struct linux_binprm实例,并赋值给bprm。 2....linux可执行文件格式一般为elf,所以我们直接看其load_binary方法: // fs/binfmt_elf.c static int load_elf_binary(struct linux_binprm...会检查该程序依赖动态链接库,加载这些库,并解析相应函数地址 // 之后再调用源程序自己入口函数,这样,也就对应到文章开始提到 // main函数如何被调用那篇文章了...好了,到这里,整个程序内核部分执行流程就讲完了,结合本文开始提到那篇文章 Linuxc语言中main函数如何被调用,有关linux程序执行就全部讲清楚了。

3.1K20

linux系统如何管理文件

二、inode结构体: 1、在讲这个之前,我想接触过Linux好友,都会听过这句话:在linux系统,一切都是文件。...这个确实是,怎么讲,不知道你有没有注意,在windows,我们可以看到硬盘分区:C盘、D盘、E盘等,但是你在linux,你看不到这样分盘标识符。...这种由多个扇区组成文件存取最小单位,块大小,最常见4KB,即连续八个sector组成一个block,文件数据都储存在块中,那么很明显,我们还必须找到一个地方储存文件元信息,比如文件创建者...inode (index node) 表中包含文件系统所有文件列表 3、在linux系统,操作系统最初拿到信息文件名,最终得到文件内容。...三、vnode结构体: 1、在讲这之前,我们还是要讲一什么文件描述符,前面的文章我只是简单讲了一,这里还是补充一: a、文件描述符(fd)本质一个数字,这个数字本质上进程表中文件描述符表一个表项

1.8K20

(一)洞悉linuxNetfilter&iptables:什么Netfilter?

什么Netfilter? 为了说明这个问题,首先看一个网络通信基本模型: ?...在数据发送过程中,从上至依次“加头”过程,每到达一层数据就被会加上该层头部;与此同时,接受数据方就是个“剥头”过程,从网卡收上包来之后,在往协议栈上层传递过程中依次剥去每层头部,最终到达用户那儿就是裸数据了...NetfilterLinux 2.4.x引入一个子系统,它作为一个通用、抽象框架,提供一整套hook函数管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型连接跟踪成为了可能...但是无论如何,这些回调函数最后必须向Netfilter报告一该数据包死活情况,因为毕竟每个数据包都是Netfilter从人家协议栈那儿借调过来给兄弟们Happy,别个再怎么滴也总得“活要见人,死要见尸...如果没有,则直接返回okfn函数指针所指向函数继续走协议栈;如果有,则调用nf_hook_slow函数,从而进入到Netfilter框架中去进一步调用已注册在该过滤点钩子函数,再根据其返回值来确定是否继续执行由函数指针

1.8K20

linux du命令 用于做什么,用法怎样

今天这篇我们来学习和了解“linux du命令 用于做什么,用法怎样?”,下文讲解详细,步骤过程清晰,对大家进一步学习和理解“linux du命令 用于做什么,用法怎样?”...-k             以千字节(KB)为计算单位 -m            以兆字节(M)为计算单位 -c, –total 最后加上一个总计(系统缺省) -D, –dereference-args...–si   跟-h 效果一样,只是以1000为换算单位 -l, –count-links 计算所有的文件大小,对硬链接文件,则计算多次。...–max-depth=N 只列出深度小于max-depth目录和文件信息 –max-depth=0 时候效果跟–s 一样 使用案例 root@ubuntu:/# cd /home/web/ root...找出大文件 磁盘空间被耗尽时候,免不了要清理一,比如说/home目录太大,就可以使用下面命令看看到底谁: du -s /home/* | sort -nr 上述内容具有一定借鉴价值,感兴趣朋友可以参考

1.1K30

Linuxc语言中main函数如何被调用

当我们在shell执行一个程序时候,shell内部首先会用fork系统调用来新建一个进程,然后再用execve系统调用把目标程序加载到内存中,并将其参数及环境变量等压入栈中,之后再执行目标程序入口函数...由于linux程序一般都是elf格式,所以入口函数通常存放在elf header e_entry字段里,默认为_start函数。...该_start函数并不是我们写,而是gcc在编译我们程序时,将glibc里对应_start函数嵌入到我们程序里。...该段汇编代码注释已经把其作用讲很清楚了,大意就是按照c语言calling convention,先把__libc_start_main函数所需参数放入到对应寄存器或栈中,再调用__libc_start_main...exit (result);} 上面就是对应__libc_start_main函数,由上可见,该函数参数及其顺序和前面的_start函数里按照c语言calling convention准备参数及顺序一致

3.1K20

锲而不舍 —— M 怎样找工作?(八)

实际情況调度器每调度 61 次并且全局队列有可运行 goroutine 情况才会调用 globrunqget 函数尝试从全局获取可运行 goroutine。...我们知道, t _p_.runq 队尾,因此这行代码表达真正意思将从 p2 偷来工作,神不知,鬼不觉地放到 _p_.runq 队尾,之后,再悄悄改一 `_p_.runqtail 就把这些偷来工作据为己有了...注意,这两个函数传入参数都是一样:&_g_.m.park,它类型: type note struct { key uintptr } 很简单,只有一个 key 字段。...note 底层实现机制跟操作系统相关,不同系统使用不同机制,比如 linux 使用 futex 系统调用,而 mac 则是使用 pthreadcondt 条件变量,note 对这些底层机制做了一个抽象和封装...// 被唤醒,更新标志 gp.m.blocked = false } } 继续往下追: // runtime/os_linux.go func futexsleep(addr *

61230

PQ M语言代码不是写出来改出来——写在M开篇之前

小勤:PowerQueryM语言好可怕啊,随随便便都是一长串东东,看着都晕菜了!怎么学得来啊!...大海:哈哈,你觉得这是正常人类能写出来吗? 小勤:恐怕不能吧,反正我觉得学一辈子估计都写不出来。...大海:那都不是写出来,都是靠自动生成主要代码后,按需要修改一关键地方就可以了。...在Power Query里,M语言学习重在理解,绝大部分步骤代码都是靠功能操作自动生成,然后对一些参数进行修改即可。后面的很多案例里都会体现这一点。 小勤:啊。那还好,不然我真要被吓住了。...同时,再练时候,你可以适当看一每个基础操作生成代码是什么样子,这个不需要你记,能简单看懂里面大概什么意思就可以了。有个印象。 小勤:好

41420

LINUXPHP

由于linux系统稳定性,大部分PHP服务器都被部署在linux上,而且像redis等扩展在linux能得到更好支持,所以对于PHP程序员来说,使用linux功底也相当重要,接下来总结一我从一开始在...linux安装配置linux心得。...linux系统安装 首先是选择linux操作系统,我使用Cent OS 6.7 ,它类似红帽系统,简单易接触,而且开源免费。...用过小巧virtual box,在win7安装要改theme主题文件,辛苦装好环境因为未知原因(兼容问题排除后,猜测BIOS设置问题,可参考)打不开虚拟机而放弃后,终于选择了VM,VM安装linux...说一要注意地方吧:虚拟机配置选择“桥接模式”,这样,虚拟机和主机就在同一个IP段,可以很轻松地互相访问,VM如图: ? 然后我们经常要遇到问题网络配置、和虚拟之间交互、yum配置。

3.6K80
领券