小编Pat*_*ryk的帖子

如何使用 ssh-add 列出添加到 ssh-agent 的密钥?

如何以及在哪里可以检查已将哪些密钥添加ssh-add到我的ssh-agent?

ssh key-authentication ssh-agent

311
推荐指数
2
解决办法
32万
查看次数

将文本从一个 tmux 窗格复制到另一个(使用 vim)

我在 vim 中打开了两个文件,每个文件都在一个 tmux 窗格中。我想从一个文件复制 10 行到另一个文件。

如何不使用鼠标的Copy->来完成此操作Paste

vim tmux copy-paste

182
推荐指数
5
解决办法
20万
查看次数

在 shell 脚本中使用 shift 的目的是什么?

我遇到了这个脚本:

#! /bin/bash                                                                                                                                                                                           

if (( $# < 3 )); then
  echo "$0 old_string new_string file [file...]"
  exit 0
else
  ostr="$1"; shift
  nstr="$1"; shift  
fi

echo "Replacing \"$ostr\" with \"$nstr\""
for file in $@; do
  if [ -f $file ]; then
    echo "Working with: $file"
    eval "sed 's/"$ostr"/"$nstr"/g' $file" > $file.tmp 
    mv $file.tmp $file
  fi  
done
Run Code Online (Sandbox Code Playgroud)

他们使用的行的含义是什么shift?我认为脚本应该至少与参数一起使用,所以......?

shell-script arguments

173
推荐指数
3
解决办法
22万
查看次数

如何在查找中组合 2 -name 条件?

我想搜索不符合 2 个-name条件的文件。我可以这样做:

find /media/d/ -type f -size +50M ! -name "*deb" ! -name "*vmdk"
Run Code Online (Sandbox Code Playgroud)

这将产生正确的结果,但我可以用 OR 以某种方式加入这两个条件吗?

shell bash find

139
推荐指数
4
解决办法
15万
查看次数

为什么默认 eth0 接口在 CentOS 上默认关闭?

我已经对 Debian 或 Ubuntu 等 Linux 发行版有点熟悉(是的,非常相似),但我想尝试基于 Red Hat 的 CentOS 6.2。我已经将它安装在我的 Windows 7 主机上的 VirtualBox 并尝试使用它。

我遇到了一个小问题,即:默认eth0界面默认关闭。我使用带有 NAT 的选项(虚拟机在主机“后面”)。即使我用 调出界面ifconfig eth0 up,它也不能立即工作。启动界面后我得到了这个:

eth0      Link encap:Ethernet  HWaddr 08:00:27:0F:00:8A
          inet6 addr: fe80::a00:27ff:fe0f:8a/64 Scope:Link
          UP BROADCAST RUNNNING MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carriers:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
          Interrupt:19 Base address:0xd020

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK …
Run Code Online (Sandbox Code Playgroud)

networking centos

53
推荐指数
3
解决办法
22万
查看次数

为什么我重新附加时必须在 tmux 中重新设置环境变量?

我主要在 mac 上工作,ssh/tmux 连接到 Linux 机器来完成我的工作。我在 Linux 机器上运行了 ssh-agent。我有

set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY"

在我的.tmux.conf. 但是,每当我重新连接到此会话时,我都必须运行

tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)

为了$SSH_AUTH_SOCK正确设置新的 tmux 窗口。我宁愿不必这样做。有任何想法吗?

更新

我想我没有很好地解释这一点。这是我在远程机器上打开 shell 的 shell 函数:

sshh () {
    tmux -u neww -n ${host} "ssh -Xt ${host} $*"
}
Run Code Online (Sandbox Code Playgroud)

当TMUX运行此ssh命令,$SSH_AUTH_SOCK没有设置,即使在我的本地环境设置。如果我使用setenv上面的命令将其放入 tmux 的环境中,则一切正常。我的问题是,为什么我必须运行 setenv 命令?

更新 2

更多信息:

当我附加到现有会话时,$SSH_AUTH_SOCK未在 tmux 环境(或全局环境)中设置。

% tmux showenv | grep -i auth_sock
-SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)

如果我手动设置它,事情会起作用:

% …
Run Code Online (Sandbox Code Playgroud)

shell tmux environment-variables

45
推荐指数
2
解决办法
3万
查看次数

“此系统不支持 EFI 变量”

我正在尝试将 Arch linux 安装到新的(非常糟糕的)HP Pavillion 15 笔记本电脑上。

这是一台基于 UEFI 的机器。经过几次摆动后,我已经走得很远了。传统模式在系统设置中被禁用,我已经通过 EFI 引导到我刻录的 Arch DVD,并通过 Arch初学者指南和更高级的安装指南进行到我安装 grub 的地步。

chrooted 时,我执行:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
Run Code Online (Sandbox Code Playgroud)

这会发出大量输出,包括:

此系统不支持 EFI 变量

我第一次到这一步时,我继续安装,不知道这是否是一个实际问题。原来是这样,因为当我重新启动机器时,找不到可启动的媒体,机器拒绝启动。那时我可以进入 UEFI 设置菜单并选择要启动的 EFI 文件,然后 Arch Linux 就会启动。

但我现在要回去重新安装,试图解决上述问题。

如何让 GRUB 正确安装?

uefi

34
推荐指数
5
解决办法
14万
查看次数

如何将编码从非 ISO 扩展 ASCII 文本(带有 CRLF 行终止符)更改为 UTF-8?

我有一个txt文件:

$ file -i x.txt
x.txt: text/plain; charset=unknown-8bit
$ file x.txt 
x.txt: Non-ISO extended-ASCII text, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)

还有一些字符编码不正确:

trwa³y, sta³y, usuwaæ
Run Code Online (Sandbox Code Playgroud)

如何将此文件的编码更改为 UTF-8 ?到目前为止,我已经尝试了以下方法:

$ iconv -f ASCII -t UTF-8 x.txt
                puiconv: illegal input sequence at position 4
Run Code Online (Sandbox Code Playgroud)

也许我应该以某种方式使用extended ASCII( high ASCII) 但在iconv的编码列表中找不到它。

character-encoding text

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

如何取消设置-o vi?

我想在 bash 中尝试 vi 模式,但现在我想将其改回正常模式。

我怎样才能取消设置-o vi

bash vi vi-mode

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

检查 /dev/log

/dev/log是系统日志记录的默认条目。在 systemd 实现(这种情况下)的情况下,它是任何/run/systemd/journal/dev-log. 它曾经是由 syslog 守护进程处理的 unix socket 的接收端。

~$ echo "hello" > /dev/log 
bash: /dev/log: No such device or address
~$ fuser /dev/log
~$ ls -la /dev/log 
lrwxrwxrwx 1 root root 28 Aug 23 07:13 /dev/log -> /run/systemd/journal/dev-log
Run Code Online (Sandbox Code Playgroud)

当您尝试写入时弹出的错误的澄清是什么,为什么没有一个进程保存该文件(从fuser /dev/log空输出?

日志记录在系统上正常工作。

~$ logger test
~$ journalctl --since=-1m
-- Logs begin at Thu 2018-05-24 04:23:46 CEST, end at Thu 2018-08-23 13:07:25 CEST. --
Aug 23 13:07:24 alan-N551JM alan[12962]: test
Run Code Online (Sandbox Code Playgroud)

使用评论建议进行扩展

~$ sudo fuser /dev/log 
/run/systemd/journal/dev-log: …
Run Code Online (Sandbox Code Playgroud)

linux syslog systemd systemd-journald

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