小编Raf*_*rsk的帖子

我怎样才能停止在午夜指挥官中看到隐藏文件?

当我们只使用文本模式时,午夜指挥官是一个非常有用的工具。但有时我必须查看文件夹中的所有隐藏文件(以“.”开头的文件),这让我感到困扰。

我试图找到如何自己改变一些配置,然后查看手册页。但我没有成功。

有谁知道我该怎么做?

keyboard-shortcuts filenames mc file-manager dot-files

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

是否可以使用shell脚本打印变量内容的内容?(间接引用)

假设我已经声明了以下变量:

$ var='$test'
$ test="my string"
Run Code Online (Sandbox Code Playgroud)

如果我打印它们的内容,我会看到以下内容:

$ echo $var
$test

$ echo $test
my string
Run Code Online (Sandbox Code Playgroud)

我想找到一种方法来打印内容的内容$var(即 的内容$test)。所以我尝试执行以下操作:

$ echo $(echo $var)
$test
Run Code Online (Sandbox Code Playgroud)

但这里的结果是$test而不是"my string"......是否可以使用bash打印变量内容的内容?

bash shell-script echo variable-substitution variable

13
推荐指数
3
解决办法
9240
查看次数

是否可以禁止特定用户在 /usr/bin 上执行文件而不将所有文件权限更改为 750?

我理解管理的Linux权限与概念chmod使用的第一个数字作为用户,第二个作为和第三为其他用户如在描述这个答案了解UNIX权限和文件类型

比方说,我有一个Linux系统具有5个用户:adminuserauserbusercguest。默认情况下,用户usera,userbuserc对里面的所有文件都有执行权限/usr/bin,因此这些用户可以使用系统的命令行执行里面的文件,因为这些文件有 75 5权限。到目前为止完全没问题。但是,我想禁止用户guest执行文件夹上的文件/usr/bin,我知道我可以通过将这个文件夹中所有文件的权限更改为 750 之类的东西来实现这一点chmod,但是如果我这样做,我会搞砸用户的权限userauserb而且userc因为它们也将禁止执行文件。

在我的电脑中,所有文件/usr/bin都属于集团root,所以我知道我可以创建一个newgroup,该组中的所有这些文件的改变,并添加userauserbusercnewgroup。但是这样做听起来像是对系统默认设置进行了太多修改。有谁知道解决这个问题的更聪明的方法?

PATH如果没有需要更改太多文件权限的过于复杂的解决方案,如何禁止单个用户使用命令行(或在 上执行任何文件)?

permissions chmod path

9
推荐指数
1
解决办法
1151
查看次数

是否可以在任何 Linux 机器上激活看门狗?

在运行 Raspbian 服务器的Orange Pi Zero上,只需以echo 1 > /dev/watchdogroot 身份运行命令即可轻松使用看门狗。这个想法是,执行此命令一段时间后系统肯定会重新启动,因此我需要定期重复此命令以保持系统开启。我们可以使用cronroot 身份实现一个看门狗,并使其在启动时执行以下脚本:

#!/bin/bash
while [ true ]; do
    echo 1 > /dev/watchdog
    sleep 5
done
Run Code Online (Sandbox Code Playgroud)

该脚本在 Orange Pi Zero 上运行良好...但是,在我运行 Ubuntu 18.04 的台式计算机上,该命令echo 1 > /dev/watchdog根本不起作用。是否可以在任何运行 Linux 的设备上激活看门狗?

linux-kernel watchdog raspbian

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

如何使用dd复制具有特定开头和结尾的磁盘的三个分区?

使用fdisk -l命令我得到以下答案:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    28266495    14132224   27  Hidden NTFS WinRE
/dev/sda2        28268544    28473343      102400    7  HPFS/NTFS/exFAT
/dev/sda3        28473344   132552703    52039680    7  HPFS/NTFS/exFAT
/dev/sda4   *   132556798   625141759   246292481    5  Extended
/dev/sda5       193996800   198092799     2048000   82  Linux swap / Solaris
/dev/sda6       234960896   625141759   195090432    7  HPFS/NTFS/exFAT
/dev/sda7       198094848   234950316    18427734+  83  Linux
/dev/sda8       132556800   183756018    25599609+  83  Linux
Run Code Online (Sandbox Code Playgroud)

我想使用该dd命令将磁盘的前三个分区复制到映像中。所以我安装了一个外部硬盘驱动器,进入它的文件夹并输入:

# dd count=$((132552703-2048)) if=/dev/sda of=./newImage.image
Run Code Online (Sandbox Code Playgroud)

但是此命令将所有 sda 磁盘复制到我的外部硬盘驱动器,而不是仅复制到 sda3 分区的末尾。

如何使用 …

shell partition dd

4
推荐指数
1
解决办法
5974
查看次数

是否可以检查特定进程是否正在睡眠或运行?

我在 Ubuntu 上创建了以下可以暂停启动特定进程的脚本:

#!/bin/bash

loopProcess () {
   COUNTER=0
   while [  true ]; do
      echo $COUNTER
      sleep 1
      let COUNTER=COUNTER+1 
   done
}

loopProcess &
pidLoopProcess="$!"

while [  true ]; do
   read -p "" state
   if [ "$state" == 'a'  ]; then
      echo "Process is running"
      kill -CONT "$pidLoopProcess"
   elif [ "$state" == 'b'  ]; then
      echo "Process is sleeping"
      kill -STOP "$pidLoopProcess"
   fi  
done
Run Code Online (Sandbox Code Playgroud)

演示它是如何工作的:

在此处输入图片说明

我想知道是否可以使用命令行检查特定进程何时运行休眠。伪代码将是这样的:

if [ "$(StatePID $pidLoopProcess)" == 'sleeping'  ]; …
Run Code Online (Sandbox Code Playgroud)

command-line bash process

4
推荐指数
1
解决办法
5127
查看次数