如果 Linuxmv
命令被中断会发生什么?比如说,我正在将整个目录移动到其他地方,并在移动时中断它。源目录是否仍然保持不变?
在Unixless
工具中,是否可以跳转到不包含某个表达式的下一行?
有时我必须查看包含数千个类似相邻行的文件,例如,所有这些行都说“计算某物”,而我对当前块之后的下一行感兴趣,该行不包含“计算”一词。
如何将SVN 存储库的一部分移动到新存储库中?
要将完整的 SVN 存储库的内容移动到新存储库中,必须先转储旧存储库:
svnadmin dump /path/to/repository > repository-name.dmp
Run Code Online (Sandbox Code Playgroud)
然后使用svnadmin load
.
但我不确定如何只移动一部分。我还需要倾倒整个事情吗?我要搜索我想要的部分吗?
只是 dump myproject
,我试过这个,但没有用:
svnadmin dump /path/to/repository/myproject
Run Code Online (Sandbox Code Playgroud) 我的 GNU 屏幕将其会话存储在/tmp
目录中。
这意味着在重新启动后,所有会话都将丢失:
$ screen -list
No Sockets found in /tmp/uscreens/S-dehmann.
Run Code Online (Sandbox Code Playgroud)
我怎么能告诉它把它们存储在我的主目录中的特定目录中,它们不会那么容易丢失?
我对在 Mac OS X 上安装标准 Unix 包有点困惑。例如,我有 /usr/bin/svn,它是 SVN v.1.4.4,但 FinkCommander 说没有安装 svn。这同样适用于其他软件包,如 emacs 等。
这只是一个错误的 FinkCommander 设置吗?目前它被设置为安装所有东西/sw
,甚至不在PATH
. 那么,我是否只需要将其设置为将软件包安装到/usr
,它就会识别已安装的软件?我不想安装所有东西的重复包,而且 FinkCommander 似乎与安装的软件不同步,这很奇怪。
或者我应该使用其他任何安装程序吗?Mac Ports 是推荐使用的安装程序吗?
(我使用的是 Mac OS 10.5.8。)
是否有具有更智能选项卡完成功能的 shell 版本?
我希望能够打字
cd foo-<TAB>
Run Code Online (Sandbox Code Playgroud)
然后它会向我显示可能的完成以及我可以输入的数字以选择其中之一:
cd foo-<TAB>
(1) foo-bar1 (2) foo-bar2 (3) foo-bad
Run Code Online (Sandbox Code Playgroud)
所以,在<TAB>
我打字之后3
,它会带我到foo-bad
. 或者,使用箭头键而不是输入数字也可以。
是否有UNIX
取消引用符号链接的命令?我想用它指向的文件的副本替换链接。
例子:
$ ls
a
b -> a
$ deref b
$ ls
a
b
Run Code Online (Sandbox Code Playgroud)
现在,a 和 b 具有相同的内容但彼此独立。我的问题是是否有这样的deref
命令。重要提示:我不必知道b
指向哪里;命令应该弄清楚这一点。
有哪些好的 Linux 命令可以让命令行上的不同目录之间的切换更容易?
我经常不得不在具有长名称的不同目录之间切换,例如
cd foo/20100801-rev124-test2
ls
cd ../20100801-rev124-test1
ls
cd ../20100802-rev126-bar
Run Code Online (Sandbox Code Playgroud)
通常,我使用制表符完成,所以它是这样的:
cd ../2010080 Tab2 Tab-rev12 Tab6- Tabbar
但这很烦人,因为所有这些名称都非常相似,因此选项卡完成并没有真正节省多少工作。
在这种情况下,您使用什么技巧来减少打字?
顺便说一句,我使用pushd
和popd
有时,但在这里它不会帮助,因为我不访问的目录中给定的顺序。
更新:
有关一个不错的解决方案,请参阅我的其他相关问题的已接受答案。基本上,只需创建一个替代命令:cd
function cd2 { select a in $1*; do cd $a; break; done }
Run Code Online (Sandbox Code Playgroud)
它将一次列出所有可能的完成:
$ cd2 2010080
(1) 20100801-rev124-test2
(2) 20100801-rev124-test1
(3) 20100802-rev126-bar
Run Code Online (Sandbox Code Playgroud)
你可以通过输入它的号码来选择一个。
我开始使用 Firefox 扩展 NoScript,但我想默认允许所有脚本,只有一个特定域 (google-analytics.com) 应该被阻止/列入黑名单。
那可能吗?我只能找出相反的方法:它默认禁用所有内容,但允许白名单中的一些页面;但这种行为使得网络变得非常无法使用。
每当我重新启动计算机时,所有GNU screen
会话都会消失。我必须删除它们
screen -wipe
Run Code Online (Sandbox Code Playgroud)
我该如何解决?告诉GNU screen
将会话存储在我的主目录中显然没有帮助。($SCREENDIR
,请参阅此问题)。
如何更改 Emacs 以便将 regexp 搜索(而不是普通搜索)设为默认值?
C-s [0-9]
例如,我希望能够输入,然后它会将我带到下一个数字。然后,再按C-s
一次,它会带我到下一个号码。
我试过这个:
(global-set-key "\C-s" 'search-forward-regexp)
Run Code Online (Sandbox Code Playgroud)
但是反复按 是C-s
不行的。它确实找到了第一次出现,但要找到第二次,您必须[0-9]
在按 后重新输入正则表达式C-s
。
我有个问题:
我的 mac 上没有 root 密码。我只有一个管理员帐户,可以使用sudo
. 现在,我也想将我的普通用户添加到/etc/sudoers
文件中。由于它不允许我写入该文件(甚至使用 sudo 写入),我这样做了:
sudo chmod u+w /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
那奏效了。但从那以后我不能sudo
再在我的系统上执行任何命令。它抱怨/etc/sudoers
模式错误:
$ sudo touch /etc/sudoers
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
这听起来像是一个坏笑话,因为现在我什至无法将模式改回0440
:
$ sudo chmod 0440 /etc/sudoers
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解决这种情况吗?我需要恢复我的sudo
能力。