1. 程式人生 > >Shell編程之一

Shell編程之一

命令 如果 mnt www pts 有變 檢查 補全 rip

以下一至二大點是了解。後面才是重點:

一、硬件、核心和shell。 

1. 硬件:當然就是你的硬件配備。
2. 核心管理:操作系統的核心。
3. 應用程序:圖形接口的軟件(這裏就是指shell)。

二、為何要學習shell。

1、所有的Linux都支持shell。
2、遠程管理:shell命令傳輸非常快。(Windows下視頻傳輸就是一直抓圖,傳輸速度非常慢)
3、要想做一個高端的系統管理員:shell和shell scripts 必須學會。

三、系統的合法 shell 與 /etc/shells 功能

1、Linux版本系統裏面常用的shell種類(查詢方法:shell)存放檔案目錄:/etc/shells

  ? · /bin/sh (已經被/bin/bash 所取代)
  ? · /bin/bash (就是Linux預設的shell)
  ? · /bin/ksh (Kornshell 由 AT&T Bell lab.發展出來的,兼容與bash)
  ? · /bin/tcsh (整和C Shell,提供更多的功能)
  ? · /bin/csh (已經被/bin/tcsh所取代)
  ? · /bin/zsh (基與ksh發展出來的,是功能更強大的shell)

2、一些奇怪的shell(如:/etc/nologin)的來源

    有的時候FTP網站會去檢查使用者的可用shell,而如果你不想要這些用戶使用FTP以外的主機資源時,
  可能會給予該使用者一些怪怪的shell,使使用者無法以其他服務登入主機。這個時候,你就得將那些
  怪怪的shell寫到 /etc/shells 當中了

  如:/etc/nologin 這個檔案就是怪怪的shell

  查看當前工作的shell:cat /etc/passwd

3、Bash Shell 的功能

  ①、命令編修的能力:history
  ②、命令與檔案補全功能:tab鍵
    ? [Tab] 接在一串命令的第一個字的後面,則為命令補全
    ? [Tab] 接在一串命令的第二個字以後時,則為檔案補齊

  ③、命令別名設置:alias
    alias dd=‘ls -al‘
    dd /mnt 查看mnt下的目錄

  ④、

    程序化腳本:Bash script
    通配符:ll /usr/bin/X*

  ⑤、查詢Bash shell 內鍵命令: type cd

  技術分享

  ⑥、一行多個命令和命令的換行  

    一行多個命令中間用分號隔開: ;
    多行一個命令,結尾以\隔開: \

四、shell語法;

 1、變量以及變量的轉換;

    變量的分類:本地變量,環境變量,位置變量,系統變量

   shell的切換:bash

   查看當前的shell ID: echo $$ 

 2、變量的申明與取消、以及註意事項(通用所有變量);

     申明:(export,declare) 參數 變量名=值  

    取消:unset=變量名

    定義的註意事項:

            ①變量名可以用字母數字下劃線,但是不能以數字開頭;

            ②等號兩邊不能有空格;如果有空格則使用引號引起來

 3、本地變量的定義和引用;

      定義:變量名=值  (前面不需要關鍵字,直接變量名=值)

      引用:echo $變量名

    註意:在 bash 當中,當一個發量名稱尚未被設定時,預設的內容是空的;

 4、環境變量的定義和引用; 

      定義:

          export 變量名=值

          declare -x 變量名=值

      引用:echo $變量名

    環境變量的特點:會影響所有的子shell;

            但不會影響以前的shell; 

5、本地變量和環境變量的查看和轉換;

  查看:

     查看所有的變量(本地變量和環境變量):set

     查看所有的環境變量: env、export、export -p  

  轉換:

    本地變量——>環境變量 :

          本地變量yy轉換為環境變量:

              export yy

              declare -x yy

    環境變量——>本地變量: 

          環境變量zz換換為本地變量: declare +x zz 

          

6、位置變量;

  $0  ----> 代表腳本文件的名字

  $#  ---->代表參數個數

  $*  ---->代表參數列表

  $$

  $@

  $?

    區別參考博客:http://www.cnblogs.com/kaituorensheng/p/4002697.html

7、系統變量;

  系統變量一般是大寫。

  系統變量什麽時候賦值:在系統登錄的時候就賦值了。

  由於系統變量在系統裏面已經設置了;所有我們可以直接引用。

    引用的方法:echo $HOME

          echo $PATH

          echo $MACHINE

          echo $HISTFILESIZE    (查看當前系統最大的命令緩存個數)

          

8、查看系統當前支持的編碼和當前的編碼;

  查看系統支持的編碼:local -a

  查看當前系統的編碼:echo $LANG

Shell編程之一