Linux命令提示符太長

2021-08-22 19:47:42 字數 2838 閱讀 2423

在linux環境下使用終端,命令前會有命令提示符,一般包括使用者名稱、主機名、還有目錄名。如果命令提示符佔據絕大部分,留給我們輸入命令的空間就有限,當然也可以換行,但是這不夠直觀。

在我的終端裡,我實際的命令是cat spark-defaults.conf.template | grep "spark",但是因為使用者名稱、主機名和目錄名佔據了40%左右的空間,導致我的命令不能在一行完全輸入,當命令更加複雜的情況下很不直觀。

接下來我給出兩個解決辦法

1. 命令換行,即命令和命令提示符不在一行

2. 減少命令提示符的長度

解決方法是有了,但是怎麼執行呢?有關於命令提示符的修改在~/.bashrc檔案中,如果是root使用者,即/root/.bashrc,如果是普通使用者則是/home/使用者名稱/.bashrc

1.開啟.bashrc檔案

vim ~/.bashrc

注意:這裡檔名有個點,linux檔名開頭為.表示隱藏檔案,直接用ls命令是看不到的

2.找到有關命令提示符的語句

vim中輸入/@,查詢@這個字元(vim命令模式/可以查詢指定字元)。因為命令提示符是使用者名稱@主機名,所以我當時猜測相關語句應該有@這個字元,果不其然。

3.修改.bashrc

回到我們之前的兩個解決辦法

(1)換行

程式設計師都知道換行符是\n,在linux的shell中也不意外,所以我們在命令提示符結尾加入\n。可以看到這裡有個if語句,經過我的測試,else語句會被執行到,當然也可以和我一樣if和else後的語句都修改

然後執行source ~/.bashrc使之前的修改生效

(2)從命令提示符下手

命令提示符包括使用者名稱、主機名、目錄名,我們就將他們縮短或者不顯示也可以解決問題。

刪除使用者名稱

沒有多使用者需求的小夥伴可以採用此方法,像我就乙個使用者和root使用者,所以我就刪除了使用者名稱,將\u刪除即可,也可以一起刪除@這個字元,因為@是使用者名稱和主機名的分隔符,刪除了其中乙個,@自然也沒有存在的必要了

刪除使用者名稱和@

source一下檢視結果,如下:

刪除主機名

如果沒有ssh到其他主機需求的話,可以使用此方法。刪除@\h就可以了。

主機名和目錄名之間有個:,不需要的話也可以一併刪除

主機名被我刪除了,裡面沒有@\h字樣。

顯示當前目錄

如果不想顯示全路徑,只想顯示當前路徑名,可以把\w換成\w,小寫換成大寫。

為了演示,我採用多種方法來解決「命令提示符太長」這個問題,實際情況大家可以採用其中的一種。當然將使用者名稱和主機名縮短也是可以的,這也不需要修改.bashrc檔案

vim中使用/命令來搜尋命令

刪除了@之後可以通過:n來定位我們想要的行號,如我就採用了:67\d :代表日期,格式為weekday month date,例如:」mon aug 1」

\h :完整的主機名稱。例如:我的機器名稱為:fc4.linux,則這個名稱就是fc4.linux

\h :僅取主機的第乙個名字,如上例,則為fc4,.linux則被省略

\t :顯示時間為24小時格式,如:hh:mm:ss

\t :顯示時間為12小時格式

\a :顯示時間為24小時格式:hh:mm

\u :當前使用者的賬號名稱

\v :bash的版本資訊

\w :完整的工作目錄名稱。家目錄會以 ~代替

\w :利用basename取得工作目錄名稱,所以只會列出最後乙個目錄

$ :提示字元,如果是root時,提示符為:# ,普通使用者則為:$

Linux命令提示符

格式 mkdir 目錄名mkdir p 目錄名1 目錄名2 目錄名3 巢狀 注意 新建目錄的名稱不能與當前目錄中已有的目錄或檔案 同名示例 mkdir opt dir1mkdir p opt dir1 dir2 dir3 dir4 格式 rm 資料夾 有提示 rm f 資料夾 取消提示 rm rf ...

Linux命令提示符

1 命令提示符解釋 root localhost root 當前登入使用者名稱 localhost 當前主機名 當前所在目錄,不帶路徑 表示管理員,表示普通使用者 2 檢視命令提示符設定 1 root localhost echo ps1 2 u h w d 代表日期,格式為weekday mont...

命令提示符

cd 改變當前目錄 dir 顯示檔案列表 diskcopy 複製軟盤 format 格式化磁碟 md 建立子目錄 type 顯示檔案內容 rd 刪除目錄 ren 改變檔名 cls 清屏 正在執行命令的命令提示符 正在執行命令的命令提示符 適用場合 螢幕上太亂了,或是螢幕上出現亂碼了,清除螢幕上顯示內...