grep -c
对于查找字符串在文件中出现的次数很有用,但它每行只计算每次出现一次。如何计算每行出现的多次?
我正在寻找比以下更优雅的东西:
perl -e '$_ = <>; print scalar ( () = m/needle/g ), "\n"'
Run Code Online (Sandbox Code Playgroud) 简介:我创建了一个 bash 函数,它能够检查端口是否可用,如果为 false,则将其加 1,直到达到某个最大端口号。例如,如果端口 500 不可用,则将检查 501 的可用性,直到 550。
目标:为了测试这个 bash 功能,我需要创建一系列处于 LISTEN 状态的端口。
尝试:在 Windows 上,可以使用以下 PowerShell 命令创建 LISTEN 端口:
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>
Run Code Online (Sandbox Code Playgroud)
基于此,我试图考虑一个可以在 CentOS 上执行相同操作的命令,但我不知道为什么,我在没有找到解决此问题的解决方案的情况下开始使用 Google。
预期答案:我将接受并赞成包含能够创建 LISTEN 端口的命令的答案,一旦运行该命令,该端口应保持在 LISTEN 状态,即:
[user@host ~]$ ss -nat …
Run Code Online (Sandbox Code Playgroud) 我在机器 A 上,想从机器 B 中提取文件。
A$ scp <myuserid>@hostB:<path of file in B> .
Run Code Online (Sandbox Code Playgroud)
它说:
scp: <path of file in B>: No such file or directory
Run Code Online (Sandbox Code Playgroud)
但是在机器 B 上,这个文件存在于这个路径中。
出了什么问题?
我知道yum update
不时运行以保持我的 Centos 服务器更新是很好的,我什至看到有办法自动更新。我的问题是,更新后是否需要重新启动服务器?这是个好主意吗?如果我不断更新并且永不重启会怎样?
根据此文档在 Scientific Linux 上安装 Nginx失败:
[vagrant@localhost ~]$ sudo su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epe
l/6/x86_64/epel-release-6-8.noarch.rpm'
Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch
.rpm
warning: /var/tmp/rpm-tmp.gdSOR9: Header V3 RSA/SHA256 Signature, key ID 0608b89
5: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
[vagrant@localhost ~]$ sudo yum install nginx
Loaded plugins: security
Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Pl
ease verify its path and try again
[vagrant@localhost ~]$
Run Code Online (Sandbox Code Playgroud)
版本信息
[vagrant@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Thu Nov 21 13:35:52 CST
2013 …
Run Code Online (Sandbox Code Playgroud) 有什么方法可以将应用程序/脚本添加到 Linux 启动中,以便每次系统启动时都会执行它?
我正在寻找一些自动化的方式,即用户不应该通过 cron 作业或类似的东西添加它。
GNOME 桌面已安装在 CentOS7 上使用sudo yum -y groups install "GNOME Desktop"
,startx
执行时桌面启动。但是,当系统重新启动时,会出现以下问题:
当c
已执行发生以下情况:
1
结果是:
和打字 2
取消选中该框,问题仍然存在。
解决问题的尝试
根据这个问答,1
应该执行来解决问题,但这没有帮助。
问题
这个问题是关于 samba 文件访问的。
我创建了一个文件夹 A,在文件夹 A 下创建了两个文件夹 B 和 C。还创建了三个用户 A、B 和 C。
用户 A 可以访问所有三个文件夹,但用户 B 只能访问文件夹 B,用户 C 只能访问文件夹 C。
B & C 文件夹的权限是:
drwxrwxr-x 3 a b 4096 May 10 16:22 b
drwxrwxr-x 3 a c 4096 May 10 16:43 c
Run Code Online (Sandbox Code Playgroud)
问题:
当用户 B 在文件夹 B 下创建任何新文件时,它的权限变为
drwxr-x--- 2 b b 4096 May 10 16:21 New Folder
Run Code Online (Sandbox Code Playgroud)
而我希望它为任何新创建的文件保持与文件夹 B 相同的所有者、组和权限。
#!/bin/sh
re="\/$"
if [ $1 =~ $re ]; then
echo "${ATTENTION_PREFIX}$1 DIRECTORY MAY NOT CONTAIN A \"/\" OR LITERAL SLASH!${ATTENTION_POSTFIX}"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
执行sudo file.sh hello/
结果[: 29: hello: unexpected operator
看起来这个正则表达式方法对于 shell 脚本是不正确的。
当前方法:
sudo awk 'BEGIN{printf "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<hello>\n\t<world>\n";} {print "\t\t",$0}END{printf "\t </world>\n</hello>\n"}' hello > hello2
Run Code Online (Sandbox Code Playgroud)
首选方法不起作用:
hello > hello2
想定义为变量以避免代码重复
$CURRENT_TO_OUT=hello > hello2
echo "CP1" $CURRENT_TO_OUT
sudo awk 'BEGIN{printf "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<hello>\n\t<world>\n";} {print "\t\t",$0}END{printf "\t </world>\n</hello>\n"}' $CURRENT_TO_OUT
Run Code Online (Sandbox Code Playgroud)
输出 $CURRENT_TO_OUT:
CP1 hello
介绍
目的是自动更新 CentOS 7 系统。
试图
基于此文档,执行了以下步骤:
yum-cron
已安装将yum-cron.conf
改变如下:
user@host ~ $ cat /etc/yum/yum-cron.conf
[commands]
update_cmd = default
update_messages = yes
download_updates = yes
apply_updates = yes
Run Code Online (Sandbox Code Playgroud)该yum-cron
是:
勾选 ( systemctl status yum-cron
)
user@host ~ $ systemctl status yum-cron
? yum-cron.service - Run automatic yum updates as a cron job
Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled;
vendor preset: disabled)
Active: active (exited) since
Run Code Online (Sandbox Code Playgroud)启用 ( systemctl enable yum-cron
)
systemctl start yum-cron …