<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    Linux shell程序設計(一).基本操作
    ?
    ??? 今天開始來系統得學習一下Linux中的shell編程操作。這部分的內容,說簡單也簡單,但是主要是要多應用,每次看到不同的寫法會有不同的領悟,要精通是很不容易的。可是用一些簡單的結構寫出很復雜的過程來。好了,今天先來學習一點基本的操作。
    ?
    ?
    一、Shell概述
    ?
    1、Shell的種類
    ?
    ??? ① sh (Bourne shell):shell的基礎版本,編程方面優秀,但交互性方面不好。
    ??? ② csh (C shell):語法與C類似,交互性更好,但與sh不兼容
    ??? ③ ksh (Korn shell):集合sh和csh有點,并兼容sh
    ??? ④ bash(Bourne Again shell):默認shell,集合csh和ksh有點,但與sh不兼容
    ??? ⑤ 其他:如ashzsh
    ?
    ??? 主要介紹bash的用法,bash主要繼承了csh和ksh的以下優點:
    ?
    ??? * 命令行歷史 (翻閱歷史命令)
    ??? * 命令行編輯 (可用vi修改已輸命令)
    ??? * 命令補全 (Tab)
    ??? * 別名擴展 (建立代表某些命令的名字)
    ?
    2、Shell的特點
    ?
    ??? ① 可建立腳本來組合命令
    ??? ② 提供了文件名擴展字符(*/?/[])
    ??? ③ 可直接使用shell內置命令而無需創建新進程
    ??? ④ 靈活的數據流:通配符、輸入/出重定向、管道線等
    ??? ⑤ 結構化的程序模塊:順序、條件、循環
    ??? ⑥ 后臺執行命令能力:&
    ??? ⑦ 提供可配置環境,用戶可創建、修改命令
    ??? ⑧ 提供高級語言命令,可制作shell腳本
    ?
    3、shell程序示例
    ?
    ??? ① 使用shell最簡單的方法就是直接輸入命令,如:
    ???
    ??? $ ls -l /usr
    ?
    ??? ② 簡單shell腳本
    ?
    ??? $ cat ex1
    ??? date
    ??? pwd
    ??? cd ..
    ?
    ??? 這個腳本表示依次執行腳本中的命令
    ??? 先顯示出日期,再顯示當前工作目錄,再返回上級目錄
    ?
    ??? ③ 帶控制結構的腳本
    ?
    ??? #!/bin/bash
    ??? # If no arguments then listing the current directory.
    ??? # Otherwise listing each subdirectory.
    ?
    ??? if test $# = 0
    ??? then ls
    ??? else
    ????? for? i
    ????? do
    ??????? ls -l $i|grep '^d'
    ??????? done
    ??? fi
    ?
    ??? 說明:
    ??? 1) #!/bin/bash 表示下面的腳本用bash編寫,必須用bash進行解釋執行
    ??? 2) #開頭的行為注釋行
    ??? 3) if下面的for循環語句結構
    ?
    4、Shell腳本的執行
    ?
    ??? ① 輸入定向到shell腳本
    ??? $ bash < ex1
    ?
    ??? shell從文件ex1讀取命令并執行,執行完成后返回shell命令狀態,此命令不能帶參數
    ?
    ??? ② 以腳本名作為bash參數
    ??? $ bash ex2
    ??? $ . ex2
    ?
    ??? 這種方法可以在后面加參數
    ??? 第二行的“. ex2”表示用當前shell執行該腳本,注意中間要有空格
    ?
    ??? ③ 將shell腳本權限設為可執行
    ??? $ chmod a+x ex2
    ??? $ ex2
    ?
    ??? 可以將shell腳本所在目錄加入到命令搜索目錄,這樣可以像普通命令那樣隨時調用。
    ?
    ?
    二、命令歷史
    ?
    ??? bash為每個用戶都維護了一個命令歷史文件:~/.bash_history
    ?
    1、顯示歷史命令
    ?
    ??? ① 不帶參數
    ??? $ history
    ?
    ??? 列出所有的命令,并附有編號。所有命令均是曾經被執行過的。
    ?
    ??? ② 后面帶數字
    ??? $ history 50
    ?
    ??? 表示列出最后的50條命令
    ?
    ??? ③ 刪除所有信息
    ??? $ history -c
    ?
    2、執行歷史命令
    ?
    ??? ① 基本操作
    ??? $ !50
    ?
    ??? 執行序號為50的命令
    ?
    ?? ② 其他操作
    ?
    ??? !!???????? 重復執行上一條命令,即!-1
    ??? !n???????? 重新執行第n條命令
    ??? !-n??????? 重新執行倒數第n條命令
    ?? !string??? 重新執行最近一條以string開頭的命令
    ?? !?string?? 重新執行最近一條包含string的命令
    ??? !#???????? 執行到現在為止所輸入的整個命令行
    ?
    3、配置歷史命令環境
    ?
    ??? ① 更改文件路徑
    ??? $ HISTFILE="/home/wxq/.myhistory"
    ?
    ??? 通過更改環境變量HISTFILE來改變存放歷史命令的文件
    ?
    ?? ② 改變記錄個數
    ??? $ HISTSIZE=600
    ?
    ?
    三、名稱補全
    ?
    ??? 在輸入文件名時,使用Tab鍵,會自動進行名稱補全
    ?
    ??? ① 當系統可以唯一確定是哪個目錄或文件時,自動補全
    ??? ② 當系統找到不止一個文件名時,把文件名補全到最后一個相同的字符為止
    ??? ③ 若不能唯一確認時,盡量補全并響鈴提示
    ?
    ??? 注:可以按兩次Tab鍵(或Esc+?),使系統自動提示所有可以匹配的文件。
    ?
    ?
    四、別名
    ?
    ??? ① 創建別名
    ?
    ??? bash可以用alias命令來定義別名。例如:
    ??? $ alias ..='cd ..'
    ??? $ alias cp='cp -i'
    ??? $ alias ll='ls -l'
    ?
    ??? 注意:“=”兩邊不能有空格,如果命令中間有空格,需要用單引號括起來。
    ?
    ??? ② 刪除別名
    ??? $ unalias ll ?
    ?
    ??? 可以通過一下命令刪除所有的別名:
    ??? $ unalias -a
    ?
    ?
    posted on 2009-01-06 22:08 decode360 閱讀(154) 評論(0)  編輯  收藏 所屬分類: 03.Linux
    主站蜘蛛池模板: 亚洲成人福利网站| 久久精品国产免费观看| 中文字幕 亚洲 有码 在线 | 久久久久久a亚洲欧洲AV| 国产午夜鲁丝片AV无码免费| 国产免费丝袜调教视频| 免费无码av片在线观看| 免费看一级一级人妻片| 亚洲欧美国产日韩av野草社区| 久久久久久亚洲Av无码精品专口 | 亚洲一区二区三区深夜天堂| 久久久久亚洲AV成人无码网站| 亚洲真人日本在线| 免费人成在线观看播放国产 | 亚洲国产综合精品中文第一区| 亚洲人成人网站在线观看| 国产高清免费在线| 久久精品无码一区二区三区免费| 最近的中文字幕大全免费8| 在线毛片片免费观看| 成人无码a级毛片免费| 中国黄色免费网站| 中国videos性高清免费| 久久久久久久久久久免费精品| 一级女性全黄生活片免费看| 国产亚洲精品国产福利在线观看| 精品日韩99亚洲的在线发布| 久久久久亚洲AV无码专区体验| 巨胸喷奶水www永久免费| 亚洲中文字幕在线无码一区二区| 国产92成人精品视频免费| 久久综合亚洲色一区二区三区| 青柠影视在线观看免费| 特黄特色大片免费| 免费一区二区无码视频在线播放| 国产精品亚洲天堂| 四虎永久在线精品免费一区二区| 美女黄色毛片免费看| 日本黄页网址在线看免费不卡| 视频一区二区三区免费观看| 一级毛片在播放免费|