主頁 > 作業系統 > Linux學習--2.檔案管理的基本命令

Linux學習--2.檔案管理的基本命令

2020-09-29 05:58:06 作業系統

檔案的基本操作

前言:

  看完這篇圖文我應該能保證讀者在Linux系統下對檔案的操作能跟用Windows環境下一樣流暢吧,好了下面正文

正文:

基礎知識:

  linux里共有以下幾類檔案,分別為目錄(directory)、(普通)檔案(file)、鏈接檔案(link file)、塊設備(block)、字符設備(character)、管道檔案(pipe)、套接字檔案(sockt),灰色標記檔案可先忽略,

  然后檔案屬性跟windows一樣有最新修改時間、檔案的大小、所屬用戶、所屬組、檔案的操作權限(入、入、執行)等,我們可以用下面的命令查看當前目錄下的檔案的型別及檔案屬性,

  ls -l 

  這是執行完上面的命令的結果,我從上往下從左到右分析下,分析點前面有 * 的是重點:

    1. 首先最頂上的 total 20 ——總共20個檔案的意思(包含了隱藏檔案)

   *2. 下面第二行 -rw-r--r-- 這個引數得拆成  - ,rw- ,r-- ,r-- 這四組來看:

  • 第一組引數 :代表這個檔案的型別 —— d 就是目錄, - 就是普通檔案l 就是鏈接檔案,b 塊設備,c 字符設備,p 管道檔案,s 套接字
  • 第二組引數 :代表這個檔案所屬用戶的權限,從左到右三個引數分別對應讀、寫、執行—— r 就是允許讀入w 就是允許寫入, x 允許執行- 就是沒有對應的權限
  • 第三組引數 :代表這個檔案所屬用戶組的權限,首先這個檔案是屬于一個組的,而這個用戶組里可能有多個用戶,所以這個屬性確定了這群人對這個檔案的操作權限,引數代表的意義同上
  • 第四組引數 :代表其他用對這個檔案的操作權限,就是既不是這個檔案的所有者,也不是這個檔案所有組的人對這個檔案的操作權限,很明顯一般只會給他 r 讀的權限,引數代表的意義同上

  3. 然后就是上面這堆引數跟root之間的數字代表了這個檔案相同索引編號的個數,通俗的講就是有幾種可以訪問到它的路徑,這個現在可忽略

   *4. 接下來就是這兩個root ,第一個root代表這個檔案的所屬者是root,第二個root代表這個檔案的所屬組

   *5. 第二個root后面跟著的的數字就是這個檔案的大小單位是位元組(byte)

   *6. 后面這個顯而易見,是這個檔案的修改時間,最后就是檔案的名字

  大概分析就是這些,其實檔案型別從最后檔案名的顏色一眼就能看出來,藍色的就是目錄,灰色的就是普通檔案,淺藍色的就是鏈接檔案,還有壓縮包是紅色的,當然顏色不一定準確,因為檔案顏色是可以在哪個組態檔里更改的,不過一般不會去改顏色,我也就不說了,

  基礎知識普及完了,開講命令了

基本命令:

  1. cd 命令(change directory,切換作業路徑),可以這么理解,它可以用來打開具體某個目錄(檔案夾),用法如下

  cd /home

  一般就是這么用,cd后面加路徑,路徑有相對路徑絕對路徑之分,

  • 絕對路徑就是從根目錄(/)開始(以根目錄為中心)一級一級往下寫,上面這個命令里的路徑就是絕對路徑,/home就是根目錄(/)下的home目錄,
  • 相對路徑的話就是相對于當前作業路徑(以當前目錄為中心),如果當前路徑就是在根目錄下的話,那么要進到home目錄就可以這么寫cd home,那怎么知道當前路徑呢就有了下面的命令

  2. pwd 命令(print working directory,列印出作業路徑)cd命令的好搭檔,作用是顯示出當前路徑

  pwd

  pwd 還有一個用法 pwd -p,這個用法是專門找鏈接檔案指向的原檔案用的,其他沒了,

  這兩個命令就這些,不過提到路徑,有幾個特殊的路徑要注意下:

  • .  :當前目錄
  • ..  :當前目錄的上一級目錄
  • ~ :家目錄,一般用戶cd ~ 回到/home/用戶名這個目錄,root用戶回到/root目錄
  • / :根目錄

  3. touch命令,創建新的空檔案,用法是touch后面加要創的檔案名,如下面這個命令就是創建了一個名為test.txt的檔案

  touch test.txt

  4. mkdir(make directory,創建新目錄)命令,上面的命令是創建空檔案,這個是創建新目錄,如下面這個命令就是創建了叫test的目錄

  mkdir test

  5. vi / vim 命令,創建完了檔案該怎么寫內容呢,這就用到了這兩個文本編輯軟體vi和vim,用法如下,vi / vim 后面加要編輯的檔案(注意路徑)

  vim test.txt

  不對,這個提的早了,那就先簡單說下吧,輸完上面這個命令會進入編輯界面,但你還是沒法編輯,得輸入i 才能進入編輯模式左下角會有提示,如下圖所示,這才能開始寫東西  

  然后輸完東西要退出來怎么辦,先按esc鍵,再按shift+;輸入wq回車才算保存退出,好了文本編輯就這些

    6. mv (move,移動)命令,用來移動檔案或目錄,用法mv + 要移動的檔案路徑 + 目的路徑,如下面這個命令就是把我們之前在/home目錄下創建的txt檔案移動到/tmp下的test目錄里

  mv /home/test.txt /tmp/test

  注:這個命令有許多獨到之處,暫時先說下這個用處,對日常幫助還挺大,如下所示

  • 除了移動檔案其實還能用來改檔案名,如之前的text.txt檔案我可以用下面這個命令把它改成a.conf檔案,然后還移動回了原來的home目錄下,當然檔案內容是不變的
    mv /tmp/test.txt  /home/a.conf

  7.  cp (cpoy,拷貝)命令,用來拷貝檔案或目錄,用法同mv命令,如下面這個命令就是把剛改名后的a.conf檔案粘貼到了/tmp目錄下

  cp /home/a.conf /tmp

  8. rm(remove,洗掉)命令,用來洗掉檔案或目錄,這是linux里最有殺傷力的命令,用法rm后面跟檔案名,刪目錄的話加個 - r 選項可以把目錄下的檔案也都刪了,加個 - f選項是強制執行的意思,如下面這個命令就可以把我們之前的a.conf檔案刪了

  rm /tmp/a.conf

  注:這里得強調下,rm -rf /* 這個命令相當于rm -rf / 命令,結果都懂的,刪庫跑路,關鍵rm -rf /還會警告提醒,/*的話直接二話不說開始刪東西,總之rm這個命令不常用所以灰色標記,慎用

  9.  cat 命令,用來查看檔案內容,最常用的查看文本內容的命令,用法如下cat + 要查看的檔案路徑

  cat /tmp/test.txt

  如下圖就是查看的結果,當然查看檔案內容的命令還有more、less(more、less一頁一頁的顯示,檔案內容多的可以用這兩個命令,配合pageup,和pagedn這兩個功能鍵實作翻頁)等很多,不一一介紹了,使用方法跟cat類似,可以自己嘗試

  10. ls (list,列舉)命令,用來顯示目錄下的內容,也就是看檔案夾下有哪些檔案,用法是ls 后面跟要查看的目錄的路徑,如下面這個命令就是列出/tmp目錄下的內容,-a 選項列出所有檔案(包括隱藏檔案),-l 選項列出檔案的具體屬性

  ls -al /tmp

  11. ln(link,鏈接)命令,創建鏈接檔案,鏈接還分硬鏈接和軟鏈接,一般我們軟鏈接用的比較多,這個內容現在還不好講,就先暫時可以把它當作是創建Windows下的快捷方式來用,用法ln -s + 源檔案 + 鏈接檔案名,-s 選項就是創建軟鏈接的意思,這個命令就是以后訪問鏈接檔案就能訪問源檔案,所以還是挺常用的我不得不提下,現在知道怎么用就行,如下面這個命令就是創建一個叫test.lnk的鏈接檔案指向test.txt檔案,你可以cat /tmp/test.lnk查看下里面的內容,肯定是跟test.txt一樣的

  ln -s /tmp/test.txt /tmp/test.lnk

  12. chmod(change mode)命令,用來更改檔案的屬性(主要是改用戶user、用戶組group、訪客other的權限),用法有下面兩種

  • 用法一:根據三種不同型別的用戶,分別用u=???,g=???,o=???設定不同用戶的權限,?由rwx三個個引數替換,如下面這個命令
    chmod u=rwx,g=rx,o=r test.txt

    執行完后的結果如下圖所示,可用ls -l text.txt 命令查看test.txt檔案屬性,檢驗下 結果是rwxr-xr-- 沒問題

 

  •  用法二:把rwx對應421之和,舉個例子7就對應4+2+1即rwx,6對應4+2即rw,這就可以把上面u=???,g=???,o=???用三個數字就能表示,如上面這個權限設定u=rwx,g=rx,o=r現在就可以寫成下面這個命令
    chmod 754 test.txt

    第一位7對應user用戶,7=4+2+1意味著user有讀寫執行的權限,后面5和4就對應group和other用戶的權限,我比較傾向后面這種方法

  但是這個命令有什么用呢,用處很多,有些程式或腳本是你寫的,那給其他用戶看你的腳本或程式沒什么問題,但要是給他們寫的權限,那萬一他不小心改了,然后檔案執行起來就出錯了那就gg咯,還有可能你寫腳本遇到了問題,你想找人幫助,但是檔案是你創建的,默認別人沒有寫的權限那么就可以臨時改個寫的權限,還有許多諸如類似的情況所以特別重要這個chmod命令,當然還有chown(change owner)命令,chgrp(change group)命令改變檔案所屬用戶和組的命令我覺得暫時不會太用到,這兩個可能放到用戶和組里講比較合適,對于用戶和組現在就先提下,不做深入

總結下:

  先是切換路徑(cd和pwd),再是創建一個檔案或目錄(touch和mkdir),再是編輯檔案的內容(vi和vim),再是編輯目錄的內容有(cp和mv),再是查看檔案或目錄的內容(cat和ls),再是洗掉一個檔案或目錄(rm)對了,還有rmdir(rmdir)命令也能洗掉一個目錄但是是空目錄,所以沒有用它的必要,因為rm都能做到它卻不行(我是這么認為的,簡單用下就好,用法跟rm一樣),最后就是特殊的鏈接檔案的創建(ln)還有(chmod)修改檔案權限,總共13個命令,有這些命令,檔案的基操應該沒什么大問題了

  忘了先提了,一個大前提,要對一個檔案的屬性得了如指掌,這是個大知識點,對以后檔案上的操作很有幫助,我要是檔案屬性沒講好的地方還望各位指出,有問題我會及時更正

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

標籤:Linux

上一篇:Windows下subsystem子系統(wsl)的默認安裝位置

下一篇:centos7使用rt_tables巧妙配置多網卡多路由實作策略路由

標籤雲
其他(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)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more