Linux学习之ssh

1.通过配置config文件来实现客户端快捷登录,不用每次输入用户名和ip地址

配置文件位置为:~/.ssh/config
文件里面配置(如果没有通过touch config来创建该文件)然后做如下配置

host “jason1”

        hostName 192.168.197.129

        User root

        Port 22

host “jason2”

        hostName 192.168.197.129

        User root

        Port 22

配置之后可以使用:ssh  jason1 这样来通过ssh进行连接;这时候只需要输入密码即可不用每次都输入root:@192.168.197.129

2.SSH免密码登录:ssh key

将私钥存放在~/.ssh目录下(需要通过ssh-add ~/.ssh/私钥文件名)把私钥加载到ssh私钥库中

公钥可以对外公开,放在~/.ssh/authorized_keys

Linux生成sshkey

ssh-keygen –t rsa

ssh –keygen –t dsa(加密算法不同)

生成后公钥放在authorized_keys  key的列表里面

然后通过ssh-add ~/.ssh/private_rsa(私钥文件名) 命令把私钥加载到ssh私钥库中去,然后客户端就可以直接通过公钥进行连接,不用输入密码特别快捷而且安全

3.修改ssh端口号更加安全

vim /etc/ssh/sshd_config

修改

Port 22

Port 10086

配置多个可以监听多个端口

重启service sshd restart

easyui form回车绑定tab实现

//功能:将回车键转tab键

    $('input:text:first').next('span').find('input').focus();
    var $inp = jQuery('input:text');
    $inp.bind('keydown', function (e) {
        debugger;
        var key = e.which;
        if (key == 13) {
            e.preventDefault();
            var nxtIdx = $inp.index(this) + 1;
            $(":input:text:eq(" + nxtIdx + ")").next('span').find('input').focus();
        }
    });

idea的Terminal npm不能使用

打开cmd窗口(window的窗口不是idea的),然后在标题处右击选择属性,然后勾上使用旧版控制台,确定,重启电脑,解决

Idea maven技巧总结

首先idea中maven生命周期的的操作在Lifecycle中进行,在plugins中有同样类似的操作,很容易让人误解,至今我也分不清两边的区别。相关知识还有待后人进行补充。

将自己的项目安装到本地仓库使用的是install命令,发布到远程用的是deploy这里和eclipse以及maven命令以一样的使用,只是idea中方便了操作。

另外发布到远程仓库用需要在pom中进行指定

<distributionManagement>
<snapshotRepository>
<id>jason-snapshots</id>
<name>jason-snapshots</name>
<url>http://www.qqxh.net/nexus/content/repositories/jason-snapshots/</url >
</snapshotRepository>
</distributionManagement>

jquery 树形下拉框插件

jquery 树形下拉框插件
MultipleTreeSelect.js是基于jquery和ztree开发的树形下拉选择框插件,支持ie8+,谷歌,火狐,360等浏览器

MultipleTreeSelect.js有如下主要特点
体积小巧,大小只有4k
兼容到ie8以及各大主流浏览器
低侵入式使用
使用简单方便
继承了ztree高效渲染
MultipleTreeSelect 欢迎使用本插件: MultipleTreeSelect

示例图片:
demo

快速上手示例:
1. 引入jquery,ztree,MultipleTreeSelect等js和css文件

<meta charset=”UTF-8″>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<html>
<head>
<title>$Title$</title>
<link type=”text/css” rel=”stylesheet” href=”css/demo.css”>
<link type=”text/css” rel=”stylesheet” href=”css/metroStyle/metroStyle.css”>
<script src=”js/jquery-1.11.2.min.js”></script>
<script type=”text/javascript” src=”js/jquery.ztree.all.js”></script>
<script type=”text/javascript” src=”MultipleTreeSelect.js”></script>

<script>

 

</script>
<script type=”text/javascript”>

/*节点列表(这里演示的是非异步方式的实现)*/
var zNodes = [
{id: 1, pId: 0, name: “火之国”, open: true},
{id: 11, pId: 1, name: “木叶忍者”, open: true },
{id: 111, pId: 11, name: “鸣人” },
{id: 112, pId: 11, name: “佐助”},
{id: 12, pId: 1, name: “木叶暗部” },
{id: 121, pId: 12, name: “鼬”},
{id: 122, pId: 12, name: “卡卡西”},
{id: 2, pId: 0, name: “沙之国”, open: true},
{id: 21, pId: 2, name: “千代婆婆”},
{id: 26, pId: 2, name: “我爱罗”} ,
{id: 22, pId: 2, name: “沙之国忍者”, open: true},
{id: 221, pId: 22, name: “手鞠”},
{id: 222, pId: 22, name: “勘九郎”},
{id: 3, pId: 0, name: “水之国”},
{id: 4, pId: 0, name: “土之国”}
];
/*配置项*/
var defaults = {
textLabel: “jasontext”,
zNodes: zNodes
}
/*注册下拉树方法也很简单*/
$(document).ready(function () {
$(“textarea”).drawMultipleTree(defaults);
});
//–>
</script>
</head>

<body style= “width: 1080px ;margin: 0 auto” >
<br>
<!–在此元素上进行渲染下拉树–>
<textarea style=”width: 300px” checks=”1,11,2,23″ type=”text” readonly></textarea>

</body>
</html>
2.异步加载配置实例

var defaultsw = {
textLabel: “qtrxbText”,
async: {
enable: true,
url: “http://qqxh.net”
}
}
3.配置文件详解

var settingAsync = {
textLabel: “选中的文本在表单项中的name”,
async: {
enable: true,
url: “异步加载url地址”
},
chkStyle: “radio”,/*radio:单选模式,checkbox:多选模式,默认为多选*/
radioType : “all”,/*all:整个树只能有一个选中,level:在每一级节点范围内当做一个分组*/
height:433,/*容器高度*/
callback:{
onCheck: function() {}/*选中事件的回调*/
}
}
4.api列表

获取选中文本
$(“#yourContentId”).drawMultipleTree(“getChecks”,”val”);
获取选中code
$(“#yourContentId”).drawMultipleTree(getChecks,”text”);
设置默认选中值

通过给元素设置checks属性来进行设置,格式为:checks=”1,2,3,4,5″
MultipleTreeSelect 开发者网站:http://www.qqxh.net

小型应用使用vue假如不用单文件组件的实现方式

通过将js和css进行分离引入的模式来进行开发。主页面中通过常规js和css引入。这种只适应简单架构的情景,如果应用比较大型。不推荐使用这种方式进行组织代码。只是针对对webpack等前端构建不熟悉的人才使用这种模式进行开发

Failed to resolve directive: link

Failed to resolve directive: link的原因是vue route 2.0取消了v-link写法。最新的写法是

<router-link to="/goods">商品</router-link>

idea远程debugger Tomcat

首先在远程tommcat的(tomcat版本为7.0以后版本)
catalina.bat开头加上:
set CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8888,server=y,suspend=n
启动startup.bat时,出现:
Listening for transport dt_socket at address: 8888
监听正常
在idea中找到remote debugger配置debugger监听端口为8888运行debugger,然后在访问服务器上面的地址就可以在本机的tomcat进行debugger了。注意访问地址不是8888而是tomcat本身的发布应用端口,也就是默认的8080等等

ie浏览器提交两次的导致的问题

问题:网站在谷歌火狐等浏览器可正常登陆,但是在ie浏览器登陆总是会失败

问题跟踪:通过后台捕捉浏览器请求,发现ie和其他浏览器相比登陆请求发送了两次。于是猜测是ie表单提交两次导致的问题。

问题原因:ie部分浏览器通过js提交form的时候写法必须严格。

问题解决:1.在form元素中给提交按钮input元素加上type=”submit”。2.js提交方法结尾出加上return false;

git常用命令总结

使安装完成之后。
命令1:标示本机全局用户名和邮箱。在某个目录下创建git仓库
$ git config –global user.name “Your Name” $ git config –global user.email “email@example.com”
git init
命令2:把本地改动添加到git暂存库
git add “filename”
命令3:把暂存区的改动提交到当前分支
git commit -m “提交内容的描述”
扩展如何不写描述
命令4:查看当前仓库状态
git status
命令5:查看当前文件改动比较对象是最后一次add或者commit
git diff
命令6:查看提交历史后面参数是简化版
$ git log –pretty=oneline
按q退出
命令7:版本回退,参数^个数代表回退到之前多少版本,COMMITID为提交版本id
$ git reset –hard HEAD^
$ git reset –hard COMMITID
命令8:命令操作历史
git reflog
命令9:撤销本地修改。会撤销到想一次add或者上一次commit。注意–前后都有空格
git checkout — readme.txt
命令10:撤销缓存区内容。将该文件缓存区内容清空
git reset HEAD file
命令11:删除文件
$ git rm test.txt $ git commit -m “删除文件”
扩展如果远程仓库被删除了如何恢复,需要注意什么
命令12:创建ssh key
$ ssh-keygen -t rsa -C “youremail@example.com”
命令13:关联远程仓库origin是远程仓库名字。可以自定义多个远程库
git remote add origin git@server-name:path/repo-name.git
命令14:将主分支推送到远程仓库 -u意思是推送的同时将主分支和远程仓库的主分支进行关联。其中origin是远程仓库的名字
$ git push -u origin master
$ git push origin master master为指定的本地分支
命令15:从远程库下载
$ git clone git@github.com:michaelliao/gitskills.git
命令16:创建分支-b表示创建并且切换
$ git checkout -b dev=$ git branch dev $ git checkout dev
命令17:查看所有分支
$ git branch
命令18:合并某分支到当前分支
$ git merge otherbranch
命令19:删除分支
$ git branch -d branchname
命令20:查看分支图
$ git log –graph –pretty=oneline –abbrev-commit
冲突解决流程。git merge之后手动处理文件然后再次add commit即可
命令21:禁用快速合并模式–no-ff
$ git merge –no-ff -m “merge with no-ff” dev
命令22 :暂存工作空间的改动和恢复
$ git stash暂存
$ git stash pop 恢复并删除当前缓存
$ git stash apply 恢复某个默认第一个
$ git stash dorp删除
$ git stash list 缓存列表
命令23:强制删除某个废弃分支
$ git bransh -D branchname
命令24:查看远程库信息
$ git remote简略信息
$ git remote -v详细信息
命令25:给commit打标记
$ git tag tagname给当前最新的commit打标记
$ git tag查看所有标记
$ git tag tagname commitid给某个commit打标记
$ git log –pretty=oneline –abbrev-commit查看历史commit版本
$ git show tagname 查看当前标记详情
git tag -a <tagname> -m “blablabla…”对标记进行描述方式创建
命令26:标签删除和标签推送
$ git tag -s tagname
$ git push origin tagname推送某个
$ git push origin –tags推送所有
远程删除
先删除本地git tag -d tagname
git push origin :refs/tags/tagname
命令27:使git窗口显示颜色
$ git config –global color.ui true
命令28:配置命令别名st为别名也就是说alias是别名前缀
$ git config –global alias.st status
拓展知识设置忽略
通过编写.gitignore文件进行配置
好看的log输出log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit
# 删除 untracked files
git clean -f

# 连 untracked 的目录也一起删掉
git clean -fd

# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd

# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf

用远程覆盖本地
git fetch --all
git reset --hard origin/master