非root用戶在linux中配置zsh(已解決ncurses-devel報錯)

Zsh(Z Shell)是一款功能強大的交互式 Unix shell,以其高度可定制性和豐富的功能著稱,被視為 Bash 的增強替代品。它支持智能補全、主題美化、插件擴展(如 Oh My Zsh 框架)、自動糾錯、全局別名等特性,顯著提升命令行操作效率與用戶體驗,成為開發者與系統管理員的首選工具之一。本篇博客針對非root用戶在linux中配置zsh進行介紹,看完你也可以在自己的用戶下配制好zsh

文章目錄

  • 一、安裝zsh
  • 二、安裝on my zsh
  • 三、配置on my zsh

一、安裝zsh

  1. 在用戶名下新建一個zsh的文件夾:
cd && mkdir zsh && cd zsh
  1. 下載最新版本的zsh,可以從這個鏈接看最新的zsh版本是什么download zsh,點擊就會下載最新的zsh,看看后面的版本號是什么,我這里是5.9,下面就下載5.9的,如果是其他版本的話,記得一起改。
wget https://sourceforge.net/projects/zsh/files/latest/download/zsh-5.9.tar.xz
  1. 解壓下載后文件
xz -d zsh-5.9.tar.xz
tar -xvf zsh-5.9.tar
cd zsh-xxx
  1. 編譯文件
./configure --prefix=$HOME/zsh
make && make install

這時候報錯:(如果沒有報錯,可以直接跳到安裝on my zsh)

configure: error: “No terminal handling library was found on your system.
This is probably a library called ‘curses’ or ‘ncurses’. You may
need to install a package called ‘curses-devel’ or ‘ncurses-devel’ on your
system.”

解決方案:
先配置好環境變量:

export CXXFLAGS="-fPIC"
export CFLAGS="-fPIC"
export NCURSES_HOME=$HOME/ncurses  # 這里表示家目錄的ncurses目錄,可以自己設置一個想要的路徑
export PATH=$NCURSES_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NCURSES_HOME/lib:$LD_LIBRARY_PATH
export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOME/lib"

配置好環境變量后,安裝最新版本的ncurses,可以點擊ncurses download查看最新版本,我這里是6.5,如果有更新的版本記得修改。

cd ../../ && mkdir ncurses && cd ncurses  # 切換到上級目錄新建ncurses文件夾wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz  # 下載最新版本ncurses
tar -xzvf ncurses-6.5.tar.gz  # 解壓
cd ncurses-6.5
# XXX需要改成最新的版本號./configure --prefix=$HOME/ncurses --with-shared --without-debug --enable-widec  
# 指定路徑configure,可以自己修改想要安裝的路徑,這里我裝到了家目錄的ncurses下面了
make && make install  # 安裝

配制好環境安裝好ncurses之后,再回到zsh路徑進行編譯

./configure --prefix=$HOME/zsh
make && make install

可以看到現在就能夠正常編譯了。

二、安裝on my zsh

  1. 首先需要更新PATH:
export PATH=$HOME/zsh/bin:$PATH
# 這里需要修改成你安裝的路徑

修改.bash_profile來自動切換到zsh:

vim ~/.bash_profile

將一下命令加到~/.bash_profile:

[ -f $HOME/zsh/bin/zsh ] && exec $HOME/zsh/bin/zsh -l

然后exc,輸入:wq保存退出。
2. 安裝on my zsh

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

在這里插入圖片描述

3.切換到zsh,現在就可以使用zsh了。

exec $HOME/zsh/bin/zsh

三、配置on my zsh

下載插件:

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

打開默認設置:

vim ~/.zshrc

修改配置文件以下兩處:

ZSH_THEME="ys"
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
  1. 重啟.zshrc
source ~/.zshrc
  1. 修改conda的配置文件,自啟動zsh:
vim   ~/.bashrc

在最下方添加:

exec $HOME/zsh/bin/zsh

然后更新~/.bashrc:

source ~/.bashrc

再新建終端時,zsh即可自己啟動,至此,非root用戶在linux中配置zsh完成!
在這里插入圖片描述

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

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

相關文章

《Foundations and Recent Trends in Multimodal Mobile Agents: A Survey》論文精讀筆記

論文鏈接:https://arxiv.org/pdf/2411.02006 摘要 文章首先介紹了核心組件,并探討了移動基準和交互環境中的關鍵代表性作品,旨在全面理解研究重點及其局限性。 接著,將這些進展分為兩種主要方法: 基于提示的方法&a…

npm安裝時一直卡住的解決方法

npm install 卡住通常是由于網絡問題或緩存問題導致的。以下是幾種解決方法: 方法1:清理npm緩存 npm cache clean --force npm install方法2:刪除node_modules和package-lock.json重新安裝 rm -rf node_modules package-lock.json npm instal…

[密碼學實戰]使用Java生成國密SM2加密證書等(四十三)

[密碼學實戰]使用Java生成國密SM2加密證書等(四十三) 本文將詳細介紹如何通過Java代碼生成符合國密標準的SM2加密證書,包括密鑰對生成、證書擴展屬性配置、PEM格式保存等關鍵步驟。 一. 運行結果示例 二. 國密算法與加密證書 國密算法(SM系列)是中國自主研發的密碼算法體…

從零開始之stm32之CAN通信

從小白的視角了解并實現簡單的STM32F103的CAN通信,直接上手。一、CAN協議簡介CAN總線上傳輸的信息稱為報文,當總線空閑時任何連接的單元都可以開始發送新的報文,有5種類型的幀:數據幀、遙控幀、錯誤幀、過載幀、幀間隔。數據幀有兩…

Java 課程,每天解讀一個簡單Java之利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示, * 60分以下

package ytr250812;/*題目:利用條件運算符的嵌套來完成此題:學習成績>90分的同學用A表示,60-89分之間的用B表示,* 60分以下*/import java.util.Scanner;public class GradeEvaluator {public static void main(String[] args) …

Word XML 批注范圍克隆處理器

該類用于處理 Word 文檔(XML 結構)中被批注標記的文本范圍, 實現指定內容的深度克隆,并將其插入到目標節點之后。 適用于在生成或修改 .docx 文件時復制批注內容塊。/*** Word XML 批注范圍克隆處理器* * 該類用于處理 Word 文檔&…

MQTT:Java集成MQTT

目錄Git項目路徑一、原生java架構1.1 導入POM文件1.2 編寫測試用例二、SpringBoot集成MQTT2.1 導入POM文件2.2 在YML文件中增加配置2.3 新建Properties配置文件映射配置2.4 創建連接工廠2.5 增加入站規則配置2.6 增加出站規則配置2.7 創建消息發送網關2.8 測試消息發送2.9 項目…

day 16 stm32 IIC

1.IIC概述1基于對話的形式完成,不需要同時進行發送和接收所以刪掉了一根數據線,變成半雙工2為了安全起見添加了應答機制3可以接多個模塊,且互不干擾4異步時序,要求嚴格,發送過程中不能暫停,所以需要同步時序…

AMD KFD的BO設計分析系列 0:開篇

開啟我始終不敢碰的GPU存儲系列,先上個圖把核心關系表達下,以此紀念。注:圖中kfdm_mm誤寫,應該為kfd_mm,不修改了,請大家不要介意。

EUDR的核心內容,EUDR認證的好處,EUDR意義

近年來,全球森林退化問題日益嚴峻,毀林行為不僅加劇氣候變化,還威脅生物多樣性和原住民權益。為應對這一挑戰,歐盟于2023年6月正式實施《歐盟零毀林法案》(EU Deforestation-free Regulation, EUDR)&#x…

數據分析專欄記錄之 -基礎數學與統計知識

數據分析專欄記錄之 -基礎數學與統計知識: 1、描述性統計 均值 data_set [10, 20, 30, 40, 50] mean sum(data_set)/len(data_set)np 里面的函數,對二維進行操作時, 默認每一列 mean1 np.mean(data_set) print(mean, mean1)s 0 for i…

《星辰建造師:C++多重繼承的奇幻史詩》

🌌🔥 《星辰建造師:多重繼承與this指針的終極史詩》 🔥🌌—— 一場融合魔法、科技與哲學的C奇幻冒險🌠🌌 序章:代碼宇宙的誕生 🌌🌠在無盡的代碼維度中&#…

云計算-OpenStack 運維開發實戰:從 Restful API 到 Python SDK 全場景實現鏡像上傳、用戶創建、云主機部署全流程

一、python-Restful Api 簡介 Restful API 是一種軟件架構風格,基于 HTTP 協議設計,通過統一的接口(如 URL 路徑)和標準的 HTTP 方法(GET/POST/PUT/DELETE 等)實現資源(如數據、文件等)的操作,具有無狀態、可緩存、客戶端 - 服務器分離等特點。方法如下 用 GET 請求獲…

RxJava 在 Android 中的深入解析:使用、原理與最佳實踐

前言RxJava 是一個基于觀察者模式的響應式編程庫,它通過可觀察序列和函數式操作符的組合,簡化了異步和事件驅動程序的開發。在 Android 開發中,RxJava 因其強大的異步處理能力和簡潔的代碼風格而廣受歡迎。本文將深入探討 RxJava 的使用、核心…

面試實戰 問題三十 HTTP協議中TCP三次握手與四次揮手詳解

HTTP協議中TCP三次握手與四次揮手詳解 在HTTP協議中,連接建立和斷開依賴于底層的TCP協議。雖然HTTP本身不定義握手過程,但所有HTTP通信都通過TCP三次握手建立連接,通過四次揮手斷開連接。以下是詳細解析:一、TCP三次握手&#xff…

讀《精益數據分析》:雙邊市場的核心指標分析

雙邊市場數據分析指南:從指標體系到實戰落地(基于《精益數據分析》框架)在互聯網平臺經濟中,雙邊市場(如電商、出行、外賣、自由職業平臺等)的核心矛盾始終是"供需平衡與效率優化"。這類平臺連接…

Queue參考代碼

queue.c #include "queue.h" #include "stdlib.h" // 初始化循環隊列 void initializeCircularQueue(CircularQueue *cq, uint8_t *buffer, uint32_t size) {cq->front 0;cq->rear 0;cq->count 0;cq->size size;cq->data buffer; }…

通過時間計算地固系到慣性系旋轉矩陣

通過時間計算地固系到慣性系旋轉矩陣 1. 引言 在航天工程和衛星導航領域,經常需要在地固坐標系(ECEF)和慣性坐標系(ECI)之間進行轉換。本文將詳細介紹如何根據UTC時間計算這兩個坐標系之間的旋轉矩陣,并提供完整的C語言實現。 2. 基本概念 2.1 坐標系定義…

【Datawhale AI 夏令營】金融文檔分析檢索增強生成系統的架構演變與方法論進展

# **金融文檔分析檢索增強生成系統的架構演變與方法論進展****第一部分:基礎原則和基線系統分析****第一部分:金融領域檢索增強生成范式的解構****第二部分:基線剖析:流水線的二分法****同步軌跡 (SimpleRAG)****異步改進 (AsyncS…

C語言相關簡單數據結構:順序表

目錄 1.順序表的概念及結構 1.1 線性表 如何理解邏輯結構和物理結構? 1.2 順序表分類 順序表和數組的區別: 順序表分類: 靜態順序表 動態順序表 1.3 動態順序表的實現 初始化 尾插 頭插 尾刪 頭刪 在指定位置之前插入數據 刪…