歡迎您光臨本站 註冊首頁

Linux Shell 學習

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

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

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

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

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內部命令,不顯示任何路徑)

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

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

assignment
var=xxxx ##注意=左右不能有空格,否則系統認為var是命令,如果在if [ ]中,會認為是相等判斷.(說實話,我覺得這個真沒有Tcl的set var xxxx好,簡潔明白,還不容易出錯)

statement
command [option] [args] ...

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

Empire CMS,phome.net

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

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

7. 查看所有系統變數
set
env
printenv



[火星人 ] Linux Shell 學習已經有260次圍觀

http://coctec.com/docs/linux/show-post-45881.html