Bash編程0-基礎(chǔ)知識

簡介

寫個博客系統(tǒng)記錄自己學(xué)習(xí)Bash Shell編程的過程亲怠。使用環(huán)境為Ubuntu 16.04.5 Gnome主胧,使用bash的版本為4.3.48。
如果你想在虛擬機上安裝相同的linux系統(tǒng)可以參考之前的文章寫給萌新的教程:win10下使用VMware安裝Ubuntu16.04.5 Gnome

bash

在學(xué)習(xí)shell編程之前,我們需要了解一些相關(guān)的概念治拿。我們?nèi)粘K褂玫挠嬎銠C是有很多硬件組合在一起的復(fù)雜的系統(tǒng),這些硬件如CPU、內(nèi)存贯城、顯卡鲫骗、聲卡、鍵盤、鼠標(biāo)、顯示器等提供基本的計算資源纪岁。對于用戶而言西壮,直接使用這些硬件資源是繁瑣而又復(fù)雜的,因而有了各種各樣的應(yīng)用程序幫助用戶更好地使用計算機硬件。當(dāng)使用計算機硬件時康震,這些應(yīng)用程序會發(fā)生資源申請沖突绘梦,因而需要一個特殊的應(yīng)用程序管理分配硬件資源的申請和使用。這個特殊的"應(yīng)用程序"就是操作系統(tǒng)凝颇,操作系統(tǒng)一直運行在計算機上(通常稱為內(nèi)核,kernel)。操作系統(tǒng)的內(nèi)核并不直接為我們提供各種問題的解決方案弛随,它提供了大量的服務(wù)供應(yīng)用程序使用以便更好地利用計算機硬件資源决左。

那么shell又是什么呢惑芭?shell字面意思是外殼婴渡,剛好與操作系統(tǒng)的內(nèi)核相對應(yīng),它為用戶提供了一個訪問操作系統(tǒng)服務(wù)的接口堂鲤。在unix/linux中shell既是一個命令解釋器也是一門編程語言半哟。作為一個命令行解釋器,shell提供了一個用戶接口使用各種各樣的實用程序工具(比如coreutils、binutils等),而且shell允許我們將這些程序組合起來使用。現(xiàn)在所使用的shell有很多種某抓,比如sh、csh痹届、ksh队腐、dash为严、bash夕吻、fish涉馅、zsh等。在最初的unix系統(tǒng)中使用的shell是sh,并且有一個sh的標(biāo)準(zhǔn)。bash是GNU/Linux系統(tǒng)中默認的shell习霹, 它完全兼容sh阎曹,這意味著最新sh語法所寫的shell腳本可以不加修改地直接使用bash執(zhí)行处嫌。此外注暗,bash吸收借鑒了csh和ksh中的一些特性屡立,比如作業(yè)控制焚刺、命令行歷史等。

注:之后的shell指的基本上都是bash恬砂,特殊情況會另外說明咧纠。

shell分為兩種運行模式:交互式shell和非交互式shell。交互式shell就是在終端上執(zhí)行泻骤,shell接受從鍵盤的輸入并執(zhí)行漆羔。非交互式shell是指shell執(zhí)行文件中的命令。

shell也提供了一些內(nèi)置的命令(稱為builtins)實現(xiàn)了一些功能狱掂,比如cd,break,continue,exec等钧椰。

如何查看shell提供的內(nèi)置命令呢?可以在終端下執(zhí)行compgen -b符欠。

結(jié)果如下:

compgen -b
# 輸出結(jié)果如下
  .
  :
  [
  alias
  bg
  bind
  break
  builtin
  caller
  cd
  command
  compgen
  complete
  compopt
  continue
  declare
  dirs
  disown
  echo
  enable
  eval
  exec
  exit
  export
  false
  fc
  fg
  getopts
  hash
  help
  history
  jobs
  kill
  let
  local
  logout
  mapfile
  popd
  printf
  pushd
  pwd
  read
  readarray
  readonly
  return
  set
  shift
  shopt
  source
  suspend
  test
  times
  trap
  true
  type
  typeset
  ulimit
  umask
  unalias
  unset
  wait

與任何高級語言一樣,shell提供變量瓶埋,流控制結(jié)構(gòu)希柿,引用和函數(shù)。Shell提供了專門用于交互式使用的功能养筒,而不是增強編程語言曾撤。這些交互式的功能包括作業(yè)控制,命令行編輯晕粪,命令歷史和別名挤悉。

shell的第一個程序

交互式

打開終端輸入echo "Hello world"

腳本文件

創(chuàng)建一個文件命名為hello.sh
內(nèi)容如下:

#!/bin/bash
echo "Hello,world"

如果要直接執(zhí)行,需要為其添加可執(zhí)行權(quán)限chmod +x ./hello.sh
或者用bash解釋運行巫湘,bash ./hello.sh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末装悲,一起剝皮案震驚了整個濱河市昏鹃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诀诊,老刑警劉巖洞渤,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異属瓣,居然都是意外死亡载迄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門抡蛙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來护昧,“玉大人,你說我怎么就攤上這事粗截⊥锇遥” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵慈格,是天一觀的道長怠晴。 經(jīng)常有香客問我,道長浴捆,這世上最難降的妖魔是什么蒜田? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮选泻,結(jié)果婚禮上冲粤,老公的妹妹穿的比我還像新娘。我一直安慰自己页眯,他們只是感情好梯捕,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窝撵,像睡著了一般傀顾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碌奉,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天短曾,我揣著相機與錄音,去河邊找鬼赐劣。 笑死嫉拐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的魁兼。 我是一名探鬼主播婉徘,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盖呼?” 一聲冷哼從身側(cè)響起儒鹿,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塌计,沒想到半個月后琴昆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體风喇,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了臭笆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檐盟。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡斋荞,死狀恐怖桐臊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伊脓,我是刑警寧澤府寒,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站报腔,受9級特大地震影響株搔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纯蛾,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一纤房、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翻诉,春花似錦炮姨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芦圾,卻和暖如春蛾派,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背个少。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工碍脏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稍算。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像役拴,于是被迫代替她去往敵國和親糊探。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,378評論 0 5
  • 什么是運維 術(shù)語名詞 IDC--(Internet Data Center)互聯(lián)網(wǎng)數(shù)據(jù)中心褥紫,主要服務(wù)包括整機租用、...
    lyh165閱讀 2,686評論 0 19
  • 一瞪慧、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,734評論 0 10
  • 第一章 1.Linux是一套免費使用和自由傳播的類UNIX操作系統(tǒng)髓考,它可以基于Intel x86系列處理器以及Cy...
    yansicing閱讀 5,373評論 0 9
  • 小學(xué)時,在媽媽的規(guī)定下弃酌,每天一篇日記氨菇,(規(guī)定了字數(shù))有段時間這個對于自己是痛苦的,畢竟小學(xué)生貪玩妓湘,有時會敷衍了事查蓉。...
    南港無冬閱讀 92評論 0 0