目錄
1、 用戶登陸
2、 終端
3、 shell介紹
4、 執行命令
5、 簡單命令
6、 命令行歷史
7、 bash快捷鍵
8、 使用ghome-ternimal
9、 文件管理
10、. 目錄、inode表與文件
11、 軟/硬連接node
在Linux系統中有兩種用戶,一種爲root用戶,一種爲普通用戶,linux
root是一種特殊的管理帳戶,擁有管理系統的全部權利,至關於windows的超級管理員,能夠管理任何的文件,也能夠管理其它普通用戶的權限,對於管理系統很是的方便,(可是對系統損害也幾乎擁有無限的能力,除非必要不要登陸root)git
權限有限,也不能對其它的用戶信息及權限進行修改,形成損害的權利比較有限shell
終端是用來管理Linux 的的一種數據庫
鍵盤鼠標顯示器windows
控制檯 console緩存
tty 可有多個,ctrl+Alt+F[1-6]安全
Centos 6:ctrl+Alt+F7
Centos 7:在哪一個終端啓動,即位於哪一個虛擬終端bash
ttyssocket
pty ,SHH 遠程鏈接
tty
shell 是Linux系統的用戶界面,提供了用戶與內核進行互相操做的一種接口。它接受用戶輸入的命令並把它送到內核去執行。shell也被稱爲Linux的命令解釋器,shell是一種高級程序語言。
一、echo 顯示輸出到終端
二、cat /etc/shells 顯示當前系統使用的全部shell
三、命令提示符 [root@localhost ~]#
# 表明當前登陸帳號爲管理員
$ 表明當前登陸帳號爲普通用戶
四、echo $PS1 顯示提示符格式
五、設置命令提示符
PS1="\[\e[31m\][\u@\h \W]\\$\[\e[0m\]"
\e \033 顏色 \u 當前用戶
\h 主機名簡稱 \H 主機名
\w 當前工做目錄 \W 當前工做目錄基名
\t 24小時時間格式 \T 12小時時間格式
! 命令歷史數 # 開機後命令歷史數
(顏色有不少個值呦,你們能夠不妨能夠多輸幾個值,調試出本身喜歡的顏色,樣式能夠高亮或者有下劃線,也不止我輸的那幾個值,均可以試試的,調到本身滿意爲止)
輸入命令後回車便可執行命令
內部命令:由shell自帶的,並且經過某命令形式提供
help 顯示全部的內部命令列表
enable 顯示全部已激活的內部命令
enable cmd 激活被禁用的內部命令
enable -n cmd 禁用某個內部命令
enable -n 顯示全部被禁用的內部命令
enable -a顯示所欲內部命令
enable -a |wc -1 顯示全部的內部命令的數量
enable |wc -1 顯示激活中的內部命令的數量
(文中cmd可不是字面上cmd的意思哦,是表明着某一個命令,命令的英文是command,在這裏我就簡寫了,後面的內容也是這個意思)
查看路徑:which -a |--skip-alias ;whereis
type cmd
hash緩存表:系統重啓後hash表爲空,當執行一個外部命令時,默認會從path路徑下尋找該命令,找到後會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell解釋器首先會查看hash表,存在則執行之,若是不存在,將會去path路徑下尋找。利用hash緩存表可大大提升命令的調用速率
hash命令的常見用法
hash 顯示全部被hash的命令路徑
hash -l 顯示全部被hash的命令路徑,包含別名
hash -p 路徑 別名 手工添加一條hash
hash -t name 顯示別名(命令)的hash路徑
hash -d 別名(命令) 刪除指定命令或別名的hash條目
hash -r 清空全部的hash
alias 別名=‘cmd -選項 參數’ 定義一個命令的別名
unalias 別名 取消一個別名
unalias -a 取消全部的別名
別名的保存 /etc/bashrc
若是一個別名跟另外一個命令重名了,要想使用哪一個命令而不是哪一個別名的話,可使用下列方式:
\cmd
'cmd'
"cmd"
/path/cmd
在命令行中定義的別名,僅對當前shell進程中有效,若是想要永久有效,能夠定義在配置文件中,
僅對當前用戶的配置文件:~/.bashrc
對全部用戶有效的配置文件:/etc/bashrc
編輯配置給出的新配置不會當即生效,須要從新讀取配置文件後才能生效
source /path/to/config_file
cmd 選項 參數
選項:用於啓用或關閉命令的某些功能(選項能夠跟多個)
參數:命令的做用對象,
小注意:
1.多個選項以及多參數和命令之間使用空白字符分隔
2.取消命令和結束命令:Ctrl+c ,Ctrl+d
3.多個命令在一行能夠用;符號分開
4. 一個命令能夠用\分紅多行
date 顯示系統日期和時間
clock,hwclock :顯示硬件時鐘
Linux的兩種時鐘,
系統時鐘:Linux的系統時間,關機後則再也不工做
硬件時鐘:硬件時鐘,在關機後仍然工做,依靠主板上的一 顆 鈕釦電池供電
hwclock -s 以硬件時間爲準,校訂系統時鐘
hwclock -w 以系統時間爲準,校訂硬件時鐘
date
+%Y 只顯示 年
+%m 只顯示月
+%d 日
+%H 時
+%M 分
+%S 秒
+%F 年-月-日
+%T 時:分:秒
還能夠 用date 設置系統時間
date 月日時分年[.秒] date 102013112020.45
dae -s ‘年-月-日 時:分:秒’
cal 顯示今年本月的日曆
cal 年份 顯示該年一全年的日曆
cal 月份 年份
poweoff 關機
reboot 重啓
init 0 關機
init 6 重啓
shutdown -r 重啓
shutdown -h 關機
shutdown +n n分鐘後關機
shutdown 20:20 20:20 關機(定時關機)
(如何取消關機,在當前終端能夠Ctrl+c 取消關機,在其餘終端能夠打命令shutdown -c 取消關機計劃)
whoami 顯示當前用戶名
who am/are/is 任意字符 顯示當前終端的信息
who 顯示全部終端的信息
w 顯示全部終端的詳細信息及操做
screen 建立一個會話可讓不一樣地方兩個終端共享一個終端,在其中一個終端上敲命令,另外一個終端上也能顯示出來
screen : 生成默認名字的會話
screen -S 會話名 : 建立指定名的screen
screen -ls: 查看全部已打開的screen
screen -x 會話名 : 加入已建立的screen
exit : 退出當前會話
-E 不開始解釋功能,默認
-n 不自動換行
-e 「」開啓解釋功能「」
\a 警告聲
\b 退格
\c 不換行
\n 回車換行
\r 回車,即光標移至行首,但不換行
\t 插入tab
\\ 插入\字符
whatis cmd或man -f cmd 僅能提供命令基本的介紹。不提供用法,基於數據庫的查找,優勢是檢索速度快,缺點是缺少實時性。
pwd -d 當前目錄爲軟連接時,顯示其源目錄
ls -a 顯示全部目錄和文件,包括隱藏文件
ls -A 顯示全部文件,除. , ..
ls -l 以長格式列出文件和目錄
文件類型|owner權限group權限other權限|硬連接數|owner|group|文件大小(bytes)|mtime|文件名
ls -R 遞歸
ls -ld 顯示指定目錄的詳細信息
ls -S 按文件大小降序排列
ls -t 按修改時間(Mtime) 重新到舊排列
ls -ut 按訪問時間(atime) 重新到舊排列
ls -U 按文件存放前後順序
ls -X 按文件後綴排序
ls -i 顯示inode號
小注意:
時間戳
atime 訪問時間
mtime 文件數據修改時間
ctime 文件元數據修改時間
查看某個文件或目錄的時間戳:stat 文件或目錄路徑
歷史查詢
history 歷史命令查詢命令,顯示當前終端的歷史記錄
history 查詢歷史記錄
history -c 清空當前的全部歷史記錄
history -d 刪除某條歷史
history -a 將當前終端執行的命令寫入歷史記錄文件中 (文件由變量HISTORY決定,歷史記錄文件默認爲用戶家目錄的.bash_history)
history -w /path/filename.txt 將歷史記錄寫入指定文件
history -n 將未讀過的歷史從文件中讀取
history -r 將所欲歷史從文件中讀取
重複執行歷史命令
!! 重複執行上一條命令
!n 重複執行倒數第n條命令
!n重複執行第n條命令
!:0 執行前一條命令(去除參數)
!str 重複前一個以str 開頭 的命令
!? 重複前一個包含str的命令
!str:p 僅打印以str開頭的命令歷史,而不執行
!$:p 打印輸出!$ 上一條命令的最後一個參數的內容
!*:p 打印輸出(上一條命令中全部的參數)的內容
快捷鍵
ctrl r 在歷史命令中搜索命令
ctrl g 從歷史搜索模式中退出
esc .(點擊esc鍵鬆開,而後點擊.鍵)
alt . (按住alt鍵的 同時點擊 . 鍵)
調用歷史參數
cmd ! ^ 利用上一個命令的第一個參數作cmd的參數
cmd !$ 利用上一個命令的最後一個參數作cmd的參數
cmd !* 利用上一條命令的所有參數作cmd的參數
cmd !:n 利用上一個命令的第n個參數作cmd的參數
cmd !n:^ 調用第n條命令的第一個參數
cmd !n:m 調用第n條命令的第m個參數
cmd !n:* 調用第n條命令的全部參數
cmd !str:^ 從命令歷史中搜索以str開頭的命令,並獲取它的第一個參數
cmd !str:$ 從命令歷史中搜索以str開頭的命令,並獲取它的最後一個參數
cmd !str:n 從命令歷史中搜索以str開頭的命令,並獲取它的第n個參數
cmd !str:* 從命令歷史中搜索以str開頭的命令,並獲取它的 全部參數
(str在這裏是代指字符串,字符串的英文全稱是string,n,m代指數字)
是指在遠程登陸界面的通用快捷鍵
Ctrl+L 清屏
Ctrl+O 執行當前命令,並從新顯示本命令
Ctrl+s 鎖定,輸入運行任何命令屏幕上都不顯示,但仍執行命令
Ctrl+q 解鎖
Ctrl+C 強制結束
Ctrl+D 正常終止
Ctrl+Z 掛起(暫停命令)
Ctrl+a 光標移動到命令行首,至關於home
Ctrl+e 光標移動到命令行尾,至關於end
Ctrl+f 光標向右移動一個字符
Ctrl+b 光標向左移動一個字符
Ctrl+xx 光標在命令行首和光標當前位置之間移動
Ctrl+u 刪除光標以前的內容
Ctrl+k 刪除光標以後的內容
Ctrl+w 從光標處向左刪除至單詞首
Ctrl+d 刪除光標後的一個字符
Ctrl+h 刪除光標錢的一個字符
Ctrl+y 將刪除的字符粘貼至光標後
Ctrl+t 交換光標處和以前的單詞位置
Alt +f 向右移動一個單詞
Alt +b 向左移動一個單詞
Alt +r 清除所有內容
Alt +d 從光標處向右刪除至單詞尾
Alt +c 從光標處開始向右更改成首字母大寫的單詞
Alt +u 從光標處開始,將右邊一個單詞更改成大寫
Alt +l 從光標處開始,將右邊一個單詞更改成小寫
Alt +t 交換光標處和以前的單詞位置
Alt +N 提示輸入指定字符後,重複顯示該字符n次(n表示具體數字)
在Linux上的
Ctrl-Shift-n 建立新窗口
Ctrl-Shift-q 關閉當前窗口
Ctrl-Shift-t 建立一個標籤頁
Ctrl-Shift-w 關閉一個標籤頁
Ctrl-Paup/padn 切換到上一個/下一個標籤頁
Ctrl-Shift-c 複製選中的文本
Ctrl-Shift-v 把文本粘貼到當前光標處
文件和目錄被組織成一個倒根樹結構。
文件系統從根目錄下開始,用「/」表示
文件名區分大小寫,
以.開頭的文件爲隱藏文件,
路徑分隔符「/」
文件有兩類數據,
元數據metadata
數據 data
文件名最長255個字節,包含路徑在內文件名稱最長4095個字節
藍色 -->目錄;綠色 --> 可執行文件 ; 紅色 - -> 壓縮文件;淺藍色 --> 連接文件;灰色-->其餘文件
/boot: 引導文件存放目錄,內核文件、引導加載器都存放於此
/bin : 供全部用戶使用的基本命令
/sbin: 管理類的基本命令
/lib : 啓動時程序依賴的基本共享庫文件以及內核模塊文件
/lib64: 專用於x86_64系統上的輔助共享庫文件存放位置
/etc: 配置文件目錄
/home : 存放着普通用戶的家目錄
/root : 管理員root的家目錄
/media: 便攜式移動設備掛載點
/mnt : 臨時文件系統掛載點
/dev : 設備文件及特殊文件存放位置
/opt: 第三方應用程序的安裝位置
/srv: 系統上運行的服務用到的數據
/tmp: 臨時文件存儲位置
/proc: 用於輸出內核與進程信息相關的虛擬文件系統
/sys: 用於輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux:securityenhanced Linux,selinux相關的安全政策等信息的存儲位置
-:普通文件
d:目錄文件
b:塊設備
c:字符設備
l:符號連接文件
p:管道文件pipe
s:套接字文件socket
每一個shell和系統進程都有一個當前的工做目錄
pwd 顯示當前的工做目錄
-p 顯示真實物理路徑
-L 顯示鏈路路徑(默認)
絕對路徑:以正斜槓開始,是從根目錄開始到達目標目錄
相對路徑:不以正斜槓開頭,從當前目錄開始到達目標目錄
cd 單獨一個cd命令會從當前目錄切換至登陸用戶的家目錄
cd 目標路徑:從當前目錄切換至目標目錄
[:digit:]:任意數字,至關於0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:標點符號
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:圖形字符
[:xdigit:]:十六進制字符
touch 選項 文件路徑 : 建立一個文件
-a 僅改變 atime和ctime
-m 僅改變 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的時間戳
-c 若是文件不存在,則不予建立
cp 選項 原文件路徑(src) 目標文件路徑(dest)
-i:覆蓋前提示
–n:不覆蓋,注意二者順序
-r: -R: 遞歸複製目錄及內部的全部內容
-a: 歸檔,至關於-dR --preserv=all
-d:--no-dereference --preserv=links 不復制原文件,只複製鏈名
-p: 等同--preserv=mode,ownership,timestamp
-v: --verbose 顯示覆制的過程
-f: --force 當普通用戶對某目錄有rx權限時,使用-f能夠將沒有修改權限的文件強制覆蓋。即刪除再建立
src是文件:
若是dest不存在:新建dest,並將src中內容填充至dest中
若是dest存在:
若是dest是文件:將src的內容覆蓋至dest中,基於安全,建議爲cp命令下使用-i選項
若是dest是目錄:在dest下新建與src同名的文件,並將src中的內容填充至新文件中
src是目錄:此時使用選項-r
若是dest不存在:則建立指定目錄,複製src目錄中全部文件至 dest中;
若是dest存在:
若是dest是文件:報錯
若是dest是目錄:將src目錄下全部文件或目錄一次複製至 dest目錄下
mv 選項 src dest
-i :交互式
-f :強制
-r :遞歸
rm 選項 目標路徑
-i:交互式
-f:強制刪除
-r:遞歸
tree 選項 目錄路徑
-d :只顯示目錄
-L level:指定顯示的層級數目
-p pattern:只顯示由指定pattern匹配到的路徑
mkdir 目錄路徑 在該目錄下建立一個目錄
-p:存在於不報錯,且可自動建立所需的各目錄
-v:顯示詳細信息
-m mode:建立目錄時直接指定權限
rmkdir 目錄路徑 刪除這個空目錄
-p:遞歸刪除父空目錄
-v:顯示詳細信息
rm -r:遞歸刪除目錄樹
人是經過目錄文件名來引用一個文件,每個文件都有一個相對應的i元數據,每個元數據都對應着一個inode號,目錄是目錄下的文件和文件inode號之間的映射
文件類型,權限,UID,GID
連接數
該文件的和不一樣的大小和不一樣的時間戳
指向磁盤上文件的數據塊指針
有關文件的其餘數據
分配一個空閒的inode號,在inode表中生成新的條目
在目錄中建立一個目錄項,將名稱與inode編號關聯
拷貝數據生成新的文件
連接數遞減,從而釋放的inode號能夠被重用
把數據塊放在空閒列表中
刪除目錄項
數據實際上不會立刻被刪除,但當另外一個文件使用數據塊時將被覆蓋
若是mv命令的目標和源文件在相同的文件系統,做爲mv命令
用新的文件名建立對應新的目錄項
刪除舊目錄條目對應的舊的目錄名
不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據移動
若是目標和源不一樣的文件系統,mv至關於cp和rm
建立硬連接會增長額外的記錄項以引用文件
對應於同一文件系統上一個物理文件
每一個目錄引用相同的inode號
建立時連接數遞增
刪除文件時:
rm命令遞減計數的連接,文件要存在,至少有一個連接數,當連接數爲0時,該文件被刪除
不能跨越分區
建立硬連接的語法:
ln filename [linkname]
一個符號連接指向另外一個文件
ls - l的 顯示連接的名稱和引用的文件
一個符號連接的內容是它引用文件的名稱
能夠對目錄進行
能夠跨分區
指向的是另外一個文件的路徑;其大小爲指向的路徑字符串的長度;不增長或減小目標文件inode的引用計數;
語法:
ln -s filename [linkname]
文件能夠包含多種類型的數據使用file能夠檢查文件的類型,而後肯定適合的命令或應用程序使用,其語法規則爲: file 選項 文件目錄路徑 -b :列出文件辨識結果時,不顯示文件名稱 -f filelist: 列出文件filelist中文件名和文件類型 -F:使用指定分隔符號替換輸出文件名後默認的:分隔符 -L:查看對應軟連接對應文件的文件類型 --help:顯示命令在線幫助