Centos安装Python 2.7 python-pip

准备工作

下载python包

1
wget http://python.org/ftp/python/2.7.11/Python-2.7.11.tgz

查看是否安装make工具

1
2
3
~#rpm -qa|grep make
automake-1.11.1-4.el6.noarch
make-3.81-20.el6.x86_64

如果没有安装make工具

1
yum -y install gcc automake autoconf libtool make

查看是否安装zlib库

1
2
3
~#rpm -qa|grep zlib
zlib-devel-1.2.3-29.el6.x86_64
zlib-1.2.3-29.el6.x86_64

安装zlib

1
yum install zlib-devel

检查是否安装ssl 库

1
2
3
4
5
6
~#rpm -qa|grep openssl
openssl-devel-1.0.1e-16.el6_5.x86_64
openssl-static-1.0.1e-16.el6_5.x86_64
openssl098e-0.9.8e-17.el6.centos.2.x86_64
openssl-1.0.1e-16.el6_5.x86_64
openssl-perl-1.0.1e-16.el6_5.x86_64

安装openssl

1
yum install openssl*

安装bzip2依赖库

1
yum install -y bzip2*

oracle日常运维

创建数据库

使用DB Config Assistant创建数据库后执行

1
2
3
4
5
6
7
8
9
10
sqlplus sys/mypasswd@sid as sysdba

CREATE TABLESPACE myspace DATAFILE 'E:\myspace\myspace01.DBF' SIZE 15G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

create user myuser identified by mypasswd default tablespace myspace temporary tablespace temp quota unlimited on myspace;
grant create session to myuser;
grant Resource to myuser;
grant connect to myuser;
grant DBA to myuser;

导入导出数据库

  1. 使用expimp导入导出
    1
    2
    3
    4
    5
    # 导出数据
    exp system/passwd@sid file=d:\dump\test.dmp full=y;

    # 导入数据
    imp username/passwd@sid full=y file=D:/dump/test.dmp ignore=y;
  2. 使用expdbimpdb导入导出
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sqlplus system/mypasswd@sid as sysdba
    # 查看目录
    select * from dba_directories;
    # 如果没有合适的目录,则创建一个
    create directory dump_dir as 'D:\dump';
    # 导出scheme
    expdp system/manage@sid DIRECTORY=dump_dir schemas=orguser dumpfile=dump.dmp
    # 导入scheme
    impdp system/manage@sid directory=dump_dir dumpfile=dump.dmp schemas=orguser remap_schema=orguser:newuser remap_tablespace=orgtable:newtable table_exists_action=replace logfile=impdp.log;

查看进程执行的sql

1
2
3
4
5
6
7
8
SELECT sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN
(SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value ),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr =
(SELECT addr FROM v$process c WHERE c.spid='$pid'
)
) ORDER BY piece ASC;

查看资源消耗最多的sql

1
2
3
4
5
6
7
select b.username username,a.disk_reads reads,
a.executions exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,
a.sql_text Statement
from v$sqlarea a,dba_users b
where a.parsing_user_id=b.user_id
and a.disk_reads > 100000
order by a.disk_reads desc;

查看磁盘消耗最多的sql

1
2
3
4
5
6
select disk_reads,sql_text
from (select sql_text,disk_reads,
dense_rank() over
(order by disk_reads desc) disk_reads_rank
from v$sql)
where disk_reads_rank <=5;

参考
Oracle exp/expdp imp/impdp导入导出数据

文件下载默认保存名

在前端使用a标签下载文件,浏览器会自动打开文件预览。可以使用html5的download属性来实现下载。
如:

1
<a href="xx.pdf" download>下载</a>

如果需要指定文件名,则可以写成:
1
<a href="xx.pdf" download="filename">下载</a>

如果需要修改后缀,则可以写成:
1
<a href="xx.pdf" download="filename.doc">下载</a>

问题:

如果跨域了,在chorme浏览器下,可以下载,但是下载的文件名设置无效,如:

1
<a href="xx.pdf" download="filename.doc">下载</a>

下载下来的文件名仍然为xx.pdf,解决文件名问题有2个方法:

sublime总结

序列号

直接输入注册码就可以了

1
2
3
4
5
6
7
8
9
10
11
12
13
----- BEGIN LICENSE -----
Andrew Weber
Single User License
EA7E-855605
813A03DD 5E4AD9E6 6C0EEB94 BC99798F
942194A6 02396E98 E62C9979 4BB979FE
91424C9D A45400BF F6747D88 2FB88078
90F5CC94 1CDC92DC 8457107A F151657B
1D22E383 A997F016 42397640 33F41CFC
E1D0AE85 A0BBD039 0E9C8D55 E1B89D5D
5CDB7036 E56DE1C0 EFCC0840 650CD3A6
B98FC99C 8FAC73EE D2B95564 DF450523
------ END LICENSE ------

快捷键

ctrl+p  搜索文件
esc  退出弹出的窗口
ctrl+N 新建标签页
ctrl+shift+N 新建窗口
ctrl+W 关闭标签页
ctrl+O 打开当前文件的目录
ctrl+G跳转到多少行
ctrl+M 匹配括号
ctrl+shift+p 打开命令窗口
ctrl+· 打开控制台,python
ctrl+F 搜索单文件
ctrl+shift+F 搜索多文件
shift+鼠标右键(window)  option+鼠标左键 (mac)  选择多行
ctrl+; (win)  commad+p 搜索字符
ctrl+R(win)  commad+R(mac)    查找函数或者类
ctrl+X  或 ctrl+shift+k 删除一行
ctrl+KK 删除光标到行尾的字符
ctrl+k+backspace  删除光标到行头
ctrl+enter 在当前行之后插入新行
ctrl+shift+enter 在当前行之前插入行
ctrl+shift+up或者down  将当前行向上或者向下移动
ctrl+L 选择一行
ctrl+D 选择一个单词
ctrl+【  和ctrl+】 缩进
ctrl+shift+D 复制一行
ctrl+/ 注释
ctrl+shift+/ 多行注释
ctrl+J  合并多行
ctrl+shift+v 缩进粘贴

OSX下VMware虚拟网络ip设置

虚拟机的网络访问方式分NAT模式和桥接模式。
NAT模式即使用的物理机的ip访问外部网络,通过虚拟网卡做nat转换,在window下可以通过界面直接修改虚拟ip设置。OSX下如果不使用dhcp自动分配虚拟机ip,则需要把虚拟机的ip设置到192.168.71.0网段下,网关设置成192.168.71.2。如果想自己指定网段,则需要修改:

1
2
3
# sudo vi /Library/Preferences/VMware\ Fusion/networking
# sudo vi /Library/Preferences/VMware\ Fusion/networking/vmnet8/dhcpd.conf
# sudo vi /Library/Preferences/VMware\ Fusion/networking/vmnet8/nat.conf

桥接模式相对简单,即使用物理主机同网段的ip即可。选择桥接模式,虚拟机的网关和物理机网关设置成一样,ip设置到物理机的同网段下。

svn之服务器镜像同步

如果同步,需要在服务器上,如果是备份,则在安装svn客服端的机器即可。
1.建立新项目

1
svnadmin create svn_repos

2.执行(如果windows,需要将pre-revprop-change改成pre-revprop-change.bat)

1
2
3
4
5
cp /var/svndata/svn_repos/hooks/pre-revprop-change.tmpl /var/svndata/svn_repos/hooks/pre-revprop-change
chmod a+x /var/svndata/svn_repos/hooks/pre-revprop-change
svnsync init file:///var/svndata/svn_repos https://showmecode.cn/code/svn_repos --sync-username user_svnsync --sync-password svnsync
svnsync sync --non-interactive file:///var/svndata/svn_repos

FAQ

如果在镜像服务器不小心提交了代码,会导致镜像服务器无法同步。

1
2
svnsync: E000022: Destination HEAD (15904) is not the last merged revision (1590
3); have you committed to the destination without using svnsync?

解决方法:
1
svn propset --revprop -r0 svn:sync-last-merged-rev 15904 file:///D:/csvn/data/repositories/projectname

参考
window下给svn域做镜像
使用svnsync实现已有版本库的镜像

shell基础语法

基本语法

变量

赋值

变量赋值时,如果值(字符串)中包含空格,则必须使用单引号或者双引号括起来,如果不包含空格,可不使用单引号或双引号。

等号两边一定不能出现空格,切记!

1
2
3
myvar=Hello
myvar="Hello Wolrd"
myvar='Hello World'

使用变量

使用$加变量名使用变量,\$则无法使用变量,在单引号里的也将无法使用变量。

1
2
3
4
5
6
7
myvar="Hello World"

echo $myvar #Hello World
echo "$myvar" #Hello World
echo ${myvar} #Hello World
echo '$myvar' #$myvar
echo \$myvar #$myvar