一.前言
我們本章開始講解linux,我們對于linux得有重要的認識,比如項目部署等等,都會用到linux,今天我們就開始linux的學習,我們需要準備的工具有vmware和xshell,而這里我就不教大家虛擬機的安裝以及xshell的配置了,而是直接講解重要的內容,大家可能會有個疑問就是為什么要用到xshell,直接在虛擬機里面執行命令不行嗎,這是因為如果在虛擬機寫命令,將不能復制粘貼,所以我們選擇xshell連接虛擬機,這里先介紹第一個命令 ip addr,這個就是linux中找到ip地址的命令,我們配置xshell肯定是需要的,大家配置好xshell和虛擬機之后就可以開始今天的學習了,而今天的學習主要就是學習一些常見的linux命令。
二.簡單指令
ip addr 查看網絡信息
ssh root@192.168.202.136 window遠程登錄linux地址
exit 斷開連接
logout 退出賬號
shut down 關機默認三十秒后 == shut down -h 30
shut down -h now 現在關機 ==reboot
三.基礎文件操作?
3.1?新建文件
touch
例子1: touch 1.txt ?#創建單個文件
例子2: touch test{1..10}.txt #批量創建文件touch test{a..f}.txt
例子3: touch /root/4.txt ?#在指定的/root目錄下,創建文件4.txt
# 如果touch的文件名稱重復了,不會覆蓋原文件
3.2 查看目錄下的文件?
ls全稱list
ls:顯示當前目錄下的內容
例子1:ls test09.txt ?#查看test09.txt是否存在,有會顯示文件名稱,沒有會報錯
例子2:ls *.txt ? ? ? ?#查看以txt結尾的所有文件,類似于windows下的*.后綴名搜索
例子3:ls ?-1 ? ? ? ?#以一行一個文件的方式顯示,注意這是-1,是數字1,不是l昂
例子4:ls ?-a al ? ? ? ?#查看所有文件,包括隱藏文件,touch .文件名,.開頭的就是隱藏文件
例子5:ls -a -1 ? ? ? ?#查看所有文件,以一行一個來顯示
例子6:ls -l ? #類似于windows的詳細列表,這個-l不是數字1?
以.開頭的文件是隱藏文件,默認不顯示
3.3 移動、也可以進行重命名
mv全稱move
例子1:mv 222.txt 123.txt ? ?#將222.txt文件重命名為123.txt
例子2:mv 123.txt /opt ? ? ? #將當前目錄下的123.txt移動到/opt目錄下
3.4 復制?
cp全稱copy,復制有個特點,就是如果復制到的文件夾中有同名的文件,會幫我們改名字并加上副本兩個字, linux不會幫我們改名字,我們需要自己指定名字,后綴名盡量不要改。
例子1:cp test01.txt /opt/ ?#將當前目錄下的test01.txt復制到/opt目錄下
例子2:cp -a dev04 /opt/ ? ? #將目錄dev04復制到/opt下,注意,要在dev04的上一級目錄來復制 它,在它內部是不能復制這個文件夾的?
?3.5?刪除?
注意Linux和windows不同,沒有回收站,刪了就是刪了
例子1: ?rm /opt/123.txt ?#將/opt目錄下的123.txt文件刪除,需要回復y確認刪除
例子2: rm -f /opt/test01.txt #將/opt目錄下的test01.txt文件刪除,不需要回復,強制刪除,很 多指令都有自己的參數,而且有好多,-f就是強制的意思。
例子3: rm 文件1 文件2 文件3 #刪除多個文件
#刪除一個目錄,linux的參數大部分沒有先后順序
#直接刪除文件夾,比如 rm dev,這是不行的,會報錯,需要帶上r參數
[root@localhost ~]# rm -f -r dev02
[root@localhost ~]# rm -r -f dev03
[root@localhost ~]# rm -fr dev # rm的兩個參數可以合并到一起
[root@localhost ~]# rm -rf dev01?
3.6 創建文件夾?
創建目錄directory,這里說的目錄就是文件夾,默認顯示是藍色的字體,文件顯示是白色的字體
mkdir 全稱make directory
例子1:mkdir dev ? #創建一個dev目錄
例子2:mkdir dev{01..10} ? ? #批量創建多個目錄
例子3:mkdir -p 1/2/3/4/5/6 ?#一次性創建多級子目錄
重命名:mv jaden wulaoban # 將jaden目錄改名為wulaoban?
3.7 切換目錄?
cd ?#全稱change directory
例子1:
cd local ? ? #切換到local目錄中
cd /usr/local ?#切換到目錄/usr/local
cd .. ? ? ? #切換到上一級目錄
cd ../.. ?# 進入上一級的上一級目錄 ,還可以繼續../
cd / # 直接切換到根目錄?
3.8 打印當前目錄?
print work directory
pwd #打印當前工作目錄
3.9 歷史指令查詢?
history?
3.10 修改文件內容?
后面再專門講vi的功能
#vi編輯器,和windows的記事本工具類似
例子1: vi test03.txt ? #編輯文件test03.txt
# vi編輯保存文件,需要三種模式切換
常規模式:默認是常規模式,在常規模式中可以使用各種快捷鍵,幫我們快速編輯文件,比如dd,就是刪除當 前一行數據
編輯模式:切換英文輸入法,然后按ioa三個鍵中的任意一個鍵都可以進入編輯模式,這樣才能向文件中寫內 容,寫完內容之后,先回到常規模式,在編輯模式中按esc回到常規模式
命令模式:在常規模式時按:(英文的冒號)進入命令模式,命令模式按esc回到常規模式,命令模式下輸入q然 后回車表示退出文件,wq保存并退出,q!表示強制退出不保存?
vi可以查看文件內容,但是每次都要vi進去,看完再退出來,比較麻煩,如果只是查看文件內容,如下指令即可?
3.11 查看文件內容
從上往下順序查看文本內容
cat
例子1:cat test03.txt ?#查看test03.txt的全部內容
從下往上倒著查看文本內容
tac
例子1:tac test03.txt ?#倒著查看test03.txt的全部內容?
3.12 查看文件頭幾行?
head
例子1: head test03.txt? ? ? ? #查看文件的前十行,默認
例子2: head ?-n 5 test03.txt ?#查看文件的前5行
例子3: head ?-5 test03.txt ? #查看文件的前5行?
3.13 查看文件倒數幾行?
tail
例子1: tail test03.txt ? ? ? #查看文件的倒數十行,默認
例子2: tail ?-n 5 test03.txt ?#查看文件的倒數5行
例子3: tail ?-5 test03.txt ? #查看文件的倒數5行?
四.管道?
管道符號:|,可以將前面指令的執行結果,作為后面指令的操作內容。 比如我們通過管道來過濾出ip地址:
ip addr
ip addr|tail -4 #查看最后四行
ip addr|tail -4|head -1 #查看最后四行中的第一行
ip addr|tail -4|head -1|cut -c 10-19?#cut -c 10-19表示從第10 個字符顯示到第19個字符,這個指令可以忽略,大致了解一下即可,因為字符長度不固定,切的時候有可能切 不準確
五.文件內容過濾?
5.1?統計
比如統計文件有多少個字節、多少行等等?
wc ?#全稱Word Count,計數?
wc -l按行統計,不會單獨使用,需要接在管道后面
cat jaden.txt |wc -l? #計算這個文件的行數
cat -n jaden.txt # 顯示內容的同時,顯示行號
wc -c jaden.txt # 統計文件中有多少個字節
# 統計指令執行結果有多少行
例子:ip addr|wc -l
# 統計bin目錄下有多少個命令文件
例子:ls /bin|wc -l
5.2?生成數字序列
seq # 全稱:sequence,序列的意思
例子1:產生一個5到12的序列
seq 5 12
例子2:產生一個5到12等寬的序列
seq -w 5 12?
?5.3?按行過濾字符串
默認是模糊匹配,只要單詞中含有某些內容就過濾出單詞所在的每行數據
grep
例子1: #普通過濾,將含有3這個字符的行過濾出來
[root@localhost ~]# grep '333' jaden.txt
33333
33334
33333
53333 例子2: #顯示行號
[root@localhost ~]# grep -n '333' jaden.txt
8:33333
10:33333
12:33333
14:33333?
?grep精準匹配-w 示例:通過管道符和grep來過濾
5.4?按列過濾
awk #awk其名稱得自于它的創始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的 首個字母。
例子1: 取列,$1代表第一列,$2代表第二列,$NF代表最后一列,列是由空格分開的 [root@localhost ~]# cat jaden.txt
row 1, cell 1 row 1, cell 2
row 2, cell 1 row 2, cell 2
[root@localhost ~]# awk '{print $1}' jaden.txt # 注意,必須是單引號
row
row
[root@localhost ~]# awk '{print $2}' jaden.txt
1,
2,
例子2:以逗號,做分隔符
[root@localhost ~]# cat jaden.txt
row 1, cell 1 row 1, cell 2
row 2, cell 1 row 2, cell 2
[root@localhost ~]# awk -F ',' ? '{print $1}' jaden.txt
row 1
row 2
[root@localhost ~]# awk -F ',' ? '{print $NF}' jaden.txt
cell 2?
cell 2?
5.5 排序?
#排序
sor
t # 默認排序,先數字后字母 # sort -n # 先字母(先小寫字母后大寫字母)后數字的排序方式,sort -n -r 反向排序
例子1: [root@localhost ~]# cat test02.txt
??????????????[root@localhost ~]# cat test02.txt|sort -n
5.6 統計去重?
#統計去重
uniq? ?#全稱:unique,唯一、去重的意思,但是它是將連續的去重,不會間隔去重,所以最好先排序再去重?
例子1: [root@localhost ~]# cat test02.txt|sort -n
??????????????[root@localhost ~]# cat test02.txt|sort -n|uniq
? ? ? ? ? ? ??[root@localhost ~]# cat test02.txt|sort -n|uniq -c # -c顯示重復次數
?