vim 进阶
vim 进阶开始之前此时的你已经熟悉vim的基本使用(打开、编辑、保存和退出),但仍然觉得vim用起来别扭。 究其原因,我觉得是现在的我们已经习惯于使用鼠标操作(滑动、点击、长按选择)而vim则使用按键完成鼠标的工作。以至于我们看到一段文章无意识的想用鼠标选择,但是使用vim的我们不得不先动动脑子想想该按那几个按键。这种别扭应该只会存在于不熟悉vim按键的阶段。所谓进阶就是熟悉按键操作克服这种别捏。 要熟悉按键,我们最先想到的也许是去记忆键位,但对于vim那并不是最快捷高效的方式。 vim 的核心概念是模式编辑,即按键在不同的模式下作用不同。 你可以在普通模式下浏览文件,在插入模式下插入文本,在可视模式下选择行或块,在命令模式下执行命令等。 和模式编辑紧密相连的概念是 操作符 和 动作。操作符 指的是开始某个行为, 例如:修改、删除或者选择文本,之后你要用一个 动作 来指定需要操作的文本区域。 例如,删除一个单词,执行 daw ( delete around word),删除3个单词,执行 daw ( delete 3 word)。基本上每个按键都是单词的缩写或者执行的次数,知道...
Java 多线程
Java 多线程synchronized对于非静态成员:锁加在 类.class 对象上对于静态成员:锁加在 this 对象上 锁是什么? 锁是一个”对象“: 对象中有一个标志位,记录自己有没有被某个线程占用。 如果被占用记录线程的id,知道是那个线程。 维护一个 thread id list,记录其他所有阻塞的、等待拿锁的线程。 锁是“对象”,共享资源也是”对象“,二者可合二为一。 wait notifywait notify和synchronized 作用的对象是同一个 wait 释放锁 阻塞,等待被其他对象notify 重新拿锁 volatile使用内存屏障实现 内存可见性 多核逻辑CUP缓存和内存 指令重排序 没有依赖关系的指令可能重排序 as-if-serial 语义 和单线程执行结果相同 happen-before 若 A happen-before B,则A的执行结果对B可见。 Compare And Set (CAS)悲观锁:认为并发冲突的概率很大,所以读操作之前就上锁。 乐观锁:认为并发冲突的概率很小,所以读之前不加锁,等写的时候判断是否被其...
PL/SQL 基础
PL/SQL 基础PL/SQL的基本结构:PL/SQL是一种块结构语言,其块结构如下: 1234567891011121314DECLARE ――声明部分:声明变量、常量、用户定义的数据类型以及游标 ――这一部分可选,不需要可不写BEGIN ――主程序体,在这可以加入各种合法的语句EXCEPTION ――异常处理程序,当程序中出现错误时执行这一部分 ――这一部分可选END; ――主程序体结束,分号必不可少; 从上面的结构可以看出,PL/SQL块由三部分组成:声明部分、执行部分和异常处理部分,其中只有执行部分是必须的:BEGIN /*执行部分*/ END; 12345DECLARE /*声明部分*/ BEGIN /*执行部分*/ END; 都是合法的。 PL/SQL中的数据类型(1) 标量NUMBER–用于存储和操纵数字数据 ,格式是NUMBER(p,s),p是数据宽度,s是小数点后的位数,默认为0; CHARACTER―― CHAR :字符型,最长2000b NCHA...
Oracle User
创建用户123456789CREATE USER user IDENTIFIED {BY password | EXTERNALLY} [ DEFAULT TABLESPACE tablespace ] [ TEMPORARY TABLESPACE tablespace ] [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace ]...] [ PASSWORD EXPIRE ] [ ACCOUNT { LOCK | UNLOCK }] [ PROFILE { profile | DEFAULT }] 修该密码 alter user scott identified by “tiger”; 删除用户1DROP USER user [CASCADE] CASCADE 同时删除表 查看配额DBA_USERSDBA_T...
Oracle Object
Oracle Object表123create table t_<name>;select * from t_<name>;drop table t_<name>; 常用数据类型varchar2(n) 可变长的字符串 具体定义时指明最大长度n byte,最大字节数都是4000(UTF8 1333个汉字) number(precision,scale) 可变长的数值列,允许浮点数、正值及负值 precision [1,38] 是所有有效数字的位数(从左边第一个不为0的数算起,小数点和负号不计入有效位数) scale [-84,127] 是小数点以后的位数,多出来的位数四舍五入 date 时间日期 包括:世纪、年、月、日、时、分、秒 sysdate TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') TO_DATE('2002-10-09 13:23:44', 'yyyy-mm-dd hh24:mi:ss') blob 二进制数据 用来保存较大的...
OpenGauss Database
OpenGauss Database安装1234567891011docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Tq@021009 -p 5432:5432 enmotech/opengauss:latestdocker run --name opengauss --privileged=true -d -e GS_PASSWORD=Tq@021009 -p 5432:5432 opengauss/opengaussgsql -d postgres -U gaussdb -W 'Tq@021009' -h host_ip -p 5432su - ommgsql 12345678910步骤 1 以操作系统用户omm登录数据库主节点。gs_om -t status --detail步骤 2 使用如下命令查询openGauss状态:若要查询某主机上的实例状态,请在命令中增加“-h”项。示例如下:。示例如下:gs_om -t status -h plat2 --detail其中,pla...
Archlinux Mail
Archlinux Mail安装1sudo pacman -S s-nail 编辑配置文件sudo vim /etc/mail.rc 12345set from="<USERNAME>@qq.com"set smtp-auth=loginset mta=smtps://<USERNAME>:<QQ邮箱授权码>@smtp.qq.com:465 #smtp服务器端口是465set v15-compat #必须要set nss-config-dir=/root/.certs 获得邮箱的SSL证书并存放到本地最后一行的nss-config-dir就是制定的存放QQ邮箱SSL证书的位置 手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证 12345678su rootmkdir -p /root/.certs/echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END C...
Oracle Log File
Oracle Log File 重做日志文件(Redo Log Files)重做日志文件记录对数据所做的所有更改,并提供从系统或介质故障中恢复的机制。 重做日志文件按组(group)进行组织。 Oracle 数据库至少需要两个组(group),因为日志组要循环使用。 组中的每个重做日志称为一个成员(member)。 重做日志文件的用途 重做日志文件提供了在发生数据库故障时重做事务的方法。每个事务都同步写入重做日志文件,以便在介质发生故障时提供恢复机制。例外情况包括:使用 NOLOGGING 选项完成的直接加载和直接读取。 这包括尚未提交的事务、撤消段信息以及架构和对象管理语句。重做日志文件用于实例无法恢复尚未写入数据文件的已提交数据等情况。重做日志文件仅用于恢复 重做日志文件的结构 DBA 可以设置 Oracle 数据库来维护联机重做日志文件的副本,以避免由于单点故障而丢失数据库信息。 在线重做日志组(Online Redo Log Groups)联机重做日志文件的一组相同副本称为联机重做日志组。 LGWR 后台进程同时将相同的信息写入组中的所有联机重做日志文件。Oracle...
Linux User Group
Linux UserLinux 下用户和组管理 4个文件 /etc/passwd : 保存用户账户信息 /etc/shadow : 用户账户密码 /etc/group : 账户分组信息 /etc/gshadow :组口令、组管理员 获取用户和组相关信息123456789101112# 当前用户的信息id# 当前登陆的用户名users# 当前用户的组groupswho/whoamicat /etc/passwd 用户管理添加用户 useradd 123456789useradd <arg> username -c comment -d home-dir -e expire-date -g user-group-name -G supplementary-group -s shell-path -u uid -D username adduser 1adduser 修改用户 usermod 123456usermod <arg> username ...
Docker Oracle 11g
12345docker run -d -p 1521:1521\ --name oracle-11g\ -e ORACLE_ALLOW_REMOTE=true\ -e ORACLE_DISABLE_ASYNCH_IO=true\ oracleinanutshell/oracle-xe-11g 关闭实例 shutdown immediate 启动实例到nomount状态startup nomount 建立控制文件alter database backup controlfile to trace; show parameter user_dump_dest; 123456789101112131415161718192021222324252627282930313233343536373839---- Set #1. NORESETLOGS case---- The following commands will create a new control file and use it-- to open the database.-- Data used by Re...



