一.Linux經常使用基礎命令
1.tree命令:以樹狀形式查看指定目錄內容(只能查看目錄內容,不能查看文件內容)
tree --以樹形結構顯示當前目錄下的文件信息
tree 目錄 --樹形結構顯示指定目錄下的文件信息
複製代碼
2.clear :清屏操做
3.ls :查看當前文件夾下的內容
ls--顯示當前目錄下文件信息
ls 目錄或文件名 --顯示指定目錄下文件信息
-a:顯示指定目錄下全部子目錄與文件,包含隱藏文件
-R:遞歸方式列出全部目錄中的內容
-h:配合-l以人性的方式顯示文件大小
-l:以列表方式顯示文件的詳細信息
-: 普通文件
d : 目錄
l : 符號連接,至關於windows中的快捷方式
s : 套接字
p : 管道
b : 塊設備
c : 字符設備
其餘人對文件的操做權限(8,9,10個字符)
文件全部者對文件的操做權限(2,3,4個字符)
文件所屬組用戶對文件的操做權限(5,6,7個字符)
ls -la:列出當前目錄下全部文件的相關信息,包括隱藏文件
ls-ltr:列出當前目錄下的文件,按照時間逆向排序
*:表示0個或多個字符
?:表示任一字符
[a-z]:表示a-zde任一字符,如果0-9表示任一數字字符
[abcd]:表示a|b|c|d任一字母
複製代碼
4.cd 切換目錄,命令使用方式:cd+路徑
cd
cd ~
cd /home
cd $HOME
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)
mv file(存在) file1(不存在)
mv dir(存在) dir1(不存在)
mv file(存在) file2(存在):file文件覆蓋file2文件,file 更名爲file2
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行的內容
head -n[行數] 文件名
複製代碼
17.tail:從文件尾部向上查看最後n行的內容
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/archives
2 軟件包安裝
在Ubuntu系統下必須有deb格式的安裝包
軟件安裝
sudo dpkg -i xxx.deb
軟件卸載
sudo dpkg –r 軟件名
複製代碼
8.vim
1). 三種基本工做模式:命令模式、文本輸入模式、末行模式node
2). 命令模式:用戶按下ESC鍵, 就可使vi進入命令模式下python
快捷鍵 |
操做 |
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). 文本輸入模式:從命令模式切換到文本輸入模式模式只需輸入以下命令:linux
快捷鍵 |
操做 |
i |
在光標前插入 |
a |
在光標後插入 |
I |
在光標所在行的行首插入 |
A |
在光標所在行的行尾插入 |
o |
在光標所在的行的下面新建立一行,行首插入 |
O |
在光標所在的行的上面新建立一行,行首插入 |
s |
刪除光標後邊的字符,從光標當前位置插入 |
S |
刪除光標所在當前行,從行首插入 |
按列模式插入 |
先按ctrl+v進入列模式,按hjkl移動選定某列,按I或者shift+i 向前插入,而後插入字符,最後按兩次esc |
4). 末行模式:從命令模式切換的末行模式,輸入冒號(:)shell
快捷鍵 |
操做 |
q |
退出 |
q! |
強制退出,不保存修改內容 |
w |
保存修改內容,不退出 |
wq |
保存並退出 |
x |
至關與wq |
下面表格中old表示原字符串,new表示新字符串vim
快捷鍵 |
操做 |
: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)或者回車鍵 * 在打開文件以後分屏windows
快捷鍵 |
操做 |
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是多用戶操做系統, 建議只在用戶級別的配置文件下進行修改, 不要影響其餘用戶.
複製代碼