AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[linux](unix)

Martin Hope
Alan Mick
Asked: 2025-04-20 11:03:32 +0800 CST

我的 Ubuntu Linux 主目录是 /home/ls。为什么它是“ls”而不是我的用户名?

  • 12

我在 Windows 11 PC 上的 WSL 下安装了 Ubuntu Linux。安装过程中我设置了一个用户名,perdiem。一切启动并运行后,我cd输入了~,最终进入的目录是/home/ls。我不知道这是为什么;我以为这是我的用户名。奇怪的是,它实际上是一个 Linux 命令——有点令人困惑。

这不是问题,但有人知道为什么ls将其建立为主目录而不是我的用户名吗?


输出id:

uid=1000(ls) gid=1000(ls) groups=1000(ls),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),107(netdev)

输出grep /home/ls /etc/passwd:

ls:x:1000:1000:,,,:/home/ls:/bin/bash
linux
  • 2 个回答
  • 1124 Views
Martin Hope
Nungesser Mcmindes
Asked: 2025-04-18 09:28:26 +0800 CST

fork() 导致物理内存中的 DMA 缓冲区在后续写入时保留陈旧数据

  • 13

我正在 Ubuntu 20.04 上开发一个 C++ 应用程序,它使用 PCIe DMA 将数据从用户空间缓冲区传输到硬件。该缓冲区通过自定义库 (plib->copyDataToBuffer) 映射到一个固定的 1K 物理内存区域。在调用 fork() 并运行子进程(该进程仅调用外部程序并退出)后,我注意到父进程对缓冲区的后续写入并没有反映到物理内存中——内核仍然看到的是 fork 之前的旧数据。

关键细节: 1K 缓冲区专门为 DMA 映射;它被固定并映射到已知的物理地址。

在 fork() 之前,对 plib->copyDataToBuffer 的调用可以正确更新物理内存。

fork()之后,父进程再次调用plib->copyDataToBuffer,传入新的数据,msync返回成功,但是物理内存内容保持不变。

子进程不接触缓冲区;它仅通过 execvp 运行不相关的命令。

我的假设和关注: fork() 导致 COW(写时复制),但由于只有父级写入缓冲区,我预计更新的内容会反映在物理内存中。

COW 行为或内存重映射后分叉是否会干扰 DMA 映射的内存区域?

我确认 plib->copyDataToBuffer 从软件角度正确执行写入,但实际物理内存内容(从内核空间验证)仍然陈旧。

问题: 为什么在子进程中执行 fork() + exec 之后,支持我的 DMA 缓冲区的物理内存会保留陈旧数据,即使父进程随后写入了新数据?

确保在 fork() 调用期间 DMA 缓冲区的物理内存更新保持一致的最佳实践是什么?

linux
  • 2 个回答
  • 553 Views
Martin Hope
Isidro Arias
Asked: 2025-04-16 18:02:44 +0800 CST

为什么 `tail -c 4097 /dev/zero` 会立即退出而不是阻塞?

  • 14

我观察到,在 Ubuntu 24.04.2coreutils版本上9.4-3ubuntu6运行:

$ tail -c 4097 /dev/zero
$ echo $?
0

立即退出,状态码为 0。我预计该命令将无限期阻塞,因为 /dev/zero 是一个无休止的流。

相反,以下命令的行为符合预期(即,它们会阻塞直到被中断):

$ tail -c 4096 /dev/zero
^C
$ echo $?
130
$ cat /dev/zero | tail -c 4097
^C
$ echo $?
130

调试尝试

strace 输出显示了两次调用之间的差异:

strace tail -c 4096 /dev/zero strace tail -c 4097 /dev/zero
… …
关闭(3)= 0 关闭(3)= 0
openat(AT_FDCWD, “/dev/zero”, O_RDONLY) = 3 openat(AT_FDCWD, “/dev/zero”, O_RDONLY) = 3
fstat(3,{st_mode=S_IFCHR|0666,st_rdev=makedev(0x1, 0x5),…}) = 0 fstat(3,{st_mode=S_IFCHR|0666,st_rdev=makedev(0x1, 0x5),…}) = 0
lseek(3,-4096,SEEK_END) = 0 lseek(3,-4097,SEEK_END) = 0
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 读取(3,“\0\0\0\0\0\0\0\0\0\0\…,4097)= 4097
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 fstat(1,{st_mode=S_IFIFO|0600,st_size=0,…}) = 0
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 写入(1,“\0\0\0\0\0\0\0\0\0\0\…,4096
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 关闭(3)= 0
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 写入(1,“\0”,1)= 1
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 关闭(1)= 0
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 关闭(2)= 0
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 退出组(0)=?
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192 ~~+~~ 以 0 退出 ~~+~~
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192
读取(3,“\0\0\0\0\0\0\0\0\0\00”…,8192)= 8192
…
linux
  • 1 个回答
  • 211 Views
Martin Hope
arslivinski
Asked: 2025-04-14 23:41:35 +0800 CST

使用物理按钮进行身份验证

  • 6

我身边有一台 Raspberry PI Pico,我正在考虑创建一个设备,当我需要在 Linux 上验证自己的身份时,我只需单击焊接到 Pico 上的按钮,它就会向计算机发送一条消息来验证自己的身份。

该设备将连接到安全的计算机,所以没有问题。

问题是,我该怎么做?我没有 Linux 编程经验,所以不知道有没有现成的服务或库可以实现这个功能。我知道 YubiKey 有带按钮的设备可以实现类似的功能,但我也看到过它们需要网络连接才能工作,这显然不行。

linux
  • 3 个回答
  • 62 Views
Martin Hope
drjeep
Asked: 2025-04-14 23:10:21 +0800 CST

繁忙的 SFTP 服务器上的 systemd-logind 和 d-bus 问题

  • 6

我们最近将运行的大容量 CentOS 7 SFTP 服务器升级openssh/internal-sftp到 Rocky Linux 8。

然而,升级后,服务器运行1-2小时后,我们遇到了登录超时的问题。这似乎与打开的SFTP会话和/或systemd --user进程数量有关。

1-2 小时后,新的 SFTP 登录变得非常慢,我们开始在日志中看到这些消息

Apr 14 12:16:58 sftp sshd[330585]: pam_systemd(sshd:session): Failed to create session: Connection timed out

有时,如果足够多的 SFTP 会话关闭得足够快,问题就会解决,但更多时候我们必须重新启动服务器才能恢复正常服务。

是否建议禁用它systemd-logind,因为 SSH 似乎不需要它?

更新
不确定这是否相关,但systemctl list-units --state=abandoned返回了 100 个被放弃的会话。

更新 2
禁用后pam_systemd.so系统恢复正常运行。这实际上禁用了systemd-logindSSH 会话。

系统负载减少 80% 表明使用时性能会受到巨大损失systemd-logind。

这正常吗?!

linux
  • 1 个回答
  • 36 Views
Martin Hope
Daniel T
Asked: 2025-04-14 06:44:54 +0800 CST

如何优先驱逐 SSD 页面缓存而不是速度较慢的 HDD?

  • 7

我有一块大容量、慢速的 HDD 和一块小容量、快速的 SSD。这关乎读取操作,而非RAID。我的电脑在 SSD 上加载(重新/卸载)了超过 12 GiB 的 Linux 内核构建树和总共 39 GiB 的不同 LLM 文件后,切换回 Firefox 或查看手册页时,桌面几乎卡死,而我的内存只有 31 GiB:

$ free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi        10Gi       2.4Gi       1.0Gi        19Gi        20Gi
Swap:             0B          0B          0B
$ lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                     8:0    0   1.8T  0 disk  
├─sda1                  8:1    0   512M  0 part  /boot/efi
├─sda2                  8:2    0   1.7G  0 part  /boot
└─sda3                  8:3    0   1.8T  0 part  
  └─sda3_crypt        254:0    0   1.8T  0 crypt 
    ├─vgubuntu-root   254:1    0   1.8T  0 lvm   /
    └─vgubuntu-swap_1 254:2    0   1.9G  0 lvm   
nvme0n1               259:0    0 953.9G  0 disk  
└─nvme0n1p1           259:1    0   100G  0 part  
  └─luks-...          254:3    0   100G  0 crypt /media/...
$ sysctl vm.swappiness
vm.swappiness = 60

SSD 速度很快,所以我宁愿 Linux 先清除 SSD 的页面缓存文件。反正它的非缓存读取时间也得几秒。应该停止的是清除/usr或下的任何文件/home。我的man bash和dpkg -S bin/bash会立即从页面缓存中返回,但如果没有缓存,它们在退出 LLM 后需要半分钟才能返回。更严重的是,Firefox 需要我的~/.mozilla文件夹来保存历史记录和缓存;如果没有缓存,等待地址栏显示需要几分钟。

我正在寻找一个配置选项。systemd-run可以设置 MemoryMax 为ktorrent,但我经常重启llama-server以在大约 6 GiB 的 LLM 之间切换,而且我不希望使用单独的守护进程来保持 cgroup 处于活动状态。一旦我解决了担忧,将我的 迁移到 SSD 后,man和 的dpkg问题将得到解决;与此同时,会导致可用内存不足,并且过于复杂。LLM 工作负载可以(但不应该)重新挂载 SSD 作为解决方法。这使得d 内核构建工作负载仍然会清除我的 Web 浏览器缓存。/fscrypt/usrtmpfsoverlayfsnice

我查看了相关/sys/block配置,但没找到合适的。Cgroups v2有针对每个设备的选项,但仅适用于并行写入工作负载(io.max),而无法控制顺序工作负载如何影响缓存。2011年的补丁和2023 年的问题都没有找到任何用户空间接口。哪个设置可以强制 SSD 的页面缓存先于 HDD 的页面缓存被清除?

linux
  • 1 个回答
  • 39 Views
Martin Hope
drjeep
Asked: 2025-04-10 19:45:12 +0800 CST

PAM maxlogins 限制不起作用

  • 6

自从从 CentOS 7 升级到 Rocky Linux 8 后,我们的 PAMmaxlogins限制不再对 SFTP 会话强制执行。

SFTP 用户属于该sftp组,我们在/etc/security/limits.d/10-maxlogins.conf

@sftp        -       maxlogins       1

我们用于internal-sftpSFTP 会话,并且/etc/ssh/sshd_config

Subsystem sftp  internal-sftp -l INFO

Match Group sftp
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no

但是,用户仍然能够同时打开 1 个以上的 SFTP 会话。我们是否应该在 EL8 中采取一些不同的措施来强制执行这些限制?

更新:
已启用 PAM 调试日志,可以看到它正在读取相关的配置文件。但是,该限制并未强制执行。

Apr 10 16:13:04 sftp-test sshd[40955]: Accepted password for sftptest from 10.3.200.146 port 60976 ssh2
Apr 10 16:13:04 sftp-test sshd[40955]: pam_limits(sshd:session): reading settings from '/etc/security/limits.conf'
Apr 10 16:13:04 sftp-test sshd[40955]: pam_limits(sshd:session): reading settings from '/etc/security/limits.d/10-max-logins.conf'
Apr 10 16:13:04 sftp-test sshd[40955]: pam_limits(sshd:session): checking if sftptest is in group sftp
Apr 10 16:13:04 sftp-test sshd[40955]: pam_limits(sshd:session): process_limit: processing - maxlogins 1 for GROUP
Apr 10 16:13:04 sftp-test sshd[40955]: pam_limits(sshd:session): checking logins for 'sftptest' (maximum of 1)
Apr 10 16:13:04 sftp-test systemd[40960]: pam_unix(systemd-user:session): session opened for user sftptest(uid=1000) by sftptest(uid=0)
Apr 10 16:13:04 sftp-test sshd[40955]: pam_unix(sshd:session): session opened for user sftptest(uid=1000) by sftptest(uid=0)
Apr 10 16:13:26 sftp-test sshd[40986]: Accepted password for sftptest from 10.3.200.146 port 52110 ssh2
Apr 10 16:13:26 sftp-test sshd[40986]: pam_limits(sshd:session): reading settings from '/etc/security/limits.conf'
Apr 10 16:13:26 sftp-test sshd[40986]: pam_limits(sshd:session): reading settings from '/etc/security/limits.d/10-max-logins.conf'
Apr 10 16:13:26 sftp-test sshd[40986]: pam_limits(sshd:session): checking if sftptest is in group sftp
Apr 10 16:13:26 sftp-test sshd[40986]: pam_limits(sshd:session): process_limit: processing - maxlogins 1 for GROUP
Apr 10 16:13:26 sftp-test sshd[40986]: pam_limits(sshd:session): checking logins for 'sftptest' (maximum of 1)
Apr 10 16:13:26 sftp-test sshd[40986]: pam_unix(sshd:session): session opened for user sftptest(uid=1000) by sftptest(uid=0)
linux
  • 1 个回答
  • 44 Views
Martin Hope
Richard W
Asked: 2025-04-09 14:49:17 +0800 CST

我无法在 tap 接口上接收任何数据包

  • 5

我想测试一个在用户空间运行完整 IPv6 协议栈的应用程序。该应用程序应该处理并发送以太网帧。为此,我想在 Linux 上设置一个网络接口,以便我可以从本地计算机访问它,就像它是网络中的另一个参与者一样。我了解到应该使用 TAP 设备来实现这一点。因此,我创建了一个脚本来设置接口和测试应用程序。

这是我设置界面的脚本:

#!/bin/bash

MAC_ADDR="00:11:22:33:44:55"
IP_ADDR="2001:db8::2"

setup() {
    # Create the TAP interface (if not already created)
    ip tuntap add dev tap0 mode tap

    # Assign an IPv6 address to the TAP interface
    ip -6 addr add "${IP_ADDR}/64" dev tap0

    # Bring the TAP interface up
    ip link set dev tap0 up

    # Set a custom MAC address for the TAP interface
    # (Replace with your desired MAC address)
    ip link set dev tap0 address $MAC_ADDR

    # Disable kernel IPv6 handling on this interface
    sysctl -w net.ipv6.conf.tap0.forwarding=0
    sysctl -w net.ipv6.conf.tap0.accept_ra=0

    # Print interface details to verify the MAC address and IP
    ip addr show dev tap0
}

cleanup() {
    ip link set tap0 down || true
    ip tuntap del dev tap0 mode tap
}

# Setup tap interface
setup

# Cleanup when exiting
trap cleanup SIGINT

# Keep the interface up indefinitely
echo "Press Ctrl+C to bring down the interface"
sleep infinity

这是我的测试应用程序:

// TunInterface.h
#pragma once

#include <string>
#include <functional>
#include <sys/socket.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <fcntl.h>
#include <cstring>
#include <iostream>
#include <netinet/if_ether.h>
#include <netinet/ip.h>

class TunInterface {
public:
    TunInterface(const std::string& dev_name,
                 std::function<void(const unsigned char*, size_t)> recv_callback,
                 const unsigned char* mac_address = nullptr)
        : dev_name(dev_name), receive_callback(recv_callback), mac_filter(mac_address) {
        // Open the TUN device
        tun_fd = open("/dev/net/tun", O_RDWR);
        if (tun_fd < 0) {
            std::cerr << "Failed to open TUN device" << std::endl;
            exit(1);
        }

        struct ifreq ifr;
        std::memset(&ifr, 0, sizeof(ifr));
        std::strncpy(ifr.ifr_name, dev_name.c_str(), IFNAMSIZ);

               // Set up the TUN interface
        if (ioctl(tun_fd, TUNSETIFF, &ifr) < 0) {
            std::cerr << "Failed to configure TUN interface" << std::endl;
            close(tun_fd);
            exit(1);
        }

        std::cout << "TUN interface " << dev_name << " configured successfully." << std::endl;
    }

    ~TunInterface() {
        close(tun_fd);
    }

           // Function to start receiving and calling the callback on incoming packets
    void receive() {
        unsigned char buffer[2048];  // Adjust the buffer size as needed
        while (true) {
            ssize_t len = read(tun_fd, buffer, sizeof(buffer));
            if (len < 0) {
                std::cerr << "Error reading from TUN interface" << std::endl;
                continue;
            }

                   // Call the user-defined callback
            if (mac_filter && !is_mac_filtered(buffer)) {
                // If the MAC address does not match the filter, skip the packet
                continue;
            }

            receive_callback(buffer, len);
        }
    }

           // Function to send a packet
    void send(const unsigned char* data, size_t len) {
        ssize_t bytes_written = write(tun_fd, data, len);
        if (bytes_written < 0) {
            std::cerr << "Error writing to TUN interface" << std::endl;
        }
    }

private:
    int tun_fd;
    std::string dev_name;
    std::function<void(const unsigned char*, size_t)> receive_callback;
    const unsigned char* mac_filter;  // If nullptr, no filtering is done

    bool is_mac_filtered(const unsigned char* packet) {
        if (mac_filter) {
            struct ethhdr* eth_header = reinterpret_cast<struct ethhdr*>(const_cast<unsigned char*>(packet));
            return std::memcmp(eth_header->h_dest, mac_filter, ETH_ALEN) == 0;
        }
        return true;  // No filter if mac_filter is nullptr
    }
};

#endif

#include "TapInterface.h"
#include <iostream>

int main() {
    // Define the MAC address for filtering (e.g., 00:11:22:33:44:55)
    uint8_t macAddr[6] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 };

           // Create a TapInterface with MAC filtering enabled
    TapInterface tap("tap0", macAddr);

    if (!tap.isValid()) {
        std::cerr << "Failed to create TAP interface\n";
        return 1;
    }

           // Register a callback to handle received frames
    tap.registerReceiveCallback([](const uint8_t* data, size_t len) {
        std::cout << "Received frame of length " << len << " bytes\n";
    });

    std::cout << "Listening on tap0. Press Ctrl-C to exit.\n";
    while (true) pause(); // Or use any other suitable loop
}

我运行时,ping6 2001:db8::2期望在测试应用程序中至少看到邻居发现以太网帧。但我什么也没看到。相反,我一启动测试应用程序就收到了ping6尝试的回复。看起来内核仍然在干扰。我尝试了类似的方法,使用tun设备,也成功了,但在第2层不起作用。我使用的是Ubuntu 24.04系统。

可能出了什么问题?谢谢。

linux
  • 1 个回答
  • 19 Views
Martin Hope
Continuous Improvement
Asked: 2025-04-09 12:26:42 +0800 CST

任何实际用例中我们都不会在 `nsswitch.conf` 中优先考虑 DNS 上的本地文件

  • 5

最近我了解到,在某些类Unix操作系统中,有一个域名服务切换配置文件nsswitch.conf。我们可以使用 来更改域名解析顺序nsswitch.conf。

最常见的顺序应该是优先考虑本地文件而不是 DNS。在 中nsswitch.conf,应该定义为

hosts:          files DNS

我想知道是否还有其他用例没有像上面那样配置?例如,

hosts:          DNS

他们采用这种配置的原因是什么?

可选:您还知道其他有趣但不为人所知的用法nsswitch.conf吗?

linux
  • 2 个回答
  • 43 Views
Martin Hope
user447274
Asked: 2025-04-06 10:25:39 +0800 CST

在 Bash 配置文件中,如何从列表中随机挑选项目,但有些项目的出现频率比其他项目更高?

  • -2

在 Linux 中,使用 Bash,我有两个脚本:

  1. script.sh是主脚本,并且
  2. script_config.sh是的配置script.sh。

在中script.sh,我确实source script_config.sh从那里加载所有配置。

在 中script_config.sh,我会做如下事情:

TEMPDIR=/mnt/sda1/temp

我不知道这是否是最好的方法,但对我来说没问题,我将配置放在单独的文件中,可以将其加载到主脚本中。

在旧版本中script.sh,我曾经shuf读取文件(cipher_to_use.txt)来获取要使用的密码的随机输入cryptsetup。

在 中cipher_to_use.txt,只列出了 6 种不同的密码,但有些行出现了多达 10 次,因此shuf选择它们的频率更高,但仍然是随机的。这对我来说还行。

但是现在,有了script_config.sh,我正在寻找一种方法来继续这种方法,
但我不想在中多次写入 6 个密码script_config.sh。

如何在 中使用不同的密码shuf,但使某些密码比其他密码出现得更频繁,同时在 中每个密码仅列出一次script_config.sh?

:编辑

感谢 nbanana 的想法,但是有没有办法让它与您的方式略有不同?

如果我这样写script_config.sh:

(chk = 密码有密钥)

chk1_name_="--cipher aes-cbc-essiv:sha256      --hash sha512  --key-size 256"
chk1_weigt="15"

chk2_name_="--cipher serpent-cbc-essiv:sha256  --hash sha512  --key-size 256"
chk2_weigt="1"

chk3_name_="--cipher twofish-cbc-essiv:sha256  --hash sha512  --key-size 256"
chk3_weigt="1"

chk4_name_="--cipher aes-xts-plain64           --hash sha512  --key-size 512"
chk4_weigt="4"

chk5_name_="--cipher serpent-xts-plain64       --hash sha512  --key-size 512"
chk5_weigt="1"

chk6_name_="--cipher twofish-xts-plain64       --hash sha512  --key-size 512"
chk6_weigt="1"

我要添加什么才能script.sh成为ciphers_has_key_list-file

在 chk1 中重复 15 次,在 chk2 中重复 1 次,等等……?

如果 chk6 不再存在怎么办?

如果有 chk7 和 chk8 会怎么样?

linux
  • 2 个回答
  • 84 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve