一丶Linux常用基礎命令
1。tree命令:以樹狀形式檢視指定目錄內容(只能檢視目錄內容,不能檢視檔案內容)
tree ——以樹形結構顯示當前目錄下的檔案資訊
tree 目錄 ——樹形結構顯示指定目錄下的檔案資訊
2。clear :清屏操作
3。ls :檢視當前資料夾下的內容
#1)使用方法ls——顯示當前目錄下檔案資訊
ls 目錄或檔名 ——顯示指定目錄下檔案資訊#2)相關引數-a:顯示指定目錄下所有子目錄與檔案,包含隱藏檔案-R:遞迴方式列出所有目錄中的內容-h:配合-l以人性的方式顯示檔案大小-l:以列表方式顯示檔案的詳細資訊#3)檔案型別(根據第一個字元判斷)-: 普通檔案
d : 目錄
l : 符號連結,相當於windows中的快捷方式
s : 套接字
p : 管道
b : 塊裝置
c : 字元裝置#4)使用者的操作許可權(2-10個字元)其他人對檔案的操作許可權(8,9,10個字元)
檔案所有者對檔案的操作許可權(2,3,4個字元)
檔案所屬組使用者對檔案的操作許可權(5,6,7個字元)#5)引數之間結合使用:ls -la:列出當前目錄下所有檔案的相關資訊,包括隱藏檔案
ls-ltr:列出當前目錄下的檔案,按照時間逆向排序#6)萬用字元*:表示0個或多個字元?:表示任一字元[a-z]:表示a-zde任一字元,若是0-9表示任一數字字元[abcd]:表示a|b|c|d任一字母
4。cd 切換目錄,命令使用方式:cd+路徑
# 1)切換到家目錄
cd
cd ~
cd /home
cd $HOME
# 2)回到上次目錄
cd -
5。pwd:檢視使用者當前所處的工作目錄
6。which:顯示命令所在的目錄
7。touch:如果檔案存在,更新檔案的最後修改時間,如果檔案不存在,建立新檔案(touch檔名)
8。mkdir:建立資料夾(mkdir -p aa/bb/cc 建立多級目錄)
9。rmdir:只能刪除空資料夾
10。rm:刪除檔案
-r 刪除目錄名
-i 提示使用者是否刪除檔案或目錄
-f強制刪除()以此刪除的檔案或目錄不會放入回收站中,資料不易恢復
11。cp源目錄或檔案 目錄或檔案(若有目錄複製需要用-r 引數; 用-a引數,可以保留被複製檔案的一些屬性資訊 )
cp 要複製的檔案(file1) file(不存在); 建立file, 將file1中的內容複製到file
cp file1 file(存在); file1 覆蓋 file
cp file dir(存在);複製file 到 dir 目錄
cp - r dir(存在) dir1(存在); 將dir (包含)目錄複製到dir1目錄中
cp - r dir (存在) dir1(不存在); 建立dir1, 將dir (不包含)中的內容複製到dir1中
12。mv改名或者移動檔案(mv file1 file2)
#1)。改名
mv file(存在) file1(不存在)
mv dir(存在) dir1(不存在)
mv file(存在) file2(存在):file檔案覆蓋file2檔案,file 改名為file2
#2)。移動
mv file(檔案) dir(存在的目錄):將file 檔案移動到dir中
mv fir(目錄存在) dir1(目錄存在):將dir移動到dir1中,dir就會作為dir1的子目錄而存在
13。cat(檢視):將檔案內容一次性輸出到終端,使用方式 cat 檔名,缺點:終端顯示的內容有限,如果檔案太長無法全部顯示
14。more:將檔案內容顯示到終端,但是隻能一直向下瀏覽,不能回退,使用方式 more 檔名
顯示下一行:回車
顯示下一頁:空格
退出:q(ctrl+c)
15。less :檔案內容分頁顯示到終端,可以自由上下瀏覽。使用方式:less 檔名
顯示下一行:回車、ctrl+p、鍵盤向下鍵
顯示上一行:ctrl+n、鍵盤向上鍵
顯示下一頁:空格、PageDown
顯示上一頁:PageUp
退出:q
16。head:從檔案頭部開始檢視前n行的內容
#使用方式 如果沒有指定行數,預設顯示前10行
head -n[行數] 檔名
17。tail:從檔案尾部向上檢視最後n行的內容
#使用方式 如果沒有指定行數,預設顯示最後10行內容
tail -n[行數] 檔名
18。重定向
# 檔案存在覆蓋
ls -l > text。log 2>&1
# 檔案存在,在末尾追加
ls -l >> test。log 2>&1
19。管道:一個命令的輸出可以透過管道作為另一個管道的輸入(引數)
20。軟連線
1) ln -s 檔名 快捷方式的名字
2) 目錄也可以建立軟連線
3) 注意事項
<1>ln建立軟連線要用絕對路徑,因為如果不使用絕對路徑,一旦這個連線檔案發生位置變動,就不能找到那個檔案了
<2>軟連線檔案的大小是:路徑+檔名的總位元組數
21。硬連線
1)ln 檔名 硬連線的名字
2)本質:不同檔名所在的inode節點是相同的,相同的inode節點指向了相同的資料塊,所以他們的檔案內容是一樣的,檔案內容會同步
3)注意事項
<1>不能建在目錄上
<2>對絕對路徑沒有要求
<3>不能跨檔案系統
4)應用場景
<1>可以起到同步的作用(修改file的內容,會在其餘三個硬連線檔案上同步)
<2>可以起到保護檔案的作用(刪除檔案的時候,只要硬連線計數比不為0,不會真正刪除)
22。wc:顯示檔案行數,位元組,單詞數
1) wc -l file 顯示檔案的總行數2) wc -c file 顯示檔案的總位元組數3) wc -w file 顯示檔案的總單詞數4) wc file 顯示檔案的總行數,單詞數和總位元組數
23。whoami:顯示當前登入的使用者名稱
24。who:檢視當前所有登入系統的使用者資訊
25。shutdown | reboot | init
reboot:重啟系統
shutdown -r now:重啟系統,shotdown會給別的使用者提示
shutdown -h now:立刻關機
shutdown -h 15:30:系統在今天的15:30會關機
shutdown -h + 10:再過十分後自動關機
init 0: 關機
26。exit:退出當前登入的終端或者遠端終端或者 su 切換的使用者
27。passwd:修改使用者密碼
28。sudo臨時獲得root許可權(sudo 命令——會提示使用者輸入當前使用者的密碼)
29。ssh
ssh要登入的使用者名稱@ip, 然後提示輸入密碼
30。 ftp
ftp ip,然後提示輸入使用者名稱和密碼,然後就登入到了遠端伺服器上,get是下載, put是上傳檔案
例:ftp localhost——>密碼——->pwd——>cd day02——>get a03。txt (下載)
例:ftp localhost——>密碼——->pwd——>cd day02——>put 23。txt (上傳)
31。scp:遠端複製檔案,若複製目錄需要 -r 引數
1) scp -r mytest@ip:/home/mytest/。。。。 本地目錄
例: scp python@localhost:/home/python/day02/a03。txt 。/2) scp -r filename 遠端機器使用者@ip:路徑
例:scp 23。txt python@localhost:/home/python/day02/
二丶使用者許可權、使用者、使用者組
1。chmod 修改檔案許可權
1) 文字設定法
命令:chmod [who] [+|-|=] [mode] 檔名
操作物件【who】
u —— 使用者(user)
g —— 同組使用者(group)
o —— 其他使用者(other)
a —— 所用使用者(all)【預設】
運算子【+-=】 + —— 新增許可權 - —— 取消許可權 = —— 賦予給定許可權並取消其他許可權
許可權【mode】
r —— 讀
w —— 寫
x —— 執行2)數字設定法
命令:chmod [+|-|=][mode] 檔名
運算子【+-=】 + —— 新增許可權 - —— 取消許可權 = —— 賦予給定許可權並取消其他許可權 (預設為=)數字表示的含義 0 —— 沒有許可權(-)
1 —— 執行許可權(x) 2 —— 寫許可權(w) 4 —— 讀許可權(r)
2。chown :修改檔案所有者和所屬組
1) 修改檔案所有者用法:chown 檔案所有者 檔名
sudo chown mytest file。txt
2) 修改檔案所有者和所屬組用法:chown 檔案所有者:檔案所屬組 檔名
sudo chown mytest:mytest file。txt
3。chgrp:修改檔案所屬組
使用方法:chgrp 使用者組 檔案或目錄
sudo chgrp mytest file。txt
4。find
1)按檔名查詢 -name
find 路徑 -name “檔名”
2)按檔案型別查詢 -type
find 路徑 -type 型別(普通型別用f表示而不是 -)
3) 按檔案大小查詢 -size
命令:find 路徑 -size 範圍
範圍
大於:+表示 —— +100k
小於:-表示 —— -100k
等於: 不需要新增符號 —— 100k
大小
M 必須大寫(10M)
k 必須小寫(20k)
c 表示位元組數
4)按檔案日期
建立日期:-ctime -n/+ n
-n: n天以內
+n: n天以外
修改日期:-mtime -n/+n
訪問日期:-atime -n/+n
5) 高階查詢
find 。/ -type d -exec shell命令 {} \;
find 。/ -type d -exec ls -l {} \;
find 。/ -type d -ok shell命令 {} \;
find 。/ -type d -exec ls -l {} \;
find 。/ -type d -ok shell命令 {} \;
find 。/ -type d -ok ls -l {} \;
ok比較安全, 特別是在執行rm刪除檔案的時候。
find 。/ -type d | xargs shell命令
find 。/ -type d | xargs ls -l
5。 grep
l grep -r(有目錄) “查詢的內容” 搜尋的路徑 -r引數, 若是目錄, 則可以遞迴搜尋 -n引數可以顯示該查詢內容所在的行號 -i引數可以忽略大小寫進行查詢 -v引數不顯示含有某字串2 搜尋當前目錄下包含hello world字串的檔案
grep -r -n “hello world” 。/ ————顯示行號
grep -r -i -n “HELLO world” 。/ ————-忽略大小小查詢3 先使用find命令查詢檔案, 然後使用grep命令查詢哪些檔案包含某個字串 find 。 -name “*。c” | xargs grep -n “main”
6。壓縮工具
l gzip和bzip2
不能壓縮目錄,只能一個一個檔案進行壓縮,壓縮之後會使原檔案消失
gzip * 壓縮當前目錄下所有的檔案, 但是目錄不能壓縮
gunzip * 解壓當前目錄下所有的。gz檔案
bzip2 * 壓縮當前目錄下所有的檔案, 但是目錄不能壓縮
bunzip2 * 解壓當前目錄下所有的。 bz2檔案2 tar工具(*****)
相關引數說明
z:用gzip來壓縮/解壓縮檔案
j:用bzip2來壓縮/解壓縮檔案
c:create, 建立新的壓縮檔案, 與x互斥使用
x:從壓縮檔案中釋放檔案, 與c互斥使用
v:詳細報告tar處理的檔案資訊
f:指定壓縮檔案的名字
t: 檢視壓縮包中有哪些檔案3 壓縮:
tar cvf 壓縮包名字。tar 原材料[要打包壓縮的檔案或目錄]
tar zcvf 壓縮包名字。tar。gz 原材料[要打包壓縮的檔案或目錄]
tar jcvf 壓縮包名字。tar。bz2 原材料[要打包壓縮的檔案或目錄]4 解壓縮:
tar xvf 已有的壓縮包(test。tar。gz)tar
tar zxvf 已有的壓縮包(test。tar。gz)
tar jxvf 已有的壓縮包(test。tar。bz2)
解壓到指定目錄:新增引數 -C(大寫)
tar zxvf test。tar。gz -C 解壓目錄(。/mytest)5 檢視壓縮包中有哪些檔案
tar -tvf test。tar
6 zip工具
壓縮:zip -r 壓縮包名 要壓縮的檔案(含檔案或目錄)
壓縮目錄需要使用引數-r
使用該命令不需要指定壓縮包字尾
zip -r xxx file dir ——-生成xxx。zip檔案
解壓縮:unzip壓縮包名
解壓縮到指定目錄:新增引數 –d 解壓目錄
unzip xxx。zip -d /home/itcast/test/day1
注意:解壓目錄若不存在則會建立.
7。軟體的安裝解除安裝
1。線上安裝
軟體安裝:sudo apt-get install 軟體名
軟體解除安裝:sudo apt-get remove 軟體名
更新軟體列表:sudo apt-get update
清理安裝包:sudo apt-get clean
清理的是快取路徑:/var/cache/apt/archives2 軟體包安裝
在Ubuntu系統下必須有deb格式的安裝包
軟體安裝
sudo dpkg -i xxx。deb
軟體解除安裝
sudo dpkg –r 軟體名
8。vim
1)。 三種基本工作模式:命令模式、文字輸入模式、末行模式
2)。 命令模式:使用者按下ESC鍵, 就可以使vi進入命令模式下
儲存退出
快捷鍵
操作
ZZ
儲存退出
程式碼格式化
快捷鍵
操作
gg=G
程式碼格式化
游標移動
快捷鍵
操作
h
游標左移
j
游標下移
k
游標上移
l
游標右移
M
移動游標到中間行
gg
游標移動到檔案開頭
G/L
游標移動到檔案末尾的行首
O
游標移到行首
$
游標移到行尾
nG
行跳轉,例12G,跳到12行處
刪除命令
快捷鍵
操作
x
刪除游標後一個字元,相當於Del
X
刪除游標前一個字元,相當於Backspace
dw
刪除游標開始位置的字,包含游標所在字元
D[d$]
刪除游標後本行所有內容,包含游標所在字元
dd
刪除游標所在行(本質其實是剪下)
ndd
從游標當前行向下刪除指定的行數,如15dd
v/ctrl+v
使用h、j、k、l移動選擇內容,然後按d刪除其中ctrl+v是列模式,v為非列模式
撤銷和反撤銷命令
快捷鍵
操作
u
一步一步撤銷,相當於word文件ctrl+z
ctrl-r
反撤銷,相當於word文件的ctrl+y
複製貼上
快捷鍵
操作
yy
複製當前行
nyy
複製n行,如10yy
p
在游標所在位置向下新開闢一行,貼上
P
在游標所在位置向上新開闢一行,貼上
剪下操作
按dd或者ndd刪除,將刪除的行儲存到剪貼簿中,然後按p/P就可以貼上了
可視模式
快捷鍵
操作
v/ctrl+v
使用h、j、k、l移動選擇內容;使用d刪除 使用y賦值 使用p貼上到游標的後面 使用P貼上到游標的前面
替換操作
快捷鍵
操作
r
替換當前字元
R
替換當前行游標後的字元
文字移動
快捷鍵
操作
>>
文字行右移
<<
文字行左移動
查詢命令
快捷鍵
操作
/
/xxxx, 從游標所在位置開始搜尋,按n向下搜尋,按N向上搜尋
?
?xxxx, 從游標所在的到位置開始搜尋,按n向上搜尋,按N向下搜尋
3)。 文字輸入模式:從命令模式切換到文字輸入模式模式只需輸入如下命令:
快捷鍵
操作
i
在游標前插入
a
在游標後插入
I
在游標所在行的行首插入
A
在游標所在行的行尾插入
o
在游標所在的行的下面新建立一行,行首插入
O
在游標所在的行的上面新建立一行,行首插入
s
刪除游標後邊的字元,從游標當前位置插入
S
刪除游標所在當前行,從行首插入
按列模式插入
先按ctrl+v進入列模式,按hjkl移動選定某列,按I或者shift+i 向前插入,然後插入字元,最後按兩次esc
4)。 末行模式:從命令模式切換的末行模式,輸入冒號(:)
儲存退出
快捷鍵
操作
q
退出
q!
強制退出,不儲存修改內容
w
儲存修改內容,不退出
wq
儲存並退出
x
相當與wq
替換操作
快捷鍵
操作
:s/old/new/
游標所在行的第一個old替換為new
:s/old/new/g
游標所在行的所有old替換為new
:m, ns/old/new/g
將第m行至第n行之間的old全部替換成new
:%s/old/new/g
當前檔案的所有old替換為new
:1, $s/old/new/g
當前檔案愛你的所有old替換為new
:%s/old/new/gc
同上,但是每次替換需要使用者確認
下面表格中old表示原字串,new表示新字串
快捷鍵
操作
:s/old/new/
游標所在行的第一個old替換為new
:s/old/new/g
游標所在行的所有old替換為new
:m, ns/old/new/g
將第m行至第n行之間的old全部替換成new
:%s/old/new/g
當前檔案的所有old替換為new
:1, $s/old/new/g
當前檔案愛你的所有old替換為new
:%s/old/new/gc
同上,但是每次替換需要使用者確認
快速翻屏
快捷鍵
操作
ctr+u
向上翻半屏
ctrl+d
向下翻半屏
ctrl+f
向上翻一屏
ctrl+b
向後翻一屏
5)。 分屏:在末行模式下執行shell命令,!shell命令 按下兩次esc可以回到命令模式;從末行模式切換回命令模式,按兩次ESC,退格(backspace)或者回車鍵
* 在開啟檔案之後分屏
快捷鍵
操作
sp
當前檔案水平分屏
vsp
當前檔案垂直分屏
sp 檔名
當前檔案和另一個檔案水平分屏
vsp 檔名
當前檔案和另一個檔案垂直分屏
ctrl-w-w
在多個視窗切換游標
wall/wqall/xall/qall/qall!
儲存/儲存退出/儲存退出/退出/強制退出分屏視窗
在開啟檔案之前分屏:
分屏: vim -on file1 file2。。。垂直分屏: vim -On file1 file2 。。。注意 : n可以省略,有幾個檔案就分即屏
6)。vim的配置檔案
使用者級別配置檔案
~/。vimrc, 修改使用者級別的配置檔案只會影響當前使用者, 不會影響其他的使用者。
例如: 在使用者的家目錄下的。vimrc檔案中新增
set tabstop=4 ——設定縮排4個空格
set nu ——設定行號
set shiftwidth=4 ——-設定gg=G縮排4個空格, 預設是縮排8個空格
系統級別配置檔案
/etc/vim/vimrc, 修改了系統級別的配置檔案將影響系統下的所有使用者。
說明: 由於linux是多使用者作業系統, 建議只在使用者級別的配置檔案下進行修改, 不要影響其他使用者。