LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1320|回复: 5

我知道行, 可我不知道如何让它行。 linux 默认情况下, date , ls -l 等等这些命令日期

[复制链接]
发表于 2011-9-6 22:15:41 | 显示全部楼层 |阅读模式
默认情况下,
我用 date , ls -l 这些命令。
列出来的文件日期格式都是类似于这样的。
drwxr-x--- 3 www-data www-data 4096 Sep  1 15:51 1

Tue Sep  6 22:14:12 CST 2011

显然这样的格式不是我所希望的。

我希望的格式是 xxxx-xx-xx xx:xx:xx

查找资料说是用默认的日期时间格式来显示的。那么如何修改默认的显示格式。
才可以让 date , ls -l 这些命令显示的时间是 2011-09-06 22:15:11
发表于 2011-9-7 13:31:27 | 显示全部楼层
  1. (0)[root@host:~]# date(用date命令查看当前的日期格式)
  2. Wed Sep  7 13:28:53 CST 2011(这就是当前的日期格式)
  3. (0)[root@host:~]# locale(用locale命令查看当前locale相关的一堆环境变量设置)
  4. LANG=en_US.UTF-8(语言是“美国英语,UTF-8编码”)
  5. LC_CTYPE="en_US.UTF-8"(不知道,自己google吧)
  6. LC_NUMERIC="en_US.UTF-8"(数字格式)
  7. LC_TIME="en_US.UTF-8"(时间格式)
  8. LC_COLLATE="en_US.UTF-8"(不知道,自己google)
  9. LC_MONETARY="en_US.UTF-8"(同上)
  10. LC_MESSAGES="en_US.UTF-8"(同上,不知道,自己google)
  11. LC_PAPER="en_US.UTF-8"(纸张格式,A3,A4.......等等)
  12. LC_NAME="en_US.UTF-8"(不解释了)
  13. LC_ADDRESS="en_US.UTF-8"
  14. LC_TELEPHONE="en_US.UTF-8"
  15. LC_MEASUREMENT="en_US.UTF-8"(这个,度量衡单位?)
  16. LC_IDENTIFICATION="en_US.UTF-8"
  17. [b][color="Blue"]LC_ALL=[/color][/b]
  18. (0)[root@host:~]# [color="Red"][b]export LC_ALL=zh_CN.UTF-8[/b][/color](export命令是给系统环境变量赋值)
  19. (0)[root@host:~]# date(再看现在的系统时间格式)
  20. 2011年 09月 07日 星期三 13:29:49 CST(是不是看着顺眼点儿了?)
  21. (0)[root@host:~]# locale(再看看现在的locale设置)
  22. LANG=en_US.UTF-8
  23. LC_CTYPE="zh_CN.UTF-8"
  24. LC_NUMERIC="zh_CN.UTF-8"
  25. LC_TIME="zh_CN.UTF-8"
  26. LC_COLLATE="zh_CN.UTF-8"
  27. LC_MONETARY="zh_CN.UTF-8"
  28. LC_MESSAGES="zh_CN.UTF-8"
  29. LC_PAPER="zh_CN.UTF-8"
  30. LC_NAME="zh_CN.UTF-8"
  31. LC_ADDRESS="zh_CN.UTF-8"
  32. LC_TELEPHONE="zh_CN.UTF-8"
  33. LC_MEASUREMENT="zh_CN.UTF-8"
  34. LC_IDENTIFICATION="zh_CN.UTF-8"
  35. [color="#0000ff"][b]LC_ALL=zh_CN.UTF-8[/b][/color]
  36. (0)[root@host:~]# ls -al / (再看看ls命令的输出,日期时间格式是不是变成你想要的了?)
  37. 总用量 64
  38. drwxr-xr-x  20 root root 4096  8月 21 06:02 .
  39. drwxr-xr-x  20 root root 4096  8月 21 06:02 ..
  40. drwxr-xr-x   2 root root 4096  8月 21 18:30 bin
  41. drwxr-xr-x   3 root root 4096  9月  5 23:04 boot
  42. drwxr-xr-x  15 root root 5160  9月  7 13:23 dev
  43. drwxr-xr-x  64 root root 4096  9月  7 09:53 etc
  44. drwxr-xr-x   4 root root 4096  8月 20 13:01 home
  45. drwxr-xr-x  10 root root 4096  9月  5 23:04 lib
  46. drwx------   2 root root 4096  8月 21 10:37 lost+found
  47. drwxr-xr-x   2 root root 4096  9月  6 19:37 media
  48. drwxr-xr-x   3 root root 4096  8月 29 00:25 opt
  49. dr-xr-xr-x 115 root root    0  9月  7 2011 proc
  50. drwxr-x---  16 root root 4096  9月  7 13:28 root
  51. drwxr-xr-x   5 root root  100  9月  7 08:18 run
  52. drwxr-xr-x   2 root root 4096  9月  1 16:54 sbin
  53. drwxr-xr-x   4 root root 4096  8月 10 07:41 srv
  54. drwxr-xr-x  12 root root    0  9月  7 2011 sys
  55. drwxrwxrwt  13 root root 4096  9月  7 13:28 tmp
  56. drwxr-xr-x  10 root root 4096  9月  5 23:04 usr
  57. drwxr-xr-x  14 root root 4096  8月 20 23:27 var
  58. (0)[root@host:~]# vi /etc/rc.conf(要想彻底改变系统默认的时间日期格式,就要编辑系统默认配置文件,Arch Linux是/etc/rc.conf这个文件)
  59. ......
  60. 18 [b][color="Red"]LOCALE="zh_CN.UTF-8"[/color][/b](把这行改成这样)
  61. 19 HARDWARECLOCK="localtime"
  62. 20 TIMEZONE="Asia/Chongqing"
  63. 21 KEYMAP="us"
  64. 22 CONSOLEFONT=
  65. 23 CONSOLEMAP=
  66. 24 USEcolor="yes"
  67. ......
  68. (重启系统看看吧)
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-9-12 21:34:15 | 显示全部楼层
小生愚钝, 没明白。
我只希望我在 ls 不加任何参数的时候,日期格式 yyyy-mm-dd
以及 date 的时候 日期格式 yyyy-mm-dd ...
如何实现,
目前我只知道 alias 。。 但这不是终极法则。
回复 支持 反对

使用道具 举报

发表于 2011-9-22 00:45:23 | 显示全部楼层
Post by 木人;2151659
小生愚钝, 没明白。
我只希望我在 ls 不加任何参数的时候,日期格式 yyyy-mm-dd
以及 date 的时候 日期格式 yyyy-mm-dd ...
如何实现,
目前我只知道 alias 。。 但这不是终极法则。

抱歉哈。你的问题就是系统的“locale”设置问题,不过本人才疏学浅解释不清。2楼我加了一些注释
简单说,就是:你可以用export命令给“LC_ALL”赋值为“zh_CN.UTF-8”,这样你的日期格式就变成你想要的了。不过这样做只在你本次登录的这个会话期间有效,要想永久改变,就要修改系统的默认设置。我用的是Arch Linux,修改方法就是编辑/etc/rc.conf这个文件,把里面的“LOCALE=”这行改成我上面给出的那样。如果是别的系统我手头没环境没法帮你。
至于Locale是个神马玩意,你Google一下答案很多。希望这次能帮到你
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-9-28 23:02:39 | 显示全部楼层
感谢你的热心, 我懂得你的意思, 设置locale 可以改变 日期的显示格式。
可我希望的是, 改变成我所期望的显示的日期格式, 并非 是中文的 年 月 日。
我知道 LC_ALL, LC_TIME, LC_CTYPE, 可以设置本地 信息的呈现格式。
可有没有办法修改这些格式。或者说修改成特定的格式。

换句话说。 date 在输出的时候。 会注意 locale 环境变量然后呈现出结果,
那 date 会不会像 ls 那样去感知 LS_COLORS 呵 TERM 环境变量, 去输入反馈结果。
如果date 会感知环境变量去呈现结果。 那么除了locale 以外是哪个环境变量呢。
回复 支持 反对

使用道具 举报

发表于 2011-9-30 07:52:30 | 显示全部楼层
  1. ~ $ ls --full-time
  2. total 20
  3. drwxr-xr-x  2 allen allen 4096 2011-09-30 07:36:44.960033395 +0800 Desktop
  4. drwxr-xr-x  9 allen allen 4096 2011-09-26 15:15:36.187909000 +0800 dev
  5. drwx------  5 allen allen 4096 2011-09-25 06:42:08.640841109 +0800 Documents
  6. drwxr-xr-x  4 allen allen 4096 2011-08-14 04:21:14.000000000 +0800 english
  7. drwxr-xr-x 24 allen allen 4096 2011-09-29 18:37:59.483952101 +0800 Pictures
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表