1. 程式人生 > >Linux基礎知識及常用命令

Linux基礎知識及常用命令

  • 基礎知識點:
    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,並描述不同發行版之間的聯絡與區別。
    3、描述Linux的哲學思想,並按照自己的理解對其進行解釋性描述。
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,並配合相應的示例來闡述。
    5、如何在Linux系統上獲取命令的幫助資訊,請詳細列出,並描述man文件的章節是如何劃分的。
    6、請羅列Linux發行版的基礎目錄名稱命名法則及功用規定
  • 1、描述計算機的組成及其功能。
    馮諾依曼體系計算機有5大部分組成:
    馮諾依曼體系特點:資料指令一律用二進位制表示、順序執行程式、5大部件;
    1.1運算器(arithmetic unit):對資料進行加工處理,由算術邏輯單元(ALU)、通用寄存 器組成;
    1.2控制器(control unit): 由程式計數器、指令暫存器、指令譯碼器、時序產生器和操作控制器組成,控制整個計算機系統的操作;cpu由運算器與控制器組成,就好比人的大腦系統;
    1.3儲存器(memory): 記憶體與外存,記憶體又分為隨機儲存器RAM(random access memory),只讀儲存器ROM(read only memory)
    1.4輸入裝置(input system):IO裝置是與計算機進行互動的裝置如滑鼠(mouse)、鍵盤(keyboard)
    1.5輸出裝置(output system):印表機、顯示器等
    1.6 完整的計算機系統由硬體系統+各種軟體作業系統組成
    1.7 簡要計算機組成簡圖(源自百度圖片)
    Linux基礎知識及常用命令

  • 2、按系列羅列Linux的發行版,並描述不同發行版之間的聯絡與區別
    Linux的發行版本可以大體分為兩類,一類是商業公司維護的發行版本,一類是社群組織維護的發行版本,前者以著名的Redhat(RHEL)為代表,後者以Debian為代表。
    Linux的幾個主流發行版:
    Linux基礎知識及常用命令
    2.1 Archlinux:是一種以輕量簡潔為設計理念的Linux發行版
    2.2 Debian 以其穩定性著稱,無商業化,ubuntu桌面版
    2.3 rhel 全球最大的開源技術廠商,使用最廣泛的linux釋出套件,×××能與穩定性極強的套件系統並擁有完善的全球技術支援。每18個月發行一個新版本,fedora(桌面版)每6個月發行一個新版本,centos相容rhel格式(free);
    2.4 程式包管理:
    Rpm:RHEL,Fedora,suse,centos
    Dpt: Debian,Ubuntu
    Archelinux:port
    LFS:Gentoo linux from scratch

  • 3、描述Linux的哲學思想,並按照自己的理解對其進行解釋性描
    3.1一切皆檔案
    把幾乎所有資源統稱為檔案形式,包括硬體裝置,甚至通訊介面
    3.2由眾多功能單一的程式組成:一個程式只做一件事,並且 做好:組合小程式完成複雜任務
    3.3儘量避免跟使用者互動;目標易於程式設計的方式實現自動化任務
    3.4使用文字檔案儲存配置資訊

  • 4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,並配合相應的示例來闡述。
    命令使用格式: Command [ options…]選項 [arguments]引數
    注:命令、選項、引數間空格分割區分
    命令本身是一個可執行的程式檔案
    4.1 ifcongfig [選項] [引數] :配置/檢視網絡卡介面引數
    1.檢視網絡卡配置資訊/ ip addr list
    Linux基礎知識及常用命令


    注:eth0 表示第一塊網絡卡, 其中 HWaddr 表示網絡卡的實體地址
    lo 是表示主機的回壞地址
    第二行:網絡卡的IP地址、子網、掩碼
    第三行:UP(代表網絡卡開啟狀態)RUNNING(代表網絡卡的網線被接上)
    第四、五行:接收、傳送資料包情況統計
    第七行:接收、傳送資料位元組數統計資訊
    2.配置臨時ip/mac地址/掩碼.
    Linux基礎知識及常用命令
    4.2.echo:回顯
    echo [選項]…[string]…
    -n :do not append a newline不進行換行
    -e 讓轉義符生效 \n:換行 \t:製表符
    引用引數 $(引用內容)
    String 可用單引號、雙引號:區別
    ‘’ :強引用,變數引用不執行替換
    “”:弱引用,變數會執行變數替換
    Linux基礎知識及常用命令
    4.3.tty :顯示連線到當前標準輸入的終端裝置檔案
    物理終端,控制檯 console
    虛擬終端預設6個,ctrl+alt+F1..F6
    圖形:ctrl+alt+F7 centos6
    Centos7:在那個虛擬終端啟動,即gui位於位於哪個
    序列終端: ttys /dev/ttys#
    虛擬終端: pty //dev/pts/#
    4.4.startx
    進入圖形介面
    4.5.export
    用於將shell變數輸出為環境變數,或者將shell函式輸出為環境變數
    export [options] [argument]
    -f : refer to shell functions 參考shell函式
    -n: 刪除指定的變數
    -p: 列出所有的shell賦予程式的環境變數
    4.6.pwd :printing working directory ,顯示當前工作目錄
    4.7.history:登入shell時,會讀取命令歷史檔案中記錄下的命令:~/.bash_history
    登入進shell後新執行的命令只會記錄在快取中;這些命令會使用者退出時“追加”至命令歷史檔案中;
    history [-c] [-d] [n]offset 開始刪除條數 n:列印最近的n條
    -a: 追加本次會話新執行的命令歷史列表至歷史檔案中;
    -d: 刪除歷史中指定的命令;
    -w:把歷史列表中的命令追加至歷史檔案中;
    -c: 清空命令歷史;
    history #:顯示歷史第#條命令;

    定製history功能,可通過環境變數實現
     HISTSIZE:shell程序可保留的命令條數
     HISTFILE:持久保留命令歷史的條數
     HISTFLIESIZE:命令歷史檔案大小

    快捷操作:

    !#: 呼叫歷史中第#條命令;
    !string:呼叫歷史中最近一個以string開頭的命令;
    !!: 上一條命令
    呼叫上一條命令最後一條引數:    Eec ,加 .號  或者 !$ 

    4.8.關機重啟命令shutdown、poweroff、reboot、init0(執行級別)
    shutdown用來系統關機命令。shutdown指令可以關閉所有程式,並依使用者的需要,進行重新開機或關機的動作

    shutdown [OPTIONS...] [TIME] [WALL...]
           -r:reboot
          -h:halt
        -c:cancel
           -p:poweroff預設
           -k:Do not halt, power-off, reboot, just write wall message.
         TIME: 
          now: 立刻
          +m: 相對時間表示法,從命令提交開始多久之後;
              hh:mm: 絕對時間表示,指明具體時間;
    poweroff:
        -f : Force immediate halt, power-off, reboot. Do not contact the init system.
        -p --poweroff
    reboot:用來重新啟動正在執行的Linux作業系統
        -f : 強制,不呼叫shutdown :force
        -w: Only write wtmp shutdown entry, do not actually halt, power-off, reboot.測試
        -p: Power-off the machine

    4.9.hwclock,clock
    兩種時鐘:系統時鐘(cpu工作頻率進行計時)、硬體時鐘
    系統啟動時從硬體讀取日期和時間資訊,讀取完成以後就不再與硬體相關
    -s,--hctosys 硬體為準
    -w,--systohc 系統為準
    4.10.date :date - print or set the system date and time
    date [OPTION]... [+FORMAT] ;顯示
    %F full date; same as %Y-%m-%d
    %H hour (00..23)
    %I hour (01..12)
    %j day of year (001..366)
    %k hour, space padded ( 0..23); same as %_H
    %l hour, space padded ( 1..12); same as %_I
    %m month (01..12)
    %M minute (00..59)
    %p locale's equivalent of either AM or PM; blank if not known
    %P like %p, but lower case
    %s 從1970年1月1號(unix元年)0點0分0秒到命令執行那一刻經過的秒數
    %S second (00..60)
    date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 設定
    MM: 月分
    DD:幾號
    hh: 小時
    mm: 分鐘
    YY: 兩位年份
    CCYY: 四位年份
    .ss: 秒鐘
    檢視前幾天、前幾周或前幾個月的日期:顯示一個月之前的今天日期
    [[email protected] ~]# date -d 'a month ago' +%F
    2018-11-26
    給以時間命名檔案:
    /tmp/file-$(date +%F) %Y-%m-%d

    4.11 which命令:
    which - shows the full path of (shell) commands

        which [options] programname [...]
            --skip-alias:忽略別名
    
    whereis命令:
        whereis - locate the binary, source, and manual page files for a command
    
        whereis [options] name...
            -b: 僅搜尋二進位制程式路徑;
            -m:僅搜尋使用手冊檔案路徑;
    
    who命令:
        who - show who is logged on
    
         who [OPTION]...
            -b: 系統此次啟動的時間;
            -r: 執行級別;
    
    w命令:
        w - Show who is logged on and what they are doing.

    4.12which命令:- shows the full path of (shell) commands
    which [options] programname [...]
    --skip-alias:忽略別名

    4.13 whereis命令:查詢命令的二進位制、原始檔、手冊
    whereis [options] name...
    -b: 僅搜尋二進位制程式路徑;
    -m:僅搜尋使用手冊檔案路徑;

    4.14who命令:顯示誰登陸
    who - show who is logged on
    who [OPTION]...
    -b: 系統此次啟動的時間;
    -r: 執行級別;
    w命令:比who資訊更詳細

    • Show who is logged on and what they are doing.
      Linux基礎知識及常用命令

  • Linux上的檔案管理類命令都有哪些,其常用的使用方法及其相關示例演示。

    • pwd :printing working directory,顯示當前工作目錄
    • cd :change directory 切換目錄,內建命令
      cd [path/to/somedir]
      cd 不帶任何引數則切回當前使用者家目錄
      cd ~:切回當前使用者家目錄
      cd ~使用者名稱:切回指定使用者家目錄
      cd -:上一次目錄與當前目錄來回切換
      ..上一級目錄
      . 當前目錄

    • ls :list,列出指定目錄下的內容
      [[email protected] ~]# which ls
      alias ls='ls --color=auto'
      /usr/bin/ls
      ls [option]…[file]…
      -a 顯示所有檔案,包含(.)隱藏檔案
      -A 顯示除.和..檔案除外
      -l --long 長格式列表,顯示檔案詳細資訊
      Linux基礎知識及常用命令
      : -檔案型別:-(f)普通檔案,d目錄,b block,c character,l symbol link,p pipe,s socket
    • file:檢視檔案型別
      Linux基礎知識及常用命令
    • cat :tac(逆序),文字檔案檢視工具
      -n 文字行號編號
      -E 顯示行結束符$

    • tree: 顯示目錄的層級關係
      -d: 只顯示目錄
      -L level:指定顯示的層級數目
      -P pattern: 只顯示由指定pattern匹配到的路徑

    • mkdir、rmdir :make-directory,remove-directory
      mkdir [option]…dir
      -p: no error if existing, make parent directories as needed
      存在也不報錯,自動按需建立目錄(遞迴建立)
      -v:--verbose,建立詳細過程
      -m:--mode ,設定許可權,否則預設

    • rmdir: remove empty directory,刪除空目錄(刪除前先備份,推薦先mv移別的地方)
      -p:有風險刪除某空目錄,其父級目錄為空繼續刪除
      -v:顯示過程

    • cp ,mv,rm :copy move remove 相類似(mv會把原檔案刪除)複製移動刪除
單源複製:cp [OPTION]... [-T] SOURCE DEST
多源複製:cp [OPTION]... SOURCE... DIRECTORY
                                    cp [OPTION]... -t DIRECTORY SOURCE... :-t把目標放到前面
單源複製:cp [OPTION]... [-T] SOURCE DEST
                如果DEST不存在:則事先建立此檔案,並複製原始檔的資料流至DEST中;
                如果DEST存在:
                如果DEST是非目錄檔案:則覆蓋目標檔案;
                如果DEST是目錄檔案:則先在DEST目錄下建立一個與原始檔同名的檔案,並複製其資料流;
多源複製:cp [OPTION]... SOURCE... DIRECTORY
                        cp [OPTION]... -t DIRECTORY SOURCE...
                        注:dest必須是目錄且存在

            常用選項:
                -i:互動式複製,即覆蓋之前提醒使用者確認;
                -f:強制覆蓋目標檔案;
                -r, -R:遞迴複製目錄;
                -d:複製符號連結檔案本身,而非其指向的原始檔;
                -a:-dR --preserve=all, archive,用於實現歸檔;
                --preserv=
                    mode:許可權
                    ownership:屬主和屬組
                    timestamps: 時間戳
                    context:安全標籤
                    xattr:擴充套件屬性
                    links:符號連結
                    all:上述所有屬性

        mv命令:move
           mv [OPTION]... [-T] SOURCE DEST
           mv [OPTION]... SOURCE... DIRECTORY
           mv [OPTION]... -t DIRECTORY SOURCE..         

           常用選項:
                -i:互動式;
                -f:force

        rm命令:remove
            rm [OPTION]... FILE...

            常用選項:
                -i:interactive
                -f:force
                -r: recursive

                刪除目錄:rm -rf /PATH/TO/DIR
                危險操作:rm -rf /*  :刪除跟下一切內容

            注意:所有不用的檔案建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
  • bash的工作特性之命令執行狀態返回值和命令列展開所涉及的內容及其示例演示。
    命令返回值:命令執行完成之後,其狀態返回儲存在bash的特殊變數$?中。
    0表示成功
    1-255表示失敗
    命令展開行:
    ~:自動展開為使用者的家目錄,或指定使用者家目錄
    {}:承載一個以逗號來分隔的列表,不能將其展開為多個路徑
    mkdir /tmp/a/{b,c} = mkdir /tmp/a/b 和mkdir /tmp/a/c

  • 練習:
    (1)、建立/tmp目錄下的:a_c, a_d, b_c, b_d
    Linux基礎知識及常用命令
    (2)、建立/tmp/mylinux目錄如下:
    Linux基礎知識及常用命令

  • 檔案的元資料資訊有哪些,分別表示什麼含義,如何檢視?如何修改檔案的時間戳資訊。
    檔案兩類資料:metadata, data
    檢視檔案狀態:stat file,三個時間戳:
    Linux基礎知識及常用命令

    touch命令:更改時間戳,建立空檔案
    touch [OPTION]... FILE...
    -a: only atime 僅修改訪問時間
    -m: only mtime僅修改修改時間
    -t STAMP: 時間
    [[CC]YY]MMDDhhmm[.ss]
    -c: 如果檔案不存,則不予建立

  • 如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
    alias 顯示設定別名 : alias is a shell builtin
    unalias 取消設定別名
    alias name=‘command’
    unalias name
    引用命令執行結果:
    $(command) 或者 ‘command’

  • linux 埠號
    tcp和udp採用16位埠號來識別應用程式 2^12=65536
    tcp/ip的臨時分配1024-5000之間埠號
    一些常用埠號:
tcp 埠分配

    21  ftp 檔案傳輸服務

    22  ssh  安全遠端連線服務

    25  smtp 電子郵件服務

    53  dns  域名解析服務

    80  http  web服務

    443 https 安全web服務

udp埠分配

    69  tftp 簡單檔案傳輸協議

    123 ntp  時間同步服務

    161 snmp 簡單網路管理

如何查詢埠號?vim /etc/services