小编des*_*ert的帖子

如何在以 root 权限启动的脚本中以非 root 用户身份运行命令?

问题
在 bash 脚本中,我正在使用命令...

sudo -u node bash
Run Code Online (Sandbox Code Playgroud)

.. 从 root 切换到非 sudo 用户,这是失败的。

上下文
我写一个provision.sh为流浪脚本,建立运行Ubuntu 16.04.3的所有包的服务器需要与流星1.6提供的应用程序。

一个必需的步骤是以nvm非 root 用户身份安装。nvm安装完成后,您需要注销并重新登录才能激活nvm。因此,我创建了一个名为 的非 sudo 用户meteor,并希望在下载和安装nvm.

随后,我想切换回 beroot并立即登录为meteor,以便开始使用nvm安装 Node.js。

你会在下面找到一个被大量评论的脚本。每次我调用 Vagrant 时都会运行这个脚本vagrant reload --provision。

我应该使用什么命令而不是sudo -u node bash?


echo "# whoami" && whoami && echo "^^^^ root expected"
echo "As root, create non-sudo user meteor:"
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) …
Run Code Online (Sandbox Code Playgroud)

bash sudo scripts

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

使用美国国际键盘输入法语口音

我在笔记本电脑上运行 Lubuntu,想用美式键盘写法语口音。我发现组合键解决方案(同时使用 [Alt]+[accent],后跟一个 [字母])不太方便...

在 Windows 上,有一个更好的解决方案:将键盘布局切换为 US-international,然后键入 [`] 后跟 [a] 以显示 [à]。仍然在 Windows 上,软件EasyType使它变得更加容易:按一次 [e] 得到 [e],按两次 [e] 得到 [é],按三次 [e] 得到 [è]...

有没有办法在 lubuntu 上实现这一目标?用脚本什么的?

PS:我的键盘是越南语,但与美式键盘完全对应。

special-characters keyboard-layout

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

如何添加右键单击(在桌面上)以创建文本文件功能 16.04.2 Ubuntu GNOME

如何在 Ubuntu 16.04.02 中添加右键单击桌面菜单条目以创建文本文件到 Gnome 3?

gnome text 16.04

14
推荐指数
1
解决办法
3264
查看次数

不同的“重命名”命令之间有什么区别?

从 Ubuntu 14.04 开始,至少有三个rename命令:

  1. rename由util-linux包提供,参见man rename.ul
  2. rename由perl包提供,见man prename
  3. rename由rename包提供,参见man file-rename

问题:

  • 这些命令之间究竟有什么区别?
  • 为什么有多个包使用相同的名称提供不同的命令——我想这不是偶然的,或者是吗?
  • perl包包含“完整”rename命令或根本不包含任何rename命令不是很简单吗?为什么这种看似不完整的分裂至少持续到 Ubuntu 17.04?

这个问题已经在 U&L 上问过了(我后来发现了):
所有重命名有什么用:prename、rename、file-rename?

packaging command-line perl rename

14
推荐指数
1
解决办法
1432
查看次数

在 bash 历史记录中隐藏“history -d”

如果我不小心在 bash 中输入了我的密码或任何其他敏感内容,我可以使用 轻松删除该行history -d ROW#,但我总是留下history -d ROW#历史记录中的命令,向所有人显示有人纠正了错误。

我可以在命令中附加一些内容以防止它出现在 bash 历史记录中吗?

command-line bash bash-history

14
推荐指数
3
解决办法
3210
查看次数

如何在终端中输入包含空格或特殊字符的文件或目录名称?

我有文件和目录的用奇怪的名字的集合,它们包含空格和特殊字符\,*,),(和?。当我尝试在命令行或脚本中使用它们时,所有这些都会导致问题,例如:

$ cd space dir
bash: cd: space: No such file or directory

$ cat space file
cat: space: No such file or directory
cat: file: No such file or directory

$ cat (
bash: syntax error near unexpected token `newline'

$ echo content >\
> ^C

$ ls ?
(  )  *  ?  \
Run Code Online (Sandbox Code Playgroud)

如何在终端中输入包含特殊字符的文件或目录名称?

command-line bash scripts files directory

14
推荐指数
0
解决办法
2779
查看次数

有没有办法在任务执行时(不使用文件)在终端上提供串行任务?

假设有 2 个任务t1,t2它们可以以串行方式执行,如下所示:

t1 ; t2
# OR
t1 && t2
Run Code Online (Sandbox Code Playgroud)

现在假设我忘记跑步t2并且t1已经在跑步;我可以添加t2到管道中以便在t1完成后执行吗?

command-line bash job-control

14
推荐指数
1
解决办法
969
查看次数

如何将换行符分隔列表作为参数传递给另一个命令?

所以我有一个用户名列表,例如:

user1
user2
user3
Run Code Online (Sandbox Code Playgroud)

我想申请id他们每个人并得到类似的东西:

uid=100(user1) gid=5(g1) groups=5(g1),6(g6),7(g10)
.
.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?请注意,该列表是另一个命令 say 的输出mycommand。

command-line bash pipe

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

以#$ 开头的 bash 脚本行是什么意思?

我在 GitHub 上找到了这个bash脚本,我想将其用于我自己的工作。我的问题如下:第 2 行到第 5 行是什么意思?它们只是评论还是有任何用途?

#!/bin/bash
#$ -l h_rt=72:00:00
#$ -V
#$ -N index_calc
#$ -j y

source ~/modules.sh

cd $1

l_file=`find . -name 'L*stack' -type f`
for l in $l_file; do
    echo "Running on file:"
    echo $l
      extract=${l:0:45}
    name=${extract}_index.tif
    echo "Name of index stack:"
    echo $name
    echo "Executing code..."
    ~/Documents/misc/spectral/transforms.py \
    -v $l $name evi ndvi nbr ndmi 

done

echo "Done!"
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts

13
推荐指数
1
解决办法
1068
查看次数

衡量英文文本可读性的工具

是否有命令行程序可以获取包含英文文本的文件,分析文本并输出其可读性分数?

例如,如果向程序输入文本,程序应输出 Flesch-Kincaid 等级、McLaughlin 的 SMOG 等级等。

我相信官方存储库中存在这样的程序,但我不记得它的名字。我也有可能记错了。

command-line software-recommendation language

13
推荐指数
1
解决办法
720
查看次数