我们都知道如何使用<ctrl>-R反向搜索历史记录,但是<ctrl>-S如果你设置了,你知道你可以使用转发搜索stty stop ""吗?另外,您是否尝试过运行bind -p来查看列出的所有键盘快捷键?默认情况下,Mac OS X上有超过455个.
什么是你最喜欢的晦涩难懂的技巧,键盘快捷键或使用bash的shopt配置?
本着"你最有用的C/C++代码片段"的精神- 线程:
你们有没有(通常)使用的简短的单功能Python片段,并希望与StackOverlow社区分享?请保持条目较小(可能在25行以下?)并且每个帖子只提供一个示例.
我将从一个简短的片段开始,我不时使用它来计算python项目中的sloc(源代码行):
# prints recursive count of lines of python source code from current directory
# includes an ignore_list. also prints total sloc
import os
cur_path = os.getcwd()
ignore_set = set(["__init__.py", "count_sourcelines.py"])
loclist = []
for pydir, _, pyfiles in os.walk(cur_path):
for pyfile in pyfiles:
if pyfile.endswith(".py") and pyfile not in ignore_set:
totalpath = os.path.join(pydir, pyfile)
loclist.append( ( len(open(totalpath, "r").read().splitlines()),
totalpath.split(cur_path)[1]) )
for linenumbercount, filename in loclist:
print "%05d lines in %s" % (linenumbercount, filename)
print …Run Code Online (Sandbox Code Playgroud) 是否有一种从PATH类shell变量中删除元素的惯用方法?
那是我想要的
PATH=/home/joe/bin:/usr/local/bin:/usr/bin:/bin:/path/to/app/bin:.
Run Code Online (Sandbox Code Playgroud)
和删除或替换的/path/to/app/bin,而不重挫可变的其余部分.允许我将新元素放在任意位置的额外点数.目标将由明确定义的字符串识别,并且可以在列表中的任何点处发生.
我知道我已经看到了这一点,并且可以自己拼凑一些东西,但我正在寻找一个很好的方法.便携性和标准化加分.
我使用bash,但欢迎你最喜欢的shell中的例子.
这里的上下文是需要在多个版本之间方便地切换(一个用于进行分析,另一个用于处理框架)的大型科学分析包,它产生几十个可执行文件,数据存储在文件系统周围,并使用环境变量帮助找到所有这些东西.我想编写一个选择版本的脚本,并且需要能够删除$PATH与当前活动版本相关的元素,并用与新版本相关的相同元素替换它们.
这与$PATH在重新运行登录脚本等时防止重复元素的问题有关.