共有 277 篇文章
GoLand
2022-10-07 - 2024-09-18
  • Setting/Tools/Action and Save/Reformat Code: 自动格式化代码
  • Setting/Tools/Action and Save/Optimize imports: 自动优化import
  • Setting/Editor/Inspections/Go/Code Style issues/Usage of Snake_Case: 关闭SnakeCase变量名
  • Setting/Editor/General/Code Folding/: 关闭代码折叠
Fix Windows and Linux Showing Different Times When Dual Booting
2022-10-04 - 2024-09-18

Make Windows Use UTC Time

Filename: Make Windows Use UTC Time.reg

1Windows Registry Editor Version 5.00
2
3[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation]
4"RealTimeIsUniversal"=dword:00000001

以管理员身份打开 「PowerShell」,输入以下命令

1Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

Make Windows Use Local Time

Filename: Make Windows Use Local Time.reg

1Windows Registry Editor Version 5.00
2
3[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation]
4"RealTimeIsUniversal"=-
Auto Restart Network Interface
2022-09-26 - 2024-09-18

每隔30秒钟检查一次网络状态,如果网络异常则重启网卡,然后刷新DNS缓存。

 1@echo off
 2echo "正在监听网络状态...."
 3
 4cd C:\opt\netcheck
 5
 6:begin
 7ping akvicor.com > ping.txt
 8rem echo %errorlevel%
 9if %ERRORLEVEL% == 1 goto ping2
10goto loop
11
12:ping2
13ping baidu.com > ping.txt
14
15if %ERRORLEVEL% == 1 goto reboot
16goto loop
17
18:reboot
19echo %date% %time% "网络异常" >> errlog.log
20echo %date% %time% "正在停用网卡"
21netsh interface set interface "WLAN" disabled
22timeout /T 3 /NOBREAK
23echo %date% %time% "正在启用网卡"
24netsh interface set interface "WLAN" enable
25echo %date% %time% "网卡已重新启动...."
26echo %date% %time% "网卡已重新启动" >> errlog.log
27goto loop
28
29:loop
30ipconfig /flushdns > nul
31timeout /T 30 > nul
32goto begin
Stack alignment in x64 assembly
2022-08-23 - 2024-09-15
AOS

gcc会在call指令之前让rsp16字节对齐。

cpu在call的时候将rip压栈rsp -= 8,所以进入被调用者之后rsp = 8 (mod 16)。如果在这个函数里面还要call其他函数的话就要将rsp减掉奇数个8让它重新16字节对齐。

BOOT: 从FAT32分区搜索并读取loader
2022-08-22 - 2024-09-15
AOS

初始化寄存器

我将物理地址0x050000-0x070008之间的内存分配给了堆栈。栈顶设置为0x070008的原因是,kernel函数在编译后会在函数开头加上这样一行汇编代码sub $0x8,%rsp,将栈顶设置为0x070008可以保证在经过此操作后,栈顶为0x070000

File Permission
2022-08-19 - 2024-09-18

修改文件或目录所有者

1# 修改文件的所有者为root
2chown root <file>
3# 修改文件的所有者和所有组为root
4chown root: <file>
5# 修改文件的所有者为root,所有组为akvicor
6chown root:akvicor <file>
7# 修改文件的所有组为root
8chown :root <file>

修改文件或目录的访问权限

1# chmod <xxx> <file/dir>
2chmod 777 file
3# chmod <u/g/o/a><+/-><r/w/x> <file/dir>
4chmod u+x file

目标

  • u: 用户
  • g: 组
  • o: 其他用户
  • a: 全部

操作

  • +: 加
  • -: 减

权限

  • r: 读
  • w: 写
  • x: 执行

特殊权限

  • s: ->u组,简称SUID的特殊权限。当执行该文件时将具有该文件所有者的权限。
  • s: ->g组,简称SGID的特殊权限。在该目录下创建的文件和目录都属于该目录所属的组
  • t: ->o组,简称SBIT的特殊权限。只能让所属主以及root可以删除/移动/重命名该目录下的文件

其中sudo命令就是通过u组的s权限实现的。

zsh
2022-08-09 - 2024-09-18

oh-my-zsh主题显示执行时间

oh-my-zsh主题显示执行时间

进入主题目录~/.oh-my-zsh/themes

在想要修改的主题文件中添加如下代码:

 1function preexec() {
 2  timer=${timer:-$SECONDS}
 3}
 4
 5function precmd() {
 6  if [ $timer ]; then
 7    timer_show=$(($SECONDS - $timer))
 8    if [[ $timer_show -ge $min_show_time ]]; then
 9      RPROMPT='%{$fg_bold[red]%}(${timer_show}s)%f%{$fg_bold[white]%}[%*]%f %{$reset_color%}%'
10    else
11      RPROMPT='%{$fg_bold[white]%}[%*]%f'
12    fi
13    unset timer
14  fi
15}
16
17autoload -Uz add-zsh-hook
18add-zsh-hook preexec preexec
19add-zsh-hook precmd precmd
Linux User/Group
2022-08-09 - 2024-09-18

概念和相关文件

在 Linux 用户系统中存在两类组。第一类是主要用户组(主组),第二类是附加用户组(附属组)。

  • 主组:也被称为primary group、first group或initial login group,用户的默认组,用户的gid所标识的组。
  • 附属组:也被称为Secondary group或supplementary group,用户的附加组。

存储文件

  • 用户帐户及相关信息都存储在/etc/passwd文件中,
  • 用户组信息存储在/etc/shadow/etc/group文件。

id命令

通过id命令查看用户的主组和附属组

Usbfs
2022-08-09 - 2024-09-18

赋予用户组操作usb设备的权限

创建用户组并添加用户到用户组

 1# 创建用户组
 2groupadd usbfs
 3# 查看usbfs用户组的id
 4#   usbfs:x:1001:
 5cat /dev/group | grep usbfs
 6# 把akvicor添加到用户组
 7useradd -G usbfs akvicor
 8  # 或
 9vim /etc/group
10  # 修改 usbfs:x:1001:
11  # 为   usbfs:x:1001:akvicor

添加访问权限

1# 进入目录
2cd /etc/udev/rules.d
3# 创建配置文件
4vim xxx.rules
5# 写入信息到配置文件

允许用户组usbfs访问usb设备

Debian Install
2022-08-09 - 2024-09-18

Debian安装说明

Debian 源

1wget https://paste.akvicor.com/api/106

Debian 12 + i3

修改时区

1# 修改时区
2ln -sf /usr/share/zoneinfo/Etc/GMT-8 /etc/localtime
3# 同步硬件时间
4hwclock -w

配置源

1curl https://paste.akvicor.com/api/101 > /etc/apt/sources.list
2# 注释掉不需要用到的源,如 bookworm-proposed-updates(介于stable和testing之间), bookworm-backports(新特性移植到旧版本)
3
4apt update
5apt upgrade
6reboot

安装基础工具

1apt install apt-transport-https ca-certificates
2apt install vim curl wget git gcc g++ make screen bc jq zsh

添加基础bash命令

1# 添加ll命令.bashrc
2alias l='ls -al --color=auto'
3alias ll='ls -alh --color=auto'

笔记本电源操作

1vim /etc/systemd/logind.conf
2 HandleLidSwitch=ignore # 合上屏幕
3 HandlePowerKey=ignore # 电源按键

修改启动展示信息

ssh登录信息

Windows IP Local Port Range
2022-08-08 - 2024-09-18
1:: 查看Windows系统TCP端口范围
2netsh int ipv4 show dynamicportrange protocol=udp
3:: 修改Windows系统TCP端口范围
4netsh int ipv4 set dynamicport tcp start=30000 num=35535
5:: 查看Windows系统UDP端口范围
6netsh int ipv4 show dynamicportrange protocol=udp
7:: 修改Windows系统UDP端口范围
8netsh int ipv4 set dynamicport udp start=30000 num=35535