你需要知道的linux基礎編程(一)

  1. 命令解析器
    Shell ----- UNIX操作系統
    Bash ----- Linux操作系統
    本質:根據命令的名字,調用對應的可執行程序

  2. Linux快捷鍵
    history 查看歷史命令
    ctrl + p 在歷史的命令記錄裏向上滾動
    ctrl + n 在歷史的命令記錄裏向下滾動
    ctrl + b 光標向前移動
    ctrl + f 光標向後移動
    ctrl + a 光標直接到命令行首
    ctrl + e 光標直接到命令行末
    backspace/ctrl + h刪除光標前面的字符
    ctrl + d刪除光標後面的字符
    ctrl + u刪除光標前面的所有字符
    table鍵補全或者提示命令
    ls 表示查看(如果後面不跟路徑,就表示查看當前的目錄,如果後面跟着路徑表示查看該路徑下的目錄)
    clear 清屏
    pwd(print working directory)顯示當前目錄的絕對路徑

  3. Linux系統的目錄結構
    Linux系統下沒有盤符
    / 表示Linux下的根目錄

    1. /bin:
      bin是Binary的縮寫,裏面存放的是最經常使用的命令,每一個命令代表一個可執行程序,在terminal裏面輸入命令然後在在配置環境變量,命令就會找到bin目錄,然後執行相對應的程序
    2. /boot:
      這裏存放的是啓動Linux時使用的一些文件,包括一些連接文件及鏡像文件
    3. /dev:
      dev是Device(設備)的縮寫,該目錄下存放的是Linux的外部設備,在linux中訪問設別和訪問文件的方式是相同的
    4. /etc:
      這個目錄用來存放所有的系統管理所需要的配置文件和子目錄
    5. /home:
      用戶的主目錄,在linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的
    6. /lib:
      這個目錄存放着最基本的動態連接共享庫,其作用類似於windows裏的DLL文件,幾乎所有的應用程序都需要用到這些共享庫
    7. /lost-found:
      這個目錄一般下是空的,當用戶非法關機後,這裏面就存放了一些文件
    8. /media
      linux系統自動識別一些設備,例如,U盤,光驅等,當自動識別後,linux會把識別的設別掛載到這個目錄下
    9. /mnt
      系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裏的內容了
    10. /opt
      這是給主機額外安裝軟件所擺放的目錄,比如安裝一個oracle數據庫的時候就可以放到這個目錄下,默認是空的
    11. /proc
      這個目錄是一個虛擬的目錄,他是系統內存的映射,我們可以直接訪問這個目錄來獲取系統信息
      這個目錄的內容不在硬盤上而是在內存裏,我們也可以直接修改裏面的某些文件,比如可以通過下面的命令來屏弊主機的ping命令,使別人無法ping你的機器 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    12. /root
      該目錄爲系統管理員,也稱爲超級權限者的用戶的主目錄
    13. /sbin
      S就是super user的意思,這裏存放的使系統管理員使用的系統管理程序
    14. /tmp
      這個目錄是用來存放一些臨時的文件
    15. /usr(user software resourse)
      這是一個非常重要的目錄,用戶的很多應用程序都放在這個目下,類似於windows下的program files目錄
  4. 用戶目錄

    1. 絕對路徑 從根目錄開始寫/home/itcast/aa

    2. 相對路徑 相對於當前的工作目錄而言

       . 代表當前目錄
       .. 代表當前目錄的上一級
       - 在臨近路徑的兩個目錄直接切換 cd -
      
    3. sjq@ubuntu
      sjq:當前登陸的用戶
      @: at 在
      Ubuntu:主機名
      ~用戶的家目錄(宿主目錄)
      $當前用戶爲普通用戶
      #超級用戶 – root

  5. 文件和目錄操作

     文件或目錄顏色一般情況
     	白色:普通文件
     	藍色:目錄
     	綠色:可執行文件
     	紅色:壓縮文件
     	青色:鏈接文件(相當於windows下的快捷方式)
     	黃色:設備文件(block塊、char字符、fifo管道)
     	灰色:其他文件
    
    1. 查看目錄

      1. tree
      2. ls
        ls -a查看目錄下的全部內容
        ls -l列出來的是詳細信息
        ls -al列出全部內容的詳細信息
        在這裏插入圖片描述
    2. 在目錄間切換
      Cd + 目錄
      切換回主目錄三種方式:

       Cd /home/aa
       Cd ~
       Cd
      

      查看當前所在目錄 pwd

    3. 創建目錄
      創建單一目錄:Mkdir + dirname
      創建複合目錄:mkdir + dir/dir/dir1 -p

    4. 刪除目錄

       刪除空目錄
       	Rmdir + 目錄名
       刪除非空目錄
       	Rm + 目錄名 + -r
       	Rm + 目錄名 + -ri(i代表提示)
      
    5. 創建文件
      Touch + 文件名(文件不存在,創建文件,文件存在,更新文件時間)

    6. 刪除文件
      Rm + 文件名

    7. 拷貝文件或目錄
      拷貝文件

       Cp + 文件名 + 目標文件
       如果目標文件不存在就創建一個新的文件
       如果目標文件存在就覆蓋原來的文件
      

      拷貝目錄

       Cp + 目錄名 + 目標目錄名 + -r
       如果目標目錄名不存在,則要創建目標目錄名,並進行拷貝
       如果目標目錄名存在,則要將目錄名拷貝到目標目錄名下
      
    8. 查看文件中的內容

      1. cat + 文件名(將文件中的內容輸出到終端)
      2. more + 文件名(只能向後翻,不能向前翻)
      3. less + 文件名(ctrl + p向前翻頁、ctrl +n向後翻頁、q退出瀏覽、回車顯示下一行、空格顯示下一頁)
      4. head + 文件名
      5. tail + 文件名
    9. 文件重命名
      mv + 源文件名 + 要更改的文件名

    10. 將文件移動到目錄下
      mv + 文件名 + 目錄名

    11. 創建軟鏈接(創建快捷方式 文件和目錄)
      ln -s + 路徑(絕對) + 快捷方式的名字

    12. 創建硬鏈接(進行文件備份)
      直接鏈接的是硬盤的上inode結點
      不能對目錄創建硬鏈接
      ln + 文件名 + 硬鏈接的名字
      硬鏈接不佔用空間
      每次創建一個硬鏈接,次數加一
      Linux文件系統的存儲單位是塊
      inode – i結點 保存了一些文件信息 通過inode找到對應的文件

  6. 文件或目錄的屬性

    1. wc 獲取文本文件的信息
    2. od 查看二進制文件
      -t 指定數據的顯示格式
      參數
      1. c ASCII字符
      2. D 有符號十進制數
      3. F 浮點數
      4. O 八進制數
      5. U 無符號十進制數
      6. X 十六進制數
    3. du 查看當前目錄中所有文件的大小
      命令:du -h
    4. df 查看磁盤的使用情況
      命令:df -h

    Which + 命令(查看所在的命令是在哪個目錄下,只能查找外部的命令)

  7. 文件權限、用戶、用戶組

    1. 查看當前登陸用戶
      Whoami
    2. 修改文件權限
      1. 文字設定法: chmod [who] [+|-|=] [mode] 文件名
        who(默認是所有人):

         文件所有者:u
         文件所屬組:g
         其他人: o
         所有人: a
        

        +:添加權限
        -:減少權限
        =:覆蓋原來的權限
        mode(權限):

         r:讀
         w:寫
         x:執行
        
      2. 數字設定法:

         -:沒有權限
         R:4
         W:2
         X:1
         所有權限7
         765
         	7 --rwx --文件所有者
         	6 --rw --文件所有組
         	5 --rx -- 其他人
         減權限:chmod -001 temp(給其他人減了執行權限)
        
    3. 修改文件的所有者和所屬組
      修改文件的所有者:chown 所有者的名字 文件名(如果沒有權限的話,加sudo接用超級用戶的權限)
      sudo Chown 文件所有者:文件所屬組 文件名
      修改文件所屬組:sudo chgrp 文件所屬組 文件名
      對於目錄來說必須有執行權限,否則無法訪問目錄裏面的內容
  8. 文件的查找和檢索

    1. 按文件的屬性查找
      1. 按文件名查找
        Find + 查找目錄 + -name + 文件的名字(文件名字用引號括起來)
        文件的名字可以用通配符(*匹配所有的、?匹配一個字符)
      2. 按文件大小
        Find + 查找目錄 + -size + 文件的大小(+大於 -小於)
        Sudo find ~ -size +10M -size -100M(在家目錄下查找大於10M小於100M的文件)
      3. 按文件類型
        Find + 文件查找目錄 + -type + d/f/b/c/s/p/l
        創建管道:mkfifo 文件名
    2. 按文件內容查找
      Grep -r + “查找的內容” + 查找的路徑
  9. 軟件的安裝和卸載

    1. 在線安裝
      apt-get:

       安裝:sudo apt-get install tree  在線下載安裝
       移除:sudo apt-get remove tree
       更新:sudo apt-get update     --更新軟件列表
       清理所有軟件安裝包:sudo apt-get clean(實際清理的是/var/jcache/apt/archives目錄下的.deb文件)
      

      aptitude:

       安裝:sudo aptitude install tree
       重新安裝:sudo aptitude reinstall tree
       更新:sudo apt-get update
       移除:sudo aptitude remove tree
       顯示狀態:sudo aptitude show tree
      
    2. deb包安裝:

       安裝:sudo dpkg -i xxx.deb
       刪除:sudo dpkg -r xxx
      
    3. 源碼安裝

      1. 解壓縮源代碼包
      2. 進入到安裝目錄:cd dir
      3. 檢測文件是否缺失,創建makefile,檢測編譯環境
      4. 編譯源碼,生成庫和可執行程序:make
      5. 把庫和可執行程序,安裝到系統目錄下:sudo make install
      6. 刪除和卸載軟件:sudo make distclean
      7. 上述安裝步驟並不是絕對的,應該先查看附帶的readme文件
下面的是筆者的微信公衆號,歡迎關注,會持續更新c++、python、tensorflow、機器學習、深度學習等系列文章

                      在這裏插入圖片描述

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