Linux Shell 學習(1)

1. 查看系統上可用的shell
cat /etc/shellsjava

2. 獲得目前使用的shell類型
echo $SHELL
ps $$
ps -p $$python

3. 查看某個命令是不是是一個shell內部命令
type [-a] [command]c++

4. 顯示shell command的全路徑
which [command]
root@localhost :/home/James/mypro/shell# which pwd
/bin/pwd
root@localhost :/home/James/mypro/shell# which bash
/bin/bash
root@localhost :/home/James/mypro/shell# which gcc
/usr/bin/gcc
root@localhost :/home/James/mypro/shell# which emacs
/usr/bin/emacs
root@localhost :/home/James/mypro/shell# which history
root@localhost :/home/James/mypro/shell# (若是命令是shell內部命令,不顯示任何路徑)shell

5. Starting a Script With #! (shebang line, 組織行)
它告訴系統用哪一個interpreter來執行這個腳本。
e.g.
#!/usr/bin/python
print "hellO"bash

6. 一個語言的基本元素
data
和大部分腳本語言同樣,動態類型的。編輯器

assignment
var=xxxx ##注意=左右不能有空格,不然系統認爲var是命令,若是在if [ ]中,會認爲是相等判斷。(說實話,我以爲這個真沒有Tcl的set var xxxx好,簡潔明白,還不容易出錯)spa

statement
command [option] [args] ....net

branch
if-else-fi branch
case - ) - esac branch
(這裏我再次出來吐槽。各類語言標識一塊block的方法各不相同。有用{}的,如c/c++/java/Tcl等;有用強制縮進的,如python;還有就是如shell這種用關鍵詞來標識的,在shell中[] () {}都有用處,而強制縮進顯然不合適(你在鬧哪樣啊強制縮進!),因此用關鍵詞來標識一個block比較合理。而後我要吐槽下強制縮進,你沒有一個合適的編輯器真心鬧不住啊!你直接開python寫兩個簡單分支都要記得按tab鍵,DT不DT!)ip

iteration
for-do-done
while-do-done
until-do-doneget

input and output
read, printf, echo等。(對於輸出,我推薦用printf)

7. 查看全部系統變量 set env printenv

相關文章
相關標籤/搜索