03,什麼是shell,一些最基本的命令和小技巧。

來源:互聯網
上載者:User

標籤:linux基礎

什麼是shell:

shell就是人機互動介面,以便於人類控制電腦,通常有圖形介面和文字介面兩種

 圖形介面:GUI:Graphic User Interface :

        Windows

        IOS, Android

        X-Window

        Gnome

        KDE

        Xfce

 文字介面:CLI: Command Line Interface : 

        PowerShell

        bsh

        csh

        tcsh

        ksh

        bash

        zsh

Linux終端:

串列終端:(純文字介面的終端,不能顯示圖形介面)

        /dev/ttyS#

物理終端:

        /dev/console

虛擬終端:Ctrl+Alt+F[1-6]

圖形終端:Ctrl+Alt+F7

        /dev/tty#

        startx 命令 可 以啟動 圖形終端, startx & 表示 啟動 圖形終端 並讓 這個 進程 後台 運                行,從而 釋放 命令提示字元 

偽終端(類比終端):遠端連線,圖形環境開啟命令介面

        /dev/pts/#


# tty命令:顯示當前終端對應終端裝置檔案

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D3/wKiom1RF8RXi-fPKAAA_3_3luoc182.jpg" style="float:none;" title="tty1.png" alt="wKiom1RF8RXi-fPKAAA_3_3luoc182.jpg" />

這個是在虛擬終端1中執行的tty命令

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/D4/wKioL1RF8WHjSYQIAABE_oOp-dY232.jpg" style="float:none;" title="tty2.png" alt="wKioL1RF8WHjSYQIAABE_oOp-dY232.jpg" />

這個是在Xshell遠程終端中執行的tty命令

# who命令:查看當前系統上登入的所有使用者及其資訊

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D4/wKioL1RF8sCQXruzAAB8HrvrwG4258.jpg" title="who8.png" alt="wKioL1RF8sCQXruzAAB8HrvrwG4258.jpg" />

現在我的系統上一共 有 兩個 使用者, 他們 都是 用 root 登入 的, 不過 登入 的 裝置 並不相同。。

Linux哲學思想:

1、一切皆檔案;

open, read, write, close

2、由眾多目的單一應用程式組成:一個程式只做一件事,且做好;

3、組合目的單一的小程式完成複雜任務;

4、盡量避免跟使用者互動;

5、使用文字檔儲存配置資訊;

6、提供機制,而非策略;

bash簡單入門:

管理員的命令提示字元: #        650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D3/wKiom1RF9LjDzDfHAAARWeSyQu4214.jpg" title="#.png" alt="wKiom1RF9LjDzDfHAAARWeSyQu4214.jpg" />

普通使用者的命令提示字元: $      650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/D3/wKiom1RF9MnhYmi0AAAS9AFdPrM003.jpg" title="$.png" alt="wKiom1RF9MnhYmi0AAAS9AFdPrM003.jpg" />

提示符 前面 還有 一行 字元, 這些 字元 可以 通過 修改 環境 變數 來 修改

環境變數: PS1

    echo $PS1            #顯示環境變數PS1

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D4/wKiom1RF9X3zIOWqAAA1JnwEEjk461.jpg" title="PS1.png" alt="wKiom1RF9X3zIOWqAAA1JnwEEjk461.jpg" />

    可見 [\[email protected]\h \W]\$, 這裡 的 "\u"是使用者名稱, "\h"是主機名稱, "\W"是使用者當前所在目錄

    現在 顯示 的 目錄 是 " ~ ", 這個 是 使用者 的 家目錄 的 簡寫

    

    修改 PS1環境變數:

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D4/wKiom1RF-Fixje1-AAAjODFwhiM929.jpg" title="ps111111111111111111111.png" alt="wKiom1RF-Fixje1-AAAjODFwhiM929.jpg" />

    這裡 我 把 "\u"和"\h" 中間 的 " @ " 改成 了 "%", 再來 看一下 命令 提示符。

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D4/wKiom1RF-MyyZeoSAAA6cLUWicY644.jpg" title="2222222222222222222111.png" alt="wKiom1RF-MyyZeoSAAA6cLUWicY644.jpg" />

    已經 改好 了。。

------------------------------------------

Linux路徑:

    /   :  這個 叫做 根, Linux 中 的 所有 檔案 都 在 根目錄 下 的

    .   :  目前的目錄

    ..  :  上級目錄

絕對路徑: 就是 以 根 為 起點 的 路徑

相對路徑: 以 當前 目錄 為 起點 的 路徑, 如 : " ./a " , 這個 表示 目前的目錄下 的 a 檔案

-------------------------------------------

cd 路徑: 切換目錄,直接 輸入 cd 命令, 可 切換至 家目錄

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D4/wKiom1RF-uLRw_4iAABAZf8vfyw135.jpg" title="cd8.png" alt="wKiom1RF-uLRw_4iAABAZf8vfyw135.jpg" />

先由 家目錄 切換至 /etc 目錄 ,在 由 /etc 目錄 切換 至 家目錄

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D4/wKiom1RF-1XRX2AAAABXVh9jvSg017.jpg" title="cd 555555555555555555557.png" alt="wKiom1RF-1XRX2AAAABXVh9jvSg017.jpg" />

cd -   :  可 實現 切換 至 上一個 被 訪問 的 目錄, 有點 像 電視遙控器 裡 的 回看, 其中   " - " 表示 上一個 被 訪問 的 目錄

--------------------------------------------

Linux檔案系統的特性:

1、檔案名稱可以使用除/以外的任一字元;但總長度不能超過255個;

2、嚴格區分大小寫

--------------------------------------------

Linux命令:


bash中 命令 有 兩種 類型, 分別 為 內部命令 和 外部命令

    內部命令: bash 內建 的 命令, 也是 最基本 的 命令

    外部命令: 後來 自己 安裝 的 一些 軟體 的 命令。


查看 命令 類型:

which 命令 可 查看 命令 所在 路徑

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/D4/wKiom1RF_P3Ct3qdAADUNqEmr44747.jpg" title="which.png" alt="wKiom1RF_P3Ct3qdAADUNqEmr44747.jpg" />

type 可 查看 命令 的 類型

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D8/wKiom1RGKBfz0ExOAACCvHZ_gk8547.jpg" title="type.png" alt="wKiom1RGKBfz0ExOAACCvHZ_gk8547.jpg" />

這裡可見, ls 是 一個 外部命令, 而 cd 是一個 內部 命令, 因為 在 安裝 路徑 下 找不到 cd 的 安裝 檔案, 這裡 可以 看見 一大堆 檔案 路徑, 這些 檔案 路徑 也 是 一個 環境 變數,叫 PATH

環境變數: PATH

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D4/wKiom1RF_b6CcVc-AACGwOFw2J0971.jpg" title="PATH.png" alt="wKiom1RF_b6CcVc-AACGwOFw2J0971.jpg" />

這個 環境變數 是 用來 存放 命令 的 路徑 的, 以 " : " 作為 分隔字元, 命令 一般 會 存放 在 這些 目錄 下, 執行 命令 時 會 按照 目錄 的 次序 來 遍曆 , 直到 找到 命令 並 執行, 不過 這 又 出現 了 一個 問題。, 遍曆 命令 是 一個 非常 慢 的 操作, 所以 需要 一種 可以 快速 找到 命令 的 機制, 這種 機制 叫做 hash, 看一下 hash把。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D6/wKioL1RF_v-zfWg1AACmehSg26w824.jpg" title="hash.png" alt="wKioL1RF_v-zfWg1AACmehSg26w824.jpg" />

這個 就是 我 的 hash表, 表中 儲存 的 是 我 常用 的 命令 的 路徑, 表 前面 的 數字 表示 這個 命令 的 執行次數, 

正式 說一下 命令 把, 

命令格式: 

    command    options    arguments

    命令       選項       參數

    選項: 調整命令的執行特性

        選項可以有多個;多個選項之間必須以空格分隔

        短選項: -char

        長選項: --word

        短選項可以合并;長選項 一般 不可以 合并;

        有些選項需要有 參數

    參數: 命令的作用對象

        有些命令可以帶多個參數,各參數間需要使用空格分隔


擷取協助:

    內建命令:

        # help 命令名

            例如 help cd

    外部命令: 有兩種 形式 擷取 協助

        # 命令 --help

        使用命令手冊:

man手冊:

man [1-8] 命令名

    使用手冊中選項格式字元的意義:

        []: 可選部分

        {a|b}: 分組, a和b作為一個使用單元,a,b之間只能選擇一個

        | : 或者, 只選其一

        <> : 必選選項

        ... : 同類內容 可 同時出現 多個

    man的簡要操作

        翻屏:

            空格鍵:向下翻一屏

            b: 向上翻一屏

            斷行符號鍵:向下翻一行

            k: 向上翻一行

            Ctrl+d : 向下翻半屏

            Ctrl+u : 向上翻半屏

        文本搜尋:

            /keyword : 向下搜尋

            ?keyword : 向上搜尋

                n: 下一個

                N: 上一個

        man命令的分段機制: 一共分為8個段, 每段表示一種內容,同一個命令在不同段內顯示的內容各不相同,如 passwd 在 第一段 顯示 的 是 passwd 命令手冊, 而在 第五段 顯示 的是 passwd 設定檔 的 使用協助, man 命令 如果 不加 段 的話 會 預設 顯示 他 所找到 的 第一個 協助手冊。

            1: 使用者命令

            2: 系統調用

            3: 庫調用

            4: 裝置檔案

            5: 設定檔格式

            6: 遊戲

            7: 雜項

            8: 管理命令


    查看關鍵字在那些段落中可使用

        # whatis Keyword    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/D5/wKiom1RGDKGSflnNAACQxXuyQzk090.jpg" title="whatis.png" alt="wKiom1RGDKGSflnNAACQxXuyQzk090.jpg" />

        可見 passwd 在 1, 5, 1ssl 三個段 中 

    # man -k Keyword

        這個是 模糊 尋找, 把 Keyword 多 出現過 的 地方 都 列出來。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D5/wKiom1RGDZGDx2qkAANkeBAOOyY168.jpg" title="mank5.png" alt="wKiom1RGDZGDx2qkAANkeBAOOyY168.jpg" />


    這裡 再 強調 一下, 內部 命令 手冊 用 help 來 查, 外部命令 用 man 來查。。

-----------------------------------------------------------

info命令:

    這個是線上協助文檔, 只要連網就能用, 操作和 man 差不多。。

-----------------------------------------------------------

還有 RedHat官方文檔, 不過是英文的。。。。

        www.redhat.com/docs

還有 我們 的 大Google~:

    Google 很 強大, 有 好多 使用 技巧 的。 這裡 就 不說 了。

簡單管理類命令:

    shutdown [option]... TIME

        -r: 重啟

        -h: 關機:

        -c: 取消重啟命令

        TIME格式:

            now: 直接關機

            +#: #分鐘後關機

            hh:mm  : 固定時間關機

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D7/wKioL1RGEKLQ8_m2AAC2xpUI-hk228.jpg" title="shutdown.png" alt="wKioL1RGEKLQ8_m2AAC2xpUI-hk228.jpg" />

---------------------------------------------------

    reboot: 重啟, 一般會 這麼 用

        sync;sync;reboot , 這裡 的 sync 是 將 記憶體中 還沒 來得及 存入 硬碟 的 資料 手動 存入 硬碟。

---------------------------------------------------

    halt    [-p] : 立即關機

        -p : 關機之後 並 切斷 電源。。

---------------------------------------------------

    poweroff: 同 halt, 幾乎 沒什麼 區別。。

date : 顯示時間

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D6/wKiom1RGEj2Ck7AoAAA6LsJhYkE557.jpg" title="date.png" alt="wKiom1RGEj2Ck7AoAAA6LsJhYkE557.jpg" />  

    也可自訂顯示時間的格式。

        %Y: 四位年份

        %y: 兩位年份

        %m: 月

        %d: 日

        %H: 時

        %M: 分

        %S: 秒

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D6/wKiom1RGE4-TKl8JAAA7Bu_aSI0111.jpg" title="date2.png" alt="wKiom1RGE4-TKl8JAAA7Bu_aSI0111.jpg" />

        unix元年:      1970-01-01-00:00:00

        %s : 從 unix 元年 到 現在 所 經過 的 秒數, 可以解決時差問題。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/D7/wKioL1RGE-_yg3wgAAArRdh1000148.jpg" title="date3.png" alt="wKioL1RGE-_yg3wgAAArRdh1000148.jpg" />

-----------------------------------------------------------------------------------

cal : 顯示 日曆

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D6/wKiom1RGFB_iaEDjAACK1iaIHk4221.jpg" title="cal1.png" alt="wKiom1RGFB_iaEDjAACK1iaIHk4221.jpg" />

---------------------------------------------------------------------

Linux的兩種時鐘:

    硬體時鐘: 電腦硬體內建的時鐘

    軟體時鐘: 系統開機時自動讀取硬體時鐘,然後就自行計算時間了。

    date 顯示 的 就是 軟體時鐘的 時間


hwclock [-sw]: 硬體時鐘時間

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/D7/wKioL1RGFUKgAfG7AABJgE3d9yE655.jpg" title="hwclock.png" alt="wKioL1RGFUKgAfG7AABJgE3d9yE655.jpg" />

有 兩個 選項:

    -s: 以硬體時鐘為準, 同步系統時鐘

    -w: 以系統時鐘為準,同步硬體時鐘。

------------------------------------------------------------------------

dirname:顯示指定路徑除了檔案名稱之外的首碼

basename:顯示指定路徑的尾碼,

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/D7/wKioL1RGFtXQyu--AACwcR-xQrI711.jpg" title="dir4.png" alt="wKioL1RGFtXQyu--AACwcR-xQrI711.jpg" />


Shell常見提示:(這裡先總結一些我知道的,以後還會繼續整理的。。)

Ctrl+C    : 取消命令, 當 命令 正在 執行 是 可以 強制 取消 這個 命令

shift+pgup 和 shift+pgdn : 這 兩個 是 bash 的 翻頁 命令, 

esc + .: 擷取 上個 命令 的 參數, 相當於 !$

本文出自 “寧靜淡泊” 部落格,請務必保留此出處http://vrgfff.blog.51cto.com/6682480/1566362

03,什麼是shell,一些最基本的命令和小技巧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.