1. 程式人生 > >linux基礎及幫助

linux基礎及幫助

exe 默認 刪除 pan 發布 open 選項 內存 執行

一、操作系統

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

    硬件驅動

   進程管理

   內存管理

   網絡管理

   安全管理

   文件管理

    OS分類:

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

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

  移動設備OS:Android, IOS, YunOS

二、開發接口標準

    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

三、編程語言

    低級語言

    機器語言:0和1

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

    中級語言:C

    系統級應用、驅動程序

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

    應用級程序開發

四、服務器三大操作系統

    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

五、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荷蘭阿姆斯特丹自由大學計算機科學系

六、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

七、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虛擬機

八、開源協議

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

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

      Apache: apache

      BSD: bsd

      Mozilla

      Apache

      MIT

九、命令提示符

      命令提示符: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小時時間格式

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

十、執行命令

      輸入命令後回車

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

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

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

  help 內部命令列表

  enable cmd 啟用內部命令

  enable –n cmd 禁用內部命令

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

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

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

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

    type COMMAND

十一、簡單命令

      關機: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}

十二、tab鍵

      命令補全

    內部命令:

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

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

    否則,再次Tab會給出列表

      路徑補全

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

    如果惟一:則直接補全

    否則:再次Tab給出列表

十三、命令行歷史

      保存你輸入的命令歷史。可以用它來重復執行命令

      登錄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: 展開歷史參數成一行,附加在歷史列表後

十四、命令幫助

      內部命令: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:跟搜索命令反方向,上一個

linux基礎及幫助