<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>前后求索 &#187; Unix</title>
	<atom:link href="http://dwfeng.net/blog/category/unix/feed" rel="self" type="application/rss+xml" />
	<link>http://dwfeng.net/blog</link>
	<description>self.生活{&#124;x&#124; 快乐 &#38;&#38; 幸福}</description>
	<lastBuildDate>Tue, 16 Jun 2009 15:56:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>如何在Mac系统里分割flac音乐文件，并转换为wav</title>
		<link>http://dwfeng.net/blog/2009/06/17/how-to-seperate-flac-in-ma.html</link>
		<comments>http://dwfeng.net/blog/2009/06/17/how-to-seperate-flac-in-ma.html#comments</comments>
		<pubDate>Tue, 16 Jun 2009 15:18:41 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://dwfeng.net/blog/?p=299</guid>
		<description><![CDATA[FLAC是Free Lossless Audio Codec的缩写，中文可解释为无损音频压缩编码。不同于其他有损压缩如MP3，它不会破坏任何原有的音频信息，所以现在它已被很多软件及硬件产品所支持。但Mac不支持。虽然可以用VLC来播放FLAC文件，但因为我们往往得到的是一个Flac文件包含一张CD的音频，使用起来很不方便，也没办法进行再编辑。 现在有一些Mac上带有GUI界面的音频解/编码可以把flac文件转换成wav或mp3文件，但是还是不能按照一首歌一个文件的模式分割flac文件。我趁着周末的时候，在网上查了查，发现Linux/Unix系统下的两个命令行软件可以解决这个问题。 虽然我使用的是Mac，但是借用Macports，就可以实现把Linux上的工具安装到Mac上。好了，下面就说说步骤。 安装flac，flac官方网站提供了Mac版本的flac工具，安装以后就可以使用flac命令转换flac音频文件了。 安装Macports，安装了它以后，编译，安装和更新 X11/Aqua 开源软件了。 配置PATH: 安装完macports以后需要设置系统PATH，使port可以在Terminal里执行。关于如何修改PATH，Google一下就行了，很简单。 然后使用port安装cuetools和shntool两个工具。命令如下： sudo port install cuetools sudo port install shntool 安装成功后，就可以使用这两个命令来分割flac文件了。不过有个前提，必须有相应的cue文件。假设我们有一个x.flac的话，就可以使用如下的组合命令分割它了： cuebreakpoints x.cue &#124; shnsplit -o flac x.flac 最后，使用flac命令，把分割好的文件转换为wav文件。flac -d *.flac 虽然有设置点儿麻烦，但是使用命令行来完成一些任务有的时候是很快的。特别是批量处理文件的时候。另外，使用命令是不是也比使用GUI工具更酷一点儿呢！]]></description>
			<content:encoded><![CDATA[<p>FLAC是Free Lossless Audio Codec的缩写，中文可解释为无损音频压缩编码。不同于其他有损压缩如MP3，它不会破坏任何原有的音频信息，所以现在它已被很多软件及硬件产品所支持。但Mac不支持。虽然可以用VLC来播放FLAC文件，但因为我们往往得到的是一个Flac文件包含一张CD的音频，使用起来很不方便，也没办法进行再编辑。</p>
<p>现在有一些Mac上带有GUI界面的音频解/编码可以把flac文件转换成wav或mp3文件，但是还是不能按照一首歌一个文件的模式分割flac文件。我趁着周末的时候，在网上查了查，发现Linux/Unix系统下的两个命令行软件可以解决这个问题。</p>
<p>虽然我使用的是Mac，但是借用Macports，就可以实现把Linux上的工具安装到Mac上。好了，下面就说说步骤。</p>
<ol>
<li>安装<a title="flac tools" href="http://sourceforge.net/project/showfiles.php?group_id=13478&amp;package_id=32318" target="_self">flac</a>，flac官方网站提供了Mac版本的flac工具，安装以后就可以使用flac命令转换flac音频文件了。</li>
<li>安装<a title="macports" href="http://svn.macports.org/repository/macports/downloads/MacPorts-1.7.1/MacPorts-1.7.1-10.5-Leopard.dmg" target="_self">Macports</a>，安装了它以后，编译，安装和更新 X11/Aqua 开源软件了。</li>
<li>配置PATH: 安装完macports以后需要设置系统PATH，使port可以在Terminal里执行。关于如何修改PATH，Google一下就行了，很简单。</li>
<li>然后使用port安装cuetools和shntool两个工具。命令如下：</li>
<blockquote><p><strong>sudo port install cuetools<br />
sudo port install shntool</strong></p></blockquote>
<li>安装成功后，就可以使用这两个命令来分割flac文件了。不过有个前提，必须有相应的cue文件。假设我们有一个x.flac的话，就可以使用如下的组合命令分割它了：<br />
<blockquote><p><strong>cuebreakpoints x.cue | shnsplit -o flac x.flac</strong></p></blockquote>
</li>
<li>最后，使用flac命令，把分割好的文件转换为wav文件。<strong>flac -d *.flac</strong></li>
</ol>
<p>虽然有设置点儿麻烦，但是使用命令行来完成一些任务有的时候是很快的。特别是批量处理文件的时候。另外，使用命令是不是也比使用GUI工具更酷一点儿呢！</p>
]]></content:encoded>
			<wfw:commentRss>http://dwfeng.net/blog/2009/06/17/how-to-seperate-flac-in-ma.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>在Windows控制台里直接用Cygwin的命令。</title>
		<link>http://dwfeng.net/blog/2008/10/23/how-to-use-cygwin-command-in-windows-console.html</link>
		<comments>http://dwfeng.net/blog/2008/10/23/how-to-use-cygwin-command-in-windows-console.html#comments</comments>
		<pubDate>Thu, 23 Oct 2008 02:30:07 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://dwfeng.net/blog/?p=159</guid>
		<description><![CDATA[虽然个人很喜欢基于Unix的系统，比如Linux和Mac OSX, 但工作的时候还是不得不用Windows，Windows在商业应用上的压倒优势还是毋庸置疑的。有的时候，我还是很舍不得Unix下那些非常好的命令行工具，和Unix比起来Windows的命令行简直就是鸡肋。要是能把Unix的命令行工具放到Windows里用该有多好啊！其实，早就有人想到了这个，cygwin就是其中最有名的，我个人认为也是最好的。安装了cygwin以后，几乎所有的Unix命令行工具都可以在Windows里使用了。 但是，还是有一点儿缺憾，当你想使用Unix命令的时候，必须单独启动Cygwin，这时候还想同时用用Windows的命令，就不得不再开一个Windows命令行窗口。还是有点儿麻烦。有没有解决办法呢？ 有，还特简单。如果你学过Java，就应该知道在Windows安装Java以后需要设置环境变量吧。对，只要把cygwin.exe文件也加到环境变量里，就可以在Windows的命令行窗口里同时使用Windows和Unix的命令了。就这么简单。 步骤如下： 假设cygwin被安装在C：下面，复制cygwin的bin文件夹的全路径，比如C:\Cygwin\bin 打开&#8221;我的电脑&#8221;的属性。在&#8221;我的电脑&#8221;上点右键，选择属性。出现&#8221;系统属性&#8221;。再选择&#8221;详细设置&#8221;, 点击&#8221;环境变量&#8221;。 在环境变量里找到Path环境变量，双击打开它。 在一行的最后加一个&#8221;;&#8221;号，这是用来区别不同的命令路径的，然后把刚才复制的Cygwin路径(C:\Cygwin\bin)粘贴到&#8221;;&#8221;号后面，然后&#8221;确定&#8221;, 关闭&#8221;系统属性&#8221;窗口。 好了，搞定，赶紧试一试吧。]]></description>
			<content:encoded><![CDATA[<p>虽然个人很喜欢基于Unix的系统，比如Linux和Mac OSX, 但工作的时候还是不得不用Windows，Windows在商业应用上的压倒优势还是毋庸置疑的。有的时候，我还是很舍不得Unix下那些非常好的命令行工具，和Unix比起来Windows的命令行简直就是鸡肋。要是能把Unix的命令行工具放到Windows里用该有多好啊！其实，早就有人想到了这个，<a href="http://www.cygwin.com/">cygwin</a>就是其中最有名的，我个人认为也是最好的。安装了cygwin以后，几乎所有的Unix命令行工具都可以在Windows里使用了。<br />
但是，还是有一点儿缺憾，当你想使用Unix命令的时候，必须单独启动Cygwin，这时候还想同时用用Windows的命令，就不得不再开一个Windows命令行窗口。还是有点儿麻烦。有没有解决办法呢？<br />
有，还特简单。如果你学过Java，就应该知道在Windows安装Java以后需要设置环境变量吧。对，只要把cygwin.exe文件也加到环境变量里，就可以在Windows的命令行窗口里同时使用Windows和Unix的命令了。就这么简单。</p>
<p>步骤如下：</p>
<ol>
<li>假设cygwin被安装在C：下面，复制cygwin的bin文件夹的全路径，比如C:\Cygwin\bin</li>
<li>打开&#8221;我的电脑&#8221;的属性。在&#8221;我的电脑&#8221;上点右键，选择属性。出现&#8221;系统属性&#8221;。再选择&#8221;详细设置&#8221;, 点击&#8221;环境变量&#8221;。</li>
<li>在环境变量里找到Path环境变量，双击打开它。</li>
<li>在一行的最后加一个&#8221;;&#8221;号，这是用来区别不同的命令路径的，然后把刚才复制的Cygwin路径(C:\Cygwin\bin)粘贴到&#8221;;&#8221;号后面，然后&#8221;确定&#8221;, 关闭&#8221;系统属性&#8221;窗口。</li>
</ol>
<p>好了，搞定，赶紧试一试吧。</p>
<div id="attachment_169" class="wp-caption alignnone" style="width: 510px"><a href="http://dwfeng.net/blog/wp-content/uploads/2008/10/cygwininwindowsconsole.jpg" rel="shadowbox[post-159];player=img;"><img class="size-full wp-image-169" title="cygwininwindowsconsole" src="http://dwfeng.net/blog/wp-content/uploads/2008/10/cygwininwindowsconsole.jpg" alt="cygwin command in windows console." width="500" height="361" /></a><p class="wp-caption-text">cygwin unix command in windows console.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://dwfeng.net/blog/2008/10/23/how-to-use-cygwin-command-in-windows-console.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何自动备份虚拟主机上的数据库</title>
		<link>http://dwfeng.net/blog/2008/04/16/howto-backup-db-on-hosting.html</link>
		<comments>http://dwfeng.net/blog/2008/04/16/howto-backup-db-on-hosting.html#comments</comments>
		<pubDate>Wed, 16 Apr 2008 09:24:24 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://dwfeng.net/blog/?p=47</guid>
		<description><![CDATA[虚拟主机（hosting）的日常维护中非常重要的一项就是备份数据库了。一旦你的网站发布以后，你的系统就有可能面对各种各样的攻击和不确定性。所以经常的定期备份显得尤为重要。我之前的一个域名下的blog就是因为自己的管理不善，没有进行及时有效的备份而使得数据全部丢失了。所以自从购买的新的Domain和虚拟主机以后，首先就对数据库的备份做一些必要的设置，总结如下，仅供借鉴和参考。 备份的方法有很多，各有利弊： 1. 一般的虚拟主机提供商都提供在线手动备份数据库的功能。可以下载数据库文件到本地或者存储在虚拟主机上。现在比较流行的CPanel都默认提供这种功能。 2. 系统自身的备份功能。比如wordpress的DB backup插件。它可以自动的定时进行数据库备份。特点就是简单易用，具有图形界面。只需要安装相应的插件，简单设置一下就行了。缺点就是只限于特定应用，并不是通用的方法。但鉴于很多人都是为了写Blog而购买虚拟主机，并且WordPress又是最流行的Blog系统。所以这也不失为一个简便方法。 3. 通过自己编写Shell脚本和Linux系统的Cron命令来进行备份。这个方法虽然稍微麻烦一些，但却是一个通用办法。与使用的应用程序无关。可制定性强。这个也是我今天要重点介绍的方法。 使用Shell脚本进行备份需要几个条件，首先需要你购买的虚拟主机支持SSH，即可以远程登录服务器并使用Shell，另外你的服务器还必须允许你使用Cron命令，这样就可能进行定期和自动备份。其次，这个方法只适用于Linux或Unix服务器。最后，就是需要懂得一点儿数据库和Shell的知识。 1. 需要是你的虚拟主机支持SSH，这个根据主机的不同而不同。具体方法可以和你自己的主机提供商联系。我这里以Bluehost为例，默认情况下，bluehost并不能使用SSH。你需要联系他们的客服。他们一般会要你提供你身份证明。确认开通以后，可以使用你喜欢的SSH工具连接你的服务器。Unix/Linux默认就有SSH，Windows必须安装相应程序（这就是我为什么讨厌Windows），我推荐Cygwin，它可以完全模拟Unix的环境。然后，输入下面的命令： ssh （你的用户名）@（你的域名或IP） 比如： ssh bush@abc.com 然后，输入密码，就可登录你的主机了。 2. 编写数据库备份Shell。我这里以Mysql和Bash为例，编写了一个简单的示例Shell，只需要稍作修改就可以用到你自己的主机上了。其实这里只用到了一个mysql程序，即mysqldump，命令的讲解请点击这里。 首先，创建备份目录。 $mkdir ~/backup/database 然后，把下面的代码写进一个Shell文件，比如~/backup/database/myDB-backup.sh #!/bin/bash USERNAME=your home folder BACKUP_DIR=/home/$USERNAME/backup/database PASSWORD=your password DATE_STRING=$(date +%Y)$(date +%m)$(date +%d) FILE_NAME=$DATE_STRING.sql.bz2 mysqldump --add-drop-table --all-databases -u $USERNAME -p$PASSWORD &#124; bzip2 -c &#62; $BACKUP_DIR/$FILE_NAME 最后，要使刚才写的Shell可执行，运行下面的命令： $chmod 755 ~/backup/database/myDB-backup.sh 3. 创建Cron。这个步骤与具体服务商的设置有关。如果使用Cpanel的话大体相同。具体请查看你自己虚拟主机的帮助。一般的在CPanel里，你就可以指定刚才创建的Shell(Command to run)，然后指定Shell定期运行的时间，比如每天午夜12点。 [...]]]></description>
			<content:encoded><![CDATA[<p>虚拟主机（hosting）的日常维护中非常重要的一项就是备份数据库了。一旦你的网站发布以后，你的系统就有可能面对各种各样的攻击和不确定性。所以经常的定期备份显得尤为重要。我之前的一个域名下的blog就是因为自己的管理不善，没有进行及时有效的备份而使得数据全部丢失了。所以自从购买的新的Domain和虚拟主机以后，首先就对数据库的备份做一些必要的设置，总结如下，仅供借鉴和参考。</p>
<p>备份的方法有很多，各有利弊：</p>
<p><strong>1. </strong>一般的虚拟主机提供商都提供在线手动备份数据库的功能。可以下载数据库文件到本地或者存储在虚拟主机上。现在比较流行的CPanel都默认提供这种功能。</p>
<p><strong>2. </strong>系统自身的备份功能。比如<a href="http://wordpress.org">wordpress</a>的<a href="http://www.ilfilosofo.com/blog/wp-db-backup/">DB backup插件</a>。它可以自动的定时进行数据库备份。特点就是简单易用，具有图形界面。只需要安装相应的插件，简单设置一下就行了。缺点就是只限于特定应用，并不是通用的方法。但鉴于很多人都是为了写Blog而购买虚拟主机，并且WordPress又是最流行的Blog系统。所以这也不失为一个简便方法。</p>
<p><strong>3. </strong>通过自己编写Shell脚本和Linux系统的Cron命令来进行备份。这个方法虽然稍微麻烦一些，但却是一个通用办法。与使用的应用程序无关。可制定性强。这个也是我今天要重点介绍的方法。</p>
<p>使用Shell脚本进行备份需要几个条件，首先需要你购买的虚拟主机支持SSH，即可以远程登录服务器并使用Shell，另外你的服务器还必须允许你使用<a href="http://fanqiang.chinaunix.net/a1/b5/20010925/1500001350.html">Cron命令</a>，这样就可能进行定期和自动备份。其次，这个方法只适用于Linux或Unix服务器。最后，就是需要懂得一点儿数据库和Shell的知识。</p>
<p><strong>1. </strong>需要是你的虚拟主机支持SSH，这个根据主机的不同而不同。具体方法可以和你自己的主机提供商联系。我这里以<a href="http://bluehost.com">Bluehost</a>为例，默认情况下，bluehost并不能使用SSH。你需要联系他们的客服。他们一般会要你提供你身份证明。确认开通以后，可以使用你喜欢的SSH工具连接你的服务器。Unix/Linux默认就有SSH，Windows必须安装相应程序（这就是我为什么讨厌Windows），我推荐<a href="http://www.cygwin.com">Cygwin</a>，它可以完全模拟Unix的环境。然后，输入下面的命令：<br />
<code style="font-size: 12px; font-family: Courier New; background-color: #ccc;"><br />
<strong>ssh</strong> （你的用户名）<strong>@</strong>（你的域名或IP）<br />
</code></p>
<p>比如： ssh bush@abc.com</p>
<p>然后，输入密码，就可登录你的主机了。</p>
<p><strong>2. </strong>编写数据库备份Shell。我这里以Mysql和Bash为例，编写了一个简单的示例Shell，只需要稍作修改就可以用到你自己的主机上了。其实这里只用到了一个mysql程序，即mysqldump，命令的讲解请点击<a href="http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html#mysqldump">这里</a>。</p>
<p>首先，创建备份目录。<br />
<code style="font-size: 12px; font-family: Courier New; background-color: #ccc;"><br />
$mkdir ~/backup/database<br />
</code></p>
<p>然后，把下面的代码写进一个Shell文件，比如~/backup/database/myDB-backup.sh</p>
<p><code style="font-size: 12px; font-family: Courier New; background-color: #ccc;"><br />
#!/bin/bash<br />
USERNAME=<strong style="color: green;">your home folder</strong><br />
BACKUP_DIR=/home/$USERNAME/backup/database<br />
PASSWORD=<strong style="color: green;">your password</strong><br />
DATE_STRING=$(date +%Y)$(date +%m)$(date +%d)<br />
FILE_NAME=$DATE_STRING.sql.bz2<br />
mysqldump --add-drop-table --all-databases -u $USERNAME -p$PASSWORD | bzip2 -c &gt; $BACKUP_DIR/$FILE_NAME</code></p>
<p>最后，要使刚才写的Shell可执行，运行下面的命令：</p>
<p>$chmod 755 ~/backup/database/myDB-backup.sh</p>
<p><strong>3. </strong>创建Cron。这个步骤与具体服务商的设置有关。如果使用Cpanel的话大体相同。具体请查看你自己虚拟主机的帮助。一般的在CPanel里，你就可以指定刚才创建的Shell(Command to run)，然后指定Shell定期运行的时间，比如每天午夜12点。</p>
<p><a href="http://dwfeng.net/blog/wp-content/uploads/2008/04/cronjob.jpg" rel="shadowbox[post-47];player=img;"><img class="alignnone size-medium wp-image-48" title="cronjob" src="http://dwfeng.net/blog/wp-content/uploads/2008/04/cronjob-300x174.jpg" alt="" width="300" height="174" /></a></p>
<p>其实，Cron与mysqldump一样是Unix/Linux里的一个工具。但因为是虚拟主机，没有使用cron的权限。只能通过CPanel之类的图形界面来定制你自己的Cron job。如果是独立主机的话，不存在这个问题。</p>
<p>好了，通过上面的是设置，你的数据库都会定期的备份到你指定的文件夹下，并保存为bz2压缩格式。文件名会是你的用户名加上备份日期：</p>
<p>像这样：Bush20080416.sql.bz2</p>
]]></content:encoded>
			<wfw:commentRss>http://dwfeng.net/blog/2008/04/16/howto-backup-db-on-hosting.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/etc/passwd文件内容的意义</title>
		<link>http://dwfeng.net/blog/2008/04/10/etc-passwd.html</link>
		<comments>http://dwfeng.net/blog/2008/04/10/etc-passwd.html#comments</comments>
		<pubDate>Thu, 10 Apr 2008 08:48:43 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://dwfeng.net/blog/?p=43</guid>
		<description><![CDATA[以前学过的Linux系统管理知识，有好多的忘记了。不经常用就是记不住啊。今天复习一个。 /etc/passwd是Linux系统里用来记录系统用户信息的文件。非常重要，所以只有Root用户才有权限修改，但是一般的情况下，普通的用户是可以看的。下面是passwd文件中一行的格式： 1. 用户名，最大23个字符。 2. 密码，『x』表示密码经过加密了。并以加密形式存储在/etc/shadow文件夹下。 3. 用户ID（User ID）。0代表Root. 4. 组ID（Group ID）。 5. 用户ID信息。就是描述这个用户是什么样的用户。也可省略不写。 6. 用户Home目录的位置。一般情况下是/home/用户名。当然也可以改成其他的目录。 7. 表示该用户默认使用什么Shell。这里是Bash，也可以是CShell，KShell等。 知道了passwd文件的意义以后，可以通过它查到很多信息。比如，我想知道当前这个Unix系统里有多少个用户，可以使用下面的命令（假设用户Home目录都在/home下）： grep -i /home/ /etc/passwd  #显示所有用户 grep -i /home/ /etc/passwd &#124; wc -l  #显示用户 图片来源： http://www.cyberciti.biz/faqs/uploaded_images/passwd-file-791527.png]]></description>
			<content:encoded><![CDATA[<p>以前学过的Linux系统管理知识，有好多的忘记了。不经常用就是记不住啊。今天复习一个。</p>
<p><strong>/etc/passwd</strong>是Linux系统里用来记录系统用户信息的文件。非常重要，所以只有Root用户才有权限修改，但是一般的情况下，普通的用户是可以看的。下面是passwd文件中一行的格式：</p>
<p><a href="http://dwfeng.net/blog/wp-content/uploads/2008/04/passwd-file.jpg" rel="shadowbox[post-43];player=img;"><img class="alignnone size-full wp-image-44" title="passwd-file" src="http://dwfeng.net/blog/wp-content/uploads/2008/04/passwd-file.jpg" alt="etc-passwd" width="320" height="55" /></a></p>
<p><strong>1. </strong>用户名，最大23个字符。<br />
<strong>2. </strong>密码，『x』表示密码经过加密了。并以加密形式存储在/etc/shadow文件夹下。<br />
<strong>3. </strong>用户ID（User ID）。0代表Root.<br />
<strong>4. </strong>组ID（Group ID）。<br />
<strong>5. </strong>用户ID信息。就是描述这个用户是什么样的用户。也可省略不写。<br />
<strong>6. </strong>用户Home目录的位置。一般情况下是/home/用户名。当然也可以改成其他的目录。<br />
<strong>7. </strong>表示该用户默认使用什么Shell。这里是Bash，也可以是CShell，KShell等。</p>
<p>知道了passwd文件的意义以后，可以通过它查到很多信息。比如，我想知道当前这个Unix系统里有多少个用户，可以使用下面的命令（假设用户Home目录都在/home下）：<code style="font-family: Courier New; font-size: 12px; background-color: gray;"><br />
grep -i /home/ /etc/passwd  #显示所有用户<br />
grep -i /home/ /etc/passwd | wc -l  #显示用户</code></p>
<p>图片来源： <a href="http://www.cyberciti.biz/faqs/uploaded_images/passwd-file-791527.png" rel="shadowbox[post-43];player=img;">http://www.cyberciti.biz/faqs/uploaded_images/passwd-file-791527.png</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dwfeng.net/blog/2008/04/10/etc-passwd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Shell里列出文件名和路径的几种方法</title>
		<link>http://dwfeng.net/blog/2008/03/27/list_filename_path_in_shell.html</link>
		<comments>http://dwfeng.net/blog/2008/03/27/list_filename_path_in_shell.html#comments</comments>
		<pubDate>Thu, 27 Mar 2008 12:02:28 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://dwfeng.net/blog/2008/03/27/%e5%9c%a8shell%e9%87%8c%e5%88%97%e5%87%ba%e6%96%87%e4%bb%b6%e5%90%8d%e5%92%8c%e8%b7%af%e5%be%84%e7%9a%84%e5%87%a0%e7%a7%8d%e6%96%b9%e6%b3%95/</guid>
		<description><![CDATA[关于如何列出指定路径里的文件和相对路径，这个问题看上去很简单。其实还是有一些技巧的。简单的用ls命令得出的输出格式，有的时候不是我们想要的。 用&#8221;ls -R&#8221;显示出来的结果格式是这样： $ ls -R sources sources: 1.2 1.txt 2.txt one temp tmp sources/1.2: sources/one: two sources/one/two: x.txt y.txt z.txt sources/temp: 虽然这样的格式，看起来比较清晰，不过要是进一步做处理的话就不太方便了。比如，我们要把一个目录的文件和它所在的路径都找出来，并且不显示空目录的话，用&#8221;ls -R&#8221;就不行了。 这是我们就可以用find命令。 $ find ./sources ! -type d -print ./sources/1.txt ./sources/2.txt ./sources/one/two/x.txt ./sources/one/two/y.txt ./sources/one/two/z.txt ./sources/tmp 这种格式，处理起来就方便多了。 下面是用find来显示文件路径和文件名的几种常用组合： find / -type d -print (只显示路径) find / -type l -print (只显示soft link) find / [...]]]></description>
			<content:encoded><![CDATA[<p>关于如何列出指定路径里的文件和相对路径，这个问题看上去很简单。其实还是有一些技巧的。简单的用ls命令得出的输出格式，有的时候不是我们想要的。</p>
<p>用&#8221;ls -R&#8221;显示出来的结果格式是这样：</p>
<p><strong>$ ls -R sources<br />
sources:<br />
1.2 1.txt 2.txt one temp tmp<br />
sources/1.2:<br />
sources/one:<br />
two<br />
sources/one/two:<br />
x.txt y.txt z.txt<br />
sources/temp:</strong></p>
<p>虽然这样的格式，看起来比较清晰，不过要是进一步做处理的话就不太方便了。比如，我们要把一个目录的文件和它所在的路径都找出来，并且不显示空目录的话，用&#8221;ls -R&#8221;就不行了。</p>
<p>这是我们就可以用find命令。</p>
<p><strong>$ find ./sources ! -type d -print<br />
./sources/1.txt<br />
./sources/2.txt<br />
./sources/one/two/x.txt<br />
./sources/one/two/y.txt<br />
./sources/one/two/z.txt<br />
./sources/tmp</strong></p>
<p>这种格式，处理起来就方便多了。</p>
<p>下面是用find来显示文件路径和文件名的几种常用组合：</p>
<p><strong>find / -type d -print (只显示路径)<br />
find / -type l -print (只显示soft link)<br />
find / -type b -print (只显示block special files)<br />
find / -type f -print (只显示普通的文件)</strong></p>
<p>另外，也可以用！来加以修饰，</p>
<p><strong>find / ! -type d -print (列出目录以外的所有东西)</strong></p>
<p>参考：</p>
<p><a href="http://www.unix.com/unix-advanced-expert-users/35349-list-all-files-full-path-file.html"><strong>http://www.unix.com/unix-advanced-expert-users/35349-list-all-files-full-path-file.html</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dwfeng.net/blog/2008/03/27/list_filename_path_in_shell.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Leopard中安装Mysql</title>
		<link>http://dwfeng.net/blog/2007/11/08/install-mysql-on-leopard.html</link>
		<comments>http://dwfeng.net/blog/2007/11/08/install-mysql-on-leopard.html#comments</comments>
		<pubDate>Thu, 08 Nov 2007 14:49:51 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://dwfeng.net/blog/2007/11/08/install-mysql-on-leopard/</guid>
		<description><![CDATA[在升级到Leopard以后, 忙于试验它的系统本身的新功能, 加上现在工作上又会到Java的&#8221;怀抱&#8221;. 所以至于它对RubyonRails开发环境的支持一直没有体验, 只是知道Leopard内置了Ruby和RubyonRails. 今天为了回顾曾经做过的Rails项目, 在自己的Leopard里配置了一下Ruby开发环境，才发现新版的MacOSX对于RubyonRails本身的支持提高了很多. 甚至可以说根本不需要什么配置, 直接拿来就可以用. 但是, 开发一个Web应用, 数据库是必可不少的. 由于Mysql对于Leopard并没有提供及时的支持, 所以现在的Mysql for Mac版本里的控制面板不能在Leopard里用了. 所以除了正常安装Mysql之外, 还需要在Terminal里做一下配置。 1. 启动Mysql服务. sudo /usr/local/mysql/bin/safe_mysqld 2. 新建一个文件夹, 用于指定sock.sudo mkdir /var/mysql/ 3. 建立sock链接sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock 参考文章: http://angry-fly.com/index.cfm/2007/10/26/Fix-for-MySQL-on-Leopard]]></description>
			<content:encoded><![CDATA[<p>在升级到Leopard以后, 忙于试验它的系统本身的新功能, 加上现在工作上又会到Java的&#8221;怀抱&#8221;. 所以至于它对RubyonRails开发环境的支持一直没有体验, 只是知道Leopard内置了Ruby和RubyonRails. 今天为了回顾曾经做过的Rails项目, 在自己的Leopard里配置了一下Ruby开发环境，才发现新版的MacOSX对于RubyonRails本身的支持提高了很多.  甚至可以说根本不需要什么配置, 直接拿来就可以用. 但是, 开发一个Web应用, 数据库是必可不少的. 由于Mysql对于Leopard并没有提供及时的支持, 所以现在的Mysql for Mac版本里的控制面板不能在Leopard里用了. 所以除了正常安装Mysql之外, 还需要在Terminal里做一下配置。</p>
<p>1. 启动Mysql服务. <span class="Apple-style-span" style="font-size: 12px; line-height: normal; font-family: Helvetica;">sudo /usr/local/mysql/bin/safe_mysqld</span></p>
<p>2. 新建一个文件夹, 用于指定sock.<span class="Apple-style-span" style="font-size: 12px; line-height: normal; font-family: Helvetica;">sudo mkdir /var/mysql/</span></p>
<p>3. 建立sock链接<span class="Apple-style-span" style="font-size: 12px; line-height: normal; font-family: Helvetica;">sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock</span></p>
<p>参考文章: <a title="http://angry-fly.com/index.cfm/2007/10/26/Fix-for-MySQL-on-Leopard" href="http://dwfeng.net">http://angry-fly.com/index.cfm/2007/10/26/Fix-for-MySQL-on-Leopard</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dwfeng.net/blog/2007/11/08/install-mysql-on-leopard.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
