萬盛學電腦網

 萬盛學電腦網 >> 電腦入門 >> Linux下的shell與make用法

Linux下的shell與make用法

    一、shell

    1.1 什麼是shell

    ● 用戶與Linux的接口

    ● 命令解釋器

    ● 支持多用戶

    ● 支持復雜的編程語言

    ● Shell有很多種,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。Linux的缺省Shell為bash(Bourne Again Shell)。

    Shell是用戶和操作系統之間最主要接口。通過Shell,可以同時在後台運行多個應用程序,並且在把需要與用戶交互的程序放在前台運行。

    通過在多條命令的序列中使用變量和流程控制,Shell可以作為一名復雜的編程語言。

    1.2 轉義字符和通配字符

    ● 轉義字符(metacharacters)指的是在Shell中有特殊含義的字符。

    例如:< > | ; ! ? * [ ] $ \ " ' ` ~ ( ) { } ^

    #ls file[1-10].c

    #count=`ls –l | grep '^d'| wc –l`

    ● 通配字符(wildcards)是轉義字符的子集,用來查找匹配文件名

    例如:? * [] [-] [!]

    ● 使用<Tab>鍵,可以自動補齊。

    通配一個字符:"?"

    通配多個字符:"*"

    1.3 輸入輸出重定向

    ● 系統定義三個標准文件:標准輸入(stdin)、標准輸出(stdout)、標准錯誤輸入(stderr)

    ● 管道符:"|",將前一個命令的輸出轉成下一個命令的輸入。

    ● 過濾器(filters):用來接收標准輸入,經過一定的轉化,再寫到標准輸出。所以,過濾器一般放在管道符中間。

    每個程序起動時,就有三個文件描述:STDIN (0),STDOUT(1),STDERR(2)。用"<"改變輸入,用">"改變輸出,用"2>"改變錯誤輸出,用"》"來追加到已有的文件中。

    常用的過濾器如下:expand,sed,awk,fmt,tac,tr,grep,nl,pr.

    多條命令可以輸入到一行中,並用";"字符分隔。在一行命令後加"\"表示另起一行繼續輸入,下一行的提示符變為">"

    printf("\t"); 

    1.4 Shell變量

    ● Shell變量(Variables)是程序用來保存數據用的。

    ● Shell特殊變量:系統定義了一些特殊的變量。如$HOME等。使用set命令查看當時系統中定義的變量。

    系統定義的特殊變量有:$TERM(當前終端類型),$PATH(命令的搜索路徑),$MANPATH(手冊頁存放的目錄),$HOME(用戶主目錄),$LANG(當前使用語言),$PS1,$PS2(命令提示符),$SHELL(當前Shell名)。

    在命令行上打入:變量名=變量值,可以定義變量。使用 echo $變量名查看變量值。使用 unset 取消對變量的定義。

    #hello="123"

    單引號表示忽略其中所有的轉義字符,雙引號表示忽略其中除了 $ ` \ 以外的其他的轉義字符。反斜線(\)表示忽略下一個轉義字符。

    多條命令可以輸入到一行中,並用";"字符分隔。在一行命令後加"\"表示另起一行繼續輸入,下一行的提示符變為">"

    ● Shell系統變量

copyright © 萬盛學電腦網 all rights reserved