基于 CentOS 7
让Linux系统与Windows系统之间,支持机器名访问,需要Linux安装NetBIOS。 而安装NetBIOS,不一定必须安装Samba,安装过程如下:
# 注意 这里并不会安装完整的samba
$ yum install samba-winbind
; Nano /etc/nsswitch.conf
; add wins
hosts: files <wins> dns myhostname
$ ll /etc/<lib|lib64>/libnss_winbind.so
$ ldconfig
$ systemctl start winbind
$ systemctl status winbind
; ~/.tmux.conf
# 启动鼠标支持
set -g mouse on
set -g mode-keys vi
# WindTerm需在 会话 --> 首选项 --> 设置 --> 终端 --> 鼠标追踪 --> 追踪事件
# 取消勾选:
# - 移动事件
# - 点击事件
# - 右键单击事件
# WindTerm使用鼠标修改面板大小,受WindTerm限制无法实现
# 禁用 WindTerm 的默认鼠标行为(防止冲突)
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# 1. 禁用左键释放自动复制(改为仅选择)
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection-and-cancel
# 2. 右键复制已选文本(需先左键选择)
bind -T copy-mode-vi MouseDown3Pane send-keys -X copy-pipe-and-cancel \
"xclip -i -selection clipboard 2>/dev/null || \
pbpaste 2>/dev/null || \
win32yank.exe -i 2>/dev/null"
# 3. 右键直接粘贴系统剪贴板内容(跨系统支持)
bind -n MouseDown3Pane run-shell \
"tmux set-buffer -- \"$(xclip -o -selection clipboard 2>/dev/null || \
pbpaste 2>/dev/null || \
win32yank.exe -o 2>/dev/null)\"; \
tmux paste-buffer"
# 解除默认的鼠标调整绑定(可选)
unbind-key -T root MouseDrag1Border
# 重新绑定鼠标拖动调整大小
bind -n MouseDrag1Border resize-pane -M
# status line
set -g status-justify centre
set -g status-left "#{session_name}"
set -g status-right "%F %R"
# 窗口编号自动重新排序
set -g renumber-windows on
# status line > window list
set -g window-status-format "#{window_index}:#{window_name}"
set -g window-status-separator " | "
set -g window-status-current-format "#{window_index}:#{window_name}"
set -g window-status-current-style bold,italics
# pane
set -g pane-border-format " #{pane_index}:#{pane_title} $ #{pane_current_command} "
set -g pane-border-status top
set -g history-limit 10000
# 更新配置,不需要关闭tmux,直接运行马上生效
tmux source-file ~/.tmux.conf
Prefix = Ctrl + b
Proxmox VE 官方提供的 Centos 7 模板是有问题的无法正常使用,现在给出解决方案。
安装完成后,容器可以启动,但无法关闭、网络无法使用、控制台无法使用,这些都是我们要解决的问题。
# 查看 CT 容器列表
$ pct list
# 进入 CT 容器
$ pct enter <VMID>
# 启动网络,从DHCP拿IP地址
$ ifup eth0
$ curl -o /etc/yum.repos.d/jsynacek-systemd-backports-for-centos-7-epel-7.repo https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/repo/epel-7/jsynacek-systemd-backports-for-centos-7-epel-7.repo
$ yum update
# 安装 sshd
$ yum install -y openssh-server
$ systemctl start sshd.service
$ systemctl enable sshd.service
$ exit
$ pct stop <VMID>
NcFTP 是 Linux 上常用的 FTP客户端工具,非常好用,这里记录它的常见用法。
FTP浏览工具
$ ncftp
# 一定注意参数顺序
ncftp > open -u <username> -p <password> <remote-host>
# 使用被动模式传输
ncftp > set passive yes
ncftp > put <local-files>
FTP上传命令行工具
# 一定注意参数顺序
# 使用被动模式传输
$ ncftpput -u <username> -p <password> -F <remote-host> <remote-path> <local-files>
# or
$ ncftpput -f ftp.cfg -F <remote-path> <local-files>
; ftp.cfg
host ftp.server.com
user myusername
pass mypasswd
$ yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
# 安装服务端包
$ yum install postgresql10-server postgresql10
# 初始化数据库,设置自启动
$ /usr/pgsql-10/bin/postgresql-10-setup initdb
$ systemctl enable postgresql-10
$ systemctl start postgresql-10
# 设置防火墙规则
$ iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT #开放Postgresql 5432端口
$ service iptables save # 保存防火墙规则
# 切换至用户
$ su - postgres
; ./10/data/postgres.conf
- #listen_address
+ listen_address
; ./10/data/pg_hba.conf
; 允许所有IPv4地址
+ host all all 0.0.0.0/0 scram-sha-256
$ psql -U postgres
-- 设置数据运行参数
ALTER SYSTEM SET listen_addresses = '*';
ALTER SYSTEM SET port = 5432;
ALTER SYSTEM SET password_encryption = 'scram-sha-256';
-- 修改默认用户密码
ALTER USER postgres with encrypted password '你的密码';
-- 退出数据库
\q
-- 退出用户
exit
systemctl restart postgresql-10
$ docker pull composer:1.9.0
# 启动Composer镜像
$ docker run --rm \
-it \
-v ${PWD}:/app \
composer:1.9.0 /bin/bash
# 创建composer.json文件
$ composer init -n
# 使用国内 Packagist镜像
$ composer config repo.packagist composer https://mirrors.aliyun.com/composer/
# 添加laravel包
$ composer require -vvv \
--prefer-dist \
--prefer-stable \
laravel/installer
# 看到以下输出,说明添加成功。
Writing lock file
Generating autoload files
# 在当前目录覆盖安装laravel
$ ./vendor/bin/laravel new
# 看到以下输出,说明安装成功。
Package manifest generated successfully.
Application ready! Build something amazing.
# 退出Composer镜像
$ exit
将当前目录下的storage目录权限,设为757
因为阿里的弹性WEB托管,使用php 5.5.30版本,所以只能安装Laravel 5.2版本。
本教程使用WSL + docker环境安装,除完整的laravel环境外,不会在本地留下任何痕迹。
$ docker pull composer:1.9.0
# 启动Composer镜像
$ docker run --rm \
-it \
-v ${PWD}:/app \
composer:1.9.0 /bin/bash
# 使用国内 Packagist镜像
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
$ composer create-project -vvv \
--prefer-dist \
--no-scripts \
--keep-vcs \
laravel/laravel:5.2.31 \
YSME
# 看到以下输出,说明安装完成。
Writing lock file
Generating autoload files
# 退出Composer镜像
$ exit
copy YSME目录下的全部内容,到虚拟主机的目录下即可。
访问 http://你的域名/YSME/public/ 如果显示 Laravel 5 字样,说明安装成功!
使用snap 的过程中经常遇到无法链接的情况。
$ sudo snap install code --classic
error: unable to contact snap store
这是因为SnapCraft将软件包放在自己的海外服务器上,因为众所周知的原因,访问速度异常缓慢,不加代理的情况下,基本无法使用。
Linux上的一些应用程序会通过读取环境变量 http_proxy 和 https_proxy 来应用代理服务器设置,典型的有Chrome。
然而,Snap比较特别,它不会从环境变量中上述环境变量中读取代理服务器设置,因此直接使用
export http_proxy=[代理服务器地址]
export https_proxy=[代理服务器地址]
是不起作用的。
网上有一些修改配置文件的方法,个人觉得很麻烦,也容易出错,所以选了最简单可靠的命令行模式。
$ sudo snap set system proxy.https="http://代理服务器地址:代理端口"
$ sudo snap set system proxy.http="http://代理服务器地址:代理端口"
Rime/中州韵 输入法是一个跨平台的输入引擎,非常强大优秀。 它在不同的平台有不同的名字:
东风破 (plum) 是为Rime用户设计的,用于安装和更新Rime开发者维护的默认配置和数据包集合。
输入法设定>获取更多输入方案>在打开的命令行窗口# weasel.custom.yaml
patch:
# P站风格配色主题
"style/color_scheme": "Pornhub"
"preset_color_schemes/Pornhub":
author: "周庸生"
back_color: 0x000000
border_color: 0x000000
candidate_text_color: 0xffffff
comment_text_color: 0xffffff
hilited_back_color: 0x009bff
hilited_candidate_back_color: 0x009bff
hilited_candidate_text_color: 0x000000
hilited_comment_text_color: 0x000000
hilited_lable_color: 0x000000
hilited_text_color: 0x000000
label_color: 0xffffff
name: Pornhub
text_color: 0xffffff
killall ibus-daemon \
&& apt remove ibus \
&& apt update \
&& apt install -y fcitx5 fcitx5-config-qt fcitx5-chinese-addons fcitx5-rime fcitx5-material-color
# 因为fcitx5-rime是fcitx5团队代为开发的,所以要指定第三方Rime发行版本
# 注意:此命令会默认配置所有预设置项
curl -fsSL https://raw.githubusercontent.com/rime/plum/master/rime-install | rime_frontend=fcitx5-rime bash
# 更新 plum
rime_frontend=fcitx5-rime bash rime-install plum
cd ~/plum/
rime_frontend=fcitx5-rime bash rime-install wubi pinyin-simp
# 也可以直接安装输入法,不配置预设置项
curl -fsSL https://raw.githubusercontent.com/rime/plum/master/rime-install | rime_frontend=fcitx5-rime bash -s -- wubi pinyin-simp
# ~/.local/share/fcitx5/rime/default.custom.yaml
patch:
schema_list:
- schema: wubi_pinyin # 只保留五笔拼音混合输入法
"ascii_composer/switch_key/Shift_L": noop # 关闭左右Shift切换,居然操作麻烦,但可以解决按键冲突的问题
"ascii_composer/switch_key/Shift_R": noop
可惜Linux版本无法配置自定义样式
> DISM /Online /Add-Capability /CapabilityName:Windows.Client.ShellComponents~~~~0.0.1.0
# 查看所有预装应用
> Get-AppxPackage | Select Name, PackageFullName
# 移除指定应用(例如 Xbox)
> Get-AppxPackage *xbox* | Remove-AppxPackage
# 移除所有用户的应用(加 -AllUsers)
> Get-AppxPackage -AllUsers *Microsoft.YourPhone* | Remove-AppxPackage -AllUsers
# 彻底禁用自动安装(防止更新后恢复)
> Set-Content -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Value 1 -Type DWord
Set-Alias -name ll -value Get-ChildItem -Force