Unix & Linux

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

3
在bash shell脚本中,编写对字符串值进行迭代的for循环
在bash中,我知道可以编写一个for循环,其中一些循环控制变量i在指定的整数上进行迭代。例如,我可以编写一个bash shell脚本来打印1到10之间的整数: #!/bin/bash for i in {1..10} do echo $i done 如果我提供字符串列表,是否可以替代地循环访问一个字符串的循环控制变量?例如,假设我有一个fname代表文件名的字符串。我想为每个文件名调用一组命令。例如,我可能想fname使用如下命令打印内容: #!/bin/bash for fname in {"a.txt", "b.txt", "c.txt"} do echo $fname done 换句话说,在第一次迭代中,fname应具有值fname="a.txt",而在第二次迭代中,fname应具有值fname="b.txt",依此类推。不幸的是,上述语法似乎不太正确。我想获得输出: a.txt b.txt c.txt 但是当我尝试上面的代码时,我得到以下输出: {a.txt, b.txt, c.txt} 您能否帮助我确定正确的语法,以便可以迭代地更改变量的值/内容fname?感谢您的时间。
24 bash  shell-script  for 

8
Linux最通用的脚本语言是?
这个问题是从Stack Overflow 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 7年前。 我们正在为Linux系统编写脚本,关于使用哪种最普遍的Linux当前脚本语言一直存在一些争论。Bash,SH,Posix?什么?

6
如何使python程序的行为像适当的unix工具?
我周围有一些Python脚本,我正在重写它们。我对他们所有人都有同样的问题。 对于我来说,如何编写程序以使其像适当的unix工具一样运作尚不明显。 因为这 $ cat characters | progname 和这个 $ progname characters 应该产生相同的输出。 我在Python中找到的最接近的东西是fileinput库。不幸的是,我并没有真正看到如何重写我的Python脚本,所有这些看起来像这样: #!/usr/bin/env python # coding=UTF-8 import sys, re for file in sys.argv[1:]: f = open(file) fs = f.read() regexnl = re.compile('[^\s\w.,?!:;-]') rstuff = regexnl.sub('', fs) f.close() print rstuff 如果有标准输入,fileinput库处理标准输入,如果有文件,则处理文件。但是它遍历单行。 import fileinput for line in fileinput.input(): process(line) 我真的不明白。我想如果您要处理的是小文件,或者您对文件的处理不多,这似乎很明显。但是,就我的目的而言,这比仅打开整个文件并将其读取为字符串要慢得多,如上所述。 …

3
在LAN上复制大文件的快速方法
我在使用NFS时遇到了一些麻烦,我想尝试仅使用普通的旧TCP。 不过,我不知道从哪里开始。 在硬件方面,我正在使用以太网交叉电缆将两个上网本联网。 要联网,我输入 $ sudo ifconfig eth0 192.168.1.1 up && ping -c 10 -s 10 192.168.1.2 && sudo /etc/init.d/nfs-kernel-server start 在第一个上网本上 $ sudo ifconfig eth0 192.168.1.2 up $ ping -c 10 -s 10 192.168.1.1 $ mount /mnt/network1 在第二 其中/mnt/network1在/ etc / fstab中作为被指定 192.168.1.1:/home /mnt/network1 nfs noauto,user,exec,soft,nfsvers=2 0 0 以及/etc/exports第一个上网本中的内容(使用该文件的语法)。 …

5
使用curl获取URL的重定向目标
我想检查单个URL重定向到的位置。例如,来自Google搜索结果页面的链接(点击始终通过Google服务器进行)。 我可以用curl吗?
24 curl  url 

5
如何使`xargs`忽略孩子的出口并继续处理
我有时xargs整夜都从事长时间的工作,而早上发现xargs死在中间某个地方真的很烦,例如,由于一个特殊情况下的分割错误,就像今天晚上发生的那样。 如果甚至有一个xargs孩子被杀,它也将不再处理任何输入: 控制台1: [09:35:48] % seq 40 | xargs -i --max-procs=4 bash -c 'sleep 10; date +"%H:%M:%S {}";' xargs: bash: terminated by signal 15 09:35:58 3 09:35:58 4 09:35:58 2 <Exit with code 125> 控制台2: [09:35:54] kill 5601 我可以以某种方式阻止xargs子进程死后停止处理更多输入,而是继续处理吗?
24 kill  xargs  signals 

4
测试用户的文件有效权限
是否可以测试特定用户的文件有效权限? 我通常通过su user访问文件来执行此操作,但是现在我想在没有外壳程序的用户(即系统用户)上对此进行测试

3
在Bash中调用subshel​​l的规则?
我似乎误解了Bash创建子shell的规则。我认为括号总会创建一个子外壳,该子外壳将作为其自身的进程运行。 但是,事实并非如此。在代码片段A(如下)中,第二条sleep命令未在单独的外壳程序中运行(由pstree另一个终端确定)。但是,在代码片段B中,第二个sleep命令确实在单独的外壳中运行。这些代码段之间的唯一区别是第二个代码段在括号内有两个命令。 有人可以解释一下创建子外壳的规则吗? 代码片段A: sleep 5 ( sleep 5 ) 代码片段B: sleep 5 ( x=1 sleep 5 )

3
tar cvf或tar -cvf?
我已经学会了使用不带'-'的tar作为选项,例如,tar cvfz dir.tar.gz Directory/但是我最近遇到了稍微不同的tar -czvf语法(在这种情况下,我认为'f'必须是最后一个选项)。 两者都可以在linux和Mac OS上运行。是否有推荐的语法,带有不带-的ou,可以更方便地在unix风格中使用?

1
如何在RHEL6上安装g ++?
这个问题似乎已经在这里问过了。我的IT部门安装了该操作系统,因此我不知道如何正确注册它,但是我具有root访问权限。有没有办法使用CentOS资料库来获得相同的软件包?我也想安装IceWM,但是如果没有编译器,我什至无法自己构建它。
24 rhel 

2
GNU emacs与XEmacs
在使用Vim过去两年后,我转而使用emacs作为我的“离开舒适区” 2012决议的一部分。尽管过去10天一直在使用GNU Emacs,但我对XEmacs感到好奇,并且我想知道它是否与GNU Emacs有很大不同。 在Wikipedia页面上: 主要分歧之一涉及版权转让的不同观点。 [...] 通常,任何一个编辑器中的新功能迟早都会在另一个编辑器中显示。此外,许多开发人员为这两个项目做出了贡献。 我的印象是,两者之间的差异主要是历史上的和哲学上的(FSF并不总是这样吗?)。 在2012年今天选择一个而不是另一个的实际原因是什么?以下是我感兴趣的比较示例: 功能:一个功能是否存在,而另一功能不存在(或至少不容易获得)? 社区:哪个社区更为活跃和创新? 释放周期:它们是否以相似的速率释放相同的功能,还是两个单独的释放周期使一个比另一个更前卫? LISP的实现:我最感兴趣的是学习LISP。两位编辑是否共享相同的实现?一样的方言 可用性:我知道两个编辑器都可以在Linux上使用,但是其他平台又如何呢?一个相对于另一个具有显着优势吗? 该列表并不详尽。如果您曾经使用过两者,并且觉得这里没有提到差异,请告诉您;我很好奇。
24 emacs  xemacs 

2
zsh中按字典顺序的文件多位数范围
我想通过globing在zsh中指定一个带有两个整数(例如2到57)的文件范围(按字典顺序)。 例如:“按目录顺序在匹配某些glob模式的路径下选择文件2到57”。 我认为使用方括号会做到这一点 for x in /foo/bar/*[2-57]; do print $x; done 但岩组显然认为我要求的文件2到5(或类似的东西),而不是文件2来57。有什么想法吗?我该怎么做?
24 zsh  wildcards 



2
如何阻止查找结果下降到找到的目录?
我想查找具有特定字符串的所有目录,以便可以对其中包含的文件进行另一个查找。 所以我不想浪费时间在其他地方./my-search-term/dir/my-search-term。 找到第一个my-search-term目录后,如何停止递归?
24 find  recursive 

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.