小编Dav*_*ave的帖子

如何使用 ag 在具有某些扩展名的文件中查找文本?

我正在使用agThe Silver Searcher)版本 0.31.0。我可以使用以下方法轻松地在一堆文件中查找字符串:

localhost:workspace davea$ ag 'ftp' .
Run Code Online (Sandbox Code Playgroud)

但是如果我只想扫描具有某些扩展名的文件怎么办?我试过这个:

localhost:workspace davea$ ag 'ftp' .java
ERR: Error stat()ing: .java
ERR: Error opening directory .java: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但得到了你在上面看到的错误。

search files ag

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

如何拍摄我的 Xvfb 缓冲区的屏幕截图?

我正在使用亚马逊 Linux。我想在我的 node.js Selnium 测试中运行一个无头 Chrome 浏览器。所以我像这样启动我的 Xvfb 服务器......

if ! pidof /usr/bin/Xvfb; then Xvfb :0 -screen 5 1024x768x8 & fi
Run Code Online (Sandbox Code Playgroud)

但是,当我在测试失败后尝试截取屏幕截图时,

DISPLAY=:0 import -window root /tmp/screenshot.png
Run Code Online (Sandbox Code Playgroud)

我收到下面提到的错误...

+ DISPLAY=:0
+ import -window root /tmp/screenshot.png
import: unable to open X server `:0' @ error/import.c/ImportImageCommand/369.
Run Code Online (Sandbox Code Playgroud)

如何截取 Xvfb 缓冲区的屏幕截图?

chrome screenshot imagemagick xvfb display

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

如何仅获取在端口 3000 上运行的进程的 PID 而没有任何额外信息?

我正在使用 CentOS 7。我想获取在端口 3000 上运行的进程的 PID(如果存在)。我想获取此 PID,以便将其保存到 shell 脚本中的变量中。到目前为止我有

[rails@server proddir]$ sudo ss -lptn 'sport = :3000'
State      Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port
Cannot open netlink socket: Protocol not supported
LISTEN     0      0                                            *:3000                                                     *:*                   users:(("ruby",pid=4861,fd=7),("ruby",pid=4857,fd=7),("ruby",pid=4855,fd=7),("ruby",pid=4851,fd=7),("ruby",pid=4843,fd=7))
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何在没有所有这些额外信息的情况下单独隔离 PID。

linux process shell-script port

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

我如何找出为什么我的 systemctl 服务没有在 CentOS 7 上启动?

我使用的是 CentOS 7。如何找出服务无法启动的原因?我创建了这个服务

[rails@server ~]$ sudo cat /usr/lib/systemd/system/nodejs.service
[Unit]
Description=nodejs server

[Service]
User=rails
Group=rails
ExecStart=/home/rails/NodeJSserver/start.sh
ExecStop=/home/rails/NodeJSserver/stop.sh

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

该文件指向此

[rails@server ~]$ cat /home/rails/NodeJSserver/start.sh
#!/bin/bash

forever start /home/rails/NodeJSserver/server.js
Run Code Online (Sandbox Code Playgroud)

我可以自己运行这个文件。但是当我尝试将它作为服务的一部分运行时,我注意到我的 nodeJS 服务器没有启动。即使我检查“sudo systemctl --state=failed”,我也看不到任何错误......

[rails@server ~]$ sudo systemctl enable NodeJSserver
[rails@server ~]$ sudo systemctl start NodeJSserver
[rails@server ~]$
[rails@server ~]$
[rails@server ~]$ forever list
info:    No forever processes running
[rails@server ~]$
[rails@server ~]$
[rails@server ~]$ sudo systemctl --state=failed
  UNIT                           LOAD   ACTIVE SUB    DESCRIPTION
? nginx.service                  loaded failed failed The nginx HTTP and …
Run Code Online (Sandbox Code Playgroud)

startup boot logs centos services

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

尝试使用 sudo 将文本附加到文件时获得“权限被拒绝”

我正在使用亚马逊 Linux。我正在尝试将一些文本附加到文件中。该文件归 root 所有。我想通过使用“sudo”,我可以附加所需的文本,但我得到“权限被拒绝”,见下文

[myuser@mymachine ~]$ ls -al /etc/yum.repos.d/google-chrome.repo
-rw-r--r-- 1 root root 186 Jul 31 15:50 /etc/yum.repos.d/google-chrome.repo
[myuser@mymachine ~]$ sudo echo -e "[google-chrome]\nname=google-chrome\nbaseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\ngpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub" >> /etc/yum.repos.d/google-chrome.repo
-bash: /etc/yum.repos.d/google-chrome.repo: Permission denied
Run Code Online (Sandbox Code Playgroud)

我如何调整我的陈述,以便我可以将必要的文本附加到文件中?

bash permissions sudo

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

如何在 bash 数组中捕获 MySQL 结果集?

我在 CentOS 7 上使用 bash shell。我想从 shell 脚本运行 MySQL 查询并迭代每行结果。如果有 4 行返回,我想我可以像这样捕获数组中的四行:

query="select p.id, p.ebook_id, es.id FROM ...";
echo "$query" > /tmp/query.sql
mysql -u user --password=pass db_id < /tmp/query.sql > /tmp/query.csv

linesIN=`cat /tmp/query.csv | sed 's/\t/,/g'`
arraylength=${#linesIN[@]}
echo $arraylength
Run Code Online (Sandbox Code Playgroud)

但是,即使我可以看到返回的多个结果行,也$arraylength总是输出1。如何修改上述内容以正确创建一个结果数组,其中数组中的每个元素代表结果集中的一行?

bash array shell-script mysql variable

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

如何确定我的亚马逊 Linux 发行版基于哪个 CentOS 版本?

有人告诉我,我们最近创建了一个新的 Amazon Linux 实例,其中包含最新最好的(版本 2017.3-01)。我正在尝试确定它是否基于 CentOS 7(因为这是唯一支持安装 Google Chrome 的版本)。我跑了

[davea@mymachine ~]$ uname -a
Linux mymachine 4.9.32-15.41.amzn1.x86_64 #1 SMP Thu Jun 22 06:20:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

但我仍然无法确定我的 Amazon Linux 发行版基于哪个版本的 CentOS。

编辑:根据给出的建议,这里是 cat 命令的输出

[davea@mymachine ~]$ sudo cat /etc/*release*
[sudo] password for davea:
NAME="Amazon Linux AMI"
VERSION="2017.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2017.03"
PRETTY_NAME="Amazon Linux AMI 2017.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2017.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2017.03
cpe:/o:amazon:linux:2017.03:ga
Run Code Online (Sandbox Code Playgroud)

linux version centos amazon-linux

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

如何从我的主目录运行 cron 脚本的输出?

我正在使用 Amazon Linux 并尝试从我的主目录运行 cron 作业(我在机器上没有 sudo 权限)。我正在通过执行 crontab -e 并添加这一行来设置 cron 作业

30 18 * * * /home/myuser/run_my_script.sh
Run Code Online (Sandbox Code Playgroud)

其中。但是,我观察到事情似乎没有运行,所以我想弄清楚原因。但是运行这个

[myuser@mymachine ~]$ tail /var/log/cron
tail: cannot open ‘/var/log/cron’ for reading: Permission denied
Run Code Online (Sandbox Code Playgroud)

没有帮助。我怎样才能弄清楚为什么事情没有运行,或者在我的脚本中出现问题的地方?

cron stdout stderr amazon-linux

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

如何从命令行获取我的 IP 地址?

我使用的是 Debian 8。如何从命令行获取我的外部 IP 地址?我认为下面的命令可以完成这项工作......

myuser@myserver:~ $ /sbin/ifconfig $1 | grep "inet\|inet6" | awk -F' ' '{print $2}' | awk '{print $1}'
addr:192.168.0.114
addr:
addr:127.0.0.1
addr:
Run Code Online (Sandbox Code Playgroud)

但正如您所看到的,它只显示局域网中机器的 IP 地址。我有兴趣了解其面向全世界的 IP。

linux networking debian ifconfig ip-address

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

在 CentOS 7 上 base64 编码二进制文件的正确方法是什么?

我正在使用带有 bash shell 的 CentOS 7。我认为对二进制文件进行 base64 编码会很简单

[rails@server lib]$ cat mybinary.file | base64 > /tmp/output.base64
Run Code Online (Sandbox Code Playgroud)

但是,当我查看文件长度时,我注意到它不是四的倍数

[rails@server lib]$ ls -al /tmp/output.base64 
-rw-rw-r-- 1 rails rails 92935 May 31 15:50 /tmp/output.base64
Run Code Online (Sandbox Code Playgroud)

我不知道我所做的是否有效,但是当我尝试使用 JS 库解码文件时,我收到一个错误,抱怨字符串长度不是四的倍数,所以我想知道我上面所做的是否正确,或者是否有其他方法可以做到。

character-encoding centos base64 binary

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