小编gsi*_*011的帖子

如何仅区分两个文件的第一行?

我只想比较两个文件的第一行,而不是整个文件。我该怎么做?我只需要第一行的解决方案,但是如果您可以指定行数,那将是一个更好的答案。

所以 diff 不会返回以下两个文件之间的差异:

a
1
2
Run Code Online (Sandbox Code Playgroud)

和:

a
3
4
Run Code Online (Sandbox Code Playgroud)

linux diff command-line

23
推荐指数
1
解决办法
2万
查看次数

当目录名称有空格时,使用 bash 变量进入目录不起作用

假设我想将以下命令存储在一个变量中

cd "/cygdrive/c/Program Files/"
Run Code Online (Sandbox Code Playgroud)

所以我这样做

dir="cd \"/cygdrive/c/Program Files/\""
Run Code Online (Sandbox Code Playgroud)

那应该存储导航到 Program Files 目录的命令,所以当我输入 $dir 时,它会将我带到该目录。要检查引号是否已正确转义,我键入

echo $dir
Run Code Online (Sandbox Code Playgroud)

这给了我

cd "/cygdrive/c/Program Files/"
Run Code Online (Sandbox Code Playgroud)

所以一切都应该正常工作。然而,当我打字时,

$dir
Run Code Online (Sandbox Code Playgroud)

我得到

bash: cd: "/cygdrive/c/Program: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我正在使用 Cygwin,但我认为这个问题一般适用于 bash。

linux cygwin bash

11
推荐指数
3
解决办法
1万
查看次数

Cygwin .bashrc 不是源,因为 cygwin 从 Windows 主页开始

注意:请参阅下面我的第二次编辑以获取有关该问题的更新。

直到上周,Cygwin 对我来说都很好。现在 .bashrc 没有得到来源。我一定安装了一些东西或改变了一些东西,但我不记得到底是什么导致了这个问题。当我启动 Cygwin 时,我在我的 Windows 家中并且我的别名都不起作用。我必须手动获取 .bashrc。以下是我的 Cygwin.bat:

@echo off

C:
chdir C:\cygwin\bin

set CYGWIN=tty notitle glob

bash --login -i
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:我的 .bash_profile 包含以下内容,

# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
  source "${HOME}/.bashrc"
fi
Run Code Online (Sandbox Code Playgroud)

EDIT2:重要!当我启动 Cygwin 时,它会在我的 Windows 主文件夹中启动。我试着把我的 .bash_profile 和 .bashrc 放在这个文件夹中,它们的来源是正确的!这意味着问题已简化为弄清楚为什么 Cygwin 在 Windows 主文件夹中启动,而不是在正常的 Cygwin 主文件夹中启动。

EDIT3: 运行 grep Gulshan /etc/passwd/ 的结果

$ grep Gulshan /etc/passwd
Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash
Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash
Run Code Online (Sandbox Code Playgroud)

cygwin bash bashrc

9
推荐指数
1
解决办法
1万
查看次数

为什么我不能在 Ubuntu 中设置默认的 Ruby 版本?

我正在尝试将我的 Ruby 版本设置为 1.9.2,但我无法从系统 Ruby 安装中更改它。我究竟做错了什么?

我的终端输出是:

$ rvm list

rvm rubies

=> ruby-1.9.2-p180 [ i386 ]

$ rvm use default
Using /usr/share/ruby-rvm/gems/ruby-1.9.2-p180
$ ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
Run Code Online (Sandbox Code Playgroud)

ruby ubuntu rvm ruby1.9

6
推荐指数
1
解决办法
8533
查看次数

在 tmux 中,我可以使用“exit”退出包含的终端窗口而不是会话本身吗?

因此,当我打开一个新终端(我在 Arch Linux 上使用 terminator)时,我将其配置为要么打开一个新tmux会话(如果会话不存在),要么附加到现有会话。当我exit在提示符下输入时,它会退出 tmux 会话。我必须exit再次输入才能退出终端。我想要的是,输入exit一次将退出终端,但保持tmux运行状态,因此下次我打开终端时,它将重新连接到上一个tmux会话。本质上,这相当于单击窗口管理器的退出按钮,但我希​​望在键入 时使用此功能exit

编辑:

这就像我想要的:

alias exit='if [[ $TMUX = "" ]]; then exit; else tmux detach; exit; fi'
Run Code Online (Sandbox Code Playgroud)

但问题是应该在包含 tmux 会话的终端中调用exit之后,而不是 tmux 会话本身。tmux detach

linux terminal bash tmux

5
推荐指数
2
解决办法
4651
查看次数

在 .dir-locals.el 中重新加载次要模式

在 .dir-locals.el 中,我只能将变量设置为值,无法调用函数。但是,执行以下代码后,我需要禁用然后重新启用whitespace-mode

((nil . ((indent-tabs-mode . t)
     (whitespace-style . (face empty trailing lines-tail)))))
Run Code Online (Sandbox Code Playgroud)

我尝试(eval . (global-whitespace-mode))根据我发现的另一个答案进行添加,但这完全破坏了空白模式,然后我无法启用或禁用它。如何重新加载这个次要模式?

emacs text-editors

3
推荐指数
1
解决办法
1191
查看次数

标签 统计

bash ×3

linux ×3

cygwin ×2

bashrc ×1

command-line ×1

diff ×1

emacs ×1

ruby ×1

ruby1.9 ×1

rvm ×1

terminal ×1

text-editors ×1

tmux ×1

ubuntu ×1