Linux、Oracle、MySQL命令提示符顯示時間

  前言:測試環境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

  prompt命令用於配置定義默認的“mysql>”提示的字符串,可以包含以下特殊字符:
有幾種設置prompt參數的方式:
  • 使用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年餘,謹記珍惜!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章