我想在登录屏幕上显示我选择的图像,而不是我的用户名上方的灰色图标:
毫无疑问,某处有此设置,但到目前为止我还没有找到它。
如何更改 SDDM 问候语中的用户图像?
对测试很有用——您可以使用此命令在不注销的情况下预览登录屏幕。
系统:Ubuntu MATE 18.04。
我有一个文件集合(在目录结构中的多个目录中),我想将其中的许多移动到另一个目录。我可以通过它们的名称(它们是配方标题)来判断我想要移动哪些文件,但是没有其他方法可以区分我想要移动的文件和我不想移动的文件;我需要通过自己检查名称来为每个文件做出决定。
因此,我为每个要移动的文件运行一次命令,例如
mv Snacks/OkaraCrackers NeedsTesting/
mv Snacks/SunflowerBrittle NeedsTesting/
mv Treats/ChocolateChilliFudge NeedsTesting/
mv Treats/PecanBlondies NeedsTesting/
即使使用制表符完成,这也是太多的打字。我真正想做的是
shopt -s globstar
mv --prompt-me-for-every-file ** NeedsTesting/
所以我可以为每个文件按y或n。
如何移动一组文件并提示确认每个文件?
我正在使用 Ubuntu MATE 17.10。发行说明从未提及任何有关 Wayland的内容,而且我一直认为该系统使用的是 Xorg 显示服务器。
但是,今天我照常跑
sudo apt update && sudo apt full-upgrade
并注意到输出包括:
The following packages will be upgraded:
libwayland-client0 libwayland-cursor0 libwayland-server0 [...]
我想,这很奇怪。我的系统到底是在使用 Wayland 吗?
正如Byte Commander 在 chat 中所建议的那样,我寻找正在运行的进程(使用pgrep Xorg
and pstree
),发现 Xorg 但没有 Wayland。所以我很确定 Wayland 没有运行。我寻找 Wayland 包:
dpkg -l | grep [Ww]ayland
ii kwayland-data 4:5.38.0-0ubuntu1 all Qt library wrapper for Wayland libraries - data files
ii kwayland-integration:amd64 4:5.10.5-0ubuntu1 amd64 kwayland runtime integration plugins
ii libkf5waylandclient5:amd64 4:5.38.0-0ubuntu1 amd64 Qt library wrapper for Wayland libraries
ii libqt5waylandclient5:amd64 5.9.1-2 amd64 QtWayland client library
ii libqt5waylandcompositor5:amd64 5.9.1-2 amd64 QtWayland compositor library
ii libwayland-client0:amd64 1.14.0-1ubuntu0.1 amd64 wayland compositor infrastructure - client library
ii libwayland-cursor0:amd64 1.14.0-1ubuntu0.1 amd64 wayland compositor infrastructure - cursor library
ii libwayland-egl1-mesa:amd64 17.2.8-0ubuntu0~17.10.1 amd64 implementation of the Wayland EGL platform -- runtime
ii libwayland-server0:amd64 1.14.0-1ubuntu0.1 amd64 wayland compositor infrastructure - server library
ii qtwayland5:amd64 5.9.1-2 amd64 QtWayland platform plugin
为什么我有这些与 Wayland 相关的软件包,即使我没有使用 Wayland?
我想知道在大型复杂目录结构中有多少常规文件具有扩展名.c
,以及这些文件分布在多少目录中。我想要的输出就是这两个数字。
我已经看过这个关于如何获取文件数量的问题,但我也需要知道文件所在的目录数量。
.
or开头,-
并带有空格或换行符。.c
符号链接,以及指向目录的符号链接。我不希望符号链接被跟踪或计算,或者我至少想知道它们是否以及何时被计算。.c
文件。我匆忙在(Bash)shell中写了一些命令来自己计算它们,但我认为结果不准确......
shopt -s dotglob
shopt -s globstar
mkdir out
for d in **/; do
find "$d" -maxdepth 1 -type f -name "*.c" >> out/$(basename "$d")
done
ls -1Aq out | wc -l
cat out/* | wc -l
这会输出关于不明确的重定向、丢失当前目录中的文件以及遇到特殊字符(例如,重定向find
输出在 filenames 中打印换行符)的抱怨,并写入一大堆空文件(oops)。
如何可靠地枚举我的.c
文件及其包含的目录?
如果有帮助,这里有一些命令可以创建带有错误名称和符号链接的测试结构:
mkdir -p cfiles/{1..3}/{a..b} && cd cfiles
mkdir space\ d
touch -- i.c -.c bad\ .c 'terrible
.c' not-c .hidden.c
for d in space\ d 1 2 2/{a..b} 3/b; do cp -t "$d" -- *.c; done
ln -s 2 dirlink
ln -s 3/b/i.c filelink.c
在生成的结构中,7 个目录包含.c
文件,29 个常规文件以(如果在运行命令时关闭)结尾.c
(dotglob
如果我算错了,请告诉我)。这些是我想要的数字。
请随意不要使用此特定测试。
注意:任何 shell 或其他语言的答案都会经过我的测试和赞赏。如果我必须安装新软件包,没问题。如果您知道 GUI 解决方案,我鼓励您分享(但我可能不会安装整个 DE 来测试它):) 我使用 Ubuntu MATE 17.10。
我正在 LibreOffice 中为一个阅读障碍者写一些学习材料,我想知道是否有任何我可以使用的特定字体让他更容易阅读文本。
即使没有任何已知或设计为特别适合阅读障碍者阅读的特定字体,了解字体的哪些一般属性使其或多或少具有可读性也会很有帮助,这样我就可以做出更好的选择。
那么,我可以在 LibreOffice 中使用哪些字体对于阅读障碍者来说可能更具可读性?
Ubuntu 用户有时会遇到apt
以下apt-get
形式的错误:
The package some-package needs to be reinstalled, but I can't find an archive for it.
我想知道是什么导致了这个错误,以便我可以重现它并尝试找到修复它的安全方法,即使损坏的包很重要并且有很多依赖项。这段APT 源代码可能会提供一些线索,但我不知道包如何获得导致错误的状态。
如何在我的 (Ubuntu MATE 17.10) 系统上测试时产生此错误?
这是由最近的 Ask Ubuntu 问题和我长期以来对关闭有关针对Apt/Synaptic 的此错误的问题的不适所提示的,需要重新安装软件包但找不到它的存档,其答案用于dpkg --force-all
删除有问题的软件包。匿名反馈表明此解决方案已对许多用户有效,但我不确定使用--force-all
不会导致以后出现问题,或者使用此方法删除 APT 等重要软件包是个好主意。
我注意到/bin/echo
我的 Ubuntu MATE 17.04 系统上有一个二进制可执行文件。
我想,这很奇怪,因为
$ type echo
echo is a shell builtin
粗略的测试表明,/bin/echo
它与 Bash 内置函数做同样的事情echo
:
$ /bin/echo foo
foo
$ /bin/echo $USER
zanna
那么,为什么有另一个版本echo
的 Bash 程序是分开的,我为什么或什么时候想使用它?
这个问题是由我在 Linux 杂志上找到的一个简短脚本提示的。作为我没有编造的证据,这是一张照片:
我想给这本书的编辑写一封信,告诉我这有什么问题以及如何写得更好。
该脚本尝试将 jpeg 文件捕获到一个变量中,以便lepton
可以对它们进行某些操作(使用 压缩)。
for jpeg in `echo "$(file $(find ./ ) |
grep JPEG | cut -f 1 -d ':')"`
do
/path/to/command "$jpeg"
...
显然在这种情况下,我们不能相信用.jpg
扩展名命名的文件,所以我们不能用类似的东西来捕捉它们
for f in *.JPG *.jpg *.JPEG *.jpeg ; do ...
因为作者曾经file
检查过它们的类型,但是如果不能相信文件名具有合理的扩展名,那么我不明白我们如何相信它们不存在-rf *
或不(; \ $!|
存在换行符或其他任何内容。
如何通过使用 or 类型将文件巧妙地捕获到变量中,或者通过使用 with或for
其他方法while
避免这样做?find
-exec
洞察和演示图片中的代码有什么问题的奖励。
我用 [bash] 标记了这个问题,因为它是关于 bash 脚本的,但是如果您想用一种不使用 bash 的方法来回答,那么请随时这样做。
我想写一个脚本或函数来告诉我从现在到未来给定日期有多少天。我正在努力解决的是如何处理给定的日期并将其与当前日期进行比较......我在想像
read -p "enter the date in the format YYYY-MM-DD "
然后我假设我有一个对 shell 没有意义的字符串,我必须做一些评估,比如......??(这只是一个例子;我猜bc
是需要的)
i=$(($(date +%Y)-${REPLY%%-*}))
j=$(($(date +%m)-${REPLY:5:2}))
k=$(($(date +%d)-${REPLY##*-}))
然后我不知道如何处理这些数字......??
if $i > 1 then assign l=$((i*365)) and else what?? # what about leap years?
Using $j somehow assign m # confused before I've started
Using $k somehow assign n # just as bad
echo $((l+m+n))
我肯定让自己太难了;可能有一个文本处理工具可以理解日期并可以比较它们。
我怎样才能做到这一点?
chown
我想对目录中的所有隐藏文件执行一些操作(比如)。
我知道这不是.*
一个好主意,因为它还会找到当前目录和父目录(我知道这将无法操作,但其他命令,包括and ,会很高兴地生效).
..
rm
.
..
chown
chmod
但是我所有的隐藏文件都有不同的名称!
.
在排除and的同时,我应该如何为所有隐藏文件 glob ..
?
我正在处理这个 SE 数据查询.csv
的输出,看起来像这样(只有 5022 个条目):
"{
""id"": 281952,
""title"": ""Flash 11.2 No Longer Supported by Google Play""
}"
"{
""id"": 281993,
""title"": ""Netbeans won't open in Ubuntu""
}"
(并且它^M
在 [number] 和 ""title"" 之间有行尾)。我需要它看起来像这样:
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu
我在某个文本编辑器中修复了这个问题,该编辑器很容易保持无名,但我想制作一个脚本,这样我就不必在每次刷新查询时都重复一遍,这样其他人就可以使用它。我用sed
...
这一系列命令完美运行(尽管它可能效率低下;它只是一个试错解决方案):
# Print the ^M and remove them, write to a new file:
cat -v QueryR* | sed 's/\^M//' > QueryNew
# remove all the other junk:
sed -i 's/{//' QueryNew
sed -i 's/}//' QueryNew
sed -i 's/""//g' QueryNew
sed -i 's/^"//' QueryNew
sed -i '/,/{N;/\n.*title:\s/{s/,\n.*title:\s/,\ /}}' QueryNew
sed -i 's/^\s\+//' QueryNew
sed -i '/^\s*$/d' QueryNew
sed -i 's/^id:\ //' QueryNew
sed -i 's/,\ /,/' QueryNew
sed -i 's/\\//g' QueryNew
那么,为什么不呢?只有^M
and{}
被删除,其他的都还在。
#!/bin/bash
cat -v QueryR* | sed 's/\^M//' > QueryNew
sed -i '{
s/{//
s/}//
s/""//g
s/^"//
/,/{N;/\n.*title:\s/{s/,\n.*title:\s/,\ /}}
s/^\s\+//
/^\s*$/d
s/^id:\ //
s/,\ /,/
s/\\//g
}' QueryNew
我敢肯定我的错误很明显......
显然我数不过来。我认为里面有三个文件/media
$ tree /media
/media
├── foo
├── onex
└── zanna
3 directories, 0 files
但是,ls -l
找到 12 个。
$ ls -l /media
total 12
drwxr-xr-x 2 root root 4096 Jul 31 20:57 foo
drwxrwxr-x 2 root root 4096 Jun 26 06:36 onex
drwxr-x---+ 2 root root 4096 Aug 7 21:17 zanna
而且,如果我这样做,除了上述之外,ls -la
我只会得到,但计数是.
..
total 20
有什么解释?
我在我的.bashrc
alias l.='ls -d .* --color=auto'
它非常有用:) 但它不能通过以下方式工作ssh
:
$ ssh localhost l.
bash: l.: command not found
这是为什么?
我总是以完全相同的方式关闭我的 Ubuntu MATE 16.04 系统:我一直按alt+F4直到我到达最后一个终端窗口并且所有其他应用程序都已退出,然后我输入poweroff
尽管我的程序是一致的,但系统完全关闭所用的时间(即我正在观看启动屏幕的时间)变化很大,从大约 3 秒到大约 25 秒不等。为什么会发生这种情况,或者我怎样才能知道?
我知道我可以阅读日志,但我希望得到一些关于如何分析的提示
使用 MATE 桌面,我在Applications > Internet菜单中获得了 Telegram 的两个图标:
单击这些图标中的任何一个都会启动应用程序(如果我在电报运行时单击其中一个,它会被最小化和/或获得焦点)
我通过这种方法安装了Telegram Desktop :
sudo add-apt-repository ppa:atareao/telegram
sudo apt-get update
sudo apt-get install telegram
它完美地工作(我喜欢它)但我只想要一个图标......我怎样才能让其中一个消失?
我知道如何发音 Ubuntu,但我不知道如何发音 Xubuntu(我目前正在享受)。应该是
(类似地 'loo'-buntu 或 'el'-ubuntu、'koo'-buntu 或 'kay'-ubuntu?)
也许这只是一个意见问题(不像真正的预先存在的词ubuntu),但如果有正确的方法,我想把它做好。
我经常与 LibreOffice 作家一起使用 Character Map 来编写 IPA(国际音标)符号。我需要的所有(30 多个)字符都在“拉丁”脚本列表中,但是这个列表中有很多我不需要的字符,因此找到我想要的字符是一个漫长的过程,制作 IPA 符号是非常耗时。如何简化在 LibreOffice 中编写 IPA 符号?
我正在使用 Ubuntu 16.04
我需要重新生成initrd。这样做:
update-initramfs -u -k all
为我编译的内核抛出错误,然后在一段时间前删除(因为update-initramfs
找不到/lib/modules
我当然删除的目录)。
我以为我已经通过删除所有条目/boot
和目录中的所有条目来完全删除内核/lib/modules
& running sudo update-grub
(如在这个答案中),但显然在某个地方我应该清理它的痕迹。
我读了这个并挖了进去,/usr/share/initramfs-tools
但我无法弄清楚。
在man update-initramfs
我看来:
对版本字符串使用“all”指定 update-initramfs 对 update-initramfs 已知的所有内核版本执行所选操作。
但是它是怎么认识他们的呢?在哪里update-initramfs
寻找内核版本?
注意:几个月后...我将此问题的答案添加到了initramfs的标签 wiki