小编Ser*_*ndt的帖子

如何在bash脚本中检测桌面环境?

我正在编写一个bash脚本,需要知道哪个桌面环境(XFCE、Unity、KDE、LXDE、Mate、Cinnamon、GNOME2、GNOME3...)正在运行。

我怎样才能获得这些信息?

bash desktop-environment bash-script

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

理解 `who -a` 命令的输出

我问这个问题是因为,虽然互联网上有很多答案表明这who -a是一个选项,但没有人解释如何阅读输出。如果您可以提供一个指向解释这一点的在线网站的链接,那同样是一个很棒的答案。这是我想破译的一个例子:

[bo@hostname ~]$ who -a
                        Jun 17 03:47               590 id=si    term=0 exit=0
           system boot  Jun 17 03:47
           run-level 3  Jun 17 03:47                   last=S
                        Jun 17 03:48              4424 id=l3    term=0 exit=0
LOGIN      tty1         Jun 17 03:48              5503 id=1
LOGIN      tty2         Jun 17 03:48              5504 id=2
LOGIN      tty3         Jun 17 03:48              5505 id=3
LOGIN      tty4         Jun 17 03:48              5506 id=4
LOGIN      tty5         Jun 17 03:48              5507 id=5
LOGIN      tty6         Jun 17 03:48              5508 id=6
           pts/0        Oct 19 16:27             15250 …
Run Code Online (Sandbox Code Playgroud)

utilities sshd

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

在运行之前测试递归 sed 搜索和替换

sed在实际运行之前,有什么方法可以运行试用递归搜索并替换 using吗?我只想在实际进行搜索和替换之前打印出结果。类似于呼应的结果,

grep -rl term1 . |xargs sed -i -e 's/term1/term2/'
Run Code Online (Sandbox Code Playgroud)

sed

16
推荐指数
2
解决办法
9607
查看次数

如何在保留空行的同时使用 awk 删除重复行?

下面的awk命令删除所有重复的行,如下所述

awk '!seen[$0]++'
Run Code Online (Sandbox Code Playgroud)

如果文本包含空行,则将删除除一个空行之外的所有内容。

如何在删除所有非空重复行的同时保留所有空行,仅使用awk?还请附上简要说明。

awk

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

vim中的下划线动作有什么作用?

我不理解 vim 中的下划线动作,至少在 yank (y) 的上下文中不理解。我的备忘单上写着:

"soft" bol down
Run Code Online (Sandbox Code Playgroud)

我不明白。如果我单独使用动作,它的意思似乎是一样的^:转到行上的第一个非空白处。

但是,如果我使用 with 的动作,y它会猛拉整条线(如yyY)。另一方面,y^不会拉出整行,而只会拉到第一个非空白字符,排他性 - 正如您所期望的那样。

那么,下划线_运动到底应该做什么?

vim

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

用于重定向标准输出和标准错误以及发送到后台的别名

我想创建一个alias重定向标准输出和标准错误gedit/dev/null,同时发送命令到后台。

这有效:

$ alias gedit='gedit $1 > /dev/null 2>&1'
$ gedit file.txt &
Run Code Online (Sandbox Code Playgroud)

但是,将后台指令添加&alias字符串无法正常工作,因为它会立即被解释:

$ alias gedit='gedit $1 > /dev/null 2>&1 &'
[1]+  Done                    gedit > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

我应该如何将此&后台指令添加到alias命令中?

shell io-redirection alias background-process

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

各种桌面环境如何刷新桌面背景?

在 XFCE 4.10 中,我可以使用xfdesktop --reload.

我想知道如何为尽可能多的其他桌面环境(Unity、KDE、LXDE、Mate、Cinnamon、GNOME2、GNOME3...)做同样的事情。

desktop desktop-environment

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

命令行上的 Shell 参数扩展在 bash 脚本中不起作用

考虑以下bash 命令行上的GNU shell 参数扩展,其解释如下:

$ a='hello world    example'

$ echo ${a//+( )/_}
hello_world_example
Run Code Online (Sandbox Code Playgroud)

然而,同样的参数扩展在 bash 脚本中不再起作用。

# !/usr/bin/env bash
a='hello world    example'
echo "${a//+( )/_}"
Run Code Online (Sandbox Code Playgroud)

它导致未更改的字符串:

hello world    example
Run Code Online (Sandbox Code Playgroud)

我已经从一个更简单的参数扩展中了解到命令" "后面的双引号echo是必需的,尽管我不知道为什么。

但是,要让这个特定的参数扩展在 bash 脚本中工作,还需要做些什么?为什么?

bash shell-script

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