iLeichun

当前位置:首页Linux

Linux下Tomcat开机自动启动

分类:Linux  来源:网络  时间:2010-11-20 15:17:20

1、向/etc/profile中加入环境变量,内容如下:
JAVA_HOME=/usr/java/jdk1.5.0_09
export JAVA_HOME

JRE_HOME=/usr/java/jdk1.5.0_09/jre
export JRE_HOME

#APACHE_HOME=/usr/local/apache
#APACHE2_HOME=/usr/local/apache

TOMCAT_HOME=/usr/share/tomcat5
CATALINA_BASE=/usr/share/tomcat5
CATALINA_HOME=/usr/share/tomcat5
export TOMCAT_HOME CATALINA_BASE CATALINA_HOME

#ANT_HOME=/usr/local/apache-ant
#export ANT_HOME

#JAMES_HOME=/usr/local/james
#export JAMES_HOME

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$TOMCAT_HOME/webapps

#CLASSPATH=$CLASSPATH:/var/www/html/webapps/WEB-INF/lib:/var/www/html/webapps/WEB-INF/classes

export CLASSPATH

#MYSQL_HOME=/usr/local/mysql

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH
2、创建Tomcat启动Shell脚本/usr/share/tomcat5/bin/tomcatd.sh,内容如下:
JAVA_HOME=/usr/java/jdk1.5.0_09
export JAVA_HOME


JRE_HOME=/usr/java/jdk1.5.0_09/jre
export JRE_HOME

#APACHE_HOME=/usr/local/apache
#APACHE2_HOME=/usr/local/apache

TOMCAT_HOME=/usr/share/tomcat5
CATALINA_BASE=/usr/share/tomcat5
CATALINA_HOME=/usr/share/tomcat5
export TOMCAT_HOME CATALINA_BASE CATALINA_HOME

#ANT_HOME=/usr/local/apache-ant
#export ANT_HOME

#JAMES_HOME=/usr/local/james
#export JAMES_HOME

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$TOMCAT_HOME/webapps

#CLASSPATH=$CLASSPATH:/var/www/html/webapps/WEB-INF/lib:/var/www/html/webapps/WEB-INF/classes

export CLASSPATH

#MYSQL_HOME=/usr/local/mysql

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH
cd $TOMCAT_HOME/bin; ./startup.sh
3、添加启动项到/etc/rc.local中。
/usr/share/tomcat5/bin/tomcatd.sh > /dev/null &

 

Linux查看启动和系统信息

分类:Linux  来源:网络  时间:2010-11-20 15:16:26

1、/etc/inittab文件
(1)、开机运行等级:
id:3:initdefault:        将这行的3改为你要开机运行的等级。
(2)、使ctrl + alt + del失效  将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了
2、自动执行程序:

a、开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况 下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑  /etc/rc.d/rc.local 文件,在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。

b、登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序 查找三个特殊文件中的一个:/.bash_profile、/.bash_login、/.profile,但只执行最先找到的一个。因此,只需根据实际 需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。

c、退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。

d、定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定 的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。例如,建立文件crondFile,内容为 “00 9 23 Jan * HappyBirthday”,运行“crontab cronFile”命令后,每当元月23日上午9:00系统自动执 行“HappyBirthday”的程序(“*”表示不管当天是星期几)。

e、定时自动运行程序一次
定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。
at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。
也可直接从键盘输入命令:

$ at 12:00

at>mailto Roger -s ″Have a lunch″ < plan.txt
at>Ctr-D
Job 1 at 2000-11-09 12:00
说明:2000-11-09 12:00 时候自动发一标题为“Have a lunch”,内容为plan.txt文件内容的邮件给Roger。

3、切换X桌面
如果你是以图形登录方式登录linux,那么点击登录界面上的session(会话)即可以选择gnome和kde。
如果你是以文本方式登录,那执行 switchdesk gnome或switchdesk kde,然后再startx就可以进入gnome或kde。
(或者vi ~/.xinitrc,添加或修改成exec gnome-session 或exec startkde,然后用startx启动X)

4、查看系统信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中断
cat /proc/ioports - 设备IO端口
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有设备的所有分区
cat /proc/pci - PCI设备的信息
cat /proc/swaps - 所有Swap分区的信息
cat /proc/version - Linux的版本号 相当于 uname -r
uname -a - 看系统内核等信息

5、快速观看开机的硬件检测
dmesg | more

6、查看硬盘的使用情况
df -k 以K为单位显示
df -h 以人性化单位显示,可以是b,k,m,g,t

7、查看目录的大小
du -sh dirname
-s 仅显示总计
-h 以K、M、G为单位,提高信息的可读性。KB、MB、GB是以1024为换算单位, -H以1000为换算单位。

 

linux下查看内存使用情况

分类:Linux  来源:网络  时间:2010-11-20 15:15:31

1、free -m查看内存使用情况:
[root@mail root]# free -m
total used free shared buffers cached
Mem: 122 112 10 0 11 27
-/+ buffers/cache: 73 48
Swap: 2251 84 2167
2、ls -l -h /proc/kcore查看内存大小:
[root@mail root]# ls -l -h /proc/kcore
-r——– 1 root root 128M Jul 6 14:55 /proc/kcore
3 、cat /proc/meminfo查看内存情况:
[root@localhost ~]# cat /proc/meminfo
MemTotal: 1035904 kB
MemFree: 189096 kB
Buffers: 17844 kB
Cached: 225232 kB
SwapCached: 47820 kB
Active: 724512 kB
Inactive: 96132 kB
HighTotal: 131056 kB
HighFree: 252 kB
LowTotal: 904848 kB
LowFree: 188844 kB
SwapTotal: 2305288 kB
SwapFree: 2081592 kB
Dirty: 32 kB
Writeback: 0 kB
Mapped: 599748 kB
Slab: 14700 kB
Committed_AS: 3008852 kB
PageTables: 4472 kB
VmallocTotal: 106488 kB
VmallocUsed: 2556 kB
VmallocChunk: 103400 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 4096 kB

lftp命令详解

分类:Linux  来源:网络  时间:2010-11-20 15:14:49

首先来说一下lftp登录站点的操作,有好几种方式,都非常简单。

1. 一气呵成式
$ lftp (ftp://)user:password@site:port
比较常用于网页或bbs上给出的现成链接,缺点是password显示为明文,推荐在月黑风高、四下无人的环境里偷偷输入…如果不幸背后有人
$ lftp (ftp://)user@site:port
然后系统会提示输入password,这是就是******了

2. 老实巴交型

$ lftp site -p port -u user,password
这是lftp说明文档里给出的标准方式,这一招比较费体力,请根据自己身体情况量力而行。如果体能一般,可以
$ lftp site:port -u user,password
似乎是略微省事一点儿,我一般也用这种方法

3. 五短之中暗藏一长

这是一个递归嵌套的招式%¥#@!×&
$ lftp
lftp:~>lftp user:password@site:port
就是说在lftp控制台里进行操作,和在系统终端是完全一样的,你仍然可以毫无顾忌地用使用前面两招,同时也可以用o或open代替lftp,后面站点用户名密码的格式也可以根据自己偏好输入

4. 终极大招

每次登录都狂敲一行user:password@site:port,长年累月,就算李铁来了也扛不住。所以还是要让lftp把常用的站点记下来,就象FlashFXP里的站台管理器,在lftp里,叫做bookmark,具体的咱们日后再说

登录完成第一件事就是想看看这个服务器上有什么好东东。
操 作和终端里是一样的,ls就是列出服务器目录。有一点要说明,第一次ls之后,目录表就被保存到了本地cache,这样再次ls就不能得到这个目录下最新 的列表,这时可以用rels重新下载目录表。这里的cache是lftp的默认设置,目的无非就是更快的得到列表,有时却不符和你的使用习惯。可以用 cache on和cache off开关cache,也可以用cache flush来清空cache。
更改目录也是cd,没什么可说的,lftp也支持tab匹配功能,大大减少了劳动强度。

lftp 支援了六种模式, ftp, ftps, http, https, hftp, fish and file(当然了 https 和 ftps 的支援必须在编译就和 openssl library 一起编译好)。

lftp 内建了 shell-like 的命令格式, 允许在背景同时执行多个命令(&)。所有背景执行的工作都是在同一个程序中(process), 能将前景执行的命令放到背景执行(Ctrl-z), 或从背景拿回前景执行(wait 或 fg), 甚至还可以经由上个命令的传回值来决定目前这个命令是否要执行(&& ||)。

在结束 lftp 时, 如果还有程序执行中, lftp 会将自己切换到 no hup 模式並放到背景执行。因此不必担心执行 lftp 当中无法登出。

!
可执行本地端 shell 中的命令, 如 !ls /usr/local/bin/
由於 lftp 並没有 lls(显示本地端档案列表的指令), 故可用 !ls 来替代。

alias []
定义别名
alias less more
alias reconnect “close; cd .”
直接输入 alias 即可看到目前定义了那些别名。如果只输入 alias name 的话, 则是取消 name 这个别名。

bookmark SUBCMD
设定书籤, 可将目前站台及所在目录设成书籤, 下次可直接进来, 不用再 cd 来 cd 去的

bookmark add name 用来新增名称为 name 的书籤
bookmark del name 删除名称为 name 的书籤
bookmark list 显示目前有设定那些书籤(另外直接打 bookmark 和 bookmark list 的结果一样)
bookmark edit 呼叫编辑器修改书籤 (~/.lftp/bookmarks)

cd 切换远端目录

cache SUBCMD
管理 lftp 的 cache

rels []
从 cache 中显示远端档案列表
rels 则不会从 cache 中读取

recls opts [path/]pattern
从 cache 中显示远端的档案列表, 应该算是 ls 的加强版, 有很多参数可用,应该是可用来产生各种不同>的档案列表以供其他程式使用。
recls 则不会从 cache 中读取

du options
计算远端整个目录佔用容量

get OPTS -o
抓取远端档案

get rfile -o lfile
抓 rfile 到本地改名为 lfile
-c 为续传
-E 抓档完成後, 将远端的档案砍了
-a 为 ascii mode, 预设为 binary mode
-O 设定 base directory 为本地端放档案的目录

mget OPTS
下载远端档案(可用 wildcard expansion 也就是 *)

pget OPTS -o
使用多个连结来下载档案, 预设为五个。
-n 3 为叁个连结

jobs -v
显示目前有那些程序在背景执行
-v 显示详细的资讯(-v 可多加幾个来显示更详细的资讯)

lcd
切换本地端的目录

mirror OPTS remote [local]
下载整个目录(楼上的 get 只能用来抓档案)
-c 续传
-e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
-R 上传整个目录
-n 只下载较新的档案
-r 不用递迴到目录中
–parallel=n 同时下载 n 个档案(预设一次只下载一个)

module name args
载入模组

put OPTS -o
上传档案

mput OPTS
上传档案(可用 wildcard expansion 也就是 *)

mv
将远端的 file1 改名为 file2

mrm
用 wildcard expansion 方式来删除远端档案

open OPTS
开启某个站台
open -u , -p site

queue OPTS []
将 cmd 放到伫列中等待执行
-d index 将编号为 index 的 job 删除
-m index new_index 将编号为 index 的 job 移至编号 new_index, 插队专用。
-n index 在编号 index 之前新增一个 job

wait []
将背景执行中的程序移至前景(也可用 fg)

kill all|
删除全部的 jobs 或 job_no

repeat delay command
每隔 delay 秒, 重覆执行 command, 预设是每隔一秒

rm -r -f
移除远端档案

mkdir -p
建立远端目录

rmdir -f
移除远端目录

set OPT []
设定变数
直接键入 set 可看目前定义了那些变数

source
读取 file, 並执行 file 中的命令(应该是和 bash 中的 source 命令是一样的吧)

debug [|off] -o
设定 debug level 为 level
-o 将输出导向至 file

exit [|bg]
结束 lftp
此时若还有 jobs, 则会将 lftp 放至背景执行, 继续未完成的工作

history -w file-r file-c|-l cnt
和 bash 中的 history 功能一样

renlist []
只显示远端的档名

pwd -p
显示目前远端所在目录
-p 连登入密码也显示

scache []
只打 scache 显示目前所有的 session, 加上 session_no 可切换至其他的 session,
对於同时开启多个站台或同个站台不同目录间切换。

小弟有遇过某些站台, 一个 ip 只允许登入一次的,如果想同时抓好幾个档案在不同目录下,就
只能一次抓一个,等到抓完了才能再切换到别的目录去抓第二个, 这时 lftp 的 queue 就派上
用场了。一般下了 get, mget 的话, 档案就直接开始下载了, 这时就无法再切换到其他目录了, 因此, 先将 queue 给停止, 首先下个 queue, 按 enter, 再下个 jobs 即可看到目前 qu
eue 是停止的。这时再将要抓的东东一个个加入 queue 中, 等到要抓的东东都进入 queue 後
, 再下 queue start 一次全部传送, 这样子可省去随时注意档案是否抓完,迼成困扰。

lftp localhost:/pub/Iso> queue

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Queue is stopped.

lftp localhost:/pub/Iso> queue get rettcd.iso

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Queue is stopped.
Commands queued:
1. get rettcd.iso

lftp localhost:/pub/Iso> queue mirror Linux/

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Queue is stopped.
Commands queued:
1. get rettcd.iso
2. mirror Linux/

lftp localhost:/pub/Iso> queue start

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Now executing: 1 get rettcd.iso
Commands queued:
1. mirror Linux/
1 get rettcd.iso
`rettcd.iso’ at 4772864 (9%) 3.00M/s eta:14s Receiving data
相关文件

/etc/lftp.conf
全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etc

~/.lftp/rc, ~/.lftprc
用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。
lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行

debug 3

就可以看到出错信息了。
更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。

~/.lftp/log
当lftp转为后台非挂起模式执行时,输出将重定向到这里

~/.lftp/bookmarks
这是lftp存储书签的地方,可以lftp查看bookmark命令

~/.lftp/cwd_history
这个文件用来存储访问过的站点的工作目录

碰到一个中文字符集显示的问题, Remote FTP Server 的 Charset 是 gb2312 的, 我若直接 ls, 所有中文字符都是乱码, 根本没有办法使用. 要这样给一个参数才行:

lftp ryun@www.example.com:/>set ftp:charset gb2312

然后再 ls 一下看看, 是不是亲切多了 ^____^

这里还有一个方法, 针对经常使用中文字符集FTP的朋友可以这样来设定配置文件:

touch ~/.lftp/rc
echo ‘debug 4′ >> ~/.lftp/rc
echo ’set ftp:charset GBK’ >> ~/.lftp/rc

现在 lftp 后直接支持中文字符显示

无法被动模式连接,转为主动模式就可以列目录了:在 lftp 登录后执行:
set ftp:passive-mode no

Linux中tar命令详解

分类:Linux  来源:网络  时间:2010-11-20 15:13:47

tar [-cxtzjvfpPN] 文件与目录 ….
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!

范例:
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/” from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
# 就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N “2005/06/01″ -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf – /etc | tar -xvf -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 – 而输入档也变成 – ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!

 

Linux下取得虚拟内存

分类:Linux  来源:网络  时间:2010-11-20 15:13:02

[root@localhost ~]# cat /proc/meminfo
MemTotal:       385160 kB
MemFree:         25428 kB
Buffers:          5240 kB
Cached:          72536 kB
SwapCached:      30860 kB
Active:         329432 kB
Inactive:         8332 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       385160 kB
LowFree:         25428 kB
SwapTotal:      522104 kB
SwapFree:       449480 kB
Dirty:            1640 kB
Writeback:           0 kB
AnonPages:      258560 kB
Mapped:          22932 kB
Slab:            14588 kB
PageTables:       3060 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:    714684 kB
Committed_AS:   692660 kB
VmallocTotal:   638968 kB
VmallocUsed:      3212 kB
VmallocChunk:   635692 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     4096 kB

df和du的区别linux磁盘命令

分类:Linux  来源:网络  时间:2010-11-20 15:12:10

问题描述

两个常用的确定文件系统的空间分配的命令:df 和du 的区别
解答

df 命令:

通过文件系统中未分配的空间来确定文件系统中已分配空间的大小。例如:如果一个文件系统中有 8192个512-byte 块, 并且4096 个块没有被分配出去,那么已分配的空间就是4096 个512-byte 的块。

已分配空间 = 空间总数 – 未分配空间

因为基于文件系统总体来计算,所以df 命令是报告文件系统空间使用情况最可靠的命令。

du 命令

是面向文件的命令,它计算分配给指定文件或者目录的空间。 du 命令必须跟着目的参数,而且不能隔离文件系统。

例如:运行 # du / 命令将计算所有在 / 文件系统下所有文件的空间分配信息。其中包括 / 文件系统所有的文件和安装在 / 下面的,例如 /tmp, /var 和 /usr 下面的其他文件系统的文件。可以用 du 命令带 -x 参数来限制仅在文件系统内进行操作。但是有时候会导致输出结果不完全。

du 命令只计算被文件占用的空间。不计算文件系统metadata 占用的空间,如inodes, inode maps, 或者disk maps。

du 命令只计算那些可以访问的文件所占用的存储空间, 有下面两种情况 du 命令不会计算已经分配给文件的空间。

Case1:

文件被隐藏了。
例如:如果一个文件存放在 /bobby 目录下, 接着有文件系统安装在 /bobby 目录下, 那么, du 命令将不会计算 /bobby 目录下的文件所占用的存储空间。

case 2:

文件被其他的应用的打开了,接着文件被删除了。 在这种情况下, 文件所占用的存储空间将维持着被分配的状态直到所有对这个文件的访问都被关闭。
由于目录中没有这个文件的相关纪录,du 命令将不会计算这个文件的被分配空间,然而df 命令将计算这部分已分配的空间

df命令详细用法

a:显示全部的档案系统和各分割区的磁盘使用情形
i:显示i -nodes的使用量
k:大小用k来表示 (默认值)
t:显示某一个档案系统的所有分割区磁盘使用量
x:显示不是某一个档案系统的所有分割区磁盘使用量
T:显示每个分割区所属的档案系统名称
常用命令:df -hi

操作详解
引用
指令 df 可以显示目前所有档案系统的最大可用空间及使用情形,请看下列这个例子:

# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1.9G 389M 1.4G 21% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1d 989M 54K 910M 0% /tmp
/dev/ad0s1f 4.8G 3.8G 657M 86% /usr
/dev/ad0s1e 1.9G 149M 1.6G 8% /var
/dev/ad0s1g 26G 890K 24G 0% /volume2
/dev/da0s1d 325G 261G 38G 87% /volume1

我们加了参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

上面的指令输出的第一个字段及最后一个字段分别是档案系统及其挂入点。我们可以看到 /dev/ad0s1a 这个分割区被挂在根目录下。我们在上一小节提到过 ad 所代表的是 IDE 的硬盘,而 s1 表示第一个主要扇区。我另外有一个 SCSI 硬盘,它的代号是 da,它的容量很大,主要用来存放数据。devfs 是一个特别的档案系统,该档案系统并非真的磁盘,而是 FreeBSD 用来管理系统硬件装置的虚拟档案系统。

接下来的四个字段 Size、Used、Avail、及 Capacity 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

另外,我们还可以使用参数 -i 来查看目前档案系统 inode 的使用情形。有的时候虽然档案系统还有空间,但若没有足够的 inode 来存放档案的信息,一样会不能增加新的档案。

# df -ih
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/ad0s1a 1.9G 389M 1.4G 21% 20495 262127 7% /
devfs 1.0K 1.0K 0B 100% 0 0 100% /dev
/dev/ad0s1d 989M 62K 910M 0% 24 141286 0% /tmp
/dev/ad0s1f 4.8G 3.8G 657M 86% 311439 348015 47% /usr
/dev/ad0s1e 1.9G 149M 1.6G 8% 1758 280864 1% /var
/dev/ad0s1g 26G 890K 24G 0% 12 3532786 0% /volume2
/dev/da0s1d 325G 261G 38G 87% 707277 43311409 2% /volume1
我们可以看到根目录的已经用掉的 inode 数量为 20495,还有 262127 的可用 inode。

小提示
还记得什么是 inode 吗?所谓的 inode 是用来存放档案及目录的基本信息 (metadata),包含时间、档名、使用者及群组等。在分割扇区时,系统会先做出一堆 inode 以供以后使用,inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的 inode 来挂档案及目录。

du:查询档案或目录的磁盘使用空间

a:显示全部目录和其次目录下的每个档案所占的磁盘空间
b:大小用bytes来表示 (默认值为k bytes)
c:最后再加上总计 (默认值)
s:只显示各档案大小的总合
x:只计算同属同一个档案系统的档案
L:计算所有的档案大小
常用命令:du -a

操作详解
引用
指令 du 能以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小。例如:

# du -h /etc
104K /etc/defaults
6.0K /etc/X11
8.0K /etc/bluetooth
4.0K /etc/gnats
52K /etc/isdn
388K /etc/mail
68K /etc/mtree
2.0K /etc/ntp
38K /etc/pam.d
44K /etc/periodic/daily
6.0K /etc/periodic/monthly
42K /etc/periodic/security
16K /etc/periodic/weekly
110K /etc/periodic
6.0K /etc/ppp
318K /etc/rc.d
2.0K /etc/skel
130K /etc/ssh
10K /etc/ssl
1.7M /etc
我们目样使用 -h 参数来显示 human-readable 的格式。在应用时,我们可以使用 du 这个指令来查看哪个目录占用最多的空间。不过,du 的输出结果通常很长,我们可以加上 -s 参数来省略指定目录下的子目录,而只显示该目录的总合即可

# du -sh /etc
1.7M /etc
在查看目录的使用情形时,我们可以将输出结果导到 sort 指令进行排序,以了解哪个档案用了最多的空间:

# du /etc | sort -nr | more
1746 /etc
388 /etc/mail
318 /etc/rc.d
130 /etc/ssh
110 /etc/periodic
104 /etc/defaults
68 /etc/mtree
52 /etc/isdn
44 /etc/periodic/daily
42 /etc/periodic/security
38 /etc/pam.d
16 /etc/periodic/weekly
10 /etc/ssl
8 /etc/bluetooth
6 /etc/ppp
6 /etc/periodic/monthly
6 /etc/X11
4 /etc/gnats
2 /etc/skel
2 /etc/ntp
sort 的参数 -nr 表示要以数字排序法进行反向排序,因为我们要对目录大小做排序,所以不可以使用 human-readable 的大小输出,不然目录大小中会有 K、M 等字样,会造成排序不正确。
关键词:linux,df

使用df命令查看linux磁盘剩余空间

[root]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/hda5 487M 120M 342M 27% /
/dev/hda1 981M 21M 911M 3% /boot
none 125M 0 125M 0% /dev/shm
/dev/hda2 29G 4.9G 23G 18% /home
/dev/hda3 20G 4.8G 14G 27% /usr
/dev/hda7 24G 510M 22G 3% /var
/dev/hdb2 75G 75G 0 100% /

df是以磁盘分区为单位来查看文件系统。
/dev/hdb2 75G 75G 0 100% /, 以此为例。
表示HD硬盘接口的第二个硬盘(b),第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%, 被挂载到根分区目录上(/)

另外简单的一个办法就是鼠标右键查看磁盘、文件夹属性,就能了解到已用多少,剩余多少空间。

 

linux中删除文件或目录

分类:Linux  来源:网络  时间:2010-11-20 15:11:13

【语法】rm[必要参数][选择性参数][目录或者文件]
【功能说明】rm指令用来删除文件或者目录,如果使用rm来删除文件,通常仍可以将文件恢复。如果想保证该文件的内容无法复原,可以考虑使用shred指令。
【参数说明】
必要参数具体说明如下:
参数 功能
-d 删除可能仍有数据的目录
-f 强制删除
-i 交互模式
-r 同时删除该目录下的所有目录层
-v 运行时显示详细的信息
选择性参数的具体说明如下:
参数 功能
–help 帮助信息
–version 版本信息
【执行范例】
【范例560】删除文件。
[root@localhost kk]# ll //显示文件的详细信息
总用量 7400
-rw-r–r– 1 root root 8997 5月22 10:21 111
-rw-r–r– 1 root root 53 5月14 09:40 abc.c
-rw-r–r– 1 root root 97 5月13 15:53 a.c
-rw-r–r– 1 root root 97 5月13 15:42 a.c~
-rw-r–r– 1 root root 97 5月13 15:46 a.c@
-rw-r–r– 1 root root 5867520 5月28 14:53 bu
-rw-r–r– 1 root root 100 5月14 09:40 chch.c
-rw-r–r– 1 root root 205 5月14 09:11 cmh.c
-rw-r–r– 1 root root 7376 5月14 09:11 D.c
drwxr-xr-x 2 root root 4096 5月13 15:57 Desktop
-rw-r–r– 1 root root 675 5月14 09:11 fcntl.c
-rw-r–r– 1 root root 225 5月14 09:11 file.c
-rw-r–r– 1 root root 497 5月14 09:11 findconf.c
-rw-r–r– 1 root root 505 5月14 09:11 getcurtime.c
-rw-r–r– 1 root root 296 5月14 09:11 getsec.c
-rw-r–r– 1 root root 115 5月14 09:11 gettime.c
-rw-r–r– 1 root root 513 5月14 09:11 getusec.c
-rw-r–r– 1 root root 92 5月14 09:11 long.c
-rw-r–r– 1 root root 126 5月14 09:11 max.c
-rw-r–r– 1 root root 151 5月14 09:11 rand.c
-rw-r–r– 1 root root 101 5月14 09:11 sprintf.c
-rw-r–r– 1 root root 131 5月14 09:11 strrchr.c
-rw-r–r– 1 root root 1563 5月22 10:09 test
-rw-r–r– 1 root root 1471488 5月 3 16:10 unpv12e.tar
-rw-r–r– 1 root root 142 5月14 09:11 wenjian.c
-rw-r–r– 1 root root 474 5月14 09:11 zuobiao.c
[root@localhost kk]# rm zuobiao.c //删除文件
[root@localhost kk]# ll //显示文件
总用量 7392
-rw-r–r– 1 root root 8997 5月22 10:21 111
-rw-r–r– 1 root root 53 5月14 09:40 abc.c
-rw-r–r– 1 root root 97 5月13 15:53 a.c
-rw-r–r– 1 root root 97 5月13 15:42 a.c~
//此处省略了部分结果
-rw-r–r– 1 root root 1563 5月22 10:09 test
-rw-r–r– 1 root root 1471488 5月 3 16:10 unpv12e.tar
-rw-r–r– 1 root root 142 5月14 09:11 wenjian.c
[root@localhost kk]#
本例使用指令“rm zuobiao.c”,删除文件zuobiao.c。
【范例561】删除文件夹。
[root@localhost kk]# ll //显示文件信息
总占用量 7400
-rw-r–r– 1 root root 8997 5月22 10:21 111
-rw-r–r– 1 root root 53 5月14 09:40 abc.c
-rw-r–r– 1 root root 97 5月13 15:53 a.c
-rw-r–r– 1 root root 97 5月13 15:42 a.c~
-rw-r–r– 1 root root 97 5月13 15:46 a.c@
-rw-r–r– 1 root root 5867520 5月28 14:53 bu
-rw-r–r– 1 root root 100 5月14 09:40 chch.c
-rw-r–r– 1 root root 205 5月14 09:11 cmh.c
-rw-r–r– 1 root root 7376 5月14 09:11 D.c
drwxr-xr-x 2 root root 4096 5月13 15:57 Desktop
-rw-r–r– 1 root root 675 5月14 09:11 fcntl.c
-rw-r–r– 1 root root 225 5月14 09:11 file.c
-rw-r–r– 1 root root 497 5月14 09:11 findconf.c
-rw-r–r– 1 root root 505 5月14 09:11 getcurtime.c
-rw-r–r– 1 root root 296 5月14 09:11 getsec.c
-rw-r–r– 1 root root 115 5月14 09:11 gettime.c
-rw-r–r– 1 root root 513 5月14 09:11 getusec.c
-rw-r–r– 1 root root 92 5月14 09:11 long.c
-rw-r–r– 1 root root 126 5月14 09:11 max.c
-rw-r–r– 1 root root 151 5月14 09:11 rand.c
-rw-r–r– 1 root root 101 5月14 09:11 sprintf.c
-rw-r–r– 1 root root 131 5月14 09:11 strrchr.c
drwxr-xr-x 2 root root 4096 5月28 16:03 temp
-rw-r–r– 1 root root 1563 5月22 10:09 test
-rw-r–r– 1 root root 1471488 5月 3 16:10 unpv12e.tar
-rw-r–r– 1 root root 142 5月14 09:11 wenjian.c
[root@localhost kk]# rm -rf temp/ //删除目录temp/
[root@localhost kk]# ll //显示文件信息
总占用量 7392
-rw-r–r– 1 root root 8997 5月22 10:21 111
-rw-r–r– 1 root root 53 5月14 09:40 abc.c
-rw-r–r– 1 root root 97 5月13 15:53 a.c
-rw-r–r– 1 root root 97 5月13 15:42 a.c~
-rw-r–r– 1 root root 97 5月13 15:46 a.c@
-rw-r–r– 1 root root 5867520 5月28 14:53 bu
-rw-r–r– 1 root root 100 5月14 09:40 chch.c
-rw-r–r– 1 root root 205 5月14 09:11 cmh.c
-rw-r–r– 1 root root 7376 5月14 09:11 D.c
drwxr-xr-x 2 root root 4096 5月13 15:57 Desktop
-rw-r–r– 1 root root 675 5月14 09:11 fcntl.c
-rw-r–r– 1 root root 225 5月14 09:11 file.c
-rw-r–r– 1 root root 497 5月14 09:11 findconf.c
-rw-r–r– 1 root root 505 5月14 09:11 getcurtime.c
-rw-r–r– 1 root root 296 5月14 09:11 getsec.c
-rw-r–r– 1 root root 115 5月14 09:11 gettime.c
-rw-r–r– 1 root root 513 5月14 09:11 getusec.c
-rw-r–r– 1 root root 92 5月14 09:11 long.c
-rw-r–r– 1 root root 126 5月14 09:11 max.c
-rw-r–r– 1 root root 151 5月14 09:11 rand.c
-rw-r–r– 1 root root 101 5月14 09:11 sprintf.c
-rw-r–r– 1 root root 131 5月14 09:11 strrchr.c
-rw-r–r– 1 root root 1563 5月22 10:09 test
-rw-r–r– 1 root root 1471488 5月 3 16:10 unpv12e.tar
-rw-r–r– 1 root root 142 5月14 09:11 wenjian.c
[root@localhost kk]#
本例使用指令“rm -rf temp/”,删除当前文件夹下的目录temp/。
【范例562】利用通配符删除文件。
[root@localhost kk]# ll //显示文件信息
总占用量 7392
-rw-r–r– 1 root root 8997 5月22 10:21 111
-rw-r–r– 1 root root 53 5月14 09:40 abc.c
-rw-r–r– 1 root root 97 5月13 15:53 a.c
-rw-r–r– 1 root root 97 5月13 15:42 a.c~
-rw-r–r– 1 root root 97 5月13 15:46 a.c@
-rw-r–r– 1 root root 5867520 5月28 14:53 bu
-rw-r–r– 1 root root 100 5月14 09:40 chch.c
-rw-r–r– 1 root root 205 5月14 09:11 cmh.c
-rw-r–r– 1 root root 7376 5月14 09:11 D.c
drwxr-xr-x 2 root root 4096 5月13 15:57 Desktop
-rw-r–r– 1 root root 675 5月14 09:11 fcntl.c
-rw-r–r– 1 root root 225 5月14 09:11 file.c
-rw-r–r– 1 root root 497 5月14 09:11 findconf.c
-rw-r–r– 1 root root 505 5月14 09:11 getcurtime.c
-rw-r–r– 1 root root 296 5月14 09:11 getsec.c
-rw-r–r– 1 root root 115 5月14 09:11 gettime.c
-rw-r–r– 1 root root 513 5月14 09:11 getusec.c
-rw-r–r– 1 root root 92 5月14 09:11 long.c
-rw-r–r– 1 root root 126 5月14 09:11 max.c
-rw-r–r– 1 root root 151 5月14 09:11 rand.c
-rw-r–r– 1 root root 101 5月14 09:11 sprintf.c
-rw-r–r– 1 root root 131 5月14 09:11 strrchr.c
-rw-r–r– 1 root root 1563 5月22 10:09 test
-rw-r–r– 1 root root 1471488 5月 3 16:10 unpv12e.tar
-rw-r–r– 1 root root 142 5月14 09:11 wenjian.c
[root@localhost kk]# rm -f f* //删除文件
[root@localhost kk]# ll //显示文件信息
总占用量 7368
-rw-r–r– 1 root root 8997 5月22 10:21 111
-rw-r–r– 1 root root 53 5月14 09:40 abc.c
-rw-r–r– 1 root root 97 5月13 15:53 a.c
-rw-r–r– 1 root root 97 5月13 15:42 a.c~
-rw-r–r– 1 root root 97 5月13 15:46 a.c@
-rw-r–r– 1 root root 5867520 5月28 14:53 bu
-rw-r–r– 1 root root 100 5月14 09:40 chch.c
-rw-r–r– 1 root root 205 5月14 09:11 cmh.c
-rw-r–r– 1 root root 7376 5月14 09:11 D.c
drwxr-xr-x 2 root root 4096 5月13 15:57 Desktop
-rw-r–r– 1 root root 505 5月14 09:11 getcurtime.c
-rw-r–r– 1 root root 296 5月14 09:11 getsec.c
-rw-r–r– 1 root root 115 5月14 09:11 gettime.c
-rw-r–r– 1 root root 513 5月14 09:11 getusec.c
-rw-r–r– 1 root root 92 5月14 09:11 long.c
-rw-r–r– 1 root root 126 5月14 09:11 max.c
-rw-r–r– 1 root root 151 5月14 09:11 rand.c
-rw-r–r– 1 root root 101 5月14 09:11 sprintf.c
-rw-r–r– 1 root root 131 5月14 09:11 strrchr.c
-rw-r–r– 1 root root 1563 5月22 10:09 test
-rw-r–r– 1 root root 1471488 5月 3 16:10 unpv12e.tar
-rw-r–r– 1 root root 142 5月14 09:11 wenjian.c
[root@localhost kk]#
本例使用指令“rm -f f*”,删除所有以字母f打头的文件。
【相关指令】
chattr、shred

vsftpd使用指南

分类:Linux  来源:网络  时间:2010-11-20 15:10:31

基本配置
1. 匿名服务器的连接(独立的服务器)
在/etc/vsftpd.conf(或在/etc/vsftpd/vsftpd.conf)配置文件中添加如下几项:
Anonymous_enable=yes            (允许匿名登陆)
Dirmessage_enable=yes             (切换目录时,显示目录下.message的内容)
Local_umask=022                      (FTP上本地的文件权限,默认是077)
Connect_form_port_20=yes        (启用FTP数据端口的数据连接)*
Xferlog_enable=yes                  (激活上传和下载的日志)
Xferlog_std_format=yes              (使用标准的日志格式)
Ftpd_banner=XXXXX                (欢迎信息)
Pam_service_name=vsftpd         (验证方式)*
Listen=yes                               (独立的VSFTPD服务器)*
注释:以上配置只能连接FTP服务器,不能上传和下载 注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项

2. 开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes          (开放上传权限)
Anon_mkdir_write_enable=yes    (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes                     (开放本地用户写的权限)
Anon_other_write_enable=yes    (匿名帐号可以有删除的权限)

3. 开启匿名服务器下载的权限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夹的属性,匿名帐户的权限相当于用户other,用户要开启它的读写执行的权限
(R)读—–下载 (W)写—-上传 (X)执行—-如果不开FTP的目录都进不去

4.普通用户FTP服务器的连接(独立服务器)
在配置文件中添加如下信息即可:
Local_enble=yes                       (本地帐户能够登陆)
Write_enable=no                       (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下载

5. 用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
Chroot_local_user=yes               (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
Chroot_list_enable=yes              (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可

6. 限制本地用户访问FTP
Userlist_enable=yes                    (用userlistlai 来限制用户访问)
Userlist_deny=no                        (名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/ (文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆

7. 安全选项
Idle_session_timeout=600(秒)        (用户会话空闲后10分钟)
Data_connection_timeout=120      (将数据连接空闲2分钟断)
Accept_timeout=60                     (将客户端空闲1分钟后断)
Connect_timeout=60                    (中断1分钟后又重新连接)
Local_max_rate=50000(bite)     (本地用户传输率50K)
Anon_max_rate=30000(bite)     (匿名用户传输率30K)
Pasv_min_port=50000                 (将客户端的数据连接端口改在
Pasv_max_port=60000                  50000—60000之间)
Max_clients=200                        (FTP的最大连接数)
Max_per_ip=4                            (每IP的最大连接数)
Listen_port=5555                        (从5555端口进行数据连接)

配置虚拟用户
虚拟用户的优点:匿名用户的权限限制比较方便,相关的配置选项比较多,而本地用户可以为每个用户设置密码,而虚拟用户则综合了两种用户的优点,可以为每个帐号设置独立的密码,同时也可以为每个帐户设置不同的权限。

建立虚拟用户

vi logins.txt 此文本文件的格式是:单数行为用户名,偶数行为密码

> upload

> 123456

> download

> 123456

> admin

> 123456

# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db
进如/etc/pam.d/中创建ftp.vu
在此文件中添加如下信息
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

(建立虚拟用户所要访问的ftp目录并设置仅virtual用户访问的权限和创建一个供下载实验的文件)

# mkdir /var/ftpsite
# useradd -d /var/ftpsite virtual;
# chmod 700 /var/ftpsite

vi /etc/vsftpd.conf在此文件中插入下面的配置语句

guest_enable=YES(启用虚拟用户)

guest_username=virtual(将虚拟用户映射为本地virtual用户)

pam_service_name=ftp.vu(指定PAM配置文件为ftp.vu)

user_config_dir=/etc/vsftpd_user_conf(指定不同虚拟用户配置文件的存放路径)

# mkdir /etc/vsftpd_user_conf

开放不同用户的不同权限 echo   “anon_world_readable_only=NO”> /etc/vsftpd_user_conf/download(开放download用户的下载权限——只能下载;注意这个不地方不要写成YES,否则 将不能列出文件和目录)

cp /etc/vsftpd_user_conf/download /etc/vsftpd_user_conf/upload

vi /etc/vsftpd_user_conf/upload,添加下列行

write_enable=YES (增加写权限)

anon_upload_enable=YES(增加上传权限)

anon_mkdir_write_enable=YES (增加创建目录的权限)

cp /etc/vsftpd_user_conf/upload /etc/vsftpd_user_conf/admin

增加一行:

anon_other_write_enable=YES(增加管理员用户的删除/重命名的权限)

测试

#vsftpd &

ftp 127.0.0.1

以用户名download和你设置的密码登录,ls,可以看到文件,下载,成功!put一个文件,提示Permission denied。rename test.file同样权限被拒绝;delete test.file同样不成功!

输入quit退出,以upload用户登录,OK!可以上传,下载,mkdir lsf,提示“/lsf” created;rename lsf lsf1提示Permission denied,删除文件同样不成功!

输入quit退出,以admin用户登录,可以有上述所有权限,然后rmdir lsf,提示Remove directory o [eration successful;delete test.file提示Delete operation successful!OK,大功告成了!

附:

vsftpd 的配置文件
描述
vsftpd.conf 可以用于控制 vsftpd, 以实现各种各样的功能. vsftpd 缺省到 /etc/vsftpd.conf 处查找此文件. 当然, 您也可以通过命令行参数进行指定. 这个命令行参数就是指 vsftpd 的配置文件. 对于想使用高级 inetd 管理的用户, 例如, xinetd, 则这个功能非常有用. 可以使用不同的配置文件来启动基于虚拟主机的每个服务.

格式
vsftpd.conf 的格式非常简单. 每行要么是注释, 要么是指令. 注释行以 # 开始, 将被忽略. 指令行格式如下:

选项=值

应当注意的一点是如果在 选项, = 和 值 之间存在空格, 将会报错.(译者注: 即三者之间不允许存在空格)

每项设定都有默认值, 这可以通过配置文件来修改.

布尔选项
下边是布尔选项的列表. 一个布尔选项的值可以被设为 YES 或 NO

allow_anon_ssl
只有在 ssl_enable 被激活时才有用. 如果设为 YES, 匿名用户将被允许使用安全的 SSL 联接.

默认: NO
anon_mkdir_write_enable
如果设为 YES, 匿名用户将允许在某些情况下创建目录. 这需要激活 write_enable 选项, 并且匿名 ftp 用户需要对父目录有写权限.

默认: NO
anon_other_write_enable
如果设为 YES, 匿名用户将拥有除 上载, 和创建目录 外更多的权限, 比如 删除和重命名. 通常不建议这么做, 但完整的配置文件是包括这一选项的.

默认: NO
anon_upload_enable
如果设为 YES, 匿名用户在某些情况下允许上载文件. 这需要将 write_enable 选项激活, 并且匿名用户应当对对应目录有写权限.

默认: NO
anon_world_readable_only
启用时, 将只允许匿名用户下载具有全球读权限的文件. 这将意味着 ftp 用户可以拥有自己的文件, 特别是前边提到的上载的文件.

默认: YES
anonymous_enable
用于控制是否允许匿名用户登录. 如果激活, ftp 和 anonymous 都将被视为匿名用户登录.

默认: YES
ascii_download_enable
如果被激活, 下载时将使用 ASCII 模式进行数据传输.

默认: NO
ascii_upload_enable
如果被激活, 上载时将使用 ASCII 模式进行数据传输.

默认: NO
async_abor_enable
如果被激活, 一个特别的 FTP 命令 “async ABOR” 将被激活. 只有某些 FTP 客户端需要使用这一特性. 另外, 这个特性并不是很好控制, 因此默认没有启用. 不幸的是, 如果没有启用这个特性, 某些 FTP 客户端在取消一个传输时就会挂起, 因此, 您可能希望启用它.

默认: NO
background
如果被激活, 并且 vsftpd 以 “listen” 模式启动, vsftpd 将会background 监听进程. 即 control will immediately be returned to the shell which launched vsftpd.

默认: NO
check_shell
注意! 这个选项只对构建时加入 non-PAM 参数的 vsftpd 有效. 如果令其失效, vsftpd 将不会检查有效用户的用于本地登录的 /etc/shells.

默认: YES
chmod_enable
如果被激活, 将允许使用 SITE CHMOD 命令. 注意! 这只对本地用户有效. 匿名用户从不允许使用 SITE CHMOD.

默认: YES
chown_uploads
如果被激活, 所有匿名上载的文件的宿主将会调整为 chown_username 中指定的用户. 这样就便于管理, 特别是从安全的角度考虑.

默认: NO
chroot_list_enable
如果被激活, 您需要提供一个需要将其限制于其家目录中的本地用户列表. 如果将 chroot_local_user 设为 YES 则意义稍有不同. 在此情况下, 此列表变成不需将用户限制于其家目录的用户的列表. 默认情况下,这个列表文件是 /etc/vsftpd.chroot_list, 但可以通过 chroot_list_file 选项来设定.

默认: NO
chroot_local_user
如果设为 YES, 本地用户, 在登录后将(默认)被限制在其家目录中. 警告: 此选项有安全隐患, 特别是在用户拥有上载权限, 或可以shell访问的时候. 如果您不清楚后果, 请不要启用它. 注意, 这些安全隐患并不是 vsftpd 所特有的. 所有的提供将本地用户进行目录限制的 FTP 守护进程有存在这种隐患.

默认: NO
connect_from_port_20
用于控制在服务器端, 是否使用端口20(ftp-data)进行数据联接. 基于安全的考虑, 有些客户端需要这样做. 相反, 禁用这个选项, 可以使 vsftpd 以较少特权运行.

默认: NO(但是在示例设置中启用了这个选项)
deny_email_enable
如果激活, 您应当提供一个禁止匿名用户用做密码的 e-mail 地址列表. 默认情况下, 这个列表文件为 /etc/vsftpd.banned_emails, 当然, 您可以通过 banned_email_file 选项指定.

默认: NO
dirlist_enable
如果设为 NO, 所有的目录列取命令都将被禁止.

默认: YES
dirmessage_enable
如果启用, 当用户首次进入一个新目录时, FTP 服务器将会显示欢迎信息. 默认情况下, 是扫描目录下的 .message 文件获取的, 当然, 您也可以通过 message_file 选项设定.

默认: NO(但是在示例设置中启用了这个选项)
download_enable
如果设为 NO, 所有的下载请求都将被拒绝.

默认: YES
dual_log_enable
如果启用, 将生成两个相似的日志文件, 默认在 /var/log/xferlog 和 /var/log/vsftpd.log 目录下. 前者是 wu-ftpd 类型的传输日志, 可以用于 标准工具分析. 后者是 vsftpd 自己类型的日志.

默认: NO
force_dot_files
如果激活, 以 . 开始的文件和目录在目录列取的时候将会被显示, 即使客户端没有使用 “a” 标识. 这不包括 “.” 和 “..” 目录

默认: NO
force_local_data_ssl
只有在 ssl_enable 被激活时才能使用. 如果被激活, 则所有的 非匿名用户 登录时都被强制使用安全 SSL 联接来传送接收数据.

默认: YES
force_local_logins_ssl
只有在 ssl_enable 被激活时才能使用. 如果被激活, 则所有的 非匿名用户 登录时都被强制使用安全 SSL 联接来传送密码.

默认: YES
guest_enable
如果启用, 所有非匿名用户都将以 “guest” 身份登录. guest 通过 guest_username 设定, 来映射到一个指定用户.

默认: NO
hide_ids
如果启用, 所有目录中的用户和组信息列取时都将显示为 “ftp”.

默认: NO
listen
如果启用, vsftpd 将以独立模式运行. 这就意味着 vsftpd 不能由类 inetd 来启动. vsftpd 应当直接执行. 由 vsftpd 自身监听和处理联接请求.

默认: NO
listen_ipv6
如 listen 参数, 所不同的是, vsftpd 将对 IPv6 接口进行监听, 而不是 IPv4 接口. 此参数 和 listen 参数相互独立.

默认: NO
local_enable
用于控制是否允许本地登录. 如果启用, /etc/passwd 中的普通帐号即可用于登录.

默认: NO
log_ftp_protocol
如果启用, 假若选项 xferlog_std_format 没有启用, 所有的 FTP 请求和应答都会被记录. 此选项对将对调试很有用.

默认: NO
ls_recurse_enable
如果启用, 此设置将允许用户使用 “ls -R”. 这有点安全威胁, 因为在大型站点的根目录下进行 ls -R 将会消耗很多资源.

默认: NO
no_anon_password
如果启用, 匿名用户登录将不再需要密码 – 可以直接登录.

默认: NO
no_log_lock
如果启用, 在写日志文件时, 将会阻止 vsftpd 使用文件锁定. 这个选项通常不会启用. 它的存在是为了处理操作系统的一个bug, 如 Solaris / Veritas 文件系统组合某些情况下试图锁定日志文件的现象.

默认: NO
one_process_model
如果你使用 Linux 2.4 内核, 您就可以使用一个不同的安全模式, 它只允许每个联接使用一个进程. 这有一点小小的安全问题, 但是提高了性能. 如果您不清楚后果, 或者您的站点要承受大量的并发用户联接时, 请不要启用此选项.

默认: NO
passwd_chroot_enable
如果启用, 同 chroot_local_user 一起使用, 就会基于每个用户创建限制目录, 每个用户限制的目录源于 /etc/passwd 中的家目录. 当家目录路径中包含 /./ 时, enotes that the jail is at that particular location in the path.
pasv_enable
如果数据传输时, 您不允许使用 PASV 模式, 则将此选项设为 NO

默认: YES
pasv_promiscuous
如果您要禁用 PASV 安全检查, 将此选项设置为 YES. 该检查用于确保数据传输联接与控制联接源于同一 IP 地址. 如果不清楚后果, 请不要启用此选项! 此选项只有在某些使用安全隧道的方案中才能正常使用, 或者需要 FXP 的支持.
默认: NO
port_enable
如果您不允许使用端口模式获取数据联接, 将此选项设置为 NO.

默认: YES
port_promiscuous
如果您想禁用端口安全检查, 将此选项设置为 YES. 此检查用于确认出站的数据只流向客户端. 搞清楚后果前,不要启用此选项!

默认: NO
run_as_launching_user
如果您希望可以由用户来启动 vsftpd, 将此选项设置为 YES. 当不能使用root登录时, 这通常很有用. 严重警告: 搞清楚后果前,不要启用此选项, 随意的启用此选项将会导致非常严重的安全问题. 特别是 vsftpd 没有/不能使用目录限制技术来限制文件访问时(甚至vsftpd是由root启动的). 一个愚蠢的替代方法是将选项 deny_file 设为 {/*,*..*}, 但是其可靠性并不能和限制目录相比, 甚至不在一个等级上. 如果启用此选项, 应当限制其它选项的使用. 例如, 非匿名登录, 上载文件宿主转换, 使用源自端口20的联接和低于 1024 的端口不会工作. 其它一些选项也可能受到影响.

默认值: NO
secure_email_list_enable
如果您要为匿名用户指定一个做为密码的邮件地址列表, 将此选项设置为 YES. 在不需要创建虚拟用户的情况下, 构建一个低安全性访问控制很有用. 如果启用, 匿名用户只有使用在 email_password_file 中指定的邮件地址做为密码, 才能登录. 文件格式是每行一个密码, 没有空格. 默认文件名是 /etc/vsftpd.email_passwords.

默认: NO
session_support
此选项用于控制 vsftpd 是否为登录保持会话. 如果保持会话, vsftpd 将会尝试和更新 utmp 和 wtmp. 如果使用 PAM 认证, 同时还会打开 pam_session, 直至登出. 如果不需要保持登录会话, 或许您希望禁用此选项, 以使得 vsftpd 占用更少的进程和/或更少的特权. 注意 – utmp 和 wtmp 只有在启用 PAM 的情况下才支持.

默认: NO
setproctitle_enable
如果启用, vsftpd 将会尝试在系统进程列表中显示会话状态信息. 也就是说, 进程报告将会显示每个 vsftpd会话在做什么 (闲置, 下载 等等). 出于安全的考虑, 您可能需要将其关闭.

默认: NO
ssl_enable
如果启用此选项, 并在编译时加入 OpenSSL 支持, vsftpd 将支持通过 SSL 进行安全联接. 此选项用于控制联接(包括登录) 以及数据联接. 您可能同时需要支持SSL的客户端. 注意!! 小心启用此选项. 仅在需要时才启用. vsftpd 对使用 OpenSSL 库的安全性不做任何担保. 启用此选项, 就意味着您相信所安装的 OpenSSL 库的安全性.

默认: NO
ssl_sslv2
只有激活 ssl_enable 选项时才有效. 如果启用, 此选项将允许使用 SSL v2 协议进行联接. TLS v1 仍为首选联接.

默认: NO
ssl_sslv3
只有激活 ssl_enable 选项时才有效. 如果启用, 此选项将允许使用 SSL v3 协议进行联接. TLS v1 仍为首选联接.

默认: NO
ssl_tlsv1
只有激活 ssl_enable 选项时才有效. 如果启用, 此选项将允许使用 TLS v1 协议进行联接. TLS v1 仍为首选联接.

默认: YES
syslog_enable
如果启用, 任何本来应该输出到 /var/log/vsftpd/vsftpd.log 的日志, 将会输出到系统日志中. 记录由 FTPD 完成.

默认: NO
tcp_wrappers
如果启用, 并且在编译 vsftpd 时加入了对 TCP_Wrappers 的支持, 则连入请求转由 TCP_Wrappers 完成访问控制. 另外, 这是基于每个IP的配置机制. 如果 tcp_wrappers 设置了 VSFTPD_LOAD_CONF 环境变量, 则 vsftpd 会话将会试图加载在此变量中指定的 vsftpd 配置文件.

默认: NO
text_userdb_names
默认情况下, 目录列取时在用户和组字段显示的是数字ID. 如果启用此选项,则可以得到文本名称. 基于性能的考虑, 默认情况下关闭此选项.

默认: NO
tilde_user_enable
如果启用, vsftpd 将试图解析类似 ~chris/pics 的路径名, 即跟着用户名的波型号. 注意, vsftpd 有时会一直解析 ~ 和 ~/ (这里, ~ 被解析称为初始登录路径). ~user 则只有在可以找到包含闲置目录的 /etc/passwd 文件时才被解析.

默认值: NO
use_localtime
如果启用, vsftpd 在列取目录时, 将显示您本地时区的时间. 默认显示为 GMT. 由 MDTM FTP 命令返回的时间同样也受此选项的影响.

默认: NO
use_sendfile
一个内部设定,用于测试在您的平台上使用 sendfile() 系统的性能.

默认: YES
userlist_deny
此选项只有在激活 userlist_enable 时才会有效. 如果您将此选项设置为 NO, 则只有在 userlist_file 文件中明确指定的用户才能登录系统. 当登录被拒绝时, 拒绝发生在被寻问命令之前.

默认: YES
userlist_enable
如果启用, vsftpd 将会从 userlist_file 选项指定的文件中加载一个用户名列表. 如果用户试图使用列表中指定的名称登录, 那么他们将在寻问密码前被拒绝. 这有助于阻止明文传送密码. 详见 userlist_deny.

默认: NO
virtual_use_local_privs
如果启用, 虚拟用户将拥有同本地用户一样的权限. 默认情况下, 虚拟用户同匿名用户权限相同, 这倾向于更多限制 (特别是在写权限上).

默认: NO
write_enable
用于控制是否允许 FTP 命令更改文件系统. 这些命令是: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE 和 SITE.

默认: NO
xferlog_enable
如果启用, 将会维护一个日志文件, 用于详细记录上载和下载. 默认情况下, 这个日志文件是 /var/log/vsftpd.log. 但是也可以通过配置文件中的 vsftpd_log_file 选项来指定.

默认: NO(但是在示例设置中启用了这个选项)
xferlog_std_format
如果启用, 传输日志文件将以标准 xferlog 的格式书写, 如同 wu-ftpd 一样. 这可以用于重新使用传输统计生成器. 然而, 默认格式更注重可读性. 此格式的日志文件默认为 /var/log/xferlog, 但是您也可以通过 xferlog_file 选项来设定.

默认: NO

数字选项
下边是数字选项的列表. 数字选项必须设置一个非负的整数. 为了便于umask选项, 同样也支持八进制数字. 八进制数字首位应为 0 .

accept_timeout
超时, 以秒计, 用于远程客户端以 PASV 模式建立数据联接.

默认: 60
anon_max_rate
允许的最大数据传输速率, 单位 b/s, 用于匿名客户端.

默认: 0 (无限制)
anon_umask
用于设定匿名用户建立文件时的 umask 值. 注意! 如果您要指定一个八进制的数字, 首位应当是 “0″, 否则将视作 10 进制数字.

默认: 077
connect_timeout
超时, 单位 秒, 用于响应 PORT 方式的数据联接.

默认: 60
data_connection_timeout
超时, 单位 秒, 用于设定空闲的数据连接所允许的最大时长. 如果触发超时, 则远程客户端将被断开.

默认: 300
file_open_mode
用于设定创建上载文件的权限. mask 的优先级高于这个设定. 如果想允许上载的文件可以执行, 将此值修改为 0777

默认: 0666
ftp_data_port
FTP PORT 方式的数据联接端口.(需要激活 connect_from_port_20 选项)

默认: 20
idle_session_timeout
超时, 单位 秒, 远程客户端的最大 FTP 命令间隔. 如果超时被触发, 远程客户端将被断开.

默认: 300
listen_port
如果 vsftpd 以独立模式启动, 此端口将会监听 FTP 连入请求.

默认: 21
local_max_rate
允许的最大数据传输速率, 单位 b/s, 用于限制本地授权用户.

默认: 0 (无限制)
local_umask
用于设定本地用户上载文件的 umask 值. 注意! 如果您要指定一个八进制的数字, 首位应当是 “0″, 否则将视作 10 进制数字.

默认: 077
max_clients
如果 vsftpd 以独立模式启动, 此选项用于设定最大客户端联接数. 超过部分将获得错误信息.

默认: 0 (无限制)
max_per_ip
如果 vsftpd 以独立模式启动, 此选项用于设定源于同一网络地址的最大联接数. 超过部分将获得错误信息.

默认: 0 (无限制)
pasv_max_port
为 PASV 方式数据联接指派的最大端口. 基于安全性考虑, 可以把端口范围指定在一样较小的范围内.

默认: 0 (可以使用任意端口)
pasv_min_port
为 PASV 方式数据联接指派的最小端口. 基于安全性考虑, 可以把端口范围指定在一样较小的范围内.

默认: 0 (可以使用任意端口)
trans_chunk_size
您可能不想修改这个设置, 如果有带宽限制, 可以尝试将此值设置为 8192.

默认: 0 (让vsftpd 自己选择一个更合理的设置)

字符选项
下边是字符选项列表

anon_root
此选项声明, 匿名用户在登录后将被转向一个指定目录(译者注: 默认根目录). 失败时将被忽略.

默认: (无)
banned_email_file
此选项用于指定包含不允许用作匿名用户登录密码的电子邮件地址列表的文件. 使用此选项需要启用 deny_email_enable 选项.
默认: /etc/vsftpd.banned_emails
banner_file
此选项用于指定包含用户登录时显示欢迎标识的文件. 设置此选项, 将取代 ftpd_banner 选项指定的欢迎标识.

默认: (无)
chown_username
用于指定匿名用户上载文件的宿主. 此选项只有在 chown_uploads 选项设定后才会有效.

默认;root
chroot_list_file
此选项用于指定包含被限制在家目录中用户列表的文件. 使用此选项, 需启用 chroot_list_enable . 如果启用了 chroot_local_user 选项, 此文件所包含的则为不会被限制在家目录中的用户列表.

默认: /etc/vsftpd.chroot_list
cmds_allowed
此选项指定允许使用的 FTP 命令(登录以后. 以及登录前的USER, PASS 和 QUIT), 以 逗号分割. 其它命令将被拒绝使用. 这对于锁定一个 FTP 服务器非常有效. 例如: mds_allowed=PASV,RETR,QUIT

默认: (无)
deny_file
此选项用于设定拒绝访问的文件类型(和目录名等). 此设定并不是对文件进行隐藏, 但是您不能对其操作(下载, 更换目录, 以及其它操作). 此选项非常简单, 不能用于严格的访问控制–文件系统的优先级要高一些. 然而, 此选项对于某些虚拟用户的设定非常有效. 特别是在一个文件可以通过各种名称访问时(可能时通过符号联接或者硬联接), 应当注意拒绝所有的访问方法. 与 hide_file 中给出名称匹配的文件会被拒绝访问. 注意 vsftpd 只支持正则表达式匹配的部分功能. 正因为如此, 您需要尽可能的对此选项的设置进行测试. 同时基于安全性考虑, 建议您使用文件系统自身的访问控制. 例如: deny_file={*.mp3,*.mov,.private}

默认: (无)
dsa_cert_file
此选项用于指定用于 SSL 加密联接的 DSA 证书的位置.

默认: (无 – 使用 RSA 证书)
email_password_file
此选项用于提供启用 secure_email_list_enable 选项, 所需要的可替代文件.

默认: /etc/vsftpd.email_passwords
ftp_username
用于处理匿名 FTP 的用户名. 此用的家目录即为匿名发 FTP 的根目录.

默认: ftp
ftpd_banner
用于替换首次连入 vsftpd 时显示的欢迎标识字符串.

默认: (无 – 显示默认 vsftpd 标识)
guest_username
参阅布尔选项 guest_enable . 此选项用于将 guest 用户映射到一个真实用户上.

默认: ftp
hide_file
此选项用于设定列取目录时, 要隐藏的文件类型(以及目录等). 尽管隐藏了, 知道其宿主的客户端仍然能对文件/目录等有完全访问权限. 与名称 hide_file 中包含的字符串匹配的项都将隐藏. 注意 vsftpd 只支持正则表达式匹配的部分功能. 例如: hide_file={*.mp3,.hidden,hide*,h?}

默认: (无)
listen_address
如果 vsftpd 以独立模式运行, 此设定用于修改默认(所有本地接口)监听地址. 格式为数字 IP 地址.

默认: (无)
listen_address6
如 listen_address, 不过应该指定为IPv6 监听器指定默认监听地址. 格式为标准 IPv6 地址格式.

默认: (无)
local_root
本选项用于指定本地用户(即, 非匿名用户)登录后将会转向的目录. 失败时将被忽略.

默认: (无)
message_file
此选项用于指定进入新目录时要查询的文件名. 这个文件的内容为显示给远程用户的欢迎信息. 使用此选项, 需要启用 dirmessage_enable 选项.

默认: .message
nopriv_user
用于指定一个用户, 当 vsftpd 要切换到无权限状态时, 使用此用户. 注意这最好是一个专用用户, 而不是用户 nobody. 在大多数机器上, 用户 nobody 被用于大量重要的事情.

默认: nobody
pam_service_name
用于指定 PAM 服务的名称.

默认: ftp
pasv_address
此选项为 vsftpd 指定一个 IP 地址, 用作对 PASV 命令的响应. IP 地址应该为数字模式.

默认: (无 – 即地址从连入的联接套接字中获取)
rsa_cert_file
此选项用于指定 SSL 加密联接所用 RSA 证书的位置.

默认: /usr/share/ssl/certs/vsftpd.pem
secure_chroot_dir
此选项用于指定一个空目录. 并且 ftp 用户不应对此目录有写权限. 当 vsftpd 不需要访问文件系统是, 此此目录做为一个限制目录, 将用户限制在此目录中.

默认: /usr/share/empty
ssl_ciphers
此选项用于选择 vsftpd 允许使用哪些 SSL 加密算法来用于 SSL 加密联接. 更多信息参阅 ciphers 的联机手册. 注意这样可以有效的防止对某些发现漏洞的算法进行恶意的远程攻击.

默认: DES-CBC3-SHA
user_config_dir
此选项用于定义用户个人配置文件所在的目录. 使用非常简单, 一个例子即可说明. 如果您将 user_config_dir 设置为 /etc/vsftpd_user_conf 并以用户 “chris”登录, 那么 vsftpd 将对此用户使用文件 /etc/vsftpd_user_conf/chris 中的设定. 此文件的格式在联机手册中有详细说明. 请注意, 不是每个设定都能影响用户的. 例如, 有些设定只在用户会话开始时起作用. 这包括 listen_address, banner_file, max_per_ip, max_clients, xferlog_file, 等等.

默认: (无)
user_sub_token
此选项需要和虚拟用户联合使用. 其将依据一个模板为每个虚拟用户创建家目录. 例如, 如果真实用户的家目录由选项 guest_username 指定为 /home/virtual/$USER, 并且将 user_sub_token 设定为 $USER, 当虚拟用户 fred 登入后, 将会进入(限制)目录 /home/virtual/fred. 如果 local_root 中包含了 user_sub_token 此选项也会起作用.

默认: (无)
userlist_file
此选项用于指定启用 userlist_enable 选项后需要加载文件的名称.

默认: /etc/vsftpd.user_list
vsftpd_log_file
此选项用于指定写入 vsftpd 格式日志的文件. 如果启用了 xferlog_enable, 而没有设定 xferlog_std_format 的话, 日志将只会写入此文件. 另为,如果设置了 dual_log_enable 的话, 日志同样会写入此文件. 更复杂一点, 如果您设置了 syslog_enable 的话, 输出将不会写入此文件, 而是写入系统日志文件.

默认: /var/log/vsftpd.log
xferlog_file
此选项用于指定写入 wu-ftpd 样式日志的文件名. 只有在 xferlog_enable 和 xferlog_std_format 做了相应设定, 才会记录此传输日志. 另外, 如果您设置了 dual_log_enable 选项, 也会记录此日志.

默认: /var/log/xferlog

 

Linux中locale设置字符集

分类:Linux  来源:网络  时间:2010-11-20 15:09:29

在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中 文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置:

1.    LC_COLLATE
定义该环境的排序和比较规则

2.    LC_CTYPE
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。

3.    LC_MONETARY
货币格式

4.    LC_NUMERIC
非货币的数字显示格式

5.    LC_TIME
时间和日期格式

6.    LC_MESSAGES
提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如

LANGUANE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”。

7.    LANG
LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL。

8.    LC_ALL
它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响。

一个例子:

设置前,使用默认locale:
debian:~# locale
LANG=”POSIX”
LC_CTYPE=”POSIX”
LC_NUMERIC=”POSIX”
LC_TIME=”POSIX”
LC_COLLATE=”POSIX”
LC_MONETARY=”POSIX”
LC_MESSAGES=”POSIX”
LC_PAPER=”POSIX”
LC_NAME=”POSIX”
LC_ADDRESS=”POSIX”
LC_TELEPHONE=”POSIX”
LC_MEASUREMENT=”POSIX”
LC_IDENTIFICATION=”POSIX”
LC_ALL=

设置后,使用zh_CN.GDK中文locale:

debian:~# export LC_ALL=zh_CN.GBK
debian:~# locale
LANG=zh_CN.UTF-8
LC_CTYPE=”zh_CN.GBK”
LC_NUMERIC=”zh_CN.GBK”
LC_TIME=”zh_CN.GBK”
LC_COLLATE=”zh_CN.GBK”
LC_MONETARY=”zh_CN.GBK”
LC_MESSAGES=”zh_CN.GBK”
LC_PAPER=”zh_CN.GBK”
LC_NAME=”zh_CN.GBK”
LC_ADDRESS=”zh_CN.GBK”
LC_TELEPHONE=”zh_CN.GBK”
LC_MEASUREMENT=”zh_CN.GBK”
LC_IDENTIFICATION=”zh_CN.GBK”
LC_ALL=zh_CN.GBK

“C”是系统默认的locale,”POSIX”是”C”的别名。所以当我们新安装完一个系统时,默认的locale就是C或POSIX。

在Debian中安装locales的方法如下:

· 通过apt-get install locales命令安装locales包
· 安装完成locales包后,系统会自动进行locale配置,你只要选择所需的locale,可以多选。最后指定一个系统默认的locale。这样系统就会帮你自动生成相应的locale和配置好系统的locale。

· 增加新的locale也很简单,用dpkp-reconfigure locales重新配置locale即可。

· 我们也可手动增加locale,只要把新的locale增加到/etc/locale.gen文件中,再运行locale-gen命令即可生成新的 locale。再通过设置上面介绍的LC_*变量就可设置系统的locale了。下面是一个locale.gen文件的样例。

· # This file lists locales that you wish to have built. You can find a list
· # of valid supported locales at /usr/share/i18n/SUPPORTED. Other
· # combinations are possible, but may not be well tested. If you change
· # this file, you need to rerun locale-gen.
· #
·zh_CN.GBK GBK
·zh_CN.UTF-8 UTF-8

要在Shell中正常显示系统的中文提示信息和支持中文输入。LANG和shell的编码配置需一致,并安装有中文locale。如:LANG和 shell的编码都配置成zh_CN.utf8,并安装有zh_CN.utf8这个locale。如果shell和LANG配置不同,则中文显示乱码;如 果LANG里设置的locale没有安装,则不能显示系统的中文提示信息,只会显示英文提示信息。