重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
——“哈喽,能请教你一下怎样在R server中调用Linux下的工具?”
创新互联建站服务项目包括罗城网站建设、罗城网站制作、罗城网页制作以及罗城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,罗城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到罗城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
——“你为什么要这么做呢?”
——“我想把Linux工具输出的结果直接在R中分析,不想换来换去”
bedtools 是一个非常香的工具,几乎是人尽皆知,是一个强大的处理bed等文件的工具,正如其自己描述的一样: a powerful toolset for genome arithmetic 。bedtools目前只支持在Linux下以命令行的形式运行,所以我们经常会遇到上面的问题。
那么如何解决呢?给大家分享一个好物,既然我们不想在Linux下运行bedtools,那为什么不在R下运行呢?感谢 北卡罗来纳大学教堂山分校的Phanstiel Lab 给了我们这样的机会,开发出了R下的bedtools—— bedtoolsr 。 不过,有喜必有悲,看下面这句话:
bedtoolsr should work on any system with R and bedtools installed. It has been tested on macOS (version 10.14 "Mojave") and Linux (Ubuntu version 18.04). bedtools is not available for Windows; however, you can either use a virtual machine or Windows Subsystem for Linux . In either case, R from the Windows side would not be able to access bedtools running on the Linux side, so R and bedtoolsr would also have to be installed on the Linux side.
bedtools intersect的功能不用多介绍,直接上图:
这不是和bedtools intersect功能选项几乎一模一样?
这里还是用官网的示例数据来做,主要是想输出有交集的染色体坐标区间及相交区域的大小:
更多的功能就待大家去探索了~把这个包支持的函数全部列在下面了,对应bedtools的工具找就好了!
今天又是摸鱼的一天!
一次摸鱼的机会,看到群里小伙伴问了一嘴 netstat -tnpl 这个命令是干啥的,这个命令用过很多,但是我其实也没有认真研究过,但是这是一个问题,我不能放过它,而且 netstat 这个命令我日常就用来查询端口的监听状态了,所以趁着这次机会,一起搞懂 netstat 这个命令。
netstat 这个命令在 Linux 、Windows 和 MacOS 操作系统下都兼容,不同的是,netstat 在 UNIX 下显示详细信息的命令是 man netstat ,而在 Linux 和 Windows 下面是 netstat --help 。
当我在 Linux 下执行 man netstat 命令之后,系统显示出来的提示着实让我吓一大跳,看来这个命令内容很多啊!不要被这么长的描述吓到,我们一步一步来。
首先来了解一下 netstat 这个命令是干啥的。
官方给我们的解释就是
列出网络状态
但是这网络状态都有啥呢?带着疑问,我在 Linux 下执行了一下。
打印出来是一个六元组,六元组每一列的内容分别是
仔细看了一下这个六元组,这好像表明 netstat 这个命令是用于监控传入和传出的网络连接和状态的一个命令行工具啊 。
从整体上来看,netstst 的输出结果可以分为两部分,一部分是 Active Internet connections ,称为 活跃 TCP 连接 ,其中的 Recv-Q 和 Send-Q 指的是客户端发送队列和客户端接收队列。这两个队列的值一般都是 0 ,如果不是 0 的话表示有消息堆积还没有发出去/取出,这种情况一般很少见到。
另外一部分是 Active UNIX domain sockets , 称为 活跃的 Unix 域套接字 ,这部分中的 socket 和网络 socket 套接字一样,不同的是,这块只能用来本地通信,性能要比网络 socket 高。Active UNIX domain sockets 也是一个六元组,分别表示
下面我们来解释一下 netstat --help 列出来的一些参数,我们从最常见的一些参数开始入手,这样大家看起来也能形成阶段性记忆,不至于失去重点。
-a 这个参数默认会监控所有的 socket 连接。
包括已经监听的、已经建立连接的、客户端发送的等待服务器的和未被监听都会被列出来。
netstat -at/-t
netstat -at 和 netstat -t 这俩后缀都是用来监听与 TCP 协议有关的端口,不同的是 netstat -at 会监听所有 State(状态)下的端口,而 netstat -t 仅仅会监听 ESTABLISHED 状态的端口。
netstat -at
netstat -t
netstat -au/-u
同样的, netstat -au 和 netstat -u 都会监控与 UDP 有关的端口,不同的是 netstat -au 会监听所有 State(状态)下的端口,而 netstat -u 仅仅会监听 ESTABLISHED 状态的端口。
netstat -au
netstat -u
我这里测试是没有监控已经建立连接状态下的 UDP 协议。
netstat -ap
这条命令用于列出程序运行的端口,常用的命令是
比如我们要找 http 程序,就是 Netstat -ap|grep http
还可以直接列出端口号
netstat -l 用于监听正在处于监听状态的端口(读起来还真有那么点费劲,为了读起来更顺畅,后面直接使用 列出 替换监听)。
netstat -lt 只用于列出所有监听 TCP 端口。
netstat -lu 只用于列出所有监听 UDP 端口。
netstat -lx 只用于列出所有监听 UNIX 端口。
netstat -s 用于列出所有端口的统计信息。
netstat -st 用于列出 TCP 端口的统计信息。
netstat -su 用于列出 UDP 端口的统计信息。
netstat -p 可以与其他参数一起使用,例如 netstat -pt 就可以列出服务名称和 PID 号。
使用 netstat -c 将每隔一秒列出网络信息。
netstat -r 用于列出路由核心信息。
这条命令会列出系统支持的 地址族(Address Family) 。
netstat -i 用来列出网络接口数据包,包括传输和接收具有 MTU(最大传输单元)的数据包。
另外, netstat -ie 还用于列出内核接口表,和 ifconfig 命令很相似
所以,回到文章刚开始的那个疑问,netstat -tnpl 是干什么用的,其实这就是几个参数的组合
我们执行一下这个命令。
另外,在 Linux 中,已经推荐使用 ss 来替代 netstat ,使用 ip route 来替代 netstat -r ,使用 ip -s link 来替代 netstat -i ,使用 ip addr 来替代 netstat -g 了。
[TODO]BCM2835这货SoC是ARM1176JZF-S核,armv6z架构.
然后WebRTC默认的用的arm-linux-gnueabihf是armv7的架构...
所以,谁要编译的注意这个问题,手动添加编译链接的命令补丁,我先摸鱼去了.
首先,树莓派先要安装一堆依赖库:
sudo apt-get install libgtk-3-dev #gtk+-3.0,gmodule-2.0,gthread-2.0
sudo apt-get install libc6-dev #libm.so
sudo apt-get install libasound2-dev
sudo apt-get install libpulse-dev
然后,挂载树莓派TF卡到你的PC上来使用树莓派的rootfs
用gn gen生成构建项目脚本时请添加:
is_clang=false
target_os=liunx
target_cpu=arm
sysroot=(树莓派的root)/usr/lib/arm-linux-gnueabihf/
debug=false
treat_warningaserror????=false #禁止warning报错,自己放狗搜下是啥吧
其次魔改build/config那个啥啥的py文件添加(树莓派的root)/usr/lib/arm-linux-gnueabihf/pkg_config/
不然gn gen生成会失败.
最后就是有的编译会缺头文件,自行解决吧.