跳至主要內容
nixos配置与管理

nixos安装与配置

安装

安装过程照一般的linux系统配置即可

基础配置

首先打开系统配置目录,然后使用nano打开配置文件

cd /etc/nixos/
nano configuration.nix

Mr.Lexon大约 6 分钟oslinuxnixos
环境变量

环境变量

在对lunx系统中更改环境变量时,请更改以下文件

vim /etc/environment

在这里更改的变量是全局生成的,更改的格式如下


Mr.Lexon小于 1 分钟ososlinuxdebianubuntu
Linux内核优化

Linux内核优化

优化Linux内核参数

vi /etc/sysctl.conf

在末尾增加以下内容:

# Add
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog =  32768
net.core.somaxconn = 32768
 
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
 
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
 
#net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
 
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
 
#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024  65535
fs.file-max = 65536
net.ipv4.ip_forward=1

Mr.Lexon小于 1 分钟ososlinuxdebianubuntu
newgrp命令

newgrp命令

newgrp 

newgrp 指令类似 login 指令,当它是以相同的帐号,另一个群组名称,再次登入系统。欲使用 newgrp 指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则 newgrp 指令会登入该用户名称的预设群组。 可通过:


Mr.Lexon小于 1 分钟ososlinuxdebianubuntu
汇编

汇编

流程

.file   "example.c" #定义文件名称  
        .text #定义文件类型  
        .globl  add_a_and_b #定义变量名称为全局变量名称  
        .type   add_a_and_b, @function #定义类型为函数  
add_a_and_b: #定义  
.LFB0: #局部函数块的开始.lfb[x] 这里[x]指代的是区域编号  
        .cfi_startproc #起始调用帧指令  
        pushq   %rbp # pushq为指令 %rbp为寄存器 目的是将寄存器压入栈中  
        .cfi_def_cfa_offset 16 #定义当前堆栈指针  
        .cfi_offset 6, -16 #定义堆栈偏移量 目标是6号寄存器空间 -16是堆栈指针  
        movq    %rsp, %rbp #将%rbq寄存器移动到%rsp中  
        .cfi_def_cfa_register 6 #定义当前指针使用的寄存器 在这里6号寄存器指的是%rbp  
        movl    %edi, -4(%rbp) #将%edi寄存器的值移动到%rbp偏移4个字节的内存地址位置  
        movl    %esi, -8(%rbp) #将%esi寄存器的值移动到%rbp偏移8个字节的内存地址位置  
        movl    -4(%rbp), %edx #将%rbp寄存器偏移4个字节的值移动到%edx的内存地址位置  
        movl    -8(%rbp), %eax #将%rbp寄存器偏移8个字节的值移动到%eax的内存地址位置  
        addl    %edx, %eax #把两个寄存器的值相加  
        popq    %rbp #rbq退出堆栈  
        .cfi_def_cfa 7, 8 #在当前堆栈定义七号寄存器,8个字节的偏移量  
        ret #函数返回指令  
        .cfi_endproc #标记函数结束  
.LFE0: #定义局部函数块结束  
        .size   add_a_and_b, .-add_a_and_b #指定函数大小 首先定义符号为函数名,其次返回当前位置,那么就可以得到函数大小了  
        .globl  main #声明全局变量 这里则是声明入口变量  
        .type   main, @function #将main定义为函数  
main:  
.LFB1:#1号局部函数域  
        .cfi_star tproc #声明堆栈开始  
        pushq   %rbp #将寄存器%rbp压入堆栈中  
        .cfi_def_cfa_offset 16 #定义堆栈大小为16个字节  
        .cfi_offset 6, -16 #定义偏移量  
        movq    %rsp, %rbp #同上  
        .cfi_def_cfa_register 6 #注册6号寄存器至堆栈中  
        movl    $3, %esi #将立即数3添加到%esi  
        movl    $2, %edi #将立即数2添加到%edi中  
        call    add_a_and_b #函数调用  
        popq    %rbp #%rbp退出函数  
        .cfi_def_cfa 7, 8 #定义7号寄存器,8个字节的偏移量  
        ret #函数变量  
        .cfi_endproc #函数结束  
.LFE1:#1号函数域结束  
        .size   main, .-main #定义函数大小  
        .ident  "GCC: (Debian 10.2.1-6) 10.2.1 20210110" #定义程序元信息  
        .section        .note.GNU-stack,"",@progbits #定义新的代码段或数据段

Mr.Lexon大约 4 分钟osbasis-designassemblyos
Linux技巧

Linux技巧

目录操作

如果要进行以下操作:

ln -s /path/to/something /target/dir/target_item

Mr.Lexon小于 1 分钟oslinuxos