日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

最牛B 的 Linux Shell 命令(一)

發布時間:2024/4/11 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最牛B 的 Linux Shell 命令(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 引言??
  • ??
  • Shell作為Unix系操作系統當中最有魅力且不可或缺的組件,經過數十載的洗禮不僅沒有被淘汰,而且愈加變得成熟穩健,究其原因,大概因為它是個非常穩固的粘合劑,能夠把大量功能強大的組件任意配搭,總能很好很快地完成用戶的任務。??
  • ??
  • 本文的一些命令很可能看起來是“雕蟲小技”,我們只好仰慕一下Shell大牛了,但是有些細節我會稍加發掘加以說明,遇到有趣的地方希望能博您一笑了。??
  • ??
  • 1.以sudo運行上條命令??
  • ??
  • $?sudo?!!??
  • ??
  • 大家應該都知sudo,不解釋。但通常出現的情況是,敲完命令執行后報錯才發現忘了sudo。這時候,新手用戶就會:按上箭頭,按左箭頭,盯著光標回到開始處,輸入sudo,回車;高手用戶就蛋定多了,按Ctrl-p,按Ctrl-a,輸入sudo,回車。??
  • ??
  • 這里介紹這個是天外飛仙級別的,對,就直接sudo?!!。??
  • ??
  • 當然這幾種解決方式效果是完全一樣的,只是款不一樣,嗯,不解釋。??
  • ??
  • 兩個感嘆號其實是bash的一個特性,稱為事件引用符(event?designators)。!!其實相當于!-1,引用前一條命令,當然也可以!-2,!-50。默認情況下bash會在~/.bash_history?文件內記錄用戶執行的最近500條命令,history命令可以顯示這些命令。??
  • ??
  • 關于事件引用符的更多用法可以深入閱讀The?Definitive?Guide?to?Bash?Command?Line?History。??
  • ??
  • 2.以HTTP方式共享當前文件夾的文件??
  • ??
  • $?python?-m?SimpleHTTPServer??
  • ??
  • 這命令啟動了Python的SimpleHTTPServer模塊,考慮到Python在絕大多數的Linux發行版當中都默認安裝,所以這個命令很可能是最簡單的跨平臺傳文件的方法。??
  • ??
  • 命令執行后將在本機8000端口開放HTTP服務,在其他能訪問本機的機器的瀏覽器打開ttp://ip:8000即打開一個目錄列表,點擊即可下載。??
  • ??
  • 3.在以普通用戶打開的vim當中保存一個root用戶文件??
  • ??
  • :w?!sudo?tee?%??
  • ??
  • 這 題目讀起來糾結,其實是很常見的,常常忘記了sudo就直接用vim編輯/etc內的文件,(不過也不一定,vim發現保存的文件無法保存時候會?提示) 等編輯好了,保存時候才發現沒權限。曲線方法是先保存個臨時文件,退出后再sudo?cp回去。不過實際上在vim里面可以直接完成這個過程的,命令就是 如此。??
  • ??
  • 查閱vim的文檔(輸入:help?:w),會提到命令:w!{cmd},讓vim執行一個外部命令{cmd},然后把當前緩沖區的內容從stdin傳入。??
  • ??
  • tee是一個把stdin保存到文件的小工具。??
  • ??
  • 而%,是vim當中一個只讀寄存器的名字,總保存著當前編輯文件的文件路徑。??
  • ??
  • 所以執行這個命令,就相當于從vim外部修改了當前編輯的文件,好完工。??
  • ??
  • 4.切換回上一個目錄??
  • ??
  • $?cd?-??
  • ??
  • 應該不少人都知道這個,橫桿-代表上一個目錄的路徑。??
  • ??
  • 實際上cd?-就是cd?$OLDPWD的簡寫,bash的固定變量$OLDPWD總保存著之前一個目錄的路徑。??
  • ??
  • 相對地,$PWD總保存著當前目錄的路徑。這些變量在編寫shell腳本時候相當有用。??
  • ??
  • 5.替換上一條命令中的一個短語??
  • ??
  • $?^foo^bar^??
  • ??
  • 又是另外一個事件引用符(event?designator),可以把上一條命令當中的foo替換成bar。??
  • ??
  • 在需要重復運行調試一道長長的命令,需要測試某個參數時候,用這個命令會比較實用;但多數人會首先選擇按上箭頭提出上道命令,再移動光標去修改某參數,這樣更直觀,但效率上就不夠使用引用符高,而且在腳本中用這個方法可以簡化很多。??
  • ??
  • 這道命令的原始樣式應該是這樣的:??
  • ??
  • !!:s/foo/bar/??
  • ??
  • 本文一開始介紹過!!,后面的一段大家應該很熟悉,vim、sed的替換操作都是這樣的語法。??
  • ??
  • 關于事件引用符的更多用法可以深入閱讀The?Definitive?Guide?to?Bash?Command?Line?History??
  • ??
  • 6.快速備份一個文件??
  • ??
  • $?cp?filename{,.bak}??
  • ??
  • 這 道命令把filename文件拷貝成filename.bak,大家應該在一些比較復雜的安裝教程里面見過這樣的用法。其原理就在于bash對大?括號的 展開操作,filename{,.bak}這一段會被展開成filename?filename.bak再傳給cp,于是就有了備份的命令了。??
  • ??
  • 大括號在bash里面是一個排列的意義,可以試試這個:??
  • ??
  • $?echo?{a,b,c}{a,b,c}{a,b,c}??
  • ??
  • 將輸出三個集合的全排列:??
  • ??
  • aaa?aab?aac?aba?abb?abc?aca?acb?acc??
  • baa?bab?bac?bba?bbb?bbc?bca?bcb?bcc??
  • caa?cab?cac?cba?cbb?cbc?cca?ccb?ccc??
  • 關于shell當中的集合操作,可深入閱讀“Set?Operations?in?the?Unix?Shell”??
  • ??
  • 7.免密碼ssh登錄主機??
  • ??
  • $?ssh-copy-id?remote-machine??
  • ??
  • 這 個命令把當前用戶的公鑰串寫入到遠程主機的~/.ssh/authorized_keys內,這樣下次使用ssh登錄的時候,遠程主機就直接根據這串密鑰 完成身份校驗,不再詢問密碼了。前提是你當前用戶有生成了公鑰,默認是沒有的,先執行ssh-keygen試試吧!??
  • ??
  • 這個命令如果用手工完成,是這樣的:??
  • ??
  • your-machine$?scp?~/.ssh/identity.pub?remote-machine:??
  • your-machine$?ssh?remote-machine??
  • remote-machine$?cat?identity.pub?>>?~/.ssh/authorized_keys??
  • ??
  • 如果你想刪掉遠程主機上的密鑰,直接打開authorized_keys,搜索你的用戶名,刪除那行,即可。??
  • ??
  • 8.抓取Linux桌面的視頻??
  • 1??
  • $?ffmpeg?-f?x11grab?-s?wxga?-r?25?-i?:0.0?-sameq?/tmp/out.mpg??
  • ??
  • 我們在一些視頻網站上看到別人的3D桌面怎么怎么酷的視頻,通常就是這么來的,ffmpeg可以直接解碼X11的圖形,并轉換到相應輸出格式。??
  • ??
  • ffmpeg的通常用法是,根據一堆參數,輸出一個文件,輸出文件通常放最后,下面解析下幾個參數:??
  • ??
  • -f?x11grab?指定輸入類型。因為x11的緩沖區不是普通的視頻文件可以偵測格式,必須指定后ffmpeg才知道如何獲得輸入。??
  • ??
  • -s?wxga?設置抓取區域的大小。wxga是1366*768的標準說法,也可以換成-s?800×600的寫法。??
  • ??
  • -r?25?設置幀率,即每秒抓取的畫面數。??
  • ??
  • -i?:0.0?設置輸入源,本地X默認在0.0??
  • ??
  • -sameq?保持跟輸入流一樣的圖像質量,以用來后期處理。??
  • ??
  • 后記??
  • 說 Shell是一種編程語言,可能有些尷尬,雖然很多人每天都在用Shell,但從來沒見它榮登TIOBE編程語言排行榜之類的,可以?說毫無名分,因為很 多用戶沒意識到它是一種語言,只當做這是一個能夠很好完成任務的工具,基本得理所當然,就好像GUI程序的菜單、按鈕一樣。??
  • ??
  • 掌 握Shell,通常能夠讓任務在數秒鐘內完成,這就讓Shell跟C、Perl、Python這些語言區別開來,沒人否認后者更能勝任更多的任?務,但是 他們是在不同的層面上去做,Shell依賴大量的系統組件黏合調用,而后者依賴各種庫,各所擅長不同的應用領域,比喻就是,Shell是混凝土,?可以很 方便地粘合一些建筑組件而成為穩固的高樓大廈;但同樣是粘合劑,粘玻璃窗、粘書報、粘皮鞋,混凝土是絕對不合適的,Shell并不擅長一些細致操?作,比 如它連浮點運算都不支持,更別提什么圖形運算什么的。但這并不妨礙Shell來幫我們完成很多粗重任務。??
  • ??
  • Shell的工作方式,大多數入門用戶會覺得枯燥難學,而所謂的經典教材也離不開《Advanced?Bash-Scripting》、《Bash?Guide?for?Beginners》,但類似本文這樣的一些“雕蟲小技”因為難登大雅之堂絕不會收錄進去。這情況如果象國外一些unix用戶比較多的地方會有很好改善,?即使是新手,偶爾看看別人的操作都能“偷師”一手,我編譯本系列文章其實也就希望稍微改善一下這個狀況。
  • 轉載于:https://www.cnblogs.com/kuangxiangjie/archive/2010/12/24/1916348.html

    總結

    以上是生活随笔為你收集整理的最牛B 的 Linux Shell 命令(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。