Shell 的基礎知識

2022-09-06 15:03:13 字數 1451 閱讀 9226

檢視linux支援的shell指令碼型別

# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

最早sh就叫sh,也叫bsh,發展來自與b語言,之後出現了csh,它類似於c語言,在csh的基礎之上出現了ksh,但是ksh為商業版,所有在linux系統出現後,就開發了bash,集合了sh,csh以及ksh的優點;

現在最新的shell編譯器也有zsh,但是使用較少;

1. 因為linux是多使用者,多程序的;所以每個使用者應用的程式是相同的,但是程序是不一樣的;程序可以理解為同一程式的轉殖;它支援每個使用者對自己的bash程序進行修改,但是實際上使用的bash程式都是一樣的; linux系統如何來區分每個使用者的bash程序能,這就是通過pid來進行區分;

2 bash的特性:命令列的處理:ctrl+a ctrl+e ctrl+u ctrl+l ctrl+w ctrl+k

ctrl+u   刪除游標前的字元

ctrl+k   刪除游標後的字元

ctrl+w   以空格為分隔符,去刪除檔案

ctrl+r    進入乙個互動介面,搜尋最近一次使用的命令(要輸入string)

命令歷史:history

-c-d 500

-d 500 10

-w            //儲存到家目錄的.bash_history檔案中去,這樣的話,即使重啟,或者-c清楚,也會保留history的命令記錄

命令別名

alias

unalias

命令的替換

$(命令)  

# echo "today is $(date)"和``實現的功能相同

# echo "today is `date`"

``:強制轉意

tab鍵的應用

1 補全命令

2 補全路徑

當輸入後需要補全的命令或者路徑不是唯一的時候,所有選項都會顯示出來;

當需要顯示的選項過多時,會提示;

檔案的萬用字元

\ //轉意字元

^ //以什麼開頭

$ //以什麼結尾

//匹配在內某個字元,指定範圍,[^0-9] 代表取反

[ - ] //輸入[ - ]所標記的範圍字元

. //某乙個任意字元

* //0個或者多個任意的字元

//匹配前乙個字元或表示式n次到m次

//最少n次

//只有n次

//最多m次

grep 「^\\$」  檔名  //以$開頭

+ //匹配前乙個字元或一次以上

? //匹配前乙個字元或表示式0次一次

|  //或

()//分組

SHELL 基礎知識

1 什麼是shell?shell的本意是 殼 的意思,其實已經很形象地說明了shell在linux系統中的作用。shell就是圍繞在linux核心之外的乙個 殼 程式,使用者在作業系統上完成的所有任務都是通過shell與linux系 統核心的互動來實現的。shell本身是乙個c語言編寫的程式,是使用...

shell 基礎知識

預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...

shell 基礎知識

預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...