NetBeans 初体验
看到Yii论坛上有好多老外都说NetBeans好,忍不住也下载了尝试一把。
安装,启动,一切顺利,发现果然速度飞快(相对于ZDE for Eclipse),于是一见钟情。
正想从SVN上导入自己的项目,问题来了:NB虽然内置了SVN功能,但需要外部程序的配合,得先安装SVN客户端,于是,下载、安装。
安装之后,按NB的提示,把SVN客户端的安装目录加入PATH环境变量,然后在NB的SVN配置里填上SVN客户端的安装目录,我就晕,怎么加入环境变量了还要再填一次安装目录呢,太傻了。
不管了,先“签出”试试,填上SVN版本库地址后,点击下一步,没反应,按钮全变灰了,我晕,好歹来个提示啊,这让我怎么整。赶紧Google,发现没有任何有用的信息,郁闷,遂检查填写的SVN客户端安装目录,没有问题啊,要不我删了试试,嗯,居然删掉就好了!什么玩意嘛。。
内置的SVN功能比Eclipse相对来说差一些,不过也基本够用。后面的开发工作打算迁移到NB上了,要是用不习惯的话再换回ZDE for Eclipse。
一个可以检测访问网站的手机类型的PHP类
很不错的一个玩意,当然是发布在 Google Code 上: http://code.google.com/p/php-mobile-detect/
使用方法:
包含并初始化这个类:
include("Mobile_Detect.php");
$detect = new Mobile_Detect();
检测特定的平台:
if ($detect->isAndroid()) {
// code to run for the Google Android platform
}
可用的方法有 isAndroid(), isBlackberry(), isOpera(), isPalm(), isWindows(), isGeneric()。另外,如果你只想检查用户使用的是不是一个移动设备,而不关心具体平台的话,可以这样写::
if ($detect->isMobile()) {
// any mobile platform
}
代码分析:
这个类使用了PHP5 的语法,使用了 __call 函数,实现方法的自动调用。具体还是看Google Code 中SVN里的代码吧。
Linux 下使用软盘相关的命令
对一个新的软盘,要先格式化:
$fdformat /dev/fd0
然后创建文件系统,可以是兼容windows 的 msdos 格式,或者Linux下的文件系统格式。
$mkfs.ext2 /dev/fd0 --创建EXT2文件系统
最后,挂载:
mount -t ext2 /dev/fd0 /mnt/floppy
现在就可以使用此软盘了。
用完后,可用如下命令卸载:
umount /dev/fd0
如果卸载时提示“device is busy”,先退出软盘目录,重试
Linux/Unix 常用命令全称
pwd: Print Working Directory - 打印当期工作目录
cd: Change Directory - 改变目录
rmdir: Remove Directory - 删除目录
rm: Remove - 删除(文件)
ls: List -列出目录
cat: Catenate - 连接并查看,不是猫
ln: Link - 创建链接
chsh: Change Shell - 改变Shell
fg: Foreground - 把用Ctrl+Z暂停或使用 & 进入后台执行的程序拉回前台
du: Disk Usage - 查看磁盘使用状况
man: Manual - 查看手册
chmod: Change Mode - 修改文件模式(权限)
chgrp: Change Group - 修改所属群组
ps: Processes - 查看进程
Linux 中的几个文件搜索命令
今天在群里一哥们说他用 ifconfig 提示找不到,我的第一反应是他没有用root用户登录,问了一下,他说是用 root 登录的,看来是环境变量PATH问题,我提示他通过 which 命令找到 ifconfig 所在的目录,然后把这个目录加入环境变量,问题解决。
linux 中常用的几个文件搜索命令如下(转载):
1.find /etc -name my.so
2.locate 是用来通过文件名搜索文件的工具,它的用法也比较简单。locate 的应用,首先要通过updatedb建立索引数据库,然后才能应用;如果您新安装了软件或者存放了新的文件,也要先运行updatedb命令,以生成最新索引库。
用法:locate 文件名
我们要先运行updatedb;
[root@localhost ~]# updatedb
举例: 我们要找vsftpd.conf文件都位于哪个位置;
[root@localhost ~]# locate my.so
3.whereis 是来寻找命令的二进制文件,同时也会找到其帮助文件;
比如我们不知道fdisk工具放在哪里,我们就可以用whereis fdisk 来查找;
[root@localhost ~]# whereis fdisk
fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz
如果我们寻找grub在哪里,应该用如下命令,说明grub位于/sbin目录,他的帮助文件是grub.8.gz ,也就是man grub;
[root@localhost ~]# whereis grub
grub: /sbin/grub /etc/grub.conf /usr/share/grub /usr/share/man/man8/grub.8.gz
4.which 和where 相似,只是我们所设置的环境变量中设置好的路径中寻找;比如;
[root@localhost ~]# which fdisk
/sbin/fdisk
CentOS 中环境变量相关设置及使用
1.CentOS 中环境变量的处理文件是 /etc/profile,是一段程序,如果要把某个目录位置添加到PATH 变量,可以编辑此文件,在适当的位置加一个 pathmunge 就可以了。例如:
pathmunge /usr/local/bin/convert
2. 如需临时性修改环境变量,在重启后复原,则需使用 export 命令,此命令详情如下:
功能说明:设置或显示环境变量。
语 法:export [-fnp][变量名称]=[变量设置值]
补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
参 数:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
CentOS 5.4 下安装 ProFTPD 1.3.3 记录
折腾了一晚上+半上午,Google了几十次,撞墙十几次,总算把 ProFTPD 搞的有点眉目了。整理了一下安装过程,如下:
1. 下载 ProFTPD :
ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.3.3.tar.gz
因为我装的CentOS没有图形界面,就用了 ftp 工具下载的,用到的几个命令有:
# ftp ftp.servus.at -- 连接到FTP站点
# ftp> get ProFTPD/distrib/source/proftpd-1.3.3.tar.gz --下载文件,默认保存到当前目录
# ftp> bye -- 断开连接
2. 安装:
# tar -xjvf proftpd-1.3.3.tar.gz
# cd proftpd-1.3.3
# ./configure --第一次安装,没带任何参数,使用默认吧,等以后熟悉了再说
到这一步结果提示:
意思是没有找到C编译器,于是再安装 gcc, yum install gcc ,过程略
装好 gcc 后再次 ./configure, 通过,然后:
# make
刷……一大片
# make install
安装完成,按照 INSTALL 安装说明文件里的说明,接下来要进行测试:
# sh sample-configurations/PFTEST.install --创建测试配置文件
Sample test files successfully installed in /tmp/PFTEST. -- 成功
# ./proftpd -n -d 5 -c /tmp/PFTEST/PFTEST.conf -- 使用刚创建的测试配置文件启动 ProFTPD
再另一个窗口,使用FTP工具登录测试:
% ftp -n -d
ftp> open <hostname> 2021
ftp> user proftpd
---> USER proftpd
331 Password required for proftpd.
Password: [proftpd]
---> PASS proftpd
230 User proftpd logged in.
ftp> bye
---> QUIT
221 Goodbye.
测试完成,Goodbye ,到此为止安装已成功。接下来是配置。
3.配置
#vi /usr/local/etc/proftpd.conf --打开修改proftpd配置文件
把:Group nogroup
改为:Group nobody
添加如下的日志设置行:
ExtendedLog /var/log/proftpd/access.log WRITE,READ default ← 记录连接日志到相应日志文件
ExtendedLog /var/log/proftpd/auth.log AUTH auth ← 记录认证日志到相应日志文件
添加如下一行,设置被动模式使用的端口范围:
PassivePorts 49152 65534
Linux 关机命令
曾经在学校里蹭课学的Linux都还给石老师了,连最基本的关机命令都记不太清了,只记得一个 init 0,还是重新整理一下吧:
以下文字转自:http://fanqiang.chinaunix.net/a1/b1/20020130/21030661.html
在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都
可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。
1.shutdown
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。 而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。 并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。
shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐
而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
参数说明:
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往
往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
2.halt----最简单的关机命令
其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
参数说明:
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超
级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
3.reboot
reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它
的参数与halt相差不多。
4.init
init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。
//-----init 运行级别说明------------------------------------------------
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级,我装的CentOS默认就是这个运行级别 囧)
# 4 - 没有用到
# 5 - X11 (xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
GFW! die! die! die!
CentOS 5.4 中设定可使用 su 命令的用户组
在 一般情况下,一般用户通过执行“su -”命令、输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置。但是,为了更进一步加强系统的安全性,有必要建立一个管理员的 组,只允许这个组的用户来执行“su -”命令登录为root用户,而让其他组的用户即使执行“su -”、输入了正确的root密码,也无法登录为root用户。在UNIX下,这个组的名称通常为“wheel”
在CentOS5.4中的配置方法如下:
#usermod -G wheel fanbin 将用户fanbin加入wheel组
#vi /etc/pam.d/su 用vi编辑器打开配置文件
取消下面这行前的#注释:
auth required pam_wheel.so use_uid
保存退出
现在,不在wheel组中的用户就无法使用 su 切换到root身份了。
另外,如果在 /etc/pam.d/su 文件中取消下面这行的注释:
auth sufficient pam_wheel.so trust use_uid
则wheel组中的用户使用su时无需输入密码即可登陆root,方便,但不安全,慎用。
再另外,/etc/pam.d/su 文件中的 pam_wheel.so 省略了路径,在部分Linux发行版中,此文件使用的是完整的路径: /lib/security/$ISA/pam_wheel.so
//---------------------------------------
sufficient:
adj.
1. 足够的; 充足的2. 【逻辑学】(条件)必然的
n.
1. 充足,足量
