0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

超級漂亮的Shell介紹

jf_78858299 ? 來源:Linux中文社區(qū) ? 作者:Linux中文社區(qū) ? 2023-05-12 10:55 ? 次閱讀

1 zsh 介紹

1.1 Linux shell

Linux/Unix 提供了很多種 Shell,為毛要這么多 Shell?

難道用來炒著吃么?那我問你,你同類型的衣服怎么有那么多件?花色,質(zhì)地還不一樣。寫程序比買衣服復(fù)雜多了,而且程序員往往負(fù)責(zé)把復(fù)雜的事情搞簡單,簡單的事情搞復(fù)雜。牛程序員看到不爽的 Shell,就會自己重新寫一套,慢慢形成了一些標(biāo)準(zhǔn),常用的 Shell 有這么幾種,sh、bash、csh 等,想知道你的系統(tǒng)有幾種 shell,可以通過以下命令查看:

cat /etc/shells

顯示如下:

圖片

1.2 zsh 簡介

Zsh 是一個 Linux 下強(qiáng)大的 shell, 由于大多數(shù) Linux 產(chǎn)品安裝,以及默認(rèn)使用bash shell, 但是絲毫不影響極客們對 zsh 的熱衷, 幾乎每一款 Linux 產(chǎn)品都包含有 zsh,通常可以用 apt-get、urpmi 或 yum 等包管理器進(jìn)行安裝

Zsh 具有以下主要功能

  • 開箱即用、可編程的命令行補(bǔ)全功能可以幫助用戶輸入各種參數(shù)以及選項(xiàng)
  • 在用戶啟動的所有 shell 中共享命令歷史
  • 通過擴(kuò)展的文件通配符,可以不利用外部命令達(dá)到 find 命令一般展開文件名
  • 改進(jìn)的變量與數(shù)組處理
  • 在緩沖區(qū)中編輯多行命令
  • 多種兼容模式,例如使用 / bin/sh 運(yùn)行時可以偽裝成 Bourne shell
  • 可以定制呈現(xiàn)形式的提示符;包括在屏幕右端顯示信息,并在鍵入長命令時自動隱藏
  • 可加載的模塊,提供其他各種支持:完整的 TCP 與 Unix 域套接字控制,F(xiàn)TP 客戶端與擴(kuò)充過的數(shù)學(xué)函數(shù)
  • 完全可定制化

1.3 zsh 與 oh-my-zsh 終極配置

之前是因?yàn)榭吹竭@篇文章:終極 Shell——Zsh 才選擇使用 zsh,被它的自動完成、補(bǔ)全功能吸引了。官網(wǎng):www.zsh.org

選擇 oh-my-zsh, oh-my-zsh 是基于 zsh 的功能做了一個擴(kuò)展,方便的插件管理、主題自定義,以及漂亮的自動完成效果。

在 Github 上找關(guān)于 zsh 的項(xiàng)目時發(fā)現(xiàn)的,試用了一下覺得很方便,不用像上面文章里面提到的那么復(fù)雜,配置一些插件的名稱即可使用相應(yīng)的功能。

官網(wǎng):https://github.com/robbyrussell/oh-my-zsh

2 安裝 zsh

2.1 安裝 zsh

對于一般的 Ubuntu 系統(tǒng),配置好正確的源之后,就能直接鍵入以下命令安裝:

sudo apt-get install zsh

2.2 配置 zsh

zsh 的配置是一門大學(xué)問,這里不贅述,直接給出一個配置文件,大家可以下載后放入 zsh 配置文檔直接使用。(我的一個法國朋友手配的,相當(dāng)順手)

把. zshrc 拷貝到相應(yīng)用戶的 home 目錄即可 (也可以把你的 bash 的配置文件 ( /.bash_prorile 或者 /.profile 等) 給拷貝到 zsh 的配置文件~/.zshrc 里,因?yàn)?zsh 兼容 bash)

2.3 取代 bash,設(shè)為默認(rèn) shell

sudo usermod -s /bin/zsh username

或者

chsh -s /bin/zsh
chsh -s `which zsh`

如果要切換回去 bash:

chsh -s /bin/bash

當(dāng)然你實(shí)在不愿意把 zsh 當(dāng)成默認(rèn)的 shell, 而又想使用它, 那么你可以每次進(jìn)入是都使用zsh進(jìn)入, 而輸入exit退出

圖片

2.4 安裝 oh-my-zsh

直接用 zsh 會很蛋疼,因?yàn)?zsh 功能很強(qiáng)大但是太復(fù)雜,所以需要 oh-my-zsh 來將它簡單化

直接用 git 從 github 上面下載包

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

備份已有的 zshrc, 替換 zshrc

cp ~/.zshrc ~/.zshrc.orig
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

直接使用腳本安裝

cd oh-my-zsh/tools
./install.sh

你可以直接直接使用如下命令安裝

curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

wget

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

其本質(zhì)就是下載并執(zhí)行了 github 上的 install.sh 腳本, 該腳本位于oh-my-zsh/tools/install.sh

配置主題

oh-my-zsh 集成了大量的主題, 位于 oh-my-zsh/theme

配置主題, 可以通過修改~/.zshrc中的環(huán)境變量ZSH_THEME來完成

ZSH_THEME="agnoster" # (this is one of the fancy ones)

如果你覺得主題太多你可以選擇使用隨機(jī)模式, 來由系統(tǒng)隨機(jī)選擇

ZSH_THEME="random" # (...please let it be pie... please be some pie..)

圖片

詳細(xì)的主題信息, 可以參見 zsh 主題介紹

配置插件

修改~/.zshrc中plugins

plugins=(git bundler osx rake ruby)

詳細(xì)的插件信息, 可以參見 zsh 插件 Plugins 介紹

更新 oh-my-zsh

默認(rèn)情況下, 您將被提示檢查每幾周的升級. 如果你想我 ZSH 自動升級本身沒有提示你, 修改 `~/.zshrc

disable_update_prompt = true

禁用自動升級, 修改~/.zshrc

disable_auto_update = true

當(dāng)然你也可以選擇手動更新

如果你想在任何時間點(diǎn)升級(也許有人剛剛發(fā)布了一個新的插件,你不想等待一個星期?) 你只需要運(yùn)行:

upgrade_oh_my_zsh

卸載 oh-my-zsh

如果你想卸載oh-my-zsh, 只需要執(zhí)行uninstall_oh_my_zsh zsh, 從命令行運(yùn)行. 這將刪除本身和恢復(fù)你以前的 bash 或者 zsh 配置.

uninstall_oh_my_zsh zsh
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11171

    瀏覽量

    208473
  • UNIX
    +關(guān)注

    關(guān)注

    0

    文章

    296

    瀏覽量

    41371
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    361

    瀏覽量

    23234
收藏 人收藏

    評論

    相關(guān)推薦

    shell是什么?shell實(shí)現(xiàn)原理分析基于MM32 MCU的shell腳本源碼

    在前兩節(jié)中,我們講解了如何在MM32 MCU上使用shell來輔助開發(fā),分別介紹的是通過串口方式和J-Link RTT方式的shell,本次課程我們分析源碼來講解shell實(shí)現(xiàn)原理。
    發(fā)表于 12-02 15:58 ?2441次閱讀

    一個小而美的嵌入式shell - letter shell

    熟悉Linux的朋友的都知道,shell包裹在內(nèi)核之外的人機(jī)交互界面,用于用戶和內(nèi)核之間打交道的功能,類似于windows CMD。 通過Shell將輸入的命令與內(nèi)核通訊,好讓內(nèi)核可以控制硬件開正確
    的頭像 發(fā)表于 06-10 15:11 ?7955次閱讀
    一個小而美的嵌入式<b class='flag-5'>shell</b> - letter <b class='flag-5'>shell</b>

    Linux shell函數(shù)簡介和使用方法

    作為一個嵌入式 Linux 工程師,肯定需要編寫 shell 腳本進(jìn)行一些自動化工作。剛好,我最近就有類似需求——一鍵交叉編譯 DDS。本著“編寫漂亮代碼的原則”,我用到了 shell 函數(shù) 。
    發(fā)表于 08-25 16:21 ?1119次閱讀
    Linux <b class='flag-5'>shell</b>函數(shù)簡介和使用方法

    shell基本介紹及常用命令之shell介紹

    是“$”,在命令提示符后邊輸入命令即可和系統(tǒng)進(jìn)行交互操作。Ubuntu默認(rèn)的Shell是Bash(Bourne Again Shell)。Linux命令有很多,功能比較強(qiáng)大,下節(jié)我們簡單介紹一些常用
    發(fā)表于 08-15 09:28

    嵌入式學(xué)習(xí)-shell介紹

    是“$”,在命令提示符后邊輸入命令即可和系統(tǒng)進(jìn)行交互操作。Ubuntu默認(rèn)的Shell是Bash(Bourne Again Shell)。Linux命令有很多,功能比較強(qiáng)大,下節(jié)我們簡單介紹一些常用
    發(fā)表于 08-16 09:13

    米爾科技Linux Shell編程介紹

    Shell是用戶與內(nèi)核進(jìn)行交互操作的一種接口,是Linux最重要的軟件之一。
    的頭像 發(fā)表于 11-25 08:58 ?1591次閱讀
    米爾科技Linux <b class='flag-5'>Shell</b>編程<b class='flag-5'>介紹</b>

    shell 執(zhí)行命令_基于MM32 MCU的shell調(diào)試教程(二)

    在上一節(jié)中,我們講解了如何在MM32 MCU上使用shell來輔助開發(fā),介紹的是通過串口方式的shell,但是有時候我們硬件串口不多或者被占用,這樣通過串口方式的shell就無法使用了
    發(fā)表于 10-29 09:20 ?8次下載
    <b class='flag-5'>shell</b> 執(zhí)行命令_基于MM32 MCU的<b class='flag-5'>shell</b>調(diào)試教程(二)

    vxworks shell reboot命令不好用_基于MM32 MCU的shell調(diào)試教程(二)

    在上一節(jié)中,我們講解了如何在MM32 MCU上使用shell來輔助開發(fā),介紹的是通過串口方式的shell,但是有時候我們硬件串口不多或者被占用,這樣通過串口方式的shell就無法使用了
    發(fā)表于 10-29 10:36 ?8次下載
    vxworks <b class='flag-5'>shell</b> reboot命令不好用_基于MM32 MCU的<b class='flag-5'>shell</b>調(diào)試教程(二)

    如何在shell單元建立washer_靈動微課堂 | 基于MM32 MCU的shell調(diào)試教程(二)

    在上一節(jié)中,我們講解了如何在MM32 MCU上使用shell來輔助開發(fā),介紹的是通過串口方式的shell,但是有時候我們硬件串口不多或者被占用,這樣通過串口方式的shell就無法使用了
    發(fā)表于 10-29 10:51 ?2次下載
    如何在<b class='flag-5'>shell</b>單元建立washer_靈動微課堂 | 基于MM32 MCU的<b class='flag-5'>shell</b>調(diào)試教程(二)

    基于MM32 MCU的shell調(diào)試教程(二)

    在上一節(jié)中,我們講解了如何在MM32 MCU上使用shell來輔助開發(fā),介紹的是通過串口方式的shell,但是有時候我們硬件串口不多或者被占用,這樣通過串口方式的shell就無法使用了
    發(fā)表于 02-09 11:59 ?2次下載
    基于MM32 MCU的<b class='flag-5'>shell</b>調(diào)試教程(二)

    Linux開發(fā)_Shell腳本編程語言

    介紹Linux下Shell編程,介紹shell里語句、變量、函數(shù)、運(yùn)算符的使用。
    的頭像 發(fā)表于 09-17 15:39 ?1142次閱讀

    剖析Linux shell 函數(shù)實(shí)現(xiàn)

    作為一個嵌入式 Linux 工程師,肯定需要編寫 shell 腳本進(jìn)行一些自動化工作。剛好,我最近就有類似需求——一鍵交叉編譯 DDS。本著“編寫漂亮代碼的原則”,我用到了 **shell 函數(shù)** 。
    的頭像 發(fā)表于 05-12 10:27 ?460次閱讀
    剖析Linux <b class='flag-5'>shell</b> 函數(shù)實(shí)現(xiàn)

    Shell基本介紹及目錄常用命令

    01、Shell是什么?我們在剛開始接觸Linux的時候,經(jīng)常會聽到工程師提到Shell這個詞,那么Shell到底是什么呢?簡單的說,它是一個應(yīng)用,接收用戶命令,調(diào)用相應(yīng)的內(nèi)核接口函數(shù)或應(yīng)用程序,并
    的頭像 發(fā)表于 11-15 13:06 ?425次閱讀
    <b class='flag-5'>Shell</b>基本<b class='flag-5'>介紹</b>及目錄常用命令

    python shell怎么用

    Python Shell是一種交互式解釋器,可以通過命令行直接運(yùn)行Python代碼。在Shell中,可以輸入一行代碼并立即得到結(jié)果,非常適合于測試、嘗試新代碼或進(jìn)行簡單的任務(wù)。本文將詳細(xì)介紹
    的頭像 發(fā)表于 11-29 14:36 ?1025次閱讀

    shell具有的功能和特點(diǎn)

    Shell 是一個命令行解釋器,用于與操作系統(tǒng)進(jìn)行交互。它提供了一種方便的方式來執(zhí)行命令、管理文件和目錄、運(yùn)行程序等。以下是 Shell 的功能和特點(diǎn)的介紹: 命令執(zhí)行 Shell
    的頭像 發(fā)表于 08-30 14:48 ?259次閱讀