寫給初學者的Linux餐前小菜

餓了麼物流技術團隊發表於2018-08-08

作者簡介 海洋,從事linux運維工作6年,業務運維4年,現任職餓了麼資深運維工程師,負責物流業務運維及穩定性相關工作,隨著運維工作不斷自動化和智慧化,現對aiops感興趣,喜歡羽毛球、籃球等運動,沒事的話喜歡宅在家。

寫給初學者的Linux餐前小菜

本文以linux的幾個重要的哲學思想為起點,依次介紹了linux下的檔案目錄及作用、基本命令操作以及包管理器的使用幾個話題,帶領初學的同學從整體上感受一下linux的輪廓。

Linux遵循的哲學思想

  1. 一切皆檔案 除了普通檔案,諸如目錄、字元裝置、塊裝置、套接字等在Unix/Linux中也都是以檔案來對待,雖然型別不同,但是對其提供的卻是同一套操作介面。不同的檔案根據型別或用途放在不同的目錄下。
  2. 由目的單一、短小、精悍的程式組成 通過短小、簡單的程式保障linux的高效,由於程式功能過於單一,一個完整的服務需要依賴多個程式,多個程式相互的依賴關係又是一個問題,linux通過包管理器很好的解決了這個問題
  3. 文字檔案儲存配置資訊 使用簡單的檔案編輯器就可以完成配置、更改配置(有關文字編輯器的使用,下次再聊)
  4. 儘量避免捕獲使用者介面 一個程式一旦開始執行,就不需要使用者進行任何操作,儘量不和使用者互動

Linux檔案目錄及作用

目錄 作用
/ 根目錄
/bin 主要放基本執行命令
/sbin 主要放系統管理的命令
/boot 引導目錄(與系統啟動有關),放置核心、grub、initrd等檔案
/dev device,裝置檔案目錄,也是特殊檔案目錄
/etc 配置檔案目錄,放置系統的配置檔案
/home 使用者的家目錄,放置使用者的資訊(使用者登入後身處的預設目錄即為使用者的家目錄)
/lib library,庫檔案目錄,放置庫檔案
/mnt 系統掛載目錄
/media 額外檔案系統的掛在目錄
/misc 被動目錄,放置雜項裝置
/opt 可選目錄,第三方軟體安裝的目錄
/proc 偽目錄,放置核心映像檔案
/srv 伺服器執行中產生的資料的臨時使用的目錄
/sys 偽目錄,放置核心中硬體資訊的對映
/tmp 臨時檔案目錄,放置系統中產生的臨時檔案
/usr 第三方軟體的管理命令、額外資訊等都存放在此
/var 經常變化的檔案所處的目錄,如使用者的郵箱佇列

終端下的Linux:通過命令列和Linux交流

和作業系統互動的方式,一般分為兩類

  • GUI: graphical user interface 圖形化介面,類似windows系統的圖形化介面,linux使用的不多
  • CLI: command line interface 命令列介面,linux多通過這種方式進行操作,所以掌握基本命令是至關重要的

Linux中的命令格式:

  • 命令嚴格區分大小寫
  • command [options][arguments]
  • 短選項:-l 、-h、 -hl 分開的選項之間用空格隔開如ls -a -l = ls -al
  • 長選項:--help--long
  • 引數與選項之間空格隔開,引數之間也用空格隔開ls -al /etc /home

磨刀不誤砍柴工:如何獲得一個命令的幫助資訊

linux在非圖形介面下的操作都是基於命令列的,然而linux又有非常多的命令,每個命令又有很多options, 在使用一個命令前,清楚的知曉命令的作用以及options的作用是非常重要的,下面我們們來學習下通過哪些方法可以得知這些資訊。

Linux的命令分類

  1. 內部命令(shell自帶的命令) help command 獲取內部命令的幫助資訊 [xxx@xxx]$ help cd

    help cd

  2. 外部命令(除了內部命令,即為外部命令) command -h 獲取外部命令的幫助資訊 [xxx@xxx]$ nginx -h

    nginx -h

MAN手冊

man手冊可以說是linux很全面的幫助文件了,包括多個章節,每個章節涉及不同方面。

  1. User commands 普通使用者命令相關資訊
  2. System calls 系統呼叫相關資訊
  3. Library functions 庫函式相關資訊
  4. Devices 裝置相關資訊
  5. Files 檔案格式、檔案系統相關資訊
  6. Games 娛樂和遊戲相關資訊
  7. Overviews, conventions, and miscellaneous 雜項
  8. Superuser and system administration commands 管理員命令相關資訊

__whatis__命令

有的命令只涉及一個維度、有的命令可能涉及多個維度。檢視命令對應在man手冊中的資訊可使whatis, whatis command顯示一個命令的簡單說明,同時顯示出此命令不同部分在man手冊上的章節數。

[xxx@xxx]$ whatis cd

whatis cd

whatis是呼叫資料庫中有關這個命令的相關簡單說明,如果系統剛剛安裝,有些命令可能還沒來得及建立資料庫,因此便無法使用whatis開檢視此命令的幫助資訊。可以使用mkwhatis command幫命令生成一個有關此命令的資料資料。

常用命令

ls: 顯示目錄檔案

  • -a 顯示目錄中所有檔案(包括隱藏檔案)
  • -l 顯示檔案的詳細資訊(許可權、時間、屬主、屬組等)
  • -h 顯示檔案大小(自動換算為B、KB、MB、G)
  • -d 顯示目錄本身資訊

cd: 切換所在目錄

  • cd ~ 切換到當前使用者的家目錄
  • cd - 切換到上一次目錄
  • cd . 切換到當前目錄
  • cd .. 切換到上一級目錄(父目錄)
  • cd /xx 切換到指定路徑

cat: 輸出檔案所有內容

  • cat filename 輸出filename的所有內容
  • cat -n filename 輸出內容、顯示行號

tail: 檢視檔案內容(預設顯示後10行)

  • -f filename 動態顯示檔案後10行(實時重新整理)
  • -fn filename 動態顯示檔案後n行(實時重新整理)

echo: 像檔案內寫入內容

  • echo xxx > filename 用xxx覆蓋filename的內容(filename原來內容消失,只有xxx)
  • echo xxx >> filename 在filename內容新追加一行xxx(filename原來內容依然在,新增一行xxx)

歷史命令

  • history 檢視當前使用者使用過的命令,預設記錄1000條
  • history -c 清除命令歷史
  • ! + 'n'(歷史命令前的數字)即可使用命令歷史中相應的命令。
  • ! + '-n' 執行歷史命令中倒數第n條命令
  • ! + 字串 表示執行歷史命令中離現在最近的以這個字串開始的命令
  • !! 表示重複執行上一條命令
  • !$ 引用上一條命令的最後一個字元

Linux下的軟體安裝:包管理器的使用

上面我們們說過基於'由目的單一、短小、精悍的程式組成'的特性,需要對多個程式間的依賴進行管理,linux開發出了包管理器。 包管理器可以自動化地更新與管理軟體包,能夠從指定的伺服器自動下載軟體包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

YUM

Yum(全稱為Yellow dog Updater, Modified)是在Fedora和RedHat以及Centos中基於rpm的軟體包管理器。

YUM基本用法

  • yum install package 安裝程式package
  • yum groupinstall package 安裝程式組
  • yum update package 更新程式package
  • yum upgrade package 升級程式package
  • yum remove package 解除安裝程式package

YUM安裝mysql

  1. 首先獲得root許可權(自己的主機一般都是root)
  2. 執行命令 [xxx@xxx]$ yum install mysql-server mysql mysql-devel -y
    • mysql 即mysql客戶端command
    • mysql-server 即mysql服務端
    • mysql-devel 安裝所需的庫和檔案等
    • -y 確認安裝(如果沒有-y 在安轉過程中需要輸入y + '回車') 接下來就是刷屏的安裝資訊了,如果安裝成功會顯示 Complete!
  3. 執行命令 [xxx@xxx]$ service mysqld start 啟動mysql服務
    mysql-start
  4. 連結mysql服務 [xxx@xxx]$ mysql 可以直接登入mysql(mysql剛初始化沒有密碼)
  5. 設定root使用者連結mysql的密碼 [xxx@xxx]$ mysqladmin -u root password 'password' [xxx@xxx]$ mysql -u root -p 輸入密碼,即可登入 mysql安裝及啟動到此結束,接下來就可以進行建庫、建表操作。

結尾

可見linux的操作雖然陌生,也是非常簡單的,只需要掌握一些基本知識即可為我們所用。 如果大家需要非常全面的linux入門資料《鳥哥私房菜》是不錯的選擇,對於比較感興趣的知識點想深挖下去可以通過Google直接搜關鍵字就能查到很多高質量的文章。 不過最最最權威的還是官網!




閱讀部落格還不過癮?

歡迎大家掃二維碼加入交流群,討論和部落格有關的技術問題,還可以和博主有更多互動

寫給初學者的Linux餐前小菜
部落格轉載、線下活動及合作等問題請郵件至 shadowfly_zyl@hotmail.com 進行溝通

相關文章