Linux基礎知識之腳本初級編程

1.編程語言的分類:機器語言,匯編語言,高級語言

    高級語言:

        靜態語言:編譯型語言 在程序執行之前就會編譯成機器代碼(完全轉化完成)

        強類型(變量)

        關鍵字:在程序運行之前,先編譯成機器代碼

            C\C++\JAVA\C# 都屬于靜態語言類

        不需要任何解釋器,自我就可以運行的程序

    動態語言:解釋型語言 在程序運行之后編譯,使用一條編譯一條代碼

        弱類型(通常)

        邊解釋邊執行

            PHP\SHELL\python\perl

2.編程的分類:面向過程與面向對象

    面向過程:shell,C

        編程時,立足于解決問題的過程本身

        更適合來發小型程序 Linux內核是面向過程的C語言開發的

    面向對象:JAVA,Python,perl,C++

        編程時,把要實現的任務看做是一個一個的對象,來編程,并且定義對象之間的動作,開發出的操作來完成的

        適合開發大型程序

3.變量、內存與進程

    變量:命名的內存空間

    內存:編址存儲單元

     進程:命令的具體的執行過程

        10:字符:需要16bit

        10:數值:需要8bit(1010)

4.變量類型:事先確定好數據的存儲格式和長度

    字符型

    數值型:整型,浮點型(帶小數的eg:11.23,小數點之前作為一個單位存放,小數點之后作為一個單位存放,然后存儲一下小數點的位置)

5.邏輯運算:與、或、非、異或

     與:全真才為真,有假便為假

    或:有真便為真,全假才為假

    非:(單目運算符  !)對真取反為假,對假取反為真

    異或:操作數相同則為假,操作數不同才為真

6.shell腳本編程:面向過程的

編譯器:解釋器

所有的腳本,都需要解釋器,解釋執行,解釋器本身,基本上都是靜態語言開發的

bash:運行bash 首先系統中有一個可以運行bash的編譯器(腳本解釋器)

shell:弱類型編程語言

    強類型:變量在使用前,必須事先聲明,甚至還需要初始化。

    數值初始化為0,字符初始化也為空

    NULL:空

    弱類型:變量用時聲明(隨時用隨時聲明),甚至不區分類型(默認為字符串)

7.顯式轉換與隱式轉換:

    顯式專換是你定義讓這個值類型轉換成你要用的值類型,例,你定義int i=5,想把他專換成char類就用顯式轉換(char)i。

    隱式轉換是系統跟據程序需要而自動轉換的,不需要定義,但并不是所有值類型都可以互相轉換,所以有了顯式轉換。例,int i=5; char j='a'; int n=i+j;因char可以隱式專換為int類型,所以結果n=102

8.變量賦值與撤銷:

    VAR_NAME=VALUE

    unset VARNAME :只需要說明變量名就行,不需給此變量賦值

9.bash變量類型:

    環境變量:作用域為當前shell進程及其子進程 

        export VARNAME=VALUE:變量先導出

        VARNAME=VALUE     export VARNAME  :變量后導出

    引用變量:${VARNAME}

        下面沒有表示可以引起變量名混淆的,就可以不用加{},否則就必須加{}.

        echo+'':表示強制引用,echo+"":表示弱引用,可以替代里面的變量名。

    本地變量(局部變量)

        本地變量:

            set(set往往省略) VARNAME=VALUE:作用域為整個bash進程

        局部變量:

            local VARNAME=VALUE:作用域為當前代碼 

        位置變量:引用腳本的參數

            $1,$2,$3……..

        特殊變量(bash,為了保存某些特定的數值)

            $?:保存上一個命令執行狀態返回值(以后用的非常多)

10.腳本在執行時,會啟動一個子shell進程:

    環境變量對子shell是有效的

    命令行中啟動的腳本會集成當前shell的環境變量

    系統自動執行的腳本(非命令行啟動),需要自我定義需要的各環境變量

11.程序執行可能有兩種返回值:$?

    程序執行結果

    程序狀態返回代碼(0-255)

    0:正確執行

    1-255:錯誤執行

    1,2,127:系統預留,有特殊的含義

12.輸出重定向

    /dev/null:設備模擬設備,bit bucket,數據黑洞

13.查看當前shell中的變量

    set包括環境變量和本地變量

    查看當前shell中的環境變量:

    printenv

    env

    export

14.shebang:魔數

#!/bin/bash

腳本中#開頭的行都是注釋行,不執行

原創文章,作者:sjsir,如若轉載,請注明出處:http://www.www58058.com/35742

(0)
sjsirsjsir
上一篇 2016-08-15
下一篇 2016-08-15

相關推薦

  • 正則表達式基礎

    一、正則表達式: 元字符是用來闡釋字符表達式意義的字符,簡言之,就是用來描述字符的字符。 正則表達式RE(Regular Expression)是由一串字符和元字符構成的字符串。 正則表達式的主要功能是文本查詢和字符串操作,它可以匹配文本的一個字符或字符集合。實際上正則表達式完成了數據的過濾,將不滿足正則表達式定義的數據拒絕掉,剩下與正則表達式匹配的數據。 …

    Linux干貨 2017-06-04
  • 編譯安裝nginx并實現反向代理負載均衡和緩存功能

    一、編譯安裝nginx 1、下載 [root@ns1 ~]# wget http://nginx.org/download/nginx-1.10.0.tar.gz 2、解壓 [root@ns1 ~]# tar xf nginx-1.10.0.tar.gz [root@ns1 ~]…

    Linux干貨 2016-05-25
  • 馬哥教育網絡班21期+第14周課程練習

    系統的INPUT和OUTPUT默認策略為DROP; 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機; INPUT鏈 # iptables -I INPUT 1 -p tcp&nb…

    Linux干貨 2016-11-14
  • linux文件的時間

    1,linux文件有哪些時間屬性     access time:atime 訪問時間:即查看訪問文件的時間     modify time:mtime 修改時間:修改文件內容的時間     change time:ctime 改變時間:修…

    Linux干貨 2016-06-09
  • 流編輯器Sed(Stream Edit)詳解

    流編輯器Sed(Stream Edit)詳解       Grep 、sed 和awk并稱為文本三劍客。使用Grep就可以很好的實現文本查找的功能,而且簡單有效。然而其卻無法直接對其進行編輯,sed的出現便解決了這一問題。 Sed被稱為流編輯器,它是一種新型的非交互式的文本編輯器,它逐行處理文件或輸入,并將結…

    Linux干貨 2016-08-22
  • Linux之文件管理及范例

    1、Linux上的文件管理命令   目錄管理類命令:mkdir,rmdir    mkdir [OPTION]… DIRECTORY…     -p: 自動按需創建父目錄;     -v: verbose,顯示…

    Linux干貨 2016-09-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-16 14:41

    總結的很好,可以適當的加上自己在練習過程中的問題,做到理論和實踐統一哦。作業需要在后面附上

欧美性久久久久