分类:技术
-
使用 go 命令升级至 go1.9beta2
从 go1.9beta2 运行 go 命令。
若要安装 go1.9beta2,请运行:
$ go get golang.org/x/build/version/go1.9beta2 $ go1.9beta2 download
-
升级 Windown 10 内置 Ubuntu 子系统
查看当前版本
打开命令提示符,输入
bash
,然后输入lsb_release -a
更换阿里云源
vim /etc/apt/sources.list
内容替换为
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
$ aptitude update $ aptitude safe-upgrade -y # 注1:升级过程中会提示你重启服务(restart services),选yes # 注2:还会出现文件冲突,保留当前版本(current version)即可,输入N
把所有包升级至 16.04 (xenial) 的最新版,并重装丢失的aptitude包,最后清理无用包
$ apt-get dist-upgrade $ apt-get install aptitude $ apt-get autoremove
lxrun 使用方法
对 LX 子系统执行管理操作 用法: /install - 安装子系统 可选参数: /y - 不提示用户接受 /uninstall - 卸载子系统 可选参数: /full - 执行完全卸载 /y - 不提示用户接受 /setdefaultuser - 配置将用于启动 bash 的子系统用户。如果该用户不存在,则会创建该用户。 可选参数: username - 提供用户名 /y - 如果提供了用户名,则不提示创建密码 /update - 更新子系统的包索引
卸载旧版本
打开命令提示符
C:\WINDOWS\system32>lxrun /uninstall /full /y 这将在 Windows 中卸载 Ubuntu。 这将删除 Ubuntu 环境以及任何修改、新应用程序和用户数据。 正在卸载...
安装新版本
打开命令提示符
C:\WINDOWS\system32>lxrun /install -- Beta 版功能 -- 这将在 Windows 上安装由 Canonical 分发的 Ubuntu, 根据其条款的授权参见此链接: https://aka.ms/uowterms 键入“y”继续: y 正在从 Windows 应用商店下载... 100% 正在提取文件系统,这将需要几分钟的时间... 请创建默认的 UNIX 用户帐户。该用户名不需要与 Windows 用户名匹配。 有关详细信息,请访问: https://aka.ms/wslusers 请输入新的 UNIX 用户名: root 找到 UNIX 用户: root 安装成功!
不卸载直接升级Ubuntu 14.04:
sudo do-release-upgrade
微软和Canonical官方均不推荐使用该方法,如果你要使用请参考:Ubuntu 16.04 安装指南。
-
CentOS 安装 PHP7
yum --enablerepo=remi-php70 install php-opcache php-mbstring php-mysql php-gd php-xml php-json php-devel php-pear ImageMagick-devel
-
Windows 10 Linux 子系统安装 php 环境
准备必要的源
sudo add-apt-repository ppa:ondrej/php sudo add-apt-repository ppa:jonathonf/vim sudo apt update sudo apt upgrade
安装必备软件
apt-get install zsh
apt-get install php5 php5-mysql php5-gd php5-curl php5-cli mysql-server apache2 silversearcher-ag make
安装 vim
sudo apt install vim // 卸载方法 apt remove vim add-apt-repository --remove ppa:jonathonf/vim
安装 tmux
apt-get install libevent-dev apt-get install ncurses-dev wget https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz tar xzvf tmux-2.3.tar.gz ./configure && make mv tmux /usr/bin/
修改 ~/.minttyrc
Locale=zh_CN Charset=UTF-8 Font=DejaVu Sans Mono for Powerline Term=xterm-256color RightClickAction=paste CursorType=block ClicksTargetApp=no BoldAsFont=no BoldAsColour=no CopyAsRTF=no Scrollbar=none ForegroundColour=131,148,150 BackgroundColour=0,43,54 CursorColour=220,50,47 Black=7,54,66 BoldBlack=0,43,54 Red=220,50,47 BoldRed=203,75,22 Green=133,153,0 BoldGreen=88,110,117 Yellow=181,137,0 BoldYellow=101,123,131 Blue=38,139,210 BoldBlue=131,148,150 Magenta=211,54,130 BoldMagenta=108,113,196 Cyan=42,161,152 BoldCyan=147,161,161 White=238,232,213 BoldWhite=253,246,227 FontWeight=400
.tmux.conf
# 设置默认shell和terminal set -g default-shell /usr/bin/zsh set -g default-terminal "screen-256color" # 支持自动更新标题 setw -g automatic-rename on set -g set-titles on set -g set-titles-string 'Tmux - #S:#W' # 滚动时使用vi模式 setw -g mode-keys vi # 设置窗口和面板索引 set -g base-index 1 set -g pane-base-index 1 # 打开鼠标模式 set -g mouse on # 选择 pane bind-key k select-pane -U bind-key j select-pane -D bind-key h select-pane -L bind-key l select-pane -R # 扩展 pane bind H resize-pane -L 10 bind L resize-pane -R 10 bind K resize-pane -U 5 bind J resize-pane -D 5 # 复制模式 bind-key -t vi-copy 'v' begin-selection bind-key -t vi-copy 'C-v' rectangle-toggle bind-key -t vi-copy 'y' copy-selection # 状态条定制 set -g status-left-length 30 set -g status-right-length 100 set -g status-fg white set -g status-bg colour234 set -g window-status-activity-attr bold set -g pane-border-fg colour245 set -g pane-active-border-fg colour39 set -g message-fg colour16 set -g message-bg colour221 set -g message-attr bold set -g status-left '#[fg=colour235,bg=colour252,bold] ❐ #S #[fg=colour252,bg=colour238,nobold]#[fg=colour245,bg=colour238,bold] #(whoami) #[fg=colour238,bg=colour234,nobold]' set -g window-status-format "#[fg=colour234,bg=colour238]#[fg=colour245,bg=colour238,bold] #I #W#F #[fg=colour238,bg=colour234,nobold]" set -g window-status-current-format "#[fg=colour234,bg=colour39]#[fg=colour25,bg=colour39,noreverse,bold] #I #W#F #[fg=colour39,bg=colour234,nobold]" set -g status-right '#T %F %A %H:%M ' set -g window-status-separator ''
-
使用 unoconv 将 PPT 转换成 PDF
-
Composer 安装时报错 "Internal Error [ERR_INVALID], exit code 0"
修改
php.ini
extension_dir = "\xampp\php\ext"
改为
extension_dir = "D:\xampp\php\ext"
browscap = "\xampp\php\extras\browscap.ini"
改为
browscap = "D:\xampp\php\extras\browscap.ini"
-
CentOS 7 搭建 IPSec/IKEv2 VPN 服务器
GitHub 地址
https://github.com/jiangxi14520/one-key-ikev2-vpn
wget --no-check-certificate https://raw.githubusercontent.com/quericy/one-key-ikev2-vpn/master/one-key-ikev2.sh
chmod +x one-key-ikev2.sh bash one-key-ikev2.sh
如果使用 firewalld
vim /etc/firewalld/zones/public.xml
执行以下命令
firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="esp" accept' # ESP (the encrypted data packets) firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="ah" accept' # AH (authenticated headers) firewall-cmd --zone=dmz --permanent --add-port=500/udp #IKE (security associations) firewall-cmd --zone=dmz --permanent --add-port=4500/udp # IKE NAT Traversal (IPsec between natted devices) firewall-cmd --permanent --add-service="ipsec" firewall-cmd --zone=dmz --permanent --add-masquerade firewall-cmd --permanent --set-default-zone=dmz firewall-cmd --reload firewall-cmd --list-all
vim /etc/sysctl.conf
添加以下内容:
# VPN net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
使之生效:
sysctl -p
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <port protocol="tcp" port="80"/> <port protocol="udp" port="500"/> <port protocol="tcp" port="500"/> <port protocol="udp" port="4500"/> <port protocol="udp" port="1701"/> <port protocol="tcp" port="1723"/> <masquerade/> </zone>
Mac 上配置
进入钥匙串管理,选择登录,然后将证书拖进去。
不被信任解决方法,右键->属性,选择总是被信任
-
iTerm2 安装 oh-my-zsh 和 power-line
pip install powerline-status --user -U
隐藏用户名和主机名 加到
ZSH_THEME="agnoster" DEFAULT_USER="$USER"
-
HTTP 协议常见错误代码
-
乐观锁和悲观锁
乐观锁和悲观锁是两种并发控制策略,用于解决多线程或多进程访问同一资源时的数据一致性问题。
乐观锁
- 概念:假设数据很少被修改,因此不会在数据访问前加锁。
- 机制:读取数据时不加锁,更新时检查数据是否被修改(通常通过版本号或时间戳)。如果数据没有变化,则提交修改;否则,操作失败,需要重试。
- 适用场景:适合读多写少的场景,避免因频繁加锁导致的性能问题。
悲观锁
- 概念:假设数据会被频繁修改,因此在访问前加锁。
- 机制:读取或修改数据时加锁,确保同一时间只有一个事务可以操作数据。其他尝试获取锁的事务会被阻塞,直到锁被释放。
- 适用场景:适合写多读少的场景,需要严格控制数据一致性。
例子
- 乐观锁:电商网站的库存管理系统,用户读取商品信息时不加锁,提交订单时检查库存是否改变。
- 悲观锁:银行转账系统,在进行账户余额更新时加锁,以确保数据一致性。
选择使用哪种锁策略取决于系统的读写比例和对并发的要求。
文章归档
2024 年 10 月
2
2024 年 09 月
2
2024 年 07 月
1
2024 年 06 月
1
2024 年 04 月
1
2024 年 03 月
1
2024 年 01 月
2
2023 年 11 月
2
2023 年 10 月
1
2023 年 08 月
1
文章日历
2024 年 11 月 | ||||||
---|---|---|---|---|---|---|
日 | 一 | 二 | 三 | 四 | 五 | 六 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08 | 09 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
文章标签
- Linux
- Go
- Yii
- 新浪
- CentOS
- PHP
- Git
- WSL
- Composer
- Mac
- 入职
- Bootstrap
- China
- UCenter
- 厦门
- 出差
- 长沙
- 湖南卫视
- 微博
- Tengine
- YUI
- 泰国
- pecl
- 优化
- GitLab
- 迁移
- rootless
- 年会
- 生日
- Tengin
- RedHat
- Sphinx
- cygwin
- Windows
- Tmux
- Zsh
- 升级
- MySQL
- sql_mode
- Shadowsockets
- 面向对象
- HTTP
- 状态码
- grep
- unoconv
- PPT
- Nginx
- htpasswd
- golang