只在网上找到分下面两步设置时间的方法,一次设置成功的方法还没有找到。
首先必须是root帐号。
设置时间为下午14点36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
设置时间为1999年11月28号。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999
正在关注 Linux 、开源、IT 的个人博客。
只在网上找到分下面两步设置时间的方法,一次设置成功的方法还没有找到。
首先必须是root帐号。
设置时间为下午14点36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
设置时间为1999年11月28号。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999
今天,在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中的设置,还没有找到自动的切换设置。有谁知道了告诉一下。
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))
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.
(转自: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
--转载完
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
1、$? 是脚本中最后一个命令的退出状态。
2、!在起到否定的作用时,其后面需要一个空格,如! true
3、在!用在命令行中时,起到调动最近的历史命令的作用,例如,前面你执行过 man true,
当你执行!man时,就会调用man true.
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
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
1、
http://www.linuxsir.org/main/doc/abs/HTML/untyped.html
4.3. Bash Variables Are Untyped
Example 4-4. Integer or string?
|
2、
http://www.linuxsir.org/main/doc/abs/HTML/othertypesv.html
The space allotted to the environment is limited. Creating too many environmental variables or ones that use up excessive space may cause problems.
|
3、
命令:basename(# Strips out path name info (see 'basename'))
[mdx@localhost abs-exercises]$ basename /home/mdx/abs-guide-3.7/ex15.sh
ex15.sh
4、比较:
|
5、得到最后一个参数:
|
6、待查
If a script expects a command line parameter but is invoked without one, this may cause a null variable assignment, generally an undesirable result. One way to prevent this is to append an extra character to both sides of the assignment statement using the expected positional parameter.
|
7、在Example 4-6. wh, whois domain name lookup中,域名查询的服务器是无效的,可以换成:"wh-inn" ) whois $1@whois.internic.net;;
8、生词:
positional
notch