Merge branch 'LCTT:master' into master

This commit is contained in:
Hans zhao 2022-06-30 16:39:32 +08:00 committed by GitHub
commit fd27ff4382
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 318 additions and 322 deletions

View File

@ -0,0 +1,134 @@
[#]: collector: (lujun9972)
[#]: translator: (Donkey-Hao)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14776-1.html)
[#]: subject: (Configure a Linux workspace remotely from the command line)
[#]: via: (https://opensource.com/article/21/1/remote-configuration-xfce4)
[#]: author: (David Both https://opensource.com/users/dboth)
从命令行远程配置 Xfce4 工作区
======
> 几乎所有的事情都可以从 Linux 命令行完成,包括对 Xfce4 进行远程配置。
![](https://img.linux.net.cn/data/attachment/album/202206/30/114747lfub5hh0b5nyquf3.jpg)
与专有操作系统相比,我很欣赏 Linux 的一个特点是,几乎所有的东西都可以从命令行中进行管理和配置。意味着几乎所有的事情都可以在本地或者通过 SSH 远程登录进行管理。虽然有时候需要花费一点时间在互联网上搜索,但是你能想到的任务,是有可能从命令行完成的。
### 问题
有时候需要使用命令行对桌面进行远程配置。在这种特殊情况下,我需要响应远程用户的请求将在 [Xfce][2] 控制板上的工作区从四个减少到三个。这种配置只需要在互联网上搜索约 20 分钟就找到了。
xfwm4 的默认工作区数量和许多其他设置可以在 `/usr/share/xfwm4/defaults` 这个文件中找到和修改。因此将 `workspace_count=2` 设置为 `workspace_count=4` 就改变了主机上所有用户的默认值。同时,非 root 用户可以执行 `xfconf-query` 命令来查询和设置 xfwm4 窗口管理器的各种属性。它应该由需要改变设置的用户使用,而不是由 root 使用。
在下面的例子中,首先我验证了当前工作区数量为 `4` ,然后将数量改为 `2`,最后确认了新设置。
```
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count
4
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count -s 2
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count
2
[user@test1 ~]#
```
此更改会立即生效,用户可以马上看到,无需重新启动,甚至无需注销并重新登录。我曾在我的工作站上玩过这个游戏,当我输入设置不同数量的工作空间的命令时,可以观察到工作空间切换器的变化。我在哪儿都能找到乐子。;- )
### 更多探索
现在我解决了这个问题,我决深入了解一下 `xfconf-query` 命令。不幸的是,该工具没有手册或信息页,`/usr/share` 中也没有任何文档。退而求其次,使用 `-h` 选项获取一些帮助信息。
```
$ xfconf-query -h
 Usage:
   xfconf-query [OPTION…] - Xfconf commandline utility
 Help Options:
   -h, --help            显示帮助选项
 Application Options:
   -V, --version         版本信息
   -c, --channel         查询/修改通道
   -p, --property        查询/修改属性
   -s, --set             更新权限的值
   -l, --list            罗列属性(或者通道,如果没有用 -c 指定)
   -v, --verbose         详细输出
   -n, --create          当新属性不存在,则创建它
   -t, --type            指定属性值类型
   -r, --reset           重置属性
   -R, --recursive       递归(与 -r 一起使用)
   -a, --force-array     即使只有一个元素也强制采用数组
   -T, --toggle          反转现有的布尔属性
   -m, --monitor         监视属性更改的通道
```
这没有多大帮助但我们还是可以从中找出一些有用的东西。首先_通道_ 是可以修的属性的分组。我对 `general` 通道下的 `workspace_count` 属性进行了更改。让我们看看完整的通道列表:
```
$ xfconf-query -l
Channels:
  xfwm4
  xfce4-keyboard-shortcuts
  xfce4-notifyd
  xsettings
  xfdashboard
  thunar
  parole
  xfce4-panel
  xfce4-appfinder
  xfce4-settings-editor
  xfce4-power-manager
  xfce4-session
  keyboards
  displays
  keyboard-layout
  ristretto
  xfcethemer
  xfce4-desktop
  pointers
  xfce4-settings-manager
  xfce4-mixer
```
给定通道的属性也可以用下列的命令来查看。我使用 `less` 分页器,因为结果是一长串数据。我对下面的列表进行了裁剪,但留下了足够多的条目,你可以看到这些条目的类型。
```
$ xfconf-query -c xfwm4 -l | less
/general/activate_action
/general/borderless_maximize
/general/box_move
/general/box_resize
/general/button_layout
/general/button_offset
<裁剪>
/general/workspace_count
/general/workspace_names
/general/wrap_cycle
/general/wrap_layout
/general/wrap_resistance
/general/wrap_windows
/general/wrap_workspaces
/general/zoom_desktop
(END)
```
你可以用这种方式探索所有的通道。我发现通道通常对应“设置管理器”中的各种设置。这些属性是你在这些对话框中设置的。请注意,并非你在“设置管理器”对话窗口中找到的所有设置都是 Xfce 桌面的一部分,因此它们没有对应的通道。屏幕保护程序就是一个例子,因为它是通用的 GNU 屏幕保护程序,并不是 Xfce 独有的。“设置管理器” 是 Xfce 定位这些配置工具的一个很好的中心位置。
### 文档
综上所述,`xconf-query` 命令似乎没有任何手册或信息页,并且我在网上发现了很多不正确的、记录不全的信息。我发现对 Xfce4 来说最好的文档是 [Xfce 网站][2],关于 `xconf-query` 的一些具体信息可以在这里找到。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/remote-configuration-xfce4
作者:[David Both][a]
选题:[lujun9972][b]
译者:[Donkey-Hao](https://github.com/Donkey-Hao)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/dboth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/code_computer_laptop_hack_work.png?itok=aSpcWkcl (Coding on a computer)
[2]: https://www.xfce.org/

View File

@ -3,13 +3,16 @@
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed" [#]: collector: "lkxed"
[#]: translator: "geekpi" [#]: translator: "geekpi"
[#]: reviewer: " " [#]: reviewer: "wxy"
[#]: publisher: " " [#]: publisher: "wxy"
[#]: url: " " [#]: url: "https://linux.cn/article-14778-1.html"
如何在 elementary OS 中启用最小化、最大化窗口按钮 如何在 elementary OS 中启用最小化、最大化窗口按钮
====== ======
这就是如何在 elementary OS 中启用最小化、最大化窗口按钮的方法。
![](https://img.linux.net.cn/data/attachment/album/202206/30/141133zfwflwefqwyeffff.jpg)
> 这是如何在 elementary OS 中启用最小化、最大化窗口按钮的方法。
许多人(大多数是 elementary OS 的新用户)在各种论坛上问这些问题: 许多人(大多数是 elementary OS 的新用户)在各种论坛上问这些问题:
@ -17,17 +20,17 @@
2. 我如何启用还原、最小化、最大化? 2. 我如何启用还原、最小化、最大化?
3. 有可能恢复最小化和最大化按钮吗? 3. 有可能恢复最小化和最大化按钮吗?
这些都是完全有效的问题,而且问问题也是可以的。对吗?这个指南可以帮助他们在 elementary OS 中获得这些按钮。 这些都是完全正常的问题,而且问问题也是可以的。对吧?这篇指南可以帮助他们在 elementary OS 中获得这些按钮。
Elementary OS 所使用的 Pantheon 桌面并没有默认的标准窗口按钮。其原因主要是通过 Dock 和应用菜单处理用户行为和活动的不同念。可以说这种设计或实现的行为模仿了macOS。 Elementary OS 所使用的 Pantheon 桌面并没有默认的标准窗口按钮。其主要原因是通过 Dock 和应用菜单处理用户行为和活动的不同念。可以说这种设计或实现的行为模仿了macOS。
也就是说,许多用户更喜欢窗口按钮,因为这是一个“肌肉记忆”的东西,有些人是从其他桌面环境迁移过来的,甚至是 Windows 不过,许多用户更喜欢窗口按钮,因为这是一个所谓的“肌肉记忆”,而且有些人是从其他桌面环境(甚至是 Windows迁移过来的
尽管 Elementary 没有为你提供这个默认设置,你仍然可以启用它。下面是方法。 尽管 Elementary 没有为你提供这个默认设置,你仍然可以启用它。下面是方法。
### 启用最小化最大化按钮 - elementary OS ### 启用最小化最大化按钮 - elementary OS
打开终端,安装添加 PPA 所需的 software-properties-common。默认情况下这个包在 elementary OS 中没有安装(不要问我为什么,真的么? 打开终端,安装添加 PPA 所需的 `software-properties-common` 软件包。默认情况下,这个包在 elementary OS 中没有安装(不要问我为什么,真的)
``` ```
sudo apt install software-properties-common sudo apt install software-properties-common
@ -35,7 +38,7 @@ sudo apt install software-properties-common
#### elementary OS 6 Odin #### elementary OS 6 Odin
Tweak 工具被重新命名,并正在单独开发。它被称为 [Pantheon Tweaks][1]。使用以下命令,你可以安装它。 elementary Tweak 工具被重新换了个名字,它现在被称为 [Pantheon Tweaks][1],并正在单独开发中。使用以下命令,你可以安装它:
``` ```
sudo add-apt-repository -y ppa:philip.scott/pantheon-tweaks sudo add-apt-repository -y ppa:philip.scott/pantheon-tweaks
@ -44,7 +47,7 @@ sudo apt install -y pantheon-tweaks
#### elementary OS 5 Juno 及更低版本 #### elementary OS 5 Juno 及更低版本
如果你使用的是 elementary OS 5 June 及更低版本,你可以使用相同的 PPA 安装早期的 [elementary-tweaks][2]。在终端按照以下命令进行操作 如果你使用的是 elementary OS 5 June 及更低版本,你可以使用相同的 PPA 安装早期的 [elementary-tweaks][2]。在终端按照以下命令进行操作
``` ```
sudo add-apt-repository -y ppa:philip.scott/elementary-tweaks sudo add-apt-repository -y ppa:philip.scott/elementary-tweaks
@ -53,19 +56,19 @@ sudo apt install -y elementary-tweaks
#### 更改设置 #### 更改设置
* 安装后,点击顶部栏的应用,打开系统设置。在系统设置窗口中,点击“个人”下的 Tweaks。 * 安装后,点击顶部栏的<ruby>应用<rt>Application</rt></ruby>,打开<ruby>系统设置<rt>System settings</rt></ruby>。在系统设置窗口中,点击“<ruby>个人<rt>Personal</rt></ruby>”下的 Tweaks
* 在 Tweaks 窗口中,进入“外观”。 * 在 Tweaks 窗口中,进入“<ruby>外观<rt>Appearance</rt></ruby>”。
* 在窗口控制下选择布局Windows。 * 在窗口控制下,选择布局:Windows
![enable minimize maximize buttons elementary OS][3] ![enable minimize maximize buttons elementary OS][3]
* 然后在顶部窗口栏的右侧应该有最小化、最大化和关闭按钮了。 * 然后在顶部窗口栏的右侧应该有最小化、最大化和关闭按钮了。
也有其他组合如Ubuntu、macOS等。你可以选择任何你觉得合适的 也有其他组合形式,如 Ubuntu、macOS 等。你可以选择任何你觉得合适的:
![Other Options of Window buttons in elementary][4] ![Other Options of Window buttons in elementary][4]
一步就完成了指南。gsettings 中还有其他选项,你可以尝试使用,但窗口管理器 gala 最近删除了这些选项。因此,它们目前可能无法工作。 篇指南至此就结束了。系统设置中还有其他选项,你可以尝试使用,但窗口管理器 gala 最近删除了这些选项。因此,它们目前可能无法工作。
我希望这个指南能帮助你启用 elementary OS 的最小化最大化按钮。如果你需要任何帮助,请在下面的评论栏告诉我。 我希望这个指南能帮助你启用 elementary OS 的最小化最大化按钮。如果你需要任何帮助,请在下面的评论栏告诉我。
@ -76,7 +79,7 @@ via: https://www.debugpoint.com/2021/08/enable-minimize-maximize-elementary/
作者:[Arindam][a] 作者:[Arindam][a]
选题:[lkxed][b] 选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi) 译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -4,28 +4,27 @@
[#]: collector: "lkxed" [#]: collector: "lkxed"
[#]: translator: "geekpi" [#]: translator: "geekpi"
[#]: reviewer: "turbokernel" [#]: reviewer: "turbokernel"
[#]: publisher: " " [#]: publisher: "wxy"
[#]: url: " " [#]: url: "https://linux.cn/article-14779-1.html"
使用 rustup 管理你的 Rust 工具链 使用 rustup 管理你的 Rust 工具链
====== ======
Rustup 可用于安装 Rust 并保持更新。它还允许你在稳定版、测试版和每日 Rust 编译器和工具之间无缝切换。
![Tools illustration][1] ![](https://img.linux.net.cn/data/attachment/album/202206/30/145426h9he5z111149ctcj.jpg)
图片来源Opensource.com > rustup 可用于 Rust 安装与更新。它还能够在稳定版、测试版和每日更新版之间无缝切换 Rust 编译器及其工具。
[Rust 编程语言][2] 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具使其成为开发人员使用的乐趣。 [Rustup][3] 是用于管理 Rust 工具的官方工具。它不仅可以用于安装 Rust 并保持更新,它还允许你在稳定、测试和每日 Rust 编译器和工具之间无缝切换。本文将向你介绍 rustup 和一些常用命令。 [Rust 编程语言][2] 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具,使其成为开发人员使用的乐趣。[rustup][3] 是管理 Rust 工具的官方工具。它不仅可以安装和更新 Rust ,它还能够在稳定版、测试版和每日更新版之间无缝切换 Rust 编译器及其工具。本文将向你介绍 `rustup` 及其一些常用命令。
### 默认 Rust 安装方式 ### 默认 Rust 安装方式
如果你想在 Linux 上安装 Rust你可以使用你的包管理器。在 Fedora 或 CentOS Stream 上,你可以这样使用它,例如 如果你想在 Linux 上安装 Rust你可以使用你的包管理器。在 Fedora 或 CentOS Stream 上,你可以这样:
``` ```
$ sudo dnf install rust cargo $ sudo dnf install rust cargo
``` ```
这提供了一个稳定版的 Rust 工具链,如果你是 Rust 的初学者并想尝试编译和运行简单的程序,它会非常有用。但是,由于 Rust 是一种新的编程语言,它变化很快,并且经常添加许多新功能。这些功能是 Rust 工具链的每日和之后测试版的一部分。要试用这些功能,你需要安装这些较新版本的工具链,而不会影响系统上的稳定版本。不幸的是,你的发行版的包管理器在这里无法为你提供帮助 这提供了一个稳定版的 Rust 工具链,如果你是 Rust 的初学者并想尝试编译和运行简单的程序,它会非常有用。但是,由于 Rust 是一种新的编程语言,它变化很快,并且经常添加许多新功能。这些功能是 Rust 工具链的每日更新版和之后测试版的一部分。要试用这些功能,你需要安装这些较新版本的工具链,而不会影响系统上的稳定版本。不幸的是,你的发行版的包管理器在这里无法做到
### 使用 rustup 安装 Rust 工具链 ### 使用 rustup 安装 Rust 工具链
@ -33,7 +32,7 @@ $ sudo dnf install rust cargo
``` ```
$ curl --proto '=https' --tlsv1.2 \ $ curl --proto '=https' --tlsv1.2 \
-sSf https://sh.rustup.rs > sh.rustup.rs -sSf https://sh.rustup.rs > sh.rustup.rs
``` ```
检查它,然后运行它。它不需要 root 权限,并根据你的本地用户权限安装 Rust 检查它,然后运行它。它不需要 root 权限,并根据你的本地用户权限安装 Rust
@ -45,7 +44,7 @@ $ less sh.rustup.rs
$ bash sh.rustup.rs $ bash sh.rustup.rs
``` ```
出现提示时选择选项 1 出现提示时选择选项 `1`
``` ```
1) Proceed with installation (default) 1) Proceed with installation (default)
@ -54,22 +53,22 @@ $ bash sh.rustup.rs
> 1 > 1
``` ```
安装后,你必须获取环境变量以确保 `rustup` 命令立即可供你使用 安装后,你必须获取环境变量以确保 `rustup` 命令立即可供你运行
``` ```
$ source $HOME/.cargo/env $ source $HOME/.cargo/env
``` ```
验证是否安装了 Rust 编译器 (rustc) 和 Rust 包管理器 (cargo) 验证是否安装了 Rust 编译器`rustc`)和 Rust 包管理器(`cargo`
``` ```
$ rustc --version $ rustc --version
$ cargo --version $ cargo --version
``` ```
### 查看已安装和活动的工具链 ### 查看已安装和可用的工具链
你可以使用以下命令查看已安装的不同工具链以及哪个工具链是活动的: 你可以使用以下命令查看已安装的不同工具链以及哪个工具链是可用的:
``` ```
$ rustup show $ rustup show
@ -77,14 +76,14 @@ $ rustup show
### 在工具链之间切换 ### 在工具链之间切换
你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定的工具链,并希望尝试每日版本中提供的新功能,你可以轻松切换到每日工具链: 你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定版工具链,并希望尝试每日更新版中提供的新功能,你可以轻松切换到每日更新版工具链:
``` ```
$ rustup default $ rustup default
$ rustup default nightly $ rustup default nightly
``` ```
要查看 Rust 的编译器和包管理器的确切路径: 要查看 Rust 的编译器和包管理器的完整路径:
``` ```
$ rustup which rustc $ rustup which rustc
@ -107,13 +106,13 @@ $ rustup update
### 帮助和文档 ### 帮助和文档
以上命令对于日常使用来说绰绰有余。尽管如此rustup 有多种命令,你可以参考帮助部分了解更多详细信息: 以上命令对于日常使用来说绰绰有余。尽管如此,`rustup` 有多种命令,你可以参考帮助部分了解更多详细信息:
``` ```
$ rustup --help $ rustup --help
``` ```
Rustup 在 GitHub 上有完整的[说明书][4],你可以将其用作参考。所有 Rust 文档都安装在你的本地系统上,不需要你连接到 Internet。你可以访问包括书籍、标准库等在内的本地文档: `rustup` 在 GitHub 上有完整的 [参考手册][4],你可以用作参考。所有 Rust 文档都安装在你的本地系统上,不需要你连接到互联网。你可以访问包括书籍、标准库等在内的本地文档:
``` ```
$ rustup doc $ rustup doc

View File

@ -1,146 +0,0 @@
[#]: subject: "Make a temporary file on Linux with Bash"
[#]: via: "https://opensource.com/article/22/6/make-temporary-file-bash"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Make a temporary file on Linux with Bash
======
The mktemp command on Fedora-based systems and tempfile on Debian-based systems are specially designed to alleviate that burden by making it easy to create, use, and remove unique files.
![bash logo on green background][1]
Image by: Opensource.com
When programming in the Bash scripting language, you sometimes need to create a temporary file. For instance, you might need to have an intermediary file you can commit to disk so you can process it with another command. It's easy to create a file such as `temp` or anything ending in `.tmp`. However, those names are just as likely to be generated by some other process, so you could accidentally overwrite an existing temporary file. And besides that, you shouldn't have to expend mental effort coming up with names that seem unique. The `mktemp` command on Fedora-based systems and `tempfile` on Debian-based systems are specially designed to alleviate that burden by making it easy to create, use, and remove unique files.
### Create a temporary file
Both `mktemp` and `tempfile` create a temporary file as their default action and print the name and location of the file as output:
```
$ tempfile
/tmp/fileR5dt6r
$ mktemp
/tmp/tmp.ojEfvMaJEp
```
Unless you specify a different path, the system places temporary files in the `/tmp` directory. For `mktemp`, use the `-p` option to specify a path:
```
$ mktemp -p ~/Demo
/home/tux/Demo/tmp.i8NuhzbEJN
```
For `tempfile`, use the `--directory` or `-d` option:
```
$ tempfile --directory ~/Demo/
/home/sek/Demo/fileIhg9aX
```
### Find your temporary file
The problem with using an auto-generated temporary file is that you have no way of knowing what its name is going to be. That's why both commands return the generated file name as output. You can use an interactive shell such as Konsole, GNOME Terminal, or [rxvt][2] to use the filename displayed on your terminal to interact with the file.
However, if you're writing a script, there's no way for you to intervene by reading the name of the file and using it in the following commands.
The authors of `mktemp` and `tempfile` thought of that problem, and there's an easy fix. The terminal sends output to a stream called *stdout.*You can capture stdout by setting a variable to the results of a command launched in a subshell:
```
$ TMPFILE=$(mktemp -p ~/Demo)
$ echo $TMPFILE
/home/tux/Demo/tmp.PjP3g6lCq1
```
Use `$TMPFILE` when referring to the file, and it's the same as interacting directly with the file itself.
### Create a temporary directory with mktemp
You can also use the `mktemp` command to create a directory instead of a file:
```
$ mktemp --directory -p ~/Demo/
/home/tux/Demo/tmp.68ukbuluqI
$ file /home/tux/Demo/tmp.68ukbuluqI
/home/tux/Demo/tmp.68ukbuluqI: directory
```
### Customize temporary names
Sometimes you might want an element of predictability in even your pseudo-randomly generated filenames. You can customize the names of your temporary files with both commands.
With `mktemp`, you can add a suffix to your filename:
```
$ mktemp -p ~/Demo/ --suffix .mine
/home/tux/Demo/tmp.dufLYfwJLO.mine
```
With `tempfile`, you can set a prefix and a suffix:
```
$ tempfile --directory ~/Demo/ \
--prefix tt_ --suffix .mine
/home/tux/Demo/tt_0dfu5q.mine
```
### Tempfile as touch
You can also set a custom name with `tempfile` :
```
$ tempfile --name not_random
not_random
```
When you use the `--name` option, it's absolute, ignoring all other forms of customization. In fact, it even ignores the `--directory` option:
```
$ tempfile --directory ~/Demo \
--prefix this_is_ --suffix .all \
--name not_random_at
not_random_at
```
In a way, `tempfile` can be a substitute for `touch` and `test` because it refuses to create a file that already exists:
```
$ tempfile --name example.txt
open: file exists
```
The `tempfile` command isn't installed on all Linux distributions by default, so you must ensure that it exists before you use it as a hack around `test` in a script.
### Install mktemp and tempfile
[GNU Core Utils][3] includes the `mktemp` command. Major distributions include Core Utils by default (it's the same package that contains `chmod`, `cut`, `du`, and other essential commands).
The Debian Utils package includes the `tempfile` command and is installed by default on most Debian-based distributions and Slackware Linux.
### Wrap up
Temporary files are convenient because there's no confusion about whether they're safe to delete. They're temporary, meant to be used as needed and discarded without a second thought. Use them when you need them, and clear them out when you're done.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/6/make-temporary-file-bash
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png
[2]: https://opensource.com/article/19/10/why-use-rxvt-terminal
[3]: https://www.gnu.org/software/coreutils/

View File

@ -2,7 +2,7 @@
[#]: via: "https://itsfoss.com/router-ip-address-linux/" [#]: via: "https://itsfoss.com/router-ip-address-linux/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed" [#]: collector: "lkxed"
[#]: translator: " " [#]: translator: "geekpi"
[#]: reviewer: " " [#]: reviewer: " "
[#]: publisher: " " [#]: publisher: " "
[#]: url: " " [#]: url: " "

View File

@ -1,140 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (Donke-Hao)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Configure a Linux workspace remotely from the command line)
[#]: via: (https://opensource.com/article/21/1/remote-configuration-xfce4)
[#]: author: (David Both https://opensource.com/users/dboth)
从命令行远程配置 Linux 工作区
======
几乎所有的事情都可以从 Linux 命令行完成,包括 Xfce4 的远程配置。
![Coding on a computer][1]
几乎所有的事情都可以通过命令行管理和配置。意味着几乎所有的事情都可以在本地或者通过 SSH 远程登录进行管理。有时候在互联网上搜索会花费一点时间但是如果译者个人感觉这里上下文有省略一些意思我感觉是“如果利用这段时间你能想到…”——_**请校对者注意并删除括号内的话**_你能想到一个可能可以从命令行完成的任务。
### 问题
有时候需要使用命令行进行远程修改。在这种特殊情况下,我需要响应远程用户的请求将在 [Xfce][2] 控制板上的工作区从四个减少到三个。这种配置仅需要在互联网上搜索约 20 分钟。
默认工作区数量和许多其他 **xfwm4** 设置可以在 **/usr/share/xfwm4/defaults** 这个文件中找到并修改。因此将 _workspace_count=2_ 设置为 _workspace_count=4_ 改变了所有主机的默认值。 同时,非 root 用户可以执行 **xfconf-query** 命令来查询并修改 **xfwm4** 窗口管理器的不同属性。它应该由需要更改的用户帐户使用,而不是由 root 使用。
在下面的例子中,首先我验证了当前工作区数量为 _4_ ,然后将数量改为 _2_ ,最后确认了新设置。
```
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count
4
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count -s 2
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count
2
[user@test1 ~]#
```
此更改会立即发生,并且用户可以看到,无需重新启动,甚至无需注销并重新登录。当我输入命令以设置不同数量的工作区时,通过观察工作区切换器的变化,使我在我的工作站上有些快乐。 这些天,我尽我所能获得娱乐。 ;-)
### 更多探索
现在我解决了问题,我决定更详细的探索一下 **xfconf-query** 命令。不幸的是,该工具没有手册或信息页,**/usr/share** 中也没有任何文档。退而求其次,使用 **-h** 选项获取一些帮助信息。
```
$ xfconf-query -h
 Usage:
   xfconf-query [OPTION…] - Xfconf commandline utility
 Help Options:
   -h, --help            显示帮助选项
 Application Options:
   -V, --version         版本信息
   -c, --channel         询问/修改通道
   -p, --property        询问/修改属性
   -s, --set             更新权限的值
   -l, --list            罗列属性(或者通道 如果没有用 -c 指定)
   -v, --verbose         详细输出
   -n, --create          当新属性不存在,则创建它
   -t, --type            指定属性值类型
   -r, --reset           重置属性
   -R, --recursive       递归(与 -r 一起使用)
   -a, --force-array     即使只有一个元素也强制数组
   -T, --toggle          反转现有的布尔属性
   -m, --monitor         监视属性更改的通道
```
这没有多大帮助,但无论如何我们都可以从中找出一些好处。首先, _通道_ 以属性分组便于修改。我对 **general** 通道进行了更改,属性为 **workspace_count** 。 让我们看看完整的通道列表。
```
$ xfconf-query -l
Channels:
  xfwm4
  xfce4-keyboard-shortcuts
  xfce4-notifyd
  xsettings
  xfdashboard
  thunar
  parole
  xfce4-panel
  xfce4-appfinder
  xfce4-settings-editor
  xfce4-power-manager
  xfce4-session
  keyboards
  displays
  keyboard-layout
  ristretto
  xfcethemer
  xfce4-desktop
  pointers
  xfce4-settings-manager
  xfce4-mixer
```
给定通道的属性也可以用下列的命令来查看。我使用 **less** 寻呼机,因为结果是一长串数据。我已经缩减了下表,但留下了足够的空间来查看你可以找到的条目类型。
```
$ xfconf-query -c xfwm4 -l | less
/general/activate_action
/general/borderless_maximize
/general/box_move
/general/box_resize
/general/button_layout
/general/button_offset
&lt;SNIP&gt;
/general/workspace_count
/general/workspace_names
/general/wrap_cycle
/general/wrap_layout
/general/wrap_resistance
/general/wrap_windows
/general/wrap_workspaces
/general/zoom_desktop
(END)
```
你可以用这种方式探索所有的通道。我发现频道通常对应 **设置管理器** 中的各种设置。属性是你将在这些对话框中设置的属性。请注意,并非您会在 **设置管理器** 对话窗口中找到的所有图标都是 **Xfce** 桌面的一部分,因此它们没有对应的通道。 **屏幕保护程序** 就是一个例子,因为它是通用的 GNU 屏幕保护程序,并不是 **Xfce** 独有的。 **设置管理器****Xfce** 定位这些配置工具的一个很好的中心位置。
### 总结
综上所述,在 **xconf-query** 命令似乎没有任何手册或信息页,并且我在网上发现了一些错误的糟糕的记录信息。我发现对 **Xfce4** 来说最好的文件是 [Xfce 网站][2],以及一些具体信息可以在 **xconf-query** 找到。、
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/remote-configuration-xfce4
作者:[David Both][a]
选题:[lujun9972][b]
译者:[Donke-Hao](https://github.com/Donke-Hao)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/dboth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/code_computer_laptop_hack_work.png?itok=aSpcWkcl (Coding on a computer)
[2]: https://www.xfce.org/

View File

@ -0,0 +1,146 @@
[#]: subject: "Make a temporary file on Linux with Bash"
[#]: via: "https://opensource.com/article/22/6/make-temporary-file-bash"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
在 Linux 上使用 Bash 创建一个临时文件
======
基于 Fedora 的系统上的 mktemp 命令和基于 Debian 的系统上的 tempfile 是专门为减轻这种负担而设计的,它使创建、使用和删除独特的文件变得容易。
![bash logo on green background][1]
图片来源Opensource.com
使用 Bash 脚本语言进行编程时,有时需要创建一个临时文件。例如,你可能需要一个可以提交到磁盘的中间文件,以便你可以使用另一个命令对其进行处理。创建诸如 `temp` 之类的文件或任何以 `.tmp` 结尾的文件很容易。但是,这些名称很可能是由其他进程生成的,因此你可能会不小心覆盖现有的临时文件。除此之外,你不应该花费脑力想出看起来独特的名字。基于 Fedora 的系统上的 `mktemp` 命令和基于 Debian 的系统上的 `tempfile` 是专门为减轻这种负担而设计的,它使创建、使用和删除独特的文件变得容易。
### 创建一个临时文件
`mktemp``tempfile` 都创建一个临时文件作为它们的默认操作,并打印文件的名称和位置作为输出:
```
$ tempfile
/tmp/fileR5dt6r
$ mktemp
/tmp/tmp.ojEfvMaJEp
```
除非你指定不同的路径,否则系统会将临时文件放在 `/tmp` 目录中。对于 `mktemp`,使用 `-p` 选项指定路径:
```
$ mktemp -p ~/Demo
/home/tux/Demo/tmp.i8NuhzbEJN
```
对于 `tempfile`,使用 `--directory``-d` 选项:
```
$ tempfile --directory ~/Demo/
/home/sek/Demo/fileIhg9aX
```
### 找到你的临时文件
使用自动生成的临时文件的问题是你无法知道它的名字是什么。这就是为什么两个命令都返回生成的文件名作为输出的原因。你可以使用 Konsole、GNOME 终端或 [rxvt][2] 等交互式 shell 来使用终端上显示的文件名与文件进行交互。
但是,如果你正在编写脚本,则无法通过读取文件名并在以下命令中使用它来进行干预。
`mktemp``tempfile` 的作者想到了这个问题,并且有一个简单的解决方法。终端将输出发送到名为 *stdout* 的流。你可以通过将变量设置为在子 shell 中启动的命令的结果来捕获标准输出:
```
$ TMPFILE=$(mktemp -p ~/Demo)
$ echo $TMPFILE
/home/tux/Demo/tmp.PjP3g6lCq1
```
引用文件时使用 `$TMPFILE`,它与直接与文件本身交互相同。
### 使用 mktemp 创建一个临时目录
你还可以使用 `mktemp` 命令创建目录而不是文件:
```
$ mktemp --directory -p ~/Demo/
/home/tux/Demo/tmp.68ukbuluqI
$ file /home/tux/Demo/tmp.68ukbuluqI
/home/tux/Demo/tmp.68ukbuluqI: directory
```
### 自定义临时名称
有时你甚至可能希望在伪随机生成的文件名中加入可预测性元素。你可以使用这两个命令自定义临时文件的名称。
使用 `mktemp`,你可以为文件名添加后缀:
```
$ mktemp -p ~/Demo/ --suffix .mine
/home/tux/Demo/tmp.dufLYfwJLO.mine
```
使用 `tempfile`,你可以设置前缀和后缀:
```
$ tempfile --directory ~/Demo/ \
--prefix tt_ --suffix .mine
/home/tux/Demo/tt_0dfu5q.mine
```
### 把 Tempfile 作为 touch 使用
你还可以使用 `tempfile` 设置自定义名称:
```
$ tempfile --name not_random
not_random
```
当你使用 `--name` 选项时,它是绝对的,忽略所有其他形式的自定义。事实上,它甚至忽略了 `--directory` 选项:
```
$ tempfile --directory ~/Demo \
--prefix this_is_ --suffix .all \
--name not_random_at
not_random_at
```
在某种程度上,`tempfile` 可以替代 `touch``test`,因为它拒绝创建已经存在的文件:
```
$ tempfile --name example.txt
open: file exists
```
`tempfile` 命令并非默认安装在所有 Linux 发行版上,因此在将其用作脚本中的 `test` 的 hack 之前,你必须确保它存在。
### 安装 mktemp 和 tempfile
[GNU Core Utils][3] 包括 `mktemp` 命令。主要发行版默认包括 Core Utils它与包含 `chmod`、`cut`、`du` 和其他基本命令的包相同)。
Debian Utils 软件包包含 `tempfile` 命令,默认安装在大多数基于 Debian 的发行版和 Slackware Linux 上。
### 总结
临时文件很方便,因为不会混淆它们是否可以安全删除。它们是临时的,意在根据需要使用并毫不犹豫地丢弃。在需要时使用它们,并在完成后清除它们。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/6/make-temporary-file-bash
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png
[2]: https://opensource.com/article/19/10/why-use-rxvt-terminal
[3]: https://www.gnu.org/software/coreutils/