Linux基礎知識

来源:http://www.cnblogs.com/ARM-kang/archive/2017/02/23/6435717.html
-Advertisement-
Play Games

1、Linux內核與發行版 Linux本身指的是一個操作系統的內核,而內核是無法直接使用的,只有既包括內核又包括一些有用的應用程式的一個集合體,即Linux的發行版才是我們所需要的; Linux的發行版:Debian(Debian運行起來極其穩定,適合用於伺服器)、Gentoo(包含數量眾多的軟體包 ...


1、Linux內核與發行版

  Linux本身指的是一個操作系統的內核,而內核是無法直接使用的,只有既包括內核又包括一些有用的應用程式的一個集合體,即Linux的發行版才是我們所需要的;

  Linux的發行版:Debian(Debian運行起來極其穩定,適合用於伺服器)、Gentoo(包含數量眾多的軟體包)、Ubuntu(Ubuntu是Debian的一款衍生版,也是當今最受歡迎的免費操作系統)、紅帽企業級Linux(第一款面向商業市場的Linux發行版)……

2、GUI和cmdline

  人機交互時,常用GUI或cmdline,Windows、Linux中既有GUI又有cmdline,但Windows中常用GUI,Linux中常用cmdline;

  GUI:圖形用戶界面,(Graphical User Interface,又稱圖形用戶介面),是指採用圖形方式顯示的電腦操作用戶界面;

  

  cmdline:命令行,(command line);

3、隱藏文件與非隱藏文件

  Windows:文件隱不隱藏是可以通過設置文件屬性來實現的。在Windows中查看隱藏文件方法:菜單欄 工具->文件夾選項->查看->顯示所有文件;

  Linux:隱藏文件以.開頭,與文件屬性無關。在linux中查看隱藏文件用ls -a命令;

4、絕對路徑與相對路徑

  路徑(pathname):用來標識一個文件在文件系統中存儲的位置;

  如:C:\Windows\test.c    全路徑  pathname

    C:\Windows        路徑   path

    test.c            文件名  name

  絕對路徑:從某一盤符c:\開始(Windows)或根目錄/開始的路徑;

  相對路徑:相對於現在位置開始的路徑;

  如:C:\Windows\1\1.c

    C:\Windows\2\2.c

    當前在1.c,要去2.c,使用絕對路徑:C:\Windows\2\2.c

                相對路徑:../2/2.c

5、Linux常用命令

  (1) ls (list,列表):以列表形式把當前文件夾下的所有文件顯示出來;

    ls -a  顯示所有文件(包括隱藏文件)

    ls -l  顯示文件的詳細信息

    可以搭配起來使用:ls -al  ls -la  ls -a -l  ls -l -a

  (2) cd (change directory,變更目錄):切換目錄;

    cd ..  ..表示上一層目錄

    cd .   .表示當前目錄

  (3) pwd (print work directory,列印工作目錄):列印出當前所在目錄的絕對路徑;

  (4) mkdir (make directory,創建文件夾):創建空文件夾;

    mkdir -p  級聯創建空文件夾

  (5) mv (move,移動):在目錄間移動文件,重命名文件;

    mv 源文件pathname 目的文件pathname

  (6) touch:創建空文件;

    touch pathname

  (7) cp (copy,複製):複製文件,文件夾;

    cp 源文件pathname 目的文件pathname

    cp -r  複製文件夾

    cp -f  強制複製

    實際使用時都是用cp -f來複制文件,用cp -rf來複制文件夾

  (8) rm (remove,移除):刪除文件,文件夾;

    rm 文件pathname

    rm -r 文件夾pathname

  (9) cat:直接在文件夾下顯示文件內容,或向文件輸入;

  (10) rmdir (remove directory,移除文件夾):刪除空文件夾;

    rmdir與rm -r的區別:rmdir只能刪除空文件夾,而rm -r可以刪除空文件夾與非空文件夾

  (11) ln (link,鏈接文件):類似於Windows中的快捷方式(實際上快捷方式和它指向的文件是獨立的兩個文件,都會占用記憶體);

    Linux中有兩種連接文件:軟鏈接(符號鏈接),類似於Windows中的快捷方式;

                  創建軟鏈接文件:ln -s 源文件名 符號鏈接文件名

                硬鏈接,實際上和源文件是一模一樣的兩個東西,每次刪除一個文件時,只要它還有其他的硬鏈接存在,這個文件就不會被真正的刪除,

                只有把這個文件連同它的全部硬鏈接都刪除了,這個文件才會被真正從硬碟上刪除;

                  創建硬鏈接文件:ln 源文件名 鏈接文件名

  (12) man:查詢man手冊,獲得幫助信息(退出man手冊,按Q鍵);

    man 1 xxx  1表示查詢的是Linux命令

    man 2 xxx  2表示查詢的是Linux api

    man 3 xxx  3表示查詢的是C庫函數

  (13) apt-get:在ubuntu中線上安裝、卸載軟體的程式;

    apt-get install xxx    安裝

    apt-get remove xxx   卸載

    為什麼需要線上安裝軟體?

    由於Linux操作系統的發行版,內核版本,定製性等等問題造成了在不同的Linux中軟體的不相容性。要在Linux中安裝軟體很麻煩,裝了軟體能不能用不一定。

    ubuntu解決了這個問題,ubuntu就適合某個發行版(ubuntu14.04)的所有軟體做了一個列表,然後用戶通過apt-get install的方式安裝軟體,就會實時連接到

    ubuntu的伺服器,伺服器會根據你的ubuntu版本,給你下載合適的軟體來安裝。這樣確保了軟體的相容性。

6、ls -l顯示的詳細信息(-rwxrw-rw-)中:一共10個字元,第一個字元表示文件類型,後面9個表示文件許可權;

  文件類型:- 表示普通文件,即文本文件(.txt)、二進位文件等

       d 表示文件夾

        l 表示符號鏈接文件,後面會用->列印出它所指向的文件

       s 表示socket文件

       p 表示管道文件

7、vi編輯器:Linux中常用的編輯器,另外還有gedit編輯器等,其vim是vi的升級版,後面提到的vi其實都是vim;

  (1) vi的使用:vi pathname

  (2) vi的命令模式:當vi打開時預設為命令模式,此時鍵盤上輸入的所有東西都被vi當作命令來對待。

      vi的輸入模式:輸入模式用來向文件輸入內容。在命令模式中按A或I鍵則轉入輸入模式。進入輸入模式後,就可以隨意按鍵盤進行輸入了。輸入完成後如果要保存,要先退

           回到命令模式(因為保存也是一種命令),即在輸入模式下按ESC鍵退回到命令模式。

  (3) 保存命令:  :wq  保存並退出

             :w   保存但不退出

           :q    不保存退出

           :q!   不保存強制退出

           :wq!   保存並強制退出

  (4) vi的一些命令(均在命令模式下):

    /xxx      查找xxx

    :num       快速切換到num行

    :set nu      顯示行號

    :set nonu    不顯示行號

      註:設置永久顯示行號,修改vi的配置文件~/.vimrc,在其中輸入set nu即可;

    dd       刪除游標所在行

    4dd       刪除連續行

    nyy        複製,需把游標放在多行的第一行

    p         粘貼到游標所在的下一行

8、Linux中的許可權表示與管理:

  (1) 普通用戶與特權用戶:

    普通用戶:一般情況下我們使用的都是普通用戶,每個普通用戶只能處理自己的文件,不能訪問其他用戶的文件,更不能隨意處理操作系統的文件;

    特權用戶:系統的管理員,對系統內所有文件具有操作許可權;

    Windows/Linux中的普通用戶可以有很多個,而特權用戶在Windows中是Administrator,在Linux中是root;

    在Linux中,普通用戶不能cd /root,也不能用apt-get install來裝軟體,……;

    使用su可以在不同用戶間來回切換:su 用戶名;

    使用sudo可以不需切換用戶而暫時獲取root許可權;

  (2) Linux中的許可權:

    ls -l顯示的詳細信息(-rwxr-xrw-)中:一共10個字元,第一個字元表示文件類型,後面9個表示文件許可權;

    文件類型:- 表示普通文件,即文本文件(.txt)、二進位文件等

         d 表示文件夾

          l 表示符號鏈接文件,後面會用->列印出它所指向的文件

         s 表示socket文件

         p 表示管道文件

    許可權表示:r 表示可讀,w 表示可寫,x 表示可執行

       如:rwx  可讀,可寫,可執行

         r-x   可讀,不可寫,可執行

         rw-   可讀,可寫,不可執行

    後9個字元,每3個一組,第1組表示文件屬主的許可權,第2組表示屬主所在的組用戶的許可權,第3組表示其他用戶的許可權;

9、虛擬機中的Linux上網:

  (1) VMWare中網路有三種設置:NAT、橋接(bridged)、Host only(該模式僅主機可上網,虛擬機上不了網);

  (2) NAT方式:設置較簡單,但不能用在嵌入式開發中。設置步驟如下:

         step1:菜單欄中的虛擬機 -> 設置 -> 硬體 -> 網路適配器,右側選擇NAT模式;

         step2:在命令行中輸入vi /etc/network/interfaces,打開該文件,將內容編輯如下:

              auto lo

              iface lo inet loopback

              auto eth0
              iface eth0 inet dhcp
              address 192.168.1.141
              netmask 255.255.255.0
              gateway 192.168.1.1

             關鍵是dhcp處,最後三行可以不要;

         step3:在命令行中執行/etc/init.d/networking  restart 來重啟網卡即可;

  (3) 橋接方式:設置較麻煩(相對而言),但可用於嵌入式開發中。設置步驟如下:

         step1:菜單欄中的虛擬機 -> 設置 -> 硬體 -> 網路適配器,右側選擇橋接模式;

         step2:在菜單欄中的編輯 -> 虛擬網路編輯器,選擇橋接到自己Windows中可以上網的網卡上(一般就是Wifi網路或者有線網路);

         step3:在命令行中輸入vi /etc/network/interfaces,打開該文件,將內容編輯如下:

              auto lo

              iface lo inet loopback

              auto eth0
              iface eth0 inet dhcp
              address 192.168.1.141
              netmask 255.255.255.0
              gateway 192.168.1.1

              保存並退出。關鍵是dhcp處,最後三行可以不要;

           step4:在命令行中執行/etc/init.d/networking  restart 來重啟網卡即可;

10、Linux命令補充:這些命令的掌握與否不影響你的一般操作,因此不必可以去背,除非你是搞Linux運維的,但是如果掌握將有助你熟練操作Linux;

  (1) find:在文件系統中查找一個文件,但得知道其文件名;

    find 大概路徑 -name "文件名"

  (2) grep:在文本文件中,查找某個詞;

    grep -nr "要查找的符號" 要查找的目錄或文件集合    -n表示在查找結果中顯示行號,-r表示使用遞歸查找

  (3) which與whereis:查找一個應用程式(二進位文件)的位置;

    which 文件名      只顯示二進位文件的路徑

    whereis 文件名     顯示二進位文件的路徑,和其源碼或man手冊位置

  (4) uname:查看系統信息;

    uname -a

  (5) 開機與關機:

    shutdown -h now    立即關機

    init 0            關機

    shutdown -r now     立即重啟

    reboot            重啟

  (6) tree與lstree:顯示文件和目錄由根目錄開始的樹形結構;

  (7) mount與umount:掛載磁碟到文件系統中;

    mount -t nfs -o nolock 192.168.1.141:/root/rootfs /mnt    掛載

    umount /mnt    卸載

  (8) 磁碟空間相關:

    df -h    顯示已掛載的分區列表

    du -h     以人容易識別的方式列出文件或文件夾的大小

  (9) 用戶管理:

    useradd user1    添加一個名為user1的用戶

    userdel user2     刪除一個名為user2的用戶

    passwd user3     為名為user3的用戶設置密碼

    adduser user4    添加一個名為user4的用戶,同時創建宿主目錄,用戶shell等

    註:adduser是一個腳本,而useradd則是一個二進位應用程式。用adduser創建用戶時比較麻煩,但是一次設定完所有的信息;

      而用useradd創建用戶時較簡單,但是需要另外設置宿主目錄,密碼那些信息。

  (10) 許可權管理:管理系統中文件的許可權;

    chmod    change mode,修改文件許可權(常用)

    chown     change owner,修改屬主

    chgrp      change group,修改文件的組

    許可權可以使用數字來表示:r   可讀    4

                w  可寫    2

                x   可執行   1

                -   無許可權   0

    如:rwxr-xrw-對應756

    第1種修改許可權的方法:如把許可權改為rwxr-xrw-,則修改命令為:chmod 756 文件名

    第2種修改許可權的方法:在原來的許可權基礎上進行修改,即增加或減少某項許可權。三個組用戶的編碼依次為:屬主 u  屬主所在的組 g  其他用戶 o

             如 :要屬主增加可寫許可權    chmod u+w 文件名

                其他用戶減少可讀許可權   chmod o-r 文件名

  (11) 文件打包、壓縮與解壓縮:

    tar -czvf dir.tar.gz dir/      將dir目錄打包成dir.tar.gz

    tar -cjvf dir.tar.bz2 dir/       將dir目錄打包成dir.tar.bz2

    tar -zxvf dir.tar.gz        解壓縮dir.tar.gz

    tar -jxvf dir.tar.bz2         解壓縮dir.tar.bz2

  (12) 網路配置命令

    ifconfig eth0 192.168.5.19                  設置IP地址

    ifconfig eth0 up                         啟動網卡

    ifconfig eth0 down                       禁用網卡

    ifup eth0                            啟動網卡

    ifdown eth0                          禁用網卡

    ifconfig eth0 192.168.5.19 netmask 255.255.255.0      同時設置IP和子網掩碼

(以上所述內容為學習朱老師的嵌入式課程後複習筆記所得,目的是自己複習鞏固知識,同時把自己學到的知識分享出來。能力有限,水平一般,如有錯誤,歡迎指正,謝謝!)

2017-02-24 22:15:52


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 讀取excel文件:libxls-1.4.0.zip下載地址:http://sourceforge.net/projects/libxls/安裝方法: ./configure make make install sudo cp -r -v /usr/local/libxls/include/libx ...
  • 裝系統 Deepin是一個國產的linux發行版,因為其極高的顏值和不需要折騰的操作吸引了我。正好厭倦了windows 10,又趕上大四的畢業設計,就拿來玩玩了。 首先,Deepin系統的安裝是非常傻瓜式的,參照官網上的 "教程" 幾步就可裝好。我採用的是體驗安裝,重啟之後即可選擇進入Deepin系 ...
  • 之前要在linux下麵安裝nginx,弄了半天,終於搞定了,下麵給大家詳細一下安裝流程及安裝報錯解決方案: 安裝共分為5步搞定: 1.進入src目錄(下載存放目錄) cd /usr/local/src/ 2.wget下載:http://nginx.org/en/download.html(nginx ...
  • Windows 10 中包含了一個 WSL(Windows Subsystem for Linux)子系統,我們可以在其中運行未經修改過的原生 Linux ELF 可執行文件。利用它我們可以做很多事情,對開發人員和普通用戶都是如此。當然對開發人員的吸引力更大一些,因為這意味著在一些情況,不再需要使用... ...
  • 本文首發於:http://www.fengzheng.pub/archives/238.html 背景說明 伺服器為阿裡雲 ECS,操作系統為 CentOS 6.5。 部署配置說明 第一步,安裝nginx 之所以要先安裝 nginx,是因為下麵配置功能變數名稱解析的時候可以直接在瀏覽器看到效果,當然了,先配 ...
  • 序言 提到LVS,就從章文嵩博士開始吧,反正也不知道如何下筆來寫這一篇。章大博士,讀博時候創建這個lvs軟體項目,但是他提倡開源精神,在用戶的建議和反饋中,這個花了他兩周時間開發的開源軟體不斷得到改建和豐富。到1999年,該款軟體已在負載均衡領域中比較出名,章文嵩仍舊堅持開源,將源代碼分享給所有人。 ...
  • 前兩篇介紹了uboot 2013.01的配置原理以及大體的運行流程,本文將討論如何對uboot源碼進行配置,將一個可用的uboot燒錄到SD卡中。 定製自己的core board 市面上能買到的開發板的核心板基本都是基於官方參考板製作的,所以雖然標準操作是"定製"自己的core board,但鑒於我 ...
  • 經過了上一篇的配置,我們已經執行make就可以編譯出一個uboot.bin,但這還不夠,首先,此時的uboot並不符合三星晶元對bootloader的格式要求,其次,此時的uboot.bin也沒有結合我們的開發板進行配置,還無法使用。而要進行這樣的個性化配置,前提條件就是對uboot開機流程和編譯系 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...