一、常用指令
(1)ls
功能:列出指定目錄下的所有子目錄與文件
用法:ls + (選項) + (目錄或文件名)
常用選項:
- -a:列出目錄下的所有文件,包括隱藏文件
- -l:列出文件的詳細信息(如創建時間,文件大小等)
- -r:對目錄反向排序
- -t:按照時間排序
- -F:在每個文件名后添加一個字符用來說明該文件的類型
- -s:在文件名前輸出該文件的大小
- -R:列出所有文件與所有子目錄下的文件
- -1:將所有文件排成一列
例如:ls - l
(2)pwd
功能:輸出用戶當前所在的目錄
用法:pwd
常用選項:無
例如:
(3)cd
功能:切換工作目錄(類比windows雙擊進入文件夾或輸入路徑切換至指定目錄)
用法:cd + 目錄名
例如:
(4)touch
功能:常用于新建一個文件,也可用于更改文檔或目錄的日期時間
用法:touch + (選項) + 文件名
例如:
(5)mkdir
功能:在當前目錄下創建一個目錄
用法:mkdir + (選項) + 文件名
常用選項:
- -p:后接一個路徑,用于一次建立多個目錄
例如:
(6)rmdir
功能:刪除目錄
語法:rmdir + (選項) + 目錄名
常用選項:
- -p:當子目錄被刪除后如果父目錄變為空目錄,則一并刪除
例如:
(7)rm
功能:刪除文件或目錄
語法:rm + (選項) + 文件名/目錄名
常用選項:
- -f:強制刪除
- -i:刪除前需要逐一確認
- -r:遞歸刪除目錄及其中所有文件
例如:
(8)man
功能:Linux聯機手冊
用法:man + (選項) + 命令
常用選項:
- -k:根據關鍵字搜索手冊
- num:只在第num章中找
- -a:若指定命令出現在多個章節,則全部顯示
例如:man mkdir
(9)cp
功能:復制文件或目錄
用法:cp + (選項) + 文件/目錄?+ 目標文件/目錄
常用選項:
- -f:強行復制文件或目錄
- -i:覆蓋文件前先詢問用戶
- -R:遞歸復制指定目錄與其中的所有內容
(10)mv
功能:將文件/目錄重命名或將文件移動至某目錄
用法:mv + (選項) + 文件/目錄 + 目標文件/目錄
常用選項:
- -f:若目標文件存在,則強制覆蓋
- -i:若目標文件存在,則詢問是否覆蓋
(11)cat
功能:查看目標文件的內容,適用于小文本
用法:cat + (選項) + (文件)
常用選項:
- -b:對非空行前面加上行編號
- -n:對輸出的所有行進行編號
- -s:將多行空行變為一行
例如:
(12)more
功能:類似cat,適用于較大文本,會以一頁一頁的形式顯示,方便逐頁閱讀,按空白鍵(space)就往下一頁顯示,按b鍵就會往回一頁顯示,按q退出閱讀,而且還有查找字符串的功能
用法:more + (選項)+ 文件
常用選項:
- -num:一次顯示的行數
- +num:從第num行開始顯示
- -s:將連續空行變為一行
(13)less
功能:類似more,但是功能更加強大
用法:less + (選項)+ 文件
常用選項:
- -i:忽略搜索時的大小寫
- -N:顯示每行行號
- -e:文件顯示結束后自動退出
- -m:顯示類似more命令的百分比
- -s:將連續空行變為一行
常用命令:
- q:退出less
- / + 字符串:向下搜索字符串
- ?+字符串:向上搜索字符串
- b:向上翻一頁
- d:向下翻半頁
- 空格鍵:滾動一頁
- 回車鍵:滾動一行
- pageup:向上翻一頁
- pagedown:向下翻一頁
(14)head
功能:顯示文件開頭部分的內容
用法:head + (選項)+ (文件)
常用選項:
- -n + 行數:指定顯示的行數
(15)tail
功能:類似head,顯示文件結尾部分的內容
用法:tail + (選項) + (文件)
常用選項:
- -f:循環讀取
- -n + 行數:指定顯示的行數
(16)date
功能:顯示時間
用法:date + (選項)+ (格式)
常用選項:
- -s:根據字符串設置系統時間
格式:
- %H:小時
- %M:分鐘
- %S:秒
- %X:相當于輸入%H:%H:%S
- %d:日
- %m:月份
- %Y:完整四位數年份
- %F:相當于輸入%Y-%m-%d
例如:
時間戳
Unix時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒
當前時間轉時間戳:date +%s
時間戳轉時間:date -d@時間戳
例如:
(17)cal
功能:查看日歷
用法:cal + (選項) + (月份) + (年份)
常用選項:
- -y:顯示當前年份的完整日歷
- -j:顯示在當年的第幾天
- -3:顯示前一個月、當前月和下一個月的日歷
(18)find
功能:在目錄中查找文件
Linux下find命令的功能十分強大,提供給我們很多查找條件與選項
Linux find 命令 | 菜鳥教程 (runoob.com)https://www.runoob.com/linux/linux-comm-find.html
用法:find + (路徑...) + (匹配條件) + (動作)
(19)grep
功能:在文件中搜索字符串并打印
用法:grep + (選項)+ 目標字符串 + 文件...
常用選項:
- -i:忽略大小寫區分
- -n:在前面輸出行號
- -v:反向選擇,即輸出所有不包含目標字符串的內容
(20)zip
功能:將目錄或文件壓縮成zip格式
用法:zip + 壓縮文件名.zip + 目錄/文件
常用選項:
- -r:遞歸處理,將指定目錄下的所有文件和子目錄一并處理
- -d:從壓縮文件內刪除指定的文件
- -D:壓縮文件內不建立目錄名稱
例如:
unzip:Linux unzip命令 | 菜鳥教程 (runoob.com)
(21)bc
功能:進行浮點運算
用法:bc + (選項) + (參數)
常用選項:
- -i:強制進入交互式模式
- -l:定義使用的標準數學庫
參數:指定包含計算任務的文件
例如:
(22)uname
功能:獲取電腦和操作系統的相關信息
用法:uname + (選項)
常用選項:
- -a:顯示全部的信息,包括內核名稱、主機名、操作系統版本、處理器類型和硬件架構等
- -m:顯示處理器類型
- -n:顯示主機名
- -r :顯示內核版本號
- -s:顯示操作系統名稱
- -v:顯示操作系統的版本
- --help:顯示幫助
例如:
(23)echo
功能:將傳遞的參數打印到標準輸出中
用法:echo + (選項) + (參數)
例如:
(24)>、>>、<(重定向)
功能:>將內容重定向至目標文件(覆蓋);>>將內容追加至目標文件;<將從標準輸入改為從指定地方輸入
例如:
(25)|(管道)
本質:一個操作方式為文件的內存緩沖區
功能:將 | 前后兩個進程的輸入輸出用一個管道相連,以便達到進程間通信的目的
用法:使用 | 連接兩個命令
例如:我們想打印出某文件的第6-10行
在這條命令中,我們先將cat輸出的內容通過管道輸入給head命令,再將head輸出的內容通過管道輸入給tail命令
(26)which
功能:用于查找命令所在路徑
用法:which + 命令
例如:
(27)拓展命令
- 安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、exit、last...
- 文件處理指令:file、dd、diff、ln...
- 系統管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab...
- 網絡操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、mail、finger...
- 系統安全權限相關命令:passwd、su、sudo、umask、chgrp、chmod、chown、who...
- 其他命令:tar、gunzip、unarj、mtools、unendcode...
二、常用熱鍵
- tab:補全命令或路徑
- ctrl+a:光標回到行首
- ctrl+e:光標回到行尾
- ctrl+c:終止終端正在進行的所有任務并開啟新的命令行
- ctrl+r:搜索命令行使用過的歷史命令記錄
- ctrl+l:清空屏幕所有的內容
- ctrl+k:剪切(刪除)光標處到行尾的所有字符
- ctrl+k:剪切(刪除)光標處到行尾的所有字符
- ctrl+y:粘貼 ctrl+k、ctrl+u、ctrl+w刪除的字符
- ctrl+d:退出當前shell命令行,如果是切換過來的用戶,則執行這個命令回退到原用戶
- ctrl+z:暫停在終端運行的任務,使用"fg"命令可以使暫停恢復
三、權限管理
3.1 Linux中的權限
Linux下有兩種用戶:超級用戶(root)和普通用戶
超級用戶權限非常大,基本可以在Linux系統下做任何事,不受限制
普通用戶就是我們用adduser創建出來的用戶,會受到權限的約束,只能做有限的事情
我們可以用su命令從普通用戶切換到root用戶,也可以通過sudo命令暫時的將權限提升至root級別
3.2 文件類型與文件權限
像這樣,第1位的字符代表了文件的類型,文件類型一共有如下幾種:
- d:目錄文件
- -:普通文件
- l:軟鏈接(類似windows的快捷方式)
- b:塊設備文件
- p:管道文件
- c:字符設備文件
- s:套接口文件
第1位后面的9位字符代表了文件的基本權限,其中r代表可讀,w代表可寫,x代表可執行
9位字符分為三組:文件所有者權限、所屬組權限和其他用戶權限
如果一個用戶不屬于文件的所有者和所屬組,那么就按照其他用戶賦予權限
其中每組的3個字符分別為:讀、寫、執行
如果對應位置的字符是-,則說明不具有該權限
權限位后面分別是:連接數、文件所有者、文件所屬組、文件大小、文件最近修改日期和文件名
3.3 文件權限值的表示方法
字符串表示方法:
r-- | 只可讀 | -w- | 只可寫 |
--x | 只可執行 | rw- | 可讀可寫 |
-wx | 可寫可執行 | r-x | 可讀可執行 |
rwx | 可讀可寫可執行 | --- | 無權限 |
我們將有對應權限規定為1,沒有對應權限規定為0,就出現了二進制表示:
r-- | 100 |
-w- | 010 |
--x | 001 |
rw- | 110 |
r-x | 101 |
-wx | 011 |
rwx | 111 |
--- | 000 |
因為最多只有8種情況,我們還可以用八進制來表示:
r-- | 4 |
-w- | 2 |
--x | 1 |
rw- | 6 |
r-x | 5 |
-wx | 3 |
rwx | 7 |
--- | 0 |
3.4 文件訪問權限的設置方法
(1)chmod
功能:設置文件的訪問權限
用法:chmod + (參數) + 權限 + 文件名
常用參數:
- +:增加對應權限
- -:取消對應權限
- =:賦予指定權限
- u:文件所有者
- g:所屬組
- o:其他用戶
- a:所有用戶
例如:
還可以用3位八進制數字代替權限符號
例如:
(2)chown
功能:修改文件所有者
用法:chown + (參數) + 用戶名 + 文件名
例如:
(3)chgrp
功能:修改文件所屬組
用法:chgrp + (參數) + 用戶組名 + 文件名
例如:
3.5 目錄的權限
目錄也是一種文件,其權限的構成和普通文件相同
區別在于,對應權限可以做的事情不同
- 可讀:允許用ls等命令查看目錄中的文件內容,反之則不允許
- 可寫:允許在目錄中創建和刪除文件,反之則不允許
- 可執行:允許通過cd命令進入目錄,反之則不允許
不過在具體使用中我們會發現,當多個用戶共享一個目錄時,只要用戶擁有對目錄的寫入權限,則可以隨意的刪除目錄中的文件,不管該用戶是否具有被刪除文件的寫入權限,這似乎并不合理
為了解決這個問題,Linux引入了粘滯位
粘滯位(t)與其他用戶的可執行權限(x)共用同一個位置,當一個目錄被設置為粘滯位(chmod +t),則該目錄下的文件只能被root用戶、目錄所有者和文件所有者刪除,其他用戶即使擁有目錄的寫入權限也無法刪除別人的文件
例如:
完.