Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答


17
使tmux将缓冲区复制到剪贴板
我试图找出一种不错的方法将tmux缓冲区中的内容复制到剪贴板中。我已经尝试了几种不同的方法,例如 bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer 这使我非常接近,我要做的就是在我做前缀-p之后按control-d。 我试图通过做来解决 bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE' 但这是行不通的。实际上,如果我将其配对为 bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE' 它什么也没做,所以我假设在shell命令中,分割窗口不喜欢<<。 有任何想法吗? 编辑:select-pane -t 2如果需要,可以跳过,这并不是很重要。我只使用一种特定的布局,而窗格2是我在进行其他操作时希望拆分的布局,因此默认情况下会进入涉及拆分的绑定。

4
Shell脚本行末的“&”号是什么意思?
sh sys-snap.sh & 什么sh啊 什么sys-snap.sh啊 为什么我要放在&行尾?谁能解释语法? 没有&脚本,直到按Ctrl+ 之前脚本都不会返回到提示C。随着&我按下Enter键,它的工作原理。
118 shell 

4
在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 …

1
使用vimdiff复制更改的推荐方法是什么?
比较文件和更新源代码存储库时,我喜欢使用vimdiff。要将更改从一个文件复制到另一个文件,我通常使用如下键序列: Shift + V (select line) k or j; { or }; Up or down arrow keys (select more lines) y (copy selected lines) Ctrl + w, left/right arrow (move to other pane) p (paste lines) Vim,作为键盘快捷键的掌握者,肯定应该有一种更简单的方式来执行相同的任务。有一个吗?您使用什么来手动更新源代码更改?
117 vim  diff 

1
附加到会话中的其他窗口
我有一个非常简单的tmux会话,它带有两个打开的窗口;其中一项用于本地黑客攻击,另一项用于工作。 我想做的就是简单地连接到黑客窗口,同时在另一个终端中打开工作窗口。但是,一旦我连接到tmux,所有命令都会发送到两个窗口,因此,如果我切换到另一个窗口,则在另一个终端上也会发生同样的事情,反之亦然。 我有办法简单地分别连接到每个窗口吗?
117 tmux 

7
使用不等于运算符进行字符串比较
我试图检查该PHONE_TYPE变量是否包含三个有效值之一。 if [ "$PHONE_TYPE" != "NORTEL" ] || [ "$PHONE_TYPE" != "NEC" ] || [ "$PHONE_TYPE" != "CISCO" ] then echo "Phone type must be nortel,cisco or nec" exit fi 上面的代码对我不起作用,所以我尝试了一下: if [ "$PHONE_TYPE" == "NORTEL" ] || [ "$PHONE_TYPE" == "NEC" ] || [ "$PHONE_TYPE" == "CISCO" ] then …

6
如何在cron标签作业中执行`date`?
我想为cron脚本创建一个日志文件,该日志文件名称中包含当前小时。这是我尝试使用的命令: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log 不幸的是,我在运行时收到此消息: /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: line 1: syntax error: unexpected end of file 我尝试过date各种方式使零件逃脱,但运气不佳。是否可以在crontab文件中在线进行此操作,还是需要创建Shell脚本来执行此操作?

7
将上一个命令的输出作为参数传递给next
我有一个将数据输出到stdout(command1 -p=aaa -v=bbb -i=4)的命令。输出行可以具有以下值: rate (10%) - name: value - 10Kbps 我想grep该输出以存储该“比率”(我想这里的管道会很有用)。最后,我希望该比率成为第二个命令的参数值(假设command2 -t=${rate}) 在我这边看起来很棘手;我想更好地了解如何使用管道,grep,sed等。 我已经尝试了很多类似的组合,但是我对这些组合感到困惑: $ command1 -p=aaa -v=bbb -i=4 | grep "rate" 2>&1 command2 -t="rate was "${rate}

5
我可以同时将输出重定向到日志文件和后台进程吗?
我可以同时将输出重定向到日志文件和后台进程吗? 换句话说,我可以做这样的事情吗? nohup java -jar myProgram.jar 2>&1 > output.log & 或者,这不是合法命令吗?或者,是否需要手动将其移至后台,如下所示: java -jar myProgram.jar 2>$1 > output.log jobs [CTRL-Z] bg 1
116 bash  shell  shell-script 

3
为什么“回声”比“触摸”这么快?
我正在尝试(递归地)将目录中所有xml文件的时间戳更新为当前时间。我正在使用Mac OSX 10.8.5。 在大约300,000个文件上,以下echo命令耗时10秒: for file in `find . -name "*.xml"`; do echo >> $file; done 但是,以下touch命令需要10分钟!: for file in `find . -name "*.xml"`; do touch $file; done 为什么回声比触摸此处要快得多?
116 shell  command  echo 

3
如何在远程计算机上执行本地脚本并包含参数?
我编写了一个在本地执行时可以正常运行的脚本: ./sysMole -time Aug 18 18 参数“ -time”,“ Aug”,“ 18”和“ 18”已成功传递到脚本。 现在,该脚本旨在在远程计算机上执行,但是可以从本地计算机上的本地目录执行。例: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole 那也很好。但是,当我尝试包括上述论点(时间为8月18日18)时,就会出现问题,例如: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole -time Aug 18 18 运行该脚本后,出现以下错误: bash: cannot set terminal process group (-1): Invalid argument bash: no job control in this shell 请告诉我我在做什么错,这非常令人沮丧。

5
hash命令的目的是什么?
如果运行,hash它将显示自从上次重置哈希(hash -r)以来运行的所有命令的路径。 [root@c04c ~]# hash hash: hash table empty [root@c04c ~]# whoami root [root@c04c ~]# hash hits command 1 /usr/bin/whoami [root@c04c ~]# whoami root [root@c04c ~]# hash hits command 2 /usr/bin/whoami 根据手册页,哈希的目的是: / usr / bin / hash实用程序会影响当前shell环境记住所找到的实用程序位置的方式。根据指定的参数,它将实用程序位置添加到其记忆位置列表中,或者清除列表中的内容。如果未指定任何参数,它将报告列表的内容。该-r选项使外壳程序忘记所有记住的位置。 作为内置到shell中的实用程序不会通过哈希报告。 除了查看输入命令的次数外,看不到的实用程序hash。 它甚至出现在thegeekstuff.com的前15个有用命令中 有什么hash用处?
116 bash  history 

5
是否可以在known_hosts文件中找到主机?
我想知道known_hosts文件中包含哪些主机,但似乎无法读取。可以阅读吗? 更具体地说,有一台主机可以通过多个名称连接,我想从已知主机文件中找出对它的指纹要求。 更新:我正在使用OpenSSH_5.3p1 Debian-3ubuntu7,OpenSSL 0.9.8k 2009年3月25日 我的known_hosts文件中的一行看起来像这样, |1|guO7PbLLb5FWIpxNZHF03ESTTKg=|r002DA8L2JUYRVykUh7jcVUHeYE= ssh-rsa AAAAB3NzaC1yc2EAAFADAQABAAABAQDWp73ulfigmbbzif051okmDMh5yZt/DlZnsx3DEOYHu3Nu/+THJnUAfkfEc1XkOFiFgbUyK/08Ty0K6ExUaffb1ERfXXyyp63rpCTHOPonSrnK7adl7YoPDd4BcIUZd1Dk7HtuShMmuk4l83X623cr9exbfm+DRaeyFNMFSEkMzztBYIkhpA2DWlDkd90OfVAvyoOrJPxztmIZR82qu/5t2z58sJ6Jm2xdp2ckySgXulq6S4k+hnnGuz2p1klviYCWGJMZfyAB+V+MTjGGD/cj0SkL5v/sa/Fie1zcv1SLs466x3H0kMllz6gAk0/FMi7eULspwnIp65g45qUAL3Oj
115 ssh 

6
我怎样才能使`date`输出不同时区的时间?
我有一个时区设置为的服务器UTC。看来这通常是个好习惯(如果我错了,请纠正我)。 无论如何,我连接到的其中一台服务器要scp运行文件,并且正在运行,EDT并以以下格式存储需要复制的文件/path/to/filename/data20120913 我看过尝试rsync使用诸如find的-mtime -1标志之类的文件来归档最后一天修改过的文件,但是我没有任何运气。 我不介意仅scp用于复制当天的文件,但截至目前为止,有一个4小时的窗口,在date +%Y%m%d该窗口中运行将给每台服务器提供不同的日期,这给我带来了一些麻烦。 翻阅man date一下,我看到可以将时间输出为UTC,但是我没有看到一种将时间输出为另一个时区的方法,例如EDT 我想我也可以使用GNU日期扩展名之类的东西date -d 20100909 +%s从纪元获取秒数的日期,进行手动4 * 60 * 60第二次计算,然后将其渲染为日期,但是当日光时间到来时,仍然需要一个小时。 是否有一种更简单的方法来以设置为的服务器上的YYYYMMDD格式输出日期?EDTUTC
115 date  timezone 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.