【大数据 / linux 系统 / KEN】linux 基本命令的使用(3)
linux基本命令的使用
首次發布時間:2020/7/10
最后修改時間:2020/7/10
摘要
- 常用 Linux 命令的基本使用
- ls 常用選項及通配符的使用
- 切換目錄
- 刪除目錄/文件
- 修改文件名稱/移動文件
- 復制文件
- 創建文件
- 創建文件夾
- 查看文件內容
- 創建鏈接
- find 命令
- grep 命令
- 管道 | 的介紹
- Linux 權限描述格式解讀
- 修改文件權限
Linux 下文件和目錄的特點
- Linux 文件或者目錄的名稱最長可以有 256 個字符
- 以 . 開頭的文件為隱藏文件,需要用 -a 參數才能顯示(ls -a)
目標:
- 理解學習 linux 終端命令的原因
- 常用 linux 命令實踐
原因:
- Linux 剛面世時并沒有圖形界面,所有的操作全靠命令完成,如磁盤操作、文件存取、目錄操作、進程管理、文件權限設定等
- 工作中,大量的服務器維護工作都是在遠程通過 SSH 客戶端來完成的,并沒有圖形界面,所有的維護工作都需要通過命令來完成
- Linux 發行版本的命令大概有 200 多個,但是常用的命令只有 10 多個而已
- 學習終端命令的技巧:
- 不需要死記硬背,對于常用命令,用的多了,自然就記住了
- 不要嘗試一次學會所有的命令,有些命令是非常不常用的,遇到時百度就可以了
常用 Linux 命令的基本使用
| 01 | ls | list | 列出當前文件夾下的文件 |
| 02 | pwd | print work directory | 查看當前所在文件夾的路徑 |
| 03 | cd [目錄名] | change directory | 切換文件路徑 |
| 04 | touch [文件名] | touch | 如果文件不存在,新建文件 |
| 05 | mkdir [文件名] | make directory | 創建目錄 |
| 06 | rm [文件名/目錄名] | remove | 刪除指定的文件或目錄 |
| 07 | clear | clear | 清屏,等同于 ctrl + L |
| 08 | mv [文件名/目錄名] [文件名/路徑] | move | 兩個作用:[修改文件或目錄名為新的名字][移動文件或目錄到新的路徑下] |
| 09 | cp [文件名/目錄名] [路徑] | copy | 復制文件/目錄到新的路徑下 |
| 10 | cat [文件名] | Concatenate(連接) | 查看文件內容 |
| 11 | su | Switch user | 切換用戶,切換到 root 用戶;"-" 表示用戶的環境變量一起切換;"-c",表示僅執行一次命令,而不切換用戶身份 |
| 12 | chown | Change owner | 改變所有者 |
| 13 | chgrp | Change group | 改變用戶組 |
| 14 | ps | Change group | 查看進程狀態 |
| 15 | chmod 權限數字 [文件名/目錄名] | Change mode | 改變文件或目錄權限 |
| 16 | head | head | 查看文件前幾行(默認10行);-n:指定行數 |
| 17 | tail | tail | 查看文件的后幾行;-n:指定行數;-f(follow)動態顯示文件內容 |
| 18 | ln | link | 產生鏈接文件,類似 win 中創建快捷方式 |
| 19 | man | manual | 獲取命令或者配置文件的使用手冊;詳細可看:linux 終端命令格式 |
| 20 | help | help | 查看 shell 內置命令的幫助信息 |
- 注意:
- touch 創建的是文件,而 mkdir 創建的是文件夾
- 刪除文件夾,需要用 rm -rf 文件夾名 命令來刪除
- su 或 su root 表示切換至 root 用戶;su oracle 表示切換至普通用戶
- su - 或 su - root 或 su - oracle 表示既切換用戶,又切換工作目錄
小技巧:
ctrl + shift + =:放大 終端窗口的字體顯示
ctrl + -:縮小 終端窗口的字體顯示
文件系統操作
- 常用選項
| -a | 顯示指定目錄下所有子目錄與文件,包括隱藏文件 |
| -l | 以列表方式顯示文件的詳細信息 |
| -h | 配合 -l 使用,以人性化的方式顯示文件大小(文件大小以 G,M,K 為單位顯示,更加方便理解) |
注意:ll 等同于 ls -al,使用起來相當方便
- ls 通配符的使用
| * | 表示任意個數的字符 |
| ? | 代表任意一個字符,至少 1 個 |
| [] | 表示可以匹配字符組中的任意一個 |
| [abc] | 匹配 a、b、c 中的任意一個字符 |
| [a-f] | 匹配從 a 到 f 范圍內的的任意一個字符 |
我一般就用 * 比較多,其它沒用過
* 比較通用一點,要精確匹配的話可以用其它通配符
切換目錄
注意:Linux 所有的 目錄 和 文件名 都是大小寫敏感的
| cd | 切換到當前用戶的主目錄(/home/用戶目錄) |
| cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
| cd . | 保持在當前目錄不變 |
| cd .. | 切換到上級目錄 |
| cd - | 在最近兩次工作目錄之間來回切換(這個命令很好用,省去切換目錄時輸入路徑的麻煩) |
- 相對路徑和絕對路徑
- 相對路徑:在輸入路徑時,最前面不是 / 或者 ~,表示相對 當前目錄 所在的目錄位置
- 例如:~/directory$ cd work/job
- 絕對路徑:在輸入路徑時,最前面是 / 或者 ~,表示從 根目錄/家目錄 開始的具體目錄位置
- 例如:cd /home/user/directory/work/job
- 相對路徑:在輸入路徑時,最前面不是 / 或者 ~,表示相對 當前目錄 所在的目錄位置
刪除目錄/文件
使用 rm 命令要小心,因為文件刪除后不能恢復
| -f | force | 強制刪除,忽略不存在的文件,無需提示,即使是只讀文件也直接刪除,不作提示 |
| -r | recursive | 遞歸地刪除目錄下的內容,刪除目錄時必須加此參數 |
擴展
- 一些文件亂碼后,使用 rm -rf 仍然無法刪除
- 就可以成功刪除了
修改文件名稱/移動文件
- mv aaa bbb:把文件名 aaa 修改為 bbb
- mv aaa bbb/ccc:將 aaa 文件移動到 bbb 目錄下并改名為 ccc
- bbb 目錄必須存在,否則不能移動成功
復制文件
cp aaa 目標路徑:復制 aaa 文件到 目標路徑 下
| -r | 遞歸地復制目錄下的內容,復制目錄時必須加此參數 |
| -p | 保留文件屬性 |
創建文件
- 創建文件或修改文件時間
- 如果文件不存在,可以創建一個空白文件
- 如果文件已存在,可以修改文件的末次修改日期(不改變文件內容)
- 用法:
- touch 文件名:創建文件
- touch {文件名1,文件名2}:同時創建多個文件
- 注意:
- 大括號里面不能有任何空格,否則創建出的文件不會是你想要的文件,可以自己試試
- echo "Hello World" > aaa:向文件 aaa 中寫入 “Hello World”(如果 aaa 文件存在,則覆蓋掉原來的內容)
- echo "Hello World" >> aaa:向文件 aaa 中末尾處追加 “Hello World”(不會覆蓋原來的內容)
創建文件夾
- mkdir 目錄名
| -p | 可以遞歸創建目錄 |
- 例如:
- 執行 mkdir -p aaa/bbb 時
- 假如 aaa 目錄不存在,會順便把 aaa 目錄也創建了,然后創建 bbb
- 而如果執行 mkdir aaa/bbb
- 在 aaa 不存在的情況下,命令會報錯
新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,否則會提示錯誤 “File exists”
查看文件內容
1. cat
- cat 文件名
- cat 命令可以用來查看文件內容、進行文件合并
- cat 會一次性顯示所有的內容,適合查看內容較少的文本文件
| -b | 對非空輸出行進行編號 |
| -n | 對輸出的所有行進行編號 |
| cat file1.txt > file2.txt | 將 file1.txt 文件的內容輸出到 file2.txt 中 |
- 請看下圖例子,幫助理解:
2. more
- more 文件名
- more 命令可以用于分屏顯示文件內容,每次只顯示一頁內容
- 適合于查看內容較多的文本文件
使用 more 的操作鍵:
| 空格鍵 | 顯示文件內容的下一屏 |
| Enter 鍵 | 一次滾動文件的一行 |
| b | 回滾一屏 |
| f | 前滾一屏 |
| q | 退出 |
3. head
- head 文件名
- 查看文件的前幾行
4. tail
- tail 文件名
- 查看文件的后幾行
創建鏈接
- ln
- ln -s [源文件] [鏈接文件]
- 創建軟鏈接
- ln [源文件] [鏈接文件]
- 創建硬鏈接
- ln -s [源文件] [鏈接文件]
- 其實軟鏈接文件就相當于 Windows 中的快捷方式,這樣就很容易理解了
- 而硬鏈接文件,可以看成和源文件是同一個文件
工作中幾乎不會建立文件的硬鏈接
源文件要使用絕對路徑,不要使用相對路徑,
這樣可以方便移動鏈接文件后,仍然能夠正常使用。
但其實用相對路徑也能建立鏈接文件, 但是這樣移動鏈接文件后就不能找到源文件了
- 詳細可參考這篇文章:
- Linux 中軟連接和硬鏈接的區別
find 命令
- find [搜索路徑] [匹配條件]
- find 命令用于查找文件或目錄
- 例子:
- find . -name 123.txt
- 在當前路徑下查找 “123.txt” 文件
- find . -name 123.txt
| name | 按名稱查找(精確查找) | find / -name 123.txt,find . -name 123.txt,(/ 表示當前目錄,. 表示根目錄) |
| iname | 按名稱查找,不區分大小寫(模糊查找) | find / -iname abc*,查找根目錄下所有以 abc 開頭的文件 |
| size | 按文件大小查找(+:大于、-:小于、不寫:等于) | find / -size -100M,查找根目錄下小于 100M 的文件 |
| type | 按文件類型查找(f:二進制文件、l:軟連接文件、d:目錄、c:字符文件) | find / -type f,查找根目錄下的二進制文件 |
- 其實最常用的就是 find . -name 123.txt,配合上通配符 *,一般就足夠平常使用了
grep 命令
- grep 命令是 Linux 系統中一個強大的文本搜索工具
- 常見用法:grep -rn "需要查找的內容"
| -r | 遞歸地查找目錄下指定的內容 |
| -n | 顯示匹配行及行號 |
| -v | 顯示不包含匹配文本的所有行(相當于求反) |
| -i | 忽略大小寫 |
- grep 允許對文本文件進行模式查找
- 所謂模式查找,又被稱為正則表達式
- 常用的兩種模式查找
| ^a | 行首,搜尋以 a 開頭的行 |
| ke$ | 行尾,搜尋以 ke 結束的行 |
- 用法:
- grep -rn ^start
- 查找以 start 開頭的行
- grep -rn end$
- 查找以 end 結束的行
- grep -rn ^start
注意:雙引號可以加,也可以不加
管道 |
- Linux 允許將一個命令的輸出,通過管道,作為另一個命令的輸入
- 這里 | 分為左右兩邊,左邊命令的結果作為右邊命令的輸入
- 常用的管道命令有:
- more:分屏顯示內容
- grep:在命令執行結果的基礎上查詢指定的文本
- 例子:
- ps | grep system
- 首先 ps 獲取到所有進程的信息
- 然后 grep 命令在上述信息中找到包含 “system” 的行
- ps | grep system
Linux 權限描述格式解讀
- 示例:drwxr-xr-x
- d:表示節點類型
- d:文件夾(directory)
- -:文件
- l:鏈接文件(link)(一定是軟鏈接,因為硬鏈接跟源文件類型一致,不會是 l)
- r:可讀
- w:可寫
- x:可執行
第一組 rwx:表示 文件擁有者 對它的權限:可讀可寫可執行
第二組 x-r:表示 文件所屬組 對它的權限:可讀可執行,不可寫
第三組 x--:其他用戶組 權限(不包含以上兩組):可執行,不可寫、不可讀
修改權限
字符修改權限
- chmod g -rw aaa:將 aaa 文件所在用戶組權限設置為:不可讀、不可寫
- chmod o -rw:將 aaa 文件其他用戶組權限設置為:不可讀、不可寫
- chmod u+x:將 aaa 文件所屬用戶權限增加 x
數字修改權限
- 建議用數字修改權限的方法,因為容易記,不易弄錯,更加常用
r = 4
w = 2
x = 1
- 這種設置的巧妙之處在于,r/w/x 任意的組合,都對應著唯一的數字,所以可以方便地用下面的方式去設置權限:
- chmod 777 aaa:將 aaa 文件全部用戶組的權限設置為可讀、可寫、可執行權限
- 以 777 為例,每一位分別代表一個用戶組,順序如下:
- 文件擁有者/文件所屬組/其他用戶組
- 示例:
444 r–r--r–
600 rw-------
644 rw-r–r--
666 rw-rw-rw-
700 rwx------
744 rwxr–r--
755 rwxr-xr-x
777 rwxrwxrwx
多級目錄權限的修改【遞歸修改權限】
- chmod -R 644 aaa:aaa 目錄下所有的文件和文件夾的權限都更改為 644(包括 aaa 本身)
終端實用技巧
- 自動補全
- 在敲出 文件 / 目錄 / 命令 的前幾個字母之后,按下 TAB 鍵
- 如果輸入的沒有歧義,系統會自動補全
- 如果還存在其他 文件 / 目錄 / 命令,再按一下 TAB 鍵,系統會提示可能存在的 文件 / 目錄 / 命令
- 建議使用 TAB 鍵,因為不但方便,而且可以保證最后輸入的內容一定是對的(因為是系統自動補全的)
- 曾經使用過的命令
- 按上/下光標鍵可以在曾經使用過的命令之間來回切換
- 如果想要退出選擇,并且不想執行當前選中的命令,可以按 ctrl + c 退出
總結
以上是生活随笔為你收集整理的【大数据 / linux 系统 / KEN】linux 基本命令的使用(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根本原因分析: 五个为什么 (5 Why
- 下一篇: 极客日报:2021年年终奖人均水平为2.