對Linux(Unix)的基礎知識歸納

前言,不論是原生APP(Android&IOS),還是大型架構級基礎環境(.NET&J2EE,或LAMP陣營等),

基本都不可避免的涉及到Linux(Unix),故還是覺得有必要把自己的一些相關知識歸納下。。

 

PS,Linux(Unix)更偏向程序(命令),而不是操作(界面)的系統。

給我感覺就像做事風格:踏實穩重,也有點簡單實在了,當然地就有點‘土’------不過我喜歡!哈哈~

 

首先,還是Linux系統一點情況介紹,這個有點。。。

Linux誕生的故事就不說了,其實就是用c山寨unix,也可認爲Liunx衍生至unix。所以Linux與unix的基礎命令幾乎一模一樣的,

最明顯的就是,IOS(越獄後的Unix)命令幾乎和Android(root後的Linux)是一個鳥語的---所以下面說道Liunx可等同unix。

不過,Liunx是開源的。當然地,和windows一樣,作爲操作系統必然有多任務、多用戶等特點,

以及包含自己系統運行的內核(核心程序)、文件系統(ext、nfs等)、還有調用的接口(shell、命令&圖形界面、應用程序等)。

與windows不同的:目錄只有一個盤(根目錄)、沒有圖形化的界面(當然也能用X-windows集成)、可移植等。

Linux有N多版本,其中以偏桌面的Ubuntu(源於Debian)與偏服務器的CentOS(源於redhat)爲主。

這裏也提下國內多用CentOS的幾個原因(本人比較認同的):1.國內網絡不行;2.基本教材、資料都是redhat的;3.發佈版本穩定性。

 

接着,就是Linux目錄結構,這是個基礎,不過~其實Linux就是個小基礎的東四。----下面用Ubuntu舉例,看圖

 

再者,就是Linux的常用命令,

1.文件目錄:mkdir 創建目錄;touch 生成文件;echo 生成待內容文件;cat/tac 現實文件內存

      rm 刪除文件;cp 複雜文件;mv 移動文件;find 查找文件;grep 查找字符串

      wc 統計文字;pwd 當前目錄;tree 顯示目錄樹;ln 連接文件;ls、cd。。。

2.系統管理:stat 顯示指定文件信息;netstat 網絡狀態;man 命令幫助;

      who、w 在線用戶;whoami 用戶自身身份;ifconfig 網絡端口;

      hostname 顯示主機名;uname 系統信息; top 系統資源使用信息(性能優化常用!);ps 瞬時進程;ping、clear、kill。。。

 

還有,就是有些常用操作,如VIM,軟件包管理(解/壓縮),用戶、文件(夾)權限,SSH等,

  1.VIM:編輯模式-》插入模式(輸入i)-》命令模式(輸入:)

     幾個保存命令:q直退;wq保退;q!強退;w file 保存成其他文件

  2.壓縮/解壓文件、文件夾:

     gzip(後綴gz)與bzip2(後綴bz2)

     tar(可完全替換上兩個) [-cxzjvf],c壓縮&x解壓;z用gzip壓縮&j用bzip2壓縮;v顯示壓縮文件;f壓縮文檔

  3.軟件包管理:

     dpkg軟件包(.deb後綴文件,等同redhat的.rpm後綴文件): sudo dpkg -i pkg_file.deb 安裝;sudo dpkg -r pkg_file 卸載

     APT自動處理依賴文件:sudo apt-get install pkgname 安裝;sudo apt-get remove pkgename 卸載;

                sudo apt-get update 獲取包列表;sudo apt-get upgrade 升級更新;

  4.用戶、文件(夾)權限:(ls -l 顯示)

     su 切換用戶;id 顯示用戶id;groups顯示用戶組;

     chmod 更改操作權限  [u 屬主 g 所屬組用戶 o 其他用戶 a 所有用戶][+ 加權限 – 減權限 =加權限同時將原有權限刪除] [rwx] 文件或目錄名,如 chmod g+w file。

     chown&chgrp 更改屬主及屬組 [ -R ] 屬主 [ :所屬組 ] { 文件|文件夾},如:chown -R jiyilee:build /tmp/src, chgrp jiyilee test.txt。

  5.SSH: 安全shell,遠程連接登錄用到的,其實就是個安全協議,裏面用到一些加密算法,不過一般都是用就行的。常用到一些工具,如putty、WinSCP等

 

最後,就是個shell,也就是linux下的腳本,類似windows的bat,有些js&Python等腳本特點。

其實蠻簡單的語言(基本能稱得上),有變量、函數、循環、控制等,一般起碼要能看懂及作小修改就行。

 

總結,用慣了windows就如習慣了C#的簡潔和靈活一樣,再看java就不順了,再用linux就不感冒,其實習慣就好~都是個操作系統,都是個開發語言而已。。。

真正熱愛技術的技術人員不應該偏執某一技術,可專注不應狹隘!所以玩.net也好,java也罷,

最好了解下Linux,瞭解下DBA與運維的也是很有必要的,瞭解大數據吧,瞭解Python,瞭解管理,瞭解...

當然不可能都用到,也不是要面面俱到、盲目追新,更不可能樣樣精!只是更好的都需要對比和借鑑,一旦需要時可以很快上手、不至於傻乎乎~

技術是純的、可確定的(不像管理等),應無界限,需點大氣纔是~~~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章