最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux使用zsh提高效率的5條建議

 更新時(shí)間:2018年10月12日 10:36:32   作者:Ricardo Gerardi  
今天小編就為大家分享一篇關(guān)于Linux使用zsh提高效率的5條建議,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

平時(shí)比較喜歡命令行,不喜歡從圖形化界面一個(gè)個(gè)的點(diǎn)過去;感覺還是命令搜索,查找方便些,快速些。但是,Bash本身提供的功能又不夠方便,自己也懶得折騰。幸得github上有前輩大神們開源的 zsh工具集,甚至方便。此工具可以很方便的統(tǒng)一我們的平時(shí)的命令,無論在mac,linux,unix上,基本都可以使用同樣的命令,配置。oh-my-zsh的提示功能非常強(qiáng)悍,插件功能更是牛x,支持各種語法著色等等,大神們又分享出自己平時(shí)常用的命令簡寫,值得平實(shí)用linux/mac的程序員們一試。我用zsh的時(shí)間也不短了,平實(shí)很少有命令需要我自己添加alias的,由此可見oh-my-zsh的alias功能很實(shí)用。

從github下載并安裝oh-my-zsh: https://github.com/robbyrussell/oh-my-zsh

Z shell(zsh)是 Linux 和類 Unix 系統(tǒng)中的一個(gè)命令解析器。 它跟 sh (Bourne shell) 家族的其它解析器(如 bash 和 ksh)有著相似的特點(diǎn),但它還提供了大量的高級特性以及強(qiáng)大的命令行編輯功能,如增強(qiáng)版 Tab 補(bǔ)全。

在這里不可能涉及到 zsh 的所有功能,描述它的特性需要好幾百頁。在本文中,我會列出 5 個(gè)技巧,讓你通過在命令行使用 zsh 來提高你的生產(chǎn)力。

1、主題和插件

多年來,開源社區(qū)已經(jīng)為 zsh 開發(fā)了數(shù)不清的主題和插件。主題是一個(gè)預(yù)定義提示符的配置,而插件則是一組常用的別名命令和函數(shù),可以讓你更方便的使用一種特定的命令或者編程語言。

如果你現(xiàn)在想開始用 zsh 的主題和插件,那么使用一種 zsh 的配置框架是你最快的入門方式。在眾多的配置框架中,最受歡迎的則是 Oh My Zsh。在默認(rèn)配置中,它就已經(jīng)為 zsh 啟用了一些合理的配置,同時(shí)它也自帶上百個(gè)主題和插件。

主題會在你的命令行提示符之前添加一些有用的信息,比如你 Git 倉庫的狀態(tài),或者是當(dāng)前使用的 Python 虛擬環(huán)境,所以它會讓你的工作更高效。只需要看到這些信息,你就不用再敲命令去重新獲取它們,而且這些提示也相當(dāng)酷炫。下圖就是我選用的主題 Powerlevel9k:

除了主題,Oh my Zsh 還自帶了大量常用的 zsh 插件。比如,通過啟用 Git 插件,你可以用一組簡便的命令別名操作 Git, 比如

$ alias | grep -i git | sort -R | head -10
g=git
ga='git add'
gapa='git add --patch'
gap='git apply'
gdt='git diff-tree --no-commit-id --name-only -r'
gau='git add --update'
gstp='git stash pop'
gbda='git branch --no-color --merged | command grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d'
gcs='git commit -S'
glg='git log --stat'

 zsh 還有許多插件可以用于許多編程語言、打包系統(tǒng)和一些平時(shí)在命令行中常用的工具。以下是我 Ferdora 工作站中用到的插件表:

git golang fedora docker oc sudo vi-mode virtualenvwrapper

2、智能的命令別名

命令別名在 zsh 中十分有用。為你常用的命令定義別名可以節(jié)省你的打字時(shí)間。Oh My Zsh 默認(rèn)配置了一些常用的命令別名,包括目錄導(dǎo)航命令別名,為常用的命令添加額外的選項(xiàng),比如:

ls='ls --color=tty'
grep='grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'

除了命令別名以外,zsh 還自帶兩種額外常用的別名類型:后綴別名和全局別名。

后綴別名可以讓你基于文件后綴,在命令行中利用指定程序打開這個(gè)文件。比如,要用 vim 打開 YAML 文件,可以定義以下命令行別名:

alias -s {yml,yaml}=vim

現(xiàn)在,如果你在命令行中輸入任何后綴名為 yml 或 yaml 文件,zsh 都會用 vim 打開這個(gè)文件。

$ playbook.yml
# Opens file playbook.yml using vim

全局別名可以讓你創(chuàng)建一個(gè)可在命令行的任何地方展開的別名,而不僅僅是在命令開始的時(shí)候。這個(gè)在你想替換常用文件名或者管道命令的時(shí)候就顯得非常有用了。比如:

alias -g G='| grep -i'

要使用這個(gè)別名,只要你在想用管道命令的時(shí)候輸入 G 就好了:

$ ls -l G do
drwxr-xr-x. 5 rgerardi rgerardi 4096 Aug 7 14:08 Documents
drwxr-xr-x. 6 rgerardi rgerardi 4096 Aug 24 14:51 Downloads

接著,我們就來看看zsh 是如何導(dǎo)航文件系統(tǒng)的

3、便捷的目錄導(dǎo)航

當(dāng)你使用命令行的時(shí)候,在不同的目錄之間切換訪問是最常見的工作了。 zsh 提供了一些十分有用的目錄導(dǎo)航功能來簡化這個(gè)操作。這些功能已經(jīng)集成到 Oh My Zsh 中了, 而你可以用以下命令來啟用它

setopt  autocd autopushd \ pushdignoredups

使用了上面的配置后,你就不用輸入 cd 來切換目錄了,只需要輸入目錄名稱,zsh 就會自動切換到這個(gè)目錄中:

$ pwd
/home/rgerardi
$ /tmp
$ pwd
/tmp

如果想要回退,只要輸入 -:

zsh 會記錄你訪問過的目錄,這樣下次你就可以快速切換到這些目錄中。如果想要看這個(gè)目錄列表,只要輸入 dirs -v:

$ dirs -v
0    ~
1    /var/log
2    /var/opt
3    /usr/bin
4    /usr/local
5    /usr/lib
6    /tmp
7    ~/Projects/Opensource.com/zsh-5tips
8    ~/Projects
9    ~/Projects/ansible
10   ~/Documents

如果想要切換到這個(gè)列表中的其中一個(gè)目錄,只需輸入 ~# (# 代表目錄在列表中的序號)就可以了。比如

$ pwd
/home/rgerardi
$ ~4
$ pwd
/usr/local

你甚至可以用別名組合這些命令,這樣切換起來就變得更簡單:

d='dirs -v | head -10'
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'

現(xiàn)在你可以通過輸入 d 來查看這個(gè)目錄列表的前10個(gè),然后用目錄的序號來進(jìn)行切換:

$ d
0    /usr/local
1    ~
2    /var/log
3    /var/opt
4    /usr/bin
5    /usr/lib
6    /tmp
7    ~/Projects/Opensource.com/zsh-5tips
8    ~/Projects
9    ~/Projects/ansible
$ pwd
/usr/local
$ 6
/tmp
$ pwd
/tmp

最后,你可以在 zsh 中利用 Tab 來自動補(bǔ)全目錄名稱。你可以先輸入目錄的首字母,然后按 TAB 鍵來補(bǔ)全它們:

$ pwd
/home/rgerardi
$ p/o/z (TAB)
$ Projects/Opensource.com/zsh-5tips/

以上僅僅是 zsh 強(qiáng)大的 Tab 補(bǔ)全系統(tǒng)中的一個(gè)功能。接來下我們來探索它更多的功能。

4、先進(jìn)的 Tab 補(bǔ)全

zsh 強(qiáng)大的補(bǔ)全系統(tǒng)是它的賣點(diǎn)之一。為了簡便起見,我稱它為 Tab 補(bǔ)全,然而在系統(tǒng)底層,它起到了幾個(gè)作用。這里通常包括展開以及命令補(bǔ)全,我會在這里用討論它們。如果想了解更多,詳見 用戶手冊。

在 Oh My Zsh 中,命令補(bǔ)全是默認(rèn)啟用的。要啟用它,你只要在 .zshrc 文件中添加以下命令:

autoload -U compinit
compinit

zsh 的補(bǔ)全系統(tǒng)非常智能。它會嘗試唯一提示可用在當(dāng)前上下文環(huán)境中的項(xiàng)目 —— 比如,你輸入了 cd 和 TAB,zsh 只會為你提示目錄名,因?yàn)樗榔渌捻?xiàng)目放在 cd 后面沒用。

反之,如果你使用與用戶相關(guān)的命令便會提示用戶名,而 ssh 或者 ping 這類則會提示主機(jī)名。

zsh 擁有一個(gè)巨大而又完整的庫,因此它能識別許多不同的命令。比如,如果你使用 tar 命令, 你可以按 TAB 鍵,它會為你展示一個(gè)可以用于解壓的文件列表:

$ tar -xzvf test1.tar.gz test1/file1 (TAB)
file1 file2

如果使用 git 的話,這里有個(gè)更高級的示例。在這個(gè)示例中,當(dāng)你按 TAB 鍵, zsh 會自動補(bǔ)全當(dāng)前庫可以操作的文件:

$ ls
original plan.txt zsh-5tips.md zsh_theme_small.png
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
 (use "git add <file>..." to update what will be committed)
 (use "git checkout -- <file>..." to discard changes in working directory)
    modified:  zsh-5tips.md
no changes added to commit (use "git add" and/or "git commit -a")
$ git add (TAB)
$ git add zsh-5tips.md

zsh 還能識別命令行選項(xiàng),同時(shí)它只會提示與選中子命令相關(guān)的命令列表:

$ git commit - (TAB)
--all         -a    -- stage all modified and deleted paths
--allow-empty          -- allow recording an empty commit
--allow-empty-message      -- allow recording a commit with an empty message
--amend             -- amend the tip of the current branch
--author            -- override the author name used in the commit
--branch            -- show branch information
--cleanup            -- specify how the commit message should be cleaned up
--date             -- override the author date used in the commit
--dry-run            -- only show the list of paths that are to be committed or not, and any untracked
--edit         -e    -- edit the commit message before committing
--file         -F    -- read commit message from given file
--gpg-sign       -S    -- GPG-sign the commit
--include       -i    -- update the given files and commit the whole index
--interactive          -- interactively update paths in the index file
--message       -m    -- use the given message as the commit message
... TRUNCATED ...

在按 TAB 鍵之后,你可以使用方向鍵來選擇你想用的命令。現(xiàn)在你就不用記住所有的 git 命令項(xiàng)了。

zsh 還有很多有用的功能。當(dāng)你用它的時(shí)候,你就知道哪些對你才是最有用的。

5、命令行編輯與歷史記錄

zsh 的命令行編輯功能也十分有用。默認(rèn)條件下,它是模擬 emacs 編輯器的。如果你是跟我一樣更喜歡用 vi/vim,你可以用以下命令啟用 vi 的鍵綁定。

$ bindkey -v

如果你使用 Oh My Zsh,vi-mode 插件可以啟用額外的綁定,同時(shí)會在你的命令提示符上增加 vi 的模式提示 —— 這個(gè)非常有用。

當(dāng)啟用 vi 的綁定后,你可以在命令行中使用 vi 命令進(jìn)行編輯。比如,輸入 ESC+/ 來查找命令行記錄。在查找的時(shí)候,輸入 n 來找下一個(gè)匹配行,輸入 N 來找上一個(gè)。輸入 ESC 后,常用的 vi 命令都可以使用,如輸入 0 跳轉(zhuǎn)到行首,輸入 $ 跳轉(zhuǎn)到行尾,輸入 i 來插入文本,輸入 a 來追加文本等等,即使是跟隨的命令也同樣有效,比如輸入 cw 來修改單詞。

除了命令行編輯,如果你想修改或重新執(zhí)行之前使用過的命令,zsh 還提供幾個(gè)常用的命令行歷史功能。比如,你打錯了一個(gè)命令,輸入 fc,你可以在你偏好的編輯器中修復(fù)最后一條命令。使用哪個(gè)編輯是參照 $EDITOR 變量的,而默認(rèn)是使用 vi。

另外一個(gè)有用的命令是 r, 它會重新執(zhí)行上一條命令;而 r <WORD> 則會執(zhí)行上一條包含 WORD 的命令。

最后,輸入兩個(gè)感嘆號(!!),可以在命令行中回溯最后一條命令。這個(gè)十分有用,比如,當(dāng)你忘記使用 sudo 去執(zhí)行需要權(quán)限的命令時(shí):

$ less /var/log/dnf.log
/var/log/dnf.log: Permission denied
$ sudo !!
$ sudo less /var/log/dnf.log

這個(gè)功能讓查找并且重新執(zhí)行之前命令的操作更加方便。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 用來記錄登錄后使用命令的shell腳本

    用來記錄登錄后使用命令的shell腳本

    記錄登錄后使用命令的shell腳本,歷史記錄,方便管理員查看記錄
    2013-02-02
  • 深入理解Shell輸出顏色與控制

    深入理解Shell輸出顏色與控制

    在Linux shell或者平時(shí)echo輸出時(shí)有時(shí)為了區(qū)分某些字符串的重要性,往往對其輸出內(nèi)容添加顏色以醒目區(qū)分。下面這篇文章就主要介紹了關(guān)于Shell輸出顏色與控制,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • 隱藏shell腳本內(nèi)容的工具?shc詳解

    隱藏shell腳本內(nèi)容的工具?shc詳解

    本文主要介紹了隱藏shell腳本內(nèi)容的工具?shc,?雖然它加密的安全性不高,但是我們平??梢园阉鳛橐粋€(gè)shell腳本代碼隱藏和混淆工具來使用,對shell腳本隱藏相關(guān)知識感興趣的朋友一起看看吧
    2021-11-11
  • Shell腳本實(shí)現(xiàn)服務(wù)器多臺免密登錄操作

    Shell腳本實(shí)現(xiàn)服務(wù)器多臺免密登錄操作

    本文介紹了auto_ssh_batch.sh腳本,用于在多臺RHEL/CentOS7主機(jī)之間快速配置SSH免密登錄,并支持遠(yuǎn)程傳輸腳本/文件及執(zhí)行命令,腳本通過pass文件提供統(tǒng)一認(rèn)證憑據(jù),nodes文件定義目標(biāo)主機(jī)列表,實(shí)現(xiàn)批量自動化操作,感興趣的朋友一起看看吧
    2025-03-03
  • Xshell全局去除提示音圖文方法詳解

    Xshell全局去除提示音圖文方法詳解

    這篇文章主要為大家介紹了Xshell全局去除提示音圖文方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • shell自動拉取鏡像并運(yùn)行容器的shell腳本

    shell自動拉取鏡像并運(yùn)行容器的shell腳本

    本文主要介紹了shell自動拉取鏡像并運(yùn)行容器的shell腳本,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Linux Shell腳本系列教程(三):變量和環(huán)境變量

    Linux Shell腳本系列教程(三):變量和環(huán)境變量

    這篇文章主要介紹了Linux Shell腳本系列教程(三):變量和環(huán)境變量,本文講解了普通變量、獲取字符串的長度、環(huán)境變量等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • 一個(gè)簡單的linux命令 touch

    一個(gè)簡單的linux命令 touch

    這篇文章主要介紹了一個(gè)簡單的linux命令touch,touch命令用來修改文件時(shí)間戳,或者新建一個(gè)不存在的文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Shell腳本實(shí)現(xiàn)監(jiān)控rsync數(shù)據(jù)是否傳輸完

    Shell腳本實(shí)現(xiàn)監(jiān)控rsync數(shù)據(jù)是否傳輸完

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)監(jiān)控rsync數(shù)據(jù)是否傳輸完,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12
  • 詳解shell腳本中的case條件語句介紹和使用案例

    詳解shell腳本中的case條件語句介紹和使用案例

    這篇文章主要介紹了詳解shell腳本中的case條件語句介紹和使用案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評論

安康市| 大名县| 钦州市| 沾化县| 勐海县| 九龙城区| 福鼎市| 五常市| 吉安县| 泌阳县| 上蔡县| 宁波市| 车险| 肥乡县| 策勒县| 汉寿县| 鲁山县| 襄樊市| 呼玛县| 张掖市| 元阳县| 定南县| 杭锦后旗| 西贡区| 项城市| 永康市| 长顺县| 永清县| 西乡县| 九江市| 沙湾县| 南澳县| 会宁县| 齐河县| 古浪县| 土默特左旗| 嘉荫县| 平舆县| 八宿县| 屏东市| 通城县|