1.什麼是shell
在電腦科學中,shell俗稱殼(用來區別於核),是指」為使用者提供操作介面「的軟體(命令解析器)。它類似於dos(dos,是磁碟作業系統的縮寫,是個人計算機上的一類作業系統。)下的command.com 和後來的cmd.exe。它接收使用者命令,然後呼叫相應的應用程式。同時它又是一種程式語言。作為命令語言,它互動式解釋和執行使用者輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程式語言,它定義了各種變數和引數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。
在排序演算法中,shell是希爾排序的名稱。
基本上shell分兩大類:
一:圖形介面shell(graphical user inte***ce shell 即 gui shell)
例如:應用最為廣泛的windows explorer(微軟的windows系統作業系統),還有也包括廣為人知的linux shell。其中linux shell 包括 x window manager(blackbox和fluxbox),以及功能更強大的cde,gnome,kde,xfce。
二,命令列式shell(command line inte***ce shell,即cli shell)
例如:bash/sh/ksh/csh (unix/linux系統)
(ms-dos系統)
cmd.exe/命令提示字元(windows nt系統)
windows powershell(支援.net framework技術的windows nt系統)
傳統意義上的shell指的是命令列式地shell,以後如果不特別註明,shell是指命令列式地shell。
文字作業系統與外部最主要的介面就叫做shell,shell是作業系統最外面的一層,shell管理你與作業系統之間的互動:等待你輸入,向作業系統解釋你的輸入,並且處理各種各樣的作業系統的輸出結果。
shell提供了你與作業系統之間通訊的方式。這種通訊可以以互動方式(從鍵盤輸入,並且可以立即得到響應),或者以shell script(非互動)方式執行。shell script是放在檔案中的一串和作業系統命令,它們可以被重複使用。本質上,shell script是命令簡單的組合到乙個檔案裡面。
shell基本上是乙個命令直譯器,類似於dos下的command 。它接收使用者命令(如is等),然後呼叫相應的應用程式。教為通用的shell有標準的boume shell(sh) 和 c shell( csh)。
互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些命令、簽退。當你簽退後,shell也終止了 。
2.shell優點
1.語法和結構通常比較簡單
2.學習和使用通常比較簡單
3.通常不需要編譯
4.適合處理檔案和目錄之類的物件
3.shell命令
常用命令
cat 檔名,輸出檔案內容到基本輸出(螢幕or加》 filename 到另乙個檔案)
cb 格式化源**
chmod //change mode,改變檔案的許可權
cp copy
date 當前的時間和日期
echo $abc 在變數賦值之後,只需在變數前面加乙個$去引用。
lint 語法檢查程式
is dir
man help
more type
du 檢視磁碟空間狀況
ps 檢視當前程序狀況
who 你的使用者名稱和終端型別是
定義變數 name = abc?(bash/pdksh) || set name = abc(tcsh)
mkdir 建立目錄
rmdir 刪除目錄
cd 進入目錄
rm 刪除檔案
more 顯示檔案
echo 顯示指定文字
mv 改檔名/移動檔案
pwd 顯示目錄路徑命令
(1)在桌面建立乙個"test.sh"檔案,在檔案內輸入以下**,我的系統是基於mac的,不同版本可能又略微差異
echo "1.hellp world"
echo 2.hello world
text="hello world"
echo $text
echo -e "4.hello \n world" #輸出並且換行
echo "5.hello world" > a.txt #重定向到檔案
echo `date` #輸出當前系統時間
輸出結果如下:
(2)shell變數
1.只能使用數字,字母和下劃線,且不能以數字開頭
2.變數名區分大小寫
3.「=」前後不能有空格
4.當想要訪問變數的時候,需要使用$,f否則輸出的將是純文字內容,如下所示
在剛剛的檔案中,輸入一下內容
echo "hello world"
countone="hello world"
counttwo=100
echo $countone
echo $counttwo
echo countone
echo counttwo
輸出如下
(3)本地變數
只對當前shell程序有效地,對當前程序的子程序和其它shell程序無效
(4)環境變數(export) 即變數前加export 有空格
自定義的環境變數對當前shell程序及其子shell程序有效,對其它的shell程序無效
(5)區域性變數
.在函式呼叫時,函式執行結束,變數就是消失
.對shell指令碼中某些**片段有效
.定義為 local value = valuename
(6)位置變數
。 $0 :指令碼名稱
。 $1 :指令碼的第乙個引數
。 $2 :指令碼的第二個引數
(7)特殊變數
4.引號
"單引號 不解析變數 eg echo '$count' 輸出為 $count
""雙引號解析變數
``反引號是執行並引用乙個命令的執行結果,類似於$(...)
下面的語法先不具體詳細解釋了,有機會的話再更
說說Mac上的Shell指令
首先開啟終端,可在mac電腦的launchpad的其他中找到,也可按下 command 空格 開啟聚焦搜尋,輸入終端即可。成功開啟後你會看到這樣的視窗 好了我們來學習幾個最基本的指令 ls 顯示全部目錄內容 ls bin 顯示bin下的目錄內容 ls a 顯示當前目錄下的隱藏檔案 如下圖 最最基本的...
mac上使用shell配置環境變數
首先,先來區分幾個概念 etc profile 不建議隨意修改此檔案全域性 公有 配置,系統所有使用者登入時都會讀取該檔案。修改此檔案,系統所有使用者都會受影響。etc bashrc 系統級環境變數全域性 公有 配置,系統所有使用者在執行 bash shell 時都會讀取此檔案。修改此檔案,系統所有...
Shell基本了解
shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面,當使用者下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作,系統的回應和輸出的資訊也由shell處理,然後顯示在使用者的螢幕上 二 什麼是shell...