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 14:31
下一篇 2016-08-15 14:31

相關推薦

  • awk簡介

    Awk介紹 ? 報告生成器,格式化文本輸出 gawk:模式掃描和處理語言 基本用法: Awk [option] ?‘program’?var=value file Awk [ option] ?-F ???programfile var =value file ??F指明分隔符 Awk [option ] ??‘BEGIN’{ACTION…} ?…

    Linux干貨 2018-01-02
  • nginx 基礎筆記

    一、Nginx 優點 高性能web,可以支持反向代理 比Apache性能優越,支持更多的并發連接,但資源占用很少,輕量級的web服務器??梢灾С指哌_50000個并發連接數的響應 Nginx 在Linux 2.6+ 使用epoll模型,提供卓越性能 做為負載均衡服務器,可以在內部直接支持PHP和Rails,也可以支持作為HTTP代理服務器對外進行服務 Ngin…

    Linux干貨 2016-03-19
  • 軟件包管理(RPM和yum)

        軟件包在系統管理中,軟件包的管理是最重要的,是系統管理的基礎的基礎;只有我們學會軟件包的管理才能談得上其它的應用;本文以目錄式的文檔格式,列出新手弟兄所面對的軟件包的安裝、更新、查詢相對的文檔,以及幾個常用的軟件包管理工具。 軟件包管理:     一,RPM包管理; &n…

    Linux干貨 2016-09-06
  • 基于samba服務的wordpress站點

    實驗要求:             (1) samba server導出/data/app/web,在目錄中提供wordpress;     (2) samba  client掛載nfs server導出的文件…

    2017-06-08
  • bash特性及用戶和組的管理相關練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意同一個用戶登錄多次,則只顯示一次即可: 2、取出最后登錄到系統的用戶的相關信息: 3、取出當前系統上被用戶當做默認shell最多的那個shell: 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxuser.txt文件中: 5、取出當前主機的IP地址: …

    2017-10-16
  • yum詳解及源碼包的編譯安裝

    yum的功能:     在我們使用rpm包安裝程序時,各個程序包之間可能存在非常嚴重的依賴關系,這就導致我們在安裝一個包的同時還需要安裝其他存在依賴關系的包,因此我們可以使用rpm包的前端管理工具yum,可通過yum所支持的文件共享機制來解決各個rpm包之間的依賴關系。 yum倉庫的配置文件:   …

    Linux干貨 2016-08-25

評論列表(1條)

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

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

欧美性久久久久