linux基礎及幫助

1、操做系統

    OS: Operating System,通用目的的軟件程序

    硬件驅動php

        進程管理java

        內存管理python

        網絡管理shell

        安全管理數據庫

        文件管理apache

    OS分類:

        服務器OS:RHEL, CentOS, Windows Server, AIX編程

        桌面OS:Windows 10,Windows 7,Mac OS,Fedoraubuntu

        移動設備OS:Android, IOS, YunOS緩存

 

2、開發接口標準

    ABI: Application Binary Interface

    ABI描述了應用程序與OS之間的底層接口,容許編譯好的目標代碼在使用兼容ABI的系統中無需改動就能運行安全

    API:Application Programming Interface

         API定義了源代碼和庫之間的接口,所以一樣的源代碼能夠在支持這個API的任何系統中編譯

    POSIX: Portable Operating System Interface

    EEE在操做系統上定義的一系列API標準

    POSIX兼容的程序可在其它POSIX操做系統編譯執行

    運行程序格式:

    Windows: EXE, .dll(dynamic link library),.lib

    Linux: ELF,  .so(shared object),  .a

 

3、編程語言

    低級語言

    機器語言:0和1

    彙編語言:和機器語言一一對應,與硬件相關的特有代碼、驅動程序開發

    中級語言:C

    系統級應用、驅動程序

    高級語言:python,go,java,Objective-C,C#,php

    應用級程序開發

 

4、服務器三大操做系統

    Windows:

    Linux:GNU/Linux

    Unix:1969年Ken Thompson

      System: Bell Lab

                AIX (IBM)

                Solaris (SUN)

                HP-UX (HP)

           BSD: (BSRG)Berkeley System Distribution

                NetBSD

                OpenBSD

                FreeBSD

 

5、Unix歷史

      1965先後 Multics

        貝爾實驗室,麻省理工,通用電氣發起

      1969 Unix雛形UNICS

        Ken Thompson 彙編語言 B語言

      1973 正式命名爲Unix

        Dennis Ritchie C語言

      1977 BSD

           Berkeley Software Distribution  伯克利大學

      1979 System V架構 版權聲明

      HP-UNIX IBM AIX 「不對學生提供源碼」 收回版權

      1984年 Minix操做系統

       Andrew S. Tanenbaum荷蘭阿姆斯特丹自由大學計算機科學系

 

6、Linux起源

      1991年的10月5日,Torvalds在comp.os.minix新聞組上發佈消息,正式向外宣佈他自行編寫的徹底自由免費的內核誕生(Freeminix-like kernel sources for 386-AT)———FREAX

      類Unix的內核,在GPL下發布

      官網:www.kernel.org

      Linux操做系統:

           完整的類UNIX操做系統

           Linux內核+ GNU工具

           如:CentOS,Ubuntu,Android

 

7、Linux發行版

      slackware:SUSE Linux Enterprise Server (SLES)

                OpenSuse桌面

      debian:     ubuntu,mint

      redhat:   RHEL: RedHat Enterprise Linux

                每18個月發行一個新版本

                CentOS:兼容RHEL的格式

                中標麒麟:中標軟件

                Fedora:每6個月發行一個新版本

      ArchLinux:輕量簡潔

      Gentoo:極致性能,不提供傳統意義的安裝程序

      LFS: Linux From scratch 自制Linux

      Android: kernel+busybox(工具集)+java虛擬機

 

8、開源協議

      世界上的開源許可證,大概有上百種

      GPLv2, GPLv3, LGPL(lesser) :通用公共許可 copyleft

      Apache: apache

      BSD: bsd

      Mozilla

      Apache

      MIT

 

9、命令提示符

      命令提示符:prompt

        [root@localhost ~]#

           # 管理員     $ 普通用戶

      顯示提示符格式

           [root@localhost ~]#echo $PS1

      修改提示符格式

           PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"

           \e \033              \u 當前用戶            

           \h 主機名簡稱        \H 主機名

           \w 當前工做目錄     \W 當前工做目錄基名      

           \t  24小時時間格式   \T  12小時時間格式

           \! 命令歷史數          \# 開機後命令歷史數   

 

10、執行命令

      輸入命令後回車

           提請shell程序找到鍵入命令所對應的可執行程序或代碼,並由其分析後提交給內核分配資源將其運行起來

      在shell中可執行的命令有兩類

       內部命令:由shell自帶的,並且經過某命令形式提供

                help 內部命令列表

                enable cmd 啓用內部命令

                enable –n cmd 禁用內部命令

                enable –n 查看全部禁用的內部命令

           外部命令:在文件系統路徑下有對應的可執行程序文件

                  查看路徑:which  -a |--skip-alias ;  whereis

      區別指定的命令是內部或外部命令

           type COMMAND

 

11、簡單命令

      關機:halt, poweroff, init 0

      重啓:reboot, init 6

           -f: 強制,不調用shutdown

           -p: 切斷電源

      關機或重啓:shutdown

           shutdown [OPTION]...  TIME [MESSAGE]

           -r: reboot

           -h: halt

           -c:cancel

           TIME:無指定,默認至關於 +1

                now: 馬上,至關於+0

                +m: 相對時間表示法,幾分鐘以後;例如 +3

                hh:mm: 絕對時間表示,指明具體時間

      用戶登陸信息查看命令:

      whoami: 顯示當前登陸有效用戶

           who: 系統當前全部的登陸會話

           w: 系統當前全部的登陸會話及所作的操做

      echo命令

      功能:顯示字符

      語法:echo [-neE][字符串]

      說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字符隔開, 並在最後加上換行號

      選項:

      -E  (默認)不支持 \ 解釋功能

      -n  不自動換行

      -e  啓用 \ 字符的解釋功能

      u  顯示變量

       echo "$VAR_NAME「  變量會替換,弱引用

       echo '$VAR_NAME‘   變量不會替換,強引用

      命令替換:$( ) 或 ``

      把一個命令的輸出打印給另外一個命令的參數

      echo "This system's name is $(hostname) "

      This system's name is server1.example.com

      echo "i am `whoami` "

      i am root

      括號擴展:{ }

      打印重複字符串的簡化形式

      echo file{1,3,5}

           file1 file3 file5

      rm -f file{1,3,5}

      echo {1..10}

      echo {a..z}

      echo {000..20..2}

 

12、tab鍵

      命令補全

           內部命令:

           外部命令:bash根據PATH環境變量定義的路徑,自左而右在每一個路徑搜尋以給定命令名命名的文件,第一次找到的命令即爲要執行的命令

           用戶給定的字符串只有一條唯一對應的命令,直接補全

           不然,再次Tab會給出列表

      路徑補全

         把用戶給出的字符串當作路徑開頭,並在其指定上級目錄下搜索以指定的字符串開頭的文件名

         若是唯一:則直接補全

         不然:再次Tab給出列表

 

十3、命令行歷史

      保存你輸入的命令歷史。能夠用它來重複執行命令

      登陸shell時,會讀取命令歷史文件中記錄下的命令~/.bash_history

      登陸進shell後新執行的命令只會記錄在緩存中;這些命令會用戶退出時「追加」至命令歷史文件中

      重複前一個命令,有4種方法

      重複前一個命令使用上方向鍵,並回車執行

      按 !! 並回車執行

      輸入 !-1 並回車執行

      按 Ctrl+p 並回車執行

      !:0  執行前一條命令(去除參數)

      !n     執行history命令輸出對應序號n的命令

      !-n    執行history歷史中倒數第n個命令

      使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令

      ctrl-r來在命令歷史中搜索命令

      (reverse-i-search)`’:

      Ctrl+g:從歷史搜索模式退出

      要從新調用前一個命令中最後一個參數:

       !$  表示

      Esc, .(點擊Esc鍵後鬆開,而後點擊 . 鍵)

      Alt+ .(按住Alt鍵的同時點擊 . 鍵)

      history [-c] [-d offset] [n]

      history -anrw [filename]

      history -ps arg [arg...]

           -c: 清空命令歷史

                -d  offset: 刪除歷史中指定的第offset個命令

                 n: 顯示最近的n條歷史

                -a: append, 追加本次會話新執行的命令歷史列表至歷史文件

                -r: 讀歷史文件附加到歷史列表

                -w: 保存歷史列表到指定的歷史文件

                -n: 讀歷史文件中未讀過的行到歷史列表

                -p: 展開歷史參數成多行,但不存在歷史列表中

                -s: 展開歷史參數成一行,附加在歷史列表後

十4、命令幫助

      內部命令:help COMMAND

                  man bash

      外部命令:(1) COMMAND --help

      COMMAND -h

      (2) 使用手冊(manual)

      man COMMAND

      (3) 信息頁

      info COMMAND

      (4) 程序自身的幫助文檔

      README

      INSTALL

      ChangeLog

      (5) 程序官方文檔

      官方站點:Documentation

      (6) 發行版的官方文檔

      (7) Google

--help選項

      顯示用法總結和參數列表

      使用的大多數,但並不是全部的

      示例:

      date --help 

      Usage: date [OPTION]... [+FORMAT] or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

      [] 表示可選項

      CAPS或 <> 表示變化的數據

       ... 表示一個列表

      x |y| z 的意思是「 x 或 y 或 z 「

      -abc的 意思是-a -b –c

      { }  表示分組

 

man命令

      提供命令幫助的文件

      手冊頁存放在/usr/share/man

      幾乎每一個命令都有man的「頁面」

      man頁面分組爲不一樣的「章節」

      統稱爲Linux手冊

      man命令的配置文件:/etc/man.config | man_db.conf

      MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置

      man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手冊頁並顯示

      中文man需安裝包man-pages-zh-CN

 

man 幫助段落說明

      幫助手冊中的段落說明:

  •       NAME  名稱及簡要說明
  •       SYNOPSIS 用法格式說明
  •       []    可選內容
  •       <>        必選內容
  •       a|b  二選一
  •       { }   分組
  •       ...    同一內容可出現屢次
  •       DESCRIPTION 詳細說明
  •       OPTIONS  選項說明
  •       EXAMPLES 示例
  •       FILES  相關文件
  •       AUTHOR 做者
  •       COPYRIGHT 版本信息
  •       REPORTING BUGS bug信息
  •       SEE ALSO 其它幫助參考

 

man幫助

        查看man手冊頁

        man  [章節]  keyword

        列出全部幫助

        man –a keyword

        搜索man手冊

        man -k keyword 列出全部匹配的頁面

        使用 whatis  數據庫

        至關於whatis

        man –f keyword

        打印man幫助文件的路徑

        man –w  [章節] keyword

 

man命令

        man命令的操做方法:使用less命令實現

        space, ^v, ^f, ^F: 向文件尾翻屏

        b, ^b: 向文件首部翻屏

        d, ^d: 向文件尾部翻半屏

        u, ^u: 向文件首部翻半屏

        RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行    y or ^Y or ^P or k or ^K:向文件首部翻一行

        q: 退出

        #:跳轉至第#行

        1G: 回到文件首部

        G:翻至文件尾部

 

man搜索

        /KEYWORD:

        以KEYWORD指定的字符串爲關鍵字,從當前位置向文件尾部搜索;不區分字符大小寫;

        n: 下一個

        N:上一個

        ?KEYWORD:

        以KEYWORD指定的字符串爲關鍵字,從當前位置向文件首部搜索;不區分字符大小寫;

        n: 跟搜索命令同方向,下一個

        N:跟搜索命令反方向,上一個

相關文章
相關標籤/搜索