小编030*_*030的帖子

使用 grep 计算出现的总次数

grep -c对于查找字符串在文件中出现的次数很有用,但它每行只计算每次出现一次。如何计算每行出现的多次?

我正在寻找比以下更优雅的东西:

perl -e '$_ = <>; print scalar ( () = m/needle/g ), "\n"'
Run Code Online (Sandbox Code Playgroud)

grep

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

如何创建 TCP 侦听器?

简介:我创建了一个 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)

shell networking tcp

60
推荐指数
5
解决办法
22万
查看次数

如何使用 scp 从服务器中提取文件?

我在机器 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 上,这个文件存在于这个路径中。

出了什么问题?

scp

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

yum update 后重启服务器是个好主意吗?

我知道yum update不时运行以保持我的 Centos 服务器更新是很好的,我什至看到有办法自动更新。我的问题是,更新后是否需要重新启动服务器?这是个好主意吗?如果我不断更新并且永不重启会怎样?

yum

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

无法拉取 EPEL 存储库元数据

根据此文档在 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)

yum software-installation scientific-linux nginx

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

什么是 Linux 相当于 Windows 启动?

有什么方法可以将应用程序/脚本添加到 Linux 启动中,以便每次系统启动时都会执行它?

我正在寻找一些自动化的方式,即用户不应该通过 cron 作业或类似的东西添加它。

linux

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

系统重新启动后,GNOME 许可证不被接受的问题

GNOME 桌面已安装在 CentOS7 上使用sudo yum -y groups install "GNOME Desktop"startx执行时桌面启动。但是,当系统重新启动时,会出现以下问题:

在此处输入图片说明

c已执行发生以下情况:

在此处输入图片说明

1 结果是:

在此处输入图片说明

和打字 2

在此处输入图片说明

取消选中该框,问题仍然存在。

解决问题的尝试

根据这个问答1应该执行来解决问题,但这没有帮助。

问题

  1. 为什么系统重启后会出现这个问题?
  2. 如果可以通过发出某些命令来接受许可证,如何避免每次系统启动时都需要执行这些命令?
  3. 最后一个也是主要的问题是如何避免在启动时出现这个接受许可证提示?

gnome centos software-installation licenses reboot

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

为新创建的文件保留相同的文件所有者

这个问题是关于 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 相同的所有者、组和权限。

linux users permissions files chown

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

在 shell 脚本中可以使用哪些正则表达式方法来验证输入?

#!/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 脚本是不正确的。

shell-script regular-expression test

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

"&gt;" 可以包含在 bash 变量中吗?

当前方法

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

bash quoting variable

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

如何在 CentOS7 上启用自动更新?

介绍

目的是自动更新 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 …

centos upgrade

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