[命令列] 配置顏色(windows cmd,powershell,linux console)
修改cmd的顏色
color=xy其中x(前景色)和y(背景色)分別可以取以下幾種值: 0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 淺綠色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色
例如color=28直接輸入color會恢復至預設設定。
修改powershell的顏色
先大致介紹一下powershell的相關資訊。powershell自己擁有很多cmdlet,將很多命令做了alias,例如‘dir’和‘ls’都指向get-childitem,這樣無論你習慣win還是linux的命令列,都可以用了。powershell的指令碼語法有自身特點,支援一些.net語法,可以自己寫一些函式實現某些功能,這裡介紹的主要是修改顏色的一些方法。首先,個性化的配置需要每次啟動都生效,那麼就需要有個使用者配置檔案。預設的powershell啟動時載入配置檔案可以在以下路徑中尋找。
假設我的配置檔案路徑在“C:\Users\GogdizzY\Documents\WindowsPowerShell\profile.ps1”描述 路徑 ----------- ---- 目前使用者、目前主機 $Home\[My ]Documents\WindowsPowerShell \Profile.ps1 目前使用者、所有主機 $Home\[My ]Documents\Profile.ps1 所有使用者、目前主機 $PsHome\Microsoft.PowerShell_profile.ps1 所有使用者、所有主機 $PsHome\Profile.ps1 設定檔路徑包含下列變數: - $PsHome 變數:用於存放 Windows PowerShell 的安裝目錄。 - $Home 變數:用於存放目前使用者的主目錄。
內容如下:
set-alias ll Get-ChildItemColor
function prompt
{
$my_path = $(get-location).toString()
$my_pos = ($my_path).LastIndexOf("\") + 1
if( $my_pos -eq ($my_path).Length ) { $my_path_tail = $my_path }
else { $my_path_tail = ($my_path).SubString( $my_pos, ($my_path).Length - $my_pos ) }
Write-Host ("[") -nonewline -foregroundcolor 'Green'
Write-Host ("Gogdizzy") -nonewline -foregroundcolor 'Red'
Write-Host ("@") -nonewline -foregroundcolor 'Yellow'
Write-Host ("WIN7 ") -nonewline -foregroundcolor 'Magenta'
Write-Host ($my_path_tail) -nonewline -foregroundcolor 'Blue'
Write-Host ("]#") -nonewline -foregroundcolor 'Green'
return " "
}
function Get-ChildItemColor {
<#
.Synopsis
Returns childitems with colors by type.
.Description
This function wraps Get-ChildItem and tries to output the results
color-coded by type:
Directories - Cyan
Compressed - Red
Executables - Green
Text Files - Gray
Image Files - Magenta
Others - Gray
.ReturnValue
All objects returned by Get-ChildItem are passed down the pipeline
unmodified.
.Notes
NAME: Get-ChildItemColor
AUTHOR: Tojo2000 < [email protected]>
#>
$regex_opts = ([System.Text.RegularExpressions.RegexOptions]::IgnoreCase `
-bor [System.Text.RegularExpressions.RegexOptions]::Compiled)
$fore = $Host.UI.RawUI.ForegroundColor
$compressed = New-Object System.Text.RegularExpressions.Regex(
'\.(zip|tar|gz|rar|7z|tgz|bz2), $regex_opts)
$executable = New-Object System.Text.RegularExpressions.Regex(
'\.(exe|bat|cmd|py|pl|ps1|psm1|vbs|rb|reg|sh), $regex_opts)
$text_files = New-Object System.Text.RegularExpressions.Regex(
'\.(txt|cfg|conf|ini|csv|log), $regex_opts)
$image_files = New-Object System.Text.RegularExpressions.Regex(
'\.(bmp|jpg|png|gif|jpeg), $regex_opts)
Invoke-Expression ("Get-ChildItem $args") |
%{
if ($_.GetType().Name -eq 'DirectoryInfo') { $Host.UI.RawUI.ForegroundColor = 'Cyan' }
elseif ($compressed.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Red' }
elseif ($executable.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Green' }
elseif ($text_files.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Gray' }
elseif ($image_files.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Magenta' }
else { $Host.UI.RawUI.ForegroundColor = 'Gray' }
echo $_
$Host.UI.RawUI.ForegroundColor = $fore
}
}
function Show-Color( [System.ConsoleColor] $color )
{
$fore = $Host.UI.RawUI.ForegroundColor
$Host.UI.RawUI.ForegroundColor = $color
echo ($color).toString()
$Host.UI.RawUI.ForegroundColor = $fore
}
function Show-AllColor
{
Show-Color('Black')
Show-Color('DarkBlue')
Show-Color('DarkGreen')
Show-Color('DarkCyan')
Show-Color('DarkRed')
Show-Color('DarkMagenta')
Show-Color('DarkYellow')
Show-Color('Gray')
Show-Color('DarkGray')
Show-Color('Blue')
Show-Color('Green')
Show-Color('Cyan')
Show-Color('Red')
Show-Color('Magenta')
Show-Color('Yellow')
Show-Color('White')
}
可以看到,通過alias,將ll命令關聯到Get-ChildItemColor,裡面通過檔案字尾來決定使用什麼顏色。Get-ChildItemColor是我從網上拷貝的,稍微作了修改。
另外我提供了兩個命令,Show-Color和Show-AllColor,如果你有任何需求,可以修改程式碼中的顏色。
定製個性化的prompt,這是通過重定義function prompt來實現的,即使用者的函式替代了系統提供的預設函式,裡面通過Write-Host中的-foregroundcolor選項,提供了彩色的命令提示符。
修改linux console的顏色
linux的ls命令本來就就有--color的選項,我使用secureCRT連線linux,所以直接在secureCRT裡面設定配色方案。下面講一下配置彩色的命令列提示符,linux是通過設定PS1變數來實現的。我的PS1變數內容如下:
export PS1 = '`_a=$?; if [ $_a -ne 0 ]; then _a=" "$_a; echo -ne "\[\e[s\e[1A\e[$((COLUMNS-2))G\e[31m\e[1;41m${_a:(-3)}\e[u\e[0m\]"; fi`\[\e[01;32m[\e[31m\u\e[[email protected]\e[35m\h \e[34m\W\e[32m\]]\$ '
這是我從一個人的博文中抄過來的,主要是在彩色的功能上增加了顯示錯誤程式碼的能力,下面解釋一下含義:_a=$?; if [ $_a -ne 0 ]; then _a=" "$_a;
$?是上一個命令的返回值,如果不是0,那必然是錯誤程式碼,將其儲存在$_a變數中,並在前面新增3個空格;echo -ne "\[\e[s\e[1A\e[$((COLUMNS-2))G\e[31m\e[1;41m${_a:(-3)}\e[u\e[0m\]";
'\e['是一個控制碼,緊跟在在這個控制碼後面的字元是由特殊含義的.'\e[s' 儲存當前游標位置
'\e[1A' 向上移動一行
'\e[$((COLUMNS-2))G' $COLUMNS變數儲存當前的行寬,相當於移動到最後一個位置的前兩個,實際是倒數第三個位置。
'\e[31m' 設定前景色為紅色
'\e[1;41m' 設定後景色為紅色,前景色加亮
'${a:(-3)}' 取a變數的後3個字元(這下知道前面為什麼加3個空格了?因為如果a的長度不夠3個,那麼需要用空格補夠,否則會出錯)
'\e[u' 恢復游標位置
'\e[0m' 取消顏色設定
注意,所有控制碼命令需要用'\['和'\]'包含起來。
\[\e[01;32m[\e[31m\u\e[[email protected]\e[35m\h \e[34m\W\e[32m\]]\$
這一段是對prompt的設定,主要是配置顏色,需要注意其中有控制碼相關的方括號,也有prompt內容的方括號。'\e[01,32m[' 顯示高亮,綠色的左方括號
['\e[31m\u' 顯示紅色使用者名稱(\u不是控制碼控制,而是PS1中內建的名稱),繼承高亮屬性。
'\e[[email protected]' 顯示黃色的@,繼承高亮屬性。
'\e[35m\h' 顯示粉色的主機名(\h是PS1內建名稱,顯示主機名),繼承高亮屬性。
'\e[34m\W' 顯示藍色路徑名(\W顯示相對路徑,\w顯示絕對路徑),繼承高亮。
'\e[32m\]' 結束了控制符,並且顏色設定為綠色,繼承高亮。
']\$ ' 顯示右方括號],然後顯示提示符(\$,當是root使用者時顯示#,其他使用者顯示$)
設定PS1會遇到的問題
有的系統似乎不識別\e這個控制符,要用\033代替。
有的系統設定後,按up鍵,檢視歷史命令,會發現提示符prompt消失了,這是因為有的系統對顏色控制符的要求比較嚴格,必需用“\[”和“\]”把每一個顏色控制符都包含進去。所以我上面所寫的PS1環境變數只是在某些系統中可以正確執行,但是放到另外一些系統中可能會有問題,修改如下:
'\[\e...\e...\e...\]' // 之前所說類似這樣的模式,只在頭和尾加1次
'\[\e...\]\[\e...\]\[\e...\]' // 改成這樣的模式,每個顏色控制符都加
相關推薦
[命令列] 配置顏色(windows cmd,powershell,linux console)
修改cmd的顏色 color=xy其中x(前景色)和y(背景色)分別可以取以下幾種值: 0 = 黑色 8 = 灰色 1 = 藍色 9 = 淡藍色 2 = 綠色 A = 淡綠色 3 = 淺綠色 B = 淡淺綠色
純命令列配置scst向windows提供iSCSI儲存資源
Ø fileio模式:預設情況下SCST的匯出模式是fileio。它允許使用檔案系統上的檔案或者塊裝置作為虛擬的SCSI裝置或光碟機,該模式可以充分利用linux的cache。預設情況下,由於效能的原因,VDISK FILEIO device使用write-back caching(寫回) 策略,對於一個穩
[命令列] 為windows cmd或powershell配置字型
其實powershell可以看成是cmd的增強版,就僅以powershell為例說明。 快捷方式增加了可選的內容 首先在桌面上建立一個powershell的快捷方式,右鍵》屬性,可以發現裡面有很多選項卡。其中: 1> 選項:這裡面主要是配置內碼表(codepage)
已有的exe,始終帶引數執行,不需要每次輸入命令列的方法(create sfx archive)
原始需求:由於讓其他人操作時,可能由於看錯或者是手動輸入錯誤,導致命令列引數並不是符合預期的值,結果不能得到想要的結果 工具:winrar 英文中文都可以(不能使用快壓,快壓沒有這個功能)--自行下載(我的資源裡也可以找到) 操作方法: 開啟rar, 選擇要進行自解壓格式的exe檔案,然
Hive命令列常用操作(資料庫操作,表操作)
資料庫操作 檢視所有的資料庫 hive> show databases ; 使用資料庫default hive> use default; 檢視資料庫資訊 hive > describe data
Win10 cmd命令列,Powershell,Linux子系統Ubuntu bash自動啟動ssh-agent
當從win10的cmd命令列,PowerShell,或者Ubuntu子系統訪問SSH伺服器或者SSH Git Server,可以使用證書登入。但是預設情況下,需要每次都輸入證書密碼(passphrase),很不方便。 &n
命令列編譯C++(Linux下、Windows下)
C++ 編譯過程 一般而言,對於 C++ 程式編譯有以下4個階段: 預處理(preprocessing) 對源程式中的偽指令(以#開頭的指令)和特殊符號進行處理。偽指令包括巨集定義、條件編譯指令、標頭檔案包含指令等。 編譯(compilation)
樹莓派3B命令列配置wifi,遠端桌面連線,擴充套件儲存
今天講解一下,剛上手樹莓派時經常會做得三件事情,樹莓派3B命令列配置wifi,遠端桌面連線和擴充套件儲存,在這對這三件事情做個總結,以免下次用的時候又得一個一個百度。 一、樹莓派3B命令列配置wifi 如果你有顯示器的話,直接開啟視覺化介面在右上角就可以視覺
雙網絡卡利用橋接的方式實現同時上內網和外網方法(比命令列配置路由表的操作要簡單)
【記錄一下網路資訊後面有用】進入網路連線,分別雙擊兩個網絡卡,點選詳細資訊先記錄下兩個網絡卡ip資訊;在我這裡外網ip是192.168.1.102,閘道器192.168.1.1,DNS:202.96.128.166/202.96.128.86;內網ip是192.168.2.243,內網不用域名解析的話只記ip
如何獲取Windows命令列引數資訊(和Linux中的ps -ef的輸出相似)
#列出所有程序資訊 CMD>wmic process #列出所有java程序 CMD>wmic process where caption="java.exe" 注:Windows最令網管詬病的地方就是命令列沒有Unix和Linux強大。但這種情況正在不斷改觀
安裝配置mysql(windows環境為例)
安裝配置mysql(windows環境為例) 1.安裝 從mysql官網下載,並按照說明進行安裝 2.安裝目錄 windows 下預設安裝目錄在 C:\Program Files\MySQL Notes:安裝完成後將C:\Program Files\My
eclipse---Eclipse+mingw+Qt綠色配置方法(Windows下)
2014年07月02日 15:33:52 deng_sai 閱讀數:1381 標籤: qtmingweclipse綠色配置 更多 個人分類: Qt 本配置需使用的檔案Eclipse+MinGW+qt-win-ope
MySQL:主從庫配置記錄(Windows系統)
伺服器配置: 阿里雲 2G 1M頻寬 作業系統:winow server 2012 首先確保所有需要的埠已經在平臺上添加了 安全組規則,打開了埠。 部署目的: 主從庫實現同步以及讀寫分離 主資料庫用於對資料庫進行 修改,
linux使用命令列配置顯示器的輸出解析度
說明:有時候圖形管理中最高的解析度被設定得很小,看著螢幕難受 1.顯示自己機器支援的解析度。以我自己的機器來說,最大支援8k,但設定的時候往往不能這麼大,因為還受到顯示器的解析度限制。綠色的VGA-0就是你的系統顯示的名字,留待後用 [[email protected] g
使用setx 命令新增環境變數(Windows)
背景 用GUI的方法可能新增環境變數可能會比較麻煩,為此可採用命令列操作的方式。 步驟 以管理員身份執行 cmd 輸入 setx \M "path" "%path%[new_path];"。其中\M開關表示新增系統變數,由於%path%` 本身是系統變數和使用者變數拼起來的,不能用此方法新增使用者
Linux命令列提示符顏色設定PS1
PS1顏色設定 參考文章(講得比較詳細):bashrc中PS1設定 顏色設定格式: 開始:\[\e[F;B;Cm\] 結束:\e[m 其中’F‘為字型顏色,編號30-37;’B‘為背景色,編號40~47;’C‘為程式碼。 可選顏色 F B 顏色 30 40 黑色 31 41
Centos 7(一)—— Centos 7 命令列版安裝(圖解)
使用VMware建立虛擬機器 點選下一步 點選下一步 下一步 選擇你要安裝的虛擬機器是哪種作業系統 選擇虛擬機器的安裝位置 選擇處理器 自定義記憶體 選擇網路 下一步 下一步 下一步就可
命令列配置zone
當伺服器連線到交換機的數量較多時,用命令列配置zone的優勢就體現出來了。 1.數量多的時候,在圖形介面容易點錯。 2.速度比較快 (以下是一臺新上架的一臺交換機,新連線的伺服器和儲存VNX5400) switchshow看到所有伺服器和儲存的埠連線到交換機的wwn(擷取的其中一部分) Index
git命令收集與整理(windows)
最近開始又撿起git,第一家公司用的就是git,一直掌握的也不深刻,就知道常用的幾個命令,雖然現在用svn,但是覺得git還是不能丟,遂又撿起來了。先總結一部分目前練習用到的,慢慢填補吧~ github荒廢太久了,偶爾也需要拔拔雜草什麼的,而且最近學react,正好可以上傳些demo。git都是
常用終端命令列Mac版(持續更新)
cd 進入當前目錄 ls 檢視當前目錄的內容 mkdir 建立一個目錄 pwd 顯示當前目錄的路徑名 rm 刪除檔案或目錄 sudo -s 獲取root許可權 vim 進入檔案 wq 儲存修改的檔案 先按下esc之後,:wq 退出檔案 to