欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂Linux培訓簡述Linux使用zsh提高效率的5條建議

2019-03-18 15:12:26 2464瀏覽

本篇文章扣丁學堂Linux培訓小編給大家分享一下Linux使用zsh提高效率的5條建議,對Linux開發(fā)技術(shù)感興趣或者還是想要加入到Linux開發(fā)領(lǐng)域的小伙伴可以隨小編一起來了解一下哦。



扣丁學堂Linux培訓簡述Linux使用zsh提高效率的5條建議



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


在這里不可能涉及到zsh的所有功能,本文列出5 個技巧,讓你通過在命令行使用zsh 來提高你的生產(chǎn)力。



1、主題和插件


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


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


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


除了主題,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)和一些平時在命令行中常用的工具。以下是我們Ferdora工作站中用到的插件表:git golang fedora docker oc sudo vi-mode virtualenvwrapper


2、智能的命令別名


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


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


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


后綴別名可以讓你基于文件后綴,在命令行中利用指定程序打開這個文件。比如,要用 vim 打開 YAML 文件,可以定義以下命令行別名:alias -s {yml,yaml}=vim


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


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


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


alias -g G='| grep -i'要使用這個別名,只要你在想用管道命令的時候輸入 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 是如何導航文件系統(tǒng)的。



3、便捷的目錄導航


當你使用命令行的時候,在不同的目錄之間切換訪問是最常見的工作了。 zsh 提供了一些十分有用的目錄導航功能來簡化這個操作。這些功能已經(jīng)集成到 Oh My Zsh 中了, 而你可以用以下命令來啟用它setopt autocd autopushd \ pushdignoredups 使用了上面的配置后,你就不用輸入 cd 來切換目錄了,只需要輸入目錄名稱,zsh 就會自動切換到這個目錄中:


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


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


zsh 會記錄你訪問過的目錄,這樣下次你就可以快速切換到這些目錄中。如果想要看這個目錄列表,只要輸入 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


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


$ 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 來查看這個目錄列表的前10個,然后用目錄的序號來進行切換:


$ 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 來自動補全目錄名稱。你可以先輸入目錄的首字母,然后按 TAB 鍵來補全它們:


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


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



4、先進的 Tab 補全


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


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


autoload -U compinit
compinit


zsh 的補全系統(tǒng)非常智能。它會嘗試唯一提示可用在當前上下文環(huán)境中的項目 —— 比如,你輸入了 cd 和 TAB,zsh 只會為你提示目錄名,因為它知道其它的項目放在 cd 后面沒用。


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


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


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


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


$ 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..." to update what will be committed)
(use "git checkout --..." 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 還能識別命令行選項,同時它只會提示與選中子命令相關(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 鍵之后,你可以使用方向鍵來選擇你想用的命令?,F(xiàn)在你就不用記住所有的 git 命令項了。


zsh 還有很多有用的功能。當你用它的時候,你就知道哪些對你才是最有用的。



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


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


$ bindkey -v 


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


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


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


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


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


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


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


想要了解更多關(guān)于Linux開發(fā)方面內(nèi)容的小伙伴,請關(guān)注扣丁學堂Linux培訓官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育有專業(yè)的Linux講師為您指導,此外扣丁學堂老師精心推出的Linux視頻教程定能讓你快速掌握Linux從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂Linux技術(shù)交流群:422345477。


扣丁學堂微信公眾號


【關(guān)注微信公眾號獲取更多學習資料】



查看更多關(guān)于“Linux培訓資訊”的相關(guān)文章>>



標簽: linux系統(tǒng)入門學習 linux培訓 linux視頻教程 linux基礎(chǔ)教程 linux在線視頻 linux在線學習 linux從入門到精通 linux開發(fā)環(huán)境包 linux系統(tǒng) linux開發(fā)教程 扣丁學堂Linux培訓 如何用Linux設(shè)置護眼軟件

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部