標籤: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,一些最基本的命令和小技巧。