linux常用指令
- 一、linux目錄結構
- 二、提示行符号
- 三、常用指令
-
- 1.處理目錄常用指令
- 2.檔案内容檢視常用指令
- 3.檔案查找常用指令
- 4壓縮指令
- 5.其他指令
- 四、通配符
- 五、檔案權限
-
- 1.改變檔案權限
- 2.改變檔案所有權
- 3.檔案連接配接(軟連接配接相當于win的快捷方式)(硬連結)
- 六、輸出重定向和管道
-
- 1.輸出重定向
- 2.管道
- 七、程序管理
-
- 1.查程序
- 2.殺程序
一、linux目錄結構
目錄結構部分引用自:https://www.runoob.com/linux/linux-system-contents.html
[[email protected]_0_16_centos home]# ls /
bin(經常使用的指令) boot(啟動時的核心檔案) dev(Linux的外部裝置) etc(配置檔案)
home(使用者主目錄) lib(共享庫) lib64() lost+found() media(光驅,U盤裝置...)
mnt opt proc(虛拟目錄,記憶體映射) root(管理者目錄) run sbin(系統管理者使用的系統管理程式)
srv sys() tmp(臨時檔案) usr(類似于windows下的program files目錄) var

/bin:
bin是Binary的縮寫, 這個目錄存放着最經常使用的指令。
/boot:
這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連接配接檔案以及鏡像檔案。
/dev :
dev是Device(裝置)的縮寫, 該目錄下存放的是Linux的外部裝置,在Linux中通路裝置的方式和通路檔案的方式是相同的。
/etc:
這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。
/home:
使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬号命名的。
/lib:
這個目錄裡存放着系統最基本的動态連接配接共享庫,其作用類似于Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。
/lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。
/media:
linux系統會自動識别一些裝置,例如U盤、光驅等等,當識别後,linux會把識别的裝置挂載到這個目錄下。
/mnt:
系統提供該目錄是為了讓使用者臨時挂載别的檔案系統的,我們可以将光驅挂載在/mnt/上,然後進入該目錄就可以檢視光驅裡的内容了。
/opt:
這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。
/proc:
這個目錄是一個虛拟的目錄,它是系統記憶體的映射,我們可以通過直接通路這個目錄來擷取系統資訊。
這個目錄的内容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以通過下面的指令來屏蔽主機的ping指令,使别人無法ping你的機器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
該目錄為系統管理者,也稱作超級權限者的使用者主目錄。
/sbin:
s就是Super User的意思,這裡存放的是系統管理者使用的系統管理程式。
/selinux:
這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似于windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。
/srv:
該目錄存放一些服務啟動之後需要提取的資料。
/sys:
這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs 。
sysfs檔案系統內建了下面3種檔案系統的資訊:針對程序資訊的proc檔案系統、針對裝置的devfs檔案系統以及針對僞終端的devpts檔案系統。
該檔案系統是核心裝置樹的一個直覺反映。
當一個核心對象被建立的時候,對應的檔案和目錄也在核心對象子系統中被建立。
/tmp:
這個目錄是用來存放一些臨時檔案的。
/usr:
這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似于windows下的program files目錄。
/usr/bin:
系統使用者使用的應用程式。
/usr/sbin:
超級使用者使用的比較進階的管理程式和系統守護程式。
/usr/src:
核心源代碼預設的放置目錄。
/var:
這個目錄中存放着在不斷擴充着的東西,我們習慣将那些經常被修改的目錄放在這個目錄下。包括各種日志檔案。
/run:
是一個臨時檔案系統,存儲系統啟動以來的資訊。當系統重新開機時,這個目錄下的檔案應該被删掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤删除或者随意更改内部檔案。
/etc: 上邊也提到了,這個是系統中的配置檔案,如果你更改了該目錄下的某個檔案可能會導緻系統不能啟動。
/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行檔案的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統使用者使用的指令(除root外的通使用者),而/sbin, /usr/sbin 則是給root使用的指令。
/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日志産生,而這些日志就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。
二、提示行符号
1.Linux運作頁面有一個輸入提示行,指令以一個美元符号"$"作為提示符,表示使用者可以輸入指令了如:
[[email protected]_0_16_centos home]$
如果正在以root身份執行指令,那麼shell提示符将變成"#"如:
[[email protected]_0_16_centos home]#
三、常用指令
1.處理目錄常用指令
-
ls: 列出目錄
-a :全部的檔案,連同隐藏檔( 開頭為 . 的檔案) 一起列出來(常用)
-d :僅列出目錄本身,而不是列出目錄内的檔案資料(常用)
-l :長資料串列出,包含檔案的屬性與權限等等資料;(常用)
- cd:切換目錄
-
pwd:顯示目前的目錄
-P :顯示出确實的路徑,而非使用連結 (link) 路徑。
-
mkdir:建立一個新的目錄
-m :配置檔案的權限喔!直接配置,不需要看預設權限 (umask) 的臉色~
-p :幫助你直接将所需要的目錄(包含上一級目錄)遞歸建立起來!
-
rmdir:删除一個空的目錄
-p :連同上一級『空的』目錄也一起删除
- cp: 複制檔案或目錄
- touch : 建立一個空白檔案
選項與參數:[[email protected] ~]# cp [-adfilprsu] 來源檔(source) 目标檔(destination) [[email protected] ~]# cp [options] source1 source2 source3 .... directory
-a:相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用) -d:若來源檔為連結檔的屬性(link file),則複制連結檔屬性而非檔案本身; -f:為強制(force)的意思,若目标檔案已經存在且無法開啟,則移除後再嘗試一次; -i:若目标檔(destination)已經存在時,在覆寫時會先詢問動作的進行(常用) -l:進行硬式連結(hard link)的連結檔建立,而非複制檔案本身; -p:連同檔案的屬性一起複制過去,而非使用預設屬性(備份常用); -r:遞歸持續複制,用於目錄的複制行為;(常用) -s:複制成為符号連結檔 (symbolic link),亦即『捷徑』檔案; -u:若 destination 比 source 舊才更新 destination !
- rm: 移除檔案或目錄
rm [-fir] 檔案或目錄
選項與參數 -f :就是 force 的意思,忽略不存在的檔案,不會出現警告資訊; -i :互動模式,在删除前會詢問使用者是否動作 -r :遞歸删除啊!最常用在目錄的删除了!這是非常危險的選項!!!
-
mv: 移動檔案與目錄,或修改檔案與目錄的名稱
文法:
[[email protected] ~]# mv [-fiu] source destination [[email protected] ~]# mv [options] source1 source2 source3 .... directory
選項與參數:
-f :force 強制的意思,如果目标檔案已經存在,不會詢問而直接覆寫;
-i :若目标檔案 (destination) 已經存在時,就會詢問是否覆寫!
-u :若目标檔案已經存在,且 source 比較新,才會更新 (update)
-
ln(link)
文法:ln -s [源檔案] [目标檔案] (硬連結則不需要-s選項)
描述:建立軟連結檔案
常用shell指令一、linux目錄結構二、提示行符号三、常用指令四、通配符五、檔案權限六、輸出重定向和管道七、程式管理 軟連結特點:權限是所有人都可以通路,并且軟連接配接檔案指向源檔案。
軟連結就像windows系統中的快捷方式一樣,特點也都類似。
硬連結:類似copy,硬連結大小和源檔案一樣,并且是同步更新的。
另外:硬連結不能跨檔案系統分區,而軟連接配接可以常用shell指令一、linux目錄結構二、提示行符号三、常用指令四、通配符五、檔案權限六、輸出重定向和管道七、程式管理
2.檔案内容檢視常用指令
Linux系統中使用以下指令來檢視檔案的内容:
-
cat 由第一行開始顯示檔案内容
-n 顯示檔案行号
- tac 從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
- nl 顯示的時候,順道輸出行号!
- more 一頁一頁的顯示檔案内容
- less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
- head 隻看頭幾行
-
tail 隻看尾巴幾行
tail -f 實時檢視日志檔案 tail -f 日志檔案log
tail - 100f 實時檢視日志檔案 後一百行
tail -f -n 100 catalina.out linux檢視日志後100行
- 你可以使用 man [指令]來檢視各個指令的使用文檔,如 :man cp。
3.檔案查找常用指令
-
grep:查找檔案内容
grep [option] pattern [file…]
在檔案t.sh中查找包含do的行
[[email protected]_0_16_centos baidu]# grep do t.sh do done
-
find: 在指定範圍内找到檔案
find [option] [path] [expression]
find [搜尋範圍路徑] -name 【檔案名稱】(根據檔案名查找)
比對任意字元 *常用shell指令一、linux目錄結構二、提示行符号三、常用指令四、通配符五、檔案權限六、輸出重定向和管道七、程式管理 比對指定字元 ?常用shell指令一、linux目錄結構二、提示行符号三、常用指令四、通配符五、檔案權限六、輸出重定向和管道七、程式管理 常用shell指令一、linux目錄結構二、提示行符号三、常用指令四、通配符五、檔案權限六、輸出重定向和管道七、程式管理 find [搜尋範圍路徑] -size [(±)檔案大小] (根據檔案大小查找,大于+ 小于-)
find [搜尋範圍路徑] -user(檔案的所有者)
find [時間查找] [以天為機關]
[以天為機關] 1 ctime、atime、mtime
[以分鐘為機關] 2 cmin、amin、mmin
。。。。。
常用shell指令一、linux目錄結構二、提示行符号三、常用指令四、通配符五、檔案權限六、輸出重定向和管道七、程式管理 描述:查找任何檔案或目錄(所有)
例如:
[[email protected]_0_16_centos baidu]# find /usr/bin/ -name zip -print /usr/bin/zip
指令:which
文法:which [指令名稱]
描述:檢視指令所在的目錄位置
在linux裡面一般隻有兩種指令,第一種是所有使用者都可以使用,第二種則是隻允許管理者使用,還有一個指令叫whereis,和which使用類似
比如: rm指令,其實我們可以使用 which rm檢視其指令内容:
常用shell指令一、linux目錄結構二、提示行符号三、常用指令四、通配符五、檔案權限六、輸出重定向和管道七、程式管理
alias就是别名的意思,說明我們使用的rm指令在預設的情況下加了 -i選項,意思是在删除的時候進行詢問是否需要删除,那麼添加""就使用真正的rm指令而不是别名,直接就可以删除不需要提示詢問。
find的連接配接執行符号:
find … -exec [執行指令] {} ;
注意:“{}“表示find指令查找的結果,而”"表示轉義符
指令:locate
文法:locate [檔案名稱]
描述:查找檔案,根據linux資料庫内部的索引(updatedb指令,可以手工更新updatedb資料庫,一般和locate配合使用)

注意:locate的查找速度非常快,比find查找快很多,原因是locate查找的是linux系統建構的檔案資料庫的索引值,是以速度非常快,但是有的時候新建立的檔案使用locate指令查找不到,原因是這個檔案的索引沒有馬上更新到linux系統檔案資料庫裡
4壓縮指令
指令:gzip
文法:gzip [檔案名稱]
描述:壓縮的時候不保留原檔案,并且隻能壓縮檔案不能壓縮目錄
指令:gunzip
文法:gunzip [已壓縮的檔案]
描述:解壓縮檔案,不不保留源檔案
指令:tar
文法:tar [zcvf] [zxvf] [打封包件名.tar.gz] [源檔案]
-c 産生tar打封包件(必選)
-x 産生的解壓縮檔案(必選)
-v 顯示詳細資訊
-f 指定壓縮後的檔案名
-z 打包同時壓縮
描述:打包目錄 生成的字尾名 .tar.gz,或者進行解壓
最後配置加-C 表示檔案解壓後存放的路徑
file指令可以檢視任何檔案的類型
指令:zip
文法:zip 選項[-r] [壓縮後檔案名稱] [源檔案]
描述:zip的格式是windows和linux通用的格式,可以壓縮檔案和目錄,壓縮目錄時需要選項-r。
指令:unzip
文法:unzip [解壓縮的檔案]
描述:進行解壓縮
最後配置加-d 表示檔案解壓後存放的路徑
5.其他指令
過濾:grep,可以将指定内容進行過濾然後輸出。
管道:
将一個指令的輸出傳送給另一個指令,作為另外一個指令的輸入。管道可以連接配接N個指令。
ls -l /etc | more (表示将ls -l /etc的輸出,當做more指令的輸入,即more指令浏覽的内容為前面指令的輸出結果)
ls -l /etc | grep init(表示将ls -l /etc的輸出結果進行過濾,顯示為init的結果)
ls -l /etc | grep init | wc -l (最後進行統計顯示的個數)
四、通配符
shell有一套被稱作通配符的符号"*","?","[ ]", “-” 這些通配符可以搜尋并比對檔案的一部分,進而大大簡化輸入指令
- “*”:用于比對檔案名中任意長度的字元串,"?"用于比對檔案名中任意的一個字元
[[email protected]_0_16_centos baidu]# ls shell test.log t.sh [[email protected]_0_16_centos baidu]# ls *.log test.log
- “[]”:用于比對所有方括号中出現的字元
[email protected]_0_16_centos baidu]# ls t[ab] ta tb
- “-”:用于指定一個字元集的範圍
[email protected]_0_16_centos baidu]# ls t[a-c] ta tb tc
五、檔案權限
1.改變檔案權限
指令:chmod
文法:chmod [{ugo}{±=}{rwx}] [檔案或目錄]
chmod [mode=421] [檔案目錄]
描述:改變檔案或目錄的權限
形如:chmod g+w filename
形如:chmod 761 filename
問題示例:建立一個新目錄,下面一個新檔案,嘗試用普通使用者去删除新目錄下的新檔案。
1 嘗試修改:新檔案的讀寫權限設定為 777,進行删除檔案操作
2 嘗試修改:新目錄的讀寫權限設定為 777,進行删除檔案操作
檔案的rwx權限:
r:可以執行catch、more等讀操作。
w:修改檔案的内容等寫操作,但是不代表你可以把這個檔案删除。
x:對檔案進行執行操作。
目錄的rwx權限:
r:可讀操作,可以列出目錄的内容,比如ls指令。
w:表示可以在目錄下建立或删除檔案的權限。
x:表示可以進入這個目錄(基本上是以的目錄都會有rx權限)。
是以:删除檔案的權限,是擁有你目前檔案所在的目錄的寫權限。
2.改變檔案所有權
指令:chown
文法:chown user 檔案
描述:改變檔案的所有者
示例:chown newuser t1.sh
useradd username 添加使用者
passwd username 為使用者設定密碼
指令:chgrp
文法:chgrp group 檔案
描述:改變檔案的所屬組
示例:chgrp adm t1.sh
檢視系統預設的權限 :umask -S (umask檢視權限掩碼值022 使用777-022得到真實權限)
3.檔案連接配接(軟連接配接相當于win的快捷方式)(硬連結)
指令:ln(link)
文法:ln -s [源檔案] [目标檔案] (硬連結則不需要-s選項)
描述:建立軟連結檔案
軟連結特點:權限是所有人都可以通路,并且軟連接配接檔案指向源檔案。
軟連結就像windows系統中的快捷方式一樣,特點也都類似。
硬連結:類似copy,硬連結大小和源檔案一樣,并且是同步更新的。
另外:硬連結不能跨檔案系統分區,而軟連接配接可以。
六、輸出重定向和管道
1.輸出重定向
大多數 UNIX 系統指令從你的終端接受輸入并将所産生的輸出發送回到您的終端。一個指令通常從一個叫标準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,一個指令通常将其輸出寫入到标準輸出,預設情況下,這也是你的終端。
重定向指令清單如下:
指令 說明
command > file 将輸出重定向到 file。
command < file 将輸入重定向到 file。
command >> file 将輸出以追加的方式重定向到 file。
n > file 将檔案描述符為 n 的檔案重定向到 file。
n >> file 将檔案描述符為 n 的檔案以追加的方式重定向到 file。
n >& m 将輸出檔案 m 和 n 合并。
n <& m 将輸入檔案 m 和 n 合并。
<< tag 将開始标記 tag 和結束标記 tag 之間的内容作為輸入。
2.管道
過濾:grep,可以将指定内容進行過濾然後輸出。
将一個指令的輸出傳送給另一個指令,作為另外一個指令的輸入。管道可以連接配接N個指令。
ls -l /etc | more (表示将ls -l /etc的輸出,當做more指令的輸入,即more指令浏覽的内容為前面指令的輸出結果)
ls -l /etc | grep init(表示将ls -l /etc的輸出結果進行過濾,顯示為init的結果)
ls -l /etc | grep init | wc -l (最後進行統計顯示的個數)
七、程序管理
1.查程序
ps指令查找與程序相關的PID号:
ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。
ps -A 顯示所有程式。
ps c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,參數或常駐服務的标示。
ps -e 此參數的效果和指定"A"參數相同。
ps e 列出程式時,顯示每個程式所使用的環境變量。
ps f 用ASCII字元顯示樹狀結構,表達程式間的互相關系。
ps -H 顯示樹狀結構,表示程式間的互相關系。
ps -N 顯示所有的程式,除了執行ps指令終端機下的程式之外。
ps s 采用程式信号的格式顯示程式狀況。
ps S 列出程式時,包括已中斷的子程式資料。
ps -t<終端機編号> 指定終端機編号,并列出屬于該終端機的程式的狀況。
ps u 以使用者為主的格式來顯示程式狀況。
ps x 顯示所有程式,不以終端機來區分。
最常用的方法是ps aux,然後再通過管道使用grep指令過濾查找特定的程序,然後再對特定的程序進行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat
ps -ef|grep java|grep -v grep 顯示出所有的java程序,去處掉目前的grep程序。
2.殺程序
使用kill指令結束程序:kill xxx
常用:kill -9 324
Linux下還提供了一個killall指令,可以直接使用程序的名字而不是程序辨別号,例如:# killall -9 NAME