我正在使用ag(The 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)
但得到了你在上面看到的错误。
我正在使用亚马逊 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 缓冲区的屏幕截图?
我正在使用 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。
我使用的是 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) 我正在使用亚马逊 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)
我如何调整我的陈述,以便我可以将必要的文本附加到文件中?
我在 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。如何修改上述内容以正确创建一个结果数组,其中数组中的每个元素代表结果集中的一行?
有人告诉我,我们最近创建了一个新的 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) 我正在使用 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)
没有帮助。我怎样才能弄清楚为什么事情没有运行,或者在我的脚本中出现问题的地方?
我使用的是 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。
我正在使用带有 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 库解码文件时,我收到一个错误,抱怨字符串长度不是四的倍数,所以我想知道我上面所做的是否正确,或者是否有其他方法可以做到。
centos ×3
linux ×3
amazon-linux ×2
bash ×2
shell-script ×2
ag ×1
array ×1
base64 ×1
binary ×1
boot ×1
chrome ×1
cron ×1
debian ×1
display ×1
files ×1
ifconfig ×1
imagemagick ×1
ip-address ×1
logs ×1
mysql ×1
networking ×1
permissions ×1
port ×1
process ×1
screenshot ×1
search ×1
services ×1
startup ×1
stderr ×1
stdout ×1
sudo ×1
variable ×1
version ×1
xvfb ×1