menu Chancel's Blog
rss_feed lightbulb_outline

我的笔记

Windows - 快速切换IP设置的BAT脚本

IP切换脚本,修改其中的2个IP配置即可

ip切换脚本下载地址 - Chancel's Cloudreve

::关闭回显
@echo off
title 快速切换IP设置

::设置背景颜色
setlocal EnableDelayedExpansion&color 3e & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas

:: -------- 更改以下2个IP配置以及网卡名称(网卡名称如本地连接) ---------
set net_interface=本地连接 3
::公司网段
set name1=公司网段
set ip1=192.168.4.16
set mask1=255.255.240.0
set gateway1=192.168.3.1
set dns1_1=223.5.5.5
set dns1_2=192.168.3.1
::科学网段
set name2=科学网段
set ip2=192.168.4.16
set mask2=255.255.240.0
set gateway2=192.168.4.93
set dns2_1=192.168.4.93
set dns2_2=223.5.5.5
:: -------------------------------------------------------

:CHOICE
cls
echo.
echo                        IP快速切换脚本
echo.
echo --------------------------------------------------------------------------------                                                        
echo             1. 修改为%name1%%ip1%/%gateway1%echo             2. 修改为%name2%%ip2%/%gateway2%echo             3. 修改为自动获取
echo             4. 重启网卡
echo.
echo --------------------------------------------------------------------------------

:mu
set /p choice= 请输入:
IF NOT "%choice%"=="" SET choice=%choice:~0,1%
if /i "%choice%"=="1" goto ip1
if /i "%choice%"=="2" goto ip2
if /i "%choice%"=="3" goto dhcp
if /i "%choice%"=="4" goto reboot
echo.
echo.
echo 输入的选择不正确,请重新输入!
echo.
echo.
GOTO CHOICE

::设置IP-1
:ip1
echo.
echo  -----------%name1%-----------
echo       ip:  %ip1%
echo     mask:  %mask1%
echo gateway1:  %gateway1%
echo     dns1:  %dns1_1%
echo     dns2:  %dns1_2%
::设置IP/网关/子网掩码
cmd /c netsh interface ip set address "%net_interface%" source=static addr=%ip1% mask=%mask1% gateway=%gateway1%
::设置DNS
cmd /c netsh interface ip set dnsservers "%net_interface%" static %dns1_1% validate=no
cmd /c netsh interface ip add dnsservers "%net_interface%" %dns1_2% index=2 validate=no
ipconfig /flushdns
echo 设置完成
pause | echo 按任意健退出程序
exit /b
:END

::设置IP-2
:ip2
echo.
echo  -----------%name2%-----------
echo       ip:  %ip2%
echo     mask:  %mask2%
echo gateway1:  %gateway2%
echo     dns1:  %dns2_1%
echo     dns2:  %dns2_2%
::设置IP/网关/子网掩码
cmd /c netsh interface ip set address "%net_interface%" source=static addr=%ip2% mask=%mask1% gateway=%gateway2%
::设置DNS
cmd /c netsh interface ip set dnsservers "%net_interface%" static %dns2_1% validate=no
cmd /c netsh interface ip add dnsservers "%net_interface%" %dns2_2% index=2 validate=no
ipconfig /flushdns
echo 设置完成
pause | echo 按任意健退出程序
exit /b
:END

::设置dhcp
:dhcp
echo.
echo  ---设置ip/dns为自动获取---
cmd /c netsh interface ip set address name="%net_interface%" source=dhcp
cmd /c netsh interface ip set dns "%net_interface%" source=dhcp
echo 设置完成
pause | echo 按任意健退出程序
exit /b
:END

:reboot
::重启网卡
cmd /c netsh interface set interface "%net_interface%" disabled
cmd /c netsh interface set interface "%net_interface%" enable
echo 重启网卡完成
pause | echo 按任意健退出程序
exit /b
:END

Operating System Windows 2021-04-27 08:14:31 location_on

Windows Office 2016 - 激活脚本

脚本下载

Windows Office2016 企业管理激活脚本

@ECHO OFF&PUSHD %~DP0

setlocal EnableDelayedExpansion&color 3e & cd /d "%~dp0"
title office2016 企业管理激活

%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas

if exist "%ProgramFiles%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office16"
if exist "%ProgramFiles(x86)%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office16"

echo.
echo                        Office2016版本激活
echo.
echo --------------------------------------------------------------------------------                                                        
echo      脚本用于企业管理激活,请勿用于盗版用途
echo. --------------------------------------------------------------------------------

set /p serverUrl=请输入激活服务器地址:

cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
cscript ospp.vbs /sethst:%serverUrl%
cscript ospp.vbs /act
PAUSE

如果是PLUS版本可能需要转换为VOL版本

@ECHO OFF&PUSHD %~DP0

setlocal EnableDelayedExpansion&color 3e & cd /d "%~dp0"
title office2016 retail转换vol版

%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas

if exist "%ProgramFiles%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office16"
if exist "%ProgramFiles(x86)%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office16"

:WH
cls
echo.
echo                        选择需要转化的office版本序号
echo.
echo --------------------------------------------------------------------------------                                                        
echo                1. 零售版 Office Pro Plus 2016 转化为VOL版
echo.
echo                2. 零售版 Office Visio Pro 2016 转化为VOL版
echo.
echo                3. 零售版 Office Project Pro 2016 转化为VOL版
echo.
echo. --------------------------------------------------------------------------------

set /p tsk="请输入需要转化的office版本序号【回车】确认(1-3): "
if not defined tsk goto:err
if %tsk%==1 goto:1
if %tsk%==2 goto:2
if %tsk%==3 goto:3

:err
goto:WH

:1
cls

echo 重置Office2016零售版本
cscript ospp.vbs /rearm

echo 重置Office2016许可证
for /f %%x in ('dir /b ..\root\Licenses16\proplusvl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\proplusvl_mak*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul

echo 重新设置Office2016零售版本
cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99

echo 转换完成,按任意键退出
PAUSE

exit /b

:2
cls

echo 重置Visio2016零售版本
cscript ospp.vbs /rearm

echo 重置Visio许可证信息
for /f %%x in ('dir /b ..\root\Licenses16\visio???vl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\visio???vl_mak*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul

echo 安装Visio2016新密钥
cscript ospp.vbs /inpkey:PD3PC-RHNGV-FXJ29-8JK7D-RJRJK

echo 转换完成,按任意键退出
PAUSE

exit /b
:3
cls

echo 重置Project2016零售版本
cscript ospp.vbs /rearm

echo 重置Project2016许可证信息
for /f %%x in ('dir /b ..\root\Licenses16\project???vl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\project???vl_mak*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul

echo 安装Project2016的新密钥
cscript ospp.vbs /inpkey:YG9NW-3K39V-2T3HJ-93F3Q-G83KT

echo 转换完成,按任意键退出
PAUSE

exit /b

Operating System Windows 2021-04-26 07:32:47 location_on

Windows10 - BAT激活脚本

脚本分享下载

Windows企业管理激活脚本

@ECHO OFF&PUSHD %~DP0

setlocal EnableDelayedExpansion&color 3e & cd /d "%~dp0"
title Windows 企业管理激活

%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas

echo.
echo                        Windows10版本激活
echo.
echo --------------------------------------------------------------------------------                                                        
echo                脚本用于企业管理激活,请勿用于盗版用途
echo. --------------------------------------------------------------------------------

set /p windowsKey=输入WIndows10密钥:
set /p serverUrl=输入管理服务器地址:

slmgr.vbs -ipk %windowsKey%
slmgr.vbs -skms %serverUrl%
slmgr.vbs -ato

Operating System Windows 2021-04-26 07:33:37 location_on

Android - 国外第三方原生Rom

资料来源

备份下以便日后查询

  • Pixel Experience
  • LineageOS
  • Evolution X
  • Corvus OS
  • Revenge OS
  • Havoc-OS
  • Arrow OS
  • Bliss ROM
  • Project Sakura
  • MSM Extended
  • crDroid
  • Paranoid Android

Operating System 2021-04-06 04:01:37 location_on

Gnome3 - 改变切换工作台(多桌面)快捷键

Gnome的切换桌面默认快捷键是 Ctrl + Alt + Left/Right,与Windows10的多桌面切换快捷键(Ctrl + Super + Left/Right)不同。

经常在两个操作系统之间切换不一样的桌面切换快捷键还是很烦的,尤其是QQ音乐的默认切歌快捷键与Gnome桌面切换一致导致我莫名其妙的切歌了

修改Gnome快捷键需要安装 dconf-editor 工具,不同系统安装方法不一样,我用的是Manjaro,安装如下

sudo pacman -S dconf-editor

之后在终端运行 dconf-editor 命令呼出修改界面,依次选择 org - gnome - desktop - vm -keybindings ,然后找到switch-to-workspace修改即可

或者直接右上角搜索,输入“org.gnome.desktop.wm.keybindings”也可以直接定位到修改界面

如图,自行修改switch-to-workspace按键即可

Operating System Linux 2021-03-22 07:58:17 location_on

Linux 命令精进05

硬盘挂载步骤

  • 查找所有硬盘硬件信息
  • 选中需要挂载的硬盘进行分区
  • 分区完成后格式化硬盘分区
  • 将挂载硬盘的信息写入系统文件/etc/fstab

下面以格式化一个新增加的1G硬盘为例子

# 打印所有硬盘硬件信息
❯ sudo fdisk -l

Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00087949

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    33554431    15727616   8e  Linux LVM

Disk /dev/mapper/centos-root: 14.4 GB, 14382268416 bytes, 28090368 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-swap: 1719 MB, 1719664640 bytes, 3358720 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


# 此处要初始化的盘是1G的硬盘,一般通过容量跟分区信息就可以判断出是哪一个硬盘,通过上面的输出信息可以得知是/dev/sdb
❯ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xd01a716f.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-2097151, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): 
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


# 硬盘创建分区之后还需要格式化
❯ sudo mkfs.ext4 /dev/sdb1 
sudo mkfs.ext4 /dev/sdb1 
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done                            
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 261888 blocks
13094 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

# 将硬盘挂载信息写入硬盘文件/etc/fstab,然后尝试重启,如若重启有问题可以修改/etc/fstab来修复启动
❯ sudo echo '/dev/sdb1 /mnt/sdb1/ ext4 defaults 0 0' >> /etc/fstab
❯ sudo reboot

/etc/fstab文件格式

  • <filesystem> <mountpoint> <type> <opts> <dump> <pass>

格式解释

  • filesystem:挂载设备的位置或者UUID,例如/dev/sdb1,也可以写其唯一的UUID,通过/dev/disk/by-uuid/来确认,相对而言,/dev/sd[x]的位置是不会变化的,使用UUID则是更为保险的方法
  • mountpoint:挂载点,即这个硬盘挂载到哪一个文件夹下
  • type:文件系统类型,Linux支持非常多的文件系统挂载,包括但不限于ext2/ext3/ext4/xfs/ntfs/swap,也可以使用auto来代替手动指定,让系统自动判断文件系统类型
  • opts:这是挂载的时候最重要的参数,涉及到许多硬盘的参数,一般若无特殊要求使用 defauls即可
  • dump:备份命令,需要备份是1,无需备份是0,备份需要联合dump untility使用,较少使用,一般情况下都是使用0
  • pass:在系统启动时使用fsck工具检查扇区,0表示不检查,1表示尽快检查,2表示需要检查但无需过急,对于特殊分区如交换空间是不需要使用检查的

实际例子

  • UUID=96ddc5ee-78f7-43e4-abbd-8359cf73bdfc /mnt/sda/ ext4 defaults 0 0
  • /dev/sdb1 /mnt/sdb1/ ext4 defaults 0 0

Operating System Linux 2021-03-12 16:55:38 location_on

Ubuntu1804 - 开机脚本执行服务rc-local.service

Ubuntu1804改用systemd来管理系统后,rc-local服务默认不再开启,记录一下如何开启这个服务

首先检查 /etc/systemd/system/rc-local.service文件是否存在,如果不存在,则创建这个文件

sudo ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

然后编辑 sudo vim /etc/systemd/system/rc-local.service文件,添加Install节点

[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

最后创建一下开机需要执行的 rc.local文件,sudo vim /etc/rc.local*,这里添加一个开机输出一个文件的测试

#!/bin/bash
echo 'hello world' > /tmp/hello.txt

最后使用systemd来启动开机执行

sudo systemctl enable rc-local

Operating System Linux 2021-03-09 16:59:16 location_on

ProxyChains - Shell下优秀的终端代理软件

在Linux下终端使用代理可以利用 SET HTTP=http://127.0.0.1:8080的方法来完成当前shell的代理

但每一次都要设置非常烦,写入.bashrc文件的话又不见得每次登录Shell都需要使用代理

ProxyChains就可以很方便的做到需要代理的命令走代理,只需要在前面加上 proxychains,例如使用代理运行wget

proxychains wget https://www.chancel.ltd/sitemap

ProxyChains is a UNIX program, that hooks network-related libc functions in dynamically linked programs via a preloaded DLL and redirects the connections through SOCKS4a/5 or HTTP proxies.

各大发行版包管理器大部分都包含了ProxyChains,Ubuntu下安装ProxyChains

sudo apt install proxychains -y

安装完成之后修改一下位于/etc/proxychains.conf配置文件就可以使用了,打开文件后,在最下方添加你的代理信息,如下

...
#       proxy types: http, socks4, socks5
#        ( auth types supported: "basic"-http  "user/pass"-socks )
#
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
http 127.0.0.1:8080

Operating System Linux 2021-03-08 11:39:08 location_on

Manjaro - 安装Fcitx5搭配肥猫百万词库

首先卸载所有关于fcitx4的包

sudo pacman -Rs $(pacman -Qsq fcitx)

安装fcitx5

sudo pacman -S fcitx5-im fcitx5-chinese-addons

配置环境变量 vim ~/.pam_environment

GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=\@im=fcitx
SDL_IM_MODULE DEFAULT=fcitx

安装肥猫百万词库(从wiki上加载,按照官方说法并无版权风险)

yay -S fcitx5-pinyin-zhwiki

注销重启PC后,打开 fcitx Configuration,选择添加拼音即可使用

PS:如何验证词库加载成功?打个“贾跃亭”试试看能不能匹配出来

参考资料

Operating System Linux 2021-02-27 14:06:36 location_on

Linux 命令精进04

Linux的键盘操作技巧非常多,《The Linux Command Line》这本书里提供了不少有趣的操作组合,这里挑选一些常用的做一下备忘

移动光标

  • Ctrl - A 移动光标到行首
  • Ctrl - E 移动光标到行尾
  • Ctrl - L 清空屏幕,移动光标到左上角(形同Clear命令)

修改文本

  • Ctrl - T 交换当前光标前的2个字符位置
  • Alt - T 交换当前光标前后2个单词位置(区分单词通常是“-”或者“空格”)
  • Alt - L 把从光标位置到字尾的字符转换成小写字母(Lower)
  • Alt - U 把从光标位置到字尾的字符转换成大写字母(Upper)

剪切和粘贴文本

  • Ctrl - K 从当前光标位置剪切至行尾的文本
  • Ctrl - U 从当前光标位置剪切至行首的文本
  • Alt - D 从当前光标位置剪切至词尾的文本
  • Alt - Backspace 从当前光标位置剪切至词头的文本,如果光标在一个单词的开头,剪切前一个单词
  • Ctrl - Y 把剪切环中的文本粘贴到光标位置

其他操作

  • Ctrl - R 增量搜索(输入你要寻找的Linux命令行,输入的越多精准度越高)

其他提到的技巧类型命令

  • !! 重复执行最后一次执行的命令
  • !88 执行历史第88条命令
  • !string 执行最近历史列表中以这个字符串开头的命令
  • !?string 执行最近历史列表中,包含这个字符串的命令
  • script [file] 记录当前会话所输入的所有指令(从输入这个指令开始记录)

Operating System Linux 2021-02-25 18:27:24 location_on

1 of 4 | A total of 34