Unix & Linux

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

2
如何在Bash中增加局部变量?
数据 1 \begin{document} 3 码 #!/bin/bash function getStart { local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)" echo $START } START2=$(getStart) echo $START2 返回,2但我想要3。我通过关于如何在bash脚本中添加数字的答案未成功更改结尾: START2=$((getStart+1)) 如何在Bash脚本中增加局部变量?



3
如何在sed或awk流中添加页眉和/或页脚?
我有一堆输出通过sed和awk。 如何在输出前加上START前缀并在END后加上答案? 例如,如果我有 All this code on all these lines and all these 我如何获得: START All this code on all these lines and all these END ? 我的尝试是: awk '{print "START";print;print "END"}' 但是我得到了 ... START All this code END START on all these lines END START and all these END

5
如何在mawk中打​​印自己的脚本名称?
在bash中$0包含脚本的名称,但是在awk中,如果我使用以下内容创建名为myscript.awk的脚本: #!/usr/bin/awk -f BEGIN{ print ARGV[0] } 并运行它,它只会打印“ awk”。此外,i> 0的ARGV [i]仅用于命令行中的脚本参数。那么,如何使其打印脚本名称,在本例中为“ myscript.awk”?
13 awk  scripting  mawk 

1
尖号方括号方括号A ^ [[A-这是什么意思?
抱歉,如果已经有人问过这个问题,但是我不知道如何找到自己的答案-当我在任何搜索引擎中搜索“ ^ [[A”时,它都会完全忽略“ ^ [[”部分。 无论如何,我的问题是:有时在终端机中(在Mac上),当我按箭头键时,会出现字符“ ^ [[A”,“ ^ [[B”,“ ^ [[C””或“ ^ [[D”” 。我似乎还记得几年前在使用(最可能的)DOS时遇到的情况,我认为它的发生频率也更高。 为什么会发生,这是什么意思?

1
如何确定这些Linux TCP默认设置?
最近,我花了相当多的时间来查找生产中的问题,其中poll()连接的客户端的数据库服务器消失将导致最多2个小时的挂起(长时间等待libpq客户端库中的调用)。深入研究问题,我意识到应该调低这些内核参数,以便及时发现断开的TCP连接: net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 75 net.ipv4.tcp_retries2 = 15 上面的四个值来自Ubuntu 12.04计算机,看起来这些默认值与当前的Linux内核默认值保持不变。 这些设置似乎严重偏向于保持现有连接的打开状态,并且对于keepalive探针极为ing。AIUI,默认tcp_keepalive_time值为2小时,这意味着当我们等待远程主机的响应时,我们将耐心等待2小时,然后再发起一次keepalive探测以验证我们的连接仍然有效。然后,如果远程主机不响应keepalive探测,则我们将对这些keepalive探测重试9次(tcp_keepalive_probes),相隔75秒(tcp_keepalive_intvl),因此,在我们确定连接真正失效之前,还需要再花11分钟。 这与我在该字段中看到的内容相符:例如,如果我启动一个psql连接到远程PostgreSQL实例的会话,并且有一些查询等待响应,例如 SELECT pg_sleep(30); 然后使远程服务器严重死亡(例如,丢弃该机器的流量),我发现我的psql会话等待长达2个小时11分钟才能发现连接已死。您可能会想到,这些默认设置会对我们在数据库故障转移事件期间与数据库交谈的代码造成严重问题。调低这些旋钮很有帮助!而且我发现我并不孤单地建议调整这些默认值。 所以我的问题是: 这样的默认设置多长时间了? 使这些TCP设置成为默认设置的最初理由是什么? 有任何Linux发行版会更改这些默认值吗? 对于这些设置的任何其他历史或观点,将不胜感激。
13 linux  tcp  history 

5
如何过滤tar文件的内容,在管道中生成另一个tar文件?
考虑一个来自外部系统的tar文件,该文件包含一些目录,这些目录具有我想要保留的各种属性,例如权限,mtimes等。如何以常规用户(不是root用户)的身份轻松获取这些文件的子集? 寻找类似的东西: tar -f some.tar.gz --subset subdir/ | ssh remote@system tar xvz 保留此tar归档文件中的主要属性(所有权,组,模式,mtime)也很重要。tar文件中的其他属性(例如扩展标头关键字)呢? 如果此子目录包含大文件,则避免使用临时目录的解决方案有很多好处。
13 pipe  tar 


3
如何理解“ cat> file_name << blah”命令?
在以下命令中,cat接受here-doc的内容并将其重定向到名为conf的文件: cat &gt; conf &lt;&lt; EOF var1="cat" var2="dog" var3="hamster" EOF 如何在这里了解命令的顺序?bash首先是否要处理其他所有内容(here-doc部分),最后看是否要处理&gt; conf?

9
如何删除文件中每行的第5个字?
我想删除文件中每行的第5个字。 文件的当前内容: File is not updated or and will be removed System will shut down f within 10 seconds Please save your work 55 or copy to other location Kindly cooperate with us D 预期产量: File is not updated and will be removed System will shut down within 10 seconds …

2
修复python设置
在我的Kubuntu 14.4(标准为python 2.7.6)上,我在python.org上借助如何分别在Debian上安装最新的Python版本或从python.org构建源代码后尝试安装python 2.7.10之后,python断开了升级?。我无法使用标准命令来修复它,我怀疑我的dpkg关于python安装感到困惑/中断。我想在这方面修复dpkg。我怀疑这事做与文件/var/lib/dpkg/status和/var/lib/dpkg/available与/var/lib/dpkg/info/*particularily第一。我认为我必须以dpkg某种方式重设,但我确实不是专家。我认为这是因为: $ apt-cache policy python python: Installed: 2.7.10-1 Candidate: 2.7.10-1 Version table: *** 2.7.10-1 0 100 /var/lib/dpkg/status 2.7.5-5ubuntu3 0 500 http://de.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages $ /usr/bin/python2.7 Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. &gt;&gt;&gt; …

1
如何(真正)在Linux中禁用NCQ
我在VHDL中实现了自己的串行ATA主机总线适配器(HBA),并将其编程到FPGA上。FPGA是可以用任何数字电路编程的芯片。它还配备了串行收发器,可为SATA或PCIe生成高速信号。 该SATA控制器支持SATA 6 Gb / s线速,并使用ATA-8 DMA-IN / OUT命令在设备之间最多传输32 MiB数据块。经验证,该设计可在最高速度下工作(例如,三星SSD 840 Pro-&gt; 550 MiB / s以上)。 在对多个SSD和HDD设备进行了一些测试之后,我购买了一个新的Seagate 6 TB存档HDD(ST6000AS0002)。该HDD的读取性能高达190 MiB / s,但写入性能却只有30到40 MiB / s! 因此,我更深入地研究并测量了传输的帧(是的,在FPGA设计中是可能的)。据我所知,Seagate HDD已准备好一次接收传输的前32 MiB。传输速度最高为580 MiB / s。之后,HDD将剩余字节停顿800毫秒以上!然后,HDD准备接收下一个32 MiB,并再次停顿800 ms。1 GiB传输总共需要30秒钟以上,大约等于35 MiB / s。 我假设此HDD具有32 MiB写高速缓存,该高速缓存在突发周期之间刷新。小于32 MiB的数据传输不会显示此行为。 我的控制器使用DMA-IN和DMA-OUT命令来传输数据。我没有使用QUEUED-DMA-IN和QUEUED-DMA-OUT命令,它们由具有NCQ功能的AHCI控制器使用。在FPGA平台上添加AHCI和NCQ非常复杂,我的应用层不需要。 我想在我的Linux PC上重现这种情况,但是Linux AHCI驱动程序默认情况下启用了NCQ。我需要禁用NCQ,因此我找到了描述如何禁用NCQ的网站,但是它不起作用。 Linux PC的写入性能仍然达到190 MiB / s。 &gt; …
13 linux  kernel  drivers  sata 

2
如何在Raspbian上激活Xorg记录模块?
我正在尝试在RaspberryPi上自动化一些测试,并且正在使用python的pymouse来执行一些模拟点击。在我的Debian上,它可以正常工作,但是当涉及到Raspbian时,在尝试导入pymouse时,它始终失败并显示以下错误消息: pi@pi ~/ $ python test.py Traceback (most recent call last): File "test.py", line 2, in &lt;module&gt; from pymouse import PyMouse File "/usr/local/lib/python2.7/dist-packages/pymouse/__init__.py", line 95, in &lt;module&gt; from unix import PyMouse, PyMouseEvent File "/usr/local/lib/python2.7/dist-packages/pymouse/unix.py", line 53, in &lt;module&gt; class PyMouseEvent(PyMouseEventMeta): File "/usr/local/lib/python2.7/dist-packages/pymouse/unix.py", line 54, in PyMouseEvent ctx = display2.record_create_context( File …
13 x11  xorg  python 

2
在.raw文件中以文本形式打开.raw文件
我程序的输出具有.raw文件扩展名。如果我尝试用以下方法打开它less: No isoinfo available Install mkisofs to view ISO images 该文件不是图像文件,而只是文本。有没有办法告诉less该文件应以纯文本格式打开?

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.