Shell,Bash和腳本:有關Shell腳本的全部內容。

在這個新機會中(條目8)“學習Shell腳本” 我們將更多地關注理論而非實踐。 也就是說,我們不會安裝或研究代碼或安裝特定的軟件(程序包),而是會深入研究什麼是 Shell Scripting 正確地說,是通過下面顯示的一些小而直接的問題的答案來澄清到目前為止所學的大部分內容,這些內容並不直接涉及已編程的內部代碼:

Shell Scripting

什麼是GNU / Linux操作系統中的Shell?

在西班牙語中表示CONCHA的外殼(外殼,蓋子,保護層)。 在操作系統中應用此術語是指操作系統的命令解釋器。 通常,它是一個高性能的文本界面,以終端(控制台)的形式顯示,並且主要用於以下三個重要的工作區域:

1.-管理操作系統,
2.-運行應用程序並與之交互,以及
3.-用作基本的編程環境。

所以, GNU / Linux的 通過終端編輯其配置文件,可以更加有效地管理它們。 通常,這些位於目標路徑上: «/等等”,並且位於每個應用程序的特定目錄中。 例如程序 星際 (代表Linux Loader)是通過編輯位於以下位置並稱為的文本文件來配置的 “ /Etc/lilo/lilo.conf”。 對於程序(應用程序),如果在所有可執行文件的路徑(默認路徑)中找到了可執行文件,則通過寫入可執行文件的名稱來啟動(執行/激活)它們(通常是這樣)。 “ / Usr / bin” ,或鍵入可執行文件的名稱,並在前面加上: ./,位於它們所在的目錄中。

所有這一切對於任何Shell用戶都是眾所周知的。 但是,它作為編程環境的功能並不是眾所周知的。 Shell中製作的腳本(程序)不需要編譯。 命令行管理程序逐行解釋它們。 因此,這些被稱為或稱為Shells腳本,範圍從簡單的命令到用於啟動OS本身的一系列複雜的指令。 它們具有相當乾淨的語法(構造,排序)(很明顯),使它們成為入門編程世界的良好起點。

什麼是Shell腳本?

它是使用操作系統的Shell(最好是)或文本編輯器(圖形或終端)設計和創建Script(任務自動化文件)的技術(技能/技巧)。 這是一種通常被解釋的編程語言。 也就是說,雖然大多數程序都是經過編譯(編碼)的,但是由於它們在執行(編譯過程)之前已被永久轉換為特定(特殊)代碼,因此shell腳本仍保持其原始形式(其代碼)文本源),並在每次執行時按命令進行解釋。 儘管可能不常見,但也可以編譯腳本。

基於Shell腳本編程的程序的特徵是什麼?

1.-它們易於編寫(編程),但執行時處理成本較高。

2.-他們使用解釋器而不是編譯器來運行

3.-它們與用其他編程語言編寫的組件具有通信關係。

4.-包含它們的文件以純文本格式存儲。

5.-最終設計(代碼)通常小於編譯後的編程語言中的等效代碼。

Shell腳本下最受歡迎的語言類型是什麼?

1.-任務和外殼控制語言:

a)cmd.exe(Windows NT,Windows CE,OS / 2),
b)COMMAND.COM(DOS,Windows 9x),
c)csh,Bash,AppleScript,sh,
d)通過Windows腳本宿主的JScript,
e)通過Windows腳本宿主的VBScript,
f)REXX等。

2.- GUI腳本(宏語言):

a)自動熱鍵,
b)AutoIt,
c)期望,
d)自動化器等。

3.-特定應用程序的腳本語言:

a)Flash中的ActionScript,
b)MATLAB,
c)mIRC腳本,
d)QuakeC等。

4.- Web編程(用於動態頁面):

a)在服務器端:

-PHP,
-ASP(活動服務器頁面),
-JavaServer頁面,
-ColdFusion,
-IPTSCRAE,
-套索
-MIVA腳本,
-SMX,
-XSLT等。

b)在客戶端:

-JavaScript
-JScript,
-VBScript,
-Tcl等。

5.-文字處理語言:

-AWK,
-Perl,
-口渴,
-XSLT,
-重擊,等等。

6.-通用動態語言:

-APL,
-噓
迪倫
-鐵素體
-Groovy,
-IO
-Lisp
盧阿
-MUMPS(M),
-NewLISP,
-努瓦
-Perl,
-PHP,
-Python
露比
-方案
- 短暫聊天,
-超級卡,
-Tcl,
-革命,等等。

什麼是GNU / Linux中的Bash?

它是一個計算機程序,其功能是解釋訂單。 它基於 Unix外殼 它支持 POSIX。 它是為GNU項目編寫的,並且是大多數Linux發行版的默認外殼。

什麼是GNU / Linux中的Shell腳本?

Shell腳本 它們非常有用。 寫下我們需要的內容,然後編輯可以為我們完成這項工作的腳本是一個好主意。 現在,該問腳本到底是什麼了。 它是一個文本文件,其中包含一系列外殼命令,系統從上到下以有序的方式執行該文件。 要編輯它們,您只需一個文本編輯器,例如Emacs,Vi,Nano等即可。 它們以“ .sh”擴展名保存(在某些情況下沒有擴展名),並使用以下命令從命令行管理程序運行:sh scriptname.sh。 腳本的行為與Shell命令相同。

我個人習慣的教學方法 “學習Shell腳本” 這是非常實用且直接的方法,即檢查功能完整的腳本,將其分解,逐句,逐行,逐個命令,逐個變量地研究它,直到您了解每個元素如何分別工作以及如何參與。在一般代碼中。 有點 逆向工程或軟件再工程。 所有這些都是為了適當地利用知識,對其進行改進(優化)並進行共享,以實現集體利益以及更好地管理和優化免費操作系統。

它如何在GNU / Linux Shell中運行和工作?

使用Shell的第一步是運行Shell。 似乎是不言而喻的存在是有其原因的。 在某些面向最終用戶的GNU / Linux發行版中,shell相當隱蔽。 通常將其稱為:Konsole,Terminal,X Terminal或類似名稱。 另一種選擇是使用虛擬控制台。 使用:Ctrl + Alt + f1,或f2,或f3至f7或f8,具體取決於您使用的GNU / Linux發行版。 在GNU / Linux中,最常用的Shell是Bash,儘管還有其他一些,例如ksh或C Shell。 就我而言,我的出版物非常特別,我使用Bash Shell。

給定在Bash Shell中製作的腳本稱為 hello_world.sh 可以解釋以下內容:

內容:

#!/斌/慶典
迴聲你好世界

分解:

腳本的第一行
#!/斌/慶典

指示腳本應運行的程序。 如果找不到該程序,則會發生錯誤。

腳本第二行
迴聲你好世界

使用Hello World參數執行echo命令,使它們顯示在屏幕上。

執行: 我們可以通過兩種方式運行腳本

調用解釋器以運行腳本:
#bash hello_world.sh

它也可以運行為:
#sh hello_world.sh

但是由於未調用正確的Shell,因此它可能會工作一半。 理想情況下,在第一行中調用的Shell是用於執行它的Shell。

您還可以直接運行腳本,如下所示:
#./hello_world.sh

注意: ./表示從當前目錄運行。

剩下要分析的是您插入其中的代碼。 我希望您像往常一樣(根據學習和知識的需求,比其他人更喜歡)這一系列的 Shell Scripting.

網路上有許多關於這個主題的好連結,但我給您這個位於此處的小指南 DesdeLinux淨 還有這個 外部指南.

直到下一篇文章!


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   第四天 他說:

    Lilo .. Linux Loader ..其餘的非常好的信息..謝謝.. salu2 d4ny.-

  2.   Ing。Jose Albert 他說:

    很快向所有正在學習“學習Shell腳本”在線課程的人致以問候,我們將繼續使用其他基本腳本來繼續分配知識並將其社會化。

    我希望您能保持關注,因為很快我將開始使用更高級的代碼,但儘管其複雜性也以可視化的方式公開。

    請記住,借助Shell腳本,您可以使用很小的文件來完成許多跨平台的複雜任務(不同發行版)。 我將把這個簡短的屏幕錄像留給您,我將繼續教給那些繼續看這門課程的人,而只有50Kb的承諾將帶來很多收穫! 它只是Shell腳本可以完成的一半。

    LPI-SB8測試ScreenCast(LINUX POST安裝-腳本BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh/ 43Kb)

    參見截屏視頻: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    阿爾貝托·卡多納(Alberto Cardona) 他說:

      您好,您的貢獻令人難以置信,非常感謝!
      我有一個疑問,我可以使用bash編程編譯器嗎?
      或者至少是詞法分析器?
      有力量嗎?

  3.   Ing。Jose Albert 他說:

    很快將向所有正在學習“學習Shell腳本”在線課程的人致以問候,我們將繼續使用其他基本腳本來繼續專有知識並繼續將其社交化。 我希望您保持關注,因為很快我將開始使用更高級的代碼,但儘管其複雜性也以視覺上可以理解的方式公開。

    請記住,借助Shell腳本,您可以使用很小的文件來完成許多跨平台的複雜任務(不同發行版)。 我將把這個簡短的屏幕錄像留給您,我將繼續教給那些繼續看這門課程的人,而只有50Kb的承諾將帶來很多收穫! 它只是Shell腳本可以完成的一半。

    LPI-SB8測試ScreenCast(LINUX POST安裝-腳本BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh/ 43Kb)

    參見截屏視頻: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   阿爾貝托 他說:

    嗨何塞,
    首先,感謝您分享您的知識。 您的文章非常有趣。

    兩件事,我認為使用雙引號“ Hello World”並在出口0處獲得腳本的干淨輸出非常重要。

  5.   Ing。Jose Albert 他說:

    感謝您的貢獻,在下一個腳本中,您將看到出口0,中斷等的使用!

  6.   威蘭德 他說:

    問候。
    非常有趣,您看起來很簡單; 現在,我發現我無法在Linux上使用cron或在以下位置進行編程:關閉/掛起/休眠,隨後使用rtcake命令自動啟動,我不知道使用該命令的腳本是否會有所幫助,否則它們將遵循cron並且什麼都不做,或者根本無法完成,或者做起來不同,或者我非常有野心,但是在Windows中,這樣做相對簡單。 我想遷移到Linux,但是安排關機/暫停/休眠並自行啟動PC對我來說很重要。 問候。

  7.   Ing。Jose Albert 他說:
  8.   威蘭德 他說:

    謝謝,我會仔細閱讀它們,對我有幫助。 問候。

  9.   愛德華多·庫莫(Eduardo Cuomo) 他說:

    前段時間我開始了一個項目,我認為這是其中的一個。 它是Framewok Bash的原型。 它只需要係統上的Bash。
    如果其他人有興趣,請他們嘗試並合作!

    https://github.com/reduardo7/bashx

    的問候!

    1.    拉加托 他說:

      親愛的 Eduardo,我認為這是一個很棒的項目,也許您可以與整個社區分享 desdelinux,請記住,您可以在我們的網站上發布有關您的專案的文章,如果您不知道如何操作,我建議您閱讀 https://blog.desdelinux.net/guia-redactores-editores/ 在哪裡創建文章的最佳實踐 desdelinux 以及要執行的程序。對於社區來說,首先了解專案的好處,然後學習如何做此類事情可能是非常好的。我們邀請您和其他人與我們以及周圍的大型社區分享他們的項目。

  10.   米格爾·烏羅薩·魯伊斯(Miguel Urosa Ruiz) 他說:

    你好,早上好。
    我是Linux機器管理領域的新手,我想知道您對此有何建議:ksh,bash,perl,php,python...。
    非常感謝你的問候。
    米格爾