我有一个脚本可以将一个精确的图像设置为墙纸,我希望它在每次运行时检查它是否仍然是相同的图像。如果没有,它会询问您是否要再次将墙纸更改为此图像。它是更大项目的一部分,现在它的工作原理是这样的:
我已经在互联网上搜索了这个问题的答案。不幸的是,大多数主题都与 Ubuntu 相关,它们根本没有帮助。我试过 locate backgrounds 命令,但我没有看到任何合法的东西,哦,天哪,我已经搜索了大部分列出的目录。我也一直在 .cache 中搜索,但仍然没有。
我已经编写了一些要在bash环境下运行的脚本。我想在执行某些命令或结果准备好后播放声音。这可能是类似于钟声、铃声或单个滴答声的声音,但这不是我的系统,我不知道他们的系统配置是什么以及他们的硬件或软件可能是什么。所以我不能通过播放器运行它,或者你说 .wav 文件。是否可以选择演奏两个音符,例如 A 和 F#?如果这是不可能的,最接近的选择是什么?谢谢
我的终端中有一个奇怪的行为。
以下命令不会向我的终端打印任何内容:
comment=$(
cat /usr/share/applications/brasero.desktop |
grep '^Comment=' |
grep -Po '(?<=^Comment=)[ --0-9A-Za-z/.]*'
)
echo $comment
Run Code Online (Sandbox Code Playgroud)
完全相同的命令,相同的语法在 bash 脚本中完美运行。
通常,我看到人们抱怨相反的行为。
我知道上述操作可以通过数百种方式完成,但我不明白为什么上述命令在我的终端中没有运行。
另一方面,这些命令在终端和脚本中都可以正常工作:
comment=$(
cat /usr/share/applications/brasero.desktop |
grep -Po '(?<=^Comment=)[ --0-9A-Za-z/.]*'
)
echo $comment
grep -Po '(?<=Exec=)[ --0-9A-Za-z/:space:]*' > /usr/share/applications/brasero.desktop
Run Code Online (Sandbox Code Playgroud)
我在 Debian 8 Sid 下使用 GNU bash,版本 4.4.0(1)-release (x86_64-pc-linux-gnu),grep (GNU grep) 2.26。我在 xfce 和 mate 终端都尝试过,但行为相同。
谢谢
在 1970 年代,我们有硬件终端 CUI。
现在在我的 Linux 机器中,我看到七个终端模拟器,其中 GUI 占据了第 7 个终端模拟器(Ctrl+Alt+F7)。
例如,这是我的第一个终端(Ctrl+Alt+F1)模拟器
$ tty
/dev/tty0
Run Code Online (Sandbox Code Playgroud)
在>cat用户空间ENTER,cat它等待的过程是stdin从接收输入/dev/tty0文件。我无法/dev/tty0使用任何编辑器查看文件。
这两个stdin和stdout的cat过程中正在使用的/dev/tty0文件。
题:
使用一些编辑器,这个终端文件/dev/tty0可以在用户空间访问吗?
在 Windows 中,使用 CLI 时,只使用一个程序 ( cmd.exe)。您将输入发送到cmd.exe,cmd.exe然后将输出发送给您(在屏幕上显示输出):
但是在 Linux 中,使用了两个程序:终端和外壳。
您发送的输入端子(例如:gnome-terminal),并gnome-terminal依次发送该输入壳牌(例如:bash),然后bash将输出发送到gnome-terminal,并gnome-terminal反过来发送你的输出。
我的问题是:为什么终端和 Shell 在 Linux 中是两个独立的程序,而不是像 Windows 中的一个程序?
我在 Linux/Unix 系统课程中,我需要确定可以用来确定谁在特定终端上登录的命令?我知道有 w、who 或finger 命令。这些命令中是否有任何选项可以在特定终端或终端类型上显示用户?
我在远程服务器上安装了Glances,现在我尝试从本地计算机连接到它并运行它,如下所示:
ssh user@host glances
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
Traceback (most recent call last):
File "/usr/bin/glances", line 9, in <module>
load_entry_point('Glances==1.7.3', 'console_scripts', 'glances')()
File "/usr/lib/python2.7/dist-packages/glances/glances.py", line 4644, in main
use_bold=use_bold)
File "/usr/lib/python2.7/dist-packages/glances/glances.py", line 1937, in __init__
self.screen = curses.initscr()
File "/usr/lib/python2.7/curses/__init__.py", line 33, in initscr
fd=_sys.__stdout__.fileno())
_curses.error: setupterm: could not find terminal
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
这一直让我感到困惑,这似乎是征求那些 POSIX 时间比我多得多的人的观点的最佳场所。我认为ls以这种方式解析输出是至关重要的,并且创建别名以将ls命令修改为默认值始终是我对新终端配置文件进行的首批自定义之一。
这是否只是使用 Windows 资源管理器的过多年形成的令人讨厌的副作用?是否有一种解释我从未听过解释过的默认混合输出的心态,一旦我这样做,就会顿悟并立即理解为什么只有白痴想要分离目录和文件?我知道这是微不足道的,但它ls是所有命令行活动的试金石,我觉得我好像错过了一些深刻的东西。
预先感谢您的目的论指导。
我承认我不是 unix 命令的专家,但我将一个文件移动到另一个目录并收到一条错误消息 - 但该文件已被移动。为什么会mv: rename to to /Users/billtubbs/Library/Script Libraries/to: No such file or directory引发此消息“ ”?是不是因为 Library 是一个受保护的文件夹而我应该使用sudo ...?
这是在 Mac OS X 10.13.4 上的终端中:
BillsMacBookPro:Scripts billtubbs$ ls ~/Library/'Script Libraries'
BillsMacBookPro:Scripts billtubbs$ mv FileHandlers.scpt to ~/Library/'Script Libraries'
mv: rename to to /Users/billtubbs/Library/Script Libraries/to: No such file or directory
BillsMacBookPro:Scripts billtubbs$ ls
Address Book Scripts Terminal scripts
Applications Test Script read html page .scpt
Bus Data Test script parse html form.scpt
Firefox scripts TextDataFromFile.scpt
ListHandlers.scpt TextHandlers.scpt
Mail …Run Code Online (Sandbox Code Playgroud) 我使用下面的命令挂载 CIFS 共享,但我想在同一命令中自动获取 UID 和 GID,这样我就不必每次mount在不同的机器上手动输入它。任何建议如何?
$ sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=<user>,gid=<group> \
//server-address/folder /mount/path/on/ubuntu
Run Code Online (Sandbox Code Playgroud)