﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-                                  &lt;center&gt;&lt;font size=5&gt;心的方向&lt;/center&gt;-文章分类-Linux</title><link>http://www.blogjava.net/zilong/category/21141.html</link><description>                           &lt;center&gt;   新的征途...... &lt;/center&gt;</description><language>zh-cn</language><lastBuildDate>Sat, 31 Mar 2007 11:56:22 GMT</lastBuildDate><pubDate>Sat, 31 Mar 2007 11:56:22 GMT</pubDate><ttl>60</ttl><item><title>linux学习笔记 </title><link>http://www.blogjava.net/zilong/articles/107623.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Sat, 31 Mar 2007 03:59:00 GMT</pubDate><guid>http://www.blogjava.net/zilong/articles/107623.html</guid><wfw:comment>http://www.blogjava.net/zilong/comments/107623.html</wfw:comment><comments>http://www.blogjava.net/zilong/articles/107623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zilong/comments/commentRss/107623.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zilong/services/trackbacks/107623.html</trackback:ping><description><![CDATA[
		<strong>
				<font color="#295200" size="5">linux学习笔记</font>
		</strong>转自：<a href="http://blog.chinaunix.net/u/30619/showart.php?id=249558">http://blog.chinaunix.net/u/30619/showart.php?id=249558</a><br /><table style="BORDER-COLLAPSE: collapse" bordercolor="#a5bd6b" cellspacing="1" cellpadding="0" width="100%" border="1"><tbody><tr><td align="middle"><table style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellspacing="0" cellpadding="0" width="100%" border="0"><tbody><tr><td align="middle"><table style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellspacing="0" cellpadding="0" width="100%" border="0"><tbody><tr><td><div id="art" style="MARGIN: 15px"><div><div><div>linux<font face="宋体">目录架构</font><br />/   <font face="宋体">根目录</font><br />/bin    <font face="宋体">常用的命令</font> binary file <font face="宋体">的目錄</font><br />/boot   <font face="宋体">存放系统启动时必须读取的档案，包括核心</font> (kernel) <font face="宋体">在内</font><br />     /boot/grub/menu.lst   GRUB<font face="宋体">设置</font><br />     /boot/vmlinuz   <font face="宋体">内核</font><br />     /boot/initrd     <font face="宋体">核心解壓縮所需</font> RAM Disk<br />/dev    <font face="宋体">系统周边设备</font>     <br />/etc    <font face="宋体">系统相关设定文件</font><br />     /etc/DIR_COLORS   <font face="宋体">设定颜色</font><br />     /etc/HOSTNAME   <font face="宋体">设定用户的节点名</font><br />     /etc/NETWORKING   <font face="宋体">只有</font>YES<font face="宋体">标明网络存在</font><br />     /etc/host.conf <font face="宋体">文件说明用户的系统如何查询节点名</font><br />     /etc/hosts <font face="宋体">设定用户自已的</font>IP<font face="宋体">与名字的对应表</font><br />     /etc/hosts.allow <font face="宋体">设置允许使用</font>inetd<font face="宋体">的机器使用</font><br />     /etc/hosts.deny <font face="宋体">设置不允许使用</font>inetd<font face="宋体">的机器使用</font><br />     /etc/hosts.equiv <font face="宋体">设置远端机不用密码</font><br />     /etc/inetd.conf <font face="宋体">设定系统网络守护进程</font>inetd<font face="宋体">的配置</font><br />     /etc/gateways <font face="宋体">设定路由器</font><br />     /etc/protocols <font face="宋体">设定系统支持的协议</font><br />     /etc/named.boot <font face="宋体">设定本机为名字服务器的配置文件</font><br />     /etc/sysconfig/network-scripts/ifcfg-eth0   <font face="宋体">设置</font>IP<br />     /etc/resolv.conf    <font face="宋体">设置</font>DNS  <br />     /etc/X11  X Window<font face="宋体">的配置文件</font>,xorg.conf <font face="宋体">或</font> XF86Config <font face="宋体">這兩個</font> X Server <font face="宋体">的設定檔</font><br />     /etc/fstab    <font face="宋体">记录开机要</font>mount<font face="宋体">的文件系统</font><br />     /etc/inittab <font face="宋体">设定系统启动时</font>init<font face="宋体">进程将把系统设置成什么样的</font>runlevel<br />     /etc/issue <font face="宋体">记录用户登录前显示的信息</font><br />     /etc/group <font face="宋体">设定用户的组名与相关信息</font><br />     /etc/passwd <font face="宋体">帐号信息</font><br />     /etc/shadow <font face="宋体">密码信息</font><br />     /etc/sudoers <font face="宋体">可以</font>sudo<font face="宋体">命令的配置文件</font><br />     /etc/securetty <font face="宋体">设定哪些终端可以让</font>root<font face="宋体">登录</font><br />     /etc/login.defs <font face="宋体">所有用户登录时的缺省配置</font><br />     /etc/exports <font face="宋体">设定</font>NFS<font face="宋体">系统用的</font><br />     /etc/init.d/   <font face="宋体">所有服務的預設啟動</font> script <font face="宋体">都是放在這裡的，例如要啟動或者關閉</font><br />     /etc/xinetd.d/  <font face="宋体">這就是所謂的</font> super daemon <font face="宋体">管理的各項服務的設定檔目錄</font><br />     /etc/modprobe.conf   <font face="宋体">内核模块额外参数设定</font><br />     /etc/syslog.conf   <font face="宋体">日志设置文件</font><br />/home   <font face="宋体">使用者家目录</font><br />/lib    <font face="宋体">系统会使用到的函数库</font><br />     /lib/modules   kernel <font face="宋体">的相关模块</font><br />     /var/lib/rpm   rpm<font face="宋体">套件安装处</font><br />/lost+found    <font face="宋体">系統不正常產生錯誤時，會將一些遺失的片段放置於此目錄下</font><br />/mnt     <font face="宋体">外设的挂载点</font><br />/media   <font face="宋体">与</font>/mnt<font face="宋体">类似</font><br />/opt     <font face="宋体">主机额外安装的软件</font><br />/proc    <font face="宋体">虚拟目录，是内存的映射</font><br />      /proc/version   <font face="宋体">内核版本</font><br />       /proc/sys/kernel   <font face="宋体">系统内核功能</font><br />/root    <font face="宋体">系统管理员的家目录</font><br />/sbin    <font face="宋体">系统管理员才能执行的指令</font><br />/srv     <font face="宋体">一些服務啟動之後，這些服務所需要取用的資料目錄</font><br />/tmp     <font face="宋体">一般使用者或者是正在執行的程序暫時放置檔案的地方</font><br />/usr     <font face="宋体">最大的目录，存许应用程序和文件</font><br />    /usr/X11R6<font face="宋体">：</font>   X-Window<font face="宋体">目录</font><br />    /usr/src<font face="宋体">：</font>    Linux<font face="宋体">源代码</font><br />    /usr/include<font face="宋体">：系统头文件</font><br />    /usr/openwin <font face="宋体">存放</font>SUN<font face="宋体">的</font>OpenWin <br />    /usr/man <font face="宋体">在线使用手册</font><br />    /usr/bin           <font face="宋体">使用者可執行的</font> binary file <font face="宋体">的目錄</font><br />    /usr/local/bin     <font face="宋体">使用者可執行的</font> binary file <font face="宋体">的目錄</font><br />    /usr/lib           <font face="宋体">系统会使用到的函数库</font><br />    /usr/local/lib     <font face="宋体">系统会使用到的函数库</font><br />    /usr/sbin          <font face="宋体">系统管理员才能执行的指令</font><br />    /usr/local/sbin    <font face="宋体">系统管理员才能执行的指令</font><br />/var   <font face="宋体">日志文件</font><br />    /var/log/secure    <font face="宋体">記錄登入系統存取資料的檔案，例如</font> pop3, ssh, telnet, ftp <font face="宋体">等都會記錄在此檔案中</font><br />    /var/log/wtmp      <font face="宋体">記錄登入者的訊息資料</font>, last<br />    /var/log/messages  <font face="宋体">幾乎系統發生的錯誤訊息</font><br />    /var/log/boot.log  <font face="宋体">記錄開機或者是一些服務啟動的時候，所顯示的啟動或關閉訊息</font><br />    /var/log/maillog   <font face="宋体">紀錄郵件存取或往來</font>( sendmail <font face="宋体">與</font> pop3 )<font face="宋体">的使用者記錄</font><br />    /var/log/cron      <font face="宋体">記錄</font> crontab <font face="宋体">這個例行性服務的內容</font><br />    /var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log<font face="宋体">：</font><br />    <font face="宋体">分別是幾個不同的網路服務的記錄檔</font></div><div> </div><div><font face="宋体">一些常用的基本命令</font>:<br />uname -a    <font face="宋体">查看内核版本</font>       <br />ls -al    <font face="宋体">显示所有文件的属性</font><br />pwd         <font face="宋体">显示当前路径</font>        <br />cd -    <font face="宋体">返回上一次目录</font>     cd ~    <font face="宋体">返回主目录</font><br />date s      <font face="宋体">设置时间、日期</font>          <br />cal      <font face="宋体">显示日历</font>     cal 2006<br />bc          <font face="宋体">计算器具</font>               <br />man  &amp; info     <font face="宋体">帮助手册</font><br />locale     <font face="宋体">显示当前字体</font>     locale -a    <font face="宋体">所有可用字体</font>     /etc/sysconfig/i18n<font face="宋体">设置文件</font><br />LANG=en    <font face="宋体">使用英文字体</font>            <br />sync       <font face="宋体">将数据同步写入硬盘</font>        <br />shutdonw -h now &amp; half &amp; poweroff  <font face="宋体">关机</font><br />reboot     <font face="宋体">重启</font>                   <br />startx  &amp;  init 5   <font face="宋体">进入图形介面</font><br />/work  &amp; ?work    <font face="宋体">向上、下查找文档内容</font><br />chgrp      <font face="宋体">改变档案群组</font>  chgrp testing install.log    <br />chown     <font face="宋体">改变所属人</font>   chown root:root install.log<br />chmod      <font face="宋体">改变属性</font>     chmod 777 install.log     read=4  write=2  execute=1<br />cp   <font face="宋体">复制</font>   cp filename<br />rm   <font face="宋体">删除文件</font>  rm -rf filename   <font face="宋体">强制删除文件</font><br />rmdir   <font face="宋体">删除文件夹</font><br />mv  <font face="宋体">移动</font>    mv 123.txt 222.txt  <font face="宋体">重命名</font><br />mkdir     <font face="宋体">创建文件夹</font><br />touch     <font face="宋体">创建文件</font>  <font face="宋体">更新当前时间</font><br />cat       <font face="宋体">由第一行开始显示</font>     cat |more  <font face="宋体">分页</font><br />nl        <font face="宋体">在内容前加行号</font><br />more  &amp;  less   <font face="宋体">一面一面翻动</font><br />head -n filename   <font face="宋体">显示第</font>N<font face="宋体">行内容</font><br />tail -n filename  <font face="宋体">显示后</font>N<font face="宋体">行内容</font><br />od        <font face="宋体">显示非纯文档</font><br />df -h <font face="宋体">显示分区空间</font><br />du  <font face="宋体">显示目录或文件的大小</font><br />fdisk   <font face="宋体">分区设置</font>    fdisk -l /dev/hda  <font face="宋体">显示硬盘分区状态</font><br />mkfs    <font face="宋体">建立各种文件系统</font>  mkfs -t ext3  /dev/ram15   <br />fsck    <font face="宋体">检查和修复</font>LINUX<font face="宋体">档案</font><br />ln      <font face="宋体">硬链接</font>   ln -s  <font face="宋体">软件链接</font><br />whereis   <font face="宋体">查找命令</font><br />locate    <font face="宋体">查找</font><br />find      <font face="宋体">查找</font>   find / -name "***.***"<br />which     <font face="宋体">查看工具</font><br />whoami    <font face="宋体">显示当前用户</font><br />gcc -v    <font face="宋体">查看</font>GCC<font face="宋体">版本</font><br />chattr +i filename  <font face="宋体">禁止删除</font>   chattr -i filename  <font face="宋体">取消禁止</font><br />lsattr    <font face="宋体">显示隐藏档属性</font><br />updatedb  <font face="宋体">更新资料库</font><br />mke2fs    <font face="宋体">格式化</font>   mkfs -t ext3 <br />dd if=/etc/passwd of=/tmp/passwd.bak    <font face="宋体">备份</font><br />mount     <font face="宋体">列出系统所有的分区</font><br />mount -t iso9660 /dev/cdrom /mnt/cdrom   <font face="宋体">挂载光盘</font><br />mount -t vfat /dev/fd0 /mnt/floppy       <font face="宋体">挂载软盘</font><br />mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2   <font face="宋体">挂载</font>fat32<font face="宋体">分区</font><br />mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3         <font face="宋体">挂载</font>ntfs<font face="宋体">分区</font><br />Linux-NTFS Project: <a href="http://linux-ntfs.sourceforge.net/"><font color="#223355">http://linux-ntfs.sourceforge.net/</font></a><br />umount /mnt/hda3  <font face="宋体">缷载</font><br />ifconfig   <font face="宋体">显示或设置网络设备</font><br />service network restart   <font face="宋体">重启网卡</font>  <br />ifdown eth0  <font face="宋体">关闭网卡</font><br />ifup eth0    <font face="宋体">开启网卡</font><br />clear    <font face="宋体">清屏</font><br />history    <font face="宋体">历史记录</font>       !55  <font face="宋体">执行第</font>55<font face="宋体">个指令</font><br />stty   <font face="宋体">设置终端</font>    stty -a<br />fdisk /mbr   <font face="宋体">删除</font>GRUB<br />at     <font face="宋体">僅進行一次的工作排程</font><br />crontab   <font face="宋体">循環執行的例行性命令</font>    [e]<font face="宋体">编辑</font>,[l]<font face="宋体">显示</font>,[r]<font face="宋体">删除任务</font><br />&amp;       <font face="宋体">后台运行程序</font>    tar -zxvf 123.tar.gz &amp; ---------&gt;<font face="宋体">后台运行</font><br />jobs    <font face="宋体">观看后台暂停的程序</font>   jobs -l<br />fg      <font face="宋体">将后台程序调到前台</font>   fg n ------&gt;n<font face="宋体">是数字</font>,<font face="宋体">可以指定进行那个程序</font><br />bg      <font face="宋体">让工作在后台运行</font><br />kill    <font face="宋体">结束进程</font>    kill -9 PID     [9]<font face="宋体">强制结束</font>,[15]<font face="宋体">正常结束</font>,[l]<font face="宋体">列出可用的</font>kill<font face="宋体">信号</font><br />ps aux  <font face="宋体">查看后台程序</font>   <br />top     <font face="宋体">查看后台程序</font>   top -d 2    <font face="宋体">每两秒更新一次</font>        top -d 2 -p10604   <font face="宋体">观看某个</font>PID<br />        top -b -n 2 &gt; /tmp/top.txt -----&gt;<font face="宋体">將</font> top <font face="宋体">的資訊進行</font> 2 <font face="宋体">次，然後將結果輸出到</font> /tmp/top.txt    <br />pstree   <font face="宋体">以树状图显示程序</font>    [A]<font face="宋体">以</font> ASCII <font face="宋体">來連接</font>, [u]<font face="宋体">列出</font>PID, [p]<font face="宋体">列出帐号</font><br />killall   <font face="宋体">要刪除某個服務</font>    killall -9 httpd<br />free      <font face="宋体">显示内存状态</font>     free -m  --------&gt;<font face="宋体">以</font>M<font face="宋体">为单位显示</font><br />uptime    <font face="宋体">显示目前系统开机时间</font><br />netstat   <font face="宋体">显示网络状态</font>    netstat -tulnp------&gt;<font face="宋体">找出目前系統上已在監聽的網路連線及其</font> PID<br />dmesg     <font face="宋体">显示开机信息</font>    demsg | more<br />nice      <font face="宋体">设置优先权</font>      nice -n -5 vi &amp; -----&gt;<font face="宋体">用</font> root <font face="宋体">給一個</font> nice <font face="宋体">植為</font> -5 <font face="宋体">，用於執行</font> vi <br />renice    <font face="宋体">调整已存在优先权</font><br />runlevel  <font face="宋体">显示目前的</font>runlevel<br />depmod    <font face="宋体">分析可载入模块的相依性</font><br />lsmod     <font face="宋体">显示已载入系统的模块</font><br />modinfo   <font face="宋体">显示</font>kernel<font face="宋体">模块的信息</font><br />insmod    <font face="宋体">载入模块</font><br />modprobe   <font face="宋体">自动处理可载入模块</font><br />rmmod     <font face="宋体">删除模块</font><br />chkconfig   <font face="宋体">检查，设置系统的各种服务</font>     chkconfig --list -----&gt;<font face="宋体">列出各项服务状态</font><br />ntsysv     <font face="宋体">设置系统的各种服务</font><br />cpio      <font face="宋体">备份文件</font><br /> </div><div><br /><font face="宋体">压缩命令：</font><br /> *.Z      compress <font face="宋体">程式壓縮的檔案；</font><br /> *.bz2    bzip2 <font face="宋体">程式壓縮的檔案；</font><br /> *.gz     gzip <font face="宋体">程式壓縮的檔案；</font><br /> *.tar    tar <font face="宋体">程式打包的資料，並沒有壓縮過；</font><br /> *.tar.gz tar <font face="宋体">程式打包的檔案，其中並且經過</font> gzip <font face="宋体">的壓縮</font><br />compress filename  <font face="宋体">压缩文件</font>  <font face="宋体">加</font>[-d]<font face="宋体">解压</font>  uncompress<br />gzip filename   <font face="宋体">压缩</font>  <font face="宋体">加</font>[-d]<font face="宋体">解压</font>  zcat 123.gz <font face="宋体">查看压缩文件内容</font><br />bzip2 -z filename  <font face="宋体">压缩</font>  <font face="宋体">加</font>[-d]<font face="宋体">解压</font>   bzcat filename.bz2  <font face="宋体">查看压缩文件内容</font><br />tar -cvf /home/123.tar /etc  <font face="宋体">打包，不压缩</font><br />tar -xvf 123.tar   <font face="宋体">解开包</font><br />tar -zxvf /home/123.tar.gz  <font face="宋体">以</font>gzip<font face="宋体">解压</font><br />tar -jxvf /home/123.tar.bz2  <font face="宋体">以</font>bzip2<font face="宋体">解压</font><br />tar -ztvf /tmp/etc.tar.gz   <font face="宋体">查看</font>tar<font face="宋体">内容</font><br />cpio -covB  &gt; [file|device]   <font face="宋体">份份</font><br />cpio -icduv &lt; [file|device]   <font face="宋体">还原</font></div><div> </div><div>vi<font face="宋体">一般用法</font><br /><font face="宋体">一般模式</font>              <font face="宋体">编辑模式</font>                  <font face="宋体">指令模式</font><br />h <font face="宋体">左</font>               a,i,r,o,A,I,R,O             :w <font face="宋体">保存</font><br />j <font face="宋体">下</font>                <font face="宋体">进入编辑模式</font>                :w! <font face="宋体">强制保存</font><br />k <font face="宋体">上</font>                dd <font face="宋体">删除光标当前行</font>           :q! <font face="宋体">不保存离开</font><br />l <font face="宋体">右</font>                ndd <font face="宋体">删除</font>n<font face="宋体">行</font>                 :wq! <font face="宋体">保存后离开</font><br />0 <font face="宋体">移动到行首</font>        yy <font face="宋体">复制当前行</font>                :e! <font face="宋体">还原原始档</font><br />$ <font face="宋体">移动到行尾</font>        nyy <font face="宋体">复制</font>n<font face="宋体">行</font>                  :w filename <font face="宋体">另存为</font><br />H <font face="宋体">屏幕最上</font>          p,P <font face="宋体">粘贴</font>                     :set nu <font face="宋体">设置行号</font><br />M <font face="宋体">屏幕中央</font>          u  <font face="宋体">撤消</font>                      :set nonu <font face="宋体">取消行号</font><br />L <font face="宋体">屏幕最下</font>          [Ctrl]+r <font face="宋体">重做上一个动作</font>       ZZ <font face="宋体">保存离开</font><br />G <font face="宋体">档案最后一行</font>      [ctrl]+z <font face="宋体">暂停退出</font>            :set nohlsearch   <font face="宋体">永久地关闭高亮显示</font><br />/work <font face="宋体">向下搜索</font>                                   :sp <font face="宋体">同时打开两个文档</font><br />?work <font face="宋体">向上搜索</font>                                   [Ctrl]+w <font face="宋体">两个文档设换</font><br />gg <font face="宋体">移动到档案第一行</font>                              :nohlsearch    <font face="宋体">暂时关闭高亮显示</font></div><div> </div><div><font face="宋体">认识</font>SHELL<br />alias    <font face="宋体">显示当前所有的命令别名</font>      alias lm="ls -al"   <font face="宋体">命令别名</font>    unalias lm <font face="宋体">取消命令别名</font><br />type      <font face="宋体">类似</font>which<br />exprot    <font face="宋体">设置或显示环境变量</font><br />exprot PATH="$PATH":/sbin  <font face="宋体">添加</font>/sbin<font face="宋体">入</font>PATH<font face="宋体">路径</font><br />echo $PATH    <font face="宋体">显示</font>PATH<font face="宋体">路径</font><br />bash      <font face="宋体">进入子程序</font><br />name=yang     <font face="宋体">设定变量</font><br />unset name    <font face="宋体">取消变量</font><br />echo $name    <font face="宋体">显示变量的内容</font><br />myname="$name its me"   &amp;   myname='$name its me'     <font face="宋体">单引号时</font>$name<font face="宋体">失去变量内容</font><br />ciw=/etc/sysconfig/network-scripts/     <font face="宋体">设置路径</font><br />env      <font face="宋体">列出所有环境变量</font><br />echo $RANDOM    <font face="宋体">显示随意产生的数</font><br />set      <font face="宋体">设置</font>SHELL<br />PS1='[\u@\h \w \A #\#]\$ '     <font face="宋体">提示字元的設定</font><br />   [root@linux ~]# read [-pt] variable     -----------<font face="宋体">读取键盘输入的变量</font><br />   <font face="宋体">參數：</font><br />   -p  <font face="宋体">：後面可以接提示字元！</font><br />   -t  <font face="宋体">：後面可以接等待的『秒數！』</font><br />declare    <font face="宋体">声明</font> shell <font face="宋体">变量</font><br />ulimit -a   <font face="宋体">显示所有限制资料</font><br /> ls /tmp/yang &amp;&amp; echo "exist" || echo "not exist"<br /> <font face="宋体">意思是說，當</font> ls /tmp/yang <font face="宋体">執行後，若正確，就執行</font>echo "exist" ,<font face="宋体">若有問題，就執行</font>echo "not exist" <br /> echo $PATH | cut -d ':' -f 5       <font face="宋体">以</font>:<font face="宋体">为分隔符</font>,<font face="宋体">读取第</font>5<font face="宋体">段内容</font><br /> export | cut -c 10-20      <font face="宋体">读取第</font>10<font face="宋体">到</font>20<font face="宋体">个字节的内容</font><br /> last | grep 'root'    <font face="宋体">搜索有</font>root<font face="宋体">的一行</font>,<font face="宋体">加</font>[-v]<font face="宋体">反向搜索</font><br /> cat /etc/passwd | sort    <font face="宋体">排序显示</font><br /> cat /etc/passwd | wc      <font face="宋体">显示『行、字数、字节数』</font></div><div><font face="宋体">正规表示法</font><br />[root@test root]# grep [-acinv] '<font face="宋体">搜尋字串</font>' filename<br />       <font face="宋体">參數說明：</font><br />       -a <font face="宋体">：將</font> binary <font face="宋体">檔案以</font> text <font face="宋体">檔案的方式搜尋資料</font><br />       -c <font face="宋体">：計算找到</font> '<font face="宋体">搜尋字串</font>' <font face="宋体">的次數</font><br />       -i <font face="宋体">：忽略大小寫的不同，所以大小寫視為相同</font><br />       -n <font face="宋体">：順便輸出行號</font><br />       -v <font face="宋体">：反向選擇，亦即顯示出沒有</font> '<font face="宋体">搜尋字串</font>' <font face="宋体">內容的那一行！</font><br /> grep -n 'the' 123.txt     <font face="宋体">搜索</font>the<font face="宋体">字符</font> -----------<font face="宋体">搜尋特定字串</font>       <br /> grep -n 't[ea]st' 123.txt    <font face="宋体">搜索</font>test<font face="宋体">或</font>taste<font face="宋体">两个字符</font>---------<font face="宋体">利用</font> [] <font face="宋体">來搜尋集合字元</font><br /> grep -n '[^g]oo' 123.txt     <font face="宋体">搜索前面不为</font>g<font face="宋体">的</font>oo-----------<font face="宋体">向選擇</font> [^] <br /> grep -n '[0-9]' 123.txt  <font face="宋体">搜索有</font>0-9<font face="宋体">的数字</font><br /> grep -n '^the' 123.txt <font face="宋体">搜索以</font>the<font face="宋体">为行首</font>-----------<font face="宋体">行首搜索</font>^<br /> grep -n '^[^a-zA-Z]' 123.txt  <font face="宋体">搜索不以英文字母开头</font><br /> grep -n '[a-z]$' 123.txt    <font face="宋体">搜索以</font>a-z<font face="宋体">结尾的行</font>---------- <font face="宋体">行尾搜索</font>$<br /> grep -n 'g..d' 123.txt     <font face="宋体">搜索开头</font>g<font face="宋体">结尾</font>d<font face="宋体">字符</font>----------<font face="宋体">任意一個字元</font> . <br /> grep -n 'ooo*' 123.txt     <font face="宋体">搜索至少有两个</font>oo<font face="宋体">的字符</font>---------<font face="宋体">重複字元</font> *<br />sed    <font face="宋体">文本流编辑器</font>    <font face="宋体">利用脚本命令来处理文本文件</font><br />awd    <font face="宋体">模式扫描和处理语言</font><br /> nl 123.txt | sed '2,5d'   <font face="宋体">删除第二到第五行的内容</font><br />diff     <font face="宋体">比较文件的差异</font><br />cmp      <font face="宋体">比较两个文件是否有差异</font><br />patch    <font face="宋体">修补文件</font><br />pr       <font face="宋体">要打印的文件格式化</font><br /> </div><div><br /><font face="宋体">帐号管理</font><br />/etc/passwd    <font face="宋体">系统帐号信息</font><br />/etc/shadow    <font face="宋体">帐号密码信息</font>    <font face="宋体">经</font>MD5 32<font face="宋体">位加密</font><br />     <font face="宋体">在密码栏前面加『</font> * <font face="宋体">』『</font> ! <font face="宋体">』禁止使用某帐号</font><br />/etc/group     <font face="宋体">系统群组信息</font><br />/etc/gshadow<br />newgrp    <font face="宋体">改变登陆组</font><br />useradd  &amp;  adduser    <font face="宋体">建立新用户</font>  ---------&gt; useradd -m test  <font face="宋体">自动建立用户的登入目录</font><br />          useradd -m -g pgroup test ---------&gt;<font face="宋体">指定所属级</font><br />/etc/default/useradd   <font face="宋体">相关设定</font><br />/etc/login.defs       UID/GID <font face="宋体">有關的設定</font><br />passwd    <font face="宋体">更改密码</font> -----------&gt; passwd test<br />usermod   <font face="宋体">修改用户帐号</font><br />userdel   <font face="宋体">删除帐号</font> -----------&gt;userdel -r test<br />chsh      <font face="宋体">更换登陆系统时使用的</font>SHELL   [-l]<font face="宋体">显示可用的</font>SHELL;[-s]<font face="宋体">修改自己的</font>SHELL<br />chfn      <font face="宋体">改变</font>finger<font face="宋体">指令显示的信息</font><br />finger    <font face="宋体">查找并显示用户信息</font><br />id        <font face="宋体">显示用户的</font>ID -----------&gt;  id test<br />groupadd   <font face="宋体">添加组</font><br />groupmod   <font face="宋体">与</font>usermod<font face="宋体">类似</font><br />groupdel   <font face="宋体">删除组</font><br />su test    <font face="宋体">更改用户</font>   su -    <font face="宋体">进入</font>root,<font face="宋体">且使用</font>root<font face="宋体">的环境变量</font><br />sudo       <font face="宋体">以其他身份来执行指令</font><br />visudo     <font face="宋体">编辑</font>/etc/sudoers      <font face="宋体">加入一行『</font> test ALL=(ALL) ALL <font face="宋体">』</font><br />           %wheel ALL = (ALL) ALL               <font face="宋体">系统里所有</font>wheel<font face="宋体">群组的用户都可用</font>sudo<br />           %wheel ALL = (ALL) NOPASSWD: ALL     wheel<font face="宋体">群组所有用户都不用密码</font>NOPASSWD<br />       User_Alias ADMPW = vbird, dmtsai, vbird1, vbird3         <font face="宋体">加入</font>ADMPW<font face="宋体">组</font><br />       ADMPW ALL = NOPASSWD: !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, \<br />       !/usr/bin/passwd root      <font face="宋体">可以更改使用者密码</font>,<font face="宋体">但不能更改</font>root<font face="宋体">密码</font> (<font face="宋体">在指令前面加入</font> ! <font face="宋体">代表不可</font>)<br />PAM (Pluggable Authentication Modules, <font face="宋体">嵌入式模組</font>)<br />who &amp; w     <font face="宋体">看谁在线</font>                     <br />last        <font face="宋体">最近登陆主机的信息</font><br />lastlog     <font face="宋体">最近登入的時間</font>    <font face="宋体">读取</font> /var/log/lastlog <br />talk        <font face="宋体">与其他用户交谈</font><br />write       <font face="宋体">发送信息</font>    write test   [ctrl]+d <font face="宋体">发送</font><br />mesg        <font face="宋体">设置终端机的写入权限</font>    mesg n <font face="宋体">禁止接收</font>     mesg y <br />wall        <font face="宋体">向所有用户发送信息</font>    wall this is q test<br />mail        <font face="宋体">写</font>mail   <br />/etc/default/useradd    <font face="宋体">家目录默认设置</font></div><div>quota      <font face="宋体">显示磁盘已使用的空间与限制</font>     quota -guvs -----&gt;<font face="宋体">秀出目前</font> root <font face="宋体">自己的</font> quota <font face="宋体">限制值</font><br />           quota -vu   <font face="宋体">查询</font><br />quotacheck   <font face="宋体">检查磁盘的使用空间与限制</font>     quotacheck -avug  -----&gt;<font face="宋体">將所有的在</font> /etc/mtab <font face="宋体">內，含有</font> quota <font face="宋体">支援的</font> partition <font face="宋体">進行掃瞄</font><br />             [-m] <font face="宋体">强制扫描</font>  <br />     quota<font face="宋体">一定要是独立的分区</font>,<font face="宋体">要有</font>quota.user<font face="宋体">和</font>quota.group<font face="宋体">两件文件</font>,<font face="宋体">在</font>/etc/fstab<font face="宋体">添加一句</font>:<br />     /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2<br />     chmod 600 quota*         <font face="宋体">设置完成</font>,<font face="宋体">重启生效</font><br />edquota    <font face="宋体">编辑用户或群组的</font>quota  [u]<font face="宋体">用户</font>,[g]<font face="宋体">群组</font>,[p]<font face="宋体">复制</font>,[t]<font face="宋体">设置宽限期限</font><br />           edquota -a yang       edquota -p yang -u young -----&gt;<font face="宋体">复制</font>    <br />quotaon    <font face="宋体">开启磁盘空间限制</font>     quotaon -auvg --------&gt;<font face="宋体">啟動所有的具有</font> quota <font face="宋体">的</font> filesystem<br />quotaoff   <font face="宋体">关闭磁盘空间限制</font>     quotaoff -a  --------&gt;<font face="宋体">關閉了</font> quota <font face="宋体">的限制</font><br />repquota -av     <font face="宋体">查閱系統內所有的具有</font> quota <font face="宋体">的</font> filesystem <font face="宋体">的限值狀態</font></div><div>Quota <font face="宋体">從開始準備</font> filesystem <font face="宋体">的支援到整個設定結束的主要的步驟大概是：</font><br />1<font face="宋体">、設定</font> partition <font face="宋体">的</font> filesystem <font face="宋体">支援</font> quota <font face="宋体">參數：</font><br /><font face="宋体">由於</font> quota <font face="宋体">必須要讓</font> partition <font face="宋体">上面的</font> filesystem <font face="宋体">支援才行，一般來說，</font><font face="宋体">支援度最好的是</font> ext2/ext3 <font face="宋体">，</font><br /><font face="宋体">其他的</font> filesystem <font face="宋体">類型鳥哥我是沒有試過啦！</font><font face="宋体">啟動</font> filesystem <font face="宋体">支援</font> quota <font face="宋体">最簡單就是編輯</font> /etc/fstab <font face="宋体">，</font><br /><font face="宋体">使得準備要開放的</font> quota <font face="宋体">磁碟可以支援</font> quota <font face="宋体">囉；</font><br />2<font face="宋体">、建立</font> quota <font face="宋体">記錄檔：</font><br /><font face="宋体">剛剛前面講過，整個</font> quota <font face="宋体">進行磁碟限制值記錄的檔案是</font> aquota.user/aquota.group<font face="宋体">，</font><br /><font face="宋体">要建立這兩個檔案就必須要先利用</font> quotacheck <font face="宋体">掃瞄才行喔！</font><br />3<font face="宋体">、編輯</font> quota <font face="宋体">限制值資料：</font><br /><font face="宋体">再來就是使用</font> edquota <font face="宋体">來編輯每個使用者或群組的可使用空間囉；</font><br />4<font face="宋体">、重新掃瞄與啟動</font> quota <font face="宋体">：</font><br /><font face="宋体">設定好</font> quota <font face="宋体">之後，建議可以再進行一次</font> quotacheck <font face="宋体">，然後再以</font> quotaon <font face="宋体">來啟動吧！</font></div><div><br /><font face="宋体">开机流程简介</font><br />1<font face="宋体">、載入</font> BIOS <font face="宋体">的硬體資訊，並取得第一個開機裝置的代號；</font><br />2<font face="宋体">、讀取第一個開機裝置的</font> MBR <font face="宋体">的</font> boot Loader (<font face="宋体">亦即是</font> lilo, grub, spfdisk <font face="宋体">等等</font>) <font face="宋体">的開機資訊；</font><br />3<font face="宋体">、載入</font> Kernel <font face="宋体">作業系統核心資訊，</font> Kernel <font face="宋体">開始解壓縮，並且嘗試驅動所有硬體裝置；</font><br />4<font face="宋体">、</font>Kernel <font face="宋体">執行</font> init <font face="宋体">程式並取得</font> run-level <font face="宋体">資訊；</font><br />5<font face="宋体">、</font>init <font face="宋体">執行</font> /etc/rc.d/rc.sysinit <font face="宋体">檔案；</font><br />6<font face="宋体">、啟動核心的外掛模組</font> (/etc/modprobe.conf)<font face="宋体">；</font><br />7<font face="宋体">、</font>init <font face="宋体">執行</font> run-level <font face="宋体">的各個批次檔</font>( Scripts )<font face="宋体">；</font><br />8<font face="宋体">、</font>init <font face="宋体">執行</font> /etc/rc.d/rc.local <font face="宋体">檔案；</font><br />9<font face="宋体">、執行</font> /bin/login <font face="宋体">程式，並等待使用者登入；</font><br />10<font face="宋体">、登入之後開始以</font> Shell <font face="宋体">控管主機。</font></div><div><font face="宋体">在</font>/etc/rc.d/rc3.d<font face="宋体">內</font>,<font face="宋体">以</font>S<font face="宋体">开头的为开机启动</font>,<font face="宋体">以</font>K<font face="宋体">开头的为关闭</font>,<font face="宋体">接着的数字代表执行顺序</font></div><div>GRUB vga<font face="宋体">设定</font><br /><font face="宋体">彩度</font>\<font face="宋体">解析度</font>  640x480  800x600  1024x768  1280x1024   bit <br />    256        769      771      773       775      8 bit <br />   32768       784      787      790       793     15 bit <br />   65536       785      788      791       794     16 bit <br />   16.8M       786      789      792       795     32 bit </div><div><br />./configure    <font face="宋体">检查系统信息</font>       ./configure --help | more  <font face="宋体">帮助信息</font><br />make clean     <font face="宋体">清除之前留下的文件</font><br />make           <font face="宋体">编译</font><br />make install   <font face="宋体">安装</font></div><div>rpm -q  -----&gt;<font face="宋体">查询是否安装</font>             rpm -ql ------&gt;<font face="宋体">查询该套件所有的目录</font><br />rpm -qi -----&gt;<font face="宋体">查询套件的说明资料</font>       rpm -qc[d] -----&gt;<font face="宋体">设定档与说明档</font><br />rpm -ivh  ----&gt;<font face="宋体">安装</font>                    rpm -V  --------&gt;<font face="宋体">查看套件有否更动过</font><br />rpm -e  ------&gt;<font face="宋体">删除</font>                    rpm -Uvh -------&gt;<font face="宋体">升级安装</font>  <br />--nodeps -----&gt;<font face="宋体">强行安装</font>                --test -----&gt;<font face="宋体">测试安装</font></div></div><div><font size="3"><font face="Times New Roman"></font></font> </div><div></div></div></div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><img src ="http://www.blogjava.net/zilong/aggbug/107623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zilong/" target="_blank">阿伟</a> 2007-03-31 11:59 <a href="http://www.blogjava.net/zilong/articles/107623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Debian3下配置JSP开发环境</title><link>http://www.blogjava.net/zilong/articles/107619.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Sat, 31 Mar 2007 03:50:00 GMT</pubDate><guid>http://www.blogjava.net/zilong/articles/107619.html</guid><wfw:comment>http://www.blogjava.net/zilong/comments/107619.html</wfw:comment><comments>http://www.blogjava.net/zilong/articles/107619.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zilong/comments/commentRss/107619.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zilong/services/trackbacks/107619.html</trackback:ping><description><![CDATA[
		<h4 class="TextColor1" id="subjcns!A7DF246804AD47BB!139" style="MARGIN-BOTTOM: 0px">Debian3下配置JSP开发环境</h4>
		<div id="msgcns!A7DF246804AD47BB!139">
				<div>
						<p>我假设你使用Debian3，如果你使用其他的Linux版，可能会有安装方法和设置路径上的区别。 </p>
						<h2>1，安装J2SDK</h2>
						<p>
								<strong>1.1 使用Debian源里的安装包</strong>
						</p>
						<p>以root 身份运行apt-get install sun-j2sdk1.4，这样将安装sun的j2sdk1.4。然后输入java如果你看到的不是command not found，就表示你已经安装正确了。否则搜索是否有java和javac两个文件，我的在/usr/lib/j2sdk1.4-sun/bin下，如果 有就创建链接到/usr/bin下，连接名与原文件名一样。 </p>
						<p>
								<strong>1.2 使用sun网站上的安装包</strong>
						</p>
						<p>具体方法参考sun网站上的安装说明。也可以参考我的做法（图形界面操作）： </p>
						<p>下载正确的压缩包后解压，一般得到类似名为jdk1.x.x的文件夹。将整个文件夹移动到/usr/lib目录下，然后进入 jdk.1.x.x/bin下的java, javac, javadoc, jar四个可执行文件创建链接，然后复制到/usr/bin文件夹下，并且改名为与原文件相同。这样做的原因是一般/usr/bin是$PATH环境变量 的一部分，以后你想运行javac命令编绎一个.java源文件时，只需要输入javac filename就行了，而不需要输入javac文件所在的完整路径。 </p>
						<p>JAVA_HOME环境变量可以不设置，因为据我的使用经验，java，javac等jdk的程序知道在哪里找到自己的家。当某个程序需要JAVA_HOME环境变量，我们再在它的启动脚本中设置。因为使用JAVA_HOME环境变量的程序很少。 </p>
						<h2>2，安装Tomcat</h2>
						<p>从http://tomcat.apache.org/网站上下载tomcat for Linux。网站上有不同版本的源码包和二进制包等，而二进制包又有core，deployer，embedded三种。我使用tomcat5.28二进制包中的core。 </p>
						<p>下载jakarta-tomcat-5.0.28.tar.gz解压，将得到jakarta-tomcat-5.0.28文件夹,我把它改名为tomcat5，把它拷贝到你喜欢的地方。我放在/usr/share/下。 </p>
						<p>
								<strong>2.1 试运行tomcat</strong>
						</p>
						<p>在终端中输入/usr/share/tomcat5/bin/startup.sh，将启动tomcat。然后你在浏览器中输入http://localhost:8080或者http://127.0.0.1:8080你就看到tomcat产生的页面了。 </p>
						<p>运行/usr/share/tomcat5/bin/startup.sh出错？试运行： </p>
						<pre>JAVA_HOME=/usr/lib/j2sdk1.4_sun #这里的路径是你的j2sdk的安装路径<br />export JAVA_HOME<br />/usr/share/tomcat5/bin/startup.sh<br /></pre>
						<strong>2.2 将tomcat设置为开机启动</strong>
						<p>有两个方法，1是使用tomcat自带的启动脚本启动，2是使用jsvc将tomcat启动为Linux的一个进程。 </p>
						<p>
								<strong>2.2.1</strong>
						</p>
						<p>建立一个脚本命名为tomcat5.sh，内容为： </p>
						<pre>#!/bin/sh<br />#file:tomcat5.sh<br />#设置环境变量，如果无法启动就将注释去掉<br />#JAVA_HOME=/usr/lib/j2sdk1.4-sun<br />#CATALINA_HOME=/usr/share/tomcat5<br />#CLASSPATH=\<br />#$JAVA_HOME/lib/tools.jar:\<br />#$CATALINA_HOME/bin/commons-daemon.jar:\<br />#$CATALINA_HOME/bin/bootstrap.jar<br />case "$1" in<br /> start)<br />   echo "Starting tomcat5..."<br />   /usr/tomcat5/bin/startup.sh<br />   ;;<br /> stop)<br />   echo "Stopping tomcat5..."<br />   /usr/tomcat5/bin/shutdown.sh<br />   ;;<br /> *)<br />   echo "Usage tomcat.sh start/stop"<br />   exit 1;;<br />esac<br />#tomcat5.sh end<br /></pre>
						<p>将tomcat5.sh 拷贝到/etc/init.d下面。然后运行/usr/bin/ksysv运行图形界面的开机启动设置工具。将Available Services栏里的tomcat5.sh拖到Runlever 2 Start，Runlever 3 Start，Runlever 4 Start，Runlever 5 Start，Runlever 6 Start，Runlever 0 Stop，Runlever 1 Stop，Runlever 6 Stop，你可能需要注意图标的位置，我将图标拖到每一栏的启动项目标号是90的位置。 </p>
						<p>或者你在终端里运行： </p>
						<pre>ln -s /etc/init.d/tomcat5.sh /etc/rc0.d/K90tomcat5.sh<br />ln -s /etc/init.d/tomcat5.sh /etc/rc1.d/K90tomcat5.sh<br />ln -s /etc/init.d/tomcat5.sh /etc/rc2.d/S90tomcat5.sh<br />ln -s /etc/init.d/tomcat5.sh /etc/rc3.d/S90tomcat5.sh<br />ln -s /etc/init.d/tomcat5.sh /etc/rc4.d/S90tomcat5.sh<br />ln -s /etc/init.d/tomcat5.sh /etc/rc5.d/S90tomcat5.sh<br />ln -s /etc/init.d/tomcat5.sh /etc/rc6.d/K95tomcat5.sh<br /></pre>
						<p>重启机器看tomcat是否可以自动启动了。 </p>
						<p>
								<strong>2.2.2</strong>
						</p>
						<p>方法2.2.1有一个严重的问题，那就是tomcat具有root权限。我意味着你的任何一个jsp脚本都具有root权限，所以可以轻易地用jsp脚本删除你整个硬盘里的东西！所以我们最好不要使用2.2.1方法。 </p>
						<p>我们下载的jakarta-tomcat-5.0.28.tar.gz带有fsvc工具，在压缩包里的jakarta-tomcat- 5.0.28/bin/fsvc.tar.gz，如果你按上面的步骤做了，它就在 /usr/share/tomcat5/bin/fsvc.tar.gz，将其解压，得到/usr/share/tomcat5/bin/fsvc- src文件夹。在终端运行： </p>
						<p>/usr/share/tomcat5/bin/fsvc-src/configure --with-java=/usr/lib/j2sdk1.4-sun </p>
						<p>make </p>
						<p>得到/usr/share/tomcat5/bin/fsvc-src/fsvc文件。将/usr/share/tomcat5/bin/fsvc- src/native/tomcat5.sh脚本文件拷贝到/etc/init.d下，再使用2.2.1中的的半部分方法将tomcat设置为自启动。 </p>
						<p>/etc/init.d/tomcat5.sh还需要修改，使其看起来像： </p>
						<pre>JAVA_HOME=/usr/lib/j2sdk1.4-sun<br />CATALINA_HOME=/usr/share/tomcat5<br />DAEMON_HOME=/usr/share/tomcat5<br />TOMCAT_USER=tomcat5 #这里改为一个普通身份的用户名<br />TMP_DIR=/var/tmp<br />CATALINA_OPTS=<br />CLASSPATH=\<br />$JAVA_HOME/lib/tools.jar:\<br />$CATALINA_HOME/bin/commons-daemon.jar:\<br />$CATALINA_HOME/bin/bootstrap.jar<br />case "$1" in<br /> start)<br />   #<br />   # Start Tomcat<br />   #<br />   $DAEMON_HOME/bin/jsvc-src/jsvc \<br />......<br /></pre>
						<p>先不要重启试验，请手动运行/etc/init.d/tomcat5.sh start，然后在浏览器中输入http://localhost:8080或者http://127.0.0.1:8080看tomcat是否能够启 动，再运行/etc/init.d/tomcat5.sh stop看是否能停止。 </p>
						<p>问题：无法用fsvc启动tomcat？ </p>
						<p>在http://jakarta.apache.org/commons/daemon/faq.html有说明。如果你使用Debian，运行 modconf然后将/kernel/security下的capability模块安装上。如果你使用其它的版本，并且把capability编绎为模 块，请在/etc/init.d/tomcat5.sh的合适位置（你想使用第2行？）加上modprobe capability。 </p>
						<h2>3，设置tomcat的server.xml布署网站</h2>
						<p>如果你想让别人在浏览器中输入你的IP而不需要在IP后面加上“:端口号”就能访问你的网站的话，请将 </p>
						<pre>&lt;connector port="8080" maxthreads="150" minsparethreads="25" maxsparethreads="75" <br />	enablelookups="false" redirectport="8443" acceptcount="100" debug="0" <br />	connectiontimeout="20000" disableuploadtimeout="true"&gt;<br />&lt;/connector&gt;<br /></pre>
						<p>中的port="8080"改为port="80"，因为80是浏览器请求的默认端口。找到 </p>
						<pre>&lt;host name="localhost" debug="0" appbase="webapps" unpackwars="true" autodeploy="true" <br />	xmlvalidation="false" xmlnamespaceaware="false"&gt;<br />&lt;/host&gt;<br /></pre>
						<p>修改为使appBase="/home/tomcatweb"。并在其后面加上： </p>
						<pre>&lt;context path="" docbase="/home/tomcatweb" crosscontext="false" debug="0" reloadable="true"&gt;&lt;/context&gt;<br /></pre>
						<p>把你自己的index.jsp放在/home/tomcatweb目录下，然后在浏览器中输入http://127.0.0.1，你应该就能看到index.jsp的运行结果了。 </p>
						<h2>4，中文问题</h2>
						<p>tomcat并没有特殊的中文问题。而且大部分情况下的中文问题是因为用户根本就不会写JSP代码，甚至不会写HTML代码。 </p>
						<p>
								<strong>4.1 简单HTML文件的乱码问题</strong>
						</p>
						<p>一个HTML文件，里面包含有中文文字，如： </p>
						<pre>&lt;html&gt;<br />&lt;head&gt;<br />	&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;<br />&lt;/head&gt;<br />你好。<br />&lt;/html&gt;<br /></pre>
						<p>上面的标签告诉浏览器你的HTML文件使用的是UTF-8编码格式。请将UTF-8正确地设置为你的文本编辑器保存时的编码，否则，只有全英文HTML源码文件才能保证不出现乱码。 </p>
						<p>
								<strong>4.2 简单的JSP文件的乱码问题</strong>
						</p>
						<p>一个JSP文件，里面包含有中文文字，如： </p>
						<pre>&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />	&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;<br />&lt;/head&gt;<br />&lt;%<br />	out.println("你好。");<br />%&gt;<br />&lt;/html&gt;<br /></pre>
						<p>&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;标签告诉tomcat和java编绎器你的文件的编码是UTF-8格式的。 </p>
						<p>
								<strong>4.3 被包含的文件的内容是乱码</strong>
						</p>
						<p>如果你的parent.jsp文件中使用&lt;jsp:include page="child.jsp" &gt;文件包含了child.jsp，请在parent.jsp和child.jsp文件中都指定了正确的&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;（改UTF-8为正确的编码），两者可以不一样。&lt;/jsp:include&gt; </p>
						<p>如果你的parent.jsp文件中使用&lt;%@ include file="child.jsp" %&gt;文件包含了child.jsp，请保证parent.jsp和child.jsp是相同的编码，并且在parent.jsp中设置了正确的 &lt;%@ page contentType="text/html; charset=UTF-8" %&gt;（改UTF-8为正确的编码）。不要在child.jsp中设置&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;，否则，tomcat会出错（不总是）。 </p>
				</div>
		</div>
<img src ="http://www.blogjava.net/zilong/aggbug/107619.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zilong/" target="_blank">阿伟</a> 2007-03-31 11:50 <a href="http://www.blogjava.net/zilong/articles/107619.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Debian Linux安装软件</title><link>http://www.blogjava.net/zilong/articles/107618.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Sat, 31 Mar 2007 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/zilong/articles/107618.html</guid><wfw:comment>http://www.blogjava.net/zilong/comments/107618.html</wfw:comment><comments>http://www.blogjava.net/zilong/articles/107618.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zilong/comments/commentRss/107618.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zilong/services/trackbacks/107618.html</trackback:ping><description><![CDATA[
		<h4 class="TextColor1" id="subjcns!A7DF246804AD47BB!140" style="MARGIN-BOTTOM: 0px">在Debian Linux安装软件</h4>
		<div id="msgcns!A7DF246804AD47BB!140">
				<div>
						<p>在Debian Linux安装软件首先必须配置好安装源。有几个程序可以用来安装软件：apt-get, aptitude, synaptic。apt-get是命令行工具，aptitude是字符图形界面工具，synaptic是图形界面工具。 </p>
				</div>
				<div>
						<p>
						</p>
						<p>在Debian Linux安装软件首先必须配置好安装源。有几个程序可以用来安装软件：apt-get, aptitude, synaptic。apt-get是命令行工具，aptitude是字符图形界面工具，synaptic是图形界面工具。 </p>
						<h3>1. 配置安装源</h3>
						<p>/etc/apt/sources.list文件可以这样写 </p>
						<pre>deb ftp://debian.ustc.edu.cn/debian stable main non-free contrib<br />deb ftp://debian.ustc.edu.cn/debian testing main non-free contrib<br /></pre>
						<p>下面我们将以安装firefox浏览器来解释3个安装工具的用法。 </p>
						<h3>2. 使用apt-get安装软件</h3>
						<p>在终端中输入su和密码后，以root身份运行apt-get update更新软件列表，然后运行apt-get install firefox就可以安装上firefox浏览器了。 </p>
						<h3>3. 使用aptitude安装软件</h3>
						<p>用apt-get安装软件固然方便，但是，有时候你必须记住软件的全称和具体版本号，用aptitude就不需要了。 </p>
						<p>在终端中输入su和密码后，以root身份运行aptitude，用鼠标选择Actions菜单--&gt;Update package list更新软件列表或者你按"u"键。然后按"/"键，弹出搜索窗口。输入fire回车，将高亮显示第一个被搜索到的名字含有fire的软件。如果第一 个不是firefox，按"n"(next)键继续搜索下一个。找到后按SHIFT+"+"选定，再按"g"(go)就安装上了。升级软件也是同样的方 法。 </p>
						<h3>
								<span style="FONT-WEIGHT: bold">4. 使用synaptic安装软件</span>
						</h3>
						<p>你可以需要使用前面的两种方法中的一种安装synaptic。 </p>
						<p>从系统菜单中运行Synaptic Package Manager运行synaptic，输入root密码后就可以使用了。从Edit菜单中选择Reload Package Information更新软件列表。用鼠标点击任意一个软件，以激活软件列表框，然后直接按键盘输入的fire---搜索。按键盘上的向下箭头来搜索下 一个。找到后按回车，然后按工具栏上的Apply就安装上了。 </p>
						<p>其它的操作你自己看菜单和帮助。 <br />查看截图<font color="#0000ff"></font><a href="http://www.ideawu.net/ideablog/viewarticle.jsp?artid=98"><font color="#0000ff">http://www.ideawu.net/ideablog/viewarticle.jsp?artid=98</font></a></p>
				</div>
		</div>
<img src ="http://www.blogjava.net/zilong/aggbug/107618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zilong/" target="_blank">阿伟</a> 2007-03-31 11:43 <a href="http://www.blogjava.net/zilong/articles/107618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发人员行走Unix的随身四艺</title><link>http://www.blogjava.net/zilong/articles/107616.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Sat, 31 Mar 2007 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/zilong/articles/107616.html</guid><wfw:comment>http://www.blogjava.net/zilong/comments/107616.html</wfw:comment><comments>http://www.blogjava.net/zilong/articles/107616.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zilong/comments/commentRss/107616.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zilong/services/trackbacks/107616.html</trackback:ping><description><![CDATA[
		<h4 class="TextColor1" id="subjcns!A7DF246804AD47BB!187" style="MARGIN-BOTTOM: 0px">开发人员行走Unix的随身四艺</h4>
		<div id="msgcns!A7DF246804AD47BB!187">
				<div>
						<u>
								<font color="#800080"> 开发人员行走Unix的随身四艺</font>
						</u>
						<div>
								<p>   作者：<a href="http://blog.csdn.net/calvinxiu"><u><font color="#0000ff">江南白衣</font></u></a>，原文出处： <a href="http://blog.csdn.net/calvinxiu/archive/2007/01/27/1495778.aspx"><u><font color="#800080">http://blog.csdn.net/calvinxiu/archive/2007/01/27/1495778.aspx</font></u></a>，转载请保留出处。 </p>
								<p>    Unix系统永远只会越来越多，开发人员就没必要特意学习它们的安装、配置和管理了，就全部交给集成人员吧。<br />    但开发人员行走于Unix之间，依然有四样东西要熟练。 </p>
								<h2>    一、VI</h2>
								<p>    虽然Unix上的文本编辑器已经越来越好用，但不在Console前面，网速也不够连XWindows的时候，还是要依赖VI。<br />    回想VI的时代背景，发现VI对开发人员已经周到得离谱了，热键多到你双手不离键盘就能完成大半编辑工作。<br />    建议自己制作一张自己认为有用，但又经常忘记的命令的sheet，拿出考试的力气把它背熟。 </p>
								<h2>    二、文本处理</h2>
								<p>       开发人员在Unix下干得最多的除了Make和除Bug外，大概就是处理日志文件、业务文件进行查错和统计了。<br />     只会more和grep是不够的，开发老手会把awk,sed,grep,sort,uniq,wc,head,tail这些文本处理命令，通过管道玩具式的拆卸拼装，最后完成一件原本以为非编写大段代码不可的工作。周到的参数设定，让人再一次感叹那个简单的年代，这样复杂到极致的设计.......怪不得《Unix 编程艺术》的作者有那么骄傲的自觉。 </p>
								<p>     比如车东的每月访问TOP10 统计脚本： </p>
								<div>
										<div>
												<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
												<span style="COLOR: #000000">awk -F '</span>
												<span style="COLOR: #000000">
												</span>
												<span style="COLOR: #000000">t' '{</span>
												<span style="COLOR: #0000ff">print</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">$</span>
												<span style="COLOR: #000000">4</span>
												<span style="COLOR: #000000">}' 2004_2</span>
												<span style="COLOR: #000000">.</span>
												<span style="COLOR: #000000">txt| grep chedong</span>
												<span style="COLOR: #000000">.</span>
												<span style="COLOR: #000000">com</span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000">tech</span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000">|</span>
												<span style="COLOR: #000000">uniq -c|</span>
												<span style="COLOR: #0000ff">sort</span>
												<span style="COLOR: #000000"> -rn|head -</span>
												<span style="COLOR: #000000">10</span>
												<span style="COLOR: #000000"> </span>
										</div>
								</div>
								<ul>
										<li>awk -F '\t' 将2004_2.txt访问纪录文件，用TAB分割，打印第4列 
</li>
										<li>grep chedong.com/tech 只列出chedong.com/tech笔记目录下的文档 
</li>
										<li>uniq -c 汇总计数 
</li>
										<li>sort -rn 按数值排序 
</li>
										<li>head -10 TOP 10<br /></li>
								</ul>
								<h2>    三、Bash Shell 编程</h2>
								<p>    编程是开发人员的天赋本能，不论什么语言，看看参考手册应该就能上手。 </p>
								<p>    见<a href="http://xiaowang.net/bgb-cn/index.html"><u><font color="#0000ff">Bash新手指南中文版</font></u></a>，一份写给新手看的包含很多老手知识的指南。 </p>
								<h2>    四、Make与AutoMake</h2>
								<p>    用过Java的Ant后，想起Make就觉得很烦，很厌倦。总归还是会的，见<a href="http://www.linuxsir.org/main/doc/gnumake/GNUmake_v3.80-zh_CN_html/"><u><font color="#0000ff">GNU Make 3.8.0 中文手册</font></u></a>     </p>
								<p>     不过即使make已经精通到变态，每个人写出来的MakeFile还是千奇百怪，再看看开源项目们个个都是automake+autoconf了，我们自己也长进一点吧。手工编写MakeFile.am，让auotomake变成MakeFile.in，再让用户./configure 生成最终的MakeFile。<br />    <br />    生成的MakeFile既能跨越平台，又是标准的写法，最重要的是，编写MakeFile.am的工作量比MakeFile少多了，只要简单的定义目标文件，先要处理的子目录，需要的源文件，头文件与库文件就可以了。如果看完下面两篇还是不懂，直接看ACE里的Makefile.am就懂了。 </p>
								<p>    入门文章：<a href="http://www.ccw.com.cn/htm/app/linux/develop/01_7_25_7.asp"><u><font color="#0000ff">使用AutoMake轻松生成Makefile</font></u></a> <br />    进阶文章：<a><u><font color="#0000ff">IBM DW:</font></u></a><a><u><font color="#0000ff">例</font></u></a><a><u><font color="#0000ff">解 autoconf 和 automake 生成 Makefile 文件</font></u></a><br />    完整的免费电子书： <a href="http://sources.redhat.com/autobook/download.html"><u><font color="#0000ff">GNU Autoconf, Automake and Libtool</font></u></a></p>
								<p>    另外，ACE里还贡献了一个更厉害的<a href="http://www.ociweb.com/products/mpc"><u><font color="#0000ff">MPC(Makefile, Project, and Workspace Creator )</font></u></a>，  自动的生成了MakeFile.am或者VC的项目文件。<br /><br /></p>
								<h2>    附录A：我的VI易忘命令手册</h2>
								<p>
										<strong>    上下左右：</strong>
										<br />    ctrl+u/d 上下半屏，ctrl+f/b,上下一屏<br />    H/G屏幕头/文章末 ，0/$ 行首行末<br />    <br /><strong>    增删改：</strong><br />    yy/dd 复制/删除 一行，p/P：将yy/dd的内容paste出来<br />    I/A 在行首/末添加， o/O 开新行，d0/d$ 删除到行首，行末<br />    u:undo </p>
								<p>    <strong>查：</strong><br />    ? 向前查找， n/N 重复上一次查找 </p>
								<h2>附录B: 文本处理命令小结</h2>
								<p>   <strong>awk：</strong>处理结构化的文本(每行以固定符号分成若干列)，提取打印某些字段，如：<br />    ls -l|awk '{print $1}'  --将ls-l结果的第一列打印出来<br />    awk -F":" '{print $1"  "$6}' /etc/passwd ，将以:分割的/etc/passwd文件的第1，6列打印出来，中间以空格分开<br />    详见<a><u><font color="#0000ff">IBM DW中国的AWK实例</font></u></a>(共3篇) 或 <a href="http://xiaowang.net/bgb-cn/ch06.html"><u><font color="#0000ff">Bash新手指南中文版第6章</font></u></a>。 </p>
								<p>    <strong>grep：</strong>过滤，大家用得最多的命令，支持正则表达式。参数有：<br />    -i忽略大小写，-n显示line number，-c 统计在每个文件的出现次数，-l只显示符合的文件的名字。 </p>
								<p>    <strong>sed：</strong>流编辑器，主要用于替换，如：<br />    sed -e '1,10s/foo/bar/g' myfile2.txt 将1到10行的文本中的foo 替换成bar,s代表替换,g代表全局替换 <br />    支持正则的替换字符串，可以只替换某个范围内的内容。<br />    用法不算简单,详见<a href="http://www.ibm.com/developerworks/cn/linux/shell/sed/sed-1/index.html"><u><font color="#0000ff">IBM DW中国的Sed实例</font></u></a>(共3篇)或 <a href="http://xiaowang.net/bgb-cn/ch05.html"><u><font color="#0000ff">Bash新手指南中文版第5章</font></u></a>。<br />    <br />    <strong>sort：</strong>排序，参数有：<br />    -r逆序, -n 数字比较 , -M 日历比较 Feb,Dec, -f 忽略大小写<br />    同样支持结构化文件，如<br />    sort -t : -k 1,1 /etc/passwd，以: 分割,只按第1列排序<br />    sort -t : -k 1,1 -k2.2,3.4 /etc/passwd ，以:分割,先按第1列排序,再按第2列的第二个字符到第3列的第4个字符排序。 </p>
								<p>    <strong>uniq：</strong>去除重复行。<br />    除了正常用法外，还有-c统计重复次数，和-u （唯一）和 -d （重复）两个参数,只显示唯一的和重复的行。 </p>
								<p>    <strong>wc：</strong> 统计。<br />    -l 行,-m 字符,-w 单词 </p>
								<p> </p>
						</div>
				</div>
		</div>
<img src ="http://www.blogjava.net/zilong/aggbug/107616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zilong/" target="_blank">阿伟</a> 2007-03-31 11:41 <a href="http://www.blogjava.net/zilong/articles/107616.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>