2010年9月18日星期六

Linux的目录简介

Linux分区的命名

Linux分区的命名一般是这样的:/dev/xxyN


  • /dev/ 这个字符串是所有设备文件所在的目录名。因为分区在硬盘上,而硬盘是设备,所以这些文件代表了在/dev/上所有可能的分区
  • xx 分区名的前两个字母表明分区所在设备的类型。通常是hd(IDE磁盘)或sd(SCSI磁盘)。
  • y 这个字母表明分区所在的设备。例如,/dev/hda(第一个IDE磁盘)或/dev/sdb(第二个 SCSI磁盘)
  • N 最后的数字代表分区。前4个分区(主分区或扩展分区)是用数字从1排列到4。逻辑分区从5开始。例如,/dev/hda3 是在第一个IDE硬盘上的第三个主分区或扩展分区;/dev/sdb6 是在第二个 SCSI 硬盘上的第二个逻辑分区。
Windows下硬盘分区示例

Linux 与 Windows 分区对比图示
Linux 与 Windows 分区对比
Linux与Windows系统共存的磁盘分区图示
Linux与Windows系统共存的磁盘分区情况

Linux 的目录结构

/ Linux文件系统的入口,也是出于最高一级的目录
/bin 基础系统所需要的那些命令位于此目录,也是最小系统所需要的命令;比如 ls、cp、mkdir 等命令;功能和/usr/bin 类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里。
/boot Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;
/dev 设备文件存储目录,比如声卡、磁盘……
/etc 系统配置文件的所在地,一些服务器的配置文件也在这里;比如用户帐号及密码配置文件;
/home 普通用户主目录就是放在这里
/lib 库文件存放目录
/lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移动文件到原来的位置上。
/media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录;CDROM/DVD 自动挂载后,也会在这个目录中创建一个目录,类似 cdrom 的目录
/mnt 这个目录一般是用于存放挂载存储设备的挂载目录的,比如有cdrom 等目录。
/opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;
/proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在这里。/proc 目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统
/root Linux超级用户root的主目录
/sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的
/tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp 目录和这个目录相似。
/usr 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts,帮助目录/usr/share/man 或 /usr/share/doc,普通用户可执行文件目录/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin,超级权限用户root的可执行命令存放目录,比如 /usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin等;还有头文件的存放目录 /usr/include。
/var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var 下有/var/log 这是用来存放系统日志的目录。/var/www 目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的存放地。


补充知识:Unix目录结构的来历

2010年5月28日星期五

Ubuntu 10.04 安装AMP(Apache+Mysql+PHP)


安装Apache

woqilin@woqilin-desktop:~$ sudo apt-get install apache2

安装Mysql

woqilin@woqilin-desktop:~$ sudo apt-get install mysql-server

安装mysql客户端工具(可选)

woqilin@woqilin-desktop:~$ sudo apt-get install mysql-admin mysql-client mysql-gui-tools-common mysql-query-browser

安装mysql浏览器工具(推荐)

woqilin@woqilin-desktop:~$ sudo apt-get install phpmyadmin

安装Php5

woqilin@woqilin-desktop:~$ sudo apt-get install php5

安装PHP的Mysql扩展库

woqilin@woqilin-desktop:~$ sudo apt-get install libapache2-mod-auth-mysql
woqilin@woqilin-desktop:~$ sudo apt-get install php5-mysql

让PHP支持Mysql

找到扩展模块的目录,打开终端,输入以下命令
woqilin@woqilin-desktop:~$ locate mysql.so
(如果你有安装mysqli库,把 mysql.so 改成 mysqli.so)
会显示Mysql(i)库的位置
/usr/lib/php5/20090626+lfs/mysql.so
然后检查 php.ini文件'extension_dir'属性的设置
woqilin@woqilin-desktop:~$  sudo gedit /etc/php5/apache2/php.ini
-找到 'extension_dir'属性. 默认为
"/usr/lib/php5/ext"
.如果不是的话,设置成这个值.
-创建extension_dir目录
woqilin@woqilin-desktop:~$  sudo mkdir /usr/lib/php5/ext
-把mysql.so库复制到新目录
woqilin@woqilin-desktop:~$  sudo cp /usr/lib/php5/20090626+lfs/mysql.so /usr/lib/php5/ext/mysql.so
重启apache,测试mysql(i)库是否可以工作了

phpmyadmin 设置


如果已经安装phpmyadmin,打开浏览器输入以下地址:http://localhost/phpmyadmin,一般情况下会有以下问题

1.phpmyadmin 404 错误

配置apache2.conf文件.打开终端,输入以下命令
woqilin@woqilin-desktop:~$ sudo gedit /etc/apache2/apache2.conf
把下面这段代码添加到apache2.conf文件的最后面,然后保存并退出。重启Apache
Include /etc/phpmyadmin/apache.conf

2.phpmyadmin 无法加载 mcrypt 扩展,请检查您的 PHP 配置。把mcrypt.so模块复制到php的ext目录。

woqilin@woqilin-desktop:~$ sudo cp /usr/lib/php5/20090626+lfs/mcrypt.so /usr/lib/php5/ext/mcrypt.so

补充:

1.如果找不到mcrypt.so模块,必须手动安装
(1)打开终端运行以下命令即可安装
woqilin@woqilin-desktop:~$ apt-get install php5-mcrypt
(2)如果找不到php5-mcrypt包,下载以下三个包
libmcrypt-2.5.8.tar.gz mhash-0.9.9.tar.gz mcrypt-2.6.8.tar.gz2.然后在终端运行以下命令,其中xxx代表相应的文件
woqilin-desktop:~$ tar z -xvf xxx.tar.gz
woqilin@woqilin-desktop:~$ cd xxx
woqilin@woqilin-desktop:~$ sudo ./configure
woqilin@woqilin-desktop:~$ sudo make
woqilin@woqilin-desktop:~$ sudo make install
woqilin@woqilin-desktop:~$ sudo ldconfig
3.定位mcrypt.so模块的路径(如下命令),再把mcrypt.so模块复制到/usr/lib/php5/ext目录下,最后重启Apache
woqilin@woqilin-desktop:~$ locate mcrypt.so

启动, 停止, 测试, 重启 Apache

启动Apache:
woqilin@woqilin-desktop:~$ sudo /usr/sbin/apache2ctl start
停止Apache:
woqilin@woqilin-desktop:~$ sudo /usr/sbin/apache2ctl stop
重启Apache:
woqilin@woqilin-desktop:~$ sudo /usr/sbin/apache2ctl restart
测试配置文件改变
woqilin@woqilin-desktop:~$ sudo /usr/sbin/apache2ctl configtest

无法重启Apache

重启Apache出现以下错误
apache2: Could not reliably determine the server's fully qualified 
domain name, using 127.0.1.1 for ServerName
要解决这个问题,要编辑httpd.conf文件内容,打开终端,输入以下命令
woqilin@woqilin-desktop:~$ sudo gedit /etc/apache2/httpd.conf
默认httpd.conf文件是空白的,添加下面的内容到文件.
ServerName localhost
保存,现在可以重启Apache
woqilin@woqilin-desktop:~$ sudo /usr/sbin/apache2ctl restart

设置修改 Apache 文件根目录 (Document Root)

Apache HTTP Server 的缺省文件根目录 (DocumentRoot) 是:

DocumentRoot "/var/www"

修改 Apache 文件根目录 (DocumentRoot) 的操作如下:

为避免修改失误,请先备份Apache配置文件,命令如下
woqilin@woqilin-desktop:~$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available default.backup
Apache 配置文件的路径是:
/etc/apache2/sites-available/default
修改 default 文件,输入以下命令
woqilin@woqilin-desktop:~$ sudo gedit /etc/apache2/sites-available/default
找到 DocumentRoot 为开头的那一行,将
DocumentRoot /var/www
改成新的 DocumentRoot 路径,比如你新的路径为 ~/htdocs,就改成
DocumentRoot ~/htdocs
然后找到  default 文件中的如下内容
<Directory /var/www/>
将 Diectory 中的路径改成你新设的文件根目录,比如:
<Directory ~/htdocs>
保存配置文件default 。
修改了配置文件以后,应重新启动 Apache Service。

设置 Apache 虚拟目录默认

Apache 默认已经为你设置了虚拟目录,在default文件找到下面代码
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
上面代码设置一个虚拟目录,别名(Alias) 为doc,虚拟目录路径为/usr/share/doc/
比如你写一个最简单的 test.php 文件(参见安装PHP 中的测试 PHP),然后将其存放在/usr/share/doc/目录下,然后在浏览器里打如下地址即可执行该php文件.
http://localhost/doc/test.php
该php 文件的实际路径是:
/usr/share/doc/test.php

禁止显示 Apache 目录列表

缺省情况下如果你在浏览器输入地址:
http://localhost:8080/
如果你的文件根目录里有 index.html,浏览器就会显示 index.html的内容,如果没有 index.html,浏览器就会显示文件根目录的目录列表,目录列表包括文件根目录下的文件和子目录。
同样你输入一个虚拟目录的地址:
http://localhost:8080/b/
如果该虚拟目录下没有 index.html,浏览器也会显示该虚拟目录的目录结构,列出该虚拟目录下的文件和子目录。 如何禁止 Apache 显示目录列表呢?
要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可。
比如我们看看一个目录的目录配置:
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
你只需要将上面红色代码中的 Indexes 去掉,就可以禁止 Apache 显示该目录结构。用户就不会看到该目录下的文件和子目录列表了。 Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。

在Vista/Windows 7下硬盘安装Ubuntu9.04


1.调整vista,Windows 7下的硬盘分区,分出20G左右的空白分区。

2.下载ubuntu9.04 desktop i386的cd版,复制到C盘里。并提取cd中的casper文件夹中的initrd.gz和vmlinuz文件,复制到C盘的根目录下

3.下载grub4dos,它是一个引导工具,解压,将grldr和grldr.mbr复制到C盘的根目录

4.建立grub4dos的引导菜单,方法是在命令提示符(以管理员身份运行)下进行以下操作:
bcdedit /create /d "GRUB4DOS" /application bootsector
命令结果应该会返回一个 GUID ,后面的命令用到这个 GUID
bcdedit /set {GUID} device partition=C:
bcdedit /set {GUID} path \grldr.mbr
bcdedit /displayorder {GUID} /addlast
以上三每步都应该有“命令成功执行”的提示

XP系统下建立引导菜单
在xp下很简单,直接在boot.ini的最后一行添加C:/grldr="GRUB"就行了,但由于在vista中没有boot.ini了,因此需要使用bcd来实现,具体也就是用bcdedit
 

5.在C盘的根目录下新建一个menu.lst文件,添加以下内容:
color black/cyan yellow/cyan
timeout 30
default /default
title Install Ubuntu
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-9.04RC-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd /initrd.gz
其中root(hd0,0)是镜象文件的保存位置,在这里就是C盘的位置

注意:命令里面的 (hdx,x)不是绝对的,要看你文件放置的分区和目录决定。实在不确定的话,可以先输入


find ubuntu-9.04-desktop-i386.iso
出现的结果(会出现(hd x.x)一类的东西)就是上面(hdx,x)应该改成的东西了

输入如下命令

Grub>kernel (hdx,x)/vmlinuz root=/dev/ram0 ramdisk_size=32000 devfs=mount,dall
Grub>initrd (hdx,x)/initrd.gz
Grub>boot

6.重启后在操作系统列表选择 GRUB4DOS,就可以进入livecd模式了,选择Applications—>terminal,输入以下命令


sudo umount -l /isodevice


这一命令取消掉对光盘所在驱动器的挂载,否则分区界面找不到分区。在桌面上点install就可安装了。
分区可以分成四个,
/ :本分区文件系统可以选择ext4,选择主分区,我分了11G。
/home :用于存储个人信息,这个分区是用于存放用户的一些配置信息,建议可以分大一点,我的 8G。
/swap :一般大小为内存的两倍。如果物理内存已经足够大,1G左右 就足够一般桌面应用。
/boot :这个分区用于存放引导Linux的内核文件,一般用户分100MB足够。在进行到最后一步时,点击一个高级选项,把mbr信息写到“/”分区上,而不是写到第一个分区,即C盘。这样做可以使它和windows的启动信息分开,不会因为装了ubuntu,系统找不到windows了。

7.安装完毕,重启,由于ubuntu的mbr信息没有写在C盘,系统将找不到ubuntu而直接启动windows,这时可以像安装时一样先进入livecd模式,在该模式下读取安装的ubuntu的/boot/grub/menu.lst文件,注意是安装的ubuntu,不是livecd之下的ubuntu,将该文件复制到优盘中,重启,进windows,将这个文件拷到C盘下,覆盖原来自己写的menu.lst文件,再次重启,选GRUB4DOS即可进入ubuntu的启动菜单,这个菜单包含正常启动,诊断启动等。

2010年4月17日星期六

Javascript压缩工具

1.强大的Google Closure Compiler

Google Closure Compiler 提供三种压缩方法,分别是空格移除、简单压缩及高级压缩。简单压缩除了把comments 和空格拿走之外(跟YUI Compressor 基本一样),还能够rename variable name、甚至重写某些statement! 高级的压缩效率就更不用说了,但此项要慎用,确认你页面的JS只有一个,否则可能会产生JS冲突!Google Closure Compiler有两个版本,分别是单机版和网上版,尤其是网上版,简单易用,不需安装。

单机版Javascript Closure Compiler下载

网上版Javascript Closure Compiler


2.yahoo的YUI Compressor


YUI Compressor是使用Java编写的工具,需要Java版本大于等于1.4。 不仅能压缩JS,还能压缩CSS。

工作原理简介:


主要是去掉冗余的空白,主要包括空格,换行符、制表符。

对于 Javascript,还采用缩短变量名的方法压缩文件,就是在保证代码正确性的情况下将变量名用只有1个字符的字符串代替,或者2个、3个字符,总之尽量短。

对于 CSS,还有采用优化0值属性值的表示,优化颜色值的方法压缩文件。

CSS的优化比 CSSTidy 功能弱。CSSTidy还能支持一些相关属性的合并。

用法:



代码:

java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js


注:x,y,z 代表版本号


最简单的语法

java -jar yuicompressor-2.4.1.jar in.js -o out.js


in.js ,out.js分别是输入和输出文件


最安全的语法,不混淆、不去分号、不优化

java -jar yuicompressor-2.4.2.jar --nomunge --preserve-semi --disable-optimizations in.js -o out.js


utf8编码可以指定


java -jar yuicompressor-2.4.2.jar --charset utf-8 in.js -o out.js


关于压缩效率可以在 http://compressorrater.thruhere.net/


//压缩JS
java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v src.js > packed.js


//压缩CSS
java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src.css > packed.css