嗨,新朋友,很高兴认识你,欢迎来到我的博客。

linux命令手册Txt版[请复制到记事本保存]

1
文件管理
#
ls
ls -a
列出当前目录下的所有文件,包括以.头的隐含文件
文件管理
#
ls
ls -l或ll
列出当前目录下文件的详细信息
[url=http://www.xt-benet.meibu.com/admin_main.aspx][/url]
文件管理
#
pwd
pwd
查看当前所在目录的绝对路经
文件管理
#
cd
cd ..
回当前目录的上一级目录
文件管理
#
cd
cd -
回上一次所在的目录
文件管理
#
cd
cd ~ 或 cd
回当前用户的宿主目录
文件管理
#
cd
cd ~用户名
回指定用户的宿主目录
2
文件管理
#
mkdir
mkdir 目录名
创建一个目录
文件管理
#
mkdir
mkdir ?p
递归式去创建一些嵌套目录
文件管理
#
rmdir
Rmdir 空目录名
删除一个空目录
3
文件管理
#
rm
rm 文件名 文件名
删除一个文件或多个文件
文件管理
#
rm
rm -rf 非空目录名
递归删除一个非空目录下的一切,不让提式-f
4
文件管理
#
cat
cat文件名
一屏查看文件内容
5
文件管理
#
more
more文件名
分页查看文件内容
6
文件管理
#
less
less 文件名
可控分页查看文件内容
7
文件管理
#
grep
grep字符 文件名
根据字符匹配来查看文件部分内容
8
文件管理
#
mv
mv 路经/文件 /经/文件
移动相对路经下的文件到绝对路经下
文件管理
#
mv
mv 文件名 新名称
在当前目录下改名
Array
文件管理
#
cp
cp /路经/文件 ./
移动绝对路经下的文件到当前目录下
10
文件管理
#
find
find 路经 -name "字符串"
查找路经所在范围内满足字符串匹配的文件和目录
11
文件管理
#
ln
ln 源文件 链接名
创建当前目录源文件的硬链接
ln /home/test /usr/test1
在/usr下建立/home/test的硬链接
12
文件管理
#
ln
Ln -s a b
创建当前目录下a的符号链接b
13
文件管理
#
touch
touch file1 file2
创建两个空文件
14
磁盘管理
#
df
df
用于报告文件系统的总容量,使用量,剩余容量。
15
磁盘管理
#
du
du -b /home
查看目前/HOME目录的容量(k)及子目录的容量(k)。
16
磁盘管理
#
fdisk
fdisk -l
查看系统分区信息
17
磁盘管理
#
fdisk
fdisk /dev/sdb
为一块新的SCSI硬盘进行分区
18
磁盘管理
#
mkfs.ext3
Mkfs.ext3 /dev/sdb1
为第一块SCSI硬盘的第一主分区格式化成
ext3的文件系统
mkfs.ext2
Mkfs.ext2/dev/sdb2
格式化成ext2文件系统
1Array
磁盘管理
#
mount
mount -t 文件系统类型 设备路经 访问路经
磁盘管理
#
文件系统类型
IsoArray660
光驱文件系统
vfat
Fat文件系统(windows)
挂载光驱
#
mount ?t isoArray660 /dev/cdrom /mnt/cdrom
挂载FAT
#
mount ?t vfat /dev/hda5 /mnt/cdrom
挂第一个ide的第五个逻辑分区
17
磁盘管理
#
Umount /mnt/cdrom
卸载/mnt/cdrom为空
18
文件权限
#
chmod
chmod u+s file
为file的属主加上特殊权限
chmod g+r file
为file的属组加上读权限
chmod o+w file
为file的其它用户加上写权限
chmod a-x file
为file的所有用户减去执行权限
chmod 765 file 为file的属主设为完全权限,属组设成读写权,其它用户具有读和执心权限
1Array
文件权限
#
chown
chown root /home
把/home的属主改成root用户
20
文件权限
#
chgrp
chgrp root /home
把/home的属组改成root组
www Says:
八月 1st, 2006 at 10:04 am
:) ~
21
打印管理
#
redhat-config-printer-tui
进入安装打印机界面
22
打印管理
#
lp
lp ?d hptr file
打印file到hptr的打印机上
23
打印管理
#
lpq
Lpq ?P 打印机名
查看打印机的状态
24
打印管理
#
lprm
Lprm ?P 打印机名 a
删除打印机内的打印作业
25
打印管理
#
disable
Disable ?r "changing paper" HPtr
禁用打印机并提示原因
26
打印管理
#
enable
Enable HPtr
重新启用被禁用的
27
用户管理
#
useradd
Useradd
创建一个新的用户
28
用户管理
#
groupadd
Groupadd 组名
创建一个新的组
2Array
用户管理
#
passwd
Passwd 用户名
为用户创建密码
30
用户管理
#
Passwd -d
Passwd -d用户名
删除用户密码也能登陆
31
用户管理
#
Passwd -l
Passwd -l用户名
锁定账号密码
32
用户管理
#
Passwd -u
Passwd -u用户名
解锁账号密码
33
用户管理
#
Passwd -S
Passwd -S用户名
查询账号密码
34
用户管理
#
Usermod -l
Usermod -l 新用户名 老用户名
为用户改名
35
用户管理
#
Usermod -L
Usermod -L 要锁定用户名
锁定用户登陆
36
用户管理
#
Usermod -U
Usermod ?U解锁用户名
解锁用户登陆
37
用户管理
#
Usermod -u
Usermod ?u 501用户名
改变用户UID
38
用户管理
#
Userdel
Userdel?r 用户名
删除用户一切
3Array
用户管理
#
Groupmod -n
Groupmod ?n新用户名 老用户名
为组改名
40
用户管理
#
Groupmod -g
Groupmod ?g 501 组名
改变组GID
41
用户管理
#
groupdel
Groupdel组名 先应删它的用户
删除组
42
用户管理
#
gpasswd -a
gpasswd -a 用户名 组名
增加用户到组
43
用户管理
#
Id
id 用户名
查用户信息
44
软件管理
#
rpm -qa
rpm ?qa | less
查询已安装RPM
45
软件管理
#
rpm ?qa | grep ftp
查询指定RPM
46
软件管理
#
rpm -q
rpm -q 已安装的RPM包
查是否安装
47
软件管理
#
rpm -q telnet-server
查看telnet服务器包
48
软件管理
#
rpm -qi
rpm ?qi 软件包名称
查看软件的描述信息
4Array
软件管理
#
rpm -ql
rpm ?ql软件包名称
查询软件包的文件列表
50
软件管理
#
rpm -qf
rpm ?qf软件包名称
查询某个文件所属的软件包
51
软件管理
#
rpm -qp
rpm ?qp软件包全名
查询未安装的软件包信息
52
软件管理
#
rpm -e
rpm ?e 软件包名称
删除具体的软件包
53
软件管理
#
rpm -U
rpm ?Uvh软件包全名
升级软件包并显示过程
54
软件管理
#
rpm -ivh
rpm ?ivh 软件包全名
安装软件包并显示过程
55
软件管理
#
rpm -V
rpm ?V软件包名称
验证软件包的大小,类型等
56
软件管理
#
tar
-c 创建包 ?x 释放包 -v 显示命令过程 ?z 代表压缩包
57
软件管理
#
tar -cf
tar ?cvf benet.tar /home/benet
把/home/benet目录打包
58
软件管理
#
tar -czf
tar ?zcvf benet.tar.gz /mnt
把目录打包并压缩
5Array
软件管理
#
tar ?tf
tar ?tf benet.tar
看非压缩包的文件列表
60
软件管理
#
tar ?tzf
tar ?tf benet.tar.gz
看压缩包的文件列表
61
软件管理
#
tar ?xf
tar ?xf benet.tar
非压缩包的文件恢复
62
软件管理
#
tar ?zxvf
tar ?zxvf benet.tar.gz
压缩包的文件解压恢复
63
软件管理
#
tar -jxvf
tar ?jxvf benet.tar.bz2
64
软件管理
#
diff
diff file1 file2 > 补丁名.patch
为新旧文件生成补丁文件
65
软件管理
#
diff
diff file1 file2
比较两个文件的区别
66
软件管理
#
Patch
Patch file补丁名.patch
打补丁
67
软件管理
#
./configure ?prefix=/usr/local/
编译前配置
68
软件管理
#
make
编译
6Array
软件管理
#
make install
安装编译好的源码包

www Says:
八月 1st, 2006 at 10:10 am
:) ~~
70
启动管理
#
reboot
Init 6
重启LINUX系统
71
启动管理
#
Halt
Init 0
Shutdown ?h now
关闭LINUX系统
72
启动管理
#
runlevel
显示系统运行级
73
启动管理
#
Init [0123456]
改变系统运行级,7种
74
启动管理
#
Chkconfig ?-list [服务名称]
查看服务的状态
75
启动管理
#
Chkconfig ?-level on|off|set
设置服务的启动状态
76
启动管理
#
Chkconfig on|off|set
设置非独立服务启状态
77
进程管理
#
Top动态
Ps-aux静态
进程树pstree
查看系统进程
78
进程管理
#
程序名 &
后台运行程序
7Array
进程管理
#
fg
把后台运行的进程调回前台
80
进程管理
#
bg
把前台运行进程调到后台
81
进程管理
#
renice
Renice +1 180
把180号进程的优先级加1
82
进程管理
#
kill
Kill PID
终止某个PID进程
83
进程管理
#
at
at 5pm + 3 days
/bin/ls
指定三天后下午5:00执行/bin/ls
84
进程管理
#
crontab
Crontab -e
用VI的形式来编辑自动周期性任务
85
进程管理
#
crontab
Crontab -l
查看自动周期性任务
86
进程管理
#
crontab
Crontab -r
删除自动周期性任务
87
进程管理
#
crond
Service crond
马上启动自动周期性服务
Service crond
www Says:
八月 1st, 2006 at 10:13 am
:D 实现磁盘配额
(注安装LINUX时建立/home分区)
目标:对用户user在/home目录上实现soft limit为5k,hard limit 为10k的磁盘配额
实现步骤:
1. 修改包含/home的行, #vi /etc/fstab, 改为:defaults,usrquota。也就是增加usrquota项。然后保存退出。
2、卸载/home目录 #umount /home
3. 挂接/home目录 #mount /home
4、增加用户zhao #useradd zhao
5、修改密码 #passwd zhao
6、生成关于/home目录的quota信息 # quotacheck -cmug /home
#quotacheck -vu /home
7、查看所有用户的信息 #repquota -au
8、设置配额 #edquota -u zhao
将soft 和hard 分别改为5和10
Array、保存并退出 #wq!
10、修改时间 #edquota -t
11、 #wq!
12.开启/home上的磁盘配额功能 #quotaon /home
13.查询配额 #quota -u zhao
14.验证配额 #su – zhao

UNIX下的编辑器VI命令总结

文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

opencart开发架构分析[转]

1. opencart的系统架构

1.1. 架构分析

opencart是有自己的开发架构的,其架构的核心都在systemengine 下,访问控制统一用 根目录下的 index.php 来协调。
Route 就是起到一个中转器的作用,它会根据你的Route目录去找到它要执行的方法,比如:

index.php?route=account/login

根据这个route,op的框架会找到Controller下的Account里的Login.php, 注意login.php的类名一定是这种格式的

ControllerAccoutLogin{…}

否则Op就识别不了目录,route=account/login 会执行类的默认方法:index
如果要指明执行那个方法,则在login后面再加上

route=account/login/你定义的方法名

并且在login.php 里定义你要执行的方法。
同理,Op里 load 语言包和model等都是以这种机制为基础的。请结合程序,应该是比较好理解的。
至于View层,Op都是把要显示的数据加载到 this->data里去的,这样就可以用 $变量名 在页面上显示变量了。

1.2. Op系统配置文件 (这段是引用别人的。。。找不到出处了 – - 作者看到请联系我)

在Op的目录下,可以发现一个 Config.php文件,这里是配置一些OP要使用到的配置路径,并且是每个单独项目里都有一个单独的配置(这点要注意),比如admin和catalog下就分别有这个文件。
OpenCart是使用面向对象编程的,同时又使用了MVC的设计思想,因此在解读其源代码时是看不到过程式的代码的。同时它把MVC框架部分单独放在library目录中,这个部分的内容一般是不作修改的。就象你显式地使用其它框架编程一样。
Engine下有一个装配器文件:loader.php,这个文件中只有一个类:loader,实际上是一个调度程序,框架中的其它组件,如controller,module,session,cache,language统统由它装载调度。
为了让系统运行起来, 象所有的PHP程序一样,OpenCart需要把系统中的一些重要的参数从config.php中,对于这个文件,按惯例,使用一句:

require(‘config.php’);

连接数据库的DSN参数和相关目录设置就可用了,下面有必要将config.php文件列表在下,这有利于我们理解OpenCart的设计思想:

// HTTP
define(‘HTTP_SERVER’, ‘http://localhost/cnopencart/’);
define(‘HTTP_IMAGE’, ‘http://localhost/cnopencart/image/’);
// HTTPS
define(‘HTTPS_SERVER’, ”);
define(‘HTTPS_IMAGE’, ”);
// DIR
define(‘DIR_CACHE’, ‘C:wampwwwcnopencart/cache/’);
define(‘DIR_DOWNLOAD’, ‘C:wampwwwcnopencart/download/’);
define(‘DIR_IMAGE’, ‘C:wampwwwcnopencart/image/’);
define(‘DIR_LIBRARY’, ‘C:wampwwwcnopencart/library/’);
define(‘DIR_MODEL’, ‘C:wampwwwcnopencartcatalog/model/’);
define(‘DIR_CONTROLLER’, ‘C:wampwwwcnopencartcatalog/controller/’);
define(‘DIR_LANGUAGE’, ‘C:wampwwwcnopencartcatalog/language/’);
define(‘DIR_EXTENSION’, ‘C:wampwwwcnopencartcatalog/extension/’);
define(‘DIR_TEMPLATE’, ‘C:wampwwwcnopencartcatalog/template/’);
// DB
define(‘DB_HOST’, ‘localhost’);
define(‘DB_USER’, ‘root’);
define(‘DB_PASSWORD’, ’111111′);
define(‘DB_NAME’, ‘opencart’);
?>

与别的系统可能有些不同是的,OpenCart有一个config类用来从别的设置文件或数据库里存取数据,这些数据也是在程序一开始运行就需要的,因此第一个由loader装载的就是config类,装载config类就只简单地用了一句:

// Config
$config =$this->load->….

其它所有的对象这是以这种方法来进行管理。

2. Op的加载器

2.1. 系统加载

在System下有一些公共类,所以的基础类和公共类都是通过index.php 去加载的,这样你就可以去加载你需要的类和文件了。比如:

$loader = new Loader();
Registry::set(‘load’, $loader);

然后你就可以在系统里调用Load方法去加载需要的Model和language 文件了。调用方式如下:

$this->load->….

Op里就是通过这个方法来注册他所需要的资源的。

php 序列化(serialize)与反序列化(unserialize)

把复杂的数据类型压缩到一个字符串中
serialize() 把变量和它们的值编码成文本形式
unserialize() 恢复原先变量
eg:
$stooges = array(‘Moe’,'Larry’,'Curly’);
$new = serialize($stooges);
print_r($new);echo ”
“;
print_r(unserialize($new));
结果:a:3:{i:0;s:3:”Moe”;i:1;s:5:”Larry”;i:2;s:5:”Curly”;}
Array ( [0] => Moe [1] => Larry [2] => Curly )
当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理:
$shopping = array(‘Poppy seed bagel’ => 2,’Plain Bagel’ =>1,’Lox’ =>4);
echo ‘<a href=”next.php?cart=’.urlencode(serialize($shopping)).’”>next</a>’;
margic_quotes_gpc和magic_quotes_runtime配置项的设置会影响传递到unserialize()中的数据。
如果magic_quotes_gpc项是启用的,那么在URL、POST变量以及cookies中传递的数据在反序列化之前必须用stripslashes()进行处理:
$new_cart = unserialize(stripslashes($cart)); //如果magic_quotes_gpc开启
$new_cart = unserialize($cart);
如果magic_quotes_runtime是启用的,那么在向文件中写入序列化的数据之前必须用addslashes()进行处理,而在读取它们之前则必须用stripslashes()进行处理:
$fp = fopen(‘/tmp/cart’,'w’);
fputs($fp,addslashes(serialize($a)));
fclose($fp);
//如果magic_quotes_runtime开启
$new_cat = unserialize(stripslashes(file_get_contents(‘/tmp/cart’)));
//如果magic_quotes_runtime关闭
$new_cat = unserialize(file_get_contents(‘/tmp/cart’));
在启用了magic_quotes_runtime的情况下,从数据库中读取序列化的数据也必须经过stripslashes()的处理,保存到数据库中的序列化数据必须要经过addslashes()的处理,以便能够适当地存储。
mysql_query(“insert into cart(id,data) values(1,’”.addslashes(serialize($cart)).”‘)”);
$rs = mysql_query(‘select data from cart where id=1′);
$ob = mysql_fetch_object($rs);
//如果magic_quotes_runtime开启
$new_cart = unserialize(stripslashes($ob->data));
//如果magic_quotes_runtime关闭
$new_cart = unserialize($ob->data);
当对一个对象进行反序列化操作时,PHP会自动地调用其__wakeUp()方法。这样就使得对象能够重新建立起序列化时未能保留的各种状态。例如:数据库连接等。

CentOS 5.5开通Ftp和Telnet服务配置

在安装好CentOS以后,需要设置Ftp和Telnet服务文件,才能启动Ftp和Telnet服务,可以通过远程控制进行开启。

1.1、进入终端命令模式,用root用户登录;
1.2、开启ftp服务。

cd /etc/xinetd.d
#编辑ftp服务的配置文件gssftp:
vi gssftp
#将 修改两项内容:
server_args = -l –a # 去掉-a 改为server_args = -l
disable=yes #改为disable=no

1.3、开启telnet服务

cd /etc/xinetd.d
#察看telnet服务的配置文件krb5-telnet的设置:$ {! b7 r0 A8 d. z
#开启telnet服务设置
vi krb5-telnet
disable=yes # 改为disable=no,保存退出。

1.4、激活服务:
telnet /ftp 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的telnet /ftp自然也就可以被激活。
激活目录和命令:

cd /etc/rc.d/init.d/
service xinetd restart

有时会提示命令不存在,需要加上命令的路径

[root@localhost init.d]# service xinetd resart
bash: service: command not found
[root@localhost init.d]# /sbin/service xinetd restart

若提示xinetd: 未被识别的服务,则说明/etc/rc.d/init.d下无xinetd包

[root@localhost init.d]# yum -y install xinetd* #下载xinetd包
[root@localhost init.d]# service xinetd resart #重新启动FTP、Telnet服务

这样既可ftp登陆到服务器

PHP高级工程师的面试题【转】

这些题目都能搞定,你就是高高手了~


1. 基本知识点
HTTP协议中几个状态码的含义:503 500 401 200 301 302。。。
Include require include_once require_once 的区别.
PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。
HEREDOC介绍
写出一些php魔幻方法;
一些编译php时的configure 参数
向php传入参数的两种方法。
(mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;
error_reporting 等调试函数使用
您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?
posix和perl标准的正则表达式区别;
Safe_mode 打开后哪些地方受限.
写代码来解决多进程/线程同时读写一个文件的问题。
写一段上传文件的代码。
Mysql 的存储引擎,myisam和innodb的区别。
2. web 架构,安全,项目经验
介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。
使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时,重定向到index.php?id=567 ,请先打开mod_rewrite.
MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
写出一种排序算法(原理),并说出优化它的方法。
请简单阐述您最得意的开发之作
对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题
您是否用过模板引擎? 如果有您用的模板引擎的名字是?
请介绍Session的原理,大型网站中Session方面应注意什么?
测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。
正则提出一个网页中的所有链接.
介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。
您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。
大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?
相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。
一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。
3. unix/linux 基本使用
linux下查看当前系统负载信息的一些方法。
vim的基本快捷键。
ssh 安全增强方法;密码方式和rsa key 方式的配置。
rpm/apt/yum/ports 装包,查询,删除的基本命令。
Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。
gdb,strace,valgrind的基本使用.
4. 前端,HTML,JS
css盒模型。
javascript中的prototype。
javascript中this对象的作用域。
IE和firefox事件冒泡的不同。
什么是怪异模式,标准模式,近标准模式。
DTD的定义
IE/firefox常用hack.
firefox,IE下的前端js/css调试工具。

 

 

OpenCart设置畅销(best sellers)和推荐(Featured)

这个有点死板。
best seller必须有顾客购买货品才会出现,featured则必须编辑物品,在special栏目填写优惠价格,保存,才能出现.

OpenCart主要文件结构介绍

OpenCart是国外著名的开源电子商务网站,由英国人Daniel一人独立开发。

OpenCart的优势在于前台界面的设计非常适合欧美购物者的浏览习惯:简洁,直观,唯美!后台也非常的简洁明了,而且功能强大,对于初学者来说非常容易上手,对于大多数经验丰富的网店经营者来说,OpenCart的后台管理功能也基本能满足其需求。

OpenCart可以说是最适合国内用户建设外贸网店的程序!

OpenCart的主要特点包括:
1. 网站模版化,用户可自由更滑,编辑模版文件
2. 产品评论功能
3. 产品评分功能
4. 可添加下载类产品
5. 图片自动调整大小
6. 添加相关产品功能
7. 优惠券(Coupon Code)功能
8. 搜索引擎优化功能

其程序结构也非常的清晰明了,对开发者非常友好:
OpenCart 1.x 使用 MVC(+L) style framework:
Model – 数据库层
View – 模版展示
Controller – 主要代码层
Language – 本地化

所以对于前台的产品页面,主要有4个相关文件:
M: catalogmodelcatalogproduct.php
V: catalogviewtemplateproductproduct.tpl
C: catalogcontrollerproductproduct.php
L: cataloglanguageenglishproductproduct.php
以此类推, 在管理后台, 如要编辑这些文件, 也主要有下面这4个文件:
M: adminmodelcatalogproduct.php
V: adminviewtemplatecatalogproduct.tpl
C: admincontrollercatalogproduct.php
L: adminlanguageenglishcatalogproduct.php

前台控制程序列表-catalog/controller
Catalog
|controller
|account 会员功能

|—— account.php 会员功能主页
|—— address.php 会员功能-地址管理
|—— create.php 创建账号
|—— download.php 会员功能-商品下载
|—— edit.php 会员功能-编辑个人资料
|—— forgotten.php 取回密码
|—— history.php 会员功能-订单记录列表
|—— invoice.php 折扣券接收处理程序
|—— login.php 登入
|—— logout.php 登出完成页
|—— newsletter.php 会员功能-电子报订阅取消
|—— password.php 会员功能-密码变更
|—— success.php 创建账号成功讯息Catalog
|controller
|checkout 结账功能

|—— address.php 结账功能-地址处理(配送,账单..地址)
|—— cart.php 浏览购物清单(购物车)
|—— confirm.php 结账功能-最后确认
|—— guest_step_1.php 免登入结账第一步
|—— guest_step_2.php 免登入结账第二步
|—— guest_step_3.php 免登入结账第三步
|—— payment.php 结账功能-选择付款方式
|—— shipping.php 结账功能-选择配送方式
|—— success.php 完成结账成功消息Catalog
|controller
|common 主要版面

|—— column_left.php 左栏模块载入
|—— column_right.php 右栏模块载入
|—— footer.php 页脚
|—— header.php 页头
|—— home.php 首页
|—— maintenance.php 维护中显示页
|—— seo_url.php 网址最佳化处理程序之一(缩短网址)Catalog
|controller
|error 404错误

|—— not_found.php 无此页Catalog
|controller
|feed 网站地图和订阅

|—— google_base.php 网站订阅(feed)
|—— google_sitemap.php 网站地图Catalog
|controller
|information 网站资讯

|—— contact.php 发送信件给店家
|—— information.php 商店文章
|—— sitemap.php 网站导览Catalog
|controller
| module 功能模块

|—— bestseller.php 畅销商品
|—— cart.php 购物清单(侧栏)
|—— category.php 目录(侧栏)
|—— featured.php 推荐商品
|—— google_talk.php google即时通(侧栏)
|—— information.php 商店文章(侧栏)
|—— latest.php 最新商品
|—— manufacturer.php 品牌选单
|—— special.php 特价商品Catalog
|controller
| product 商品功能

|—— category.php 同目录商品列表
|—— manufacturer.php 同品牌商品列表
|—— product.php 商品详细内容页
|—— search.php 搜索功能
|—— special.php 特价商品列表

SSH Secure Shell Client 乱码 【centos5.5】

打开文件

/etc/sysconfig/i18n

你会发现里面只有一行文字:

LANG="zh_CN.UTF-8"

修改成

LANG=”zh_CN.GB18030″

保存,完成。重新连接SSH Secure Shell Client。这就搞定了。

Linux爱好者入门教程

那么到底什么是Linux呢?
在很久很久以前,70年代吧,那时候Windows还没有出现,UNIX是应用最广泛的操作系统。但是UNIX同样有着高昂的价格。于是有一个牛人(我记不得他的名字的具体拼写,只好用牛人代替,毕竟,把别人的名字写错比用牛人这个名字更糟糕吧),这个牛人想要建立一个开放的系统,这个系统很庞大,庞大到非常庞大的地步。包含了操作系统(可以不止一个,事实上现在也不止一个,只是我们只讨论Linux罢了),软件,各种文档,各种媒介的资料以及很多其他的东西。所有这些东西大都使用一个协议,就是我们常常说的GPL或则LGPL(这个协议简单的说就是:公开所有源代码,任何人可以免费获得,也可以添加删除和修改,甚至可以拿去卖钱,只要你保证你修改过以后得到的软件和你销售的软件也使用GPL协议就可以)。牛人给这个庞大的开放系统一个响亮的名字(响亮吗):GNU-GUN is Not Unix。