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
    • 最新
    • 标签
主页 / user-24394

humanityANDpeace's questions

Martin Hope
humanityANDpeace
Asked: 2019-12-25 05:00:58 +0800 CST

GNOME 将其他语言的翻译存储在哪个文件/位置?

  • 1

我对 DE 中的本地化有点缺乏了解,因为无论如何我更喜欢英文原版的文本。但是我为一些只说德语的人安装了 GNOME DE。我可以将 GNOME/显示语言设置为德语,并且基本上可以Datei代替任何地方享受file(就像魔术一样)。

问题是在一个很小的地方(电源设置/电池指示灯)它说“不充电”留下一个不完美的地方,因为它在德语中应该更准确,比如“ Nicht ladend ”。

现在我做了一个:

 grep -iIr 'Not charging' /usr

希望它能找到我翻译/翻译标签所在的地方。不幸的是,它没有产生任何结果。

GNOME 用来提供德语 UI 的那些本地化翻译文件在哪里?

查阅文档有点困难,因为网络搜索Gnome translation files localization更有可能显示指南如何参与开发并成为翻译,但不会指出文件或数据最终存储在哪里

gui gnome
  • 1 个回答
  • 244 Views
Martin Hope
humanityANDpeace
Asked: 2019-10-08 23:11:39 +0800 CST

告诉 mutt 电子邮件客户端将邮件留在服务器上,并且下次_不_再次下载它们?

  • 0

使用 mutt 电子邮件客户端使用POP3协议从我的帐户中获取邮件。

是否希望 mutt 下载(新)邮件(以便让它们离线使用),这些邮件不应从邮件服务器中删除,原因很简单,我使用两台不同的机器获取我的邮件并下载然后删除使得不可能在所有机器上都有所有邮件。

配置的麻烦,问题的核心如下。告诉 mutt在下载后不要从服务器中删除邮件,目前会导致邮件的重复和越来越长的重复下载。

有没有办法配置mutt,以便将邮件存储在服务器上,而不是再次下载那些已经从以前的邮件获取中存在的邮件?

我记得其他电子邮件客户端可以执行这样的任务,这让我认为这不是POP3协议的固有限制。

email
  • 1 个回答
  • 699 Views
Martin Hope
humanityANDpeace
Asked: 2019-07-13 05:39:05 +0800 CST

/var/log/lastlog 是一个巨大的稀疏文件(1.1TB)有什么原因吗?

  • 12

我读过一些问题,询问如何rsync有效地稀疏文件,提到文件/var/log/lastlog和/var/log/faillog. 事实上,我自己也发现这些文件是一个“问题”,因为它们通过 rsync 进行备份会使它们变得“不稀疏”。

因此,我想知道的是,将这些文件设为稀疏、巨大的文件(在我的情况下是 1.1TB)的需求/背景动机是什么?

同样与此相关的是:由于我假设它们是日志文件,所以我不太关心我截断了这些文件,我是否因为截断这些文件而损坏了任何东西?

logs sparse-files
  • 4 个回答
  • 24078 Views
Martin Hope
humanityANDpeace
Asked: 2019-07-12 06:01:07 +0800 CST

有没有比这更好的方法来强制显示器空白/关闭?

  • 4

打算立即关闭显示器/监视器/屏幕(并且仅在按键时重新启用)我求助于这个解决方案:

  • 一个/bin/blankvt脚本:

    #!/bin/sh
    
    echo 1 > /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0/blank
    read keypress
    chvt 2
    
  • 一个/bin/blank脚本:

    #!/bin/sh
    
    openvt -s -f -c 40 /bin/blankvt
    

完成设置后,我可以简单地blank在命令行上调用,屏幕将熄灭并节省能源。伟大的!

虽然这个解决方案现在可以工作,但它看起来很笨拙和脆弱,我寻求的是实现相同效果的正确方法。在 shell 提示符下键入blank应该会导致屏幕关闭。

因此,我的问题是:如何“正确”切换显示器?

背景/动机

我没有连接到电网,节约能源对我来说至关重要。我需要让笔记本电脑/PC 进行一些计算,但希望关闭显示器的多余能耗(无论如何这似乎是一个不可忽视的消费者)。

如果我能在以下范围内实现这一点最好:

  • GNOME 外壳 3.32.2。
  • Linux 5.xx
linux power-management
  • 1 个回答
  • 1358 Views
Martin Hope
humanityANDpeace
Asked: 2019-06-06 07:57:09 +0800 CST

为什么 ldconfig 会从 libext2fs.so.2 创建到 libselinux.so.1 的符号链接?

  • 0

使用strace我发现了ldconfig(glibc)的行为,我无法理解

lstat("/usr/lib/libext2fs.so.2", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
unlink("/usr/lib/libext2fs.so.2")       = 0
symlink("libselinux.so.1", "/usr/lib/libext2fs.so.2") = 0

是否需要让ext2fs( libext2fs.so.2)的共享对象库成为libselinux.so.1.

ldconfig 如何知道该做什么?/usr/bin/ldconfig对我来说,这个静态二进制文件会有这样的硬编码行为似乎不合逻辑,对吧。然而,它的配置文件/etc/ld.so.conf并不能帮助我解开这个谜团。

是什么让我的发行版工具(Arch Linux)让这一切更加令人困惑/可疑,我找不到该文件所属的任何包。

$ pkgfile /usr/lib/libselinux.so.1

不显示任何包,而 $ pkgfile /usr/lib/libext2fs.so

输出core/e2fsprogs

所以我的问题是:

  1. 这个libselinux.so.1的作用在这里
  2. ldconfig 如何决定创建该符号链接(顺便说一句。中断e2fsck)
audit strace
  • 1 个回答
  • 1135 Views
Martin Hope
humanityANDpeace
Asked: 2018-12-06 08:55:06 +0800 CST

用户名有多重要(与 uid 相比)?

  • 3

背景: 我最近读到一个freedesktop.org-bug,它允许为>执行任何systemctl命令。因此我跑了: uidINT_MAX

root@host$> useradd -u 4000000000 largeuiduser
root@host$> su largeuiduser
largeuiduser@host$> systemctl ["whatever"]
[bug exists, and "whatever" gets executed]
largeuiduser@host$> exit
root@host$> userdel largeuiduser

寻找我后来发现的更清洁的方式

root@host$> setpriv --reuid 4000000000 systemctl ["whatever"]
[bug exists, and "whatever" stuff gets executed]

表明利用该漏洞不需要(临时)用户名。这也很明显,我不太确定:用户名实际上有多重要?.

问题 因此我的问题是。从内核(linux/posix)的角度来看,用户名有多可有可无?是否需要,是否可以使用?

我的怀疑是,用户名只是用户空间中专门使用的一种“便利设施”。

一个好的答案将试图通过提供用户名在哪些设置中变得“必要”以及在哪些设置中它们是“可消耗的”的信息来阐明这一点。

linux kernel
  • 1 个回答
  • 180 Views
Martin Hope
humanityANDpeace
Asked: 2018-11-24 07:16:00 +0800 CST

为什么 linux out-of-memory (OOM) 杀手不能自动运行,而是在 sysrq-key 上运行?

  • 11

我发现当遇到内存不足的 OOM 情况时,我的 linux box UI 会在很长一段时间内完全冻结。

我已经设置了magic-sysrq-key,然后使用 echo 1 | tee /proc/sys/kernel/sysrq并遇到OOM-> UI-unresponsive情况能够按下日志显示Alt-Sysrq-f导致dmesgOOM终止/终止进程并由此解决OOM情况。

我的问题是现在。为什么 linux 变得像 GUI 冻结一样无响应,但似乎没有触发相同的 OOM-Killer,我确实通过Alt-Sysrq-f组合键手动触发了它?

考虑到在OOM“冻结”情况下系统反应迟钝,甚至不允许及时(< 10秒)响应命中Ctrl-Alt-F3(切换到tty3),我不得不假设内核必须意识到它的无响应,但仍然本身并没有调用Alt-Sysrq-fOOM-Killer ,为什么?

这些设置可能会对所描述的行为产生影响。

$> mount | grep memory
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
$> cat /sys/fs/cgroup/memory/memory.oom_control 
oom_kill_disable 0
under_oom 0
oom_kill 0

虽然据我了解,内存 cgroup 没有激活或禁用 OOM(显然必须有充分的理由让 OOM_kill 激活和禁用,或者我无法正确解释输出,也under_oom 0有点不清楚,仍然)

linux out-of-memory
  • 2 个回答
  • 3321 Views
Martin Hope
humanityANDpeace
Asked: 2018-10-24 04:00:21 +0800 CST

伪终端( unlockpt / TIOCSPTLCK )是安全功能吗?

  • 4

打开伪终端的主控部分后

int fd_pseudo_term_master = open("/dev/ptmx",O_RDWR);

有/dev/pts/[NUMBER]创建的文件,代表slave他的伪终端的一部分。

像我这样无知的人可能会认为,在完成之后,ptsname(fd_pseudo_term_master,filename_pseudo_term_slave,buflen);应该将其设置为简单地 做好事int fd_pseudo_term_slave = open(filename_pseudo_term_slave,O_RDWR);。

然而,必须有一个非常重要的“锁定”伪终端从机用例,因为为了简单起见,在open调用之前,必须使用man 3 unlockpt来“解锁”。

我无法找出这个用例是什么?最初锁定伪终端需要什么?用代码实现了什么(取自 libc)

/* Unlock the slave pseudo terminal associated with the master pseudo
   terminal specified by FD.  */
int
unlockpt (int fd)
{
#ifdef TIOCSPTLCK
  int save_errno = errno;
  int unlock = 0;

  if (ioctl (fd, TIOCSPTLCK, &unlock))
    {
      if (errno == EINVAL)
        {
          errno = save_errno;
          return 0;
        }
      else
        return -1;
    }
#endif
  /* If we have no TIOCSPTLCK ioctl, all slave pseudo terminals are
     unlocked by default.  */
  return 0;
}

如果可能,答案将详细说明用例,历史或当前。

问题的额外部分是:

当前的 linux 内核是否仍然依赖于“锁定伪终端从站”的这种功能?

想法:这是避免比赛的低效尝试吗?

等待答案我已经更多地研究了 linux 内核源代码,但自己没有任何好的答案。但是,似乎可以从伪终端的初始锁定情况中“提取”的一种用途是为伪终端主进程提供一些时间来设置对文件的访问权限/dev/pts/[NUMBER],以防止某些用户首先访问该文件。这可以作为答案的一部分吗?奇怪的是,然而,这种“初始锁定”状态似乎并不能真正阻止从属文件的多次打开,至少我认为在这里可以保证原子性。

lock pseudoterminal
  • 1 个回答
  • 754 Views
Martin Hope
humanityANDpeace
Asked: 2018-10-17 10:09:07 +0800 CST

在命令之前 bash stat() 和 access() 很多是正常的吗?

  • 6

在指示运行的 shell 上运行提供strace此输出,该输出在执行实际二进制文件之前显示大量统计信息:bashmkdirmkdir

BASH$> strace -f sh -c "bash -c \"mkdir /tmp\" 2>&1 | nl | grep -e "execve\|stat\|access" 
[.....]
  2766  [pid 17371] stat(".", {st_mode=S_IFDIR|0750, st_size=17262, ...}) = 0
  2767  [pid 17371] stat("/usr/local/sbin/mkdir", 0x7ffd87aad0a0) = -1 ENOENT      2767 (No such file or directory)
  2768  [pid 17371] stat("/usr/local/bin/mkdir", 0x7ffd87aad0a0) = -1 ENOENT (No such file or directory)
  2769  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2770  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2771  [pid 17371] access("/usr/bin/mkdir", X_OK) = 0
  2772  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2773  [pid 17371] access("/usr/bin/mkdir", R_OK) = 0
  2774  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2775  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2776  [pid 17371] access("/usr/bin/mkdir", X_OK) = 0
  2777  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2778  [pid 17371] access("/usr/bin/mkdir", R_OK) = 0
  2779  [pid 17371] execve("/usr/bin/mkdir", ["mkdir", "/tmp"], 0x557ec7e15920 /* 5 vars */) = 0

我的问题是:是否正常(如果是,是什么原因)被/usr/bin/mkdir stat()大量使用?输出行已编号,特别是我想知道 line 2776make once2771已经运行有什么意义。此外,我的印象是 bash 可以保存从2770开始到最终execve的所有系统调用,因为它stat应该立即提供信息?我错过了什么?

从那以后,我一直在寻求解释并检查了 shell 的替代 shell 的dash行为方式它也显示了一些stat()ing :

DASH$> strace -f sh -c "dash -c \"mkdir /tmp\" 2>&1 | nl | grep -e "execve\|stat\|access" 
[....]
  2792  [pid 17372] stat("/usr/local/sbin/mkdir", 0x7ffc66010b50) = -1 ENOENT (No such file or directory)
  2793  [pid 17372] stat("/usr/local/bin/mkdir", 0x7ffc66010b50) = -1 ENOENT (No such file or directory)
  2794  [pid 17372] stat("/usr/sbin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2795  [pid 17372] execve("/usr/sbin/mkdir", ["mkdir", "/run"], 0x55d8d3453bb8 /* 6 vars */) = 0

我知道行2792,2793类似于行27672768 are because of searching the executable in the various directories in the currentPATH`。

如果打折,那么dash只做一个统计,bash做 10 个。再次提出问题:这正常吗?

更新:在 bash 统计中 有更多geteuid(), getguid(),getuid()和getgid()混杂

BASH$>strace -f sh -c "bash -c \"mkdir /tmp\"" 2>&1 | grep -e "execve\|stat\|access\|geteuid\|getegid\|getuid\|getgid" 
[....]
[pid 24534] stat("/usr/local/bin/mkdir", 0x7fffda480f30) = -1 ENOENT (No such file or directory)
[pid 24534] stat("/usr/local/sbin/mkdir", 0x7fffda480f30) = -1 ENOENT (No such file or directory)
[pid 24534] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
[pid 24534] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
[pid 24534] geteuid()                   = 1000
[pid 24534] getegid()                   = 1000
[pid 24534] getuid()                    = 1000
[pid 24534] getgid()                    = 1000
[pid 24534] access("/usr/bin/mkdir", X_OK) = 0
[pid 24534] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
[pid 24534] geteuid()                   = 1000
[pid 24534] getegid()                   = 1000
[pid 24534] getuid()                    = 1000
[pid 24534] getgid()                    = 1000
[pid 24534] access("/usr/bin/mkdir", R_OK) = 0
[pid 24534] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
[pid 24534] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
[pid 24534] geteuid()                   = 1000
[pid 24534] getegid()                   = 1000
[pid 24534] getuid()                    = 1000
[pid 24534] getgid()                    = 1000
[pid 24534] access("/usr/bin/mkdir", X_OK) = 0
[pid 24534] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
[pid 24534] geteuid()                   = 1000
[pid 24534] getegid()                   = 1000
[pid 24534] getuid()                    = 1000
[pid 24534] getgid()                    = 1000
[pid 24534] access("/usr/bin/mkdir", R_OK) = 0
[pid 24534] execve("/usr/bin/mkdir", ["mkdir", "/tmp"], 0x55adcd4dc040 /* 55 vars */) = 0

所以也许这可以为 bash 的“这里发生的事情”提供线索?是否正在做一些检查以防止setuid漏洞利用?

**更新 2:** geteuid()、getguid()、getuid()和getgid()access 组合似乎是 using库函数glibc的标志。int eaccess(const char *pathname, int mode);每次使用 都会eaccess导致使用 all geteuid、getguid、和getuid,因为 bash 运行findcmd.c的函数,而该函数又像这样运行 eaccess 两次。getgidaccessfile_status

#if defined (HAVE_EACCESS)
  /* Use eaccess(2) if we have it to take things like ACLs and other
     file access mechanisms into account.  eaccess uses the effective
     user and group IDs, not the real ones.  We could use sh_eaccess,
     but we don't want any special treatment for /dev/fd. */
  if (eaccess (name, X_OK) == 0)
    r |= FS_EXECABLE;
  if (eaccess (name, R_OK) == 0)
    r |= FS_READABLE;

其中每个 eaccess 可能链接到 4 个系统调用。

bash stat
  • 2 个回答
  • 295 Views
Martin Hope
humanityANDpeace
Asked: 2018-09-09 06:05:13 +0800 CST

如何在(POSIX)shell变量中正确存储换行符?[复制]

  • 2
这个问题在这里已经有了答案:
如何设置包含换行符的环境变量? (4 个回答)
4年前关闭。

更新尝试澄清更多,使用示例,执行以下 shell 命令:

SHELLVARIABLE="1st line,
2nd line,
3rd line,
" 
printf '%s' "$SHELLVARIABLE"

生成此输出:

1st line,<newline>2nd line,<newline>3rd line,<newline>

<newline>作为角色0x0a/ \n?

原始问题表述

将换行符0x0a(又名以其 commen c 样式 escap 已知\n)存储到 shell 变量中的正确(POSIX 确认)方法是什么。

我想确保执行以下操作:

SHELLVARIABLE="
"

是,不仅是偶然的工作,而且确实是正确的方法。

由于 POSIX 的printf完全能够生成换行符(即printf '\n',或printf '%b' '\0012'),我首先尝试了更明确的(?或正确?)形式:

SHELLVARIABLE="$(printf '\n')"

虽然是一种诱人的方法,但不起作用。根据标准,命令替换(即通过$()和` `)应删除

替换结束时的一个或多个换行符的序列。

注意:要求将单个尾随换行符存储到 shell 变量中只是为了抽象更一般的用例(我确实寻求答案),即如何将字符串存储到以换行符结尾的 POSIX shell 变量中。

shell posix
  • 1 个回答
  • 1412 Views
Martin Hope
humanityANDpeace
Asked: 2018-08-12 07:41:06 +0800 CST

如何为不同的内核执行“uname -r”?

  • 0

我想设置正确的内核模块加载。uname -r出于这个原因,我对我编译并准备安装的自定义内核的输出很感兴趣。

由于这个内核当然还没有运行,我不知道如何获取uname -r这个内核的信息,因为它尚未启动并且uname只输出当前内核 ID。

有没有办法确定uname -r我刚刚编译的内核的输出?

linux kernel-modules
  • 1 个回答
  • 337 Views
Martin Hope
humanityANDpeace
Asked: 2018-07-22 02:54:07 +0800 CST

为什么 /usr/include/unistd.h 中没有“open”系统调用?(但“关闭”是)

  • 3

在我的理解中,open和close系统调用似乎非常相关。

  • 两者都处理文件
  • 在大多数所有 unix 风格中都可用(?任何不具有它们的 unix 存在吗?)

因此,我希望在头文件中都声明它们。/usr/include/unistd.h但是-奇怪的是-那里只有“关闭”,但没有声明“打开”(在我的 4.17 linux 内核系统上)?

开放系统调用的遗漏unistd.h似乎在阅读The Open Group Base Specifications Issue 7, 2018时得到证实

在“声明”段中说明

以下应声明为函数,也可以定义为宏。应提供功能原型。

整数访问(const char *,int);
无符号警报(无符号);
int chdir(const char *);
int chown(const char *,> uid_t, gid_t);
整数关闭(整数);
[...更多声明,但没有“开放”]

然后-再次对我来说-该文件/usr/include/asm/unistd_64.h包含该行

#define __NR_open 2

好像 unistd.h 仍然有点关心“打开文件”?

posix system-calls
  • 1 个回答
  • 903 Views
Martin Hope
humanityANDpeace
Asked: 2017-12-22 02:20:06 +0800 CST

usb设备攻击,udev能拯救内核吗?

  • 2

我想知道,如果假设我连接了一个不受信任的设备(通过 USB 端口连接到我的系统),我会让我的 Linux 系统面临多大风险?特别是,我担心即使我会编写udev规则来阻止除特定设备(即白名单方法)之外的任何东西,内核还是容易受到攻击?

udev 是否​​有能力阻止内核(假设它是模块化的)加载通常作为与 USB 设备交互的方式加载的模块?

security linux-kernel
  • 1 个回答
  • 1004 Views
Martin Hope
humanityANDpeace
Asked: 2017-11-30 23:21:55 +0800 CST

另一个用户的非空子目录是否可以安全地从我的目录中删除?

  • 7

在以下情况下ls -alh

total 0
drwxrwx--- 1 user http  20 Nov 30 08:08 .
drwxrws--- 1 user http 310 Nov 30 08:07 ..
drwx------ 1 http http  10 Nov 30 08:08 empty-subdir
drwx------ 1 http http  12 Nov 30 08:08 non-empty-subdir

其中存在两个子目录(不属于我),我将其列为:

sudo ls empty-subdir -alh
total 0
drwx------ 1 http http 10 Nov 30 08:08 .
drwxrwx--- 1 user http 20 Nov 30 08:08 ..

sudo ls non-empty-subdir -alh
total 0
drwx------ 1 http http 12 Nov 30 08:08 .
drwxrwx--- 1 user http 20 Nov 30 08:08 ..
drwx------ 1 http http  0 Nov 30 08:08 subdir

这两个子目录的区别在于非空non-empty-subdir包含一个文件夹。

rm -rf我的问题是尝试删除子目录是否是设计使我得到的结果:

$ rm empty-subdir -rf
$ rm non-empty-subdir -rf
rm: cannot remove 'non-empty-subdir': Permission denied
$ ls -alh
total 0
drwxrwx---+ 1 user http  10 Nov 30 08:14 .
drwxrws---+ 1 user http 310 Nov 30 08:07 ..
drwx------+ 1 http http  12 Nov 30 08:08 non-empty-subdir

似乎允许对目录具有写权限的用户删除文件的条目或其他用户的空子目录,但不能删除非空子目录。

这个问题的理想答案将提供以下信息:

  • 确认概述的行为可以在其他机器上重现(而不仅仅是我搞砸的盒子的怪癖)
  • 解释该行为的理由(例如,有用例吗?)
  • 系统之间是否存在差异的概述(BSD,Linux ....)

更新:关于 Ipor Sircer 的评论,我确实重新测试了场景,没有任何 ACL 功能,它是相同的。因此,我修改了问题以+从列表中删除 es,以免产生行为可能与 ACL 相关的想法。

permissions rm
  • 3 个回答
  • 638 Views
Martin Hope
humanityANDpeace
Asked: 2017-11-27 02:11:16 +0800 CST

在 bash 中运行“exec echo some; echo test”是否永远不会打印“some test”?

  • 6

在 bash中运行exec echo "some "; echo "test"从不打印“一些测试”吗?

我会寻求对这个问题的确认,因为我正在编写一个小的 shell 脚本,并且我希望它在exec调用命令后不会继续任何事情。

根据我的理解,我认为在咨询后无需担心:

  • man 3 exec
  • man 1p exec

shell 脚本,当由 shell 执行时,将

  1. shell执行程序exec,它
  2. 使用exec***家族系统调用来替换执行脚本的 shell/bash,从而阻止shell 的进一步操作(被“替换”)

如前所述,这个问题的主要目标是寻求对我的推理的确认,以防止脚本中在 exec 之后发生的任何事情(例如echo test)将被执行。

我会尽可能地欣赏一个一般性的答案(POSIX),但就特殊情况而言,我对 GNU/Linux 和 GNU/Bash 最感兴趣

shell exec
  • 3 个回答
  • 7202 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