Linux命令行有命令提示符,提示你能夠輸入指令node
在linux之中用到最多的是兩種用戶linux
#:root 超級管理員shell
$:普通用戶數據庫
命令格式:緩存
指令 選項(修改命令的執行特性) 參數bash
腳本的名字 短選項 不組合必須有空格 若是組合了不能有空格 指定命令的做用對象網絡
多個選項能夠組合 -a -b = -ab 前面的指令選對誰長選項 一般不能組合 使用數據結構
Su 用戶名 半切換app
Su –l 用戶名 徹底切換less
命令類型
1.內部命令:(shell內置)內部
2.外部命令;在文件系統的某一個路徑下有一個命令名稱相應的可執行文件
一個可執行程序文件,必須有一個執行入口,二進制開頭有一個特殊字符或幾個字節很是獨特標識,這個叫作程序的模數,模數能夠標識這個二進制程序的執行格式,windos和linux執行模數是不同的,他們理解的二進制模數不太同樣,即便二者庫同樣,程序也未必能相互運行
程序啓動時 執行程序提交給內核 內核怎麼區分腳本和程序呢 就是從模數區分,內核就去找程序的模數,因此一個程序的執行入口就是標識着模數和執行格式
目錄:目錄也是文件,是路徑映射文件
路徑:從指定起始點到目的地所通過的位置
文件系統 file system:層次化文件管理機制,一個一個分類分層 便於管理
ls –l 顯示長格式信息 ls -long
(1)- |
(2)-rw------ |
(3)2 |
(4)root |
(5)root |
(6)1368 |
(7)11 |
(8)20 |
(9)22:01 |
(10)anacond-ks-cfg |
(1)- 文件類型
-:普通文件
d:文件目錄
b:塊設備文件(bolck)
c:字符設備文件
l:符號連接文件(軟鏈接文件)
p;命令管道(pipe)
s:套接字文件(socket)
(2)-rw------
文件權限9位 每3位一組,每一組:rwx(讀,寫,執行)沒有權限就用-表示
(3) 2 文件硬連接次數:原文件被調用次
(4)root文件的全部者(owner)
(5)root文件的所屬組(group)
(6)1368 文件的大小(size)文件大小用byte來表示
時間戳(文件的被修改的時間)每一個文件都有三個時間戳
1訪問access:被查看
2修改modify:改變了文件的內容
3改變change:改了文件的元數據,改變了文件名就是修改了元數據,改變了
元數據:就是用來定義數據的數據。好比,有一條學生信息記錄,其中包括字段姓名(name)、年齡(age)、性別(male)、班級(class)等,那麼name、age、male、class就是元數據。經過它們的描述,一條關於學生信息的數據記錄就產生;
這裏顯示的是最近一次被修改的時間
(7)月份
(8)日期
(9)時間
(10)文件名
注:文件大小都用byte看着十分累人那麼
-h 作單位轉換
-a:顯示以 . 開頭的隱藏文件 linux系統隱藏文件以 . 開頭
.:當前目錄的隱藏文件
..:上級目錄的隱藏文件
-A 顯示隱藏文件 不包換.和.. 做爲了解就好了
-d:顯示目錄自身屬性 若是我在root文件夾裏我要看這個文件夾的屬性那麼就用上d
每一個文件都有個節點號,這是計算機認識的語言 一個節點號就跟,名字同樣表明一個文件
Ls –li:顯示文件的索引節點號
-i:index node:索引節點
1615223204就是文件的索引節點,配合查找命令能夠快速的查找到該文件,之後常常用
-R遞歸((recursive))顯示文件:就是層層顯示文件夾的全部東西
cd ~用戶名: 進入指定用戶的家目錄
cd - :在當前目錄和前一次所在的目錄之間來回切換
mkdri –p:遞歸建立文件夾
-i:交互式提示
-f:不提示直接刪除
-r:遞歸刪除,刪除目錄的同時把目錄中的文件都刪除
格式: cp 原文件 目標地點
複製只能一個文件到一個文件
多個文件到一個目錄
Cp –r|:遞歸複製
Cp –i:交互式詢問是否刪除或者覆蓋
Cp –p:保留文件的屬主屬組和時間戳 很是有用
Cp –a:歸檔複製經常使用於備份 a把pr等選項所有包含在內了很是全面
格式: mv 原文件 目標地點
Mv /mnt/123 /mtp/223
意思就是把mnt目錄下的123 移動到mtp目錄下 並更名爲223
mv:tmp/123 223
在同一個文件裏了 把123更名爲223
Linux內置環境變量,這樣能夠簡化命令使用,要否則外置命令所有都以全路徑操做會很是麻煩
(1)變量:變量其實就是內存,命名的內存空間。我在內存劃出一部分空間而後命名,我就能夠向起名的內存空間放數據,放數據的過程就變量賦值
Name=jay 在內存中找一部分空間起名叫name而空間中放的數據叫jay =就叫賦值,至關於一個抽屜 抽屜名字叫name 抽屜裏的書叫jay
(2)變量生成的過程就是申請內存使用的過程
元數據就是用來定義數據的數據。好比,有一條學生信息記錄,其中包括字段姓名(name)、年齡(age)、性別(male)、班級(class)等,那麼name、age、male、class就是元數據。經過它們的描述,一條關於學生信息的數據記錄就產生
堆棧是兩種數據結構。堆棧都是一種數據項按序排列的數據結構 ,是分開說的
堆:申請內存訪問的數據放在堆裏
棧:本地變量和靜態變量放在棧裏
當中會有個PATH環境變量 這個使用:分開的路徑當咱們執行命令的時候 PATH會按次序一個一個去找可執行命令,直到找到爲止
第一次會去環境變量下的PATH路徑裏去找,下次在使用命令 直接去緩存中找,而不用環境變量中一個一個找路徑,
指令一種是去路徑中找,一種從緩存中找。
緩存是實現系統加速的 從緩存中找數據必定會比直接找路徑或者文件系統中速度快嗎
緩存中保存的是hash列表 也叫哈希,哈希是個鍵值數據庫 ,在鍵值庫中查找的速度基本能夠達到o(1)的速度
o(1):衡量一個程序執行速度的標準,從一個列表中查找一個數據的速度隨着列表長度變化而發生變化的比例。不管列表有多長花費的時間是同樣的 從10個數據中找 仍是從10萬的數據中找 花費的時間是同樣的。Hash速度是o(1)的不管數據再多瞬間就能夠找到,緩存中存放的有hash列表 因此緩存中找的速度比路徑或者文件系統中找快的不止一倍。
rtc:硬件時間Real-Time Clock 每次開機操做系統都會讀取硬件時間設置爲當前時間
ntp:網絡時間協議 Network Time Protocol
linux開機會經過rtc讀取當前時間 一但讀取成功就不會再次使用,內核會經過軟件的方式模擬振盪器在系統內部維持一個時鐘,因此操做系統有2個時間 一個系統時鐘 一個硬件時鐘 內核在cup的做用下會自動計時
date +%Y%m%d :以YYYYmmdd格式顯示時間
date +%F :顯示日期
%H:小時
%M:分鐘
%S:秒鐘
date +%F-%H-%M-%S:顯示當前的 年,月,日,小時,分鐘,秒鐘
-w:將系統時間寫到硬件中 以系統爲準
-s:將硬件時間寫到系統中 以硬件爲準
echo –e 「文字。。。\n文字」 :把輸入的文字以兩行多看 \n爲分割文字段落點
切記:必定要加雙引號
Linux文本一行結束後頭是$符,而windos一行結束後是$加空格
-n:顯示行號
-e:顯示行與行的段符
Enter 向下n行,須要定義。默認爲1行
F 鍵: 向下滾動一屏
B 鍵: 返回上一屏
q:退出
head –n :後面加須要顯示多少行
tail –n :後面加須要顯示多少行
tail –f :查看文件尾部不退出隨時更新文件新添加的內容,用於查看日誌等隨時更新的文件
-d:指定字段分隔符,默認空格
-f:指定要顯示的字段
案例:root:x:0:0:root:/root:/bin/passwd
Cut -d : 默認分隔符: 從有:的地方切開顯示 –f 1 切開後只顯示第一段
因此 cut –d : -f 1 顯示出來的只有root
-n:數值排序,按照數值的大小排序
-r:降序排序
-t:指定字段分隔符
-k:以哪一個字段爲關鍵字進行排序 分隔符隔開不少字段 哪一個字段進行排序後面跟數字
-u:除去文件的中出現的重複行
-c:顯示文件中行重複的次數
-d:只顯示重複行
Tr 「本來的文字」 「想要替換的文字」 < /須要替換的文本
例:tr 「a-b」 「A-B」 < /etc/passwd
Tr轉換 把passwd文本里的 小寫ab轉換成大寫AB,
-表示到: A到B 「A-Z「 A到Z全部的,
例:Tr –d:「a-c」< /etc/passwd
刪除passwd文件中a到c字符集的全部字符 刪除內容a b c
:輸入重定向
Wc /etc/passwd
21 27 928/etc/passwd
三個數字分別爲:21行 27個單詞 928個字節 只適用於文本
Wc –l:只顯示行數 也能夠跟管道符一塊兒用 顯示文件夾下有多少文件 例如
ll /etc|wc –l :ll顯示etc下全部文件夾 用wc統計出來
Wc –w:只顯示單詞數
光標跳轉:
Ctrl+a :跳轉到行首
Ctrl+e :跳轉到行位
Ctrl+d:刪除光標所在文字
Ctrl+u:刪除光標至命令行首內容
Ctrl+k:刪除光標至命令行尾內容
Ctrl+箭頭:快速移動一個單詞
Ctrl+l:清除屏幕全部文件
history -d(數字):後面跟數字 指定刪除某一條歷史命令
history -c:清空全部歷史命令
!!:執行上一條命令
例如:touch /mnt/$(date +%F).log
建立一個文件夾 在mnt下 date+%F是一個命令 顯示結果爲當前日期時間2018-01-24 使用命令替換 $(命令)後 直接替換成命令的執行結果 因此生成的文件就是 /mnt/2018-01-24.log
一、``(反引號):命令替換
二、’’(單引號):強引用不完成變量替換
三、」」(雙引號):弱引用,能夠實現變量替換
*:匹配任意長度的任意字符
?:任意單個字符
[]:匹配指定範圍內的單個字符
[a-z] [0-9]
> : 覆蓋輸出 直接覆蓋掉原文件內的全部內容
>>:追加輸出 保留文件原內容 在向文件裏新增新內容
Set –C:進制對已存在文件使用覆蓋重定向
Set +C:關閉上述功能
2>:重定向錯誤輸出
2>>:追加輸出
&> 重定向標準和錯誤輸出至同一個文件
<:輸入重定向
<<:輸出追加
例:cat/etc/passwd |grep 123 grep是查找指令
查看cat/etc/passwd 裏面的內容 把結果交給 第二個指令grep 由第二個指令去查找文件裏面含有123的內容 輸出到屏幕
-a或--append :附加到既有文件的後面,而非覆蓋它
後續會在更新