我的tmux配置
tmux.sh
#!/bin/bash
SESSION_NAME="mysession"
MY_BASH_PROJECT="/home/lingu/project/shell/pratice"
MY_C_PROJECT="/home/lingu/project/c"
MY_WEB_PROJECT="/home/lingu/project"
WORK_PROJECT="/home/lingu/work_project"
# 检查 tmux 是否安装
if ! command -v tmux &> /dev/null; then
echo "tmux is mot installed"
exit 1
fi
# 检查是否有会话已启动,如果有则直接attach
if tmux has-session -t $SESSION_NAME 2> /dev/null; then
tmux attach-session -t $SESSION_NAME
exit 0
fi
tmux new-session -d -s $SESSION_NAME -n 'check system'
tmux split-window -h
tmux split-window -v
tmux send-keys -t $SESSION_NAME:1.1 'neofetch' C-m
tmux send-keys -t $SESSION_NAME:1.2 'ping www.bing.com' C-m
tmux send-keys -t $SESSION_NAME:1.3 'htop' C-m
tmux new-window -t $SESSION_NAME:2 -n 'Shell Script'
tmux send-keys -t $SESSION_NAME:2 'bash' C-m
tmux send-keys -t $SESSION_NAME:2 "cd $MY_BASH_PROJECT" C-m
tmux new-window -t $SESSION_NAME:3 -n 'C Program'
tmux send-keys -t $SESSION_NAME:3 "cd $MY_C_PROJECT" C-m
tmux new-window -t $SESSION_NAME:4 -n 'Website'
tmux send-keys -t $SESSION_NAME:4 "cd $MY_WEB_PROJECT" C-m
tmux new-window -t $SESSION_NAME:5 -n 'work'
tmux send-keys -t $SESSION_NAME:5 "cd $WORK_PROJECT" C-m
tmux new-window -t $SESSION_NAME:6 -n 'server'
tmux send-keys -t $SESSION_NAME:6 "cd $WORK_PROJECT" C-m
tmux send-keys -t $SESSION_NAME:6 'ssh root@xxx.xxx.xxx.xxx' C-m
tmux select-window -t $SESSION_NAME:6
tmux attach-session -t $SESSION_NAME
.tmux.conf
set -g base-index 1 # 窗口编号从 1 开始计数
set -g display-panes-time 10000 # PREFIX-Q 显示编号的驻留时长,单位 ms
set -g mouse on # 开启鼠标
set -g pane-base-index 1 # 窗格编号从 1 开始计数
set -g renumber-windows on # 关掉某个窗口后,编号重排
setw -g allow-rename off # 禁止活动进程修改窗口名
setw -g automatic-rename off # 禁止自动命名新窗口
setw -g mode-keys vi # 进入复制模式的时候使用 vi 键位(默认是 EMACS)
# Status bar
# Colors
set -g status-bg black
set -g status-fg white
# Alignment
set -g status-justify centre
# 左侧栏,包含显示会话名
set -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
set -g status-left-length 30 # Increase length to fit content
# window列表,居中
setw -g automatic-rename on
set-window-option -g window-status-format '#[dim]#I:#[default]#W#[fg=grey,dim]'
set-window-option -g window-status-current-format '#[fg=cyan,bold]#I#[fg=blue]:#[fg=cyan]#W#[fg=dim]'
# 右侧栏,包含CPU使用率,内存使用率,用户名
set -g status-right '#[fg=green][#[fg=cyan]#(./check_cpu.sh)#[fg=green]] #[fg=green]|#[fg=green] [#[#[fg=cyan]#(./check_memory.sh)#[fg=green]] | #[fg=green][#[fg=yellow]#(whoami)#[fg=green]]'
# 开启状态栏
set -g status on
# 每秒更新状态栏
set -g status-interval 1
check_cpu.sh
#!/bin/bash
# 获取CPU使用情况并计算 CPU 使用率的函数get_cpu_usage() {
cpu_stat=$(grep 'cpu ' /proc/stat)
cpu_idle=$(echo "$cpu_stat" | awk '{print $5}')
total_cpu=$(echo " $cpu_stat" | awk '{print $2+$3+$4+$5+$6+$7+$8}')
if (( total_cpu > 0 )); then
cpu_usage=$((100 * (total_cpu - cpu_idle) / total_cpu))
else
cpu_usage=0
fi
echo "CPU: $cpu_usage%"
}
# 调用函数并输出结果
get_cpu_usage
check_memory
#!/bin/bash
# 获取内存信息mem_info=$(free | grep 内存)
# 提取总内存和已用内存total_mem=$(echo "$mem_info" | awk '{print $2}')
used_mem=$(echo "$mem_info" | awk '{print $3}')
# 计算内存使用率if (( total_mem > 0 )); then
mem_usage=$((100 * used_mem / total_mem))
else
mem_usage=0
fi
echo "Mem: ${mem_usage}%"