刚刚安装了 tmux homebrew
,我正在尝试找到系统范围的 tmux 配置文件。手册页声明系统范围的文件应该位于 中/etc/tmux.conf
,但由于某种原因,它不存在。tmux.conf
默认文件在哪里?
注意:当前运行 OSX Mavericks
刚刚安装了 tmux homebrew
,我正在尝试找到系统范围的 tmux 配置文件。手册页声明系统范围的文件应该位于 中/etc/tmux.conf
,但由于某种原因,它不存在。tmux.conf
默认文件在哪里?
注意:当前运行 OSX Mavericks
据我所知,通过自制软件安装的 tmux 没有系统范围的 conf 文件。如果您确实需要一个,您可以在/etc/tmux.conf
. 但是,我想知道是否需要这样做。我把我的配置放进去~/.tmux.conf
,一切都很开心。
有一个/usr/local/Cellar/tmux/1.8/etc
目录,但它包含 bash 完成脚本。我还检查usr/local/etc
了它没有安装配置。
在这一点上,我非常有信心通过 homebrew 安装的 tmux 安装程序不会安装它自己的系统范围的配置文件,而是将其作为系统管理员的练习,如果需要这样的功能。
默认情况下,tmux 没有可编辑的系统范围配置。它已被纳入程序。
使用这些命令列出已编译的默认值,然后为您的用户制作您自己的文件。
tmux list-keys # show current bindings
tmux show-options -s # show current server options
tmux show-options -g # show current global session options
tmux show-options # show current session options
tmux show-options -gw # show current global window options
tmux show-options -w # show current window options
使用 tmux 1.7,show-options 还可以显示单个选项的值(以前的版本只能列出指定类的所有选项):
tmux show-options -gw window-status-format
您应该在以下方面找到有用的东西:
/usr/share/doc/tmux/examples
最新版本的 tmux 只有示例 conf 文件,这不是 OSX 问题,只是新的默认 tmux 打包。因此,您可以使用其中的任何一个来执行以下操作:
$cp /usr/share/doc/tmux/examples/someconffile.conf ~/.tmux.conf
应该这样做。
从man tmux
页面:
-f file Specify an alternative configuration file. By default, tmux loads the system configuration file from /usr/local/etc/tmux.conf, if present, then looks for a user configuration file at
~/.tmux.conf.
如果没有文件,您可以创建一个使用touch ~/.tmux.conf
并编写任何您想要的文件。
“我会尝试一下。这里有一些我想不到的解决方案。我不运行 Mac,但我运行 RH、Debian、FreeBSD、Solaris、CYgwin 和其他东西。
我的理解直接来自man tmux
. 该-f
标志将指定一个替代配置文件。默认情况下,tmux
从 加载系统配置文件/etc/tmux.conf
(如果存在),然后在 中查找用户配置文件~/.tmux.conf
。tmux
配置文件是服务器首次启动时按顺序执行的一组命令。
#!/usr/bin/env bash
unset temporary_array_tmp ; declare -a temporary_array_tmp
temporary_array_tmp=(/etc/tmux.conf ~/.tmux.conf)
# The next line creates an empty global and personal configuration file,
# if it individually does NOT exists.
for i_tmp in "${temporary_array_tmp[@]}" ; do
[[ ! -f "${i_tmp}" ]] && \
touch "${i_tmp}" && \
echo -en "I created an empty tmux configuration file @ ${i_tmp}. " && \
echo -e "You need to add configuration settings to ${i_tmp} ." || \
echo -e "The tmux configuration file ${i_tmp} already exists."
done
# After you add configuration settings, then you need
# to tell tmux to reload the files.
for i_tmp in "${temporary_array_tmp[@]}" ; do
[[ -f "${i_tmp}" ]] && \
tmux source-file "${i_tmp}" && \
echo -e "${i_tmp} The tmux configuration file ${i_tmp} is loaded." || \
echo -e "The tmux configuration file ${i_tmp} is NOT loaded."
done
unset temporary_array_tmp
接下来,您可以使用find
. 例如:
find ~/ /etc /usr -iname *tmux*
Alon Gouldman 的回答对我有用。只是添加到它:
我在 Ubuntu 20.04 上工作时遇到了这个问题。
这是我解决它的方法:
首先,如果在您的主目录中找不到任何 tmux 的配置文件,则使用以下命令在您的主( ~
) 目录中创建一个:
touch ~/.tmux.conf
接下来,要使文件在您启动Tmux会话时始终可用,请将文件添加到~/.bash_profile
、~/.bash_login
和~/.profile
文件中。它应该添加到文件的底部:
source "$HOME/.tmux.conf"
这是一个例子:
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
source "$HOME/.tmux.conf"
注意:~/.bash_profile
文件优先,然后~/.bash_login
文件为第二优先,~/.profile
最后文件为最后优先。
就这样。
我希望这有帮助