linux shell簡單介紹

2021-06-28 19:32:54 字數 3273 閱讀 9965

shell有好多種,這裡只是簡單介紹bash

shell的形式: command [引數1] [引數2]

對於shell來說: command是引數0

shell僅僅是呼叫系統中自帶的小工具的一種命令,傳遞的引數是什麼,傳遞的正確與否,shell都是沒辦法判斷的. 

shell查詢命令是從預先設定路徑的n個資料夾裡面查詢的,而這個預先設定的資料夾是儲存在全域性變數path中,可以通過修改 path 來達到新增新的查詢範圍.

[linux@localhost ~]$ echo $path

/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linux/bin

[linux@localhost ~]$ path=$path:.

[linux@localhost ~]$ echo $path

/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linux/bin:.

如上新增了乙個.

shell是把命令列的引數傳遞給命令稱之為標準輸入,把命令返回的資訊傳遞給顯示器稱為標準輸出,不光是這樣.shell還接受輸入和輸出重定向

shell輸出重定向,符號是">"

[linux@localhost ~]$ ls

desktop documents downloads music pictures public templates videos

[linux@localhost ~]$ echo 123456 > newfile

[linux@localhost ~]$ ls

desktop downloads newfile public videos

documents music pictures templates

[linux@localhost ~]$ cat newfile

123456

">"能覆蓋原檔案,這樣可能會出現問題,造成意想不到的結果,所以最好在之前先做好備份
noclobber: 該特性可以防止上述情況發生.但是並不能完全阻止,因為可以使用">|"的命令繞過這個特性
set -o noclobber 開啟noclobber
set +o noclobber 關閉noclobber
以上的例子, echo並沒有在顯示器上輸出123456, 而是把123456輸出到了newfile這個檔案中,而newfile試先又不存在,所以這時候就新建了newfile並寫入123456

shell輸入重定向,符號是"<"

[linux@localhost ~]$ cat < newfile

123456

shell追加輸出,符號是">>"

[linux@localhost ~]$ echo 123456 >> newfile

[linux@localhost ~]$ cat newfile

123456

123456

/dev/null是乙個資料沉降器..可以把不需要的資料輸出給它,這樣資料就會是消失..

[linux@localhost ~]$ echo 123456 > /dev/null

[linux@localhost ~]$

shell管道, 符號是"|"

command_a [引數1] | command_b [引數1]

管道所做的事類似以下

command_a [引數1] > tmp

command_b [引數1] < tmp

rm tmp

shell 前台和後台

前台是乙個單任務模式,一次只能執行乙個任務,當第乙個任務執行好了之後,才能繼續執行第二個命令

當需要多個任務同時執行的時候, 就需要用到多工模式了

[linux@localhost ~]$ cat &

[1] 6299

[1]是作業號
6299是pid, 俗話說的程序id

終止乙個程序可以使用 "kill %1" 或者 "kill 6299

"

jobs: 顯示後台作業列表
ps: 顯示程序列表
把前台程式放到後台執行: ctrl+z和gb 作業號
[root@localhost linux]# find / -name "123456789" 

^z[1]+  stopped                 find / -name "123456789"

[root@localhost linux]# bg 1

[1]+ find / -name "123456789" &

把後台程式放到前台執行: fg +作業號
[root@localhost linux]# fg 1

find / -name "123456789"

shell特殊字元

?: 匹配任意乙個字元

*: 匹配任意多個字元

: 匹配中的任意乙個字元

Linux shell 指令碼簡單介紹

簡單介紹一下shell指令碼的基本原理,知道執行shell指令碼需要做些什麼 使用shell指令碼的原因 對於不同的unix和linux,使用一段shell指令碼將需要一些小小的改動才能執行通過。指令碼內容 指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知s...

Linux Shell重定向介紹

可以理解為linux跟蹤開啟檔案,而分配的乙個數字,這個數字類似c語言操作檔案時候的控制代碼,通過控制代碼就可以實現檔案的讀寫操作。使用者可以自定義檔案描述符範圍 3 num ulimit n linux啟動後,會預設開啟3個檔案描述符,分別是 以後開啟檔案,新增檔案繫結描述符可以一次增加 一條sh...

linux shell指令碼簡單示例

1.檢視系統使用何種shell指令碼 bash,ksh,csh echo shell 2.測試拷貝效率 bin bash size du file1 awk ksize expr size 1 starttime date s n cp file1 file1.bak endtime date s ...