Linux基礎(一)
一:Linux概述
1. Linux的概述
Unix
Unix是一個強大的多用戶、多任務操作系統。 於1969年在AT&T的貝爾實驗室開發。 UNIX的商標權由國際開放標準組織(The Open Group)所擁有。 UNIX操作系統是商業版,需要收費,價格比Microsoft Windows正版要貴一些。
簡介
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和數據庫的操作系統。
歷史
Linux最初是由芬蘭赫爾辛基大學學生Linus Torvalds由於自己不滿意教學中使用的MINIX操作系統, 所以在1990年底由於個人愛好設計出了LINUX系統核心。後來發佈於芬蘭最大的ftp服務器上,用戶可以免費下載,所以它的周邊的程序越來越多,Linux本身也逐漸發展壯大起來,之後Linux在不到三年的時間裏成爲了一個功能完善,穩定可靠的操作系統.
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QWRLhiC2-1578389522359)(assets/96dda144ad345982b3b0bcdb0df431adcbef8444.jpg)]
版本
Linux的版本分爲兩種:內核版本和發行版本
內核版本是指在Linus領導下的內核小組開發維護的系統內核的版本號
發行版本是指一些組織和公司根據自己發行版的不同而自定的
主流版本
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mDix5cpk-1578389522361)(assets/1548055765804.png)]
應用
Linux的運用非常廣泛
服務器系統:Web應用服務器、數據庫服務器、DNS、FTP等等;
嵌入式系統:路由器、分享器、交換器、家電用品的微電腦控制器等等,
運算服務器:高性能運算、計算密集型應用
桌面應用系統
移動手持系統
2. Linux和windows差異
系統核心
windows和linux的本質區別是核心的不同,windows是從早期的dos經過比爾蓋茨開發來的,linux是由李納斯最早從unix上開發出來的
授權方式
windows是微軟公司的產品,版權在微軟公司
linux遵循GNU,是開放免費的軟件.
交互方式
windows主要是通過圖形界面的方式和用戶交互的,圖形界面會佔用比較多的資源
linux的用戶企業用戶大部分時候是遠程操作,用命令行的時候比較多,對資源的消耗比較少
應用領域
windows目前主要的應用應該是PC機,或者說是家用的普通辦公電腦。
linux更多的用於企業的服務器或者網絡設備等。
二:軟件安裝
VM,Linux CentOS, putty 等三份軟件的安裝
三:Linux常用命令(重點)
1. 目錄操作
Linux目錄結構
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2uqHt9Kz-1578389522363)(assets/1548298026886.png)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-iqisENyc-1578389522364)(assets/003vPl7Rty6E8kZRlAEdc690.jpg)]
常用目錄
/root: 該目錄爲系統管理員,也稱作超級權限者的用戶主目錄。
/home: 用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。
/etc: 這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。
/usr: 這是一個非常重要的目錄,存放系統用戶共享資源
列出文件及目錄
ls(list)是一個非常有用的命令,用來顯示當前目錄下的內容。配合參數的使用,能以不同的方式顯示目錄內容。
格式:ls [參數] [路徑或文件名]
參數:
-a 顯示所有文件或目錄(包含隱藏的文件)
-l 顯示文件詳細信息
常用:
在linux中以 . 開頭的文件都是隱藏的文件
ls
ls -a 顯示所有文件或目錄(包含隱藏的文件)
ls -l 列出當前目錄下的文件列表,以詳細信息展示,可以縮寫爲ll
ls -l / 列出根目錄下的文件列表,以詳細信息展示
切換目錄
cd(change directory)命令可以用來切換目錄
格式: cd <路徑或目錄名>
常用:
cd app 切換到app目錄
cd .. 切換到上一層目錄
cd / 切換到系統根目錄
cd ~ 切換到用戶主目錄
cd - 切換到上一個所在目錄
創建目錄
mkdir(make directory)命令可用來創建子目錄。
格式: mkdir [參數] <目錄路徑或目錄名>
參數:
-p 級聯創建目錄結構
常用:
mkdir app 在當前目錄下創建app目錄
mkdir –p app2/test 級聯創建aap2以及test目
刪除目錄
rmdir(remove directory)命令可用來刪除“空”的子目錄
格式: rmdir <目錄路徑或目錄名>
常用:
rmdir app 刪除app目錄
2. 文件操作
查看文件內容
cat 用於顯示文件的內容。
格式: cat [參數] <文件名>
參數:
-n 對輸出的所有行編號
常用
cat yum.conf
cat -n yum.conf
more 一般用於要顯示的內容會超過一個畫面長度的情況。按空格鍵顯示下一個畫面。回車顯示下一行內容。
格式: more [參數] <文件名>
常用:
more yum.conf
快捷鍵:
空格 翻頁
確定 下一行
q 退出查看
less 用法和more類似,不同的是less可以通過PgUp、PgDn鍵來控制上下翻頁。
格式: more [參數] <文件名>
常用:
less yum.conf
快捷鍵:
PgUp 上一頁
PgDn 下一頁
q 退出查看
head 查看文件的前面部分,默認顯示前10行
格式: more [參數] <文件名>
參數:
-n 顯示每個文件的前n行內容
常用:
head yum.conf 顯示文件的前10行
head -100 yum.conf 顯示文件的前100行
tail 查看文件的後面部分,默認顯示最後10行
格式: tail [參數] <文件名>
參數:
-n 顯示每個文件的後n行內容
-f 即時輸出文件變化後追加的數據。
常用:
tail yum.conf 顯示文件的最後10行
tail -100 yum.conf 顯示文件的最後100行
tail -f yum.conf 顯示文件的最後10行,並且監控文件的變化,輸出文件變化後追加的數據。
過濾文件內容
grep 查找符合條件的字符串。
格式: grep <text> [參數] <文件名>
參數:
-i 忽略大小寫
-n 輸出的同時打印行號
-B 顯示前N行的內容
-A 顯示後N行的內容
--color 高亮展示查詢關鍵字
常用:
grep headers install.log 在文件中查找headers
grep -B 10 headers install.log 在文件中查找headers,顯示前10行的內容
grep -A 10 headers install.log 在文件中查找headers,顯示後10行的內容
grep -A 10 --color headers install.log 在文件中查找headers,高亮展示關鍵字
創建空文件
touch 用於創建一個空文件
格式: touch <文件名>
常用:
touch aa.txt
刪除文件
rm 用於刪除文件或者目錄
格式: rm [參數] <文件名>
參數:
-f 強制刪除。忽略不存在的文件,不提示確認
-r 遞歸刪除目錄及其內容
常用:
rm a.txt 刪除a.txt文件,輸入y/n,y確認刪除,n不刪除
rm -f a.txt 不詢問,直接刪除
rm -r aa 刪除aa目錄,每個目錄及文件都提示
rm -rf aa 不詢問遞歸刪除aa目錄
rm -rf * 刪除當前目錄下所有文件
rm -rf /* 刪除根目錄下所有文件(自殺)
文件編輯
vi/vim 用於編輯文件, 一共有三種模式:命令行模式、插入模式、底行模式。
格式: vi/vim [參數] <文件名>
命令行模式: 用戶在命令行模式可以按一些快捷鍵達到快速輸入的目的,例如複製,粘貼,刪除,插入等
插入模式: 用戶可以在插入模式對文件內容進行編輯
底行模式: 用戶可以底行模式輸入一些命令,對文件進行操作,例如:保存退出,不保存退出,查找等
用戶使用vi/vim命令編輯文件,剛開始進入到命令行模式,之後可以使用命令來切換模式
命令行模式-->插入模式:
i 在當前位置插入
I 在當前行首插入
a 在當前位置後插入
A 在當前行尾插入
o 在當前行之後插入一行
O 在當前行之前插入一行
插入模式-->命令行模式:
Esc 從插入模式切換到命令行模式
命令行模式-->底行模式:
:(冒號) 從命令行模式切換到底行模式
命令行模式快捷鍵:
dd 快速刪除一行
yy 拷貝當前行
nyy 拷貝當前後開始的n行,比如2yy拷貝當前行及其下一行。
p 在當前光標後粘貼,如果之前使用了yy命令來複制一行,那麼就在當前行的下一行粘貼。
P 在當前行前粘貼
底行模式命令:
wq 保存退出
q! 強制退出並忽略所有更改
e! 放棄所有修改,並打開原來文件。
/text 查找text,按n健查找下一個,按N健查找前一個。
3. 通用文件或目錄操作
複製文件或目錄
cp(copy) 將源文件複製至目標文件,或將多個源文件複製至目標目錄。
格式: cp [參數] 源目錄或文件 目標目錄或文件
參數:
-r 遞歸複製目錄及其子目錄內的所有內容
常用:
cp install.log install.log.bak 將install.log複製爲install.log.bak文件
cp install.log aaa/ 將install.log文件複製到當前目錄下的aaa目錄下
cp install.log bbb/install.log.bak 將install.log文件複製到當前目錄下的bbb目錄下,改名爲install.log.bak
cp aaa -r bbb/ 遞歸複製aaa目錄及子目錄的所有內容到bbb目錄下
cp aaa -r bbb/ccc 遞歸複製aaa目錄及子目錄的所有內容到bbb目錄下,改名爲ccc
複製文件,如果後一個參數是目錄,則複製文件到指定目錄
複製文件,如果後一個參數是文件,則複製文件到指定路徑,並改名
複製目錄,如果後一個參數是已經存在的目錄,則複製目錄到指定目錄下
複製目錄,如果後一個參數是不存在的目錄,則複製目錄到指定路徑下,並改名
移動文件或目錄
mv(move) 將源文件重命名爲目標文件,或將源文件移動至指定目錄。
格式: mv 源目錄或文件 目標目錄或文件
常用:
mv install.log install.log.bak 將install.log重命名爲install.log.bak
mv install.log aaa/ 將install.log文件移動到當前目錄下的aaa目錄下
mv install.log bbb/install.log.bak 將install.log文件移動到當前目錄下的bbb目錄下,改名爲install.log.bak
mv aaa bbb/ 將aaa目錄移動到bbb目錄下
mv aaa bbb/ccc 將aaa目錄移動到bbb目錄下,重命名爲ccc
移動文件,如果後一個參數是目錄,則移動文件到指定目錄
移動文件,如果後一個參數是文件,則移動文件到指定路徑,並重命名
移動目錄,如果後一個參數是已經存在的目錄,則移動目錄到指定目錄下
移動目錄,如果後一個參數是不存在的目錄,則移動目錄到指定路徑下,並重命名
打包壓縮和解壓縮
tar 命令能夠將用戶所指定的文件或目錄打包成一個文件,但不做壓縮。一般Linux上常用的壓縮方式是選用tar將許多文件打包成一個文件,再以gzip壓縮命令壓縮成xxx.tar.gz(或稱爲xxx.tgz)的文件。
格式: tar [參數] <文件或目錄列表>
參數:
-c: 創建一個新tar文件
-v: 顯示運行過程的信息
-f: 指定文件名
-z: 調用gzip壓縮命令進行壓縮
-x: 解開tar文件
-C: 指定解壓路徑
常用:
tar –cvf aaa.tar ./* 將當前目錄下的所有文件打包爲aaa.tar
tar –zcvf aaa.tar.gz ./* 將當前目錄下的所有文件打包壓縮爲aaa.tar.gz
tar –xvf aaa.tar 將aaa.tar提取到當前目錄
tar -xvf aaa.tar.gz -C /usr/aaa 將aaa.tar.gz解壓到/usr/aaa目錄
4. 其他常用命令
重定向輸出
> 重定向輸出,覆蓋原有內容
>> 重定向輸出,又追加功能
常用:
ifconfig > ifconfig.txt 將ifconfig命令的結果輸出到 ifconfig.txt文件中
ifconfig >> ifconfig.txt 將ifconfig命令的結果追加到 ifconfig.txt文件中
管道
管道是Linux命令中重要的一個概念,其作用是將一個命令的輸出用作另一個命令的輸入。
示例:
ls --help | more 分頁查詢幫助信息
ps –ef | grep java 查詢名稱中包含java的進程
其他
1. pwd 查看當前工作目錄
2. ll -h 友好顯示文件大小
3. wget 下載資料
重定向輸出,覆蓋原有內容
重定向輸出,又追加功能
常用:
ifconfig > ifconfig.txt 將ifconfig命令的結果輸出到 ifconfig.txt文件中
ifconfig >> ifconfig.txt 將ifconfig命令的結果追加到 ifconfig.txt文件中
#### 管道
管道是Linux命令中重要的一個概念,其作用是將一個命令的輸出用作另一個命令的輸入。
示例:
ls --help | more 分頁查詢幫助信息
ps –ef | grep java 查詢名稱中包含java的進程
#### 其他
- pwd 查看當前工作目錄
- ll -h 友好顯示文件大小
- wget 下載資料