Articles of unix

用Perl / AWK将两个连续的行合并成一行

我有如下的数据: abcd join abcd efgh join efgh 我想连续两个连成一条线。 导致: abcd join abcd efgh join efgh 我怎样才能在Perl / AWK中做到这一点?

什么是接口标识符

笔记本电脑使用一个或多个networking适配器连接到组织的networking。 我正在尝试编写一个工具来持续监视每个networking的连接状态和连接质量。 然而,我的networking知识受限制和术语混淆了我。 具体查找所有networking适配器。 有人build议我使用ifconfig命令,它给了我所谓的“接口标识符”。 例如: ['lo0', 'gif0', 'stf0', 'en0', 'en1', 'en2', 'bridge0', 'p2p0'] 我不太清楚这是如何帮助我解决我的问题,因为我不知道接口标识符是什么,我不知道如何利用这些信息。 我的假设是,他们代表一台计算机或networking中的路由器。 如果有人能够澄清这一点,或以通俗的话来向我解释,这将是非常有帮助的。

快速查找Perl中两个等长string的区别

给定像这样的string对。 my $s1 = "ACTGGA"; my $s2 = "AGTG-A"; # Note the string can be longer than this. 我想在$s1中find与$s2不同的位置和字符。 在这种情况下,答案是: #String Position 0-based # First col = Base in S1 # Second col = Base in S2 # Third col = Position in S1 where they differ CG 1 G – 4 我可以通过substr()轻松实现。 但速度非常缓慢。 通常我需要比较数百万这样的对。 […]

如何获得与特定的端口在sunos附加进程ID

我正在尝试使用SunOS上的端口7085获得进程。 我试过下面的命令。 netstat -ntlp | grep 7085 netstat -ntlp | grep 7085没有任何回报 netstat -anop | grep 7085 netstat -anop | grep 7085试过这个。 这些开关在SunO中无效 我得到以下输出。 #netstat -anop netstat: illegal option — o usage: netstat [-anv] [-f address_family] netstat [-n] [-f address_family] [-P protocol] [-g | -p | -s [interval [count]]] netstat -m [-v] [interval [count]] netstat […]

为什么Linux不遵循Unix系统调用约定?

我在教自己的Linux汇编语言,我遇到了BSD和Linux之间的一个有趣的区别。 在Unix中,在调用80h中断之前,将系统调用参数压入堆栈; 相反,在Linux中,您将parameter passing到寄存器中。 有没有人知道Linux开发人员使用寄存器而不是栈的原理是什么? 注意:下面是一个详细说明这个区别的好页面: FreeBSD开发者手册:系统调用,而不解释原理。

包含Linux GCC链接器

我不明白GCC如何在Linux下工作。 在源文件中,当我做一个: #include <math.h> 编译器是否提取了相应的二进制代码并将其插入到编译的可执行文件中?编译器是否插入了对外部二进制文件(a-la Windows DLL?)的引用? 我猜这个问题的一个通用版本是:是否有一个等效的概念,以* nix下的Windows DLL?

$ PATH优于别名

我对Linux和Unix比较陌生。 在互联网的帮助下,我终于弄清楚我的.bashrc $PATH和别名是如何工作的。 但我真的找不到任何描述什么时候使用哪个。 假设我在Library / Frameworks中安装了Python3.3,可执行文件是/Library/Frameworks/Python.framework/Versions/3.3/bin/python3 ,但是我想通过在terminal中inputpython3来执行python 3.3。 当我理解正确时,至less有三种方法可以实现这一点: 1)我在我的.bashrc中修改$ PATH: export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH} 2)我在我的.bashrc中设置了一个别名: alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin 3)创build一个符号链接(符号链接): ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin 你会怎么说(从你的经验)是“推荐”的方式?

fork()中的copy-on-write工作如何?

我想知道在fork()中如何写入copy。 假设我们有一个具有dynamicint数组的进程A: int *array = malloc(1000000*sizeof(int)); 数组中的元素被初始化为一些有意义的值。 然后,我们使用fork()来创build一个subprocess,即B. B将迭代数组并进行一些计算: for(a in array){ a = a+1; } 我知道B不会立即复制整个数组,但是什么时候子B为数组分配内存? 在fork()? 它是一次分配整个数组,还是只分配一个整数a = a+1 ? a = a+1; 这是怎么发生的? B是否从A读取数据并将新数据写入自己的数组? 我写了一些代码来探索COW如何工作。 我的环境:Ubuntu 14.04,gcc4.8.2 #include <stdlib.h> #include <stdio.h> #include <sys/sysinfo.h> void printMemStat(){ struct sysinfo si; sysinfo(&si); printf("===\n"); printf("Total: %llu\n", si.totalram); printf("Free: %llu\n", si.freeram); } int main(){ long len = […]

核心转储本身是可执行的吗?

核心转储维基百科页面说 在类Unix系统中,核心转储通常使用标准的可执行映像格式: a.out in older versions of Unix, ELF in modern Linux, System V, Solaris, and BSD systems, Mach-O in OS X, etc. 这是否意味着核心转储本身是可执行的? 如果没有,为什么不呢? 编辑:由于@ WumpusQ.Wumbley在评论中提到了coredump_filter ,可能上面的问题应该是: 可以生成一个核心转储,使其可以自行执行?

符号链接 – 性能打击?

出于部署的原因,使用符号链接稍微容易一些,但是这些将用于我所有网站的核心文件和configuration,每天可以访问数千次。 我是否更明智地将文档移动到服务器上的正确位置(稍微更有问题的部署),而不是对所有内容使用符号链接(轻微的性能下降?)