WSL 服务自动启动
WSL 服务自动启动
参考 https://zhuanlan.zhihu.com/p/47733615
Windows 启用 WSL 功能支持
> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
在Windows应用商店中下载安装 Ubuntu 系统
Ubuntu 系统设置更新源设置为国内更新源
lsgx@DESKTOP-OS0DFSI:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak lsgx@DESKTOP-OS0DFSI:~$ sudo cat /etc/apt/sources.list # See https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # 预发布软件源,不建议启用 #deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
lsgx@DESKTOP-OS0DFSI:~$
Ubuntu 系统升级更新
lsgx@DESKTOP-OS0DFSI:~$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y
Ubuntu 系统安装 ssh 服务
lsgx@DESKTOP-OS0DFSI:~$ sudo apt-get install aptitude lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ sudo aptitude purge openssh-server openssh-sftp-server lsgx@DESKTOP-OS0DFSI:~$ sudo aptitude install openssh-server openssh-sftp-server lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ sudo cat /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # Restart ssh service command : sudo service ssh --full-restart # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. Port 2222 #AddressFamily any ListenAddress 0.0.0.0 #ListenAddress :: #HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_ecdsa_key #HostKey /etc/ssh/ssh_host_ed25519_key # Ciphers and keying #RekeyLimit default none # Logging #SyslogFacility AUTH #LogLevel INFO # Authentication: #LoginGraceTime 2m PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 #PubkeyAuthentication yes # Expect .ssh/authorized_keys2 to be disregarded by default in future. #AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 #AuthorizedPrincipalsFile none #AuthorizedKeysCommand none #AuthorizedKeysCommandUser nobody # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts #HostbasedAuthentication no # Change to yes if you don't trust ~/.ssh/known_hosts for # HostbasedAuthentication #IgnoreUserKnownHosts no # Don't read the user's ~/.rhosts and ~/.shosts files #IgnoreRhosts yes # To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes #PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no AllowUsers lsgx # Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes #GSSAPIStrictAcceptorCheck yes #GSSAPIKeyExchange no # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes #AllowAgentForwarding yes #AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes #X11DisplayOffset 10 #X11UseLocalhost yes #PermitTTY yes PrintMotd no #PrintLastLog yes #TCPKeepAlive yes #UseLogin no #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #UseDNS no #PidFile /var/run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none #VersionAddendum none # no default banner path #Banner none # Allow client to pass locale environment variables AcceptEnv LANG LC_* # override default of no subsystems Subsystem sftp /usr/lib/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ sudo service ssh --full-restart lsgx@DESKTOP-OS0DFSI:~$
Windows 防火墙中开放 2222 端口拨入
Ubuntu 系统添加启动脚本文件 /etc/init.wsl
lsgx@DESKTOP-OS0DFSI:~$ sudo aptitude install supervisor lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ sudo cat /etc/init.wsl #! /bin/sh # Filename: /etc/init.wsl # Usage: sudo /etc/init.wsl [start|stop|restart] /etc/init.d/cron $1 /etc/init.d/ssh $1 /etc/init.d/supervisor $1 lsgx@DESKTOP-OS0DFSI:~$
lsgx@DESKTOP-OS0DFSI:~$ cat /etc/wsl.conf
[boot]
systemd=true
[interop]
enabled=false
appendWindowsPath=false
lsgx@DESKTOP-OS0DFSI:~$ sudo chmod +x /etc/init.wsl lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ sudo cat /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL %sudo ALL=NOPASSWD: /etc/init.wsl # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d lsgx@DESKTOP-OS0DFSI:~$
Windows 中添加自动启动的脚本 startubuntu.vbs 。
a. 打开当前用户默认自启动加载文件夹,在 Windows 中,开始-运行,输入:
shell:startup
b. 在当前用户默认自启动加载文件夹中,添加要加载的VBS脚本文件 startubuntu.vbs 。
Set ws = WScript.CreateObject("WScript.Shell") ws.run "ubuntu run sudo /etc/init.wsl start", vbhide
重启 Windows 系统,验证WSL服务是否自动启动。
查看 Ubuntu 系统启动的服务列表
lsgx@DESKTOP-OS0DFSI:~$ sudo systemctl list-unit-files | grep enable
lsgx@DESKTOP-OS0DFSI:~$
lsgx@DESKTOP-OS0DFSI:~$ sudo service --status-all [ - ] acpid [ - ] apparmor [ ? ] apport [ - ] atd [ - ] console-setup.sh [ + ] cron [ ? ] cryptdisks [ ? ] cryptdisks-early [ - ] dbus [ - ] ebtables [ ? ] hwclock.sh [ + ] irqbalance [ + ] iscsid [ - ] keyboard-setup.sh [ - ] kmod [ - ] lvm2 [ + ] lvm2-lvmetad [ + ] lvm2-lvmpolld [ - ] lxcfs [ - ] lxd [ - ] mdadm [ - ] mdadm-waitidle [ + ] open-iscsi [ - ] open-vm-tools [ ? ] plymouth [ ? ] plymouth-log [ - ] procps [ - ] rsync [ - ] rsyslog [ - ] screen-cleanup [ + ] ssh [ + ] supervisor [ - ] udev [ - ] ufw [ - ] unattended-upgrades [ - ] uuidd [ - ] x11-common lsgx@DESKTOP-OS0DFSI:~$
开发环境软件安装
$ sudo aptitude install tree
$ sudo aptitude install curl
$ sudo aptitude install wget $ sudo aptitude install htop
$ sudo aptitude install bash bash-completion $ sudo aptitude install xterm $ sudo aptitude install tmux $ sudo aptitude install p7zip-full $ sudo aptitude install dmidecode $ sudo aptitude install pciutils $ sudo aptitude install psmisc $ sudo aptitude install v86d
$ sudo aptitude install hwinfo $ sudo aptitude install lshw $ sudo aptitude install smartmontools $ sudo aptitude install build-essential $ sudo aptitude install gdb gdb-doc cgdb $ sudo aptitude install perl perl-doc $ sudo aptitude install guile-2.2 guile-2.2-libs guile-2.2-doc
$ sudo aptitude install chezscheme $ sudo aptitude install expect $ sudo aptitude install autoconf automake $ sudo aptitude install libtool libtool-bin libtool-doc $ sudo aptitude install cmake cmake-curses-gui cmake-doc $ sudo aptitude install git git-doc $ sudo aptitude install subversion subversion-tools $ sudo aptitude install fakeroot $ sudo aptitude install valgrind $ sudo aptitude install bison $ sudo aptitude install flex flex-doc $ sudo aptitude install swig $ sudo aptitude install libncurses5-dev $ sudo aptitude install libssl-dev $ sudo aptitude install libiconv-hook-dev $ sudo aptitude install dpkg-dev $ sudo aptitude install kernel-package $ sudo aptitude install linux-headers-`uname -r` $ sudo aptitude install locales language-selector-common $ sudo aptitude install language-pack-en language-pack-en-base $ sudo aptitude install language-pack-zh-hans language-pack-zh-hans-base $
lsgx@DESKTOP-OS0DFSI:~$ cat /var/lib/locales/supported.d/local en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 zh_SG.UTF-8 UTF-8 lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ cat /etc/default/locale # File generated by update-locale LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$
lsgx@DESKTOP-OS0DFSI:~$ cat ~/.vimrc " An example for a vimrc file. " " Maintainer: Bram Moolenaar <Bram@vim.org> " Last change: 2001 Jul 18 " " To use it, copy it to " for Unix and OS/2: ~/.vimrc " for Amiga: s:.vimrc " for MS-DOS and Win32: $VIM\_vimrc " for OpenVMS: sys$login:.vimrc """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 一般设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 设定默认解码 set guifont=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-iso10646-1 set bsdir=buffer set enc=utf-8 set fenc=utf-8 set fencs=utf-8,ucs-bom,gb2312,cp936,gbk,big5 set langmenu=zh_CN.UTF-8 set encoding=utf-8 set fileencoding=utf-8 set fileencodings=utf-8,ucs-bom,latin1,gb2312,gb18030,cp936,gbk,big5 set termencoding=utf-8 "设置颜色 colorscheme desert "set guifont=Nimbus\ Mono\ L\ 12 "set guifont=WenQuanYi\ Bitmap\ Song\ 12 "set guifont=Verdana\ 10 "set guifont=Courier\ 11 "set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 " 显示中文帮助 if version >= 603 set helplang=cn set encoding=utf-8 endif " Use Vim settings, rather then Vi settings (much better!). " This must be first, because it changes other options as a side effect. " 不要使用vi的键盘模式,而是vim自己的键盘模式 set nocompatible " history文件中需要记录的行数 set history=100 " 显示行号 set number " 在处理未保存或只读文件的时候,弹出确认 set confirm " 与windows共享剪贴板 set clipboard+=unnamed " 侦测文件类型 filetype on " 载入文件类型插件 filetype plugin on " 为特定文件类型载入相关缩进文件 filetype indent on " 保存全局变量 set viminfo+=! " 带有如下符号的单词不要被换行分割 set iskeyword+=_,$,@,%,#,- " 语法高亮显示 syntax on """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""高亮显示gtk关键字"""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" syntax keyword gtkType gint gshort guint gushort gulong gdouble gfloat gchar guchar gboolean gpointer highlight link gtkType Type " 高亮字符,让其不受100列限制 highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white match OverLength '\%101v.*' " 状态行颜色 highlight StatusLine guifg=SlateBlue guibg=Yellow highlight StatusLineNC guifg=Gray guibg=White """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文件设置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 不要备份文件(根据自己需要取舍) set nobackup " 不要生成swap文件,当buffer被丢弃的时候隐藏它 setlocal noswapfile set bufhidden=hide " 字符间插入的像素行数目 set linespace=0 " 增强模式中的命令行自动完成操作 set wildmenu " 在状态行上显示光标所在位置的行号和列号 set ruler set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%) " 输入的命令显示出来,看的清楚些 set showcmd " 命令行(在状态行下)的高度,默认为1,这里是2 set cmdheight=2 " 使回格键(backspace)正常处理indent, eol, start等 set backspace=indent,eol,start " 跨行移动 set whichwrap=b,s,<,>,[,] " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) "set mouse=a "set selection=exclusive "set selectmode=mouse,key " 启动的时候不显示那个援助乌干达儿童的提示 set shortmess=atI " 通过使用: commands命令,告诉我们文件的哪一行被改变过 set report=0 " 不让vim发出讨厌的滴滴声 set noerrorbells " 在被分割的窗口间显示空白,便于阅读 set fillchars=vert:\ ,stl:\ ,stlnc:\ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 搜索和匹配 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 高亮显示匹配的括号 set showmatch " 匹配括号高亮的时间(单位是十分之一秒) set matchtime=5 " 在搜索的时候忽略大小写 set ignorecase " 不要高亮被搜索的句子(phrases) set nohlsearch " 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索) set incsearch " 制表符可见 "set list " 输入:set list命令是应该显示些啥? set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ " 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff=3 " 不要闪烁 set novisualbell " 我的状态行显示的内容(包括文件类型和解码) set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} " 总是显示状态行 set laststatus=2 " 屏幕放不下时,按一次屏幕移动一个字符 set sidescroll=1 " 下面的滚动条开启 "slet g:netrw_winsize = 20et guioptions+=b """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文本格式和排版 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 自动格式化 set formatoptions=tcrqn " 继承前一行的缩进方式,特别适用于多行注释 set autoindent " 为C程序提供自动缩进 set smartindent " 使用C样式的缩进 set cindent " 制表符为4 set tabstop=4 " 统一缩进为4 set softtabstop=4 set shiftwidth=4 " 不要用空格代替制表符 set noexpandtab " 不要换行 set nowrap " 在行和段开始处使用制表符 set smarttab """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " CTags的设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 按照名称排序 let Tlist_Sort_Type = "name" " 在右侧显示窗口 let Tlist_Use_Right_Window = 1 " 压缩方式 let Tlist_Compart_Format = 1 " 如果只有一个buffer,kill窗口也kill掉buffer let Tlist_Exist_OnlyWindow = 1 " 不要关闭其他文件的tags let Tlist_File_Fold_Auto_Close = 0 " 不要显示折叠树 let Tlist_Enable_Fold_Column = 0 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 键盘命令 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "imap <C-P> <C-X><C-P> "imap <C-F> <C-X><C-F> "imap <C-I> <C-X><C-I> "imap <C-D> <C-X><C-D> "imap <C-L> <C-X><C-L> " 根据打开文件类型, 启用智能补全 set completeopt=longest,menu " p命令可以使用剪切板上的内容来替换选中的内容 vnoremap p <Esc>:let current_reg = @"<CR>gvs<C-R>=current_reg<CR><Esc> nmap <F2> :nohlsearch<CR> map <F3> :copen<CR>:grep -R map <F7> :w<CR><CR>:copen<CR>:make<CR><CR> imap <F7> <Esc>:w<CR><CR>:copen<CR>:make<CR><CR> map <F8> :cclose<CR> map <F9> :TlistToggle<CR> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 代码折叠编译运行按键命令 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示 if has("autocmd") autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o--> autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o/*<ESC>'>o*/ autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=78 autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim \ if line("'\"") > 0 && line("'\"") <= line("{1}quot;) | \ exe "normal g`\"" | \ endif endif " has("autocmd") " F5编译和运行C程序,F6编译和运行C++程序 " 请注意,下述代码在windows下使用会报错 " 需要去掉./这两个字符 " C的编译和运行 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" exec "!gcc % -o %<" exec "! ./%<" endfunc " C++的编译和运行 map <F6> :call CompileRunGpp()<CR> func! CompileRunGpp() exec "w" exec "!g++ % -o %<" exec "! ./%<" endfunc " 能够漂亮地显示.NFO文件 set encoding=utf-8 function! SetFileEncodings(encodings) let b:myfileencodingsbak=&fileencodings let &fileencodings=a:encodings endfunction function! RestoreFileEncodings() let &fileencodings=b:myfileencodingsbak unlet b:myfileencodingsbak endfunction au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single au BufReadPost *.nfo call RestoreFileEncodings() " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype txt " 用空格键来开关折叠 set foldenable "set foldmethod=manual set foldmethod=syntax set foldlevel=100 nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> " minibufexpl插件的一般设置 let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplMapWindowNavArrows = 1 let g:miniBufExplMapCTabSwitchBufs = 1 let g:miniBufExplModSelTarget = 1 "设置快捷方式 Set mapleader let mapleader = "," "快捷加载,当输入",ss"时,加载 .vimrc 文件 map <silent> <leader>ss :source ~/.vimrc<cr> "快速打开编辑 .vimrc配置文件--->",ee" map <silent> <leader>ee :e ~/.vimrc<cr> "快速保存文件--->",w" map <silent> <leader>w :w<cr> "快速保存并退出文件--->",w" map <silent> <leader>wq :wq<cr> "自动命令,每次写入.vimrc后,都会执行这个自动命令,source一次~/.vimrc autocmd! bufwritepost .vimrc source ~/.vimrc lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ cat ~/.tmux.conf # # author : lsgx <lsgxthink@gmail.com> # modified : 2013-11-12 # #-- base settings --# set -g default-terminal "screen-256color" # 设置终端缺省的支持颜色为256色 set -g display-time 3000 # 提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒 set -g escape-time 0 # 等待时间的持续时间;设置越小越好 set -g history-limit 65535 # 历史记录条数的最大限制值 #set -g base-index 1 # 窗口的初始序号;默认为0,这里设置为1 #set -g pane-base-index 1 # 面板的初始序号;默认为0,这里设置为1 #set -sg repeat-time 600 # 控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒 #set -s quiet on #setw -g xterm-keys on #-- bindkeys --# # prefix key (Ctrl+a) # 将激活控制台的快捷键由Ctrl+b修改为Ctrl+a set -g prefix ^a unbind ^b bind a send-prefix # split window # 窗口分割 unbind '"' bind - splitw -v # vertical split (prefix -) # 上下分割窗口 unbind % bind | splitw -h # horizontal split (prefix |) # 左右分割窗口 # select pane # 选择面板 bind k selectp -U # above (prefix k) # 选择上面板 bind j selectp -D # below (prefix j) # 选择下面板 bind h selectp -L # left (prefix h) # 选择左面板 bind l selectp -R # right (prefix l) # 选择右面板 # resize pane bind -r ^k resizep -U 2 # upward (prefix Ctrl+k) # 当前面板上移2 bind -r ^j resizep -D 2 # downward (prefix Ctrl+j) # 当前面板下移2 bind -r ^h resizep -L 2 # to the left (prefix Ctrl+h) # 当前面板左移2 bind -r ^l resizep -R 2 # to the right (prefix Ctrl+l) # 当前面板右移2 # swap pane bind ^u swapp -U # swap with the previous pane (prefix Ctrl+u) # 与上面板交换 bind ^d swapp -D # swap with the next pane (prefix Ctrl+d) # 与下面板交换 # create new session bind C-c new-session # 创建一个新的会话 # control sessions bind z kill-session # 结束一个会话 # find session bind C-f command-prompt -p find-session 'switch-client -t %%' # 查找会话 # clear both screen and history #bind -n C-l send-keys C-l \; run 'tmux clear-history' # 清空屏幕内容和历史记录 # reload config (prefix r) bind r source ~/.tmux.conf \; display "Configuration reloaded!" # 重新加载配置文件 # misc bind e lastp # select the last pane (prefix e) # 选择最后一个面板 bind ^e last # select the last window (prefix Ctrl+e) # 选择最后一个窗口 bind q killp # kill pane (prefix q) # 关闭当前面板 bind ^q killw # kill window (prefix Ctrl+q) # 关闭当前窗口 # app bind ! splitw htop # htop (prefix !) bind m command-prompt "splitw 'exec man %%'" # man (prefix m) bind @ command-prompt "splitw 'exec perldoc -t -f %%'" # perl func (prefix @) bind * command-prompt "splitw 'exec perldoc -t -v %%'" # perl var (prefix *) bind % command-prompt "splitw 'exec perldoc -t %%'" # perl doc (prefix %) bind / command-prompt "splitw 'exec ri %%'" # ruby doc (prefix /) #-- statusbar --# #set -g status-utf8 on # 开启状态栏的UTF-8支持 set -g status-interval 1 # 状态栏的分辨时间间隔 set -g status-keys vi # 操作状态栏时的默认键盘布局;可以设置为vi或emacs set -g visual-activity on # 开启窗口操作的可视 set -g set-clipboard on # 开启剪切板 set -g display-panes-time 800 # slightly longer pane indicators display time # 稍长的窗格中显示的时间指标 set -g display-time 1000 # slightly longer status messages display time # 稍长的状态消息的显示时间 set -g renumber-windows on # renumber windows when a window is closed # 关闭窗口后重新编号 setw -g automatic-rename on # rename window to reflect current program # 重命名窗口,以反映当前的程序 #setw -g utf8 on # 开启窗口的UTF-8支持 setw -g monitor-activity on # 开启窗口活动监视 setw -g mode-keys vi # 复制模式中的默认键盘布局;可以设置为vi或emacs setw -g clock-mode-style 24 # 24 hour clock # 24小时显示方式 #setw -g mode-mouse on # 开启鼠标模式 # copy mode bind Enter copy-mode # enter copy mode # 按Enter进入复制模式 bind b list-buffers # list paster buffers # 复制缓冲区列表 bind p paste-buffer # paste from the top pate buffer # 粘贴最后复制的缓冲区内容 bind P choose-buffer # choose which buffer to paste from # 选择粘贴缓冲区 # the following vi-copy bindings match my vim settings # see https://github.com/gpakosz/.vim.git #bind -t vi-copy v begin-selection # 复制模式下开始选取 #bind -t vi-copy C-v rectangle-toggle # 复制模式下矩形选取 #bind -t vi-copy y copy-selection # 复制模式下复制选取的内容 #bind -t vi-copy Escape cancel # 复制模式下退出复制模式 #bind -t vi-copy H start-of-line # 复制模式下开始行选取 #bind -t vi-copy L end-of-line # 复制模式下结束行选取 # mouse resize selcet #setw -g mouse-resize-pane on # 鼠标调整面板大小 #setw -g mouse-select-pane on # 鼠标选择面板 #setw -g mouse-select-window on # 鼠标选择窗口 # move x clipboard into tmux paste buffer bind C-p run "tmux set-buffer \"$(xclip -o -sel clipbaord)\"; tmux paste-buffer" # move tmux copy buffer into x clipboard bind C-y run "tmux show-buffer | xclip -i -sel clipbaord" #-- colorscheme --# # see also: https://github.com/daethorian/conf-tmux/blob/master/colors/zenburn.conf # modes setw -g clock-mode-colour colour223 setw -g mode-attr bold setw -g mode-fg colour223 setw -g mode-bg colour235 # panes set -g pane-border-bg colour234 set -g pane-border-fg colour234 set -g pane-active-border-bg colour232 set -g pane-active-border-fg colour232 # statusbar set -g status-justify centre set -g status-bg colour235 set -g status-fg colour248 set -g status-attr dim set -g status-left "#[fg=green,bright]Session: #S #[fg=yellow,bright]Window: #I #[fg=cyan,bright]Pane: #P" set -g status-left-attr bright set -g status-left-length 30 set -g status-right "#[fg=yellow,bright][ #[fg=cyan,bright]#W #[fg=yellow,bright]]#[default] #[fg=yellow,bright]- %Y.%m.%d #[fg=green,bright]%H:%M #[default]" set -g status-right-attr bright set-option -g status-right-length 30 setw -g window-status-current-fg colour223 setw -g window-status-current-bg colour237 setw -g window-status-current-attr bold #setw -g window-status-current-format "#I:#W#F" #setw -g window-status-alert-attr bold #setw -g window-status-alert-fg colour255 #setw -g window-status-alert-bg colour160 # messages set -g message-attr bold set -g message-fg colour223 set -g message-bg colour235 lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$ cat ~/.Xresources !------------------------------------------ ! XTerm !------------------------------------------ XTerm*termName: xterm-color XTerm*visualBell: false XTerm*marginBell: false XTerm*alwaysHighlight: false XTerm*cursorBlink: true XTerm*cursorOffTime: 450 XTerm*cursorOnTime: 900 XTerm*highlightSelection: true XTerm*saveLines: 8192 XTerm*foreground: rgb:a8/a8/a8 XTerm*background: rgb:00/00/00 XTerm*color0: rgb:00/00/00 XTerm*color1: rgb:a8/00/00 XTerm*color2: rgb:00/a8/00 XTerm*color3: rgb:a8/54/00 XTerm*color4: rgb:00/00/a8 XTerm*color5: rgb:a8/00/a8 XTerm*color6: rgb:00/a8/a8 XTerm*color7: rgb:a8/a8/a8 XTerm*color8: rgb:54/54/54 XTerm*color9: rgb:fc/54/54 XTerm*color10: rgb:54/fc/54 XTerm*color11: rgb:fc/fc/54 XTerm*color12: rgb:54/54/fc XTerm*color13: rgb:fc/54/fc XTerm*color14: rgb:54/fc/fc XTerm*color15: rgb:fc/fc/fc XTerm*scrollBar: true XTerm*rightScrollBar: true XTerm*scrollKey: false XTerm*scrollTtyOutput: false XTerm*loginShell: false XTerm*locale: true XTerm*eightBitInput: false XTerm*eightBitOutput: true XTerm*metaSendEscape: true XTerm*faceName: Bitstream Vera Sans Mono XTerm*faceSize: 14 XTerm*faceNameDoublesize: WenQuanYi Bitmap Song XTerm*mkWidth: false XTerm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48 lsgx@DESKTOP-OS0DFSI:~$ lsgx@DESKTOP-OS0DFSI:~$
sudo passwd root cd /etc/apt/ sudo vi sources.list sudo nano sources.list sudo apt-get update sudo apt-get install aptitude sudo aptitude purge openssh-server openssh-sftp-server sudo aptitude install openssh-server openssh-sftp-server sudo vi /etc/ssh/sshd_config sudo nano /etc/ssh/sshd_config sudo service ssh --full-restart sudo aptitude install supervisor sudo vi /etc/init.wsl sudo chmod +x /etc/init.wsl sudo vi /etc/sudoers sudo aptitude install lynx tree curl wget htop net-tools bash bash-completion xterm tmux p7zip-full dmidecode pciutils psmisc v86d hwinfo lshw smartmontools build-essential gdb gdb-doc cgdb perl perl-doc guile-2.2 guile-2.2-libs guile-2.2-doc chezscheme expect autoconf automake libtool libtool-bin libtool-doc cmake cmake-curses-gui cmake-doc git git-doc unzip ethtool binwalk hexedit xxd subversion subversion-tools fakeroot valgrind bison flex flex-doc swig libncurses5-dev libssl-dev libiconv-hook-dev dpkg-dev sudo aptitude install liblz4-tool bochs bochs-x bochs-sdl bochsbios bximage vgabios build-essential xorg-dev libgtk2.0-dev bison qemu-system-x86 qemu-utils qemu-system-arm qemu-efi qemu-efi-aarch64 qemu-efi-arm libvirt-clients libvirt-daemon-system virt-manager git dpkg-dev sudo adduser lsgx kvm sudo adduser root kvm sudo adduser lsgx libvirt sudo adduser root libvirt sudo adduser root libvirt-qemu sudo adduser lsgx libvirt-qemu sudo aptitude install nginx php php-dev php-fpm php-mbstring php-gd php-curl php-json php-apcu php-cli
sudo aptitude install qt5-default qt5-doc-html qt5-doc qtcreator qtcreator-doc
sudo aptitude install subversion mercurial mg mruby lua5.3
sudo aptitude install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync
sudo aptitude install open-vm-tools open-vm-tools-desktop
sudo aptitude install ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
================== End
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南