前言:测试环境Oracle DG开启了FLASHBACK有遇到过to timestamp的恢复场景,因为这个问题有了在sqlplus命令提示符前显示时间的需求,顺着也了解了下怎么在Linux、MySQL命令提示符前显示时间。
1. Linux命令提示符显示时间
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数,PS1的常用参数以及含义:
\d :代表日期,格式为weekday month date,例如:Wed Dec 12
\H :完整的主机名称-[root@chengyu ~]# vim /etc/hosts查看
\h :仅取主机的第一个名字,例如我的完整主机名为chengyu.test,则该值chengyu
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称 如:root
\v :BASH的版本信息
\w :完整的工作目录名称,~表示home目录
\W :利用basename取得工作目录名称,所以只会列出最后一个目录 如上例则只显示default
\# :下达的第几个命令
\$ :提示字符,root提示符为:# ,普通用户则为:$
先看下当前的PS1情况:
[root@chengyu ~]# echo $PS1
[\u@\h \W]$
加上日期和时间显示:
[root@chengyu ~]# vim /etc/profile
export PS1=’[\u@\h:\w\d-\t]\$ ’
[root@chengyu ~]# source /etc/profile
[root@chengyu:~Tue Jul 07-10:42:11]#
实际应用中,仅时间显示足够了:
[root@chengyu ~]# vim /etc/profile
export PS1=’[\u@\h:\t \w]\$ ’
[root@chengyu ~]# source /etc/profile
[root@chengyu:10:49:13 ~]#
2. Oracle命令提示符显示时间
先了解下sqlplus中用来改变提示符的SQLPROMPT:
SQL> define
DEFINE _DATE = "07-JUL-20" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "primdb" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1803000000" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0" (CHAR)
DEFINE _O_RELEASE = "1803000000" (CHAR)
要永久生效sqlplus提示符显示,可以根据需要修改$ORACLE_HOME/sqlplus/admin/glogin.sql:
[oracle@chengyu ~]$ vim $ORACLE_HOME/sqlplus/admin/glogin.sql
# 第一步alter时间呈现格式
alter session set NLS_DATE_FORMAT=‘HH24:MI:SS’;
set sqlprompt "_USER’@’_CONNECT_IDENTIFIER _date> "
修改后的显示效果:SYS@primdb 15:31:45>
-
显示日期+时间
# 临时修改
# 修改时间呈现格式
SQL> alter session set NLS_DATE_FORMAT=‘YYYY-MM-DD HH24:MI:SS’;
Session altered.
SQL> set sqlprompt “_date>”
2020-07-07 14:42:35>
# 永久修改
[oracle@chengyu ~]$ vim $ORACLE_HOME/sqlplus/admin/glogin.sql
alter session set NLS_DATE_FORMAT=‘YYYY-MM-DD HH24:MI:SS’;
set sqlprompt "_DATE SQL> "
2020-07-07 15:39:21 SQL> -
只显示时间
临时修改
SQL> set time on
14:43:32 SQL>
# 永久修改
[oracle@chengyu ~]$ vim $ORACLE_HOME/sqlplus/admin/glogin.sql
alter session set NLS_DATE_FORMAT=‘HH24:MI:SS’;
set sqlprompt "_DATE SQL> "
15:35:57 SQL>
3. MySQL命令提示符显示时间
先来看看MySQL客户端命令:mysql> help
- 使用MYSQL_PS1环境变量设置提示字符串:
[root@chengyu:11:35:36 ~]# export MYSQL_PS1="mysql:[\d] \R:\m:\s> "
- 使用–prompt选项在命令行上设置提示字符串:
[root@chengyu:11:42:18 ~]# mysql -uroot -p --prompt="mysql:[\d] \R:\m:\s> "
- 在配置文件my.cnf中设置该选项 :
[mysql]
prompt="mysql:[\d] \R:\m:\s> " - 以交互方式使用prompt(或\R)命令更改:
[root@chengyu:14:23:27 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 8.0.20 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql:[(none)] 14:23:32> prompt
Returning to default PROMPT of mysql:[\d] \R:\m:\s>
mysql:[(none)] 14:23:40> prompt mysql>
PROMPT set to 'mysql>'
mysql>prompt mysql:[\d] \R:\m:\s>
PROMPT set to 'mysql:[\d] \R:\m:\s> '
mysql:[(none)] 14:24:13>
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql:[dbcy] 14:27:13>
完毕!
2020年07月07日
12年4月工作伊始收到的钟哥的第一封信:未来有变数,心怀期待就有明天。
两座城,周末恋人,城巴票根是这份坚持的见证者。
12年末我们有了自己的第一辆车,钟哥开始了至今的每日的两城奔波,7个字—“呢呢,我到单位了”胜过甜言蜜语万千。
两座城,是坚持、是陪伴、是守候,是喜欢一个人的信念。—写在恋爱15年、毕业8年余,谨记珍惜!