最近动态

Linux

Linux上vi(vim)编辑器使用教程 - 转载

vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。下面vps侦探整理一下vi的使用教程:包含vi的基本介绍、使用模式、文件的打开关闭保存、插入文本或新建行、移动光标、删除、恢复字符或行、搜索等等,算是一篇比较适合新手学习vi的教程。

vi有3个模式:插入模式、命令模式、低行模式。

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

一、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename       //打开filename文件
:w       //保存文件
:w vpser.net //保存至vpser.net文件
:q          //退出编辑器,如果文件已修改请使用下面的命令
:q!        //退出编辑器,且不保存
:wq         //退出编辑器,且保存文件

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)


a      //在当前光标位置的右边添加文本
i       //在当前光标位置的左边添加文本
A     //在当前行的末尾位置添加文本
I      //在当前行的开始处添加文本(非空字符的行首)
O     //在当前行的上面新建一行
o     //在当前行的下面新建一行
R    //替换(覆盖)当前光标位置及后面的若干文本
J    //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)

1、使用上下左右方向键

2、命令模式下:h 向左、j 向下 、k 向上、l 向右。
空格键 向右、Backspace 向左、Enter 移动到下一行首、- 移动到上一行首。
四、删除、恢复字符或行(vi命令模式下使用)


x         //删除当前字符
nx         //删除从光标开始的n个字符
dd      //删除当前行
ndd   //向下删除当前行在内的n行
u       //撤销上一步操作
U      //撤销对当前行的所有操作

五、搜索(vi命令模式下使用)


/vpser     //向光标下搜索vpser字符串
?vpser     //向光标上搜索vpser字符串
n           //向下搜索前一个搜素动作
N         //向上搜索前一个搜索动作

六、跳至指定行(vi命令模式下使用)


n+        //向下跳n行
n-         //向上跳n行
nG        //跳到行号为n的行
G           //跳至文件的底部

七、设置行号(vi命令模式下使用)


:set  nu     //显示行号
:set nonu    //取消显示行号

八、复制、粘贴(vi命令模式下使用)


yy    //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw    //复制从光标开始到词尾的字符。
nyw   //复制从光标开始的n个单词。
y^      //复制从光标到行首的内容。  VPS侦探
y$      //复制从光标到行尾的内容。
p        //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P        //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

九、替换(vi命令模式下使用)


:s/old/new      //用new替换行中首次出现的old
:s/old/new/g         //用new替换行中所有的old
:n,m s/old/new/g     //用new替换从n到m行里所有的old
:%s/old/new/g      //用new替换当前文件里所有的old

十、编辑其他文件

:e otherfilename    //编辑文件名为otherfilename的文件。

十一、修改文件格式

:set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

总结:vi(vim)教程虽然有比较多的命令,但是只要勤加练习,相信你会很快的熟练掌握,同时也会给你的工作或学习带来更高的效率。当如果不知道自己处在什么模式时可以按2次Esc键即可回到命令模式,会有最后提醒一点:注意大小写!!!
文章来源:Linux上vi(vim)编辑器使用教程 - VPS侦探.

阅读剩下更多

默认配图
学习笔记

MySQL新建用户,授权,删除用户,修改密码 - 转载

首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。

注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
用户:phplamp 用户数据库:phplampDB

1.新建用户。

//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
//刷新系统权限表
mysql>flush privileges;

这样就创建了一个名为:phplamp 密码为:1234 的用户。

然后登录一下。

mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功 2.为用户授权。

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作

/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;
*/

3.删除用户。

@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;
4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
mysql>flush privileges; 

转自:MySQL新建用户,授权,删除用户,修改密码 - analyzer - 博客园.

阅读剩下更多

默认配图
Linux

linux下允许外网对mysql的访问

从阿里云镜像市场安装的ubuntu(Apache+Mysql+VsFtp)里面Mysql默认是外网无法访问的,而在实际开发过程中需要对数据库的可视化比对操作,这样我们可以通过本地计算机来事实查改服务器的数据库。


1、修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看
"select host,user from user ;"
\mysql -u root -p
\mysql>use mysql; 
\mysql>update user set host = '%' where user ='root'; 
\mysql>select host, user from user; 
\mysql>flush privileges;  (使修改生效,必须执行)

2、授权用户,你想root使用密码从任何主机连接到mysql服务器
\mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin1234' WITH GRANT OPTION;
\mysql>flush privileges;  (使修改生效,必须执行)

阅读剩下更多

默认配图
PHP

上传Excel表格写入数据表(上传订单功能)

代码包:ExcelToMysql
此项功能的实现依赖PHPExcelReader,下载压缩包可得。
下面贴出PHP主要实现代码:

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
<form id="form1" name="form1" method="post" action="">
<label>
<input name="file" type="file" id="file13"/>
<input type="submit" name="Submit" value="提交" />
</label>
</form>
<p>
<?php
require_once 'reader.php';
$Reader = new Spreadsheet_Excel_Reader();
$Reader->setOutputEncoding('gbk');
$conn= mysql_connect('localhost','root','root') or die("Can not connect to database.");
mysql_query("set names 'gbk'");//设置编码输出
mysql_select_db('my_db'); //选择数据库
if($_POST['Submit'])
{
$Reader->read($_POST['file']);

for ($i = 2; $i <= $Reader->sheets[0]['numRows']; $i++) {
//将EXCEL里面从第二行开始写入数据表'my_table'中
$sql = "INSERT INTO my_table VALUES (null,'".$Reader->sheets[0]['cells'][$i][1]."','".$Reader->sheets[0]['cells'][$i][2]."','".$Reader->sheets[0]['cells'][$i][3]."','".$Reader->sheets[0]['cells'][$i][4]."','".$Reader->sheets[0]['cells'][$i][5]."','".$Reader->sheets[0]['cells'][$i][6]."','".$Reader->sheets[0]['cells'][$i][7]."','".$Reader->sheets[0]['cells'][$i][8]."','".$Reader->sheets[0]['cells'][$i][9]."')";

$query=mysql_query($sql);
if($query)
{
echo "<script type=\"text/javascript\"><!--
alert('数据已经提交成功');window.top.location='a.php'
// --></script>";
}else{
echo "<script type=\"text/javascript\"><!--
alert('数据已经提交失败');window.top.location='a.php'
// --></script>";
}
}
}
?>

阅读剩下更多

默认配图
学习笔记

百度新闻代码(去LOGO方法)- JS实现

获取代码请到:http://news.baidu.com/newscode.html 按自己的需要获取

1
2
3
4
5
6
7
8
9
10
11
//展现新闻的DIV框架
<div id="news">
<!-- @百度新闻代码 start! -->
<style type=text/css>
div{font-size:12px;font-family:arial}.baidu{font-size:12px;line-height:20px;font-family:arial}
a,a:link{color:#00bbbb;} .baidu span{color:#6f6f6f;font-size:12px} a.more{color:#008000;}a.blk{color:#000;font-weight:bold;}
</style>
<script language="JavaScript" type="text/JavaScript" src="http://news.baidu.com/n?cmd=1&class=socianews&pn=1&tn=newsbrofcu">
</script>
<!-- @百度新闻代码 end! -->
</div>

QQ20140926-10

这样不做修改的代码展现出来是带有百度新闻LOGO的,有时候我们不想这个LOGO出来,所以这里来教你们怎么去掉这个LOGO!
在页面中加入JS函数:

1
2
3
4
5
6
7
8
<script type="text/javascript">
//函数定义(DIV框架ID,第i个子DIV框架)
function removebdlogo(obj, i) {
a = document.getElementById(obj).getElementsByTagName("div"); //获取LOGO的DIV节点
a[i].style.display = "none"; //将其设置为隐藏
return false;
}
</script>

然后我们在id=”news”的DIV框架外面执行这个函数:

1
2
<!-- id='news'框架下面的第0个DIV框架 -->
<script type="text/javascript" >removebdlogo("news",0);</script>

这样我们展现出来的效果就好多了!
QQ20140926-11

当然,我们也可以通过修改STYLE来改变一些元素属性,比如字体大小、颜色等等

阅读剩下更多

默认配图
学习笔记

做侧边菜单之弹出二级菜单-position定位不影响其他DIV

二级展现菜单
常常使用position用于层的绝对定位,比如我们让一个层位于一个层内具体什么位置,为即可使用position:absolute和position:relative实现。

position:absolute;position:relative绝对定位使用通常是父级定义position:relative定位,子级定义position:absolute绝对定位属性,并且子级使用left或right和top或bottom进行绝对定位。

例子:
首先是JS实现二级菜单的展现

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
<script language="javascript">
function tab(tag, className, isDisplay) {
var list = document.getElementsByTagName(tag);
for (var i = 0,
len = list.length; i < len; i++) {
if (list[i].className == className) {
if (isDisplay == 1) {
list[i].style.display = "block"
} else {
list[i].style.display = "none"
}
}
}
}
</script>
</pre>
页面代码:
<pre lang="html" line="1" escaped="true">
<div style="float:left; position:relative">

##学校
<span class="bianh">
<a herf="#">[切换]</a></span>
<div style="position:absolute; left:40px;" onmousemove="tab('div','selectschool',1)" onclick="tab('div','selectschool',2)">
<a herf="#">中南民族大学</a>
<a herf="#">XXXX大学</a>
</div>
</div>

阅读剩下更多

默认配图
MacOS

删除Mac中所有 .DS_Store 隐藏文件&不再产生.DS_Store文件

120031avxwmscar1wg6w1zMac OS X系统下,几乎绝大部分文件夹中都包含 .DS_Store 隐藏文件,这里保存着针对这个目录的特殊信息和设置配置,例如查看方式,图标大小以及这个目录的一些附属元数据。

在Mac下这些 .DS_Store 文件默认是隐藏的,看不见。不过当将文件转移共享到Windows的时候,那么就是可见的了,并且感觉像是一些垃圾文件一样的存在。

操作方法摘自Macx.cnonmac.net


1.删除系统中所有的.DS_Store文件:

(a)、Spotlight搜索“终端”,打开[终端]程序
(b)、输入如下代码并回车:
sudo find / -name “.DS_Store” -depth -exec rm {} \;
等待个1分钟左右,删除就完成了!


2.不让系统生成.DS_Store文件:

(a)、打开[终端]程序
(b)、输入以下代码并回车:(提示需要输入密码就输入 电脑密码)
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
(c)、sudo cp Library/Preferences/com.apple.desktopservices.plist /Library/Preferences/
(d)、sudo chmod 777 /Library/Preferences/com.apple.desktopservices.plist
(e)、重新启动计算机。

参考资料:
http://forum.onmac.net/archive/index.php/t-334.html
http://www.macx.cn/thread-2053938-1-1.html

阅读剩下更多

默认配图
学习笔记

JS遍历Table的所有单元格内容 (转载)

1
2
3
4
5
6
7
8
9
10
11
12
function GetInfoFromTable(tableid) {
var tableInfo = "";
var tableObj = document.getElementById(tableid);
for (var i = 0; i &lt; tableObj.rows.length; i++) {    //遍历Table的所有Row
for (var j = 0; j &lt; tableObj.rows[i].cells.length; j++) {   //遍历Row中的每一列
tableInfo += tableObj.rows[i].cells[j].innerText;   //获取Table中单元格的内容
tableInfo += "   ";
}
tableInfo += "\n";
}
return tableInfo;
}

阅读剩下更多

默认配图
学习笔记

js 获得多个同name 的input输入框的值 (转载)

js 获得多个同name 的input输入框的值

起初是使用document.all.id.length获得输入框的个数,但时而正常,时而显示undefined,效果不是很好,网上信息说document.all不是兼容所有浏览器的,现在似乎是只支持IE。

解决方法是如下:

1
2
3
var els =document.getElementsByName("search");
for (var i = 0, j = els.length; i &lt; j; i++){
alert(els[i].value);

阅读剩下更多

默认配图
学习笔记

mac系统如何显示和隐藏文件(转载)

苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令。显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写):

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

或者

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO

输完单击Enter键,退出终端,重新启动Finder就可以了

重启Finder:鼠标单击窗口左上角的苹果标志–>强制退出–>Finder–>重新启动

阅读剩下更多

默认配图
返回顶部