首先,先了解一下什麼是shell?
Shell 是Linux系統的使用者界面,提供了使用者與核心進行互動操作的一種接口。它接收使用者輸入的指令并把它送到核心去執行。Shell也被稱為Linux的指令解釋器,Shell是一種進階程式設計語言。
[root@localhost ~]# echo $SHELL 檢視目前的shell類型
/bin/bash
[root@localhost ~]# cat /etc/shells 檢視目前系統安裝的shell
/bin/sh
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
在shell中可執行的指令有兩類:内部指令和外部指令。
一.内部指令與外部指令
内部指令
由shell自帶,而且通過某種指令形式提供,在系統啟動時就調入記憶體,是常駐記憶體的,是以執行效率高。
外部指令
在檔案系統路徑下有所對應的可執行程式檔案,使用者需要時才從硬碟中讀入記憶體。
type指令可以分辨内部指令與外部指令
enable既可以檢視内部指令,同時也可以判斷是否為内部指令
當執行一條指令時的查找順序:别名(alias)>内部指令>外部指令:hash
PATH
也就是說當一條指令執行時
1.先去判斷它是否是别名
2.判段指令是否是内部指令
3.看hash是否為空,若不為空,則去hash表中指定的路徑查找
若以上三步都不執行,則按照path路徑挨個查找。
二.常用的簡單指令
screen指令:
screen -S 會話名 建立新screen會話
screen -x 會話名 加入已建立的screen會話
screen -ls 顯示所有已經打開的screen會話
exit 退出并關閉screen會話
echo指令:
$() 或 `` 把一個指令的輸出列印給另一個指令的參數
$(()) 或$[] 進行運算
使用${}或"$變量名" 劃定變量名的起止範圍
history指令:顯示目前終端的曆史記錄
bash快捷鍵:
Ctrl+l 清屏,相當于clear指令
Ctrl+o 執行目前指令,并重新顯示本指令
Ctrl+s 阻止螢幕輸出,鎖定,但仍可以運作指令。
Ctrl+q 允許螢幕輸出
Ctrl+c 強制結束
Ctrl+d 正常終止
Ctrl+z 挂起(暫停)指令
man中的章節
1.使用者指令
2.系統調用
3.C庫調用
4.裝置檔案
5.配置檔案格式
6.遊戲
7.雜項
8.管理類的指令
9.Linux 核心API
以上章節 1,5,8章節是重點常用章節
man -w ls 檢視檔案路徑
man 5 passwd 顯示第五章節内容
三.檔案管理
Linux檔案系統是一個樹形結構,為了有序地管理那些檔案,人們習慣把這些檔案當做是硬碟上的有序的樹狀結構,正如我們熟悉的'MS-DOS'(磁盤作業系統)就是一個例子。大的分枝包括更多的分枝,分枝的末梢是樹的葉子或者普通的檔案。
檔案有兩類資料:中繼資料(metadata)
資料(data)
檔案名規則:藍色-->目錄
紅色-->壓縮檔案
綠色-->可執行檔案
淺藍色-->連結檔案
灰色-->其他檔案
ls用法
ls -a 顯示所有檔案
ls -A 顯示所有檔案,除.、..
ls -l 長列出
-rw-r--r--. 1 root root 2193 Jul 14 17:28 passwd
檔案類型|owner權限group權限other權限|硬連結數|owner|group|檔案大小(bytes)|mtime|檔案名
(檔案類型 在長列出時能夠看到)
-: 普通檔案
d: 目錄檔案
b: 塊裝置
c: 字元裝置
l: 軟連結
p: 管道檔案
s: 套接字檔案
ls -R 遞歸
ls -ld 顯示指定目錄的詳細資訊。
ls -1 豎顯示
ls -S 按檔案大小降序排列
ls -t 按修改時間(mtime)從新到舊排列
ls -ut 按通路時間(atime) 從新到舊排列
ls -U 按檔案存放的先後順序
ls -X 按檔案字尾排序
ls -i 顯示inode号
時間戳:
atime 通路時間
mtime 檔案資料修改時間
ctime 檔案中繼資料修改時間
四.硬連結和軟連結
硬連結
建立硬連結會增加額外的記錄項以引用檔案
對應于同一個檔案系統上一個實體檔案
每個目錄引用相同的inode号
建立時連結數遞增
不能跨越驅動器或分區
文法:ln filename linkname(不能跨分區)
軟連接配接
一個符号連結指向另一個檔案
ls -l 的顯示連結的名稱和引用的檔案
一個符号的連結内容是它引用檔案的名稱
可以對目錄進行
可以跨分區
指向的是另一個檔案的路徑
文法:ln -s filename linkname(可以跨分區,源被删除,連結也不可用)
五.重定向和管道
把輸出和錯誤重新定向到檔案: 指令 操作符号 檔案名
支援的操作符号包括:
把标準輸出重定向到檔案 2> 把标準錯誤重定向到檔案 &> 把全部輸出重定向到檔案 檔案不存在時,>和>> 都能建立新檔案,檔案已存在時 >表示覆寫,>>表示追加 2>&1 把錯誤的結果轉成正确的結果 1>&2 把正确的結果轉成錯誤的結果