标签: shell

管道和观察管道输出?

我想制作一个像这样的外壳管道:

producer | analyser > report.txt
Run Code Online (Sandbox Code Playgroud)

producer并在生成数据(一个大日志文件)时观察输出以进行分析。

我怎样才能做到这一点?

bash shell redirection

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

如何踢掉从不同shell登录的其他root用户?

我登录到一台机器,然后输入:

insite1@POC-Messaging1:/opt/insiteone/log> last -a | grep "logged"
insite1  pts/6        Tue Jul 30 03:59   still logged in    160.110.5.210
root     pts/5        Tue Jul 30 02:28   still logged in    160.110.154.231
root     pts/4        Tue Jul 30 02:26   still logged in    160.110.154.231
root     pts/0        Tue Jul 30 02:18   still logged in    160.110.5.210
root     pts/3        Tue Jul 30 02:13   still logged in    160.110.5.210
root     pts/2        Tue Jul 30 01:00   still logged in    160.110.154.231
root     pts/1        Tue Jul 30 00:47   still logged in    160.110.154.231
Run Code Online (Sandbox Code Playgroud)

我想杀死除了从 160.110.5.210 登录的用户之外的其他人。怎么做?

terminal shell kill

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

为什么 __git_ps1 不再在带有 MacPorts 的 OSX 上的 bash 中工作?

今天更新 Macports 后,我得到-bash: __git_ps1: command not found.

这是为什么?

bash shell macports macos

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

`grep -1` 有什么作用?

我试图理解以下 shell 命令,以获取可以更新的软件包列表:

dpkg --get-selections | xargs apt-cache policy {} | grep -1 Installed | sed -r 's/(:|Installed: |Candidate: )//' | uniq -u | tac | sed '/--/I,+1 d' | tac | sed '$d' | sed -n 1~2p
Run Code Online (Sandbox Code Playgroud)

这是什么grep -1意思?-1我在 grep 的手册页或互联网上的任何地方都找不到任何提及。

linux shell grep man

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

如何重置 powershell 中的所有别名

我最近将别名设置为非命令,因为我不知道如何使用设置别名。我想知道如何重置所有别名而不影响 powershell 附带的默认别名。

我尝试使用Remove-Alias但它返回给我这个错误:

PS C:\Users\me\Desktop\Projet\> Remove-Alias lua
Remove-Alias : The term 'Remove-Alias' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a 
path was included, verify that the path is correct and try again.
At line:1 char:1
+ Remove-Alias lua
+ ~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Remove-Alias:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)

powershell bash shell command-line

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

为什么 Zsh 抱怨我的变量分配为“未找到命令”?

当我尝试在 macOS Big Sur 版本 11.5.1 上编写 Zsh 脚本时,我注意到它始终无法将我的变量识别为变量。

相反,Zsh 将它们视为类 UNIX 命令。

终端应用程序问题的屏幕截图 - Zsh shell 脚本的变量赋值问题

在上面链接的屏幕截图中,我在终端应用程序上执行了以下操作。

  • 显示了简单的 Zsh shell 脚本的内容。
  • 使用“ls -l”类UNIX命令来指示其文件权限,并表明它是可执行的Zsh shell脚本。
  • 执行了 Zsh shell 脚本,这表明 Zsh 脚本解释器抱怨我的变量名是“找不到命令”。

我的Zsh shell脚本的源代码提供如下:

#!/bin/zsh

unix_cmd = "ls -al"
Run Code Online (Sandbox Code Playgroud)

您能否让我知道我错过了什么以及我做错了什么?

我只想为 Zsh shell 脚本中的变量赋值。

非常感谢您,祝您有美好的一天!再见!

zsh shell macos macos-bigsur

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

检查 Linux 上哪些进程正在占用交换空间?

top要查看一些内存信息,我可以在through中观看它cat /proc/meminfo
在 /proc/meminfo 中我可以看到整个系统的交换使用情况,如下所示:

SwapCached:            4 kB
SwapTotal:      33460220 kB
SwapFree:       33460216 kB
Run Code Online (Sandbox Code Playgroud)

但可能存在几乎所有交换都被使用的情况(即,有一小部分SwapFree)。我怎样才能知道哪些进程正在消耗这个交换?

UPD:有一个太小的块SwapFree基本上意味着有一些进程(进程)消耗了大量内存并且很长时间没有使用它。我需要找到这样的流程。

memory linux shell swap memory-management

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

修改 2>&1 以便输出转到特定文件,并且任何错误或其他输出都转到我可以监视的日志文件?

我正在阅读这篇文章,但我并不完全理解答案。

我想知道我是否可以修改它,它叫什么,命令重定向?

我想要什么:

  1. 不要挂起,使用 & 符号&继续执行下一个命令
  2. 将命令生成的数据输出到文件data.json
  3. 任何问题、错误消息或运行命令的问题,将它们输出到 bqlog.txt

这可能吗?

例如我目前有这个命令:

bq query --max_rows=1000000 --use_legacy_sql=false --format=json --batch=true --headless=true 'select * from `ga4-extract.analytics_123456789.events_'"$RUNDATE"'`;' > data.json
Run Code Online (Sandbox Code Playgroud)

大约 30 分钟后失败,我看不到输出或问题是什么。这是在 github actions runner 上,工作流的控制台输出仅给出失败状态,但对于此工作流来说,没有控制台输出指示错误。

我想修改我的命令,以便可以像我已经拥有的那样输出到 data.json,但也可以继续下一步监视 bqlog.txt 文件tail -F bqlog.txt

shell redirection command-line tail

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

无法通过 SSH 输入重音字符“é”

我有两个可以使用 SSH 连接的 QNAP:

\n
    \n
  • TS-412
  • \n
  • TS-851
  • \n
\n

在 TS-851 上,登录后,如果我在键盘上输入“\xc3\xa9”,屏幕上会显示“\xc3\xa9”。另一方面,TS-412 不会在屏幕上打印字符。因此,我无法访问任何包含重音字符的内容(仍然通过 SSH)。

\n

我进行了搜索,发现的都是有关 SMB 问题,但这不是我的情况。共享文件夹正确显示。通过 SSH 列出文件夹会显示所有重音字符。但是,键入并粘贴并不会进入该框。甚至路径的自动完成也会去除重音字符。

\n

两者的区域设置相同。一切看起来都一样,但显然有些东西不一样。

\n

我知道 QNAP 有自己的 Linux 风格,我已经在他们的论坛中询问过,但以防万一这里有人知道。因为,我认为这个问题看起来更像是一个通用的 Linux 问题(并不是说一切都结束了,但它不是 QNAP 特有的)。

\n

这实在是太烦人了!

\n

编辑 #1 - 回答问题

\n

在我的电脑上执行locale

\n
LANG=C.UTF-8\nLANGUAGE=\nLC_CTYPE="C.UTF-8"\nLC_NUMERIC="C.UTF-8"\nLC_TIME="C.UTF-8"\nLC_COLLATE="C.UTF-8"\nLC_MONETARY="C.UTF-8"\nLC_MESSAGES="C.UTF-8"\nLC_PAPER="C.UTF-8"\nLC_NAME="C.UTF-8"\nLC_ADDRESS="C.UTF-8"\nLC_TELEPHONE="C.UTF-8"\nLC_MEASUREMENT="C.UTF-8"\nLC_IDENTIFICATION="C.UTF-8"\nLC_ALL=\n
Run Code Online (Sandbox Code Playgroud)\n

locale在 TS-412 上执行:

\n
LANG=en_US.UTF-8\nLC_CTYPE="en_US.UTF-8"\nLC_NUMERIC="en_US.UTF-8"\nLC_TIME="en_US.UTF-8"\nLC_COLLATE="en_US.UTF-8"\nLC_MONETARY="en_US.UTF-8"\nLC_MESSAGES="en_US.UTF-8"\nLC_PAPER="en_US.UTF-8"\nLC_NAME="en_US.UTF-8"\nLC_ADDRESS="en_US.UTF-8"\nLC_TELEPHONE="en_US.UTF-8"\nLC_MEASUREMENT="en_US.UTF-8"\nLC_IDENTIFICATION="en_US.UTF-8"\nLC_ALL=en_US.UTF-8\n
Run Code Online (Sandbox Code Playgroud)\n

locale在 TS-851 上执行:

\n
LANG=en_US.UTF-8\nLC_CTYPE="en_US.UTF-8"\nLC_NUMERIC="en_US.UTF-8"\nLC_TIME="en_US.UTF-8"\nLC_COLLATE="en_US.UTF-8"\nLC_MONETARY="en_US.UTF-8"\nLC_MESSAGES="en_US.UTF-8"\nLC_PAPER="en_US.UTF-8"\nLC_NAME="en_US.UTF-8"\nLC_ADDRESS="en_US.UTF-8"\nLC_TELEPHONE="en_US.UTF-8"\nLC_MEASUREMENT="en_US.UTF-8"\nLC_IDENTIFICATION="en_US.UTF-8"\nLC_ALL=en_US.UTF-8\n
Run Code Online (Sandbox Code Playgroud)\n

所有机器上的输出echo $TERM $SHELL相同:

\n
xterm-256color /bin/bash\n
Run Code Online (Sandbox Code Playgroud)\n

在我的计算机上的输出uname -a,TS-412,TS-851(按顺序):

\n
Linux COMPUTER_NAME 5.10.102.1-microsoft-standard-WSL2 #1 …
Run Code Online (Sandbox Code Playgroud)

linux keyboard ssh shell qnap

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

为什么会有人替换 Windows Shell?

我使用的是带有默认 Windows Shell (Aero) 的 Windows 7。切换到另一个 Shell(例如 KDE4)有什么好处?

windows-7 shell

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