共有 274 篇文章
📅 最近更新
2022-08-23
- 2024-09-15
gcc会在call
指令之前让rsp
按16
字节对齐。
cpu在call
的时候将rip
压栈rsp -= 8
,所以进入被调用者之后rsp = 8 (mod 16)
。如果在这个函数里面还要call
其他函数的话就要将rsp
减掉奇数个8
让它重新16
字节对齐。
2022-08-22
- 2024-09-15
初始化寄存器
我将物理地址0x050000-0x070008
之间的内存分配给了堆栈。栈顶设置为0x070008
的原因是,kernel函数在编译后会在函数开头加上这样一行汇编代码sub $0x8,%rsp
,将栈顶设置为0x070008
可以保证在经过此操作后,栈顶为0x070000
。
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
权限实现的。
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
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
命令查看用户的主组和附属组
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设备
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登录信息
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
2022-08-08
- 2024-09-18
1# 查看当前临时端口的范围
2sysctl net.ipv4.ip_local_port_range
3cat /proc/sys/net/ipv4/ip_local_port_range
4# 暂时性修改临时端口的范围
5echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range
6sysctl -w net.ipv4.ip_local_port_range="1024 64000"
7# 永久性修改临时端口范围
8vim /etc/sysctl.conf # 编辑此文件并添加下面一行内容
9net.ipv4.ip_local_port_range = 1024 65535
2022-08-01
- 2024-09-18
xset
:用于设置显示器的各种用户属性选项。如果想要持久化设置,可以将设置写入.xinitrc
文件中。
dpms(Display Power Manage System)和屏保是互相作用的,这两个值谁设的小谁生效。