Unix & Linux

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

12
vim-如何使用当前粘贴缓冲区执行“更改单词”
我的粘贴缓冲区中有一些文本,例如,我做了一个yw(洋语),现在缓冲区中有“ foo”。 我现在转到“ bar”一词,我想用我的粘贴缓冲区替换它。 要手动替换文本,我可以这样做cw,然后键入新单词。 我该如何做一个“更改单词”,但使用粘贴缓冲区的内容而不是手动键入替换单词? 我现在最好的选择是转到要替换的单词的开头并执行dw(删除单词),然后转到另一个位置并执行yw(猛击单词),然后返回替换区域并执行p(粘贴),这有点笨拙,尤其是当它们不在同一屏幕上时。
86 vim  vi  replace  buffer 

8
如何使用多个AND模式运行grep?
我想在模式之间使用隐式AND进行多模式匹配,即等效于在序列中运行多个抓取: grep pattern1 | grep pattern2 | ... 那么如何将其转换为类似的东西呢? grep pattern1 & pattern2 & pattern3 我想使用单个grep,因为我正在动态构建参数,因此所有内容都必须放在一个字符串中。使用filter是系统功能,而不是grep,因此不是它的参数。 请勿将此问题与以下内容混淆: grep "pattern1\|pattern2\|..." 这是一个OR多模式匹配。

4
为什么带无引号的空格的参数扩展在双括号“ [[”内有效,而在单括号“ [”内无效?
我对使用单括号或双括号感到困惑。看下面的代码: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi 尽管字符串包含空格,它仍可以完美地工作。但是当我将其更改为单括号时: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi 它说: ./script.sh: line 5: [: /home/mazimi/VirtualBox: binary operator expected 当我将其更改为: dir="/home/mazimi/VirtualBox VMs" if [ -d "${dir}" ]; then echo "yep" fi 它工作正常。有人可以解释发生了什么吗?什么时候应该在变量周围"${var}"加上双引号,以防止空格引起问题?
86 bash  quoting  ksh  test 

6
LVM是否会影响性能?
我必须将一些服务器迁移到Linux,我需要评估的一个重要方面是我的新主机系统必须具有弹性的存储容量。自然,做一些基础研究后,我遇到了LVM。 使用lvm是否会有性能损失?如果是这样,我该如何衡量? 我现在正在考虑的是将Linux作为带有LVM的主机操作系统,并在其之上运行虚拟化Linux盒(我是否也应该在来宾OS上添加LVM?)。

4
将SIGTERM转发给Bash中的孩子
我有一个Bash脚本,看起来与此类似: #!/bin/bash echo "Doing some initial work...."; /bin/start/main/server --nodaemon 现在,如果运行脚本的bash shell收到SIGTERM信号,它也应该将SIGTERM发送到正在运行的服务器(该服务器会阻塞,因此无法进行陷阱)。那可能吗?
86 bash  shell  signals  docker 

6
没有密码的自动ssh-keygen,怎么办?
我想制作一个自动脚本,该脚本调用ssh-keygen并创建一些发布/专用密钥对,稍后将使用它们。原则上,一切都可以正常工作 ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q 。目前,这使自动化变得困难。 我可以通过命令行参数提供密码-N thepassphrase,以防止出现提示。仍然我什至不希望拥有密钥- 此外还通过加密保护 -并希望密钥对为纯文本。 什么是(最佳)解决方案? 该-q选项可能意味着“安静/安静”,仍然不能避免密码短语的交互。我也没有找到这样的东西 ssh-keygen ...... -q --no-passphrase 请注意,请不要开始宣讲“丢失密码短语”的优缺点或向我讲授“丢失密码短语”的优缺点。以交互形式(不是脚本),用户只需按两次[ENTER]键,该键将另存为纯文本。这就是我想要在这样的脚本中实现的功能: #!/ bin / bash command1 命令2 var = $(command3) #这不应该停止脚本并要求输入密码 ssh-kegen -b 2048 -t rsa -f / tmp / sshkey -q
86 ssh  scripting 

7
不能在bash中使用感叹号(!)?
我正在尝试使用curl命令访问!其路径中带有感叹号()的http url 。例如: curl -v "http://example.org/!287s87asdjh2/somepath/someresource" 控制台会回复bash: ... event not found。 这里发生了什么?逃脱感叹号的正确语法是什么?


4
什么叫“ apt-get更新”?
Debian apt-get update获取并更新软件包索引。因为我已经习惯了这种处理方式,所以我惊讶地发现这样yum update做可以完成所有工作并升级系统。这让我很好奇如何在不安装任何内容的情况下更新包索引。

5
工艺替代和管道
我想知道如何理解以下内容: 将命令的标准输出插入另一个命令的标准输入是一项强大的技术。但是,如果您需要传递多个命令的标准输出怎么办?这是过程替代的地方。 换句话说,过程替换可以执行管道的任何操作吗? 进程替换可以做什么,而管道不能做什么?

16
如何像使用SSH一样简单地连接到串行端口?
是否可以像使用SSH一样连接到串行终端?一定有比Minicom这样的工具更简单的方法,像这样 $ serial /dev/ttyS0 我知道我可以从端口到控制台cat进行输出,/dev/ttyS0但是只有一种通信方式是可行的。和echo出端口是一样的,但周围的其他方式,来港。 如何在Unix / Linux上以最简单的方式实现与串行端口的双向通信?


9
用户名不在sudoers文件中。此事件将被报告
我正在使用VMware Player在笔记本电脑上运行Ubuntu 12.04。我不确定为什么,但是除了我通常登录使用Ubuntu的帐户外,我还有一个名为“用户帐户”的帐户。好吧,这只是一个旁注,但基本上我要做的就是在Ubuntu上安装ncurses库。我尝试使用以下命令行安装ncurses: sudo apt-get install libncurses5-dev sudo apt-get install ncurses-dev 当我尝试使用上述命令两次安装ncurses时,在终端中收到以下提示: [sudo] password for username 输入密码时,我收到以下消息: username is not in the sudoers file. This incident will be reported. 到目前为止,我已经尝试按照此链接上的说明启用root用户(“超级用户”)帐户:https : //help.ubuntu.com/community/RootSudo 以下是该链接建议执行的操作: 允许其他用户运行sudo。在命令行中键入以下内容: sudo adduser用户名sudo 要么 sudo adduser用户名sudo 以另一个用户身份登录。在命令行中键入以下内容: sudo -i -u用户名 启用根帐户。在命令行中键入以下内容: 须藤-i 要么 须藤passwd根 我已经尝试了所有上述命令行,并在输入每个命令后提示输入密码。输入密码后,收到与尝试安装ncurses相同的消息: fsolano is …
85 sudo 

6
将文件内容转换为小写
我有temp一些小写和大写内容的文件。 输入值 我temp文件的内容: hi Jigar GANDHI jiga 我想将所有大写转换成小写。 命令 我尝试了以下命令: sed -e "s/[A-Z]/[a-z]/g" temp 但是输出错误。 输出量 我希望它是: hi jigar gandhi jiga 在论证的替代部分中需要做什么sed?


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.