小编iam*_*ser的帖子

sudo cat << EOF>文件不起作用,sudo su呢

我在bash的命令提示符下尝试了以下内容:

sudo cat << EOF > /etc/yum.repos.d/some-name.repo
#Content
#....
#...
EOF
Run Code Online (Sandbox Code Playgroud)

它抱怨说:

-bash: /etc/yum.repos.d/some-name.repo: Permission denied
Run Code Online (Sandbox Code Playgroud)

然后我做了sudo su并尝试了除了sudo之前的完全相同的东西cat,它没有任何问题.上面我错过了什么?

bash shell sudo

44
推荐指数
5
解决办法
3万
查看次数

virsh控制台挂起转义字符"^]"

我正在尝试启动一个新建的VM.我坚持以下.想要从控制台开始,以便我可以包含此VM的用户名和其他信息:

   @vmhost02 ~]$ sudo virsh start --console testengine
   Domain testengine started
   Connected to domain testengine
   Escape character is ^]
Run Code Online (Sandbox Code Playgroud)

它挂在那里,除了"^]"之外不听任何键

如果您需要更多有关任何想法的信息,请告诉我们......

非常感谢.

console virtual-machine

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

如何使用puppet安装本地rpm

我正在尝试使用puppet安装特定的rpm,我的init.pp是:

class nmap {
  package {'nmap':
    provider => 'rpm',
    source => "<Local PATH to the RPM>",
  }
}
Run Code Online (Sandbox Code Playgroud)

并且rpm在 ...modules/nmap/files

如果我将rpm移动到清单,并在source =>''中提供rpm名称

class nmap {
  package {'nmap':
    provider => 'rpm',
    source => "rpm-name.rpm",
  }
}
Run Code Online (Sandbox Code Playgroud)

它有效,但我如何指定源路径../files/和成功应用木偶

当我使用:

source => 'puppet:///files/nmap-6.45-1.x86_64.rpm',

我收到一个错误:

Debug: Executing '/bin/rpm -i puppet:///files/nmap-6.45-1.x86_64.rpm' Error: Execution of '/bin/rpm -i puppet:///files/nmap-6.45-1.x86_64.rpm' returned 1: error: open of puppet:///files/nmap-6.45-1.x86_64.rpm failed: No such file or directory

Error: /Stage[main]/Nmap/Package[nmap]/ensure: change from absent to present failed: Execution of '/bin/rpm -i puppet:///files/nmap-6.45-1.x86_64.rpm' returned …

puppet

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

如何将带双引号的空字符串传递给bash脚本?

我正在尝试编写一个脚本,它将在命令行中接受带有双引号的空字符串作为附加参数.我希望脚本将这些参数与双引号空字符串一起传递(如果提供),但是命令解释器似乎将这样的参数解释为空字符串并删除引号.有没有办法做到这一点?

作为一个简单的例子,我将在script.sh文件中:

#!/bin/bash
/home/myapp $1 $2
Run Code Online (Sandbox Code Playgroud)

如果我在提示符下运行:

$ ./script.sh arg1 ""
Run Code Online (Sandbox Code Playgroud)

脚本只是执行"/home/myapp arg1",但是错过/忽略第二个参数("").我希望它保留这个空字符串,而不是执行:/home/myapp arg1 ""

bash shell

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

在Ruby中的if语句中检查bash命令

如何在Ruby中的if语句中检查bash命令的返回值(true/false).我想要这样的东西工作,

if ("/usr/bin/fs wscell > /dev/null 2>&1")
                has_afs = "true"
        else
                has_afs = "false"
        end
Run Code Online (Sandbox Code Playgroud)

它抱怨以下错误含义,它将始终返回true.

 (irb):5: warning: string literal in condition
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法?

更新:

 /usr/bin/fs wscell 
Run Code Online (Sandbox Code Playgroud)

寻找afs安装和运行状况.它将抛出这样的字符串,

 This workstation belongs to cell <afs_server_name>
Run Code Online (Sandbox Code Playgroud)

如果afs未运行,则命令以状态1退出

ruby

5
推荐指数
1
解决办法
2540
查看次数

在 CentOS 上清除并重新安装 python

今天我搞砸了我的 CentOS 机器上的 Python 版本。甚至yum不能正常工作。我犯了一个错误,即删除了/usr/bin/python导致这种情况的默认值。我怎样才能找回一个清晰的 Py​​thon 环境?我认为完全删除它们并重新安装 Python 可能会起作用,但不知道该怎么做。希望有人能帮忙!

python centos rpm yum

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

如何安排一个Cron工作运行一年中的第四周

我使用的是一个使用本机Unix CRON选项卡来安排作业的应用程序.参数说明如下:

Minute, Hour, Da_of_Week(1-7, 1=Sun), Day_of_Month(1-31), Day_of_Year(1-365), Week (1-52), Month (1-12) 
Run Code Online (Sandbox Code Playgroud)

我想在一周的第一周的晚上8点开始工作,但我不知道如何确定一周的开始时间.2017年12月31日 - 2018年1月6日第一周或第一周的1月7日或1月7日是第一周?

unix linux shell cron

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

如何在.service脚本中使用环境变量

我在Linux服务器上有一个elixir项目。我创建了一个.service脚本,该脚本将使用以下命令启动和停止应用程序

systemctl start "my_app".service
systemctl stop "my_app".service
Run Code Online (Sandbox Code Playgroud)

.service文件看起来像这样...

[Unit]
Description="example app_name daemon"

[Service]
Type=simple
User=root
Restart=on-failure
Environment=MIX_ENV=prod "PORT=4000"

WorkingDirectory="the file path to my app"

ExecStart=/usr/local/bin/mix phoenix.server

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

它可以按预期工作,唯一的例外是它不会读取环境变量。我可以像PORT=4000上面一样手动将它们添加到脚本中,从而使应用程序可以访问它们。

我想知道.service文件是否可以访问我在服务器上拥有的环境变量,因此我不必在新服务器上使用此脚本的每次都写它们。提前致谢

如果您想要有关该项目的更多信息,请随时查看该仓库

linux bash elixir systemd

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

Python:用于for循环的compact/one liner

我有以下代码可以工作,并给我预期的输出.

#!/bin/env python
import xml.etree.ElementTree as e
tree = e.parse("Document.XML")
root = tree.getroot()
vals=[]
Run Code Online (Sandbox Code Playgroud)

代码的以下部分可以是单行还是更紧凑?

for ch in root.findall('arch'):
    for gc in ch.findall('pro'):
        vals.append(gc.get('label'))
Run Code Online (Sandbox Code Playgroud)

我有libxml2版本,不支持xpath,请不要建议该选项.XMl文件如下所示:

<projects>
  <arch name="arch1">
    <pro label="A1" type="B1" state="C1"/>
    ....
  </arch>
  ....
</projects>
Run Code Online (Sandbox Code Playgroud)

python xml

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

shell函数中的“声明”和环境变量的范围

考虑以下测试片段(这些是文件“declare_test”的内容):

function do_foobar ()
{
  unset FOOBAR
  declare -- FOOBAR="default"
  FOOBAR="override"

  echo "At end of do_foobar: FOOBAR = \"$FOOBAR\""
}
Run Code Online (Sandbox Code Playgroud)

从命令提示符运行 do_foobar 会产生:

$ source declare_test
$ do_foobar
At end of do_foobar: FOOBAR = "override"
$ echo "FOOBAR=\"$FOOBAR\""
FOOBAR=""
Run Code Online (Sandbox Code Playgroud)

换句话说,函数 FOOBAR 内部具有预期值,即“覆盖”,但在函数 FOOBAR 立即被取消设置之后。

如果我们更改 do_foobar 并删除“declare”行,则结果是:

$ do_foobar
At end of do_foobar: FOOBAR = "override"
$ echo "FOOBAR=\"$FOOBAR\""
FOOBAR="override"
Run Code Online (Sandbox Code Playgroud)

所以,现在 FOOBAR 没有被重置。请注意,删除的声明的功能是设置FOOBAR。如果我们不删除声明而是删除“FOOBAR=”override”行,则结果将变为:

$ do_foobar
At end of do_foobar: FOOBAR = "default"
$ echo "FOOBAR=\"$FOOBAR\""
FOOBAR="" …
Run Code Online (Sandbox Code Playgroud)

bash

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

标签 统计

bash ×4

shell ×3

linux ×2

python ×2

centos ×1

console ×1

cron ×1

elixir ×1

puppet ×1

rpm ×1

ruby ×1

sudo ×1

systemd ×1

unix ×1

virtual-machine ×1

xml ×1

yum ×1