2023年2月

创建普通用户

# 创建用户,并指定用户目录,加入用户组sudo useradd username -d /home/username -m
#设置密码
sudo passwd username

#给用户增加sudo权限
sudo chmod u+w /etc/sudoers
#编辑权限文件
sudo vi /etc/sudoers
#在 root ALL=(ALL:ALL) ALL 添加一行
	username ALL=(ALL:ALL) ALL

#恢复文件权限
sudo chmod u-w /etc/sudoers

解决远程用户登录问题

sudo vi /etc/passwd

在追后一行追加 :/bin/bash

username:x:1001:1001::/home/biyunsheng:/bin/bash

在home目录中创建一个 .vimrc文件

vim ~/.vimrc

文件基本配置

" 设置当文件被改动时自动载入
set autoread
" quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
"代码补全 
set completeopt=preview,menu 
"允许插件  
filetype plugin on
"共享剪贴板  
set clipboard=unnamed 
"从不备份  
set nobackup
"make 运行
:set makeprg=g++\ -Wall\ \ %
"自动保存
set autowrite
set ruler                   " 打开状态栏标尺
set cursorline              " 突出显示当前行
set magic                   " 设置魔术
set guioptions-=T           " 隐藏工具栏
set guioptions-=m           " 隐藏菜单栏
"set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 设置在状态行显示的信息
set foldcolumn=0
set foldmethod=indent 
set foldlevel=3 
set foldenable              " 开始折叠
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" 语法高亮
set syntax=on
" 去掉输入错误的提示声音
set noeb
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 在行和段开始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"禁止生成临时文件
set nobackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
" 总是显示状态行
set laststatus=2
" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 为C程序提供自动缩进
set smartindent
" 高亮显示普通txt文件(需要txt.vim脚本)
 au BufRead,BufNewFile *  setfiletype txt
"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { {<CR>}<ESC>O
":inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
	if getline('.')[col('.') - 1] == a:char
		return "\<Right>"
	else
		return a:char
	endif
endfunction
filetype plugin indent on 
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu

python字符串replace替换无效

背景

今天想把一个列表中符合条件的元素中 替换部分字符串, 发现怎么替换,改元素还是没有改变,本以为是内存引用的问题后来发现并不然。

经查阅解决

在Python中字符串是immutable对象,是不可变对象。

所以string使用replace需要重新赋值,生成一个新的对象。

str_a = 'hello world'
#replace 其实创建了新的字符串对象,需要重新引用这个字符串
str_a = str_a.replace('*****')

之前没有重新引用,导致该变量 指向的是 以前的对象,实则已经发生变化,只是没有重新引用而已。

Autoit 实现word拆分页解析 (python同理)

背景

之前一直在做相关工作,由于没有找到解决最佳解决方案,老办法思路是 python先将word 转成pdf,按照页码 提取文字,从而实现word的页索引工作。

最近研究了一下vba,终于找到了最佳解决方案!!!

AutoIt

我用AutoIt测试的,AutoIt调用vba

#include <MsgBoxConstants.au3>
#include <Word.au3>

; 创建应用对象
Local $oWord = _Word_Create()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocOpen 示例", _
        "创建新 Word 应用对象时发生错误." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; *****************************************************************************
; 只读打开文档
; *****************************************************************************
Local $sDocument = 'D:\Desktop\tzcpa\BJ自动打印\新建文件夹\AutoPrinter\log\backupFile\2019-04-03 08h39m03s140\天职业字[2019]11884号\2.单体审计报告2018-标准无保留意见.docx'
Local $doc = _Word_DocOpen($oWord, $sDocument, Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocOpen 示例 1", "打开文档 '.\Extras\Test.doc' 发生错误." & _
        @CRLF & "@error = " & @error & ", @extended = " & @extended)

;关键部分!!!! 
; $doc 是当前活动文档,Pages是页码索引,Item是矩形框索引 改成请自行更改测试,因为一页可能有多个矩形框 
;返回值时 活动文档某一页的 矩形框中的文本

Local $objPage = $doc.ActiveWindow _
 .Panes(1).Pages(2).Rectangles.Item(2).Range.Text
MsgBox(1,1,$objPage)


MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocOpen 示例 1", "文档 '" & $sDocument & "' 已成功打开.")

思路

整体思路是调用vba,由于目前python没有发现 有库可以对 页对象进行操作,所以采用了调用底层vba来操作

在vba中 页对象有一个是 Rectangles属性,解释如下

下面的示例返回活动文档中第一页的矩形集合。

Dim objRectangles As Rectangles 
 
Set objRectangles = ActiveDocument.ActiveWindow _ 
 .Panes(1).Pages(1).Rectangles

然后顺藤摸瓜找到了Rectangles对象可以操作Range ,这样就可以获得某一页的某一矩形 内的 text,之后对于大多数页对象的操作也就解决了。

python同理,使win32库调用 vba就好了

附vba官方中文文档https://docs.microsoft.com/zh-cn/office/vba/api/
之前的思路]https://mp.csdn.net/mdeditor/87099782#

决定把我的渣机脱坑

一、制作启动盘

  1. 官方下载ubuntu18.04LTS iso文件
    [ubuntu官方链接](https://www.ubuntu.com/download/desktop
  2. UltraISO制作启动文件(采用试用)
    UltraISO官方链接
  3. 打开UltraISO
  4. 打开文件选择iso文件
  5. 选择 启动 =》 写入硬盘映像
    在这里插入图片描述
  6. 点击便捷启动
    在这里插入图片描述

接着选择 便捷式启动=》Sysliunx=》写入新的驱动扇区=》sysliunx
在这里插入图片描述

  1. 接下来选择 =》写入
    注意 写入方式最好选择USB-HDD 兼容性比较好

u盘制作完成

二、bios设置

  1. 一般电脑设置为快速启动无法进入bios设置,需要在关闭快速启动, 电源选项=》系统设置 =》关闭快速启动
    在这里插入图片描述

  2. 插入启动盘,开机 出现画面 =》长按F2 到bios设置

  3. bios设置
    Boot =》Lunch CSM=》设置为 enable,
    Security=》secure boot control-=》设置为disable
    Boot =》 将Boot Option #1 选择为 =》 UEFI 的启动盘
    然后按 F10 保存退出
    等待重启

  4. 之前被坑,我的不需要编辑,直接install就ok选择 install Ubuntu =》按e键进入编辑模式选择 install Ubuntu =》按e键进入编辑模式
    在 linux这行 找到quiet splash,在后面空格接着输入 $vt_handoff acpi_osi=linux nomodeset

  5. 按F10 等待安装

  6. 选择语言 键盘布局语言

  7. 无线选择

  8. 更新和其他软件 (网不好就选正常安装吧,其他选项默认,勾选了其他的可能要等一会,系统在下载文件)

  9. 安装类型=》 根据自己的实际需求

  10. 选择地区 =》shanghai (直接鼠标选择中国区域)

  11. 如果有分盘需求选择其他选项
    =》【手打超链接,后续补上】

  12. 用户配置

  13. 等待安装

其他配置链接:
后续更新!

如有问题请评论区留言 第几步骤!