大資料系列 shell的簡單語法

2021-09-27 02:13:10 字數 3691 閱讀 6873

比較

windows

linux

介面介面統一,外殼程式固定所有windows程式選單幾乎一致,快捷鍵也幾乎相同

圖形介面風格因發行版不同而不同,可能互不相容。gnu/linux的終端機是從unix傳承下來,基本命令和操作方法也幾乎一致。

驅動程式

驅動程式豐富,版本更新頻繁。預設安裝程式裡面一般包含有該版本發布時流行的硬體驅動程式,之後所出的新硬體驅動依賴於硬體廠商提供。對於一些老硬體,如果沒有了原配的驅動有時很難支援。另外,有時硬體廠商未提供所需版本的windows下的驅動,也會比較頭痛。

由志願者開發,由linux核心開發小組發布,很多硬體廠商基於版權考慮並未提供驅動程式,儘管多數無需手動安裝,但是涉及安裝則相對複雜,使得新使用者面對驅動程式問題(是否存在和安裝方法)會一籌莫展。但是在開源開發模式下,許多老硬體儘管在windows下很難支援的也容易找到驅動。hp、intel、amd等硬體廠商逐步不同程度支援開源驅動,問題正在得到緩解。

使用使用比較簡單,容易入門。圖形化介面對沒有計算機背景知識的使用者使用十分有利。

圖形介面使用簡單,容易入門。文字介面,需要學習才能掌握。

學習系統構造複雜、變化頻繁,且知識、技能淘汰快,深入學習困難。

系統構造簡單、穩定,且知識、技能傳承性好,深入學習相對容易。

軟體每一種特定功能可能都需要商業軟體的支援,需要購買相應的授權。

大部分軟體都可以自由獲取,同樣功能的軟體選擇較少。

剛開始已經安裝過centeros6.5

執行 init

系統初始化

建立終端

使用者登入系統

使用變數

變數型別

雙引號

運算子說明舉例+加法

expr $a + $b結果為 30。-減法

expr $a - $b結果為 -10。*乘法

expr $a \* $b結果為 200。/除法

expr $b / $a結果為 2。%取餘

expr $b % $a結果為 0。=賦值

a=$b 將把變數 b 的值賦給 a。

==相等。用於比較兩個數字,相同則返回 true。

[ $a == $b ] 返回 false。

!=不相等。用於比較兩個數字,不相同則返回 true。

[ $a != $b ] 返回 true。

條件表示式要放在方括號之間,並且要有空格,例如:[a==

a==a=

=b]是錯誤的,必須寫成[ $a == $b ]

運算子說明舉例

-eq檢測兩個數是否相等,相等返回 true。

[ $a -eq $b ] 返回 false。

-ne檢測兩個數是否不相等,不相等返回 true。

[ $a -ne $b ] 返回 true。

-gt檢測左邊的數是否大於右邊的,如果是,則返回 true。

[ $a -gt $b ] 返回 false。

-lt檢測左邊的數是否小於右邊的,如果是,則返回 true。

[ $a -lt $b ] 返回 true。

-ge檢測左邊的數是否大於等於右邊的,如果是,則返回 true。

[ $a -ge $b ] 返回 false。

-le檢測左邊的數是否小於等於右邊的,如果是,則返回 true。

[ $a -le $b ] 返回 true。

運算子說明舉例!

非運算,表示式為 true 則返回 false,否則返回 true。

[ ! false ] 返回 true。

-o或運算,有乙個表示式為 true 則返回 true。

[ $a -lt 20 -o $b -gt 100 ] 返回 true。

-a與運算,兩個表示式都為 true 才返回 true。

[ $a -lt 20 -a $b -gt 100 ] 返回 false。

運算子說明

舉例&&

邏輯的 and

[[ $a -lt 100 && $b -gt 100 ]] 返回 false

||邏輯的 or

[[ $a -lt 100

if condition

then

command1

command2

...commandn

fi

if condition

then

command1

command2

...commandn

else

command

fi

if condition1

then

command1

elif condition2

then

command2

else

commandn

fi

for var in item1 item2 ... itemn

do command1

command2

...commandn

done

#!/bin/bash

ages=

(12 14 16)

for element in$do

echo

$element

done

while condition

docommand

done

while:do

command

done

或者while

true

docommand

done

[

function

] funname (

)

輸出重定向: command1 > file1

輸出追加: command1 >> file1

#!/bin/bash

#在zkhosts中配置的主機中啟動zookeeper

for zkhost in

`cat ./zkhosts`

do#-t 進製分配偽終端 一般自動化指令碼不需要分配偽終端

ssh -t root@$

<<

eeooff

$zookeeper_home/bin/zkserver.sh start

eeooff

done

#!/bin/bash

#在zkhosts中配置的主機中停止zookeeper

for zkhost in

`cat ./zkhosts`

do#-t 進製分配偽終端 一般自動化指令碼不需要分配偽終端

ssh -t root@$

>/dev/null 2>

&1 <<

eeooff

$zookeeper_home/bin/zkserver.sh stop

eeooff

done

大資料常用的SQL語法

資料分析是演算法的基石。而資料分析 如hive spark的dataframe,flink 目前很大部分都依賴於sql資料分析。因此很多機器學習演算法同學,被戲稱為sql boy或者是調參 boy。這裡主要備忘一下在大資料分析常用的一些sql語法,方便隨時檢視。select a.id,a.name,...

簡單shell指令碼語法及結構

shell指令碼語法及結構 shbang行 shbang行是指令碼的第一行,通知核心使用哪種shell去執行指令碼 bin csh 注釋注釋油乙個符號 後跟一些描述性的說明,注釋掉的語句將不執行操作 this is a comment 萬用字元shell中有些字元的意義比較特殊,它們被稱作是shel...

大資料系列 之Hive DDL and DML

hive定義了一套自己的sql,簡稱hql,它與關係型資料庫的sql略有不同,但支援了絕大多數的語句如ddl dml以及常見的聚合函式 連線查詢 條件查詢。ddl操作 資料定義語言 包括 create alter show drop等。1 create database 建立新資料庫 2 alter...