前面我们对 Linux 下的 Shell 跟 Shell 中的 Bash 有了一个比较全面的了解,那么接下来就让我们一起来体验一下三个基本的 Shell 命令吧,它们分别是 date、cal 跟 bc 命令,希望借此可以让大家对 Shell 命令有个基本的认识。
一、date命令
顾名思义,date 命令是用来查看跟设置日期与时间用的,默认查看当前时间,此外我们还可以通过指定参数查看几天、几个月、几年之前或之后的时间与日期。如果想设置时间,需要先获得管理员权限。
常用参数:
-d <字符串>:显示指定字符串所描述的时间,而非当前时间 -s <字符串>:设置字符串所指定的时间 -u:显示当前的格林威治时间 +<字符串>:按字符串所指定的格式来显示时间
时间输出格式代码及其含义:
%% 打印百分号% %a 当前语言环境下的星期名缩写(如: 日,代表星期日) %A 当前语言环境下的星期名全称 (如:星期日) %b 当前语言环境下的月名缩写 (如:一,代表一月) %B 当前语言环境下的月名全称 (如:一月) %c 当前语言环境下的日期和时间 (如:2012年03月01日 星期四 22时30分48秒) %d 年月日中的日 (例如:01) %D 按“月/日/年”的格式显示日期,等价于 %m/%d/%y (如:03/01/12) %e 年月日中的日,十位的0作空格处理,等价于 %_d (如:07显示为 7) %F 按“年-月-日”的格式显示日期,等价于 %Y-%m-%d (如:2012-03-01) %h 等价于%b %H 小时(00-23) %I 小时(00-12) %j 当年的第几天(001-366) %k 时(0-23) %m 月份(01-12) %M 分(00-59) %n 换行 %N 纳秒(000000000-999999999) %p 当前处于"上午"或者"下午",未知时输出为空 %P 与%p 类似,但是输出小写字母 (英文环境下有效) %r 当前语言环境下的 12 小时时钟时间 (如:下午 10时55分21秒) %R 按24小时制“时:分”的格式显示当前时间,等价于 %H:%M (如:22:56) %s 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数 %S 秒(00-60) %t 输出制表符 Tab %T 按24小时制“时:分:秒”的格式显示当前时间,等于%H:%M:%S (如:22:58:17) %u 当前星期所对应的数字 (如:1 代表星期一) %U 一年中的第几周,以周日为每星期第一天 (00-53) %w 一星期中的第几日(0-6),0 代表周一 %W 一年中的第几周,以周一为每星期第一天(00-53) %x 当前语言环境下的日期描述 (如:2012年03月01日) %X 当前语言环境下的时间描述 (如:23时08分47秒) %y 年份最后两位数位 (00-99) %Y 阿拉伯数字表示的年份 %Z 系统设置的时区缩写 (例如,CST)
应用实例:
trevor@trevor-PC:~$ date "+This is a test for the command date" This is a test for the command date trevor@trevor-PC:~$ date "+现在的时间是(%X),现在的日期是(%x)" 现在的时间是(23时21分49秒),现在的日期是(2012年03月01日) trevor@trevor-PC:~$ date -d '3 day' 2012年 03月 04日 星期日 23:21:55 CST trevor@trevor-PC:~$ date -d '-2 month' 2012年 01月 01日 星期日 23:22:07 CST trevor@trevor-PC:~$ date -d '1 year' 2013年 03月 01日 星期五 23:22:23 CST trevor@trevor-PC:~$ date -u 2012年 03月 01日 星期四 15:22:49 UTC trevor@trevor-PC:~$ date 2012年 03月 01日 星期四 23:22:57 CST trevor@trevor-PC:~$ sudo date -s 20120719 [sudo] password for trevor: 2012年 07月 19日 星期四 00:00:00 CST trevor@trevor-PC:~$ sudo date -s "20120719 23:26:00" [sudo] password for trevor: 2012年 07月 19日 星期四 23:26:00 CST trevor@trevor-PC:~$ sudo date -s "23:26:00 2012-03-01" [sudo] password for trevor: 2012年 03月 01日 星期四 23:26:00 CST trevor@trevor-PC:~$ sudo date -s "23:28:00" sudo: timestamp too far in the future: Jul 19 23:27:00 2012 [sudo] password for trevor: 2012年 03月 01日 星期四 23:28:00 CST trevor@trevor-PC:~$ date +%Z CST trevor@trevor-PC:~$
二、cal命令
Cal 简写自英文单词 Calendar ,即日历的意思。而 Linux 下的 cal 命令则是用来查看日历用的。
常用参数:
-m <月份>: 显示今年指定月份的日历 -j :以凯撒历显示,即以元旦起的天数显示 -y :显示今年的年历
若只有一个参数,则代表年份(1-9999),显示该年的年历;若使用两个参数,则第一个参数代表月份,第二个参数代表年份;若没有参数则显示当前这个月的月历。 1752 年 9 月第 3 日起改用西洋新历,有 10 天被去除,所以该月份的月历有些不同,在此之前为西洋旧历。
应用实例:
trevor@trevor-PC:~/linux/linux100$ cal 三月 2012 一 二 三 四 五 六 日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 trevor@trevor-PC:~/linux/linux100$ cal -m 12 -j 十二月 2012 一 二 三 四 五 六 日 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 trevor@trevor-PC:~/linux/linux100$ cal 9 1752 九月 1752 一 二 三 四 五 六 日 1 2 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 trevor@trevor-PC:~/linux/linux100$
三、bc命令
bc 命令是 Linux 下基于命令行的计算器,支持对变量与编程语言进行解析与运算,可以进行比较复杂的计算。然而,我们常常只使用 bc 命令的基本功能,即完成简单的加减乘除运算。稍微再复杂一些,我们可以尝试将一些数学计算表达式交给 bc 计算。在不设置精确度的情况下,除法默认取整作结果,所以要进行精确的除法运算前,需要使用内部命令 scale 来设置精确度。运算结束后,输入 quit 或按“Ctrl+d”来退出 bc 计算器。
在bc上常用的运算符有:
加法(+)、减法(-)、乘法(*)、除法(/)(在没有使用内部命令 scale 设置精确度时候,自动取整)、指数(^)、求余数(%)。
运算演示:
trevor@trevor-PC:~/linux/linux100$ bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. (10+20+100-60/2)*2 200 3/2 1 scale=3 3/2 1.500 scale=4 1/3 .3333 quit trevor@trevor-PC:~/linux/linux100$
在 bc 内部输入计算表达式的时候,可以使用方向键来查阅历史计算结果,输入有误的时候可以使用 Backspace 键来撤销输入,结合方向键还能对输入进行修改,十分便捷易用。
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。