标签: shell

为什么回声 * | rm -f 不起作用?

为什么不起作用echo * | rm -f?根据我的理解,echo *应该列出目录中的所有文件,管道应该将此列表作为参数发送给rm -f命令,该命令应该删除文件。我错过了什么?

linux bash shell

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

有没有更优雅的方法来找出另一个用户的默认 shell 是什么?

有没有更优雅的方法来找出另一个用户的默认 shell 是什么(假设我有 root 权限并使用 GNU/Linux)?我知道我可以通过查看/解析/greping/etc /etc/passwd 来得到答案,但必须有一个实用程序(例如“id”或“chsh”)具有将此信息打印到标准输出的开关.

运行类似的程序id --shell username以立即获得答案会很好。

编辑:我看到我的问题的第一个答案可以归类在“解析/查找/greping”/etc/passwd 下,所以我想强调的是,我知道有很多方法可以做到这一点(shell on-衬垫、函数、脚本……),但这不是我要问的。

我想知道大多数 GNU/Linux 发行版中预装的一些标准工具或作为 coreutils 一部分的工具是否具有此功能。

linux shell

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

“chsh -s”和“export SHELL”有什么区别?

我认为该export命令仅在每个登录会话中有效,但我不确定。chsh我认为是更永久的。有人可以帮我解决这个问题吗(最好有链接/文档)?谢谢。

unix terminal shell

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

对 linux 中的文件所有者感到困惑

---x--x--- 1 root stapusr    87992 Oct 20 23:44 staprun
Run Code Online (Sandbox Code Playgroud)

我上面显示的是 file 的所有者staprun。但是 userroot不属于 group stapusr。这是什么意思?

我假设在chown userxxx:groupxxx filename执行之前,userxxx应该属于groupxxx.

linux shell

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

在 shell 命令完成之前切换回 VIM

在 VIM 中执行 shell 命令时,它会等待命令完成。您可以按Enter切换回 VIM,但它只会在命令完成后切换回。如果 shell 任务运行时间较长,返回 VIM 继续工作会更有利,稍后再检查 shell 输出。

什么是最简单的方法:

  1. 运行 Shell 命令 ( :!jshint %)
  2. 在命令完成之前切换回 VIM。
  3. 稍后再检查输出。(我发现的最简单的方法是:!

vim shell

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

输出颜色时“少”提示“二进制文件”显示

我们最近启用了为一些服务的日志文件着色,我相信我们为此使用了 ANSI 转义序列。看起来像这样:

[2014-06-12 10:56:43,214] [main] [VOID] ESC[34mINFO ESC[0;39m ESC[36mc.a.m.p.s.config.DataSourceConfigESC[0;39m 
Run Code Online (Sandbox Code Playgroud)

我的同事大多tail用来查看日志文件,但我less更喜欢。不幸的是,less不会自动识别这些转义码。相反,它告诉我我的日志文件“可能是一个二进制文件。还是看到了吗?”。

我知道如果我添加该-r选项,less将显示颜色,但它仍然会询问“二进制文件”问题。

有没有办法解决这个问题?如果是,我可以将其设为默认值吗?

linux unix shell less escape-sequences

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

root 用户是否有可能在直播中偷偷观看其他人的 shell 会话?

我在stackoverflow上看到一个类似的问题:

/sf/ask/94727741/

有人推荐conspy。但是,似乎 conspy 不适用于 pts 终端。

我也尝试过使用此处strace按下按键的方法,但我发现结果很难阅读。

有没有人对此有想法?

linux security terminal bash shell

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

为什么“source <(cmd)”有效但“$(cmd)”无效

我想要一个脚本来调用 params,它会向我当前的 shell 添加一些别名。必须根据调用参数和我启动它的当前目录来构建别名。如果可能,我不想获取脚本的源代码,只需像任何其他脚本一样运行它即可。

这是我迄今为止所做的:

我写了一个小的 shell 脚本来生成一些别名,比如

echo 'alias foo="$1"'
Run Code Online (Sandbox Code Playgroud)

并将其保存为具有 +x 权限的文件“myscript”。然后我通过控制台执行它来设置别名

$(myscipt hello)
Run Code Online (Sandbox Code Playgroud)

效果很好

当我改变我的shell脚本时

echo 'alias foo="bar $1 -param"'
Run Code Online (Sandbox Code Playgroud)

并像上面一样再次执行,结果是

bash: alias hello" not found
bash: alias -param" not found
Run Code Online (Sandbox Code Playgroud)

???。我已经摆脱了 bar 和 -param 之间的空白,但无法让它工作。

当我执行

source <(myscript hello)
Run Code Online (Sandbox Code Playgroud)

一切都像预期的一样好(这是我现在的解决方案,但不确定它是否是最好的)。

一些想法如何获得更好的解决方案?

linux bash shell command-line

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

在 bash 脚本中处理顺序和并行作业

我知道在 bash 编程中,comamnd1;command2;command3将按顺序command1&&command2&&command3运行它们,同时将它们并行运行。然而,当我结合会发生什么;&&在一起,例如command1 ; command2 && command 3?bash;&&bash之间的优先级是什么?以上命令是否等同于 (command1;commmand2) && command3(command1);(command2 && command3)

bash shell

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

UNIX 如何使用进程 ID 恢复进程?

我在恢复进程时遇到问题。

当我尝试使用 使进程进入前台时jobs,它可以工作,但是如果我关闭 shell 并重新启动它,我的进程将不会出现在作业列表中。

我只知道进程名称及其 ID。我怎样才能把它放在前台?

unix shell

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

标签 统计

shell ×10

linux ×6

bash ×4

unix ×3

terminal ×2

command-line ×1

escape-sequences ×1

less ×1

security ×1

vim ×1