Linux基本知识

1.cd -,cd,..,.有什么功能
cd 打开用户根目录
cd – 打开上一次工作目录
. 当前目录
.. 上一级目录

2.查看当前所在目录绝对路径
pwd

3.查看当前目录下所有文件,并按修改时间从旧到新排序
ll -alrt a是所有文件,l是详细信息方式,r是逆序,t是最新在前面

4.ln f1 f2与ln -s f1 f2的区别
ln 不带-s参数是硬连接,带-s是软连接,软链接可以跨文件系统,可以连接windows下的文件到linux下
硬连接指向同一个节点,会增加连接数,只要连接数不是0,文件一直存在,也就是说删除硬连接的任意一个文件,只要一个存在这个文件就还存在

5.用一条命令创建文件夹/tmp/abc/x/
mkdir -p /tmp/abc/x/
-p参数保证不存在abc也能创建abc

6.将远程主机192.168.1.24(用户名:www)上的/public/test.zip拷贝到当前目录
scp www@192.1168.1.24:/public/test.zip ./

7.cat,less区别
cat命令显示整个文件,通常和more一起使用;经常被用来合并文件
more是让画面显示满一页就暂停,空格键翻页,q退出
less和more类似不过可以使用上下键来滚动文件

8.统计doc文件一共有多少,查看doc文件前100行内容
find ./ -name doc | wc -l
head -100 doc 前100行
tail -100 doc 后100行

9.实时监控/var/log/system.log中的内容
tail -f /var/log/system.log

10.查找doc文件中aaa和bbb开头的行,并显示行号
egrep “^(aaa|bbb)” doc -n

11.把文件doc1和doc2合并为doc文件
cat doc1 doc2 > doc

12.查找/var/log目录下所有以log结尾的文件
find /var/log -name “*log”

13.doc是个“,”分割的多列文本,找出并输出第二列是www的行内容
egrep “www” doc
这个真不知道什么意思?

14.ls -l输出描述-rwxr-xr-x的含义
从左到右
– 表示是文件,d标识目录
rwx 表示文件归属用户拥有读写执行的权限
r-x 表示文件归属用户组拥有读和执行的权限
r-x 表示其他用户拥有读和执行的权限

15.修改文件doc权限为-r–r–r–
chmod 444 doc

16.修改doc所有者为root用户组为root
chown root:root doc

17.查看系统进程,并找出mysql进程
ps -axu |grep mysql

18.监控cpu和load情况
top
uptime

19.linux获取帮助的途径(至少三个)
man -k 关键字 可以搜索包含关键子的帮助文档
命令 –help 看命令说明
info 命令

20.查看192.168.1.24的3306端口是否通
netstat -a |grep 3306
lsof -i:3306
netstat -tunlp | grep :3306

21.doc文件内容为my doc,解释命令cat<doc>doc和cat<doc>>doc
cat<doc>doc 是清空doc内容
cat<doc>>doc 是将doc内容重定向到doc文件,所以是个循环操作

PHPStorm配置Xdebug

1.安装debug
2.检查phpinfo是否存在xdebug
3.修改/etc/php5/apache2/conf.d/xdebug.ini
内容如下:
[xdebug]
zend_extension=”/usr/lib/php5/20090626/xdebug.so”
xdebug.idekey=”PHPSTORM”
xdebug.remote_host=127.0.0.1
xdebug.remote_enable=on
xdebug.remote_port = 9000
xdebug.remote_handler = “dbgp”
xdebug.auto_trace = 1
xdebug.collect_includes = 1
xdebug.collect_params = 1
xdebug.collect_return = 1
xdebug.default_enable = 1
xdebug.collect_assignments = 1
xdebug.collect_vars = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.show_local_vars = 1
xdebug.show_exception_trace = 0

Continue reading

uksort函数

uksort() 函数将使用用户提供的比较函数对数组中的键名进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

多用于加密算法中

git学习笔记

一直使用svn,今天彻底学了一下git,学习命令平台http://try.github.io/levels/1/challenges/2

然后参考n多网站这里就不一一列举了!

1.git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:’git pull origin master’就是将origin这个版本库的代码更新到本地的master主枝,该功能类似于SVN的update

2.git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步,例如’git add app/model/user.rb’就会增加app/model/user.rb文件到Git的索引中
增加所有txt结尾的文件git add ‘*.txt’

3.git rm:从当前的工作空间中和索引中删除文件,例如’git rm app/model/user.rb’

4.git commit:提交当前工作空间的修改内容,类似于SVN的commit命令,例如’git commit -m “story #3, add user model”‘,提交的时候必须用-m来输入一条提交信息

5.git push:将本地commit的代码更新到远程版本库中,例如’git push origin’就会将本地的代码更新到名为orgin的远程版本库中

6.  git log:查看历史日志

7.git revert:还原一个版本的修改,必须提供一个具体的Git版本号,例如’git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20’,Git的版本号都是生成的一个哈希值

8.git branch:对分支的增、删、查等操作,例如’git branch new_branch’会从当前的工作版本创建一个叫做new_branch的新分支,’git branch -D new_branch’就会强制删除叫做new_branch的分支,’git branch’就会列出本地所有的分支

9.git checkout:Git的checkout有两个作用,其一是在不同的branch之间进行切换,例如 ‘git checkout new_branch’就会切换到new_branch的分支上去;另一个功能是还原代码的作用,例如’git checkout app/model/user.rb’就会将user.rb文件从上一个已提交的版本中更新回来,未提交的内容全部会回滚

10.git rebase:rebase命令执行后,实际上是将分支点从C移到了G,这样分支也就具有了从C到G的功能,其中c和g都是主分支

11.git reset:将当前的工作目录完全回滚到指定的版本号,假设如下图,我们有A-G五次提交的版本,其中C 的版本号是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们执行了’git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20’那么结果就只剩下了A-C三个提交的版本,git reset filename

12.git stash:将当前未提交的工作存入Git工作栈中,时机成熟的时候再应用回来,这里暂时提一下这个命令的用法,后面在技巧篇会重点讲解

13.git config:利用这个命令可以新增、更改Git的各种设置,例如’git config branch.master.remote origin’就将master的远程版本库设置为别名叫做origin版本库

14.git tag:可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了,例如你可以使用 ‘git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20’来标记这个被你还原的版本,那么以后你想查看该版本时,就可以使用 revert_version标签名,而不是哈希值了

15.git status检查当前文件状态

16.git remote add orgin https://github.com/try-git/try_git.git添加远程版本库origin

17.git push -u origin master #push到远程仓库,同时设置跟踪分支,下次push的时候,直接输入git push

18.git pull origin master 从远程master中拉最新的到本地的origin分支

19.gif diff HEAD 版本比较

20.git merge mybranch 将mybranch合并到当前分支

ubuntu安装redis以及phpredis扩展

安装步骤:
1.执行:git clone https://github.com/nicolasff/phpredis.git
2.执行:cd phpredis/
3.执行:phpize
4.执行:./configure
5.执行:sudo make && make install
6.编辑php.ini添加
extension=redis.so
7.重启apache
查看phpinfo
测试:
<?php
/**
* 测试redis扩展
* User: joyous
* Date: 13-12-5
* Time: 下午1:15
*/
$redis = new Redis();
$redis->connect(‘127.0.0.1’, 6379);
$redis->set(‘k’, ‘Hello Joyous’);
var_dump($redis->get(‘k’));

phpstorm使用

1.设置多个项目并存
步骤:File–>Settings–>Directories–>Add Content Root

2.常用快捷键
Ctrl+y删除一行(以前用的是zend studio删除一行是Ctrl+d)
Ctrl+d复制一行(哎!)
Ctrl+/单行注释
Ctrl+Shift+/块注释
Ctrl+[]匹配{}[]
Ctrl+g跳转行
Ctrl+Shift+z重做
Ctrl+z撤销
Ctrl+x剪切行
Ctrl+-或者+折叠代码
Ctrl+o选中并重写父类方法

安装msgpack

1.提示:Fatal error: Call to undefined function msgpack_pack()
解决办法:需要参考http://msgpack.org/这里安装msgpack
执行pecl install msgpack
提示错误:
Failed to download pecl/msgpack within preferred state "stable", latest release is version 0.5.5, stability "beta", use "channel://pecl.php.net/msgpack-0.5.5" to install
install failed
解决步骤:
sudo pecl install  channel://pecl.php.net/msgpack-0.5.5
看到这个提示
You should add "extension=msgpack.so" to php.ini
说明安装正确,在php.ini增加
extension  = "msgpack.so"