ubuntu使用oh my zsh美化終端

ubuntu使用oh my zsh美化終端

文章目錄

  • ubuntu使用oh my zsh美化終端
    • 1. 安裝zsh和oh my zsh
    • 2. 修改zsh主題
    • 3. 安裝zsh插件
    • 4. 將`.bashrc`移植到`.zshrc`
    • Reference

1. 安裝zsh和oh my zsh

首先安裝zsh

sudo apt install zsh

然后查看本地有哪些shell可以使用

cat /etc/shells 

將默認的shell切換為zsh

chsh -s /bin/zsh

然后安裝oh-my-zsh,參考官網提供的兩種安裝方式

sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

或者

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

2. 修改zsh主題

oh-my-zsh內置了很多主題,可以進入路徑~/.oh-my-zsh/themes下進行查看,如圖所示

Image

如果想要修改成自己喜歡的主題,可以

sudo gedit ~/.zshrc

然后找到ZSH_THEME="xxxx",將其修改為已經安裝的主題就行,保存然后退出,打開終端

source ~/.zshrc

這里推薦一個主題powerlevel10k,只需要將其git到~/.oh-my-zsh/custom/themes/powerlevel10k目錄下即可,

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

然后再配置~/.zshrc文件

sudo gedit ~/.zshrc

修改為ZSH_THEME="powerlevel10k/powerlevel10k",然后source

source ~/.zshrc

效果如下

Image

3. 安裝zsh插件

zsh的內置插件可以在路徑~/.oh-my-zsh/plugins中進行查看,如下圖所示

Image

別的插件可以在:awesome-zsh-plugins進行查找

這里推薦兩個插件,第一個是支持自動補全的zsh-autosuggestions

zsh-autosuggestions

我們只需要將其git到路徑~/.oh-my-zsh/custom/plugins中,然后配置~/.zshrc文件即可

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

然后在~/.zshrc中把插件添加到插件列表中

plugins=(# other plugins...zsh-autosuggestions  # 插件之間使用空格隔開
)

然后source一下

source ~/.zshrc

zsh-syntax-highlighting 是一個命令語法校驗插件,在輸入命令的過程中,若指令不合法,則指令顯示為紅色,若指令合法就會顯示為綠色。

按照相同的流程,我們即可配置這個插件,將其git到~/.oh-my-zsh/custom/plugins

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

然后在~/.zshrc中將zsh-syntax-highlighting插入插件列表

plugins=(# other plugins...zsh-autosuggestionszsh-syntax-highlighting
)

然后source一下

source ~/.zshrc

4. 將.bashrc移植到.zshrc

筆者之前一直在使用bash然后配置了一些資源路徑,比如rosanaconda還有一些別的環境變量比如cudacudnn等,要進行移植其實很簡單,大部分的時候我們只需要將xxx.bash替換為xxx.zsh即可,然后別的一些環境變量的設置可以直接復制過去。舉個例子

這是我的.bashrc自己添加的部分

# >>> clash <<<
export PATH=$PATH:/opt/clash# >>> cuda <<<
export PATH=$PATH:/usr/local/cuda/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
# export CUDA_HOME=/usr/local/cuda-11.1# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/your_usr_name/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh" ]; then. "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh"elseexport PATH="/home/your_usr_name/miniconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<# >>> ros noetic <<< 
source /opt/ros/noetic/setup.bash
# >>> ros2 foxy <<<
# source /opt/ros/foxy/setup.bash# >>> ur5 workspace <<<
source /home/your_usr_name/Documents/catkin_ur5/devel/setup.bash
# >>> frcobot workspace <<<
source /home/your_usr_name/Documents/catkin_frco/devel/setup.bash# >>> pyorbbecsdk <<<
export PYTHONPATH=$PYTHONPATH:/home/your_usr_name/Documents/pyorbbecsdk/install/lib/

我將其放在.zshrc中就修改如下

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/your_usr_name/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh" ]; then. "/home/sjhyour_usr_nameminiconda3/etc/profile.d/conda.sh"elseexport PATH="/home/your_usr_name/miniconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<# >>> clash <<<
export PATH=$PATH:/opt/clash# >>> cuda <<<
export PATH=$PATH:/usr/local/cuda/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
# export CUDA_HOME=/usr/local/cuda-11.1# >>> ros noetic <<< 
source /opt/ros/noetic/setup.zsh
# >>> ros2 foxy <<<
# source /opt/ros/foxy/setup.zsh# >>> ur5 workspace <<<
source /home/your_usr_name/Documents/catkin_ur5/devel/setup.zsh
# >>> frcobot workspace <<<
source /home/your_usr_name/Documents/catkin_frco/devel/setup.zsh# >>> pyorbbecsdk <<<
export PYTHONPATH=$PYTHONPATH:/home/your_usr_name/Documents/pyorbbecsdk/install/lib/

Reference

[1]zsh 安裝與配置:9步打造高效命令行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18544.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18544.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18544.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用nexus搭建的nodejs私庫,定期清理無用的npm組件,徹底釋放磁盤空間

一、背景 昨天我們整理了一篇關于docker私庫&#xff0c;如何定期清理以釋放磁盤空間的文章。 雖然也提及了npm前端應用的組件該如何定期清理的&#xff0c;本文是對它作一個補充說明。 前文也看到了&#xff0c;npm組件占用的blob空間為180多GB&#xff0c;急需清理。 二、…

Flutter 中的 MouseRegion 小部件:全面指南

Flutter 中的 MouseRegion 小部件&#xff1a;全面指南 在 Flutter 中&#xff0c;MouseRegion 是一個非常有用的小部件&#xff0c;它允許你為部件添加鼠標事件&#xff08;如點擊、懸停、離開等&#xff09;。這在開發需要處理鼠標交互的應用時尤為重要。本文將詳細介紹 Mou…

100個 Unity小游戲系列三 -Unity 抽獎游戲專題一 轉盤抽獎游戲

一 、效果展示 二、知識點 2.1 布局需要實現功能 1、轉動的根目錄為itemSpinRoot 2、創建對應的item 3、每個item轉動的角度 2.2 代碼 public class WheelDialog : UIBase{[SerializeField] Button btnClick;[SerializeField] Button btnClose;[SerializeField] Sprite[] ite…

微信小程序(路由傳參)

微信小程序的路由系統和其他Web應用類似&#xff0c;主要通過頁面路徑和URL參數進行頁面導航和數據傳遞。下面詳細介紹微信小程序路由的基本使用方法和相關技巧。 1. 基本頁面導航 1.1 配置頁面路徑 在微信小程序的 app.json 文件中&#xff0c;需要配置小程序的頁面路徑。這…

哪有異地組網的工具?

不同地區的電腦與電腦、設備與設備、電腦與設備之間的信息遠程通信&#xff0c;一直是企業和個人面臨的難題。通過使用天聯組網的解決方案&#xff0c;這個問題將迎刃而解。 天聯組網解決方案 天聯組網是一種可以實現不同地區之間電腦、設備及其之間的信息遠程通信的解決方案。…

Trie字符串統計-java

Trie&#xff0c;又稱前綴樹或字典樹&#xff0c;是一種有序樹&#xff0c;用于保存關聯數組&#xff0c;其中的鍵通常是字符串。 目錄 前言? 一、Trie字符串統計? 二、算法思路? 1.Trie樹定義&#x1f319; 2.變量解釋&#x1f319; 3.插入操作&#x1f319; 4.Trie樹查找操…

vim文本編輯器相關用法

1. 引言 Vim&#xff0c;一個功能強大的文本編輯器&#xff0c;它在程序員和系統管理員中廣受歡迎。Vim是Vi的增強版&#xff0c;提供了一系列高級功能&#xff0c;包括語法高亮、代碼補全、多窗口編輯等。 2. Vim的安裝 Vim的安裝過程在不同的Linux發行版中略有不同。以下是…

MapStruct高級用法

MapStruct高級用法 依賴注入&#xff08;Using dependency injection&#xff09; Mapper(componentModel SPRING) public interface SpringMapper {SpringMapper MAPPER Mappers.getMapper(SpringMapper.class);PersonDTO personDoToDTO(Person person); }public static fin…

【class18】人工智能初步----語音識別(4)

【class17】 上節課&#xff0c;我們學習了: 語音端點檢測的相關概念&#xff0c;并通過代碼切分和保存了音頻。 本節課&#xff0c;我們將學習這些知識點&#xff1a;1. 序列到序列模型2. 循環神經網絡3. 調用短語音識別接口 知其然&#xff0c;知其所以然 在調用語…

數組單調棧-901. 股票價格跨度、leetcode

單調棧作為一種數據結構在求解類遞增、遞減方面的題目中有較為廣泛的應用&#xff0c;在以往的leetcode中所見到的相關單調棧的題目均為單一元素&#xff0c;今天刷到901題目時&#xff0c;想到了將數組元素作為單調棧中元素的方法進行求解。 題目鏈接及描述 901. 股票價格跨…

【c++leetcode】69. Sqrt(x)

問題入口 二分搜索 最困難的是能否意識到用二分搜索法解題。 算術平方根的區間在[1, x] 。代碼如下&#xff1a; class Solution { public:int mySqrt(int x) {if (x 1 || x 0){return x;}int64_t start 1;int64_t end x;while (start < x){int64_t mid start (en…

開源模型應用落地-Gradio正確集成Fastapi-助力模型交互-實踐篇(二)

一、前言 Gradio提供了直觀的用戶界面,當與Fastapi結合后,用戶可以通過界面輕松地與模型進行交互,上傳數據、獲取推理結果等,使得交互性增強,提升了用戶體驗。 在開源大語言模型遍地開花的時代,正確的使用Gradio和Fastapi,通過兩者的集成,使得模型的部署和使用過程更加…

以果決其行,只為文化的傳承

從他們每一個人的身上&#xff0c;我們看到傳神的東西&#xff0c;就是他們都能用結果&#xff0c;去指引自己前進的方向&#xff0c;這正是我要解讀倪海廈老師的原因&#xff0c;看倪海廈2012年已經去世&#xff0c;到現在已經十幾年時間了&#xff0c;但是我們看現在自學中醫…

【Pandas】深入解析`pd.to_sql()`函數

【Pandas】深入解析pd.to_sql()函數 &#x1f308; 歡迎蒞臨我的個人主頁&#x1f448;這里是我深耕Python編程、機器學習和自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;并樂于分享知識與經驗的小天地&#xff01;&#x1f387; &#x1f393; 博主簡介&#xff1…

2024年第六屆中青杯數學建模競賽淺析

獲取比賽資料&#xff0c;請關注gzh“小何數模”&#xff01; 本次中青杯數學建模的賽題已正式出爐&#xff0c;無論是賽題難度還是認可度&#xff0c;該比賽都是僅次于數模國賽的獨一檔&#xff0c;可以用于國賽前的練手訓練。考慮到大家解題實屬不易&#xff0c;為了幫助大家…

JavaSE:StringBuilder和StringBuffer類

1、引言 在上一篇文章中&#xff0c;我們理解了字符串的常用方法&#xff0c;細心的同學大概已經發現&#xff0c;不管是將字符串中的字符轉變為大寫或小寫&#xff0c;或是完成字符串的替換&#xff0c;又或是去除空白字符等等&#xff0c;只要涉及到字符串的修改&#xff0c…

【PB案例學習筆記】-10 進度條使用

寫在前面 這是PB案例學習筆記系列文章的第10篇&#xff0c;該系列文章適合具有一定PB基礎的讀者。 通過一個個由淺入深的編程實戰案例學習&#xff0c;提高編程技巧&#xff0c;以保證小伙伴們能應付公司的各種開發需求。 文章中設計到的源碼&#xff0c;小凡都上傳到了gite…

Java用反射reflect來實例化對象: class.getDeclaredConstructor().newInstance()

Java用反射reflect來實例化對象: class.getDeclaredConstructor().newInstance() 從java9開始, class.newInstance()已過時, 被加上Deprecated強烈反對注解 SuppressWarnings("removal")CallerSensitiveDeprecated(since"9")public T newInstance()throws …

防止自動化攻擊的最佳實踐

防止自動化攻擊的最佳實踐 在當今的網絡安全環境中&#xff0c;保護用戶賬戶免受自動化攻擊已成為每個網站和應用程序的重要任務。攻擊者可以利用多種不同類型的自動化攻擊來嘗試破壞用戶賬戶。本文將詳細介紹常見的攻擊類型及其防御機制&#xff0c;幫助您更好地保護用戶賬戶…

C# ManualResetEvent的用法

在C#中&#xff0c;ManualResetEvent類是一個同步基元&#xff0c;用于控制多個線程的執行順序。下面是一些ManualResetEvent類的常見用法&#xff1a; 等待一個事件的發生&#xff1a;可以使用ManualResetEvent的WaitOne方法來等待事件的發生。當事件被觸發時&#xff0c;Wait…