如何以及在哪里可以检查已将哪些密钥添加ssh-add到我的ssh-agent?
我在 vim 中打开了两个文件,每个文件都在一个 tmux 窗格中。我想从一个文件复制 10 行到另一个文件。
如何不使用鼠标的Copy->来完成此操作Paste?
我遇到了这个脚本:
#! /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?我认为脚本应该至少与参数一起使用,所以......?
我想搜索不符合 2 个-name条件的文件。我可以这样做:
find /media/d/ -type f -size +50M ! -name "*deb" ! -name "*vmdk"
Run Code Online (Sandbox Code Playgroud)
这将产生正确的结果,但我可以用 OR 以某种方式加入这两个条件吗?
我已经对 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) 我主要在 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 命令?
更多信息:
当我附加到现有会话时,$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) 我正在尝试将 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 正确安装?
我有一个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的编码列表中找不到它。
/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)