适应得还挺快的。
只是有一个问题,始终没有眼见孩子中午吃饭如何,每天下午放学回家都特别能吃,也不知道是不是中午没有吃饱?哪天中午去学校看看。
有一点还是要肯定的,孩子在幼儿园里应该每天中午都睡了午觉,而星期天回到家里怎么都不会睡。
linux文本模式下w3m/0.5.1,zhcon0.2.6看big5网页
今天,在linux文本模式下(w3m/0.5.1,zhcon0.2.6)看一位朋友推荐的http://linux.vbird.org时,发现是big5网页,默认的配置不能正常查看。经试验,作下列改动解决:
在zhcon.conf里把:
|
改为:
|
在w3m/0.5.1中按"o"调出设置页面:
把
|
中的Display charset由:Chinese (EUC-CN, GB2312)改为:Chinese Taiwan (Big5, CP950)
但是,这样每次都要手工修改w3m中的设置,还没有找到自动的切换设置。有谁知道了告诉一下。
7.3. Other Comparison Operators
1、太复杂了,记不住的,有没有什么规则呀?
The == comparison operator behaves differently within a double-brackets test than within single brackets.
|
2、测试数值用[ "$a" -ne "$b" ],测试字符串用[ "$a" != "$b" ]。
3、Example 7-6. Testing whether a string is null通过几个例子反复说:测试字符串一定要用双引号把字符串变量括起来!从前面看,测试数值变量同样是把变量用双引号括起来的,这样,可以总结说,无论是数值变量和字符串变量都必须加双引号。
4、Example 7-7. zmore中测试文件类型的语句,不懂
|
5、复合比较:
1)、[[ condition1 && condition2 ]]相当于 [ "$exp1" -a "$exp2" ]
2)、在比较空字符串时,应该在有可能是空字符串的字符串前加上额外的字符,文中说:
|
英语疑问:
1、globbing
File globbing and word splitting take place.
2、Caution advised, however.
10 # Bash permits integer operations and comparisons on variables
11 #+ whose value consists of all-integer characters.
12 # Caution advised, however.
3、sealing wax, cabbages and kings
2 # str-test.sh: Testing null strings and unquoted strings,
3 #+ but not strings and sealing wax, not to mention cabbages and kings . . .
4、compound comparison
5、suffice:
As S.C. points out, in a compound test, even quoting the string variable
might not suffice.
6、the "x's" cancel out(上面5的2))
7.2. File test operators
1、example 7-4
不懂下面的代码,这不是纯bash的代码,那是什么代码?
|
2、一句有技巧的语句:
|
结构:
如果 (参数个数=0)返回值为真,就会继续执行:directorys=当前目录;执行成功它的exit状态为0,也是真,那么就会停止执行||(或);
如果 (参数个数=0)返回值为假,就不会执行 &&(与)了,但会执行||(或)。
3、example 7-4
[ -h "$element" -a ! -e "$element" ] ,预先知道这句的作用是找到破坏了的符号连接,但是这句的作用怎么来的不懂;
另外,[ - ]与邻近的字符之间必须有空格。
英语疑问:
1、sticky:
Commonly known as the "sticky bit," the save-text-mode flag is a special
type of file permission.
2、absent:
"not" -- reverses the sense of the tests above (returns true if condition
absent).
3、would:
but that wouldn't be pure bash, now would it.
linux下的文件服务器[ftp(ftp/tftp)、 Samba、NFS服务器](转)
(转自:http://www.xuelang.net/webInfo/xuelang/it/Linux/LinKnw/0956534300.htm)
linux下的文件服务器
作者:田逸(sery@163.com) 《网管员世界》2006年第一期
对于一个真实的运行环境而言,配置和启用文件服务器都是很有必要的。把重要的数据集中存储和管理,其安全性显然比分布存储要可靠得多。为此,建议系统管理员配制和启用文件服务器作为基本的管理策略。
根据使用的方式来看,可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。ftp的客户可以是任意平台,samba是专门针对windows客户,而NFS则是面向linux/unix用户的。下面是三种服务器的对比情况:
服务器名称 用户客户端平台 使用范围 服务端口
FTP Windows/linux/unix/macOS等 发布网站,文件共享 Tcp/21
Samba Windows 文件共享(网上邻居) Tcp/445,tcp/139
NFS Linux/unix 网站发布,文件共享(mount) Tcp/2049
接下来我们就逐个来配置和运行这些服务器。
NFS服务器
NFS是SUN Microsystem公司开发的网络文件系统,它是一种基于远程过程调用(RPC)的分布式文件系统架构。与Samba相比较,NFS的数据吞吐能力更强。
1、 用命令 # rpm –qa | grep nfs检查软件包NFS是否安装 ,如果输出没有输出,表明没有被安装,请自行安装之。
2、 配置NFS服务器。用任何文本编辑器配置文件/etc/exports,来确定需要给客户共享的目录。它的基本格式为 Directory Host(options) # comments ,这3个字段/列要在一行,directory与host(options)之间要有间隙,# comments 可有可无。主机选项主要是给与挂接用户什么样的权限。目录directory表示要共享出去的目录,值得注意的是,在启用NFS服务以前,系统管理员应该仔细一些,比如不小心共享了根目录/,并且给与用户读写权限,这是十分糟糕的问题。因此,尽可能少的共享目录和赋予较小的访问权限。主机名host是一个很灵活的项目,可以是单个的主机名称(由/etc/hosts得到),主机ip地址,由域名服务器解析的主机名称,IP网络---网络号和子网掩码中间用 “/”连接,NIC等。下面列举一个例子。
/home/sery sery(r,w) #把目录/home/sery共享给主机sery,并且主机对目录#/home/sery有读写权限
/tmp 192.168.100.18(ro) #主机192.168.100.18对目录/tmp具备只读共#享权限
/media/cdrom 192.168.100.0/255.255.255.0(r,o) #整个网络有读取挂接在NFS
#服务器上的光驱光盘的读取权限
3、 启用NFS服务。分两步:首先启用portmap,然后启用NFS服务。# service portmap start;
# service nfs start。其中portmap的功能是启用远程过程调用,有时启用NFS不能成功,不妨检查一下portmap服务是否启动(# ps aux | grep portmap)。
4、 在客户端挂接NFS共享出来的目录。先在客户端创建一个挂接点,如 # mkdir /mnt/nfs ,而后使用命令把nfs服务器共享出来的目录挂接上,以第2步那个共享为例,我们挂接目录 /tmp , # mount –t nfs 192.168.100.100:/tmp /mnt/nfs //假定nfs服务器的ip地址是192.168.100.100。
5、 访问NFS共享资源。接上步,改变文件目录 # cd /mnt/nfs就方便地实现了对nfs服务器目录/tmp的远程访问。
6、 卸载NFS文件系统。在客户端执行命令 # umount /mnt/nfs 就卸下了第4步挂接的NFS文件系统。
7、 其他事项。前面我们描述了在客户段用手工挂接NFS文件系统的操作,有的场合可能需要自动实现对NFS的挂接操作;修改文件/etc/fstab,把挂接项插入进去就可以了。对一个有较多连接的NFS服务器而言,有这样一个问题---用户在使用完挂接的文件系统后,并不会总记得卸载掉NFS挂接,这必然会增大NFS服务器的维护工作量以及白白占用有限的系统和网络资源;解决这个问题的办法是使用自动挂接器(automounter)。关于自动挂接器属于性能调优的范畴,在此不做描述。
Samba服务器
这个世界既非只有linux/unix,也不是由microsoft windows 独霸天下的格局。也许出于linux/unix与windows既竞争又共存的事实,人们开发了 linux给windows用户提供文件共享的工具Samba,这应该算得上linux的开放精神吧!
1、 检查是否安装samba软件包。# rpm –qa | grep smb ,如果没有则自行安装samba。
2、 修改配置文件/etc/samba/smb.conf。早期的linux版本的配置文件smb.conf的安全选项“security=share”,这个默认值是个安全隐患,不过现在流行的linux版本的安全选项的默认值是“security=user”。如果只想用户对他的目录拥有只读权限,就把选项“writeable=yes”改成“read only=yes”。其他的选项根据自己的要求更改即可。对于一般的应用而言,基本上不用修改这个文件。
3、 添加系统账户。由于smb的访问是使用系统账号进行的,因此添加账号是必不可少的。这个比较简单,用命令 # useradd sery , # passwd sery,就可以依次添加若干系统账号。
4、 建立Samba用户密码文件。虽然samba的用户是系统用户,但出于安全考虑,samba用户的密码并非创建系统用户时设定的用户密码。为了生成smb所需的密码,应该进行下面的操作:
# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
# smbpasswd sery //为系统用户设置smb口令
# chown root.root /etc/samba/smbpasswd
# chmod 600 /etc/samba/smbpasswd //不准别的用户访问
5、 启用Samba服务器。我比较喜欢用 # service smb start 这种方式。
6、 检查服务是否正常启动。# service smb status 或者 # ps aux | grep smb。
7、 windows客户端访问 Samba服务器共享目录。在windows环境下,右键点击“网上邻居”图标,然后左击“搜索计算机”,把Samba服务器的IP地址填写在“计算机名”搜索栏,点击立即搜索。找到后双击图标,然后输入在Samba服务器上预先设定的用户名和密码,就能合法访问Samba服务器设定的共享资源。为了方便使用,可以把Samba服务器提供的共享目录映射成本地驱动器。
8、 其他。上述配置的samba服务器,用户的访问共享目录是系统账号的主目录。要想把共享目录设置到其他位置,修改Samba 的配置文件/etc/samba/smb.conf文件即可。
FTP服务器
在linux 环境下,有三个主要的FTP服务器:vsftpd、proftpd和wu-ftpd。因为安全方面的原因,vsftpd目前已经牢牢的占据了主导地位。从字面上我们就可以理解vsftpd所具备的主要特征---very secure(非常安全之ftp)。资料表明:1、使用ASCII方式下载文件,在1G以太网上的下载速度可以达到86M/s。2、vsftpd可以支持 15000个并发用户的访问。
1、 检查是否安装vsftp包。# rpm –qa | grep vsftpd。如果没有则安装它。
2、 修改配置文件。Vsftpd的配置文件为/etc/vsftpd/vsftpd.conf,如果不打算提供匿名访问的话,需要修改配置文件 /etc/vsftpd/vsftpd.conf的项“anonymous_enable=Yes”为“anonymous_enable=No”。
3、 启用vsftpd服务。#service vsftpd start。
4、 客户端连接访问。可以是专用的ftp客户端工具,也可以使用浏览器。用工具访问vsftpd服务器的速度要比用浏览器快很多。
5、 vsftpd服务器的用户。Vsftpd服务器支持三种类型的拥护:本地用户(拥有系统账号)、虚拟用户(guest)、匿名账号;系统管理员应该根据安全需求来确定vsftpd服务器的用户访问策略。
TFTP服务器
Tftp服务器主要用于远程系统引导或远程备份象CISCO这样的网络设备的配置文件,例如tftp服务器与DHCP、FTP服务器相配合,就可以成为一组linux安装服务器,以利于进行大规模的网络安装linux操作系统。
与上文提及的几种服务器不同,tftp服务器是由超级守护进程xinetd运行的。这使的tftp服务器的配置操作比独立运行守护进程的服务器(如 vsftpd)简单很多。一般情况下,只要修改文件/etc/xinetd.d/tftp,把“disable =yes” 改成 “disable =no”,而后保存重新启动超级守护进程xinetd , # service xinetd restart 。
通过上面的实践,尽管我们已经能够顺利的完成各种文件服务器的搭建和运行,也基本上可以满足基本的用户服务需求,也许在实际的工作中,可能有更多的性能或安全要求。一个明显的例子就是,如果一个用户的服务器使用的磁盘空间没有做任何限制,那么他完全有可能把他从internet下载的连续剧上传到他自己的文件服务器目录,从而把有限空间的硬盘塞满。另外一个就是目录和文件的权限问题,特别是以本地账号(系统账号)访问文件服务器的情况,如果授权不当,将给系统管理带来极大的麻烦。
Linux所倡导的自由精神也同样在这些服务器的配置操作中得以体现。可以通过修改这些服务器的配置文件来满足特定的需求,而且这些修改是非常灵活的。比如vsftpd服务器的配置文件/etc/vsftpd/vsftpd.conf就有很多项目可以修改。
附表:几种文件服务器的维护
服务器名称
启动脚本
守护进程
配置文件
NFS /etc/init.d/nfs
/etc/init.d/nfslock /usr/sbin/rpc.nfsd
/usr/sbin/rpc.mountd /etc/exports
Samba /etc/init.d/smb
/etc/init.d/winbind /usr/sbin/smbd
/usr/sbin/nmbd /etc/samba/smb.conf
vsftpd /etc/xinetd.d/vsftpd /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
--转载完
7.1. Test Constructs
1、command &>filename redirects both the stdout and the stderr of command to
filename.
|
2、|
pipe. Passes the output of previous command to the input of the next one,
or to the shell. This is a method of chaining commands together.
|
3、这个嵌套结构有点怪,还有(())和[[]]的有什么区别?
它的结构是:
if ()
if()
then()
else()
endif
then()
endif
总觉得不如这样:
if ()
then
if()
then()
else()
endif
()
endif
· An if/then construct can contain nested comparisons and tests.
|
4、example 7-1
bash里面的测试命令真是多呀?test [] [[]] (()) let ... ,快昏了。
[0]和[1]和[-1]的测试结果都是true,不懂?
[ -n "$xyz" ] 里面的-n什么作用?(
[]就是test命令
在man test中查到如下:
[-n] STRING
the length of STRING is nonzero
)
|
5、[[]]比[]更加有用?
|
6、
Following an if, neither the test command nor the test brackets ( [ ] or
[[ ]] ) are strictly necessary.
例如:
|
|
7、(( 1 / 0 )) 2>/dev/null不懂?
|
8、英语疑问:
1)The (( ... )) and let ... constructs also return an exit status of 0 if the
arithmetic expressions they evaluate expand to a non-zero value.
2)This is in marked contrast to using the test and [ ] constructs previously discussed.
Chapter 6. Exit and Exit Status
Chapter 6. Exit and Exit Status
1、$? 是脚本中最后一个命令的退出状态。
2、!在起到否定的作用时,其后面需要一个空格,如! true
3、在!用在命令行中时,起到调动最近的历史命令的作用,例如,前面你执行过 man true,
当你执行!man时,就会调用man true.
5.2. Escaping
1、Example 5-2(怎么样才能显示下面这个 $escape ?)
|
2、echo -e的用法:
|
3、可是说是一些非常烦人的用法,不用去记它,平常也用不着吧。
Note The behavior of \ depends on whether it is itself escaped, quoted, or
appearing within command substitution or a here document.
|
4、\可以起到续行符的作用,文中的叙述:
The escape also provides a means of writing a multi-line command. Normally,
each separate line constitutes a different command, but an escape at the end of
a line escapes the newline character, and the command sequence continues on to
the next line.
例如:下面的dir这个命令被分成3行来写,每行一个字符:)
|
Chapter 5. Quoting
Chapter 5. Quoting
1、那个IFS是什么意思?
Example 5-1. Echoing Weird Variables
|
2、
|
(回车就显示>,永远不会出现',除非'没有在两个'之中)
Since even the escape character (\) gets a literal interpretation within single quotes, trying to enclose a single quote within single quotes will not yield the expected result.
|
3、太令人难以把握了,没有规律吗?
Of more concern is the inconsistent behavior of "\" within double quotes.
|
4、生词:
Quoting can also suppress echo's "appetite" for newlines.
Weird
discrete
ten day's worker vocation(工休假vacation)
I have worked over ten years, I can spend my worker vocation(vacation) from Sept 6 to Sept 15.
I don't remember I had vacation in last several years.
In these ten days, I want finish learning that Advanced Bash-Scripting Guide a time(一次onceover). And, I will bring daughter go to childgarten(幼儿园kindergarten) and back home every day.
The house will need some deployment(布置)(改动change) yet(too).
The last several days, my emotion was low. these days, I will find something make me more happy.
Write(Writing english diary is so strange for me, no enough words and enough english grammar knowledge to express my meaning.
Is writing english diary a proper thing for me? I doubt(怀疑)。