亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


如何在Linux上優(yōu)雅地寫代碼-Linux生存指南


avatar
小浪云 2025-01-03 169

初次接觸linux時,常常感到困惑,因為要頻繁地使用命令行界面,那個大黑框總是顯得晦澀難懂。即使翻閱各種手冊,使用vi/vim寫代碼也讓人感到不適。然而,linux下的工具卻擁有驚人的功能,遠遠超出我們的想象。如果你是linux的初學者,那么閱讀下面的內(nèi)容將會讓你的使用更加得心應(yīng)手、更加高效。

1. 拋棄man,使用tldr優(yōu)雅地閱讀手冊

1.1 簡潔明了

Linux系統(tǒng)中,幾乎一切操作都可以通過命令行完成,并且有著眾多豐富的命令行工具。然而,即使是最優(yōu)秀的程序員也無法記住所有的命令及其使用方法。當我們遇到需要執(zhí)行但又不熟悉的命令時,常常感到手足無措。比如,要使用tar命令進行打包或解壓縮,該如何操作呢?

有些人會打開搜索引擎,辛辛苦苦地查找答案,解決了問題,但很快又會遺忘。聰明的朋友可能會想到使用man命令,打開tar的手冊。然而,tar的手冊內(nèi)容通常都很冗長,讓人望而卻步。

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

又臭又長,需要你有較好的英語基礎(chǔ)和耐心。不僅僅是我們這么覺得,會英語的老外都覺得煩,于是有大神開發(fā)了tldr工具。tldr即Too Long;Didn’t Read的簡寫,太長不看。

使用方法和man一樣,比如查看tar命令的用法:

tldr?tar 

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

他的畫風如上,雖然還是英語(不要害怕英語,這是一個程序員的基本功),但是他給出了使用的例子!排版簡潔、清晰,收納了使用率高的例子。

比如你要解壓縮,看到這,

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

即使你的英語水平不高,憑有限的詞匯量, 你也能知道應(yīng)該用什么參數(shù)了吧,可讀性極強

1.2 安裝tldr

Ubuntu下安裝很簡單,執(zhí)行以下三條命令:

sudo?apt-get?install?nodejs sudo?apt-get?install?npm sudo?npm?install?-g?tldr 

如果出現(xiàn)了警告,有可能是因為nodejs版本問題,用以下命令升級nodejs

sudo?apt-get?install?nodejs-legacy sudo?npm?install?-g?n sudo?n?latest 

如果升級nodejs失敗,可能是Ubuntu版本問題,用以下命令安裝穩(wěn)定版nodejs:

sudo?n?stable sudo?node?-v 

然后再安裝tldr

sudo?npm?install?-g?tldr 

用以下命令可以對tldr更新

tldr?--update 

2. 讓你的終端分屏顯示

2.1 終端復(fù)用器(terminal multiplexer)

通過ssh登錄Linux只有一個命令行界面,用tmux,讓他分開!

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

如圖,一個界面分成很多塊,我們可以一邊寫程序,一邊查看其他東西。

可以任意調(diào)整各個窗格大小與數(shù)量

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

優(yōu)雅!一個命令即可安裝:

apt-get?install?tmux 

2.2 tmux操作

2.2.1 啟動tmux

直接輸入

tmux 

如圖,出現(xiàn) 綠色欄就說明進入tmux環(huán)境了。

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

2.2.2 退出tmux

一個exit命令即可退出。

exit 

2.2.3 分屏

左右分屏:在要分屏的窗格下輸入

tmux?split-windosw?-h 

上下分屏就是把-h換成-w。

2.2.4 切換當前窗格

記住ctrl+b是tmux的各種快捷鍵的啟動鍵

切換窗格步驟:

1.按ctrl+b,松開。2.按方向鍵,如要切換到右邊就按->。

2.2.5 調(diào)整窗格大小

先切換到要調(diào)整的窗格,然后:

1.按ctrl+b,不松開。2.按方向鍵

2.2.6 關(guān)閉一個窗格

先切換到要關(guān)閉的窗格,然后:

1.按ctrl+b,松開。2.按x。

什么?還不夠優(yōu)雅、高效,還是習慣在Windows下寫好,再放到Linux下編譯?

是的,這樣是正確的選擇,完全沒問題,但是如果不是寫大型項目,其實直接在Linux下使用vim/vi會更加優(yōu)雅!

vim/vi可不是記事本,他有著強大的查找、搜索、替換…..等功能,并且可以讓你完全脫離鼠標,屬于越用越喜歡的慢熱型。不過確實比較復(fù)雜,不想在這么優(yōu)雅的文章里介紹他,想學的可以看:

一文徹底解決vi/vim編輯器操作

上面的只是初級優(yōu)雅,真正的優(yōu)雅來了。

3. 管道配合printf調(diào)試程序

Linux下,gdb是一個很好的調(diào)試工具,不會用的可以學一下,在這篇文章中,我并不打算介紹gdb,而是教你用管道機制,利用Linux里一些命令配合printf來調(diào)試。

Linux 下程序可以協(xié)同工作,可以將一個命令/程序的輸出通過管道(Pipes)連接到另一個命令/程序的輸入,管道操作符是 |。

在程序中使用printf加入調(diào)試信息,或作為輸出信息,是常用的調(diào)試和輸出方法,但經(jīng)常會遇到打印出幾百行,不容易閱讀的情況。

3.1 基操:聯(lián)合grep找到想要的信息

比如一個輸出進程信息的程序,運行后很長(這里只展示了一部分)。

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

我們想看看包含system字樣的,只需:

./pstree.o?|grep?system 

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

ok,只輸出了含system的。

3.2 用head讓程序只輸出一部分

比如一個輸出信息特別多的程序,我們有時只想看幾行信息

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

編輯

-n后面的參數(shù)就是表示輸出的行數(shù)。這個操作看似作用不大,實則特別有用

比如一個程序,里面的printf會運行n次,為了測試程序,n可能很大,用head命令就相當于想讓他讓運行幾次就運行幾次!

寫一個簡單的程序模擬一下該情況:

#include? int?main?(int?argc,?char?**argv) { ????????int?i,j; ????????j?=?8; ????????for(i?=?0;i?if?(i?%?j?==?0)?{ ????????????????????????printf("0 "); ????????????????????????j++; ????????????????} ????????????????printf("1 "); ????????} } 

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

編輯

3.3 用sort排序輸出結(jié)果

sort的-u選項

在輸出行中去除重復(fù)行。

sort的-r選項

sort默認的排序方式是升序,想改成降序,加-r。

sort的-t選項和-k選項

如果一行的輸出有好幾個部分/列,比如:

a:1:30:d b:2:30:c f:1:1:a  

每行都有4列,列與列之間用冒號隔開了,我想用第4列排序,怎么辦?

加上-t選項,后面跟間隔符,指定了間隔符之后,用-k來指定列數(shù)。

另外,管道機制可以讓命令連用

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

3.4 uniq命令統(tǒng)計輸出結(jié)果

uniq命令不帶任何參數(shù)會刪除重復(fù)出現(xiàn)的行

-c??:?在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù) -d??:?僅顯示重復(fù)出現(xiàn)的行列 -u??:?僅顯示出一次的行列(沒有重復(fù)的) 

有了這個-c選項,再配合sort就可以統(tǒng)計輸出了

如何在Linux上優(yōu)雅地寫代碼-Linux生存指南

如上,表示 程序的前一百行輸出里0輸出了12次,1輸出了88次。

這些功能我們完全可以在自己寫的程序里實現(xiàn),然后調(diào)試,這并不難,但是也會麻煩,而且這都是為了調(diào)試我們的程序,跟我們程序功能實際上不沾邊,既然有現(xiàn)成的好用的輪子,為什么不用呢?

相關(guān)閱讀