Linux Shell系列教程之(一)Shell簡介

来源:http://www.cnblogs.com/waitig/archive/2016/05/24/5523409.html
-Advertisement-
Play Games

本文是Linux Shell系列教程的第(一)篇,更多shell教程請看:Linux Shell系列教程 想要學習linux,shell知識必不可少,今天就給大家來簡單介紹下shell的基本知識。 Shell簡介 Shell自身是一個用C語言編寫的程式,是用戶來使用Unix或Linux的橋梁,用戶的 ...


本文是Linux Shell系列教程的第(一)篇,更多shell教程請看:Linux Shell系列教程

想要學習linux,shell知識必不可少,今天就給大家來簡單介紹下shell的基本知識。

Shell簡介

Shell簡介

Shell自身是一個用C語言編寫的程式,是用戶來使用Unix或Linux的橋梁,用戶的大部分工作都需要通過Shell來完成。只有熟練使用shell,才能熟練掌握linux。

可以說:Shell既是一種命令語言,又是一種程式設計語言。

作為命令語言,它可以互動式地解釋和執行用戶輸入的命令;而作為程式設計語言,它可以定義各種變數和參數,並提供了許多在高級語言中才具有的控制結構,包括迴圈和分支。

Shell雖然不是Unix/Linux系統內核的一部分,但它調用了系統核心的大部分功能來執行程式、建立文件並以並行的方式來協調各個程式的運行。

因此,對於用戶來說,shell是最重要的實用程式,深入瞭解和熟練掌握shell的特性極其使用方法,是用好Unix/Linux系統的關鍵。

可以說,shell使用的熟練程度反映了用戶對Unix/Linux使用的熟練程度。

Shell有兩種執行命令的方式:

  • 互動式(Interactive):解釋執行用戶的命令,用戶輸入一條命令,Shell就解釋執行一條。
  • 批處理(Batch):用戶事先寫一個Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執行完,而不必一條一條地敲命令。

Shell腳本和編程語言很相似,也有變數和流程式控制制語句,但Shell腳本是解釋執行的,不需要編譯,Shell程式從腳本中一行一行讀取並執行這些命令,相當於一個用戶把腳本中的命令一行一行敲到Shell提示符下執行。

但是,Shell初學者請註意,在平常應用中,不要用 root 帳號運行 Shell 。作為普通用戶,不管您有意還是無意,都無法破壞系統;但如果是 root,那就不同了,只要敲幾個字母,就可能導致災難性後果。

常用的Shell類型

上面提到過,Shell是一種腳本語言,那麼,就必須有解釋器來執行這些腳本。

Unix/Linux上常見的Shell腳本解釋器有bash、sh、csh、ksh等,習慣上把它們稱作一種Shell。

我們常說有多少種Shell,其實說的是Shell腳本解釋器。

下麵來介紹下幾種常用的Shell。

bash

bash是Linux標準預設的shell,本教程也基於bash講解。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內部命令一共有40個。
Linux使用它作為預設的shell是因為它有諸如以下的特色:

可以使用類似DOS下麵的doskey的功能,用方向鍵查閱和快速輸入並修改命令。

自動通過查找匹配的方式給出以某字元串開頭的命令。

包含了自身的幫助功能,你只要在提示符下麵鍵入help就可以得到相關的幫助。

sh

sh 由Steve Bourne開發,是Bourne Shell的縮寫,sh 是Unix 標準預設的shell。

ash

ash shell 是由Kenneth Almquist編寫的,Linux中占用系統資源最少的一個小shell,它只包含24個內部命令,因而使用起來很不方便。

csh

csh 是Linux比較大的內核,它由以William Joy為代表的共計47位作者編成,共有52個內部命令。該shell其實是指向/bin/tcsh這樣的一個shell,也就是說,csh其實就是tcsh。

ksh

ksh 是Korn shell的縮寫,由Eric Gisin編寫,共有42條內部命令。該shell最大的優點是幾乎和商業發行版的ksh完全相容,這樣就可以在不用花錢購買商業版本的情況下嘗試商業版本的性能了。
註意:bash是 Bourne Again Shell 的縮寫,是linux標準的預設shell ,它基於Bourne shell,吸收了C shell和Korn shell的一些特性。bash完全相容sh,也就是說,用sh寫的腳本可以不加修改的在bash中執行。

總結

本文主要介紹了Shell的功能以及幾個常用的shell類型,主要讓大家建立起對Shell的整體印象,接下來,Linux大學網將給大家帶來關於Shell命令一系列詳細教程,希望對大家有所幫助。

更多shell教程請看:Linux Shell系列教程


本文固定鏈接:linux大學網--Linux Shell系列教程之(一)Shell簡介
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. deepin終端: sudo apt-get install virtualbox 2. 下載win7 iso文件 3. deepin終端啟動virtualbox : ./virtualbox 4. 選擇win7 iso文件 5. 進入win7安裝: 快速格式化4個分區 ,開始安裝 6. li ...
  • 前言 STM32F1系列晶元算是在STM32中最早的一系列,在實際生活中應用的比較廣泛。因此,彙總一下STM32F1系列晶元常見片內資源,每一篇文章把重點提出來講解,並提供軟體源代碼工程。 彙總常見資源:基本IO、定時器TIM、串口USART、ADC模數轉換、DAC數模轉換、SPI串列通信、EXIT ...
  • 1.利用命令模式 捕獲整個屏幕 : $ gnome-screenshot 截完屏之後我們可以設置自定義圖片存儲位置,如圖: 捕獲當前終端Terminal : $ gnome-screenshot -w 捕獲自定義區域 :$ gnome-screenshot -a 利用-B參數可以去除終端視窗的名稱狀 ...
  • 原文:http://blog.jobbole.com/101322/ 前言 看源代碼是一個程式員必須經歷的事情,也是可以提升能力的一個捷徑.個人認為: 要完全掌握一個軟體的方法只有閱讀源碼。 在Windows下有sourceinsight這個源碼閱讀軟體(雖然我沒用過,但是網上評價還不錯),由於我是 ...
  • 通常我們應用nginx做代理時,用到它的輪訓服務 #設置輪詢名稱 upstream zyy{ server 127.0.0.1:8080 #本機的apache服務 } server { listen 80; server_name test.com; root /test; location / { ...
  • 1. 查看Linux啟動的服務 chkconfig --list 查詢出所有當前運行的服務 chkconfig --list atd 查詢atd服務的當前狀態 2.停止所有服務並且在下次系統啟動時不再啟動,如下所示: chkconfig --levels 12345 NetworkManager o ...
  • 一、問題描述(預設Linux安裝的SSHD服務存在一些漏洞,特此升級) 在曾經手動升級sshd服務後發現了三個後遺症: selinux開啟的狀態下,重啟機器sshd不啟動(原因:庫文件“libcrypto.so.1.0.0”的selinux標記不正確,導致sshd無法調用訪問該文件,使用setrou ...
  • 一、 概念理解 FTP的主動、被動模式讓人很煩,相信你認真看完下麵的描述就不會再煩了! 由於歷史原因,FTP服務預設需要有2個埠20(數據埠),21(控制埠) FTP服務的最初的工作過程是:Client請求Server的21埠建立控制連接,然後Server主動用20埠去連Client建立數 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...