Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

7
如何在不分割多行记录的情况下有效地分割大型文本文件?
我有一个大的文本文件(gz'ed时为〜50Gb)。该文件包含4*N行或N记录;即每条记录由4行组成。我想将此文件拆分为4个较小的文件,每个文件的大小约为输入文件的25%。如何在记录边界分割文件? 天真的方法是zcat file | wc -l获取行数,将其除以4,然后使用split -l <number> file。但是,这会翻遍文件两次,并且行计数非常慢(36分钟)。有没有更好的办法? 这很接近,但不是我想要的。接受的答案也会进行行计数。 编辑: 该文件包含fastq格式的测序数据。两条记录如下所示(匿名): @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTTTATGTTTTTAATTAATTCTGTTTCCTCAGATTGATGATGAAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFFFFFFFFFAFFFFF#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<AFFFFFFFFFFAFFFFFFFFFFFFFFFFFFF<FFFFFFFFFAFFFAFFAFFAFFFFFFFFAFFFFFFAAFFF<FAFAFFFFA @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCCCTCTGCTGGAACTGACACGCAGACATTCAGCGGCTCCGCCGCCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFF7FFFFFFAFFFFA#F7FFFFFFFFF7FFFFFAF<FFFFFFFFFFFFFFAFFF.F.FFFFF.FAFFF.FFFFFFFFFFFFFF.)F.FFA))FFF7)F7F<.FFFF.FFF7FF<.FFA<7FA.<.7FF.FFFAFF 每条记录的第一行以开头@。 编辑2: zcat file > /dev/null 需要31分钟。 EDIT3: Onlye第一行以开头@。其他任何人都不会。看这里。记录需要保持秩序。向结果文件中添加任何内容都是不正确的。

1
如何理解“ ls -Z”中的安全上下文?
引用“ man ls”后,它显示“ ls -Z”可以显示安全上下文: -Z, --context Display security context so it fits on most displays. Displays only mode, user, group, security context and file name. 执行“ ls -Z”命令,输出如下所示: [root@localhost ~]# ls -Z -rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg drwxrwxrwx. root root unconfined_u:object_r:admin_home_t:s0 backup 如何理解安全上下文:unconfined_u:object_r:admin_home_t:s0?“ man ls”不提供信息。
9 linux  ls  selinux 

1
网络等待进入“顶部”的何处?
如果top显示高负载,并且您不知道导致它的进程在占用处理器时间还是在进行网络I / O(不是本地I / O),您如何找到呢? 在我们的服务器上,我看到较高的负载值,但结合了60%-70%的空闲和大约25%的用户。我想知道如何插入这些值,但是在Internet上我几乎总是读到可以使用iostat来查看该进程是否在浪费磁盘。但是我已经确定了,事实并非如此。所讨论的过程也没有困难,但仍然负载很高。 因此,是否有办法找出更多由网络等待引起的部分以及由实际处理器时间引起的部分?顶部的“ idle”是什么意思? 为了清楚起见:对于负载,我的意思是3个数字,表示每个内核的平均排队进程。这台机器上有8个内核,最多可容纳25个内核,因此每个内核的负载为2.5。
9 networking  top 

3
一个主机的简单nmap占用多少字节?
今天,IT经理很生气,因为我在3台服务器上使用了nmap,设法查看它们打开了哪些端口。我知道我可以在主机外壳中使用netstat。 他告诉我,“如果网络由于nmap中断,我将受到惩罚”。我想从技术上知道需要多少网络带宽/字节才能nmap 192.168.1.x输出: Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-11 13:33 ART Nmap scan report for 192.168.x.53 Host is up (0.0043s latency). Not shown: 983 closed ports PORT STATE SERVICE 1/tcp open tcpmux 22/tcp open ssh 79/tcp open finger 80/tcp open http 111/tcp open rpcbind 119/tcp open nntp 143/tcp …

3
为什么不能使用文本编辑器读取/ dev / stdout?
我刚刚开始学习Linux上的“ 什么都是文件TM ”,这使我想知道如果我从/ dev / stdout中逐字读取,会发生什么: $ cat /dev/stdout ^C $ tail /dev/stdout ^C (这^C是我在程序挂起后将其杀死)。 当尝试使用时vim,出现了无法想象的消息:“ / dev / stdout”不是文件。喘气! 那么,当尝试读取这些“文件”时,为什么会出现挂断或错误消息呢?
9 linux  files  stdout 

3
Debian 8 KVM Guest-加载初始虚拟磁盘
我已经为Ubuntu 14.04 KVM主机更新了我的KVM管理脚本,以支持debian 8 guest虚拟机。手动安装后(该脚本尚不可用),在启动时我会遇到以下消息: 在安装过程中,我: 仅选择ssh服务器和基本系统实用程序。 将grub引导加载程序设置为仅安装到列出的选项。 对一个分区上的所有内容使用引导分区模式。 使用了当地的英国镜子。 我需要谨慎采取一些步骤,还是不能将Debian 8作为KVM来宾安装? 更新资料 放弃并决定通过将所有行都更新/etc/apt/sources.list为jessie而不是来将debian 7 VM升级到debian 8 之后wheezy,我发现我最终得到了相同的行为。 但是,该实例具有静态IP,我发现我仍然可以通过SSH SSH到该IP上的服务器,因此看起来这是服务器确实设法启动的某种图形问题,我们只是看不到登录名文本。我该如何解决? 更新资料 这次,在通过升级debian 7创建的debian安装中,我可以从grub菜单中单击“高级”,然后选择(sysvinit)可以立即使用的选项。我希望这可以导致对引导的普通版本出了什么问题的解释?
9 debian  boot  kvm  ramdisk 

7
如何同时更改文件的权限和组所有者
对于更改文件许可权,我知道我可以使用chmod。要更改组所有者,可以使用chgrp。但是,如果我想同时更改权限和所有者,那么我可以在Linux上使用任何命令? 例如,存在一个具有此权限和所有者的文件: -rw-r--r--+ 1 raymondtau staff 0 May 8 16:38 WantToChangeThisFile 现在,我想将其更改为: ---x-w--wx+ 1 raymondtau admin 0 May 8 16:38 WantToChangeThisFile 我知道我可以使用以下命令:chmod 123 WantToChangeThisFile && chgrp admin WantToChangeThisFile,但是想知道是否有任何巧妙的方法可以做到这一点。
9 files  chmod  chown 


1
了解Linux内核虚拟网桥端口编号
我有一个Linux内核虚拟桥,其中包含接口eth1和tap0: # brctl show br0 bridge name bridge id STP enabled interfaces br0 8000.00016c404fa3 no eth1 tap0 # 现在,当我查看虚拟交换机的MAC地址表时,它显示端口号2(tap0接口)和3(eth1接口): # brctl showmacs br0 port no mac addr is local? ageing timer 3 00:00:5e:00:01:c9 no 0.11 3 00:01:6c:40:2d:94 no 0.53 3 00:01:6c:40:4f:a3 yes 0.00 3 00:01:6c:55:3a:72 no 55.33 3 00:02:b3:8d:48:a7 no …

3
为什么在Arch Linux上Dropbox会说“杀死”?
我正在尝试在Arch Linux上安装Dropbox。我已经安装了dropbox和dropbox-cli,至少安装了二进制文件。 当我dropbox自己运行时,它会Killed以红色字体显示。当我运行时dropbox-cli start,它会打印出: Starting Dropbox... Dropbox isn't running! Done! 然后a dropbox-cli status将返回Dropbox isn't running!。 我已连接到以太网。 我应该从这里去哪里? 编辑以包含strace: futex(0xa10520, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x1285920, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0xa104e4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 158, {1430164659, 469752000}, ffffffff) = -1 EAGAIN (Resource temporarily unavailable) futex(0xa10564, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xa10560, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = …

1
如何在tty中将功能键传递给htop?
我正在尝试htop在tty1中使用。但是,某些功能键似乎无法正常工作。F1并且F2什么也不做,F3似乎会触发设置(通常应由触发F2)。此外,F4与F5不工作。另外,当我尝试按Esc并退出这些屏幕时,必须按两次。 在普通端子(terminator)中,功能键可以正常工作。但是,我也必须在Esc这里按两次,所以也许这是个红色鲱鱼。 如何在tty1中使用这些功能键? 编辑 在tty1中,如果我按Ctrl+ v然后F1到F5,等等。我得到以下输出: ^[[[A ^[[[B ^[[[C ^[[[D ^[[[E 在terminator,我得到 ^[OP ^[OQ ^[OR ^[OS ^[[15~ 高于该功能键是等效(例如^[[17~为F6)。 编辑2 回应StéphaneChazelas的评论。 $TERM在tty1中与在“正常”工作终端中相同。是的xterm-256color。 我没有使用屏幕或tmux。 我正在使用htop1.0.3,尽管我的第一次编辑似乎指出它是的上游问题htop。 “ infocmp -L1 | grep key_f与这些密钥为您发送的邮件相匹配吗? 我不确定“匹配那些键为您发送的内容”是什么意思,但是我在普通终端和tty1中都运行了此命令,并且输出是相同的,如下所示。 key_f1=\EOP, key_f10=\E[21~, key_f11=\E[23~, key_f12=\E[24~, key_f13=\E[1;2P, key_f14=\E[1;2Q, key_f15=\E[1;2R, key_f16=\E[1;2S, key_f17=\E[15;2~, key_f18=\E[17;2~, key_f19=\E[18;2~, key_f2=\EOQ, key_f20=\E[19;2~, key_f21=\E[20;2~, key_f22=\E[21;2~, key_f23=\E[23;2~, key_f24=\E[24;2~, key_f25=\E[1;5P, key_f26=\E[1;5Q, key_f27=\E[1;5R, …

2
如何使用新的Ext4内联数据功能?(将数据直接存储在inode中)
如果我正确地阅读了Ext4文档,从Linux 3.8开始,应该可以将数据直接存储在一个非常小的文件的花瓶的inode中。 我期望这样的文件具有0个块的大小,但事实并非如此。 #creating a small file printf "abcde" > small_file #checking size of file in bytes stat --printf='%s\n' small_file 5 #number of blocks used by files stat --printf='%b\n' small_file 8 我希望这里的最后一个数字为0。我缺少什么吗?
9 linux  ext4 

2
什么是待处理信号?
在查看运行过程的限制时,我看到 Max pending signals 15725 这是什么? 如何确定繁忙服务的合理价值? 通常,我似乎找不到找到说明每个限制是什么的页面。有些是不言自明的(最大打开文件数),有些则很少(最大msgqueue大小)。


3
正确的xargs并行用法
我正在使用xargspython脚本来处理大约3000万个小文件。我希望可以xargs用来并行化该过程。我正在使用的命令是: find ./data -name "*.json" -print0 | xargs -0 -I{} -P 40 python Convert.py {} > log.txt 基本上,Convert.py将读取一个小的json文件(4kb),进行一些处理并写入另一个4kb文件。我在具有40个CPU内核的服务器上运行。并且此服务器上没有其他正在运行的CPU密集进程。 通过监视htop(顺便说一句,还有其他监视CPU性能的好方法吗?),我发现它的-P 40速度不如预期的快。有时,所有内核将冻结并在3-4秒内几乎减少为零,然后恢复到60-70%。然后,我尝试将并行进程的数量减少到-P 20-30,但是仍然不是很快。理想的行为应该是线性加速。关于并行使用xargs有什么建议吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.