亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

sco unixware 7.1.1 全面學(xué)習(xí)資料(4)

瀏覽:102日期:2024-06-24 14:30:41
第四部分:SHELL介紹 第一講:什么是Shell 當(dāng)我們登入U(xiǎn)nix之後, 第一個(gè)接觸到的, 便是 Shell. 我們必須對(duì)它有點(diǎn)初步的認(rèn)識(shí)才行. 一. Shell 簡介. unix系統(tǒng)分成三個(gè)重要的部份 核心 Shell 工具程式 核心的部份相當(dāng)?shù)碗A, 操作者不易和它直接溝通, 因此, 必須要有一個(gè)友善的介面(interface), 使得操作時(shí)能更為方便, 這個(gè)介面便是 Shell. 換言之, Shell 就是一個(gè)居於核心和操作者之間的一層使用者介面. 那麼, 為何稱它為 Shell 呢? Shell 的本意是 '殼' 的意思呢! 沒錯(cuò), 在核心的外面, 包覆著一層外殼, 用來負(fù)責(zé)接收使用者輸入的指令, 然後將指令解譯成核心能夠了解的方式, 傳給核心去執(zhí)行, 再將結(jié)果傳回至預(yù)設(shè)的輸出周邊. 例如: 鍵入 ls -l shell 給你以下回應(yīng): 擁 檔 有 案 檔 種 案 檔案大小 最近修改的 類 檔案權(quán)限 數(shù) 擁有人 組別 (byte單位)日期及時(shí)間 檔案名稱 drwxr-xr-x 14 root root 1024 Jul 21 21:31 . drwxr-xr-x 17 root root 1024 Apr 11 12:01 .. drwxr-xr-x 8 82 82 1024 Feb 25 19:23 apache -rw-r--r-- 1 root root 1335460 Feb 25 17:45 apache_1_3_4.tar.gz drwxr-xr-x 6 root root 1024 Aug 31 1998 ftp drwxr-xr-x 5 root root 1024 Aug 31 1998 httpd drwx------ 2 james james 1024 Apr 23 06:47 james drwxr-xr-x 2 root root 12288 Aug 31 1998 lost+found drwxr-xr-x 2 msql nobody 1024 Dec 28 1998 msql drwxr-xr-x 28 ols3 ols3 2048 Jul 19 21:38 ols3 drwxr-xr-x 3 1022 nobody 1024 Jan 25 23:40 ols3cgi drwxrwxr-x 3 perl ols3 1024 Feb 2 07:11 perl -rw------- 1 root root 2097152 Jul 21 18:39 quota.group -rw------- 1 root root 1278656 Jul 21 18:39 quota.user drwxrwxr-x 2 root nobody 1024 May 11 1998 samba drwxr-xr-x 3 apache nobody 1024 Feb 25 16:58 temp drwxrwxr-x 2 webadm nobody 1024 Mar 14 16:34 webadm Shell 按著表現(xiàn)的方式與讀取使用者輸入種類的不同, 可分為二大類: Text base : 文字導(dǎo)向 Graph base: 圖型導(dǎo)向 所謂 '讀取使用者輸入種類不同' 是指: 讀取自鍵盤, 或讀取自滑鼠, 其它 serial input, 螢?zāi)挥|控等. 這樣說來, Shell 好像只是命令直譯器罷了?! 嗯, 這倒要按不同的 OS 所附給的 Shell 其功能和選擇性的自由度而定. 以 Dos 的 COMMAND.COM 而言, 它就是一個(gè)十足的命令直譯器, 除了一點(diǎn)點(diǎn) batch 檔的能力之外, 它的功能并不多. Win 平臺(tái)的 GUI, 則是一個(gè)圖型式的命令直譯器, 介面十分友善. 不過, 這二種 OS, 不能讓你自由而簡單地選擇 Shell.(以前 DOS 有 4dos 可選用) 由於 Unix 家族, 對(duì) Shell 的處理, 采獨(dú)立自由開放的方式, 因此, Shell 的種類相當(dāng)?shù)囟? 更可以讓人自由地更換(chsh). 目前流行的 shell 有: Bourne shell : sh C shell : csh Korn shell: ksh (商業(yè)軟體) tcsh (free) Bourne Again shell: bash (GNU) 二. Shell 的簡史 第一個(gè)重要的 shell 是 Bourne shell (如此命名是為了紀(jì)念此 shell 的發(fā)明者 Steven Bourne), 1979 年第一個(gè)流行的 Unix 版本 7 發(fā)行時(shí), 開始使用 Bourne shell. Bourne shell 的主檔名為 sh, 因此, 日後人們便以 sh 為 Bourne shell 的主要識(shí)別名稱. 雖然 Unix 上的 shell 有許多種, 但 Bourne shell 的地位至今仍然沒有改變. 許多 Unix 系統(tǒng)中仍然使用 sh 做為重要的管理工具. (它的工作從開機(jī)到關(guān)機(jī), 幾乎無所不包) 第一個(gè)廣為流行使用的 shell 變種是 C shell. C shell 主要附在 BSD 版的 Unix 系統(tǒng)中. 它的作者是柏克萊大學(xué)的 Bill Joy. C shell 主要是因?yàn)槠湔Z法和 C 語言相類似, 因而得名. 這使得 Unix 系統(tǒng)的程式師, 在學(xué)習(xí) C shell 時(shí), 感到相當(dāng)?shù)胤奖闳菀? 以上這二種形成 shell 的二大主流, 後來的變種 shell 大都攫取這二種 shell 的優(yōu)點(diǎn). 比如 Korn, tcsh 及 bash. Bash shell 是 GNU 計(jì)劃的重要工具軟體之一, 也是 GNU 作業(yè)系統(tǒng)中標(biāo)準(zhǔn)的 shell. Bash 在 1988 年誕生, 最初的作者是 Brian Fox, Chet Ramey 於 1989 加入, 現(xiàn)在官方正式的維護(hù)者是 Chet Ramey, 他的工作便是持續(xù)不斷地增強(qiáng) bash 的功能. 1995~1996 期間推出 bash 2.0 , 在這之前, 廣為使用的版本是 1.14.x, 它增加了許多新的功能, 以及更好的相容性. 當(dāng)然, Bash 是完全免費(fèi)的, 它是 Open Source 的一員, 原始碼全部開放. 二. Bash 的功能. Bash 具有以下功能: 相容於 Bourne shell (sh) 包含有 C shell 以及 Korn shell 中最好的功能. 具命令列編修的能力(您記得以前 DOS 中的 doskey 嗎?) 工作控制(job control)的能力, 可控制前景及背景程式 具 shell 程式設(shè)計(jì)的能力, 可讓您自訂shell及設(shè)計(jì)程式, 管理系統(tǒng). 三. 新版的 Bash 哪里抓取? 若欲抓取新版的 bash, 可至 http://www.gnu.org 或其 mirror 站臺(tái). 中研院 FTP 也是不錯(cuò)的選擇. ftp://ftp.sinica.edu.tw 或 ftp://linux.sinica.edu.tw 三. 開始使用 Bash 當(dāng)你 login 進(jìn) unix 主機(jī)時(shí), 便開始和 bash 互動(dòng), 一直到你 exit 主機(jī)(或按^D) 為止. Bash 的提示符號(hào)為$(代表一般身份使用者), 當(dāng)您具有 root 權(quán)限時(shí), 提示符號(hào)則變?yōu)?#. 一旦出現(xiàn)提示符號(hào)時(shí), 您便可以開始鍵入操作命令列(command line)了. 命令可分為二大類: bash 內(nèi)建的指令 程式 如果是 bash 內(nèi)建的指令, 則由 bash shell 負(fù)責(zé)回應(yīng); 若是程式, 則 shell 會(huì)找出該程式, 然後將控制權(quán)交給核心, 由核心執(zhí)行該程式, 執(zhí)行完之後, 再將控制權(quán)交回給 shell. 怎麼知道那些指令是 bash 內(nèi)建的, 那些是程式呢? 通常用 'which 指令', 若沒有任何回應(yīng), 表示是內(nèi)建的指令(除非該指令錯(cuò)誤、不存在, 或該程式不在預(yù)設(shè)的搜尋路徑之內(nèi)), 例如下: $/usr/ucb/which echo  [沒有回應(yīng), 表示是內(nèi)建的指令] /usr/bin/echo $ /usr/ucb/which ls /bin/ls 四. 命令列的格式. 命令列通常由好幾個(gè)字串組成, 中間用空白或 tab 鍵分開. 如下所示: command options arguments(或稱為 parameters) 命令 選項(xiàng) 參數(shù) rm -rf /home/ols3 除了空白和 tab 鍵之外, 每一部份, 我們稱之為 token, 比如上面的例子中, 便有三個(gè) token: rm, -rf, /home/ols3. 當(dāng)鍵入此一命令列時(shí), shell 首先將它分解成個(gè)別的 token, 然後判斷是內(nèi)建的指令, 或是程式, 再按之前提過的方式去執(zhí)行. 怎麼知道一個(gè)命令或程式, 它有那些選項(xiàng)和參數(shù)呢? 通常 man 一下該指令, 就可以得到了. 例如: man rm 另外, 多行指令也可以一下全部寫在同一命令列中, 只要中間用 ; 分開, 如: ls ; mkdir test ; clear 五. 現(xiàn)行目錄和自家目錄. 所謂現(xiàn)行目錄(current Directory)是指: 你現(xiàn)在所處的位置, 又稱為工作目錄(working directory). 欲知現(xiàn)行目錄為何? 可下 pwd 指令便知. 所謂自家目錄(home directory)是指: 當(dāng)初 root 為你建立帳號(hào)時(shí), 所指定給你的一個(gè)私人專用的目錄, 也是你登入系統(tǒng)之後, 第一個(gè)進(jìn)入的地方. 欲知自家目錄, 可用下列方式: cd  (然後直接按 Enter) cd ~ (~ 代表自家目錄) cat /etc/passwd | grep 您的帳號(hào) 相關(guān)的技巧 cd ./myway (進(jìn)入目前目錄下的 myway 目錄中)  cd .. (回到上一層目錄) 六. 萬用字元. 如果命令列的參數(shù)中, 含有檔名, 那麼萬用字元(wildcards)可以帶來十分便利的操作. (不過若使用不當(dāng), 也是惡夢的開始) 如果各位以前有過 DOS 的操作經(jīng)驗(yàn), 應(yīng)該還記得 * 及 ? 所代表的意義吧?! 以下是 bash 中使用的萬用字元: ? 代表任何單一字元(character) * 代表任何字串 (注意: 0 個(gè)以上的字元, 例: *yes 將包含 yes 或 yes-or-not) [字元組合] 在中括號(hào)中的字元皆符合, 如: [a-z]代表所有的小寫字母 [!字元組合] 不在中括號(hào)中的字元皆符合, 如: [!0-9]代表非數(shù)字的字元皆符合 七. 輸入和輸出與重新導(dǎo)向. 當(dāng) unix系統(tǒng)完成開機(jī)之後, 預(yù)設(shè)上, 便開有三個(gè)檔案, 這三個(gè)檔案是做為輸入、輸出以及顯示錯(cuò)誤之用的. 我們稱之為: 標(biāo)準(zhǔn)輸入: 通常是鍵盤, 檔案代碼為 0 標(biāo)準(zhǔn)輸出: 通常是螢?zāi)? 檔案代碼為 1 標(biāo)準(zhǔn)錯(cuò)誤: 通常標(biāo)準(zhǔn)輸出相同(也就是螢?zāi)?, 檔案代碼為 2 雖然系統(tǒng)已幫你設(shè)好了這三個(gè)檔案, 但我們?nèi)匀豢梢砸曅枰? 適時(shí)地改變輸入,輸出,及錯(cuò)誤這三者至不同的地方. 這種改變標(biāo)準(zhǔn)輸出入的動(dòng)作, 我們稱之為 'I/O 重新導(dǎo)向' (I/O Redirection). 例如: ls -la > myfile 就是將查詢的結(jié)果重新導(dǎo)向至 myfile 中(本來是應(yīng)該出現(xiàn)在螢?zāi)簧系? cat myfile 便可以看見 ls -la 的結(jié)果. cat < myfile > youfile 就是將 myfile 的內(nèi)容拷貝給 youfile. > 代表將輸出轉(zhuǎn)向 < 代表將輸入轉(zhuǎn)向 另一個(gè)會(huì)將輸出入轉(zhuǎn)向的機(jī)制是 '管線' (Pipelines). 所謂的管線就是將一個(gè)程式的輸出當(dāng)成另一個(gè)程式的輸入. 例如: cat /etc/passwd | grep ols3 上面這段指令的意思是說: 把 /etc/passwd 檔的內(nèi)容顯示結(jié)果(即輸出) 丟給 grep 這個(gè)指令當(dāng)作輸入值, 然後由 grep 從中找出包含關(guān)鍵字 ols3 的資料列. 八. 前臺(tái)與后臺(tái)工作. unix 是多用戶多任務(wù)的作業(yè)系統(tǒng), 這意謂UNIX 可以讓多人同時(shí)使用, 更可以同時(shí)執(zhí)行許多程式. 一般而言, 你所執(zhí)行的指令會(huì)一直握著控制權(quán), 一直到程式結(jié)束為止, 我們稱為這樣的執(zhí)行工作是在前臺(tái)工作(foreground jobs), 如果, 執(zhí)行指令時(shí), 你仍然可以再做其它的事情, 那我們就稱它是在后臺(tái)工作. 通常比較耗時(shí)間的工作, 我們會(huì)把它丟到后臺(tái)去執(zhí)行, 而這期間, 我們?nèi)匀豢梢院?shell 繼續(xù)溝通, 下達(dá)其它命令給 shell 去執(zhí)行. 例如: 我們想從中研院的 FTP 伺服器下載某一個(gè)目錄中所有的檔案, 但又不想等它執(zhí)行完畢(因?yàn)檫@樣耗時(shí)間,也很無聊), 可以用以下的方式來達(dá)成: ncftp -R ftp://linux.sinica.edu.tw/pub1/redhat/powertools & 其中 & 這個(gè)符號(hào)便是將命令列丟到后臺(tái)去執(zhí)行的指令. 如果您想離線之後, 仍然令系統(tǒng)繼續(xù)傳檔, 可以在前面再加一個(gè) nohup 的指令, 如下: nohup ncftp -R ftp://linux.sinica.edu.tw/pub1/redhat/powertools & nohup 是 no hangup 即不掛斷之意. 八. 特殊字元及引號(hào). 有許多字元, 對(duì) shell 來說, 是具有特殊意義的. 詳列於下: 符號(hào) 意義 ~ 自家目錄 ` 命令取代 # 解 $ 變數(shù)取值 & 后臺(tái)工作 * 萬用字元 ( 子shell開始 ) 子shell結(jié)束 使特殊字元恢復(fù)本意 | 管線 [ 字元組合開始 ] 字元組合結(jié)束 { 命令區(qū)塊開始 } 命令區(qū)塊結(jié)束 ; 命令分隔號(hào) ' 單引號(hào)(不具變數(shù)置換的功能) ' 雙引號(hào)(具置換的功能) < 輸入轉(zhuǎn)向 > 輸出轉(zhuǎn)向 / 路徑分隔號(hào) ? 萬用字元 ! 管線邏輯意義上的 NOT
標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: www.天天色.com| 国产1024精品视频专区免费 | 国产99久久精品一区二区 | 成人片子| 12306播播影院午夜片在线观看 | 影音成人资源 | 欧美一级一级做性视频 | 青娱乐91在线 | 六月婷婷色 | 欧美日本一道高清二区三区 | 久久综合婷婷 | 国产精品亚洲二区 | 欧洲做视频在线观看 | 1024在线观看视频 | 亚洲欧美视频 | 欧美日韩国产58香蕉在线视频 | yjizz视频国产网站在线播放 | 性感美女香蕉视频 | 亚洲精品视 | 特级黄毛片 | 亚洲精品三级 | 国产精品情侣久久婷婷文字 | 国产综合精品久久亚洲 | 一级毛片一级毛片一级毛片aa | 夜夜爽日日澡人人 | 亚洲精品一线观看 | 色综合久久一区二区三区 | 午夜视频在线观看国产 | 中文字幕无线码一区二区三区 | 日韩区欧美区 | 国产香港特级一级毛片 | 婷婷色中文 | 亚洲欧美在线综合 | 福利盒子在线视频免费 | 看最刺激的欧美毛片 | 欧美久久精品 | 伊人久久大香线蕉精品哪里 | 一区二区三区免费视频网站 | 免费视频久久看 | 在线免费视频你懂的 | 九九精品国产99精品 |