首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Linux 下 sqlplus 退格鍵顯示 ^H 解決方案:stty erase 與 .profile 永久生效

     編輯:Oracle 教學

Linux 環境 sqlplus 退格鍵顯示 ^H 根因與兩種解決方案

在 Linux 終端進入 sqlplus 後,按 Backspace 顯示 ^H 而非刪除字符,是因為終端擦除字符設置與 sqlplus 期望不一致。提供臨時與永久兩種修復方案。

方案一:臨時生效(當前終端會話)

# 在啟動 sqlplus 前執行
stty erase '^H'
# 含義:將終端擦除字符設置為 Ctrl+H (ASCII 0x08),與 sqlplus 期望一致

方案二:永久生效(寫入用戶配置)

# 編輯當前用戶 .profile 或 .bashrc
echo "stty erase '^H'" >> ~/.profile
# 重新登錄或 source ~/.profile 生效

方案三:sqlplus 內部替代鍵

若不願修改終端設置,可在 sqlplus 內使用 Ctrl+Backspace 代替 Backspace 進行刪除。

原理補充

  • stty 用於設置終端 I/O 參數,erase 參數定義「刪除前一字符」的控制字符;
  • 不同終端模擬器發送的 Backspace 編碼可能為 0x7F (DEL) 或 0x08 (BS),sqlplus 歷史版本預期 0x08;
  • 設置 stty erase '^H' 將終端驅動層的擦除字符映射為 0x08,從而匹配 sqlplus。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved