标签: linux

为什么在 Unix 中使用“tail -n 1”来查找文件的第 n 行?

我注意到人们通常使用head -n | tail -n 1Shell 来查找文件的第 n 行。

例如,如果我被要求查找文件的第 7 行,为什么不直接使用head -7而不是使用 来创建管道tail

linux command-line shell

-1
推荐指数
1
解决办法
1272
查看次数

什么是“dd if=/dev/zero of=/storage2/test4.img bs=1M count=256”用法?

如果有人能向我解释以下命令到底做了什么,我将不胜感激:

dd if=/dev/zero of=/storage2/test4.img bs=1M count=256 
Run Code Online (Sandbox Code Playgroud)

storage linux solaris dd

-1
推荐指数
1
解决办法
521
查看次数

延迟/取消 Linux 关机

我知道类似的问题在这里被多次回答,我的问题可能看起来很奇怪,但我的情况不同。我想在另一个进程之前捕获 linux 关闭命令,在 UI 上显示一条消息,然后推迟/取消关闭。

情况是这样的: 我们使用虚拟机进行工作(Amazon 工作区)。我们在这台机器上拥有 root 访问权限another people(例如安全人员)。他们another people不尊重我们,当我们在机器上工作时,他们经常重新启动 Linux 工作区。我们使用带有 UI 的应用程序(即 Intellij IDE),有时在终端中工作。不幸的是,这里没有警告我们即将重启的警报。我不知道如何another people延迟或不延迟地重新启动虚拟工作区。

我想要什么:

  1. 在后台运行捕获关闭信号的脚本
  2. 在关闭信号到达任何应用程序之前捕获它!
  3. 显示 UI 警告(不是终端消息)。
  4. 然后阻止关闭,并允许我们稍后手动重新启动机器。

我知道我可以trap在 bash 脚本中捕获信号并取消信号shutdown -c,但有时为时已晚,信号会在我的脚本执行任何操作之前杀死另一个正在运行的用户进程。

问题是我可以在任何其他进程捕获关闭信号之前以某种方式捕获并取消关闭信号,并按时取消关闭吗?

也许有现有的工具可供使用,可以处理这种情况,但不确定。

another people不管你信不信,我们多次尝试交谈。另一个问题是,当关机发生在工作时间之外时,那么关机也必须推迟,因为我们只是关闭远程桌面并且不保存工作,因为第二天早上我们会回来。

如果您在不同时区工作,如何定义工作时间是另一个问题。

主要问题是如何在关闭信号到达任何应用程序之前捕获并取消它。

linux shutdown bash amazon-ec2 aws

-1
推荐指数
1
解决办法
215
查看次数

重命名拆分创建的文件

我有来自split调用的输出文件

shivi11aa
shivi11ab
Run Code Online (Sandbox Code Playgroud)

(等等。)

我如何将这些现有文件重命名为

output_1
output_2
Run Code Online (Sandbox Code Playgroud)

(等等。)

如果我有 1000 个文件,最后一个应该是output_1000.

linux shell-script

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

通过绝对文件路径运行linux命令

输出我知道我们可以通过绝对文件路径以及命令本身来调用 Unix 或 Linux 命令。例如我们可以通过键入ls以及/bin/ls(在Linux中)列出目录内容有什么区别吗?. 当我这样做时,我得到了相同的输出,但只有文件类型之间的颜色分离不同,您可以在上传的图像中看到它。

linux command

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

如何在 C 中的 setregid() 和 setreuid() 之后访问/设置其他用户的环境变量

我有一个特权 C 程序,它由标准用户(例如stduser)执行并在执行时切换到系统用户(例如sysuser),如下所示。基本上,我正在尝试做一些类似于sudo -u sysuser env会做的事情。

环境测试.c:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<unistd.h>
#include<errno.h>
#include<shadow.h>
#include<pwd.h>

int main(void){
  struct passwd*pw;
  uid_t sysuid;
  gid_t sysgid;
  char err_module_name[256] = "";

  pw = getpwnam ("ayauser");
  endpwent();

  if (!pw){ //user doesn't really exist
          perror("getpwnam()");
          return errno;
  }

  sysuid = pw->pw_uid;
  sysgid = pw->pw_gid;

  (strcpy(err_module_name, "setregid()") == NULL || setregid(sysgid, sysgid) == 0) &&
  (strcpy(err_module_name, "setreuid()") == NULL || setreuid(sysuid, sysuid) == 0) &&
  (strcpy(err_module_name, "execl()")  == NULL || execl("/usr/bin/env", …
Run Code Online (Sandbox Code Playgroud)

linux c setuid environment-variables setgid

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

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

df -h 和 df -kh?

df -h和 和有df -kh什么区别?

我正在我的终端中尝试这两个命令,但是我没有看到任何明显的区别,所以想了解一下。

linux disk-usage

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

为什么 Ubuntu 被认为是 GNU/Linux?

我想知道为什么 Ubuntu 被称为“GNU/Linux”的发行版,尽管它提供了不属于 GNU GPL 许可证的专有图形驱动程序(和其他一些东西)。

linux ubuntu gnu

-2
推荐指数
2
解决办法
89
查看次数

将变量值传递给第二次调用 awk

我想将变量传递varawk以下命令中的下一条语句

cat scr1|awk '{val=substr($0,10,10)} 1'|awk '/           /{print $0}'
Run Code Online (Sandbox Code Playgroud)

此语句用于在文件中仅在位置 10 到 19 处查找由 10 个空格组成的字符串,并仅返回该行。如果有人有更好的方法,请告诉我。

linux awk

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