本文最后更新于 2025年6月23日 晚上
这里记录了一些个人使用电脑的经验和网上搜集的教程
windows windows快捷键
部分快捷键在其他系统上可用
全选ctrl+a
剪切ctrl+x
复制ctrl+c
粘贴ctrl+v
显示桌面ctrl+d
截图win+shift+s
窗口切换ctrl+alt+tab
安全选项ctrl+alt+del
运行win+r
任务视图win+tab
任务视图(旧)alt+tab
任务管理器ctrl+shift+esc
文件管理器win+e
重命名选中文件+f2
选中任务栏软件图标win+t
打开搜索win+q
打开小组件win+w
打开设置win+i
打开通知栏win+n
撤回ctrl+z
重做ctrl+shift+z
切换桌面Ctrl+Alt+方向键
输入大写或标点shift+键盘上的按键
任务管理器关闭任务delete
显示顶栏菜单对应键盘字母Alt
选择顶栏菜单按钮Alt+对应字母(部分为Ctrl+对应字母)
切换输入法win+space
或Ctrl+shift
打开剪贴板win+v
多选按住Ctrl,鼠标进行选择
选择一列按住shift,鼠标选择起点后再选择终点,中间部分会自动勾选
关闭当前窗口Alt+F4
刷新F5
全屏/取消全屏F11
打开旧版windows右键菜单 Shift+右键
锁定Windows win+l
windows程序
使用win+r运行
组策略管理gpedit.msc
服务services.msc
任务计划程序taskschd.msc
系统配置msconfig
注册表regedit
用户账户Netplwiz
“关于Windows”winver
计算机管理compmgmt.msc
控制面板control
directx诊断dxdiag
自启动程序图标shell:startup
系统属性sysdm.cpl
已安装软件列表shell:AppsFolder
windows开始菜单图标路径1 2 3 C :\ProgramData\Microsoft\Windows\Start Menu\ProgramsC :\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs %APPDATA%\Microsoft\Windows\Start Menu\Programs
MOONSCRIPT
Windows 任务栏快捷方式路径1 C :\Users\%USERNAME%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
MOONSCRIPT
windows自启动图标路径1 2 3 C :\ProgramData\Microsoft\Windows\Start Menu\Programs\StartupC :\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
MOONSCRIPT
windows 桌面图标缓存路径1 C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Explorer
MEL
windows最近文件夹路径1 %APPDATA %\Microsoft\Windows\Recent
HAML
windows更新缓存路径1 2 C: \Windows\SoftwareDistribution\DataStoreC: \Windows\SoftwareDistribution\Download
AVRASM
windows 用户配置文件路径1 C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows
MEL
windows文件管理器界面快捷方式的注册表路径1 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace
MOONSCRIPT
Windows 字体路径1 2 C :\Users\licyk\AppData\Local\Microsoft\Windows\FontsC :\Windows\Fonts
MOONSCRIPT
在用户账户netplwiz启用自动登陆复选框注册表中 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device\PasswordLessBuildVersion
把3改为0
隐藏windows10设置中的部分设置运行gpedit.msc
(本地组策略编辑器),依次点开计算机配置
–>管理模板
–>控制面板
,找到设置页面可见性
编辑,点击已启用
在选项中的输入框中输入参数 如隐藏账户设置
1 hide :yourinfo;sync ;emailandaccounts;otherusers;signinoptions-launchfaceenrollment;workplace
DART
再点击应用即可 更多参数信息在微软官方文档
隐藏windows中控制面板的部分设置运行gpedit.msc
(本地组策略编辑器),依次点开用户配置
→管理模版
→控制面板
,找到隐藏指定的“控制面板”项
编辑,点击已启用
,在选项中点击显示
,在”值“
的输入框中输入参数 如Microsoft.UserAccounts
(用户账户),Microsoft.CredentialManager
(凭据管理器) 输入完成后点确定,再点击应用即可 更多参数信息在微软官方文档
cmd指令 强制关闭进程1 2 3 wmic process where name ='进程名.exe' call terminate wmic process where processid="进程pid" delete wmic process 进程pid call terminate
PGSQL
创建软链接1 mklink /d "虚拟文件路径" "真实文件路径"
BASH
删除软连接
进入目录
禁用驱动程序强制签名1 bcdedit.exe /set nointegritychecks on
VIM
启用驱动程序强制签名1 bcdedit.exe /set nointegritychecks off
CMAKE
windows11恢复旧版右键菜单1 reg .exe add “HKCU\Software\Classes\CLSID\{86 ca1aa0-34 aa-4 e8b-a509-50 c905bae2a2}\InprocServer32” /f
APACHE
windows11恢复新版右键菜单1 reg .exe delete “HKCU\Software\Classes\CLSID\{86 ca1aa0-34 aa-4 e8b-a509-50 c905bae2a2}” /f
APACHE
设置环境变量1 setx /M PATH "<需要添加的路径>;%PATH% "
DOS
刷新dns缓存
windows修复分区
关闭windows defender计划扫描1 2 3 4 5 6 Set-MpPreference -ScanScheduleDay 8 Set-MpPreference -RemediationScheduleDay 8 Set-MpPreference -ScanOnlyIfIdleEnabled $False Get-MpPreference
POWERSHELL
winget软件源管理1 2 3 4 5 6 7 8 9 # 查看软件源 winget source reset # 删除软件 winget source remove <软件源名称> # 添加软件源 winget source add <软件源名称> <软件源地址> # 例子 winget source remove winget winget source add winget https://mirrors.ustc.edu.cn /winget-source
VIM
扫描并修复系统1 2 3 4 sfc /scannow DISM /Online /Cleanup-image /CheckHealth DISM /Online /Cleanup-image /ScanHealth DISM /Online /Cleanup-image /RestoreHealth
JBOSS-CLI
其他软件使用
bandizip默认压缩编码为gbk,可根据需求更改为utf-8编码
在基于Unity,虚幻等制作的游戏中可以按住Alt+Enter快速进入全屏模式
在OBS Studio中可按住Alt键裁剪窗口
在桌面或文件管理器空白处按住 Shift 点鼠标右建,可以打开PowerShell
vmware在刚刚开机时一直按F2或者Esc可以进入虚拟机的bios
在任务管理器按下Ctrl
键暂停刷新
浏览器控制台输入document.body.contentEditable=true
启用网页编辑模式,输入document.body.outerHTML=document.body.outerHTML
解除网页复制限制
浏览器地址栏输入data:text/html,<html contenteditable>
打开文本编辑器
浏览器快捷键
支持firefox/chrome/其他浏览器
关闭当前标签页Ctrl+F4
将鼠标点击的链接在后台打开Ctrl+鼠标左键
切换标签页Ctrl+Tab
浏览器插件存档
visual studio code插件
edge浏览器进入高级设置在地址栏输入以下并回车
firefox浏览器进入高级设置在地址栏输入以下并回车
edge浏览器关闭 使用推荐的浏览器设置 弹窗在地址栏输入
1 edge: //flags/#edge-show-feature-recommendations
AVRASM
将下面第一个选项的Default
改成Disable
,并重启浏览器
win10优化方法
低配机可尝试
固态硬盘禁用休眠文件 禁用系统7G预留 禁用传递优化 禁用自带杀毒WD(这个看个人) 禁用后台应用 开启存储感知 更改新内容的保存位置设置到别的盘 更新系统后清理临时文件 删除系统还原点并禁用还原点 用户里的Appdata文件转移到D盘 用户里的桌面,文档等转移D盘 索引选项的位置改D盘 四个缓存变量temp修改到D盘 绿色版火绒弹窗拦截 绿色版迅雷(IDM也可以,和绿色版迅雷一起更好) dism++进行简单系统设置 dism++空间回收勾选几个不会影响系统稳定的选项进行清理 运行库用DirectX4.0打上 安装net3.5需要打开系统自动更新,不然无法安装。 新版edge浏览器更新一下,然后到C盘清理更新包和浏览器缓存temp 新版edge浏览器可以借助第三方软件搬家工具转移到D盘 office可以通过修改注册表安装到你想要的盘 微软账号登录一直转圈圈或者报错的,可以通过下载UU加速器,加速微软商店,就可以瞬间登录,吊打修改DNS,修改DNS不一定有效果,UU加速器100%直接登录微软账号,一路畅通无阻 不玩Xbox的,可以关闭系统自带游戏模式,对非Xbox游戏是负优化 支持开启GPU硬件加速和可变刷新率的,都开启 新版edge浏览器下载一个AdGuard广告拦截扩展,可以屏蔽大部分广告内容和高速下载地址这种流氓下载地址,下载东西就没流氓捆绑软件了 解压软件推荐微软商店的Breezip或者破解版Bandizip或者7-z,或者去广告的winrar. 配置不低的最好用原版win10,不要用第三方修改版系统。官方的企业版LTSC适合低配机,功能阉割了很多,中配和高配就没必要用精简版了 安装系统最好用微PE网络版,dism++还原原版镜像,还原后,dism++里对系统进行简单的设置处理OOBE界面不要联网,不要设置PIN,锁屏界面的账号不要用微软账号,用本地账号就行了,软件登录微软账号就行了,谨记禁用一些对自己用不到的服务,比如Windows search服务,打印机服务,预览体验服务,备份服务等你认为自己用不到的服务 dism++删除预装应用的安装包后,可以对win10全家桶进行转移到别的盘 最后,你的原版win10(比如20H2),流畅度堪比精简版,C盘占用不会超过15G。不删除任何组件,这样的系统比精简版好太多了。
win10关闭自动更新1、同时按下Win + R
组合快捷键打开运行命令操作框,然后输入gpedit.msc
,点击确定 2、在组策略编辑器中,依次展开 计算机配置
-> 管理模板
-> Windows组件
-> Windows更新
->管理最终用户体验
在Windows11中,依次展开 计算机配置
-> 管理模板
-> Windows组件
-> Windows更新
3、然后在右侧配置自动更新
设置中,将其设置为已禁用
并点击下方的确定
4、之后还需要再找到删除使用所有Windows更新功能的访问权限
,选择已启用
,完成设置后,点击确定
利用firefox开发者网站转换chrome插件为firefox插件1、提前准备好Chrome插件。 2、打开Firefox浏览器,建议使用国际版。下载链接就不提供了,大家自己找一下吧。 3、打开Firefox开发者网址 4、点击右上角登录或注册 5、使用你的Firefox帐号登录网站 一般会自己链接你的Firefox帐号,如果没有链接,你输入帐号和密码注册为Firefox开发者即可。 是的,注册成功后,你就是Firefox插件开发者的一份子了,哈哈哈哈。 6、登录后,点击页面右上角开发者中心
7、点击右下角提交新附加组件
8、选择如何分发此版本。因为我们上传的是别人开发的东西,只是用此方法来转换,所以一定请选我自己托管
。不这样选,插件会出现在插件库中,全网可以搜索到。当然,大概率是你上传后根本审核不通过……然后点击继续
9、点击选择文件
,选择刚才你准备好的插件文件。 10、选定你准备好的插件后,插件会自动上传并进行验证,验证结束后会出现类似如下提示: 已完成验证:无错误,有10条警告。 有错误页面会直接提示,有错误提示一般代表插件文件损坏或者不支持(可以尝试去github上找代码文件试试)。 如显示无错误,再选择下面的程序兼容性(我没用android手机,所以没选) 再点击签名附加组件
11、出现让你提交源代码的页面 怎么说呢,这个你根本没有源代码,所以直接点否吧,有源代码也别提交,毕竟真正的开发者并不是我们不是…… 再点继续
12、大功告成! 点击转至我的提交
13、找到你刚才提交的附加组件并点击 14、点击左上角查看全部
15、这时你会看到你提交的插件正在审核,等待1分钟,刷新一下页面,一般就会提示已经审核通过。 当显示已审核后,点击左边的版本号 16、点击版本后,在出现的页面里点击插件的文件名,这时浏览器会自动下载你刚才上传并签名的插件,下载完后,你点击添加。 这下,真正大功告成!
windows下隐藏文件打开cmd窗口,在弹出的窗口输入
1 attrib +s +h +r 文件的绝对地址
POWERSHELL
例如
1 attrib +s +h +r D:\test\1 .jpg
POWERSHELL
其中+s
附上系统文件属性,+h
附上隐藏属性,+r
附上只读属性 写好后,回车,文件已经成功隐藏 如果想去掉刚刚附上的属性,只需要将+
换为-
,即可恢复隐藏。 关于查看的方法也很简单,在文件夹选项里,取消隐藏系统文件,然后按确定,即可查看隐藏的系统文件
解决 Parsec 国内无法使用1、下载v2rayN 2、在 v2rayN 中添加节点(节点可从网上寻找),并启用 3、在文件管理器中打开C:\Users\用户名\AppData\Roaming\Parsec
(Linux 为/home/user/.parsec
),找到config.txt
,在文本的最后添加下列参数
1 2 3 4 app_proxy_address =127.0 .0.1 app_proxy_scheme =httpapp_proxy =true app_proxy_port =10808
INI
如果使用的是新版 Parsec,则编辑 config.json 文件,添加以下内容
1 2 3 4 5 6 7 8 9 10 11 12 "app_proxy" : { "value" : true } , "app_proxy_scheme" : { "value" : "http" } , "app_proxy_port" : { "value" : 10808 } , "app_proxy_address" : { "value" : "127.0.0.1" }
JSON
5、重新打开 Parsec 即可正常使用
注: 1、app_proxy
设置启用代理状态app_proxy_address
为代理的地址app_proxy_scheme
为代理协议app_proxy_port
为代理的端口 2、v2rayN 的参数可在软件所在目录中config.json
查看,http / socks 代理默认端口为10808
bios核显设置优化GFX Boost 意思是GPU动态加速,默认是关闭的,我们要开启,方法是按方向键选中此项回车,再选择Enabled开启,而选择Disabled关闭 DVMT Pre-Allocated 意思是显存采用预分配,这里可以调大一些,也不是越大越好因为会减小系统内存,推荐调到128。 DVMT Total Gfx Mem 意思是显存采用总大小,也就是动态显存总分配大小,这个也不是越大越好,以情况而定,我自己选的是Max最大 Aperture Size 这个是最大图形缓冲区,默认256我选的512。
windows解决桌面图标发白创建*.bat
文件 填入以下内容:
1 2 3 4 5 6 @echo offtaskkill /f /im explorer.exeCD /d %userprofile% \AppData\LocalDEL IconCache.db /astart explorer.exeecho
DOS
运行这个脚本即可解决
windows快捷调整桌面图标大小单击桌面任意区域后,Ctrl+鼠标滚轮
进行调整
在uefi启动下安装windows后启动windows时出现错误提示导致启动失败的解决方法使用笫三方工具(如dism++
,Windows NT安装器
)安装Windows后,进系统时出现错误, 可能与windows系统的引导文件残留有关, 可尝试删除ESP
分区中的Windows引导文件(使用diskgenius
),windows的引导文件在EFI
文件夹中的microsoft
文件夹 BOOT文件夹中的文件 再删除uefi引导项
(使用bootice
),Windows的引导项为Windows boot manager
或者使用Windows官方镜像自带的安装工具进行安装
dism++
,window NT安装器
可绕过TPM限制来安装Windows11
windows调整虚拟内存设置1、在桌面此电脑
图标上点击鼠标右键,然后选择属性
选项 2、打开系统窗口后,点击左上角的高级系统设置
选项
按下win+r快捷键,输入sysdm.cpl
,运行,也可以启动高级系统设置
3、在打开的窗口中,点击高级
选项卡下性能
选项组的设置
按钮 4、打开性能选项窗口后,点击高级
选项卡中的更改
按钮 5、在打开的窗口中,首先取消勾选自动管理所有驱动器的分页文件大小
6、接下来选择自定义大小
,然后手动设置初始大小以及最大值。接下来先点设置
(不然不会保存),然后点击确定
按钮
windows安装并配置msys21、在msys2官网 下载并安装msys2 2、记下刚才安装的路径,比如C:\msys64
3、在桌面此电脑
图标上点击鼠标右键,然后选择属性
选项 4、打开系统窗口后,点击高级系统设置
选项
按下win+r快捷键,输入sysdm.cpl
,运行,也可以启动高级系统设置
5、在打开的窗口中,点击高级
选项卡下环境变量
6、在系统变量
部分双击Path
,点击新建
,输入以下路径
1 2 C: \msys64\ucrt64\binC: \msys64\usr\bin
AVRASM
C:\msys64
为msys2安装路径,所以msys2安装到哪个路径,上面要输入的值也要修改相应的部分
然后一直点确定
直至完成 7、在windows的开始菜单里找到MSYS2 UCRT64
,打开,输入
1 2 sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist* pacman -Sy
BASH
8、如果使用gcc来编译,需要安装编译工具
1 pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
BASH
安装好后尝试编写一个程序main.c
1 2 3 4 5 6 7 8 9 #include <stdio.h> #include <stdlib.h> int main () { printf ("这是一个测试程序\n" ); system("pause" ); return 0 ; }
C
编译源码生成一个程序test.exe
1 gcc -lm -fexec-charset=GBK ./main.c -o ./test.exe
BASH
运行test.exe
能够正常输出文字说明能正常使用gcc
参考:https://mirrors.tuna.tsinghua.edu.cn/help/msys2/ https://code.visualstudio.com/docs/cpp/config-mingw#_installing-the-mingww64-toolchain
在windows终端配置msys2
win10要在microsoft store安装
1、打开Windows终端设置 2、点击添加新配置文件
3、在名称
中填入MSYS2 UCRT64
4、在命令行
填入
1 C:\msys64\msys2_shell.cmd -defterm -no -start -use-full -path -here -ucrt64 -shell bash
PGSQL
5、在启动目录
勾选使用父进程目录
6、在图标
填入
1 C: \msys64\ucrt64.ico
AVRASM
C:\msys64
为安装目录,根据具体安装的目录修改
7、保存后生效
vscode配置msys2在vscode的settings.json
配置文件的terminal.integrated.profiles.windows
参数下添加以下内容
1 2 3 4 5 6 7 8 9 10 11 12 "terminal.integrated.profiles.windows" : { "MSYS2 UCRT64" : { "path" : "cmd.exe" , "args" : [ "/c" , "C:\\msys64\\msys2_shell.cmd -defterm -no-start -use-full-path -here -mingw64 -shell zsh" ] , "env" : { "CHERE_INVOKING" : "1" } } } ,
JSON
然后在vscode的设置搜索Windows 上的默认终端配置文件
将选项改成MSYS2 UCRT64
,之后在vscode打开终端时默认就使用msys2
参考:https://www.msys2.org/docs/ides-editors/
visual studio设置代码编码格式为utf8修改visual studio的代码编码格式需要进入高级保存选项
,由于这个选项在VS中是默认隐藏的,需要手动调出来。具体操作方法如下
1、单击工具
->自定义
,弹出自定义
对话框
2、单击命令
标签->进入命令
选项卡
3、菜单栏
下拉列表->选择文件
选项
4、单击添加命令
->弹出添加命令
对话框
5、在类别
列表中,选择文件
选项,在命令
列表中,选择高级保存选项
选项
6、单击确定
按钮,关闭添加命令
对话框
7、选中预览
中的高级保存选项
选项,单击上移
或者下移
按钮,可以调整该命令的位置
8、关闭自定义
选项框,单击文件
->高级保存选项
,在编码
下拉列表中就可以选择Unicode(UTF-8带签名)- 代码页650001
visual studio code配置c cpp调试配置
配置前需要安装好msys2
按快捷键Ctrl+Shift+P
调出命令面板,输入C/C++
,选择Edit Configurations(UI)
进入配置。这里配置两个选项: 编译器路径:C:/msys64/ucrt/bin/gcc.exe
IntelliSense 模式: windows-gcc-x64
配置完成后,此时在侧边栏可以发现多了一个.vscode
文件夹,并且里面有一个c_cpp_properties.json
文件,内容如下,说明上述配置成功。现在可以通过Ctrl+·
快捷键打开内置终端并进行编译运行了
·
这个健就是波浪号那个点不是句号的点
c_cpp_properties.json文件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { "configurations" : [ { "name" : "Win32" , "includePath" : [ "${workspaceFolder}/**" ] , "defines" : [ "_DEBUG" , "UNICODE" , "_UNICODE" ] , "compilerPath" : "D:\\msys64\\ucrt64\\bin\\gcc.exe" , "cStandard" : "c17" , "cppStandard" : "gnu++17" , "intelliSenseMode" : "windows-gcc-x64" } ] , "version" : 4 }
JSON
按快捷键Ctrl+Shift+P
调出命令面板,输入tasks
,选择Tasks:Configure Default Build Task
再选择C/C++: g++.exe build active file
此时会出现一个名为tasks.json
的配置文件,内容如下:
建议gcc
与g++
都跑一边两个选项都走一遍gcc
是c
,g++
是c++
tasks.json文件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 { "version" : "2.0.0" , "tasks" : [ { "type" : "cppbuild" , "label" : "C/C++: gcc.exe 生成活动文件" , "command" : "C:\\msys64\\ucrt64\\bin\\gcc.exe" , "args" : [ "-fdiagnostics-color=always" , "-g" , "${file}" , "-o" , "${fileDirname}\\${fileBasenameNoExtension}.exe" ] , "options" : { "cwd" : "${fileDirname}" } , "problemMatcher" : [ "$gcc" ] , "group" : { "kind" : "build" , "isDefault" : true } , "detail" : "编译器: C:\\msys64\\ucrt64\\bin\\gcc.exe" } ] }
JSON
用来配置调试的相关信息。点击菜单栏的运行
->启动调试
选择C++(GDB/LLDB)
这里最主要就是玄学的launch.json
文件
launch.json文件内容:
1 2 3 4 5 6 7 { "version" : "0.2.0" , "configurations" : [ ] }
JSON
修复在msys2安装的aria2无法下载文件的问题
这里使用MSYS2 UCRT64
当使用pacman安装aria2后,使用aria2下载文件时出现ssl/tls handshake failure: unable to get local issuer certificate
,这是因为aria2的依赖关系中未写上mingw-w64-ucrt-x86_64-ca-certificates
,所以不会自动安装ca-certificates
,但是aria2依赖这个进行下载,所以会报错 输入命令手动安装ca-certificates
即可解决
1 pacman -S mingw-w64 -ucrt-x 86 _64 -ca-certificates
LLVM
msys2软件包名存档个人使用的msys2软件包存档
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 base-devel mingw-w64-ucrt-x86_64-toolchain make cmake mingw-w64-ucrt-x86_64-rust mingw-w64-ucrt-x86_64-cargo-c mingw-w64-ucrt-x86_64-aria2 wget curl git mingw-w64-ucrt-x86_64-ffmpeg mingw-w64-ucrt-x86_64-neovim vim openssh openssl mingw-w64-ucrt-x86_64-openssl mingw-w64-ucrt-x86_64-scrcpy procps-ng man info zsh ca-certificates mingw-w64-ucrt-x86_64-ca-certificates neofetch tree find
BASH
msys2安装lunarvim1、下载依赖
1 pacman -S git make mingw-w64-ucrt-x86_64-python mingw-w64-ucrt-x86_64-python-pip mingw-w64-ucrt-x86_64-nodejs mingw-w64-ucrt-x86_64-rust mingw-w64-ucrt-x86_64-cargo-c mingw-w64-ucrt-x86_64-neovim wget
BASH
2、下载安装脚本
1 wget https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh
BASH
编辑脚本内容
搜索detect_platform()
,注释掉这个函数的部分内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 function detect_platform () { case "$OS " in Linux) if [ -f "/etc/arch-release" ] || [ -f "/etc/artix-release" ]; then RECOMMEND_INSTALL="sudo pacman -S" elif [ -f "/etc/fedora-release" ] || [ -f "/etc/redhat-release" ]; then RECOMMEND_INSTALL="sudo dnf install -y" elif [ -f "/etc/gentoo-release" ]; then RECOMMEND_INSTALL="emerge -tv" else RECOMMEND_INSTALL="sudo apt install -y" fi ;; FreeBSD) RECOMMEND_INSTALL="sudo pkg install -y" ;; NetBSD) RECOMMEND_INSTALL="sudo pkgin install" ;; OpenBSD) RECOMMEND_INSTALL="doas pkg_add" ;; Darwin) RECOMMEND_INSTALL="brew install" ;; esac }
BASH
3、运行安装脚本
脚本会提示安装一些依赖,输入y
确认,等待安装完成,最后安装的时候会出现报错,这个可以不管,直接使用Ctrl+C
结束脚本运行
4、配置环境变量
1 echo "export PATH=\"\$PATH:$HOME /.local/bin\"" >> ~/.$(basename $SHELL )rc
BASH
5、配置lunarvim 运行lunarvim
如果找不到命令,可以运行一次生成命令的脚本
1 ~/.local/ share/lunarvim/ lvim/utils/i nstaller/install_bin.sh
AWK
然后按下c
键进入配置文件,添加以下内容
1 2 3 4 5 6 7 8 9 10 11 12 vim.cmd [[ set tabstop=4 set shiftwidth=4 set softtabstop=4 set backspace=indent,eol,start set expandtab set autoindent set smarttab set encoding=utf-8 set incsearch set hlsearch ]]
LUA
保存后生效。lunarvim配置插件可使用Lazy
,配置LSP可使用Mason
windows删除卸载残留的右键菜单打开方式win+r
,输入regedit
打开注册表 打开
1 计算机\HKEY_CLASSES_ROOT\Applications
LIVESCRIPT
找到对应的残留软件并删除
windows使用手机的代理
windows10同理
1、确保手机和电脑处在同一个局域网中 2、在手机上下载every proxy 或者在百度上搜索every proxy
并安装 4、打开every proxy,启用HTTP HTTPS
选项 5、此时会看到Hosts
项和Port
项,比如
1 2 Hosts 0.0.0.0 exposed via 192.168.1.123 , 10.10.10.10 Port 8080
APACHE
记下ip地址192.168.1.123
和端口8080
3、打开Windows设置依次打开网络和Internet
-> 代理
,在手动设置代理
点设置
, 启用使用代理服务器
,在代理ip地址
和``填写刚刚记下的东西 在请勿对一下条目开头的地址使用代理服务器。若有多个条目,请使用英文分号(;)来分隔。
下面的框填入以下内容
1 localhost ;127 .*;10 .*;172 .16 .*;172 .17 .*;172 .18 .*;172 .19 .*;172 .20 .*;172 .21 .*;172 .22 .*;172 .23 .*;172 .24 .*;172 .25 .*;172 .26 .*;172 .27 .*;172 .28 .*;172 .29 .*;172 .30 .*;172 .31 .*;192 .168 .*
APACHE
保存后生效,此时电脑就可以使用手机的代理了,如果手机使用了科学上网,在电脑上也可以使用
在使用完后记得禁用使用代理服务器
手机的ip地址在重启或开关WIFI后会变化,请注意
windows安装office
演示安装Microsoft 365方法,其他版本office版本的安装大同小异
安装1、前往office tool plus官网 下载工具 2、解压,双击打开Office Tool Plus.exe
,接受许可条款,然后点击左侧三条横线的图标,展开选项 3、如果之前有安装过office,则在左侧栏选择工具箱
,在office工具
处选择移除office
4、在左侧栏选择部署
,在体系结构
选择64位
,在更新频道
选择半年度企业通道
,启用下载后再部署
,然后选择添加产品
,在产品列表
选择Microsoft 365 企业应用版
,点击确定
,在应用程序
处将不需要的应用取消勾选,一般只会用到Word
、PowerPoint
、Excel
,然后点击添加语言
,在语言列表
选择简体中文(中国)
,点击确定
,选择完后,点击最上方的开始部署
,在出现的弹窗中选择是
,等待部署完成,当部署结束后先不要打开office
激活 使用ohook激活1、右键Windows开始菜单图标,选择终端管理员
(在Windows10中选择Windows PowerShell(管理员)
) 2、输入下面的命令下载并启动Microsoft-Activation-Scripts
1 irm https ://get .activated.win | iex
LIVECODESERVER
下载成功后会自动弹出Microsoft-Activation-Scripts窗口 3、主界面显示Activation Methons
,并列出所有选项。这里选择[2] Ohook
,按下键盘上的数字2
,然后在下一个界面选择[1] Install Ohook Office Activation
,这时脚本将会给office进行激活 4、当显示Office is permanently activated
说明激活成功,这时就可以关闭Microsoft-Activation-Scripts窗口,使用office了
Microsoft-Activation-Scripts也可以用于激活Windows系统
使用kms激活1、在左侧栏点击激活
,在许可证管理
点击右侧的箭头,在安装许可证
选择安装,在许可证列表
选择office mondo 2016 批量许可证
,点击确定
,然后在kms管理
点击右侧箭头,在kms主机
选项输入kms.loli.beer
(这里可以替换成其他kms服务器地址),再点击设置主机
,最后点击上方的激活
,等待激活完成 2、完成后即可使用office
kms服务器地址收录:https://www.kms.pub/rank.html
windows家庭版转换成专业版1、打开设置,依次打开系统
-> 系统信息
-> 产品密钥和激活
-> 更改激活密钥
2、输入专业版激活码,然后按提示操作就行
注:如果失败的话,先断网,再输入激活码,然后下一步,之后再联网进行切换
windows控制手机前期准备: 1、前往scrcpy官网 下载scrcpy-win64
,并解压 2此时把解压的文件放在合适的位置,位置可以自己选,只要能找到就行,比如
(文件夹内包括adb.exe
和scrcpy.exe
等文件,而且不能放在该文件夹的子文件夹里) 3、记下刚才的位置,在桌面此电脑
图标上点击鼠标右键,然后选择属性
选项 4、打开系统窗口后,点击高级系统设置
选项。 5、在打开的窗口中,点击高级
选项卡下环境变量
6、在系统变量
部分点双击Path
,点击新建
,输入记下的位置,然后一直点确定直至完成
使用有线连接1、首先需要开启Android设备的开发者选项
和允许USB调试
。不同手机型号打开开发者选项的方式也不同,大致有两种方式可以打开开发者选项。 1)打开手机找到设置
–>找到系统
一栏(有些手机是更多设置
)–>选择打开开发者选项
和启用USB调试
,推荐启用“仅充电”模式下允许ADB调试
2)如果找不到开发者选项在哪,可以按照下面的方法找到开发者选项并打开: 打开手机找到设置
–>点击更多设置
–>点击进入关于手机
–>找到版本号
连续点击7次即可开启开发者模式 2、手机用usb线连接电脑,然后打开终端 3、检查是否连接成功
1 2 3 $ adb devices List of devices attached 28PNW18349738948 device
BASH
(手机会提示是否允许调试,点击确定) 说明连接成功 4、使用scrcpy进行连接
此时会弹出一个可以控制手机的窗口,可以通过鼠标和键盘控制手机
使用无线连接注:确保手机和电脑处在同一个局域网
中 1、首先需要开启Android设备的开发者选项
和允许USB调试
。不同手机型号打开开发者选项的方式也不同,大致有两种方式可以打开开发者选项。 1)打开手机找到设置
–>找到系统
一栏(有些手机是更多设置
)–>选择打开开发者选项
和启用USB调试
,推荐启用“仅充电”模式下允许ADB调试
2)如果找不到开发者选项在哪,可以按照下面的方法找到开发者选项并打开: 打开手机找到设置
–>点击更多设置
–>点击进入关于手机
–>找到版本号
连续点击7次即可开启开发者模式 2、手机用usb线连接电脑,然后打开终端 3、检查是否连接成功
1 2 3 $ adb devices List of devices attached 28PNW18349738948 device
BASH
(手机会提示是否允许调试,点击确定) 说明连接成功 4、启用手机网络调试
此时可以断开手机和电脑的连接 4、查看手机的ip,比如192.168.1.111
然后使用adb无线连接
1 2 $ adb connect 192.168.1.111:5555 connected to 192.168.1.111:5555
BASH
此时连接成功 5、使用scrcpy进行连接
此时会弹出一个可以控制手机的窗口,可以通过鼠标和键盘控制手机
注:手机在重启或重新打开usb调试后需要重新启用手机网络调试
windows设置u盘工作模式1、按下win+r
键,输入compmgmt.msc
,确定 2、选择磁盘管理
,右键u盘,点击属性
–>策略
, 3、在删除策略
中可以选择快速删除(默认)
或者更好的性能(B)
快速删除: 优点:可热插拔U盘等外接移动设备 缺点:禁用设备和 Windows 上的写入缓存,降低传输速率 更好的性能: 优点:启用 Windows 中的写入缓存功能,确保完成所有缓存操作来保护U盘等外接移动设备上数据的完整性,加速传输速度 缺点:必须使用安全删除硬件,不能热插拔U盘等外接移动设备
windows解决幽灵账户:
当windows登陆微软帐号时,系统会要求用户设置pin登陆密码,但设置pin密码后,每次进入windows系统时都要输入密码,所以通过系统中的netplwiz设置自动登陆,但有时候会出现幽灵账户,导致系统无法正常自动登陆
解决办法:将pin密码设置为和你所登陆的微软帐号的密码相同,再重新设置windows自动登陆就解决了
windows上帝模式1、右键桌面或者文件管理器空白的地方,创建一个新的文件夹 2、将文件夹命名为上帝模式.{ED7BA470-8E54-465E-825C-99712043E01C}
3、这时候文件夹图标会变成控制面板的图标,双击即可打开
windows跳过登陆微软帐号在OOBE界面中,到你想要如何设置此设备
时,点击针对个人使用进行设置
,点下一步,然后点登陆,到帐号输入界面,输入1@1.com
或者no@thanks.com
,或者类似的无效邮箱,点下一步,密码随便输,再点击登陆,当出现哎呀,出错了
时就跳过成功了
windows解决github的dns污染问题github因为一些原因,时不时的无法访问,这是宽带运营商将github的域名进行重定向,当访问github时就会重定向至本地的ip地址,导致无法访问 解决的办法有几种: 1、使用科学上网 2、使用镜像站,比如https://ghproxy.com 3、修改host文件
这里介绍修改host文件的方法 1、访问ip138 ,输入以下域名进行解析ip
1 2 3 4 5 6 github.com gist.github .com assets-cdn.github .com github.global .ssl .fastly .net raw.githubusercontent .com api.github .com
STYLUS
解析得到的ip要检验是否能够访问,使用cmd,输入ping 解析到的ip
进行检验
2、打开文件管理器进入C:\Windows\System32\drivers\etc\
,将hosts文件复制到其他地方(避免权限问题导致无法保存,当然也可以在开始菜单中找到记事本,右键选“以管理员身份运行”,再打开这个文件),打开,用以下的格式填写域名和对应的ip,例如
1 2 3 4 5 6 20.205.243.166 github.com20.205.243.166 gist.github.com185.199.110.153 assets-cdn.github.com151.101.77.194 github.global.ssl.fastly.net182.43.124.6 raw.githubusercontent.com20.205.243.168 api.github.com
ACCESSLOG
保存并退出,并将文件移动到原来的地方 3、打开cmd,输入以下指令,刷新dns缓存
如果之后出现无法访问,再使用ping命令找出无法访问的ip地址,并替换
在linux的也是类似的修改方法,使用sudo vim /etc/hosts
修改hosts文件,再用sudo systemctl restart systemd-networkd.service
应用修改
windows系统使用microsoft activation scripts激活windows系统和officeMicrosoft-Activation-Scripts支持激活Windows系统和office办公工具,开源,小巧,支持HWID/Ohook/KMS38/Online KMS激活方式。Ohook激活方式仅支持激活office,但是支持永久激活,不会有KMS激活的180天的期限,推荐使用
使用powershell下载microsoft activation scripts这是官方推荐方法,先打开powershell,然后输入下面命令
1 irm https ://massgrave.dev/get | iex
LIVECODESERVER
下载成功后会自动弹出Microsoft-Activation-Scripts窗口,根据提示进行激活操作
这种方法并不会下载文件到硬盘中,所以在结束Microsoft-Activation-Scripts运行后不会留下任何文件,下次使用时需要再次使用上面的命令下载
使用传统方法下载microsoft activation scripts从官网链接下载Microsoft Activation Scripts下载 如果下载失败,可以选择github镜像站下载github镜像站下载 下载得到压缩包后,解压,然后依次打开Microsoft-Activation-Scripts\MAS\All-In-One-Version
,双击MAS_AIO.cmd启动Microsoft Activation Scripts,根据提示进行激活操作
windows系统启用长路径支持在Windows API
中,路径的最大长度为MAX_PATH
,定义为260个字符。本地路径按以下顺序构建:驱动器号、冒号、反斜杠、用反斜杠分隔的名称组件以及终止null
字符。 例如,驱动器 D 上的最大路径为D:\some 256 个字符的路径字符串<NUL>
,其中<NUL>
表示当前系统代码页的不可见终止null
字符。
此处使用的字符<>
是为了直观明了,不能是有效路径 string 的一部分
例如,如果将具有长文件名的 git 存储库克隆到本身具有长名称的文件夹,则可能会达到此限制。此时就可以通过启用长路径支持来解决这个问题
创建一个reg后缀的文件,输入下面的内容
1 2 3 4 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet\Control\File System ]"LongPathsEnabled" =dword:00000001
NSIS
保存后双击运行
打开一个具有管理员权限的powershell,输入下面的命令并回车
1 2 New -ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" ` -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
PGSQL
按下Win+R
快捷键,输入gpedit.msc
并回车打开组策略管理器 选择计算机配置
->管理模版
->系统
->文件系统
->启用Win32长路径
,将该选项调成已启用
,确定后保存
参考:https://learn.microsoft.com/zh-cn/windows/win32/fileio/maximum-file-path-limitation
如何防止windows defender误删文件Windows Defender在扫描文件时,如果发现有疑似的恶意文件,就自动删掉并告知用户,而且没有文件恢复功能。当安装了其他的杀毒软件,Windows Defender的自动扫描病毒功能将自动关闭,但如果不小心打开了就很难关掉,所以下面的方法可以阻止Windows Defender误删文件
1、打开Windows Defender界面 打开Windows开始菜单,找到Windows安全中心
,点击打开界面
2、进入添加添加忽略项目的界面 点击病毒和威胁防护
->“病毒和威胁防护”设置
->管理设置
->排除项
->添加或删除排除项
,进入添加添加忽略项目的界面
3、添加排除项 点击添加排除项
->文件夹
,在这个界面选择需要排除的文件夹(或者盘符),然后点击选择文件夹
进行保存,之后Windows Defender将自动忽略这些已添加的文件夹,防止误杀
 
解决 PowerShell 无法执行脚本问题Windows PowerShell 默认开启安全限制,导致无法执行一些脚本。使用管理员权限运行 PowerShell,输入下面的命令解除这个限制。
1 2 Set -ExecutionPolicy Set -ExecutionPolicy
GAMS
参考:https://www.cnblogs.com/naturl/p/14808044.html
在 MSYS2 安装 MicroMamba
在 MicroMamba Releases 里下载 micromamba-win-64
文件,将文件命名成micromamba.exe
后放到~/.local/bin
文件夹中。
运行下面的命令初始化 MicroMamba 配置。
1 ~/.local/bin/micromamba shell init --shell bash --root-prefix "$HOME /micromamba"
BASH
编辑 Shell 配置文件,添加 MicroMamba 的配置。
1 vim "~/.${SHELL#/usr/bin/} rc"
BASH
加入以下的内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 export PATH="$PATH :$HOME /.local/bin" export MAMBA_EXE="$HOME /.local/bin/micromamba.exe" ;export MAMBA_ROOT_PREFIX="$HOME /micromamba" ;case ${SHELL#/usr/bin/} in zsh) eval "$("$MAMBA_EXE " shell hook --shell bash --root-prefix "$MAMBA_ROOT_PREFIX " | dos2unix) " __mamba_exe () { "${MAMBA_EXE} " "${@} " } __mamba_hashr () { if [ -n "${ZSH_VERSION:+x} " ]; then rehash elif [ -n "${POSH_VERSION:+x} " ]; then : else hash -r fi } __mamba_xctivate () { local ask_mamba ask_mamba="$(PS1="${PS1:-} " __mamba_exe shell "${@} " --shell bash | dos2unix) " || return eval "${ask_mamba} " __mamba_hashr } __mamba_wrap () { local cmd="${1-__missing__} " case "${cmd} " in activate|reactivate|deactivate) __mamba_xctivate "${@} " ;; install|update|upgrade|remove|uninstall) __mamba_exe "${@} " || return __mamba_xctivate reactivate ;; self-update) __mamba_exe "${@} " || return if [ -f "${MAMBA_EXE} .bkup" ]; then rm -f "${MAMBA_EXE} .bkup" fi ;; *) __mamba_exe "${@} " ;; esac } __exe_name="$(basename "${MAMBA_EXE} " ) " __exe_name="${__exe_name%.*} " if [[ "${__exe_name} " == "micromamba" ]]; then micromamba () { __mamba_wrap "${@} " ; } elif [[ "${__exe_name} " == "mamba" ]]; then mamba () { __mamba_wrap "${@} " ; } else echo "Error unknow MAMBA_EXE: \"${MAMBA_EXE} \", filename must be mamba o2" fi if [ -z "${CONDA_SHLVL+x} " ]; then export CONDA_SHLVL=0 export PATH="${MAMBA_ROOT_PREFIX} /condabin:${PATH} " if [ -z "${PS1+x} " ]; then PS1= fi fi if [ -n "${ZSH_VERSION:+x} " ]; then if ! command -v compinit > /dev/null; then autoload -U +X compinit && if [[ "${ZSH_DISABLE_COMPFIX-} " = true ]]; then compinit -u else compinit fi fi autoload -U +X bashcompinit && bashcompinit _umamba_zsh_completions () { COMPREPLY=($(__mamba_exe completer "${(@s: :)${(@s: :)COMP_LINE} :1} " )) } complete -o default -F _umamba_zsh_completions micromamba fi if [ -n "${BASH_VERSION:+x} " ]; then _umamba_bash_completions () { COMPREPLY=($(__mamba_exe completer "${COMP_WORDS[@]:1} " )) } complete -o default -F _umamba_bash_completions micromamba fi ;; *) eval "$("$MAMBA_EXE " shell hook --shell bash --root-prefix "$MAMBA_ROOT_PREFIX " ) " ;;esac
BASH
配置文件参考:Micromamba >v1.4.5 broken with cygwin · Issue #2683 · mamba-org/mamba
重载 Shell 配置。
1 source "~/.${SHELL#/usr/bin/} rc"
BASH
使用下面的命令添加 Conda 源。
1 2 3 micromamba config append channels conda-forge micromamba config append channels nodefaults micromamba config set channel_priority strict
BASH
完成后就可以使用 MicroMamba 安装软件包了。
在 Zsh 上可能会出现一些问题,比如出现parse error near
^M’`之类的错误导致运行异常。
配置 Conda 镜像源编辑.condarc
文件,将配置修改成下方的。
1 2 3 4 5 6 7 8 9 10 11 12 13 channels : - defaults - conda-forge - nodefaults channel_priority : strict show_channel_urls : true default_channels : - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels : conda-forge : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
NESTEDTEXT
清理旧的使镜像源生效。
参考:https://help.mirrors.cernet.edu.cn/anaconda
 
修复 Windows 更新出现下载错误 - 0x80248007
在 Windows 11 系统下载地址下载 Windows 系统镜像,使用镜像进行更新。
参考:Win11系统更新提示:安装错误 - 0x800f0991 和 0x8007025d。 - Microsoft Community
 
修复 Windows 更新出现下载错误 - 0x80248007
按下Win + R
,输入services.msc
并运行,找到Windows 更新
右键停止。
进入C:\Windows\SoftwareDistribution
路径,把DataStore
和Download
文件夹删掉。
再回到services.msc
,找到Windows 更新
右键启动。
重启系统。
参考:WIN10专业版系统更新提示0x80248007错误 - Microsoft Community
 
配置 Embed Python下载 embed python ,并解压。
进入 Embed Python 的文件夹,编辑python310._pth
文件,将#import site
改成import site
,如下。
1 2 3 4 5 python310.zip .import site
PYTHON
保存该文件后,下载 get-pip.py 到当前文件夹中,再打开终端运行get-pip.py
。
1 ./python .exe get -pip.py
VIM
运行成功后就配置好 Embed Python 了。
 
在 MSYS2 安装 LazyVim安装 NeoVim。
1 pacman -S mingw-w64-ucrt-x86_64-neovim
BASH
安装 LazyVim。
1 git clone https://github.com/LazyVim/starter "${LOCALAPPDATA} /nvim"
BASH
PCL2 CE 启动器禁用启动弹窗Win + R
打开启动界面,输入regedit
后回车打开注册表编辑器。
在注册表地址栏输入计算机\HKEY_CURRENT_USER\Software\PCLCE
后回车,进入 PCL2 CE 的注册表项。
右键打开菜单,选择新建
-> 字符串值
,将新建的字段改名为UiLauncherCEHint
,再双击该字段,将数值数据改为False
,再点击确定保存。
Windows 设置盘符图标在盘符根目录新建 autorun.inf 文件,写入下面的内容:
1 2 [autorun] icon=icon.ico
INF
再把 icon.ico 图标文件放进盘符根目录,最后运行下面的命令隐藏这些文件。
1 2 attrib +s +h +r autorun.inf attrib +s +h +r icon.ico
BASH
制作图标可以用 ffmpeg 命令把图片转换成 icon 图标文件:
1 ffmpeg -i <图片路径> -s "256x256" -filter_complex "scale=sws_flags=lanczos" -r 1 icon.ico
BASH
这个命令会把图片转换成 256x256 分辨率的图标。
如果要取消隐藏文件,可以用attrib -s -h -r <文件路径>
命令取消隐藏文件。
Android 列出分区1 ls -l /dev/block/by-name/*
BASH
提取boot1、查看boot所对应的分区:
1 ls -l /dev/block/by-name/*
BASH
显示对应分区为sdc11 2、提取:
1 dd if =/dev/block/sdc11 of=/手机其他路径/boot.img
BASH
刷入boot1、方法1: 使用dd
指令 2、方法2:
1 fastboot flash boot boot.img
BASH
termux-change-repo
(换源)termux-fix-shebang
termux-info
termux-open
termux-open-url
termux-reload-settings
termux-reset
termux-setup-storage
termux-wake-lock
termux-wake-unlock
安装 Linux 容器1 apt install proot-distro
BASH
termux保持终端运行安装tmux:
运行tmux:
termux安装linux脚本链接https://gitee.com/skymysky/linux#tmoe-linux
 
miui13获取电池健康度
1、获取系统调试日志 方法一: 连续点击音量键的上下键3次 方法二: 打开拨号界面,输入下面的内容
2、解压日志文件 进行上一步骤后,通知栏就显示生成bug报告
,等待生成完成 然后打开手机文件管理器,找到MIUI/debug_log
路径,在这个目录下会看到bugreport-xxx.zip
,将这个压缩包解压
3、查看日志内容 解压完成后,在解压出来的文件夹中找到mtdoops.md
文件,打开,搜索healthd
这时会看到很多个搜索结果,一般第一个结果为最新的 在搜索结果的那一行中v
的值即为电池的真实容量 将这个值除以电池原容量即可得到电池健康度百分比
1 健康度百分比= 真实容量/原容量x100%
ABNF
解决 Termux 无法运行 Jupyter安装 Jupyter
1 2 apt install cmake make clang build-essential patchelf ninja libzmq-static libzmq rust cargo-c pip install notebook ipykernel jupyterlab-language-pack-zh-CN
BASH
启动时显示以下报错:
1 ImportError: dlopen failed: cannot locate symbol "PyExc_ImportError" referenced by "/data/data/com.termux/files/usr/lib/python3.11/site-packages/zmq/backend/cython/_zmq.cpython-311.so" ...
LASSO
输入下面的命令解决
1 patchelf --add-needed libpython3.11.so /data/data/com.termux/files/usr/lib/python3.11/site-packages/zmq/backend/cython/_zmq.cpython-311.so
BASH
参考:https://github.com/numpy/numpy/issues/24909
使用 Termux 运行 Ollama安装额外源
1 apt install tur-repo
BASH
更新 apt 源并安装 Ollama
1 apt update && apt install ollama
BASH
启动 Ollama 服务
此时可以运行 Ollama 的其他功能了
比如运行 Qwen 2.5 0.5b
1 ollama run qwen2.5 :0 .5 b-instruct-q2_k
APACHE
其他模型可在此查看:Ollama - Models
linux linux快捷键进入tty界面:Ctrl+Alt+F2/F3/…F6
退出tty界面:Ctrl+Alt+F7
勾选复选框:空格
命令行中终止程序:Ctrl+C
命令行中翻页:shift+pageup/pagedown
或pageup/pagedown
tty终端快捷键停止屏幕输出Ctrl+S
恢复屏幕输出Ctrl+Q
中断程序Ctrl+C
退出终端(相当于输入exit
)Ctrl+D
在提示字符下将整列命令删除Ctrl+U
暂停目前命令Ctrl+Z
命令补全/文件补齐/参数补齐Tab
重新启动xorgCtrl+Alt+backspace
debian系linux发行版 更新软件包缓存:
更新软件:
安装软件:1 2 3 4 5 6 7 sudo apt install 软件名 sudo apt install --no-install-recommends 软件名 sudo apt install --install-recommends package sudo apt purge 软件名 --autoremove sudo dpkg -i xxx.deb sudo dpkg -i *.deb sudo apt --fix-broken install
BASH
编译deb安装包
需安装debhelper
cmake
make
1 2 dpkg-buildpackage -us -uc -nc make -j2 deb-pkg
BASH
linux mint解决中文不全
此方法适用于基于ubuntu系发行版
1 sudo apt install language-pack-zh-hans language-pack-gnome-zh-hans libreoffice-l10n-zh-cn thunderbird-locale-zh-hans thunderbird-locale-zh-cn firefox-locale-zh-hans language-pack-gnome-zh-hans-base
BASH
linux mint安装多媒体解码器1 sudo apt install mint-meta-codecs
BASH
1 sudo apt install --install-recommends open-vm-tools open-vm-tools-desktop
BASH
安装桌面
安装 C / C++ 编译环境1 sudo apt install cmake make clang build-essential ninja --install-recommends
BASH
linux命令 关闭某个窗口:
(此时鼠标变为X,点击某个窗口即可关闭)
列出硬盘与分区:
启动硬盘分区编辑:
格式分区为指定文件系统
ext3
可以替换成fat32
,ntfs
,ext4
等
1 mkfs -t ext3 /dev/sda4
BASH
修复ntfs分区不能写入文件
sda3为分区
1 sudo ntfsfix /dev/sda3
BASH
关闭软件
会关闭带有该关键词的进程
qemu-kvm启用nat网络模块1 sudo virsh net-start --network default
BASH
在tty终端中启动xorg
终端在后台运行命令
桌面卡死解决方法1 sudo systemctl restart lightdm
BASH
lightdm为桌面管理器,可替换为sddm或gdm
安装grub2
sda为硬盘,可更换为sda1或其他硬盘分区
1 sudo grub-install /dev/sda
BASH
刷新图标缓存1 2 3 update-icon-caches /usr/share/icons/hicolor update-desktop-database /usr/share/applications update-mime-database /usr/share/mime
BASH
测试硬盘性能1 fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --bs=4k --iodepth=64 --size=1G --readwrite=randrw --runtime=600 --numjobs=8 --time_based=1
BASH
挂载硬盘
更改终端显示语言显示目前所支持语系:
1 2 3 4 locale LANG=zh.CN.utf8 (省略) LC_ALL=
BASH
修改语系:
1 2 LANG=en.US.utf8export LC_ALL=en.US.utf8
BASH
LANG与输出信息有关,若要更改其他不同的信息,要同步更新LC_ALL
bash环境配置文件全局:
1 2 3 4 /etc/ profile/etc/ profile.d/*.sh/etc/ locale.conf/usr/ share/bash-completion/ completions/*
AWK
用户:
1 2 3 4 5 ~/.bash-profile ~/.bash-login ~/.profile ~/.bashrc (只会读取其中一个)
BASH
安装docker后进行apt upgrade时出现pending kernel upgrade选项的解决方法安装docker
时会自动安装needrestart
,卸载needrestart
后解决
linux查询命令用法1 2 3 【命令】 --help info 【命令】 man 【命令】
BASH
archlinux安装教程https://zhuanlan.zhihu.com/p/138951848 https://wiki.archlinuxcn.org/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97
在vmware安装与优化archlinux教程https://wiki.archlinux.org/title/VMware/Install_Arch_Linux_as_a_guest#VMware_Tools_versus_Open-VM-Tools
linux安装和配置kvm-qemu教程https://blog.csdn.net/weixin_35379749/article/details/116632599 https://blog.csdn.net/allway2/article/details/122160151 https://cloud.tencent.com/developer/article/2067416 https://blog.csdn.net/dwj1979/article/details/85232191 https://www.bilibili.com/read/cv12760387 https://zhuanlan.zhihu.com/p/428845384 https://liucreator.gitlab.io/zh/posts/0x0b-single-gpu-passthrough/main/
virtual box虚拟机自动进入uefi sheill的解决方法
同样也适用于qemu/kvm
https://www.bilibili.com/read/cv15426771
cinnamon主题修改教程https://forums.linuxmint.com/viewtopic.php?f=211&t=155400 https://forums.linuxmint.com/viewtopic.php?t=156948
cmake命令教程https://blog.csdn.net/yulesyu/article/details/122200780
make命令教程https://www.cnblogs.com/nosadness/p/5136652.html
checkinstall命令教程https://wiki.debian.org/CheckInstall
debian系安装fcitx5输入法1 sudo apt install --install-recommends fcitx5 fcitx5-chinese-addons
BASH
重启后一般自动生效,如果没有生效,手动进行配置
如果需要使用输入法皮肤,可使用ssfconv 将搜狗输入法的皮肤进行转换,将转换好的文件放入~/.local/share/fcitx5/themes
目录中
参考:https://wiki.debian.org/zh_CN/I18n/Fcitx5
wine安装和配置 在debian系的linux发行版可以参考以下连接安装winehqhttps://mirrors.tuna.tsinghua.edu.cn/help/wine-builds/
wine安装字体1:先从Windows系统中把微软雅黑
字体提取出来(在系统分区的Windows/Fonts
目录下),搜索msyh
关键字能找到3个文件,分别是msyh.ttc
,msyhbd.ttc
,msyhl.ttc
,其实也就是常规字体、粗体和细体,把它们(只复制第一个也可以)复制到Ubuntu系统用户主目录的~/.wine/drive_c/windows/Fonts
目录下面,.wine
是隐藏文件夹,在主目录文件夹里按Ctrl+H
即可显示。 2:然后随便找个地方新建一个空文本,取名为msyh_font.reg
(后缀是reg
即可,文件名随便取的),终端命令操作:
1 sudo gedit msyh_font.reg
BASH
再把下面内容复制进去(注意,如果你只复制了常规字体,下面应该全部填msyh.ttc
):
1 2 3 4 5 6 7 8 9 10 11 REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]"Lucida Sans Unicode" = "msyh.ttc" "Microsoft Sans Serif" = "msyh.ttc" "MS Sans Serif" = "msyh.ttc" "Tahoma" = "msyh.ttc" "Tahoma Bold" = "msyhbd.ttc" "msyh" = "msyh.ttc" "Arial" = "msyh.ttc" "Arial Black" = "msyh.ttc"
ABNF
保存好之后,终端执行命令才能生效:
1 regedit msyh_font.reg
BASH
3:进入wine目录,编辑system.reg
配置文件:
1 sudo gedit ~/.wine/system.reg
BASH
查找关键词FontSubstitutes
,把它下面挨着的“MS Shell Dlg”=”SimSun”
改为“MS Shell Dlg”=“msyh”
改完记得保存。 4:终端执行命令打开wine配置管理:
选中默认设置,再把系统改成Windows 10
或者Win 7
,这个随意,只要不是XP什么的就行,因为老系统上没有雅黑这个字体,所以会看不到效果。 最好是重启下系统或者注销一下,搞定!既能解决乱码问题,又美观。
wine手动安装wine-gecko和wine-momowine在初次安装并在终端输入winecfg
后,会自动下载安装wine-mono
和wine-gecko
两个插件 但是自动下载会很慢,而且还不一定能下载成功,因此最好选择手动下载
1、在下面找到并下载最新版的wine-gecko
和wine-momo
安装包(32位和64位都要下载),格式为msi
https://mirrors.tuna.tsinghua.edu.cn/winehq/wine/wine-gecko/ https://mirrors.tuna.tsinghua.edu.cn/winehq/wine/wine-mono/
2、在当前目录打开终端,输入以下指令安装
1 wine start /i xxxx.msi
BASH
(xxxx.msi
指刚刚下载好的安装包)
3、验证是否安装成功 运行winetricks
(需要手动安装,一般在主流的Linux发行版的仓库中有安装包) 进入winetricks后,依次选择:选择默认的wine容器
→运行卸载程序
, 在弹出的界面中,如果发现了wine-mono和wine-gecko的相关软件,则说明安装成功了
安装deepin wine环境与应用在debian和ubuntu上的移植仓库
使用deepin官方原版软件包
1.添加仓库 首次使用时,你需要运行如下一条命令将移植仓库添加到系统中。
1 wget -O- https://deepin-wine.i-m.dev/setup.sh | sh
BASH
2.应用安装 自此以后,你可以像对待普通的软件包一样,使用apt-get系列命令进行各种应用安装、更新和卸载清理了。 比如安装微信只需要运行下面的命令,
1 sudo apt-get install com.qq.weixin.deepin
BASH
将com.qq.weixin.deepin
替换为下列包名,可以继续安装其他应用:
应用
包名
微信
com.qq.weixin.deepin
QQ
com.qq.im.deepin
TIM
com.qq.office.deepin
钉钉
com.dingtalk.deepin
阿里旺旺
com.taobao.wangwang.deepin
QQ音乐
com.qq.music.deepin
QQ视频
com.qq.video.deepin
爱奇艺
com.iqiyi.deepin
完整列表参见https://deepin-wine.i-m.dev。
linux更改grub主题
这里以deepin主题演示
1、创建主题文件夹 在/boot/grub
里创建主题目录themes
1 sudo mkdir -p /boot/grub/themes
BASH
2、解压 解压下载的主题压缩包,得到deepin
文件夹 3、复制 将deepin
文件夹复制到/boot/grub/themes
文件夹下
1 sudo cp -r deepin/ /boot/grub/themes/
BASH
4、修改配置文件 修改/etc/default/grub
,将主题添加到配置文件中
1 vim /etc/default/grub
BASH
添加这一行
1 GRUB_THEME ="/boot/grub/themes/deepin/theme.txt"
INI
注意哦,这个引号是英文的 5、更新 grub
主题文件夹中包含:icons
:多种系统的图标background.jpg
:背景图theme.txt
:grub 主题样式文件 其他图片:零散的图片为启动背景需要
ubuntu下切换桌面管理器以切换到GDM
为例,打开终端,使用命令:
1 sudo dpkg-reconfigure gdm3
BASH
然后选择GDM
,按下Enter选择即可。然后重启计算机生效。同样,可以用其他DM如KDM
,SLim
,LightDM
来替换上述命令中的gdm来进行DM间切换
linux在tty界面中文乱码解决方案 centos解决tty界面中文乱码1.安装fbterm 2.安装中文字体 3.配置fbterm 一、安装FbTerm:fbterm源码 1.首先安装编译fbterm依赖包
1 yum -y install freetype-devel fontconfig-devel
BASH
2.下载fbterm压缩包
1 wget http://fbterm.googlecode.com/files/fbterm-1.7.0.tar.gz
BASH
3.将fbterm源代码解压缩至/usr/local/src
目录下
1 tar -zxvf fbterm-1.7.0.tar.gz -C /usr/local/src
BASH
4.不解释
1 cd /usr/local/src/fbterm-1.7
BASH
5.建立MakeFile
6.编译安装
1 make && make install
BASH
7.进入fbterm终端
至此,如果不出意外,你的fbterm已经可以支持中文显示了,但由于fbterm的默认字体mono显示不怎么好看,于是决定换一下字体 二、安装字体 1.将自己喜欢的字体文件放到Linux字体目录/usr/share/fonts
下,博主在fonts
目录下又创建一个目录truetype
,通过U盘拷贝将自己喜欢的字体放在这个目录。具体操作过程如下:
1 2 3 4 5 6 7 8 9 10 cd /usr/share/fontsmkdir truetype mount -t vfat -o iocharset=cp950 /dev/sdb1 /mnt/Udiskcd /mnt/Udiskcp ./msyh.ttf /usr/share/fonts/truetypecd /usr/share/fonts/truetype umount /mnt/Udisk
BASH
2.更改字体文件权限
1 chmod 644 ./msyh.ttf
BASH
3.注册字体
1 2 3 mkfontscale mkfontdir fc-cache -fv
BASH
4.查看系统已有字体
能找到Microsoft YaHei哦,说明字体安装成功了 说明:看到有的文章说要先创建字体的连接文件之后再注册字体,经博主亲测,连接文件完全没有必要,直接复制进去就可以注册字体使用了。
ubuntu解决tty界面中文乱码下载命令:
1 sudo apt-get install fbterm
BASH
会自动下载完成,下载完成后运行
更改字体和字体大小
修改成以下内容
1 2 font-names =Ubuntu Mono font-size =14
INI
把./fbterm
复制一份到/home/username/
目录下,username
为你的用户名 更改权限
1 2 chmod 755 ~/.fbtermrc sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm
BASH
使其不在ROOT模式下也可以显示Ctrl+Alt+E
退出再重新登录输入命令fbterm
,即可正常显示
参考:http://fcitx-im.org/wiki/Fbterm
linux mint cinnamon推荐装的任务栏插件Network Data Usage Monitor Simple CPU Monitor Download and upload speed
gnome桌面推荐插件dash to panel network stats openweather removable drive menu simple system monitor topicons plus
安装gnome桌面插件管理1 sudo apt install gnome-tweaks gnome-extensions-app
BASH
linux安装v2ray安装和更新 V2Ray
1 bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
BASH
如果为Debian系的版本可以从仓库中安装
1 sudo apt install v2ray
BASH
安装最新发行的geoip.dat
和geosite.dat
1 bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh
BASH
移除 V2Ray
1 bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) --remove
BASH
启动v2ray
1 2 3 systemctl enable v2ray systemctl start v2ray systemctl status v2ray
BASH
linux安装v2raya添加公钥
1 wget -qO - https://apt.v2raya.mzz.pub/key/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/v2raya.asc
BASH
添加 V2RayA 软件源
1 2 echo "deb https://apt.v2raya.mzz.pub/ v2raya main" | sudo tee /etc/apt/sources.list.d/v2raya.list sudo apt update
BASH
安装 V2RayA
1 sudo apt install v2raya
BASH
启动v2rayA
1 sudo systemctl start v2raya
BASH
停止v2rayA
1 sudo systemctl stop v2raya
BASH
linux主题路径主题:~/.themes/
或/usr/share/themes/
鼠标指针:~/.icons
或/usr/share/icons/
linux启用sysrq编辑/etc/sysctl.conf
1 sudo vim /etc/sysctl.conf
BASH
将kernel.sysrq设置为1
如果要禁用则设置为0
linux卡死后使用sysrq安全重启方法左手一直长按ctrl+alt键
,右手先按Print Screen SysRq
这个键后松开后,右手依次r
,e
,i
,s
,u
,b
这几个键,每次间隔1秒,会发现桌面依次发生变化,最后重启关机;
这几个键的含义如下: 键就是PrintScreen
(屏幕截图)按键重合,直接系统请求 这个时候r
,e
,i
,s
,u
,b
中的每一个字母都是一个独立操作,分别表示: r : unRaw 将键盘控制从 X Server 那里抢回来 e : tErminate 给所有进程发送 SIGTERM 信号,让它们自己解决善后 i : kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭 s : Sync 将所有数据同步至磁盘 u : Unmount 将所有分区挂载为只读模式 b : reBoot 重启
cinnamon切换虚拟桌面切换桌面Ctrl+Alt+方向左右键
虚拟桌面管理Ctrl+Alt+方向上键
在当前桌面切换应用Ctrl+Alt+方向下键
快捷将当前选中窗口移动到其他虚拟桌面 鼠标左键按住窗口+Ctrl+Alt+方向左右键
linux设置开机自动登录lightdm: 修改/etc/lightdm/lightdm.conf
找到#autologin-user=
这一行
将前面的#
去掉,等号后加用户名
这样lightdm配置完毕,重启后生效 gdm: 修改/etc/gdm/custom.conf
1 2 3 4 5 6 [daemon] AutomaticLoginEnable =True AutomaticLogin =用户名TimedLoginEnable =True [security] AllowRoot =True
INI
gdm配置完毕,重启后生效
linux创建软链接
例:
1 ln -s /home/用户名/下载/文件/test /home/用户名/下载/
BASH
此时会在/home/用户名/下载/
生成test
快捷方式,并链接到真实路径/home/用户名/下载/文件/test
linux mint使用samba共享
方法基于samba,nemo,nemo-share,cinnamon-settings-users
1、安装samba
1 sudo apt install samba
BASH
2、编辑samba配置文件,添加参数
1 sudo vim /etc/samba/smb.conf
VIM
添加以下参数
1 usershare owner only = false
PGSQL
如果需要给 home 目录读写权限,需要将 read only 修改为 no
参考:https://forums.linuxmint.com/viewtopic.php?t=77063 3、设置账户samba密码
1 sudo smbpasswd -a 用户名
BASH
重复输入两次密码,完成 4、添加用户到sambashare组 启动cinnamon-settings-users
1 sudo cinnamon-settings-users
BASH
找到当前的用户,点击组,在弹出的选项中找到sambashare
,勾选并确定
5、打开nemo文件管理器,右键将要共享的文件夹,,选择共享选项
,启用共享此文件夹
,此时文件共享成功 在Windows文件管理器中输入\\ip
即可访问
在原基础上添加新的用户进行访问1、添加新的Linux系统用户:
2、设置新用户名密码:
1 sudo smbpasswd -a 用户名
BASH
3、设置新samba用户密码:
1 sudo smbpasswd -a 用户名
BASH
4、重启后生效
注:此方法可以通过配置好samba基本设置后理由nemo-share快速分享 但无法令每个用户单独访问各自文件夹 所以有局限性 想实现完整功能需使用纯samba配置法
linux用户和用户组命令;groupadd
添加用户组useradd
增加一个新用户或者更新默认新用户信息usermod
更改用户帐户属性 说明; 在 Linux 用户系统中存在两类组。 第一类是主要用户组
(主组),第二类是附加用户组
(附属组)。 主组:也被称为primary group、first group或initial login group,用户的默认组,用户的gid所标识的组。 附属组:也被称为Secondary group或supplementary group,用户的附加组。 存储文件: 用户帐户及相关信息都存储在/etc/passwd
文件中, 用户组信息存储在/etc/shadow
和/etc/group
文件。 通过id命令查看用户的主组和附属组:
1 2 3 4 5 6 [root@localhost ~] uid=0(root) gid=0(root) groups =0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) [root@localhost ~] uid=503(gg) gid=503(gg) groups =503(gg) [root@localhost ~] uid=502(mm) gid=500(jww) groups =500(jww)
BASH
gid
标识主组,groups
表示用户所属的全部组(主组和附属组) 用户必须有且只能有一个主组,可以有0个、1个或多个附属组 新增一个用户并添加到指定用户组:
检查用户组是否存在
如果组存在则会输出组信息,否则没有任何输出
1 grep <用户组名称> /etc/group
BASH
如果用户组不存在则使用如下命令新建用户组
新建用户并将其加入指定用户组并作为其主用户组
每个用户有且只有一个主用户组
1 useradd -g <用户组名称> <用户名称>
BASH
或者新建用户
将其加入指定附属用户组,附属用户组可以有多个,多个附属组名称用逗号分隔即可
1 useradd -G <用户组名称> <用户名称>
BASH
设置用户密码
查看用户属性并检查是否添加到正确的用户组
常用添加用户命令(添加用户并添加到主组):
1 useradd -g <用户组名称> <用户名称>
BASH
将已有用户添加到指定用户组并作为其附属用户组
-a
代表append
,和-G
一起使用,将用户添加到新用户组中而不必来开原有的其他用户组
1 usermod -a -G <用户组名称> <用户名称>
BASH
将已有用户的主用户组改为新的用户组1 usermod -g <新的用户组名称> <用户名称>
BASH
添加用户,并指定家目录、所在组、登录shell等信息:
-m 自动建立用户家目录 -g 指定用户所在的组 -s 指定用户登录的shell
1 usermod -m -s /bin/bash -g <用户组名称> <用户名称>
BASH
将用户从该用户的附属组中删除1 gpasswd -d <用户名称> <用户组名称>
BASH
删除用户:
永久性删除用户账号
linux使用gdebi安装deb包安装gdebi
1 sudo apt install gdebi
BASH
用法:
gdebi会自动寻找软件依赖并安装 启动gdebi图形界面可运行gdebi-gtk
linux设置文件默认打开程序1 gio mime MIME类型类型 处理程序
BASH
例:
1 gio mime application/x-blender blender.desktop
BASH
blender.desktop为/usr/share/applications的图标文件 MIME类型类型可以用file --mime-type
命令查看
linux手动关联文件扩展名和打开程序当Linux不认识某种扩展名
的时候,需要为此扩展名
创建一个MIME类型
。 Linux是依据MIME类型
而不是扩展名
来决定打开程序的, 再将此种MIME类型与某程序菜单项关联 1、为扩展名建造一个MIME类型:
如果你的Linux已经认得这种扩展名,不需要做这一步。在你的文件管理器中,看看这种扩展名的文件有没有被正确识别。或使用file命令查看。
创建 application-x-扩展名.xml 内容:
1 2 3 4 5 6 7 8 9 <?xml version="1.0" encoding="UTF-8" ?> <mime-info xmlns ="http://www.freedesktop.org/standards/shared-mime-info" > <mime-type type ="application/x-扩展名" > <comment > 此种文件类型的描述</comment > <icon name ="application-x-扩展名" /> <glob-deleteall /> <glob pattern ="*.扩展名" /> </mime-type > </mime-info >
XML
放application-x-扩展名.xml
到~/.local/share/mime/packages/
刷新系统MIME数据库
1 update-mime-database ~/.local/share/mime
BASH
2、为程序建造一个菜单项:
如果此程序已经有菜单项,略过这一步。
创建程序.desktop , 内容:
1 2 3 4 5 6 7 8 9 10 11 [Desktop Entry] Version =1.0 Type =ApplicationName =显示的程序名Icon ="/path-to/图标文件" Exec ="/path-to/执行程序" %fPath ="/path-to/" (可选)NoDisplay =false (true 则不会在系统菜单中出现)Categories =UtilityStartupNotify =false Terminal =false
INI
其关键在于Exec=
行中的%f
将文件路径传递给执行程序。Exec=
也可以没有绝对路径直接使用命令,Icon=
也可以不用路径而直接写系统认可的图标名称。 放程序.desktop
文件到~/.local/share/applications/
3、设置用某程序打开MIME类型文件: 修改~/.config/mimeapps.list
或~/.local/share/applications/mimeapps.list
(废弃)
1 2 [Added Associations] application/x-扩展名= 程序.desktop
ABNF
其中application/x-扩展名
是你刚刚所创建的MIME类型
。如果MIME类型
是原有的不是刚刚创建的,替换为原有的MIME类型
名称。
linux关联文件扩展名的打开程序
根据 MIME 类型关联
1、查看文件 MIME 类型:
2、查询打开某类文件的默认程序:
3、设置打开某类文件的默认程序:
1 gio mime MIME类型 程序.desktop
BASH
将linux程序打包成deb格式的安装包1、创建一个文件夹:
2、在新建的文件夹中创建标准的目录结构:
1 2 3 ./DEBIAN ./opt/app ./usr/share/applications
JBOSS-CLI
在linux中, “ . “可表示为当前目录 DEBIAN文件夹包含了安装包的信息和安装、卸载时的脚本文件 “/opt/app/“存放可执行文件 “/usr/share/applications”存放应用菜单的启动图标 该文件夹中的”opt”,”usr”对应Linux根目录的”opt”,”usr”
3、将可执行文件放入./opt/app
文件夹 4、在./usr/share/applications
创建应用图标:
1 vim ./app//usr/share/applications/应用.desktop
BASH
填入以下内容:
1 2 3 4 5 6 7 8 9 10 11 [Desktop Entry] Encoding =UTF-8 Version =0.9 .4 Name =xxxx Comment =xxxx IDE Icon ="/opt/app/图标名称.png" Exec ="/opt/app/可执行文件名称" %f Terminal =false startupNotify =true Type =Application MimeType =application/x-blender
INI
5、在DEBIAN文件夹新建control
,postinst
,postrm
文件: control填入以下内容:
1 2 3 4 5 6 7 8 Package: app #软件包名 Version: 2.83 .20 # 软件版本 Maintainer: 303663454754 @qq.com # 维护者名字 Section: utilsHomepage: https://www.blender.org / # 软件主页网站(可不填) Architecture: amd64Priority: optionalDescription: blender2.83 .20 for linux # 描述
AVRASM
postinst填入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/bin/sh update-icon-caches /usr/share/icons/hicolor || true update-desktop-database /usr/share/applications || true update-mime-database /usr/share/mime || true
BASH
postrm填入以下内容:
1 2 3 4 5 6 7 8 9 10 #!/bin/sh update-icon-caches /usr/share/icons/hicolor || true update-desktop-database /usr/share/applications || true update-mime-database /usr/share/mime || true
BASH
6、打包文件;
1 dpkg -b ./app 软件名.deb
BASH
linux修复分区查询需要修复的磁盘盘符
进行修复
debian系linux发行版解决依赖问题当使用apt安装某个软件包时出现 ”无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系“ 这是因为这些依赖的软件包,系统已经安装过而且是更高的版本,而需要的是较低版本,所以会报错。 解决办法,使用 aptitude 代替 apt
1 2 sudo apt install aptitude sudo aptitude install <package>
BASH
首先建议 保持这些软件包的版本
,选择n
然后建议 降级软件包
,选择y
解决linux提示 输入密码以解锁您的登录密钥环 问题打开terminal,输入
若提示没安装则输入
1 sudo apt install seahorse
BASH
点击左上角➕号,新建一个钥匙环 密码为空 建立完成后设置为默认 再打开opera或者chrome将不会有【输入密码以解锁您的登录密钥环】这个提示
debian一些常用指令使用时显示 未找到命令 解决方法该问题原为其实造成这个问题的原因是没有把/sbin
的目录路径(系统用户目录)添加到PATH
变量中 1、临时解决方法: 使用su -
命令重新切换到root
根据官方man命令的说法,加上后面这个符号相当于使用root账户登录,会初始化对应的环境变量, 也就是加载上/usr/sbin/目录。
2、将/sbin
添加到环境变量中: 查看当前PATH
:
1 2 $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
BASH
如果没有/sbin
可以使用以下命令
1 export PATH=$PATH :/sbin/
BASH
临时把对应路劲加到PATH
变量中,测试一下是否可用。 但是这只是临时添加,断开ssh重连就失效了,需要永久添加需要编辑.bashrc
文件(每个用户都有.bashrc
文件,想要每个用户都能正常使用,需要去编辑每个用户的.bashrc
文件)
切换到用户目录:
编辑文件:
在最后一行添加
1 export PATH =$PATH :/usr/sbin
ELIXIR
保存后,执行一下
然后在重新查看一下PATH
变量
1 2 $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/sbin
BASH
可以看到,多了个/usr/sbin
现在就可以正常的使用reboot、service等命令
linux使用sudo显示 用户不在sudoers文件中此事将被报告 解决方法1、第一种解决方法: (1)进入root模式,su
,再输入正确密码 (2)通过vim打开sudoers并编辑
可以使用visudo
来编辑/etc/sudoers文件,并且这个方法带有语法错误检查,更安全
找到root ALL=(ALL) ALL
,在下方添加自己的账户并:wq!
进行强制保存退出 如:
1 2 root ALL =(ALL :ALL ) ALL 用户名 ALL =(ALL :ALL ) ALL
ADA
2、另一种解决方法: (1)进入root模式,su
,再输入正确密码 (2)将用户添加到sudo
组中
若没有sudo命令,则进入root模式,安装sudo apt install sudo (不同Linux发行版的安装命令可能不同,视具体情况而定)
debian中设置locale的方法locale的命名规则为<语言>_<地区>.<字符集编码>
,如zh_CN.UTF-8
,zh
代表中文,CN
代表大陆地区,UTF-8
表示字符集。 在locale环境中,有一组变量,代表国际化环境中的不同设置:
1.LC_COLLATE 定义该环境的排序和比较规则
2.LC_CTYPE 用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
3.LC_MONETARY 货币格式
4.LC_NUMERIC 非货币的数字显示格式
5.LC_TIME 时间和日期格式
6.LC_MESSAGES 提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如LANGUANE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”。
7.LANG LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL。
8.LC_ALL 它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响。
一个例子: 设置前,使用默认locale:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ locale LANG="POSIX" LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL=
BASH
“C”是系统默认的locale,”POSIX”是”C”的别名。所以当我们新安装完一个系统时,默认的locale就是C或POSIX。
设置zh_CN.GBK:
1 export LC_ALL=zh_CN.GBK
BASH
再次查看:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.GBK" LC_NUMERIC="zh_CN.GBK" LC_TIME="zh_CN.GBK" LC_COLLATE="zh_CN.GBK" LC_MONETARY="zh_CN.GBK" LC_MESSAGES="zh_CN.GBK" LC_PAPER="zh_CN.GBK" LC_NAME="zh_CN.GBK" LC_ADDRESS="zh_CN.GBK" LC_TELEPHONE="zh_CN.GBK" LC_MEASUREMENT="zh_CN.GBK" LC_IDENTIFICATION="zh_CN.GBK" LC_ALL=zh_CN.GBK
BASH
在debian中安装locales的方法如下通过apt-get install locales
命令安装locales
包 安装完成locales包后,系统会自动进行locale配置,你只要选择所需的locale,可以多选。 最后指定一个系统默认的locale。这样系统就会帮你自动生成相应的locale和配置好系统的locale。 增加新的locale也很简单,用dpkg-reconfigure locales重新配置locale即可。 我们也可手动增加locale,只要把新的locale增加到/etc/locale.gen
文件中, 再运行locale-gen命令即可生成新的locale。再通过设置上面介绍的LC_*变量就可设置系统的locale了。
下是一个locale.gen文件的样例:
1 2 3 4 5 6 7 zh_CN .GBK GBKzh_CN .UTF-8 UTF-8
APACHE
linux安装中文版man英文不好?没关系,往下看!!! 原官方下载地址http://code.google.com/p/manpages-zh/ Githu项目地址https://github.com/man-pages-zh/manpages-zh
安装方法一
1、Debian / Ubuntu安装
1 2 sudo apt update sudo apt install manpages-zh
BASH
2、Arch Linux:
1 2 pacman -Syu pacman -S man-pages-zh_cn man-pages-zh_tw
BASH
3、Red Hat / CentOS:
1 2 yum update yum install man-pages-zh-CN
BASH
4、Fedora:
1 2 dnf update dnf install man-pages-zh-CN
BASH
安装方法二
源码
1、获取安装包
1 wget https://src.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1.tar.gz/13275fd039de8788b15151c896150bc4/manpages-zh-1.5.1.tar.gz
BASH
2、解压并安装(最好使用root)
1 2 3 4 tar xf manpages-zh-1.5.1.tar.gzcd manpages-zh-1.5.1 ./configure --disable-zhtw --prefix=/usr/local/zhman make &&sudo make install
BASH
3、 为了不覆盖man,我们新建cman命令作为中文查询
1 2 3 cd ~echo "alias cman='man -M /usr/local/zhman/share/man/zh_CN' " >>.bash_profilesource .bash_profile
BASH
4.使用我们新建的中文cman查询命令
centos7中使用efibootmgr管理uefi启动项UEFI
是一种固件接口,在现代机器上已经取代了传统的BIOS。 UEFI固件的一个特性是能够在持久可编辑的NVRAM
(Non - Volatile RAM,非易失性内存)中保存启动项。 在UEFI模式下安装Linux操作系统时,通常会将相关的引导项写入NVRAM
,在某些情况下,我们可能希望执行手动操作,例如修改启动顺序、创建新的引导或删除旧的启动项。
安装:
CentOS7 默认以UEFI
模式安装,会自带efibootmgr
工具,如没有带可以使用下面命令安装:
1 yum -y install efibootmgr
BASH
列出 uefi 启动项条目在使用UEFI固件的系统上,UEFI启动项存储在NVRAM中。 要使用 efibootmgr列出现有的启动项,如果需要列出条目就是不带任何选项或参数地调用efibootmgr。 下面就是输出条目的命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $sudo efibootmgr BootCurrent: 0007 Timeout: 1 seconds BootOrder: 000A,0009,0004,0007,0008,0006,0000,0001,0002,0003,0005 Boot0000* debian Boot0001* CD/DVD Rom Boot0002* Hard Disk Boot0003* Network Boot0004* CentOS Boot0005* USB Storage Boot0006* oVirt Node Next Boot0007* CentOS Linux Boot0008* proxmox Boot0009* Linux Boot000A* Linux MirrorStatus: Platform does not support address range mirror DesiredMirroredPercentageAbove4G: 0.00 DesiredMirrorMemoryBelow4GB: false
BASH
其中有一些是之前安装系统保存下来的启动项,可以删除。 在上面的输出中,我们可以注意到与引导变量对应的一系列信息。 首先,我们可以看到BootCurrent:
这个键的值为0007
,表示当前启动的项目为0007
号CentOS Linux
。 在输出中发现的第二个条目是Timeout:
表示在启动菜单中自动选择条目之后的时间,在本例中是1
秒。 接下来是BootOrder:
这个键的值是由逗号分隔的条目编号,并显示相关条目在EFI引导菜单中显示的顺序。
efibootmgr
命令还显示了可用引导条目的列表。 每个条目显示其编号和名称。 在列表中,激活的条目它们被标记为*
符号。
获取条目的详细信息
可以添加 -v 或者–verbose 选项
1 2 3 4 5 6 7 8 9 10 11 $sudo efibootmgr -v BootCurrent: 0005 Timeout: 5 seconds BootOrder: 0006,0005,0004,0000,0001,0002,0003 Boot0000* UiApp FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1) Boot0001* UEFI VBOX CD-ROM VB2-01700376 ACPI(a0341d0,0)PCI(1,1)ATAPI(1,0,0)N.....YM....R,Y. Boot0002* UEFI VBOX HARDDISK VB6d6781ff-6793398b ACPI(a0341d0,0)PCI(d,0)SATA(0,ffff,0)N.....YM....R,Y. Boot0003* EFI Internal Shell FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1) Boot0004* CentOS Linux HD(1,800,64000,2c1c6263-e2bc-4f35-b341-a9174a199f60)File(\EFI\centos\shim.efi) Boot0005* Centos7.9-EFI HD(1,800,64000,2c1c6263-e2bc-4f35-b341-a9174a199f60)File(\EFI\centos\grubx64.efi) Boot0006* centos7.9 HD(1,800,64000,2c1c6263-e2bc-4f35-b341-a9174a199f60)File(\EFI\centos\grubx64.efi)
BASH
更改 uefi 启动项顺序我们可以使用efibootmgr来更改当前的引导顺序。 使用-o
或者--bootorder
选项,后添加想要排列的顺序。当前本机的引导顺序如下:
1 BootOrder : 000 A,0009 ,0004 ,0007 ,0008 ,0006 ,0000 ,0001 ,0002 ,0003 ,0005
APACHE
可以看到,首先启动000A Linux
,最后一个条目是0005 USB Storage
设备。 假设我们想要交换这些条目,让0003 Network
成为第一个条目。 我们所要做的就是运行以下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $ sudo efibootmgr -o 0003,000A,0009,0004,0007,0008,0006,0000,0001,0002,0005 BootCurrent: 0007 Timeout: 1 seconds BootOrder: 0003,000A,0009,0004,0007,0008,0006,0000,0001,0002,0005 Boot0000* debian Boot0001* CD/DVD Rom Boot0002* Hard Disk Boot0003* Network Boot0004* CentOS Boot0005* USB Storage Boot0006* oVirt Node Next Boot0007* CentOS Linux Boot0008* proxmox Boot0009* Linux Boot000A* Linux MirrorStatus: Platform does not support address range mirror DesiredMirroredPercentageAbove4G: 0.00 DesiredMirrorMemoryBelow4GB: false
BASH
可以看到顺序已经变了。网卡启动变为第一项了。
创建一条引导可以使用 efibootmgr
在 UEFI 引导管理器中创建新条目。 要创建引导项,我们必须知道EFI系统分区的位置和要引导的EFI映像的路径。 创建新条目时必须使用的选项是-c
或者--create
。 假设EFI分区在/dev/sda
磁盘的第一个分区,efi镜像的引导路径是EFI/centos/grubx64.efi
,名称为centos7.9
,我们将运行以下命令:
1 2 3 4 5 6 7 8 9 10 11 $ sudo efibootmgr -c -d /dev/sda -p 1 -L centos7.9 -l "\EFI\centos\grubx64.efi" BootCurrent: 0005 Timeout: 0 seconds BootOrder: 0006,0005,0004,0000,0001,0002,0003 Boot0000* UiApp Boot0001* UEFI VBOX CD-ROM VB2-01700376 Boot0002* UEFI VBOX HARDDISK VB6d6781ff-6793398b Boot0003* EFI Internal Shell Boot0004* CentOS Linux Boot0005* Centos7.9-EFI Boot0006* centos7.9
BASH
使用-c
选项创建一个新条目。-d
或--disk
来指定EFI系统分区所在的磁盘,使用-p
或--part
来指定该磁盘上的哪个分区是EFI分区(按照标准,EFI分区应该总是第一个,分区格式为FAT32)。
使用-L
或--label
来提供菜单中条目的名称,最后使用-l
或--loader
来传递要引导镜像的路径。 需要注意的是,路径应该以单引号形式提供。 创建的引导条目将自动放在引导顺序列表的顶部。
删除一条引导我们可以使用 efibootmgr 删除现有的引导项。 我们可以删除一个不存在的系统引导条目。 我们使用-b
或者--bootnum
传递索引作为参数来选择我们想要删除的引导条目,然后使用-B
或者--delete-bootnum
来删除它。
例如,要删除索引为0008
, 我们将运行以下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ sudo efibootmgr -b 8 -B Timeout: 1 seconds BootOrder: 0007,0003,000A,0009,0004,0006,0000,0001,0002,0005 Boot0000* debian Boot0001* CD/DVD Rom Boot0002* Hard Disk Boot0003* Network Boot0004* CentOS Boot0005* USB Storage Boot0006* oVirt Node Next Boot0007* CentOS Linux Boot0009* Linux Boot000A* Linux MirrorStatus: Platform does not support address range mirror DesiredMirroredPercentageAbove4G: 0.00 DesiredMirrorMemoryBelow4GB: false
BASH
Tips:在传递引导条目序号时,我们可以不填充前面的0。
激活、取消激活引导条目:
取消激活条目
如果不想显示某一个启动项可以使用 -A 或者 –inactive
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ sudo efibootmgr -b 000A -A Timeout: 1 seconds BootOrder: 0007,0003,000A,0009,0004,0006,0001,0002,0005 Boot0001* CD/DVD Rom Boot0002* Hard Disk Boot0003* Network Boot0004* CentOS Boot0005* USB Storage Boot0006* oVirt Node Next Boot0007* CentOS Linux Boot0009* Linux Boot000A Linux MirrorStatus: Platform does not support address range mirror DesiredMirroredPercentageAbove4G: 0.00 DesiredMirrorMemoryBelow4GB: false
BASH
可以看到 Boot000A Linux这一条前面的*消失了,这就代表不显示该条目了。
激活该条目
如果想显示某一个启动项可以使用 -a 或者 –active
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ sudo efibootmgr -b 000A -a Timeout: 1 seconds BootOrder: 0007,0003,000A,0009,0004,0006,0001,0002,0005 Boot0001* CD/DVD Rom Boot0002* Hard Disk Boot0003* Network Boot0004* CentOS Boot0005* USB Storage Boot0006* oVirt Node Next Boot0007* CentOS Linux Boot0009* Linux Boot000A* Linux MirrorStatus: Platform does not support address range mirror DesiredMirroredPercentageAbove4G: 0.00 DesiredMirrorMemoryBelow4GB: false
BASH
可以看到 Boot000A Linux
这一条前面的又回来了。
修改 uefi 引导管理器超时时间我们可以设置超时间隔,使用-t
或者-timeout
选项来设置,在此之后自动选择EFI引导管理器中的默认条目。我们可以设置时间长一点:
1 2 3 4 5 6 7 8 9 10 $ sudo efibootmgr -t 5 BootCurrent: 0005 Timeout: 5 seconds BootOrder: 0006,0005,0004,0000,0001,0002,0003 Boot0000* UiApp Boot0001* UEFI VBOX CD-ROM VB2-01700376 Boot0002* UEFI VBOX HARDDISK VB6d6781ff-6793398b Boot0003* EFI Internal Shell Boot0004* CentOS Linux Boot0005* Centos7.9-EFI
BASH
总结: 支持UEFI固件的机器将引导项存储在称为NVRAM的非易失性RAM中。 当我们安装Linu操作系统时,EFI引导管理器菜单中会自动添加一个对应的条目。
debian安装docker使用 APT 安装
由于 apt 源使用 HTTPS
以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS
传输的软件包以及 CA
证书。
1 2 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
BASH
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
使用国内源
1 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
BASH
使用官方源
1 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
BASH
然后,我们需要向sources.list
中添加Docker软件源: 在一些基于 Debian 的 Linux 发行版中$(lsb_release -cs)
可能不会返回Debian的版本代号,例如Kail Linux
,BunsenLabs Linux
。 在这些发行版中我们需要将下面命令中的$(lsb_release -cs)
替换为https://mirrors.aliyun.com/docker-ce/linux/debian/dists/
中支持的Debian版本代号,例如buster
。
使用国内源
1 echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee etc/apt/sources.list.d/docker.list > /dev/null
BASH
使用官方源
1 2 3 echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
BASH
以上命令会添加稳定版本的Docker APT
源,如果需要测试版本的Docker请将stable
改为test
。 安装 Docker: 更新 apt 软件包缓存,并安装 docker-ce。
1 2 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
BASH
也可以使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过--mirror
选项使用国内源进行安装:
1 sudo curl -fsSL get.docker.com -o get-docker.sh
BASH
或者
1 sudo sh get-docker.sh --mirror Aliyun
BASH
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)
版本安装在系统中。 #启动 Docker
1 2 sudo systemctl enable docker sudo systemctl start docker
BASH
配置镜像加速 请首先执行以下命令,查看是否在docker.service
文件中配置过镜像地址。
1 systemctl cat docker | grep '\-\-registry\-mirror'
BASH
如果该命令有输出,那么请执行sudo systemctl cat docker
查看ExecStart=
出现的位置,修改对应的文件内容去掉--registry-mirror
参数及其值,并按接下来的步骤进行配置。 如果以上命令没有任何输出,那么就可以在/etc/docker/daemon.json
中写入如下内容(如果文件不存在请新建该文件):
1 2 3 4 5 6 7 8 9 10 { "registry-mirrors" : [ "https://hub-mirror.c.163.com" , "https://mirror.baidubce.com" , "https://registry.docker-cn.com" "http://f1361db2.m.daocloud.io" , "https://docker.mirrors.ustc.edu.cn" , "https://1nj0zren.mirror.aliyuncs.com" , ] }
JSON
之后重新启动服务。
1 2 sudo systemctl daemon-reload sudo systemctl restart docker
BASH
窗口管理器安装和配置1、所需软件:sway
(窗口管理器)waybar
(顶栏)rofi
(搜索框)clip
(共享剪贴板)fonts-font-awesome
(特殊符号)
2、安装(以Debian为例):
1 sudo apt install sway waybar rofi clip fonts-font-awesome
BASH
3、配置; (1)配置sway: 创建配置文件
1 2 mkdir -p ~/.config/swaycp /etc/sway/config ~/.config/sway/
BASH
编辑配置文件
1 vim ~/.config/sway/config
BASH
待会要把swaybar换成waybar,所以将swaybar的内容注释掉 内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #Read `man 5 sway-bar` for more information about this section . bar { position top # When the status_command prints a new line to stdout, swaybar updates. # The default just shows the current date and time. status_command while date +'%Y- %m- %d %l :%M :%S %p ' colors { statusline #ffffff background #323232 inactive_workspace #32323200 #32323200 #5 c 5 c 5 c } }
LLVM
在配置文件中添加以下内容;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 bar { status_command waybar } output * bg /home /licyk /图片/1612527700412 .jpg fill bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK @ +5 %bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK @ -5 %bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK @ toggle bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE @ toggle bindsym XF86AudioPlay exec playerctl play-pause bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl previous bindsym XF86Search exec $menu bindsym --locked XF86AudioPlay exec playerctl play-pause exec wl-paste -t text --watch clipman store --no-persist xwayland enable input * xkb_numlock enable seat seat0 xcursor_theme cursor_theme_name 24 for_window [title =".*" ] title_format ゜%title ゜ exec hash dbus-update-activation-environment 2 >/dev /null && \ dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK bindsym $mod +Shift +w exec rofi -show drun exec_always --no-startup-id mpvpaper * /home /licyk /视频/咩栗动态壁纸1080p .mkv exec_always --no-startup-id fcitx5 output * resolution --custom 1440x900
DSCONFIG
(2)配置waybar: 创建~/.config/waybar
1 mkdir ~/.config/waybar
BASH
在里面创建config
和style.css
config内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 { "layer" : "top" , "position" : "top" , "ipc" : true , "height" : 35 , "modules-left" : [ "custom/launcher" , "sway/workspaces" , "sway/mode" , ] , "modules-right" : [ "network" , "cpu" , "memory" , "disk" , "temperature" , "battery" , "pulseaudio" , "backlight" , "clock" ] , "sway/workspaces" : { "disable-scroll" : true , "all-outputs" : true , "format" : "{icon}" , "format-icons" : { "1" : "1" , "2" : "2" , "3" : "3" , "4" : "4" , "5" : "5" , "6" : "6" , "7" : "7" , "8" : "8" , "9" : "9" , "10" : "10" } } , "sway/mode" : { "format" : "<span style=\"italic\">{}</span>" } , "sway/window" : { "format" : "{}" } , "clock" : { "tooltip-format" : "{:%A %B %d %Y | %H:%M}" , "format" : " {:%a %d %b %H:%M}" , "format-alt" : " {:%d/%m/%Y %H:%M:%S}" , "timezones" : [ "Asia/Shanghai" ] , "interval" : 1 } , "cpu" : { "format" : " {usage}%" , "on-click" : "terminator -e htop" } , "memory" : { "format" : " {}%" , "on-click" : "terminator -e htop" } , "temperature" : { "thermal-zone" : 2 , "hwmon-path" : "/sys/class/hwmon/hwmon2/temp1_input" , "critical-threshold" : 80 , "format-critical" : " {temperatureC}°C" , "format" : " {temperatureC}°C" } , "backlight" : { "format" : "{icon} {percent}%" , "format-icons" : [ "" , "" ] , "on-scroll-down" : "sudo xbacklight -dec 5" , "on-scroll-up" : "sudo xbacklight -inc 5" } , "battery" : { "states" : { "warning" : 30 , "critical" : 15 } , "format" : "{icon} {capacity}%" , "format-icons" : [ "" , "" , "" , "" , "" ] } , "network" : { "interface" : "enp2s0" , "format" : "⚠ Disabled" , "format-ethernet" : "↑ {bandwidthUpBits} ↓ {bandwidthDownBits}" , "format-wifi" : " {ifname}: {ipaddr}/{cidr}" , "format-disconnected" : "⚠ Disconnected" , "interval" : 1 , "on-click" : "terminator -e nethogs" } , "pulseaudio" : { "scroll-step" : 5 , "format" : "{icon} {volume}%" , "format-bluetooth" : "{icon} {volume}%" , "format-muted" : "" , "format-icons" : { "headphones" : "" , "handsfree" : "" , "headset" : "" , "phone" : "" , "portable" : "" , "car" : "" , "default" : [ "" , "" ] } , "on-click" : "terminator -e alsamixer" } , "custom/launcher" : { "format" : "" , "on-click" : "exec rofi -show drun" , "tooltip" : false } , "disk" : { "interval" : 30 , "format" : "🖫 {percentage_used}%" , } }
JSON
style.css内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 * { color : #a7a2a9 ; border : 0 ; border-radius : 2px ; padding : 0 0 ; font-family : mononoki; font-size : 16px ; margin-right : 5px ; margin-left : 5px ; padding-bottom : 1px ; } window#waybar { background-color : rgba (43 , 48 , 59 , 0.5 ); border-bottom : 3px none rgba (100 , 114 , 125 , 0.4 ); color : #ffffff ; transition-property : background-color; transition-duration : .5s ; }#workspaces button { padding : 1px 5px ; color : #ebdbb2 ; border-radius : 5px ; }#workspaces button :hover { background : rgba (0 , 0 , 0 , 0.2 ); box-shadow : inherit; border-bottom : none; border-radius : 5px ; }#workspaces button .focused { background-color : #ebdbb2 ; color : #282828 ; border-bottom : none; border-radius : 5px ; }#workspaces button .urgent { background-color : #2c303c ; }#mode { background-color : #64727D ; border-bottom : 3px solid #ffffff ; }#clock ,#battery ,#cpu ,#memory ,#idle_inhibitor ,#temperature ,#custom-keyboard-layout ,#backlight ,#network ,#disk ,#pulseaudio ,#mode ,#window ,#custom-launcher { padding : 0 2px ; border-bottom : 2px ; }#tray { padding : 0 14px ; margin : 0 0px ; color : #ffffff ; }#clock { color : #000000 ; background-color : #ebdbb2 ; }#battery { background-color : #ebdbb2 ; color : #000000 ; padding : 0 14px ; }#battery .charging { color : #000000 ; background-color : #ebdbb2 ; }@keyframes blink { to { background-color : #ebdbb2 ; color : #282828 ; } }#battery .critical :not (.charging ) { background-color : #282828 ; color : #282828 ; animation-name : blink; animation-duration : 1s ; animation-timing-function : linear; animation-iteration-count : infinite; animation-direction : alternate; }label :focus { background-color : #000000 ; }#cpu { background-color : #ebdbb2 ; color : #000000 ; }#memory { background-color : #ebdbb2 ; color : #000000 ; }#disk { background-color : #ebdbb2 ; color : #000000 ; }#backlight { background-color : #ebdbb2 ; color : #000000 ; }#network { background-color : #ebdbb2 ; color : #000000 ; }#network .disconnected { background-color : #ebdbb2 ; }#pulseaudio { background-color : #ebdbb2 ; color : #000000 ; border-radius : 5px 0px 0px 5px ; }#pulseaudio .muted { background-color : #ebdbb2 ; color : #2a5c45 ; }#custom-media { background-color : #ebdbb2 ; color : #282828 ; min-width : 100px ; }#custom-media .custom-spotify { background-color : #66cc99 ; }#custom-media .custom-vlc { background-color : #ffa000 ; }#temperature { background-color : #ebdbb2 ; color : #282828 ; }#temperature .critical { background-color : #eb4d4b ; }#tray { background-color : #ebdbb2 ; }#idle_inhibitor { background-color : rgba (0 , 0 , 0 , 0 ); color : #ebdbb2 ; border-radius : 5px ; margin-right : 2px ; }#idle_inhibitor .activated { background-color : #ebdbb2 ; color : #282828 ; border-radius : 5px ; margin-right : 2px ; }
CSS
(3)配置rofi-power-menu : 创建rofi-power-menu
文件
1 vim ~/.local/bin/rofi-power-menu
BASH
填入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 #!/usr/bin/env bash set -eset -u all=(shutdown reboot suspend hibernate logout lockscreen) show=("${all[@]} " )declare -A texts texts[lockscreen]="lock screen" texts[switchuser]="switch user" texts[logout ]="log out" texts[suspend ]="suspend" texts[hibernate]="hibernate" texts[reboot]="reboot" texts[shutdown]="shut down" declare -A icons icons[lockscreen]="\uf023" icons[switchuser]="\uf518" icons[logout ]="\uf842" icons[suspend ]="\uf9b1" icons[hibernate]="\uf7c9" icons[reboot]="\ufc07" icons[shutdown]="\uf011" icons[cancel]="\u00d7" declare -A actions actions[lockscreen]="loginctl lock-session ${XDG_SESSION_ID-} " actions[logout ]="loginctl terminate-session ${XDG_SESSION_ID-} " actions[suspend ]="systemctl suspend" actions[hibernate]="systemctl hibernate" actions[reboot]="systemctl reboot" actions[shutdown]="systemctl poweroff" confirmations=(reboot shutdown logout ) dryrun=false showsymbols=true function check_valid { option="$1 " shift 1 for entry in "${@} " do if [ -z "${actions[$entry]+x} " ] then echo "Invalid choice in $1 : $entry " >&2 exit 1 fi done } parsed=$(getopt --options=h --longoptions=help ,dry-run,confirm:,choices:,choose:,symbols,no-symbols --name "$0 " -- "$@ " )if [ $? -ne 0 ]; then echo 'Terminating...' >&2 exit 1fi eval set -- "$parsed " unset parsedwhile true ; do case "$1 " in "-h" |"--help" ) echo "rofi-power-menu - a power menu mode for Rofi" echo echo "Usage: rofi-power-menu [--choices CHOICES] [--confirm CHOICES]" echo " [--choose CHOICE] [--dry-run] [--symbols|--no-symbols]" echo echo "Use with Rofi in script mode. For instance, to ask for shutdown or reboot:" echo echo " rofi -show menu -modi \"menu:rofi-power-menu --choices=shutdown/reboot\"" echo echo "Available options:" echo " --dry-run Don't perform the selected action but print it to stderr." echo " --choices CHOICES Show only the selected choices in the given order. Use / " echo " as the separator. Available choices are lockscreen, logout," echo " suspend, hibernate, reboot and shutdown. By default, all" echo " available choices are shown." echo " --confirm CHOICES Require confirmation for the gives choices only. Use / as" echo " the separator. Available choices are lockscreen, logout," echo " suspend, hibernate, reboot and shutdown. By default, only" echo " irreversible actions logout, reboot and shutdown require" echo " confirmation." echo " --choose CHOICE Preselect the given choice and only ask for a confirmation" echo " (if confirmation is set to be requested). It is strongly" echo " recommended to combine this option with --confirm=CHOICE" echo " if the choice wouldn't require confirmation by default." echo " Available choices are lockscreen, logout, suspend," echo " hibernate, reboot and shutdown." echo " --[no-]symbols Show Unicode symbols or not. Requires a font with support" echo " for the symbols. Use, for instance, fonts from the" echo " Nerdfonts collection. By default, they are shown" echo " -h,--help Show this help text." exit 0 ;; "--dry-run" ) dryrun=true shift 1 ;; "--confirm" ) IFS='/' read -ra confirmations <<< "$2 " check_valid "$1 " "${confirmations[@]} " shift 2 ;; "--choices" ) IFS='/' read -ra show <<< "$2 " check_valid "$1 " "${show[@]} " shift 2 ;; "--choose" ) check_valid "$1 " "$2 " selectionID="$2 " shift 2 ;; "--symbols" ) showsymbols=true shift 1 ;; "--no-symbols" ) showsymbols=false shift 1 ;; "--" ) shift break ;; *) echo "Internal error" >&2 exit 1 ;; esac done function write_message { icon="<span font_size=\"medium\">$1 </span>" text="<span font_size=\"medium\">$2 </span>" if [ "$showsymbols " = "true" ] then echo -n "\u200e$icon \u2068$text \u2069" else echo -n "$text " fi }function print_selection { echo -e "$1 " | $(read -r -d '' entry; echo "echo $entry " ) }declare -A messagesdeclare -A confirmationMessagesfor entry in "${all[@]} " do messages[$entry ]=$(write_message "${icons[$entry]} " "${texts[$entry]^} " )done for entry in "${all[@]} " do confirmationMessages[$entry ]=$(write_message "${icons[$entry]} " "Yes, ${texts[$entry]} " )done confirmationMessages[cancel]=$(write_message "${icons[cancel]} " "No, cancel" )if [ $# -gt 0 ]then selection="${@} " else if [ -n "${selectionID+x} " ] then selection="${messages[$selectionID]} " fi fi echo -e "\0no-custom\x1ftrue" echo -e "\0markup-rows\x1ftrue" if [ -z "${selection+x} " ]then echo -e "\0prompt\x1fPower menu" for entry in "${show[@]} " do echo -e "${messages[$entry]} \0icon\x1f${icons[$entry]} " done else for entry in "${show[@]} " do if [ "$selection " = "$(print_selection "${messages[$entry]} " ) " ] then for confirmation in "${confirmations[@]} " do if [ "$entry " = "$confirmation " ] then echo -e "\0prompt\x1fAre you sure" echo -e "${confirmationMessages[$entry]} \0icon\x1f${icons[$entry]} " echo -e "${confirmationMessages[cancel]} \0icon\x1f${icons[cancel]} " exit 0 fi done selection=$(print_selection "${confirmationMessages[$entry]} " ) fi if [ "$selection " = "$(print_selection "${confirmationMessages[$entry]} " ) " ] then if [ $dryrun = true ] then echo "Selected: $entry " >&2 else ${actions[$entry]} fi exit 0 fi if [ "$selection " = "$(print_selection "${confirmationMessages[cancel]} " ) " ] then exit 0 fi done echo "Invalid selection: $selection " >&2 exit 1fi
BASH
给予权限
1 chmod +x rofi-power-menu
BASH
在sway配置文件中添加快捷键
1 2 bindsym $mod +shift +f4 exec rofi -show power-menu -modi power-menu:"$HOME /.local/bin/rofi-power-menu"
BASH
(4)配置主题: 参考:https://wiki.archlinuxcn.org/wiki/GTK
配置鼠标指针:
1 gsettings set org.gnome.desktop.interface cursor-theme 鼠标指针名字
BASH
配置主题:
1 gsettings set org.gnome.desktop.interface gtk-theme 主题名字
BASH
配置图标:
1 gsettings set org.gnome.desktop.interface icon-theme 图标主题名字
BASH
(5)配置sway默认终端foot:
1 2 mkdir ~/.config/foot vim ~/.config/foot/foot.ini
BASH
修改字体大小:
1 font =monospace:size=12
INI
常用快捷键: (sway基于i3wm,可做参考:https://i3wm.org/docs/userguide.html ) mod+shift+w 启动应用列表 mod+shift+q 关闭程序 mod+左键 拖动窗口 mod+右键 调整窗口大小 mod+shift+f4 电源菜单 mod+shift+u mint更新管理器 mod+方向键 选择聚焦窗口 mod+shift+方向键 移动已聚焦窗口 mod+h+打开窗口 水平切分 mod+v+打开窗口 竖直切分 mod+f 全屏 mod+s+打开窗口 水平堆叠切分 mod+d+打开窗口 竖直堆叠切分 mod+e+打开窗口 传统切分 mod+shift+e 注销sway mod+shift+数字键 将当前聚焦的窗口移到指定工作区 mod+shift+e 重载sway mod+数字键 切到指定工作区
python设置pip镜像源设置主要镜像源:
1 pip config set global.index-url "镜像源地址"
BASH
取消设置:
1 pip config unset global.index-url
BASH
设置额外镜像源:
1 pip config set global.extra-index-url "镜像源地址"
BASH
取消设置:
1 pip config unset global.extra-index-url
BASH
主要镜像源:https://pypi.tuna.tsinghua.edu.cn/simple https://pypi.mirrors.ustc.edu.cn/simple http://pypi.douban.com/simple http://mirrors.aliyun.com/pypi/simple https://mirror.sjtu.edu.cn/pypi/web/simple
额外镜像源:https://mirror.sjtu.edu.cn/pytorch-wheels/torch_stable.html
flatpak设置镜像源设置国内镜像源:
1 sudo flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub
BASH
设置官方镜像源:
1 sudo flatpak remote-add --if-not-exists /flathub.flatpakrepo
BASH
在debian启用ssh1、安装ssh
1 sudo apt install ssh
BASH
2、启用ssh服务
1 sudo /etc/init.d/ssh start
BASH
可以输入下面的指令查看ssh运行的状态
1 sudo /etc/init.d/ssh status
BASH
3、备份ssh配置文件
1 sudo cp /etc/ssh/sshd_config{,.bak}
BASH
4、编辑ssh配置文件
1 vim /etc/ssh/sshd_config
BASH
利用命令more /etc/ssh/sshd_config |grep -v "^#" |grep -v "^$"
查看文件内容是否与下面一致,不一致则改成一致。
1 2 3 4 5 6 7 8 9 10 11 Include /etc/ssh/sshd_config.d/*.conf Port 22 PermitRootLogin yes PasswordAuthentication yes PermitEmptyPasswords no ChallengeResponseAuthentication no UsePAM yes X11Forwarding yes PrintMotd no AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server
BASH
5、重启ssh服务
1 /etc/init.d/ssh restart
BASH
然后可以利用远程登录软件(SecureCRT SSH)进行相关登录。
linux清理cache缓存查看缓存:
释放缓存区内存的方法: 1、清理pagecache(页面缓存)
1 echo 1 > /proc/sys/vm/drop_caches
BASH
或者
1 sysctl -w vm.drop_caches=1
BASH
2、清理dentries(目录缓存)和inodes
1 echo 2 > /proc/sys/vm/drop_caches
BASH
或者
1 sysctl -w vm.drop_caches=2
BASH
3、清理pagecache、dentries和inodes
1 echo 3 > /proc/sys/vm/drop_caches
BASH
或者
1 sysctl -w vm.drop_caches=3
BASH
上面三种方式都是临时释放缓存的方法,要想永久释放缓存,需要在/etc/sysctl.conf
文件中配置:vm.drop_caches=1/2/3
,然后sysctl -p
生效即可
tmux使用和美化 tmux默认快捷键Prefix 键:Ctrl + b
(当按下Prefix 键
并松开后才可以使用 tmux 的快捷键,Prefix 键
相当于快捷键激活键,防止误触)
创建新窗口:c
向左切换窗口:p
向右切换窗口:n
切换指定窗口:0 ~ 9
关闭窗口:&
划分左右的小窗口(Pane):%
划分上下的小窗口(Pane):"
切换小窗口(Pane):方向键
切换指定小窗口(Pane):q + 数字
(在按下q
时,tmux 会显示一个小窗口对应的数字) 最大化或最小化选中的小窗口:z
关闭选中的小窗口:x
(当一个大窗口里的最后一个小窗口被关闭时,大窗口也会被关闭) 查看 tmux 所有窗口:w
(用方向键
和回车键
可以选择进入指定的大窗口) 退出当前 tmux 工作区(会话):d
(此时 tmux 的工作区会被保留下来,保持运行) 进入命令行模式::
(类似 vim 进入命令行模式的方法,只不过 tmux 要先按Prefix 键
) 进入翻页模式:[
(退出翻页模式直接按q
,未进入翻页模式前无法使用滚轮或者键盘上的方向键进行翻页查看)
快捷键使用为:Prefix 键 + 其他按键 如创建新窗口为:Prefix 键 + c 实际操作为先按下 Prefix 键(Ctrl + b),然后松开 Prefix 键,再按下 c 键
查看工作区列表:
进入 tmux 工作区:
如果有多个工作区的话,该指令会优先进入最后一个退出的工作区 或进入指定的工作区:
1 2 tmux attach -t <工作区对应数字> tmux attach -t <工作区名称>
BASH
创建新的工作区:
1 2 tmux tmux new -s <工作区名称>
BASH
关闭工作区:
1 2 tmux kill-session -t <工作区数字> tmux kill-session -t <工作区名称>
BASH
美化 tmux工具:https://github.com/gpakosz/.tmux
安装oh-my-tmux
: 1、下载项目
1 git clone https://github.com/gpakosz/.tmux ~/.oh-my-tmux
BASH
2、复制配置文件
1 cp ~/.oh-my-tmux/.tmux.conf ~/
BASH
这里复制的是默认的配置 或者使用自定义配置:
1 2 cp ~/.oh-my-tmux/.tmux.conf.local ~/.tmux.conf vim .tmux.conf
BASH
然后参考github上项目的的说明修改
vim使用1、编辑模式: 在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下i
, I
, o
, O
, a
, A
, r
, R
等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现INSERT
或REPLACE
的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下Esc
即可退出编辑模式。
2、命令行模式: 输入:
/
?
三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中, 可以提供查找
、读取
、存盘
、替换字符
、离开vi
、显示行号
等的动作则是在此模式中完成的!
3、打开文件
1 vim /path/to/somefile
BASH
vim +# :打开文件,并定位于第#行 vim +:打开文件,定位至最后一行 vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
一般模式可用的按钮说明 4、移动光标h
、j
、k
、l
,分别控制光标左
、下
、上
、右
移一格
翻屏Ctrl+f
: 向下翻一屏Ctrl+b
: 向上翻一屏Ctrl+d
: 向下翻半屏Ctrl+u
: 向上翻半屏
n<space>
光标向右移动n个字符Home
移动到这一行的最前面字符处:0数字,但不能用数字小键盘上的数字End
移动到这一行的最后面字符处:$,我测试好像不行w
光标跳到下个字的开头e
光标跳到下个字的字尾
H
光标移动到这个屏幕的最上方那一行的第一个字符M
光标移动到这个屏幕的中间那一行的第一个字符L
光标移动到这个屏幕的最下方那一行的第一个字符
G
移动到这个文件的最后一行nG
移动到这个文件的第n行(可配合:set nu)gg
移动到这个文件的第一行,相当于1Gn<Enter>
光标向下移动n行
5、查找与替换/word
向光标向下寻找一个名称为word的字符串?word
向光标向上寻找一个名称为word的字符串n
代表重复前一个查找的动作N
与n刚好相反,为反向
进行行前一个查找动作
:n1,n2s/word1/word2/g
n1与n2为数字,在第n1与n2行之间查找word1 这个字符串,并将该字符串替换为word2
:1,$s/word1/word2/g
从第一行到最后一行查找word1字符串,并将该字符串替换为word2:1,$s/word1/word2/gc
从第一行到最后一行查找word1字符串,并将该字符串替换为word2 ,且在替换前提示用户确认是否进行替换
6、删除、复制与粘贴
x
为向后删除一个字符 (相当于del
键)X
为向前删除一个字符(相当于backspace
键)nx
连续向后删除n个字符
dd
删除光标所在行dn
删除光标所在的向下n行d1G
删除光标所在行到第一行的所有数据dG
删除光标所在到最后一行的所有数据
d$
删除光标所在处,到该行的最后一个字符d0
删除光标所在处,到该行的最前一个字符
yy
复制光标所在的那一行nyy
复制光标所在的向下n列
y1G
复制光标所在行到第一行的所有数据yG
复制光标所在行到最后一行的所有数据
y0
复制光标所在的那个字符到该行行首的所有数据y$
复制光标所在的那个字符到该行行尾的所有数据
p
将已复制的数据在光标下一行粘贴上P
则为贴在光标的上一行
u
恢复前一个操作Ctrl+r
重做上一个操作
.
是重复前一个操作
7、一般模式切换到编辑模式的可用的按钮说明i, I
进入编辑模式: i 为从目前光标所在处插入
I 为在目前所在行的第一个非空格符处开始插入
a, A
进入编辑模式(Insert mode): a 为从目前光标所在的下一个字符处开始插入
A 为从光标所在行的最后一个字符处开始插入
o, O
进入编辑模式: o 为在目前光标所在的下一行处插入新的一行
O 为在目前光标所在处的上一行插入新的一行
r, R
进入取代模式: r 只会取代光标所在的那一个字符一次 R会一直取代光标所在的文字,直到按下 ESC 为止;
Esc
退出编辑模式,回到一般模式
8、一般模式切换到命令行模式可用的按钮说明:w
保存编辑的内容:w!
强制写入该文件,但跟你对该文件的权限有关:q
离开vi:q!
不想保存修改强制离开:wq
保存后离开:x
保存后离开ZZ
若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开
:w filename
将编辑的数据保存成另一个文件(类似另存):r filename
在编辑的数据中,读入另一个文件的数据。即将filename
这个文件的内容加到光标所在行后面。
:n1,n2 w filename
将n1到n2的内容保存成filename这个文件。:! command
暂时离开vi 到命令行模式下执行command的显示结果!例如 :! ls /home
即可在 vi 当中察看/home底下以ls输出的文件信息!
:set nu
显示行号:set nonu
与 set nu 相反,为取消行
9、vim的缓存文件、恢复与开启时的警告信息 我们知道一些常用的编辑软件,都有个恢复的功能,就是说当你的系统因为某些原因而导致类似当机的情况时,还可以利用这个恢复功能将之前未保存的数据找回来。我们的VIM也有这个功能。
当我们在使用vim编辑时,vim会在与被编辑的文件的目录下,再建立一个名为 .filename.swp的文件。如果你的系统因为某些原因断线了, 导致你编辑的文件还没有保存,这个时候 .filenam.swp 就能够发会救援的功能了。
我们来演示一下
在/jiaoben下面出现了一个.bincp.sh.swp文件,其实这个文件是bincp.sh文件没有保存,中断系统后出现的恢复文件,在下次编辑bincp.sh文件时,系统会自动提示是否从上次执行处继续执行,还是终止等,根据提示执行就可以,执行完成后,保存文档后记得把 .bincp.sh文件删除。删除命令:rm -f .bincp.sh,下次再执行bincp.sh时就不会出现提示。
问题一:可能有其他人或程序同时在编辑这个文件: 问题二:在前一个vim的环境中,可能因为某些不知名原因导致vim中断 (crashed):
右下角会出现六个命令项,其作用说明如下: (O)pen Read-Only:打开此文件成为只读档, 可以用在你只是想要查阅该文件内容并不想要进行编辑行为时。一般来说,在上课时,如果你是登入到同学的计算机去看他的配置文件, 结果发现其实同学他自己也在编辑时,可以使用这个模式; (E)dit anyway:还是用正常的方式打开你要编辑的那个文件, 并不会载入暂存盘的内容。如果说两个人都在编辑这个文件的话,很容易出现互相改变对方的文件等问题。 (R)ecover:就是加载暂存盘的内容,用在你要救回之前未保存的工作。 不过当你救回来并且储存离开vim后,还是要手动自行删除那个暂存档。 (D)elete it:你确定那个暂存档是无用的!那么开启文件前会先将这个暂存盘删除 (Q)uit:按下 q 就离开vim,不会进行任何动作回到命令提示字符。 (A)bort:忽略这个编辑行为,感觉上与 quit 非常类似!
10、vim的功能 其实,目前大部分的Linux发行版本都以vim取代了vi。为什么要用vim呢?因为vim具有颜色显示的功能,并且还支持许多的程序语法(syntax)和相应的提示信息。查看自己的VI是不是被VIM代替,可以用 alias这个命令来查看是不是有alias vi=’vim’这一行。
11、块选择v
字符选择,会将光标经过的地方反白选择V
行选择,会将光标经过的行反白选择Ctrl+v
块选择,可以用长方形的方式选择资料 (提制竖列)y
将反白的地方复制d
将反白的地方删除
12、分屏显示一个文件 Ctrl+w, s: 水平拆分窗口 (按住Ctrl+w后松开键盘,按键盘上的s键就可以水平拆分) Ctrl+w, v: 垂直拆分窗口 (按住Ctrl+w后松开键盘,按键盘上的v键就可以垂直拆分)
按住Ctrl+w键按两次就可以切换光标的不同的窗口
如果需要突出窗口可以输入exit。
13、多文件编辑 大家在使用vim的时候,可能会碰到你需要复制一个文件中的某段到另外一个文件中,而vim不能够在关闭的时候,把这段保留住。或者是用其它的方法复制。vim file1 file2
:n
编辑下一个文件:N
编辑上一个文件:files
列出目前这个vim编辑的所有文件
多窗口功能 有两个需要对照着看的文件:sp filename
开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。
ctrl+w+j
ctrl+w+↓
按键的按法是:先按下 ctrl
不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下箭头键),则光标可移动到下方的窗口。
ctrl+w+k
ctrl+w+↑
同上,不过光标移动到上面的窗口。
vim 环境设定与记录(~/.vimrc, ~/.viminfo)
14、参数参考文档。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 设定自动缩进 :set autoindent :set :set 查找到的文本高亮显示或取消 :set :set 语法高亮 :syntax :syntax 显示忽略或区分字符大小写 :set :set 显示或取消显示行号 :set :set 将另外一个文件的内容填充在当前文件中 :r /path//somefile 将当前文件中部分内容另存为另外一个文件末行模式下使用w命令 :w //to/ :ADDR1,ADDR2w /path//somewhere
GAMS
配置文件(保存退出vim后,在下次使用vim的时候,就会有自己的vim操作环境了。)
>/etc/vimrc(全局配置有效)
>~/.vimrc (当前bash)
>注意;上面的参数参考中每一行前面加不加`:`效果都是一样的。
TEXT
15、如果想自己专研vim 可以执行命令: vimtutor
(此命令可以自己学习vim)
lunarvim配置存档1 2 3 4 5 6 7 8 9 10 11 12 vim.cmd [[ set tabstop=4 set shiftwidth=4 set softtabstop=4 set backspace=indent,eol,start set expandtab set autoindent set smarttab set encoding=utf-8 set incsearch set hlsearch ]]
LUA
linux控制手机前期准备: 使用Linux发行版自带的包管理器安装adb和scrcpy 工具官网:https://github.com/Genymobile/scrcpy https://developer.android.google.cn/studio/releases/platform-tools?hl=zh-cn
使用有线连接来连接手机1、首先需要开启Android设备的开发者选项
和允许USB调试
。不同手机型号打开开发者选项的方式也不同,大致有两种方式可以打开开发者选项。 1)打开手机找到设置
–>找到系统
一栏(有些手机是更多设置
)–>选择打开开发者选项
和启用USB调试
,推荐启用“仅充电”模式下允许ADB调试
2)如果找不到开发者选项在哪,可以按照下面的方法找到开发者选项并打开: 打开手机找到设置
–>点击更多设置
–>点击进入关于手机
–>找到版本号
连续点击7次即可开启开发者模式 2、手机用usb线连接电脑,然后打开终端 3、检查是否连接成功
1 2 3 $ adb devices List of devices attached 28PNW18349738948 device
BASH
(手机会提示是否允许调试,点击确定) 说明连接成功 4、使用scrcpy进行连接
此时会弹出一个可以控制手机的窗口,可以通过鼠标和键盘控制手机
使用无线连接来连接手机注:确保手机和电脑处在同一个局域网
中 1、首先需要开启Android设备的开发者选项
和允许USB调试
。不同手机型号打开开发者选项的方式也不同,大致有两种方式可以打开开发者选项。 1)打开手机找到设置
–>找到系统
一栏(有些手机是更多设置
)–>选择打开开发者选项
和启用USB调试
,推荐启用“仅充电”模式下允许ADB调试
2)如果找不到开发者选项在哪,可以按照下面的方法找到开发者选项并打开: 打开手机找到设置
–>点击更多设置
–>点击进入关于手机
–>找到版本号
连续点击7次即可开启开发者模式 2、手机用usb线连接电脑,然后打开终端 3、检查是否连接成功
1 2 3 $ adb devices List of devices attached 28PNW18349738948 device
BASH
(手机会提示是否允许调试,点击确定) 说明连接成功 4、启用手机网络调试
此时可以断开手机和电脑的连接 4、查看手机的ip,比如192.168.1.111
然后使用adb无线连接
1 2 $ adb connect 192.168.1.111:5555 connected to 192.168.1.111:5555
BASH
此时连接成功 5、使用scrcpy进行连接
此时会弹出一个可以控制手机的窗口,可以通过鼠标和键盘控制手机
注:手机在重启或重新打开usb调试后需要重新启用手机网络调试
linux设置软件开机自启动一、有界面的程序自启动
利用Linux的 .desktop
文件实现开机启动。 在/etc/xdg/autostart
目录下建立一个 test.desktop
文件,并对文件进行以下编辑。 操作步骤
打开/etc/xdg/autostart
目录:
1 cd /etc/xdg/autostart
BASH
或者打开~/.config/autostart
目录:
1 cd ~/.config/autostart
BASH
建立test.desktop文件:
编写文件并保存:
1 sudo vim test.desktop
BASH
添加如下代码:
1 2 3 4 [Desktop Entry] Name =Test Exec =/root/Test Type =Application
INI
桌面条目具体要求和含义可见:https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
注意: 需要root权限 此设置开机自启动的方法与rc.local
方法不同的是,此方法适合桌面级软件的开机自启动(软件有界面)
二、无界面的程序自启动 ① 方式一
Ubuntu 20.04的服务管理是基于systemd
的,因此设置服务自启动最推荐的方法是在/etc/systemd/user
目录下创建一个systemd服务文件,配置好要执行的服务。
该种方式在ExecStart
字段中指定开机自启动的程序是可执行文件的时候会管用,但在某些情况下,当ExecStart
字段指定为脚本文件时可能会失效,并且此方式貌似需要登录系统后才会启动指定的程序
操作步骤
创建我们需要开机自启动的脚本,例如test.sh,其内容如下:
1 2 3 #!/bin/bash cd ~touch 11111111111.txt
SH
在/etc/systemd/user
目录下创建一个systemd服务文件, 命名为user-defined.service
(可以命名为以.service
结尾的任何名称), 内容如下:
1 2 3 4 5 6 7 8 9 10 11 [Unit] After =network.service[Service] ExecStart =/home/hqc/test.sh [Install] WantedBy =default.target
INI
将systemd服务文件和我们的脚本更改权限,使其可执行。
1 2 sudo chmod 744 ~/test.sh sudo chmod 664 /etc/systemd/user/user-defined.service
BASH
重新加载系统的systemd服务文件,并启用我们自己写的user-defined.service
文件。
1 2 sudo systemctl daemon-reload systemctl --user enable user-defined.service
BASH
取消开机自启动:
1 2 3 systemctl --user disable user-defined.servicecd /etc/systemd/userrm user-defined.service
BASH
② 方式二 现在大部分的Linux发布版本开机第一个程序都从init
换成了systemd
这中启动方式。systemd
是靠管理unit
的方式来控制开机服务、开机级别等功能。 在/usr/lib/systemd/system
目录下包含了各种unit
文件,有service
后缀的服务unit,有target
后缀的开机级别unit等,这里介绍关于service
后缀的文件。因为systemd在开机要想执行自启动,都是通过这些*.service
的unit控制的,服务又分为系统服务(system)
和用户服务(user)
。
系统服务:开机不登录就能运行的程序(常用于开机自启)。 用户服务:需要登录以后才能运行的程序。
配置文件说明: (以sshd.service服务为例)
[Unit]区块:启动顺序与依赖关系 Description字段:给出当前服务的简单描述。 Documentation字段:给出文档位置。 After字段:如果network.target或sshd-keygen.service需要启动,那么sshd.service应该在它们之后启动。 Before字段:定义sshd.service应该在哪些服务之前启动。
注:After和Before字段只涉及启动顺序,不涉及依赖关系 Wants字段:表示sshd.service与sshd-keygen.service之间存在“弱依赖”关系,即如果sshd-keygen.service启动失败或停止运行,不影响sshd.service继续执行。 Requires字段:表示“强依赖”关系,即如果该服务启动失败或异常提出,那么sshd.service也必须退出。 注:Wants
字段与Requires
字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的 [Service]区块:启动行为。
启动命令: ExecStart字段:定义启动进程时执行的命令。 ExecReload字段:重启服务时执行的命令。 ExecStop字段:停止服务时执行的命令。 ExecStartPre字段:启动服务之前执行的命令。 ExecStartPost字段:启动服务之后执行的命令。 ExecStopPost字段:停止服务之后执行的命令。
注:所有的启动设置之前都可以加一个连词号(-),表示抑制错误
,即发生错误的时候,不影响其他命令的执行。比如EnvironmentFile=-/etc/sysconfig/sshd
(注意等号后面的那个连词号),就表示即使/etc/sysconfig/sshd
文件不存在,也不会抛出错误。[Service]中的启动、重启、停止命令要求全部使用绝对路径!
启动类型: Type字段定义启动类型。 它可以设置的值如下: simple(默认值):ExecStart字段启动的进程为主进程 forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程(后台运行) oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务 dbus:类似于simple,但会等待D-Bus信号后启动 notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务 idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合。
重启行为: Service区块有一些字段,定义了重启行为。
KillMode字段:定义 Systemd 如何停止 sshd 服务: control-group(默认值):当前控制组里面的所有子进程,都会被杀掉 process:只杀主进程 mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号 none:没有进程会被杀掉,只是执行服务的 stop 命令。
Restart字段:定义了sshd退出后,Systemd 的重启方式 no(默认值):退出后不会重启 on-success:只有正常退出时(退出状态码为0),才会重启 on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启 on-abnormal:只有被信号终止和超时,才会重启 on-abort:只有在收到没有捕捉到的信号终止时,才会重启 on-watchdog:超时退出,才会重启 always:不管是什么退出原因,总是重启
Restart设为on-failure,表示任何意外的失败,就将重启sshd。如果 sshd 正常停止(比如执行systemctl stop命令),它就不会重启。
注:对于守护进程,推荐设为on-failure
。对于那些允许发生错误退出的服务,可以设为on-abnormal
RestartSec字段:表示 Systemd 重启服务之前,需要等待的秒数。
[Install]区块: Install区块定义如何安装这个配置文件,即怎样做到开机启动。
WantedBy字段:表示该服务所在的 Target。
Target的含义是服务组,表示一组服务。
WantedBy=multi-user.target指的是:sshd 所在的 Target 是multi-user.target。 这个设置非常重要,因为执行systemctl enable sshd.service命令时,sshd.service的一个符号链接,就会放在/etc/systemd/system目录下面的multi-user.target.wants子目录之中。 Systemd 有默认的启动 Target。
1 systemctl get-default
BASH
输出multi-user.target
上面的结果表示,默认的启动 Target
是multi-user.target
。在这个组里的所有服务,都将开机启动。这就是为什么systemctl enable
命令能设置开机启动的原因。 使用 Target
的时候,systemctl list-dependencies
命令和systemctl isolate
命令也很有用。
查看 multi-user.target 包含的所有服务:
1 systemctl list-dependencies multi-user.target
BASH
切换到另一个 target(shutdown.target 就是关机状态):
1 systemctl isolate shutdown.target
BASH
一般来说,常用的Target有两个: multi-user.target:表示多用户命令行状态; graphical.target:表示图形用户状态,它依赖于multi-user.target。
注册服务实例:
配置文件目录 systemctl脚本目录:/usr/lib/systemd/
系统服务目录:/usr/lib/systemd/system/
用户服务目录:/usr/lib/systemd/user/
在/usr/lib/systemd/system目录下新建service-name.service文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [Unit] After =network.target[Service] Type =simpleExecStartPre =/usr/bin/test "x${NETWORKMANAGER}" = xyes ExecStart =/home/mobileoa/apps/shMediaManager.sh -startPrivateTmp =True [Install] WantedBy =multi-user.target
INI
重载系统服务:systemctl daemon-reload
设置开机启动:systemctl enable *.service
启动服务:systemctl start *.service
停止服务:systemctl stop *.service
重启服务:systemctl restart *.service
注:修改完配置文件要重载配置文件 参考:https://www.freedesktop.org/software/systemd/man/systemd.service.html https://www.jianshu.com/p/79059b06a121 https://wiki.archlinux.org/title/systemd/User http://www.jinbuguo.com/systemd/systemd.service.html 三、补充
适用于无界面的程序自启动
对于有/etc/rc.d/rc.local
或/etc/rc.local
文件的Linux发行版本,开机自启动只需要在/etc/rc.local
文件中添加上自己程序的路径即可,但如果程序是有界面的,仍然只能使用方法一来设置开机自启动。 注:现在已经不提倡使用这种方式设置开机自启动了,如果使用过程中设置失败了,需要查看/etc/rc.d/rc.local
文件是否具有可执行权限(/etc/rc.local
只是/etc/rc.d/rc.local
的软链接,添加/etc/rc.local
文件的可执行权限是不管用的)。
git-lfs使用在一些项目中有时会上传或者克隆一些超过10mb的大文件,如果只使用git就比较麻烦,这时就可以配合git-lfs管理大文件
启用git-lfs
或者设置环境变量
1 export GIT_LFS_SKIP_SMUDGE =0
ROUTEROS
克隆项目
这时候就会把大文件(lfs)克隆下来 如果不想要克隆大文件,可以禁用git-lfs
或者设置环境变量
1 export GIT_LFS_SKIP_SMUDGE =1
ROUTEROS
如果出现git警告仓库不是安全目录,可以设置安全目录
1 git config --global --add safe.directory "*"
MIPSASM
为项目上传大文件 首先启用git-lfs,然后对大文件进行追踪
1 git lfs track *.safetensors
BASH
追踪safetensors格式的所有大文件
1 git lfs track test.safetensors
BASH
追踪test.safetensors大文件
将.gitattributes配置文件进行追踪(执行git lfs track
之后的配置会在这个文件中保存)
1 git add .gitattributes
BASH
这时就可以把大文件添加到上传列表中
最后将项目进行推送
1 2 git commit -m "commit" git push
BASH
如果无法推送,可以先执行git lfs push origin 分支
,再执行git push
如果要少去git lfs track
的步骤,可以往.gitattributes
文件写入以下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 *.7z filter =lfs diff =lfs merge =lfs -text *.arrow filter =lfs diff =lfs merge =lfs -text *.bin filter =lfs diff =lfs merge =lfs -text *.bz2 filter =lfs diff =lfs merge =lfs -text *.ckpt filter =lfs diff =lfs merge =lfs -text *.ftz filter =lfs diff =lfs merge =lfs -text *.gz filter =lfs diff =lfs merge =lfs -text *.h5 filter =lfs diff =lfs merge =lfs -text *.joblib filter =lfs diff =lfs merge =lfs -text *.lfs.* filter =lfs diff =lfs merge =lfs -text *.lz4 filter =lfs diff =lfs merge =lfs -text *.mlmodel filter =lfs diff =lfs merge =lfs -text *.model filter =lfs diff =lfs merge =lfs -text *.msgpack filter =lfs diff =lfs merge =lfs -text *.npy filter =lfs diff =lfs merge =lfs -text *.npz filter =lfs diff =lfs merge =lfs -text *.onnx filter =lfs diff =lfs merge =lfs -text *.ot filter =lfs diff =lfs merge =lfs -text *.parquet filter =lfs diff =lfs merge =lfs -text *.pb filter =lfs diff =lfs merge =lfs -text *.pickle filter =lfs diff =lfs merge =lfs -text *.pkl filter =lfs diff =lfs merge =lfs -text *.pt filter =lfs diff =lfs merge =lfs -text *.pth filter =lfs diff =lfs merge =lfs -text *.rar filter =lfs diff =lfs merge =lfs -text *.safetensors filter =lfs diff =lfs merge =lfs -text saved_model/**/* filter =lfs diff =lfs merge =lfs -text *.tar.* filter =lfs diff =lfs merge =lfs -text *.tar filter =lfs diff =lfs merge =lfs -text *.tflite filter =lfs diff =lfs merge =lfs -text *.tgz filter =lfs diff =lfs merge =lfs -text *.wasm filter =lfs diff =lfs merge =lfs -text *.xz filter =lfs diff =lfs merge =lfs -text *.zip filter =lfs diff =lfs merge =lfs -text *.zst filter =lfs diff =lfs merge =lfs -text *tfevents* filter =lfs diff =lfs merge =lfs -text *.pcm filter =lfs diff =lfs merge =lfs -text *.sam filter =lfs diff =lfs merge =lfs -text *.raw filter =lfs diff =lfs merge =lfs -text *.aac filter =lfs diff =lfs merge =lfs -text *.flac filter =lfs diff =lfs merge =lfs -text *.mp3 filter =lfs diff =lfs merge =lfs -text *.ogg filter =lfs diff =lfs merge =lfs -text *.wav filter =lfs diff =lfs merge =lfs -text *.bmp filter =lfs diff =lfs merge =lfs -text *.gif filter =lfs diff =lfs merge =lfs -text *.png filter =lfs diff =lfs merge =lfs -text *.tiff filter =lfs diff =lfs merge =lfs -text *.jpg filter =lfs diff =lfs merge =lfs -text *.jpeg filter =lfs diff =lfs merge =lfs -text *.webp filter =lfs diff =lfs merge =lfs -text *.webm filter =lfs diff =lfs merge =lfs -text *.mp4 filter =lfs diff =lfs merge =lfs -text *.psd filter =lfs diff =lfs merge =lfs -text
ROUTEROS
根据文件的格式进行修改
linux安装nvidia驱动1、下载驱动文件 前往nvidia官网 下载驱动,选择好显卡版本后,在操作系统
选项选择Linux 64-bit
,点击开始搜索
,选择一个版本进行下载,此时得到NVIDIA-Linux-x86_64-545.29.02.run
文件(不同的版本文件名不同),将该文件放在用户目录中,方便找到
1 2 3 4 $ pwd /home/licyk $ ls NVIDIA-Linux-x86_64-545.29.02.run
BASH
2、禁用nouveau
1 2 3 4 5 6 7 $ sudo vim/etc/modprobe.d/blacklist.conf blacklist nouve $ sudo update-initramfs -u $ lsmod | grep nouveau
BASH
3、关闭X Server图形桌面 按下Ctrl+Alt+F1
进入tty界面,按以下方法关闭x server
gdm类型桌面系统
1 2 sudo /etc/init.d/gdm stop sudo /etc/init.d/gdm status
BASH
lightdm类型桌面系统
1 2 sudo /etc/init.d/lightdm stop sudo /etc/init.d/lightdm status
BASH
sddm类型桌面系统
1 2 sudo /etc/init.d/sddm stop sudo /etc/init.d/sddm status
BASH
4、安装nvidia驱动 给nvidia驱动安装程序赋予执行权限
1 chmod +x NVIDIA-Linux-x86_64-545.29.02.run
BASH
运行安装程序
1 sudo ./NVIDIA-Linux-x86_64-545.29.02.run --no-opengl-files --no-x-check
BASH
根据提示安装即可,完成后重启电脑
5、检查驱动是否安装成功 如果进桌面黑屏,可以按下Ctrl+Alt+F1
进入tty界面,删除xorg.conf后重启
1 2 sudo rm -f /etc/X11/xorg.conf reboot
BASH
检查安装是否成功
linux安装waydroid
基于Debian/Ubuntu系
1、添加waydroid下载源
1 2 sudo apt install curl ca-certificates -y curl https://repo.waydro.id | sudo bash
BASH
2、安装waydroid
1 sudo apt install waydroid -y
BASH
3、下载Android系统镜像 前往waydroid镜像 的发布地址,下载system和vendor压缩包文件,把压缩包里的文件解压到waydroid的目录里
1 2 3 4 sudo mkdir -p /etc/waydroid-extra/images sudo unzip lineage-*-system.zip -d /etc/waydroid-extra/images sudo unzip lineage-*-vendor.zip -d /etc/waydroid-extra/imagesrm lineage-*-system.zip lineage-*-vendor.zip
BASH
4、初始化waydroid
1 2 sudo waydroid init -f sudo waydroid container start
BASH
5、配置arm转译层 下载waydroid_script ,并配置运行环境
1 2 3 4 5 6 7 8 git clone https://github.com/casualsnek/waydroid_scriptcd waydroid_script sudo apt install lzip python3 -m venv venv venv/bin/pip install -r requirements.txt sudo venv/bin/python3 main.py install libndk sudo venv/bin/python3 main.py install libhoudini
BASH
6、配置waydroid多窗口
1 waydroid prop set persist.waydroid.multi_windows true
BASH
7、启动waydroid
1 waydroid show-full-ui
BASH
8、软件安装和文件传输
1 2 3 4 5 6 7 8 9 10 11 12 13 waydroid app install xyz.apk waydroid app remove com.foo.bar waydroid app launch com.foo.bar waydroid app list adb push /path/to/file /mnt/sdcard adb pull /path/to/file /path/to/pc/file
BASH
参考:https://docs.waydro.id
修改cinnamon主题透明度以下为对 Linux mint 官方主题的cinnamon.css
文件的修改部分
修改了部分组件的透明度和颜色
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #menu-search-entry , .popup-menu #notification StEntry { padding : 7px ; caret-size: 1px ; selection-background-color : #1f9ede ; selected-color : #ffffff ; transition-duration : 300ms ; border-radius : 3px ; color : #303030 ; background-color : #f4f4f4 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.2 ); background -gradient-end: rgba (244 ,244 ,244 ,0.2 ); border : 1px solid #cfd6e6 ; box-shadow : inset 0 2px 4px rgba (244 , 244 , 244 , 0.05 ); } #menu-search-entry :focus , .popup-menu #notification StEntry:focus , #menu-search-entry :hover , .popup-menu #notification StEntry:hover { color : #303030 ; background-color : #f4f4f4 ; border : 1px solid #1f9ede ; box-shadow : inset 0 2px 4px rgba (244 , 244 , 244 , 0.05 ); } #menu-search-entry :insensitive, .popup-menu #notification StEntry:insensitive { color : rgba (48 , 48 , 48 , 0.55 ); background-color : #efefef ; border-color : 1px solid #dadee7 ; box-shadow : inset 0 2px 4px rgba (239 , 239 , 239 , 0.05 ); } #menu-search-entry StIcon.capslock-warning , .popup-menu #notification StEntry StIcon.capslock-warning { icon -size: 16px ; warning-color : #F27835 ; padding : 0 4px ; }
CSS
调整一级菜单的参数,background-color
第四个参数用来调整透明度
1 2 3 4 5 6 7 8 9 10 11 12 13 .menu { color : #303030 ; border : 1px solid #b5b5b5 ; border-radius : 3px ; background-color : rgba (232 , 232 , 232 , 0.7 ); } .menu .top { border-radius : 0 0 3px 3px ; } .menu .bottom { border-radius : 3px 3px 0 0 ; } .menu .left { border-radius : 0 3px 3px 0 ; } .menu .right { border-radius : 3px 0 0 3px ; }
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 .popup-sub-menu { background-color : #f4f4f4 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.4 ); background -gradient-end: rgba (244 ,244 ,244 ,0.4 ); box-shadow : none; } .popup-sub-menu .popup-menu-item :ltr { padding-right : 1.75em ; } .popup-sub-menu .popup-menu-item :rtl { padding-left : 1.75em ; } .popup-sub-menu StScrollBar { padding : 4px ; } .popup-sub-menu StScrollBar StBin#trough , .popup-sub-menu StScrollBar StBin#vhandle { border-width : 0 ; }
CSS
1 2 3 4 5 6 .popup-menu-item :active { color : #303030 ; background-color : rgba (31 ,158 ,222 ,0.99 ); }.popup-menu-item :insensitive { color : rgba (48 , 48 , 48 , 0.3 ); background : none; }
CSS
调整任务栏的参数,background-color
第四个参数用来调整透明度
1 2 3 4 5 6 .panel-top , .panel-bottom , .panel-left , .panel-right { color : #ffffff ; border : none; background-color : rgba (232 , 232 , 232 , 0.4 ); font-size : 1em ; padding : 0px ; }
CSS
1 2 3 4 5 6 7 8 9 10 .calendar-events-main-box { height : 300px ; margin-right : .5em ; padding : .5em ; min-width : 350px ; border : 1px solid #b5b5b5 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.1 ); background -gradient-end: rgba (244 ,244 ,244 ,0.1 ); background-color : #f4f4f4 ; }
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #notification { border : 1px solid #b5b5b5 ; border-radius : 3px ; background-color : #e8e8e8 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.8 ); background -gradient-end: rgba (244 ,244 ,244 ,0.8 ); padding : 13px ; spacing-rows: 10px ; spacing-columns : 10px ; margin -from -right -edge-of-screen: 20px ; width : 34em ; color : #303030 ; } .popup-menu #notification { color : #303030 ; border-image : url ("light-assets/misc/message.svg" ) 9 9 9 9 ; } .popup-menu #notification .notification-button , .popup-menu #notification .notification-icon-button { padding : 5px ; } #notification .multi-line-notification { padding-bottom : 13px ; color : #303030 ; } #notification-scrollview { max-height : 10em ; } #notification-scrollview > .top-shadow , #notification-scrollview > .bottom-shadow { height : 1em ; } #notification-scrollview :ltr > StScrollBar { padding-left : 6px ; } #notification-scrollview :rtl > StScrollBar { padding-right : 6px ; } #notification-body { spacing: 5px ; } #notification-actions { spacing: 10px ; }
CSS
1 2 3 4 5 6 .notification-button , .notification-icon-button { padding : 5px ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.3 ); background -gradient-end: rgba (244 ,244 ,244 ,0.3 ); }
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 .switcher-list { color : #303030 ; border : 1px solid #b5b5b5 ; background-color : #e8e8e8 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.6 ); background -gradient-end: rgba (244 ,244 ,244 ,0.6 ); border-radius : 3px ; padding : 20px ; } .switcher-list > StBoxLayout { padding : 4px ; } .switcher-list-item-container { spacing: 8px ; } .switcher-list .item-box { padding : 8px ; border-radius : 2px ; } .switcher-list .item-box :outlined { padding : 8px ; border : 1px solid #1f9ede ; } .switcher-list .item-box :selected { color : #ffffff ; background-color : #1f9ede ; border : 0px solid #1f9ede ; } .switcher-list .thumbnail { width : 256px ; } .switcher-list .thumbnail-box { padding : 2px ; spacing: 4px ; } .switcher-list .separator { width : 1px ; background : rgba (255 , 255 , 255 , 0.2 ); }
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 .modal-dialog { background-color : #e8e8e8 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.4 ); background -gradient-end: rgba (244 ,244 ,244 ,0.4 ); border : 1px solid #b5b5b5 ; border-radius : 3px ; padding : 5px 10px ; } .modal-dialog > StBoxLayout:first -child { padding : 10px ; } .modal-dialog-button-box { spacing: 0 ; margin : 0px ; padding : 10px ; border : none; background-color : #e8e8e8 ; } .modal-dialog-button-box .modal-dialog-button { padding-top : 0 ; padding-bottom : 0 ; height : 30px ; } .modal-dialog .confirm-dialog-title { text-align : center; font-weight : bold; font-size : 1.3em ; padding-bottom : 12px ; }
CSS
1 2 3 4 5 6 7 8 .menu-favorites-box { padding : 10px ; transition-duration : 300 ; background-color : #e7e7e7 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.3 ); background -gradient-end: rgba (244 ,244 ,244 ,0.3 ); border : 1px solid #b5b5b5 ; }
CSS
1 2 3 4 5 6 .menu-favorites-button { padding : .9em 1em ; border : 1px solid rgba (0 , 0 , 0 , 0 ); border-radius : 2px ; } .menu-favorites-button :hover { background-color : #1f9ede ; }
CSS
1 2 3 4 5 6 7 8 9 10 11 .menu-application-button-selected { padding : 7px ; color : #303030 ; background-color : #1f9ede ; border : 1px solid #b5b5b5 ; } .menu-application-button-selected :highlighted { font-weight : bold; }.menu-application-button-label :ltr { padding-left : 5px ; }.menu-application-button-label :rtl { padding-right : 5px ; }
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 .menu-category-button { padding : 7px ; border : 1px solid rgba (0 , 0 , 0 , 0 ); } .menu-category-button-selected { padding : 7px ; color : #303030 ; background-color : #1f9ede ; border : 1px solid #b5b5b5 ; } .menu-category-button-hover { background-color : red; border-radius : 2px ; } .menu-category-button-greyed { padding : 7px ; color : rgba (48 , 48 , 48 , 0.55 ); border : 1px solid rgba (0 , 0 , 0 , 0 ); } .menu-category-button-label :ltr { padding-left : 5px ; } .menu-category-button-label :rtl { padding-right : 5px ; }
CSS
1 2 3 4 5 6 7 8 9 10 11 12 .info-osd { text-align : center; font-weight : bold; spacing: 1em ; padding : 16px ; color : #303030 ; background -gradient-direction : vertical; background -gradient-start: rgba (244 ,244 ,244 ,0.6 ); background -gradient-end: rgba (244 ,244 ,244 ,0.6 ); border : 1px solid #b5b5b5 ; border-radius : 5px ; background-color : #e8e8e8 ; }
CSS
1 2 3 4 5 6 7 .applet-box :hover , .applet-box :checked { color : #303030 ; background-color : rgba (31 , 158 , 222 , 0.99 ); }.applet-box :highlight { background-image : none; border-image : none; background-color : rgba (252 , 65 , 56 , 0.5 ); }
CSS
参考:Cinnamon theme beginner’s tutorial
配置 Jupyter
1 pip install notebook ipykernel jupyterlab-language-pack-zh-CN
BASH
Git 删库小寄巧 方法 1
查询第一个提交信息的哈希值。
将仓库的内容删除。
1 2 git reset --soft <第一个 commit 的 id > git commit --amend --allow-empty
BASH
方法 2
创建一个新的空分支
创建一个commit
1 git commit -m "commit"
NGINX
删除主分支
1 git branch -D master
CRMSH
将新分支重命名为主分支
1 git branch -m master
CRMSH
强制推送更改到远程主分支
1 git push -f origin master
MAXIMA
关联远程master主分支
1 git branch --set -upstream-to =origin/master
DELPHI
参考:https://blog.csdn.net/qq_46106285/article/details/124744328 https://blog.csdn.net/weixin_46447553/article/details/135460278
设置 Git 仓库中的文件权限比如添加执行权限。
1 git update-index --chmod =+x term-sd.sh
BASH
修改 Linux 系统 root 密码进入 grub 界面,在启动项中找到 Advance,选择标记为 Recovery Mode 的启动项,按下e
键进入编辑模式,找到linux
那行命令,将ro
修改为rw
,后面再加上init=/bin/bash
,修改后按下Ctrl + x
启动 Linux。
进入系统后用passwd
命令修改 root 密码,修改后用 SysRq 重启系统。
1 2 3 echo s > /proc/sysrq-trigger echo u > /proc/sysrq-trigger echo b > /proc/sysrq-trigger
BASH
此时就重启 Linux 系统,用新的 root 密码登陆系统。
如果 SysRq 没有启用,可以临时用命令启用。
1 echo 1 > /proc/sys/kernel/sysrq
BASH
解决 Git Status 命令无法显示中文字符1 git config --global --add core.quotepath false
BASH