主頁 > 軟體設計 > 后端程式員必備Linux基礎【基礎篇2】

后端程式員必備Linux基礎【基礎篇2】

2021-12-09 09:26:30 軟體設計

文章目錄

  • 1、檔案目錄指令
    • 1.1、pwd
    • 1.2、ls
    • 1.3、cd
    • 1.4、mkdir
    • 1.5、rmdir
    • 1.6、touch
    • 1.7、cp
    • 1.8、rm
    • 1.9、mv
    • 1.10、cat
    • 1.11、more
    • 1.12、less
    • 1.13、echo
    • 1.14、head
    • 1.15、tail
    • 1.16、> 和 >>
    • 1.17、ln
    • 1.18、history
  • 2、時間日期指令
    • 2.1、date
    • 2.2、cal
  • 3、查找指令
    • 3.1、find
    • 3.2、locate
    • 3.3、which
    • 3.4、grep
  • 4、壓縮和解壓指令
    • 4.1、gzip
    • 4.2、gunzip
    • 4.3、zip
    • 4.4、unzip
    • 4.5、tar
  • 5、組
    • 5.1、組的基本介紹
    • 5.2、組的創建
    • 5.3、檔案/目錄的所有者
    • 5.4、檔案/目錄的所在組
    • 5.5、其他組
    • 5.6、改變用戶所在組
  • 6、權限
    • 6.1、權限的基本介紹
    • 6.2、rwx權限詳解
    • 6.3、chomd

1、檔案目錄指令

1.1、pwd

  • pwd顯示當前作業目錄的絕對路徑

指令:pwd

1.2、ls

  • ls顯示當前目錄的資訊

指令:ls [選項] [目錄檔案]

常用選項

  1. -a :顯示當前目錄中含有的所有的檔案和目錄(包括隱藏的),
  2. -l:以串列的方式顯示資訊,

1.3、cd

  • cd切換到指定目錄

指令:cd [引數]

  • 回到當前用戶的家目錄指令:cd ~cd :

  • 回到當前目錄的上一級目錄指令:cd ..

1.4、mkdir

  • mkdir創建目錄

指令: mkdir [選項] 要創建的目錄

常用選項:-p創建多級目錄

1.5、rmdir

  • rmdir洗掉空目錄

指令:rmdir [選項] 要洗掉的空目錄

注意:上述指令是洗掉空目錄,如果要洗掉非空目錄,需要使用 rm -rf 要洗掉的目錄

1.6、touch

  • touch創建空檔案

指令:touch 檔案名

1.7、cp

  • cp拷貝檔案到指定目錄

指令:cp [選項] 要拷貝的檔案名 目標目錄

  • 常用選項:-r:遞回復制整個檔案夾(將一個目錄的所有檔案都拷貝到新的目錄下)

  • 強制覆寫不提示的指令:\cp [選項] 要拷貝的檔案名 目標目錄

1.8、rm

  • rm移除檔案或目錄

指令:rm [選項] 要洗掉的檔案或目錄

  1. -r:遞回洗掉整個檔案夾

  2. -f:強制洗掉不提示

1.9、mv

  • mv移動檔案與目錄或重命名

重命名指令:mv 原檔案名 新檔案名

移動檔案指令:mv 要移動的檔案或目錄 目標目錄

1.10、cat

  • cat查看檔案內容

指令:cat [選項] 要查看的檔案

  • 常用選項:-n:顯示行號

  • 注意:cat 只能瀏覽檔案,不能修改檔案,為了便于瀏覽,一般會帶上管道命令 | more

1.11、more

  • more: 是一個基于 vi 編輯器的文本過濾器,它以全螢屏的方式按頁顯示文本檔案的內容

指令:more 要查看的檔案

內置的快捷鍵

操作功能說明
空格鍵向下翻頁
Enter向下翻一行
q立刻離開more,不再顯示該檔案內容
ctrl + f向下滾動一屏
ctrl + b回傳上一屏
=輸出當前行的行號
:f輸出檔案名和當前行的行號

1.12、less

  • less用來分屏查看檔案內容

指令:less 要查看的檔案

內置的快捷鍵

操作功能說明
空格鍵向下翻動一頁
[pagedown]向下翻動一頁
[pageup]向上翻動一頁
/字串向下搜尋字串:n:向下查找;N:向上查找
?字串向上搜尋字串:n:向下查找;N:向上查找
q離開 less 程式

特別說明

  • less 功能跟 more 類似,但是比 more 指令更加強大,支持各種顯示端,less 指令在顯示檔案內容時,并不是一次將整個檔案加載后才顯示,而是根據顯示需要加載內容,對于顯示大型檔案具有較高的效率

1.13、echo

  • echo輸出內容到控制臺

指令:echo [選項] [輸出內容]

1.14、head

  • head用于顯示檔案的開頭部分內容(默認情況下顯示檔案前10行內容)

默認查看檔案前10行指令:head 檔案

查看檔案前m行指令:head -n m 檔案

1.15、tail

  • tail用于顯示檔案的尾部部分內容(默認情況下顯示檔案尾10行內容)

默認查看檔案尾10行指令:tail 檔案

查看檔案尾m行指令:tail -n m 檔案

實時追蹤該檔案的所有更新內容指令:tail -f 檔案

退出指令:ctrl+c

1.16、> 和 >>

  • > 輸出重定向(覆寫原內容) 和 >> 追加

常用指令

將串列的內容寫入檔案中(覆寫寫)指令:ls -l > 檔案

將串列的內容追加到檔案末尾指令:ls -al >> 檔案

將檔案1的內容覆寫到檔案2指令:cat 檔案1 > 檔案2

指令:echo "內容" >> 檔案

1.17、ln

  • ln軟鏈接也稱為符號鏈接,類似于 windows 里的快捷方式,主要存放了鏈接其他檔案的路徑

給原檔案創建一個軟鏈接指令:ln -s [原檔案或目錄] [軟鏈接名]

洗掉軟鏈接指令:rm 軟連接

1.18、history

  • history查看已執行的歷史命令或者執行歷史命令

查看已經執行的歷史命令指令:history

顯示最近使用過的n條命令的指令:history n

執行歷史編號為m的命令的指令:!m

2、時間日期指令

2.1、date

  • date顯示當前日期和設定日期

顯示當前時間指令:date

顯示當前年份指令:date "+%Y"

顯示當前月份指令:date "+%m"

顯示當前是哪一天指令:date "+%d"

顯示年月日時分秒指令:date "+%Y-%m-%d %H:%M:%S"

指令:date -s 字串時間

示例:設定當前時間為2021年12月1號9點55分10秒:date -s "2021-12-1 9:55:10"

2.2、cal

指令:cal [選項](不加選項則顯示本月日歷)

顯示某年日歷指令:cal 年份

3、查找指令

3.1、find

  • find從指定目錄向下遞回地遍歷其各個子目錄,將滿足條件的檔案或者目錄顯示在終端

指令:find [搜索范圍] [選項]

常用選項說明

選項功能說明
-name 檔案名按照指定的檔案名查找模式查找檔案
-user 用戶名查找屬于指定用戶名所有檔案
-size 檔案大小n(+n:大于n;-n:小于n;n:等于n)按照指定的檔案大小查找檔案

3.2、locate

  • locate快速定位檔案路徑,locate 指令利用事先建立的系統中所有檔案名稱及路徑的 locate 資料庫實作快速定位指定的檔案,locate 指令無需遍歷整個檔案系統,查詢速度較快,為了保證查詢結果的準確度,管理員必須定期更新 locate 資料庫,

指令:locate 檔案

  • 注意:由于 locate 指令基于資料庫進行查詢,所以第一次運行前,必須使用 updatedb 指令創建locate 資料庫,

3.3、which

  • which可以查看某個指令在哪個目錄下

指令:which 要查看的指令

3.4、grep

  • grep過濾查找

指令:grep [選項] 查找內容 源檔案

常用選項說明

選項功能說明
-n顯示匹配行及行號
-t忽略字母大小
  • 注意: grep 往往和管道符 “|” (表示將前一個命令的處理輸出傳遞給后面的命令處理)一起使用

  • 示例:在 hello.txt 檔案中,查找 “yes” 所在行,并顯示行號

  1. 寫法一:cat /home/hello.txt | grep -n "yes"

  2. 寫法二: grep -n "yes" /home/hello.txt

4、壓縮和解壓指令

4.1、gzip

  • gzip用于壓縮檔案

指令:gzip 檔案

注意:只能將檔案壓縮為 .gz 檔案

4.2、gunzip

  • gunzip用于解壓檔案

指令:gunzip 檔案.gz

4.3、zip

  • zip用于壓縮檔案夾或目錄

指令:zip [選項] 檔案名.zip 將要壓縮的內容

常用選項

-r:遞回壓縮,即壓縮目錄

4.4、unzip

  • unzip用于解壓檔案夾

指令:unzip [選項] 檔案名.zip

常用選項

-d :壓縮后檔案存放的目錄

注意:不指明解壓后的路徑,則默認為當前目錄

4.5、tar

  • tar打包檔案或檔案夾

tar 打包后的檔案是.tar.gz 的檔案

指令:tar [選項] 檔案名.tar.gz 打包的內容

常用選項

選項功能
-c產生.tar 打包檔案
-v顯示詳細資訊
-f指定壓縮后的檔案名
-z打包同時壓縮
-x解包.tar 檔案
-C解壓后檔案存放的目錄
  • 示例1:壓縮多個檔案,將 /home/pig.txt 和 /home/cat.txt 壓縮成 pc.tar.gz

指令:tar -zcvf pc.tar.gz /home.pag.txt /home/cat.txt

  • 示例2:將 pc.tar.gz 解壓到當前目錄

指令:tar -zxvf pc.tar.gz

  • 示例3:將 /home/pc.tar.gz 解壓到 /opt 中

指令:tar -zxvf /home/pc.tar.gz -C /opt

5、組

5.1、組的基本介紹

在 linux 中的每個用戶必須屬于一個組,不能獨立于組之外,在 linux 中,每個檔案有所有者、所在組、其他組的概念,

  1. 所有者
  2. 所在組
  3. 其他組

5.2、組的創建

創建組的指令:groupadd 組名

5.3、檔案/目錄的所有者

  • 所有者:創建該檔案的用戶,一般檔案被哪個用戶創建的,該用戶就自然成為了該檔案的所有者,

查看檔案的所有者指令:ls -ahl

在這里插入圖片描述

修改檔案所有者指令:chown 用戶名 檔案名

注意:

如果要修改目錄,并使其所有子檔案和目錄遞回生效,則要加上:-R

5.4、檔案/目錄的所在組

  • 所在組:創建該檔案用戶所在的組,當某個用戶創建了一個檔案后,該檔案所在組就是該用戶所在組,

查看所在組指令:ls -ahl

在這里插入圖片描述

修改檔案所在組指令:chgrp 組名 檔案名

注意:

如果要修改目錄,并使其所有子檔案和目錄遞回生效,則要加上:-R

5.5、其他組

  • 其他組:創建檔案用戶所不在的組,除檔案的所有者和所在組的用戶外,系統的其它用戶都是檔案的其他組,

5.6、改變用戶所在組

  • 在添加用戶時,可以指定將該用戶添加到哪個組中,
  • 同樣的用 root 的管理權限可以改變某個用戶所在的組,

改變用戶所在組指令:usermod -g 新組名 用戶名

改變用戶登錄的初始目錄指令:usermod -d 目錄名 用戶名

特別注意:改變戶用登錄的初始目錄,用戶需要擁有進入該目錄的權限

6、權限

6.1、權限的基本介紹

使用ll查看當前目錄的內容,如下

在這里插入圖片描述

在這里插入圖片描述

第一列:

  1. 第0位: 確定檔案型別(d、-、l、c、b)
  • l:是鏈接,相當于 windows 的快捷方式

  • d:是目錄,相當于 windows 的檔案夾

  • -:是普通檔案

  • c:是字符設備檔案,如滑鼠,鍵盤

  • b:是塊設備,如硬碟

  1. 第1-3位: 確定所有者擁有該檔案的權限(rwx)

  2. 第4-6位: 確定所在組其他用戶擁有該檔案的權限(rwx)

  3. 第7-9位: 確定其他組用戶擁有該檔案的權限(rwx)

  4. 后面的一位數字:如果是檔案就表示為1,如果是目錄,就表示子目錄的個數,

  5. 再后面的字串:表示的是用戶

  6. 接著的字串:表示的是組

  7. 再后面的數字:表示的是檔案大小,如果是檔案夾則顯示4096,

  8. 接著的:表示的是最后修改日期,

6.2、rwx權限詳解

  1. rwx 作用到檔案
  • [r] 代表可讀(read):可以讀取查看

  • [w] 代表可寫(write):可以修改,但是不代表可以洗掉該檔案,洗掉一個檔案的前提條件是對該檔案所在的目錄有寫權限,才能洗掉該檔案

  • [x]代表可執行(execute):可以被執行

  1. rwx 作用到目錄
  • [r]代表可讀(read):可以讀取,ls 查看目錄內容

  • [w] 代表可寫(write):可以修改,對目錄內創建+洗掉+重命名檔案

  • [x]代表可執行(execute):可以進入該目錄

rwx可以使用數字進行表示:r = 4,w = 2,x = 1,因此rwx = 7,

6.3、chomd

  • chmod 指令可以修改檔案或者目錄的權限

  • 方式一: +、-、= 變更權限

u:表示所有者、g:表示所在組、o:表示其他組、a:表示所有人(u、g、o的總和)

  1. chmod u=rwx,g=rx,o=x 檔案名/目錄名

  2. 將其他組賦予寫的權限的指令:chmod o+w 檔案名/目錄名

  3. 將所有人的執行的權限都去掉的指令:chmod a-x 檔案/目錄名

  • 方式二: 通過數字變更權限

r=4、w=2、x=1、rwx=4+2+1(可以組合,如3=wx)

指令:chmod 751 檔案名/目錄 等價于 chmod u=rwx,g=rx,o=x 檔案名/目錄名

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/377154.html

標籤:其他

上一篇:回文串問題一網打盡

下一篇:RabbitMQ 實作延遲佇列的兩種方式

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more