天天看點

第一章_常用指令第一章:Linux指令介紹及Linux常用指令常用按鍵幫助文檔指令常用的系統工作指令系統狀态監測工作目錄切換指令檔案目錄管理指令打包與壓縮指令

文章目錄

  • 第一章:Linux指令介紹及Linux常用指令
  • 常用按鍵
      • Tab鍵
      • Ctrl+c 1
      • Ctrl+d
      • Shift+Page Up/Page Down
  • 幫助文檔指令
      • help參數
      • man指令
        • man page詳解
        • 基礎資訊
        • NAME
        • SYNOPSIS
        • DESCRIPTION
        • COMMANDS
        • FILES
        • SEE ALSO
        • EXAMPLE
        • 如何檢視man page
          • 浏覽步驟
          • 特殊操作
      • info指令
        • info指令的用法
        • page head
        • page tail
        • info page的用法
  • 常用的系統工作指令
      • echo指令
      • date指令
      • reboot指令
      • poweroff指令
      • wget指令
      • ps指令
      • top指令
      • pidof指令
      • kill指令
      • killall指令
  • 系統狀态監測
      • ifconfig指令
      • uname指令
      • uptime指令
      • free指令
      • who指令
      • last指令
      • history指令
      • sosreport指令
  • 工作目錄切換指令
      • pwd指令
      • cd指令
      • ls指令
    • 檔案編輯指令
      • cat指令
      • more指令
      • head指令
      • tail指令
      • tr指令
      • wc指令
      • stat指令
      • cut指令
      • diff指令
  • 檔案目錄管理指令
      • touch指令
      • mkdir指令
      • cp指令
      • mv指令
      • rm指令
      • dd指令
      • file指令
  • 打包與壓縮指令
      • tar指令
      • grep指令
      • find指令

第一章:Linux指令介紹及Linux常用指令

在開始系統學習Linux之前,必須要先了解Linux的指令以及一些具體的常用指令,否則入門都無從說起.

常見的執行Linux指令的格式如下

指令名稱 [指令參數] [指令對象]
           

其中: 指令參數是要執行的功能選擇,指令對象是指要處理的檔案,目錄,使用者等資源

指令參數可以輸入全稱,也可以輸出縮寫,例如輸入: --help或-h

[]表示可以選擇,真正輸入時候不加括号

當有多個需要指令對象的指令參數時,要一一對應并且指令對象緊跟在指令參數後面,例如

wget -t 3 -P LinuxProbe http://www.linuxprobe.com/docs/Linuxprobe.pdf
           

表示最大嘗試下載下傳3次,将http://www.linuxprobe.com/docs/Linuxprobe.pdf中的内容下載下傳到指定的LinuxProbe檔案夾中

本章包含以下内容:

  • 常用的按鍵
  • 幫助文檔指令
  • 常用系統工作指令
  • 系統狀态檢測指令
  • 工作目錄切換指令
  • 文本檔案編輯指令
  • 檔案目錄管理指令
  • 打包壓縮與搜尋指令

常用按鍵

Tab鍵

[tab] 補全指令或檔案(目前檔案或指令隻有一個時)

[tab][tab] 羅列所有可能的檔案或指令(目前檔案或指令不唯一時)

例如:

假設有三個指令:roscore, rosrun, rostry

輸入rosc之後按[tab]即可補全為roscore

輸入ros後按[Tab]沒有反應,按[Tab][Tab]顯示三個可能的指令

Ctrl+c 1

[Ctrl]+[c] 終止目前運作的程式

Ctrl+d

[Ctrl]+[d] 關閉目前終端

Shift+Page Up/Page Down

[Shift]+[Page Up] 向上翻頁

[Shift]+[Page Down] 向下翻頁

幫助文檔指令

随着Linux逐漸的發展壯大,Linux中的各種指令肯定是越來越多的,而每個指令都可能會有指令參數還有指令對象,是以将所有指令及對應的參數和對象記下來是不可能的.

對此Linux中有幫助文檔指令,幫助我們調出某一指令的說明文檔,在說明文檔中我們就可以學習了解指令的具體使用規則

Linux的調出說明文檔的方法具體有三種:

  • help參數
  • info指令
  • man指令

help參數

Linux中的指令通常是以腳本的形式寫成的,是以一般都會配備相應的說明文檔.

是以我們對某一個指令使用help參數,就可以調出相應的說明文檔

文法:

指令名稱 -h/--help
           

例如:

查詢date指令的用法

date --help
           

不過需要注意的是:

使用help參數查詢用法的時候,指令是知道拼寫的

man指令

man是manul(說明手冊)的縮寫,man指令查到的說明文檔相比于help參數查詢到的更加詳細,甚至會包括該指令的作者,乃至于與該指令相關的其他指令.

文法:

man 指令名稱
           

執行個體:

查詢date指令的詳細說明

man date
           

輸入代碼之後,就會彈出date這個代碼的相關内容的界面(列印在螢幕上),叫做man page,十分的詳盡.

整個man page分為好幾個部分,會有點難看懂,下面解釋man page的每個部分和相關代号表示的含義以及如何操作.

man page詳解

date的man page頁面如下:

[ wangsh ]~ $ man date 
DATE(1)                      User Commands                         DATE(1) 
# 請注意上面這個括号内的數字 
NAME  <==這個指令的完整全名,如下所示為date且說明簡單用途為配置與顯示日期/時間 
       date - print or set the system date and time 
 
SYNOPSIS  <==這個指令的基本文法如下所示 
       date [OPTION]... [+FORMAT] 
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 
 
DESCRIPTION  <==詳細說明剛剛文法談到的選項與參數的用法 
       Display  the  current  time  in  the given FORMAT, or set the system 
       date. 
 
       -d, --date=STRING  <==左邊-d為短選項名稱,右邊--date為完整選項名稱 
              display time described by STRING, not 'now' 
 
       -f, --file=DATEFILE 
              like --date once for each line of DATEFILE 
 
       -r, --reference=FILE 
              display the last modification time of FILE 
....(中間省略).... 
       # 找到了!底下就是格式化輸出的詳細資料! 
       FORMAT controls the output.  The only valid option  for  the  second 
       form  specifies  Coordinated  Universal Time.  Interpreted sequences 
       are: 
 
       %%     a literal % 
 
       %a     locale's abbreviated weekday name (e.g., Sun) 
 
       %A     locale's full weekday name (e.g., Sunday) 
....(中間省略).... 
ENVIRONMENT  <==與這個指令相關的環境參數有如下的說明 
       TZ     Specifies the timezone, unless  overridden  by  command  line 
              parameters.   If  neither  is  specified,  the  setting  from 
              /etc/localtime is used. 
 
AUTHOR  <==這個指令的作者啦! 
       Written by David MacKenzie. 
 
REPORTING BUGS  <==有問題請留言給底下的email的意思! 
       Report bugs to <[email protected]>. 
 
COPYRIGHT  <==受到著作權法的保護!用的就是 GPL 了! 
       Copyright ? 2006 Free Software Foundation, Inc. 
       This is free software.  You may redistribute copies of it under  the 
       terms      of      the      GNU      General      Public     License 
       <http://www.gnu.org/licenses/gpl.html>.  There is  NO  WARRANTY,  to 
       the extent permitted by law. 
 
SEE ALSO  <==這個重要,你還可以從哪裡查到與date相關的說明檔案之意 
       The  full  documentation for date is maintained as a Texinfo manual. 
       If the info and date programs are properly installed at  your  site, 
       the command 
 
              info date 
 
       should give you access to the complete manual. 
 
date 5.97                          Nov 2019                            DATE(1) 
           

下面将分塊介紹整個man page的每一個部分是什麼意思

基礎資訊

DATE(1)                      User Commands                         DATE(1) 
           
  • date是指令的全稱
  • 數字(如這裡的(1))表明查詢内容的屬性

具體數字代表的含義見下表:

數字 含義
1 使用者在shell環境中可以操作的指令或可執行檔案
2 系統核心可調用的函數與工具
3 一些常用的函數(function)與函數庫(library),大部分為c語言庫(libc)
4 裝置檔案的說明,通常是在/dev下的檔案
5 配置檔案或是某些檔案的格式
6 遊戲(games)
7 慣例與協定等,例如linux檔案系統,網絡協定,ASCII代碼等說明
8 系統管理者可用的管理指令
9 跟核心有關的檔案

注意:

  • 加粗的比較重要
  • 其實man也是一個指令,是以他也具有自己對應的man page ,查詢時候直接輸入man man即可

NAME

NAME  <==這個指令的完整全名,如下所示為date且說明簡單用途為配置與顯示日期/時間 
       date - print or set the system date and time 
       
           
  • Name這裡表示指令的完整全名,并且給出相應的簡短說明

SYNOPSIS

SYNOPSIS  <==這個指令的基本文法如下所示 
       date [OPTION]... [+FORMAT] 
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 
       
           
  • SYNOPSIS這裡表示指令的文法(syntax)的簡介

DESCRIPTION

DESCRIPTION  <==詳細說明剛剛文法談到的選項與參數的用法 
       Display  the  current  time  in  the given FORMAT, or set the system 
       date. 
 
       -d, --date=STRING  <==左邊-d為短選項名稱,右邊--date為完整選項名稱 
              display time described by STRING, not 'now' 
 
       -f, --file=DATEFILE 
              like --date once for each line of DATEFILE 
 
       -r, --reference=FILE 
              display the last modification time of FILE 
....(中間省略).... 
       # 找到了!底下就是格式化輸出的詳細資料! 
       FORMAT controls the output.  The only valid option  for  the  second 
       form  specifies  Coordinated  Universal Time.  Interpreted sequences 
       are: 
 
       %%     a literal % 
 
       %a     locale's abbreviated weekday name (e.g., Sun) 
 
       %A     locale's full weekday name (e.g., Sunday) 
....(中間省略).... 

           
  • 這個部分首先給出了這個指令的詳細介紹
  • 然後給出了針對前面文法中給出的選項與參數進行說明

COMMANDS

這個部分給出了當程式(軟體)正在之行時候,可以在這個程式(軟體)中執行的指令

注:

  • date指令的man page并沒有這一部分

FILES

這個程式或者資料所使用的或參考或連結到的檔案

SEE ALSO

SEE ALSO  <==這個重要,你還可以從哪裡查到與date相關的說明檔案之意 
       The  full  documentation for date is maintained as a Texinfo manual. 
       If the info and date programs are properly installed at  your  site, 
       the command 
 
              info date 
 
       should give you access to the complete manual. 

           
  • 這裡給出和這個指令或資料相關的其他說明

EXAMPLE

example裡面會給出指令的一些執行個體,這裡沒有給出

如何檢視man page

浏覽步驟
  1. 先NAME
  2. 再DESCRIPTION
  3. 然後是OPTION
  4. 初學者多看看EXAMPLE
  5. 有能力了看看FILES
特殊操作
按鍵 說明
Space 向下翻一頁
Page Down 向下翻一頁
Page Up 向上翻一頁
Home 回到第一頁
End 跳轉到最後一頁
/String 從目前頁面向下查找關鍵詞
?String 從目前頁面想上尋找關鍵詞
n,N 在查找關鍵詞時候,n是到下一個關鍵詞出,N是到上一個關鍵詞處
q 退出目前指令或者檔案的man page

info指令

在所有的基于Unix的系統中,都有man指令這樣的查詢方式,但是在Linux系統中,又提供了另外一種查詢方式,就是info指令.

通過man指令列印出來的内容稱為man page,那麼通過info指令列印出來的稱為info page.

info page其實在内容上與man page 差不多.但是和man page相比info page結構更加清晰,内容能夠更好地被展現出來.

info page是将所有的内容拆成一個一個的段落,每個段落都有自己獨立的page,不同的page之間用類似于網頁的跳轉的方式進行連接配接

不過需要注意的是支援info指令的說明檔案首先必須以info格式寫成才能夠使用info的特殊功能.

其次支援info指令的檔案必須放在/user/share/info/這個目錄下面.

下面将介紹info 的用法

info指令的用法

和man類似

info 查詢的指令
           

下面介紹info page中的具體内容

page head

首先info page的頭部包含了許多重要資訊

[ wangsh ]~$ info info
File:info.info,  Node: Top,  Next:Getting Started,  Up: (dir)
Info:An instruction
******************
略
           
  • File:表明目前page的位置
  • Node:表示目前界面所在整個info檔案中的位置,這裡是Top節點,也就是最前面的節點
  • Next:表示下一個節點的名稱,這裡是Getting Started
  • Up:回到上一層的節點總覽畫面,就是檢視與目前節點同級的所有節點
  • Prv:前一個節點,但是由于這裡是Top節點,沒有上一個節點,是以沒有顯示

page tail

頁面尾的地方通常表示的是目前節點的下一級節點(沒錯,整個info檔案類似于樹)

Menu:
Getting Started:
Advanced:
Expert Info:
Index:
           

info page的用法

按鍵什麼與man page一模一樣,但是不知道怎麼用info的時候,可以按下h(help)來檢視按鍵的作用

後面的指令訓示簡單的提一下,更多的使用幫助指令去查閱

常用的系統工作指令

對于新手來說,在使用linux系統的時候,如果遇到了問題,在網上查到了解決辦法,可是卻完全看不懂,這個時候就很頭疼了.

其實這些解決問題的指令往往都是系統工作指令,下面就将講解

echo指令

echo指令用于在終端輸出字元串或變量提取後的值.

文法:

echo [字元串]
或
echo [$變量]
           

例如:

輸出字元串Jack Wang

echo Jack Wang
           

提取變量SHELL的值輸出

echo $SHELL
           

date指令

date指令用于顯示及設定系統時間和日期

文法:

date [指令參數] [指定格式]
           

當指定格式(指令對象)以==加号+==開頭時,将按照指定的格式輸出目前時間

一些常用參數如下:

參數 作用
%t 制表符[Tab鍵]
%H 24小時( 00 ~ 23 )
%I 12小時( 00 ~ 12 )
%M 分鐘( 00 ~ 59 )
%S 秒( 00 ~ 59 )
%j 目前年份的第幾日

例如:

按照預設格式顯示目前時間

date
           

按照"年-月-日 小時:分鐘:秒"的格式檢視目前系統時間

date "+%Y-%m-%d%t%H:%M:%S""
           

檢視目前日期是目前年份的第幾日

date "+%j"
           

設定系統日期

date -s "20200416 8:30:00"
           
  • 将目前時間設定為2020年4月16日8點30分

reboot指令

reboot指令用于重新開機計算機

由于涉及到硬體資源管理,是以需要root使用者來使用

poweroff指令

poweroff指令用于關閉計算機

和reboot一樣,也涉及到了硬體資源管理,需要root權限

wget指令

wget指令用于在終端中下載下傳網絡檔案

文法:

wget [參數] [下載下傳位址]
           

常用的參數如下:

參數 作用
-b 背景下載下傳模式
-P 下載下傳到指定目錄
-t 最大嘗試次數
-c 斷點續傳
-p 下載下傳頁面所有資源,包括圖檔,視訊等
-r 遞歸下載下傳

例如:

下載下傳http://www.linuxprobe.com/docs/LinuxProbe.pdf這一位址中的Linux教學檔案

wget -P LinuxProbe http:www.linuxprobe.com/docs/LinuxProbe.pdf
>>>将會把下載下傳下來的檔案存放到命名為LinuxProbe的檔案夾下(沒有的話會新建立)
           

下載下傳http://www.linuxprobe.com的所有資料

wget -r -p http://www.linuxprobe.com
>>>将會把所有内容儲存到目前工作目錄下一個名為www.linuxprobe.com的目錄中
           

ps指令

ps指令用于檢視系統中的程序狀态

文法:

ps [參數]
           

一般會配合管道符技術(在後面講解)來查找特定的程序的pid

常用的參數如下:

參數 作用
-a 顯示所有程序(包括其他使用者的程序)
-u 使用者以及其他詳細資訊
-x 顯示沒有控制終端的程序

Linux中時刻都運作着許多程序,合理的管理他們能夠優化系統性能.Linux系統中有5種常見的程序狀态,分别為: 運作,中斷,不可中斷,僵死,停止

  • R :Running,運作中,程序正在運作或者在運作隊列中等待
  • S :Stop,中斷,程序處于休眠中,當某個條件形成或者接收到信号時,脫離該狀态
  • D :不可中斷,程序不響應系統異步信号,即使使用kill指令也不能将其中斷
  • Z :Zombie,僵死,程序已經終止,但是程序描述符依然存在,知道父程序調用wait4()系統函數後将程序釋放
  • T :程序收到停止信号後停止運作

例如:

ps -au
           

得到結果如下

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       3979  0.1  2.3 203224 43204 tty1     Ss+  06:53   0:05 /usr/bin/Xorg 
root       4715  0.0  0.1 116256  3044 pts/0    Ss   06:54   0:00 /bin/bash
root      32917  0.0  0.0 123356  1376 pts/0    R+   07:54   0:00 ps -au
           

其中每欄的含義如下

名稱 含義
USER 程序所有者
PID 程序ID号
%CPU CPU占用率
%MEM 記憶體占用率
VSZ 虛拟記憶體使用量(機關是KB)
RSS 占用的固定記憶體量(機關是KB)
TTY 所在終端
STAT 程序狀态
START 被啟動的時間
TIME 實際使用CPU時間
COMMAND 指令名稱與參數

top指令

top指令用于動态地見識程序活動與系統負載等資訊

文法:

top
           

使用top指令後,将會看到下面的界面

top - 08:10:18 up  1:26,  2 users,  load average: 0.40, 0.15, 0.08
Tasks: 477 total,   3 running, 474 sleeping,   0 stopped,   0 zombie
%Cpu(s): 33.9 us,  1.3 sy,  0.0 ni, 64.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   1870760 total,  1327452 used,   543308 free,     1080 buffers
KiB Swap:  2097148 total,        0 used,  2097148 free.   482864 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND     
  4359 root      20   0 1676796 327100  38576 S 32.6 17.5   2:16.75 gnome-shell 
  3979 root      20   0  203224  43204   7916 S  2.3  2.3   0:08.50 Xorg        
  4706 root      20   0  771500  18860  12408 S  0.7  1.0   0:01.06 gnome-term+ 
     1 root      20   0   52840   6724   3756 S  0.0  0.4   0:01.51 systemd     
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd    
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.01 ksoftirqd/0 
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:+ 
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0 
           

前五行指令如下:

  1. 系統時間,運作時間,登入終端數,1分鐘系統負載平均數,5分鐘系統平均負載,15分鐘系統平均負載
  2. 程序總數,運作中程序數,睡眠中程序數,停止的程序數,僵死的程序數
  3. 使用者占用資源百分比,系統核心占用資源百分比,改變過優先級的程序資源百分比,空閑的資源百分比
  4. 實體記憶體總量,記憶體使用量,記憶體空限量,作為核心緩存的記憶體量
  5. 虛拟記憶體總量,虛拟記憶體使用量,虛拟記憶體空限量,已被提前加載的記憶體量

pidof指令

pidof指令用于查詢某個指定服務的PID值

文法:

pidof [參數] [服務名稱]
           

例如:

查詢sshd服務程式的PID

pidof sshd
           

kill指令

kill指令用于終止某個指定PID的服務程序

通常是用pidof查出服務的pid号碼,然後用kill指令結束程序

文法:

kill [參數] [程序PID]
           

killall指令

killall指令用于終止某個指定名稱的服務所對應的全部程序

往往複雜軟體的服務程式會有多個程序協同為使用者提供服務,使用killall能結束所有的程序

文法:

killall [參數] [程序名稱]
           

系統狀态監測

Linux系統作為伺服器,我們需要具備快速檢視Linux系統運作狀态的能力

下面将講解與網卡網絡,系統核心,系統負載,記憶體使用情況,目前啟動終端數量,曆史登入記錄,指令執行記錄及救援診斷等相關指令的使用方法

ifconfig指令

ifconfig指令用于擷取網卡配置與網絡狀态等資訊

文法:

ifconfig [網絡裝置] [參數]
           

需要注意的是,Ubuntu中ifconfig指令并非安裝時自帶的,需要下載下傳net-tools元件

單純使用ifconfig指令檢視本機目前的網卡配置與網絡狀态等資訊,其實主要看的就是網卡名稱,inet參數後面的IP位址,ether參數後面的網卡實體位址(又稱為MAC位址),以及RX,TX的接收資料包與發送資料包的個數和累計流量

eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.218.128  netmask 255.255.255.0  broadcast 192.168.218.255
        inet6 fe80::20c:29ff:fef3:b4e6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:f3:b4:e6  txqueuelen 1000  (Ethernet)
        RX packets 445  bytes 38554 (37.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1418  bytes 103785 (101.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 525  bytes 52048 (50.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 525  bytes 52048 (50.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
           

uname指令

uname指令用于檢視系統核心與系統版本等資訊

文法:

uname [參數]
           

如果要檢視系統核心與系統版本等資訊,文法為

uname -a
           

uptime指令

uptime指令用于檢視系統的負載資訊

顯示目前系統時間,系統已運作時間,啟動終端數量以及平均負載值(1分鐘,5分鐘,15分鐘)等資訊

文法:

uptime
           

得到的結果如下

08:50:50 up  2:07,  2 users,  load average: 0.08, 0.07, 0.06
           

free指令

free指令用于顯示目前系統中記憶體的使用量資訊

文法:

free [選項]
           

通常為了更人性化的檢視會加上==-h==參數(自動轉換機關)

檢視目前系統中的記憶體使用量:

free -h
           

得到結果如下:

total       used       free     shared    buffers     cached
Mem:          1.8G       1.3G       516M        10M       1.1M       471M
-/+ buffers/cache:       837M       989M
Swap:         2.0G         0B       2.0G
           

其中:

  • total:記憶體總量
  • used:已用量
  • free:可用量
  • shared:程序共享的記憶體量
  • buffers:磁盤緩存的記憶體量
  • cached:緩存的記憶體量

who指令

who指令用于檢視目前登入主機的使用者終端資訊

文法:

who [參數]
           

直接使用who得到的結果如下

root     :0           2020-06-28 06:54 (:0)
root     pts/0        2020-06-28 06:54 (:0)=
           

其中:

  • 第一列為登入的使用者名
  • 第二列為登入的終端裝置
  • 第三列為登入到系統的時間

last指令

last指令用于檢視所有系統的登入記錄

文法:

last 參數
           

得到的結果和who指令的結果類似

history指令

history指令用于顯示曆史執行過的前1000條指令

如果覺得不夠,可以在/etc/profile檔案中修改HISTSIZE變量值

文法:

history [參數]
           

可以使用==-c==參數來清除曆史記錄

sosreport指令

sosreport指令用于手機系統配置及架構資訊并輸出診斷文檔

文法:

sosreport
           

和ifconfig一樣sosreport指令Ubuntu中不是自帶的,需要下載下傳sosreport`

工作目錄切換指令

工作目錄是指使用者在目前系統中所處的位置

由于工作目錄牽涉系統儲存結構相關的隻是,是以在後面詳細講解.這裡隻是介紹下使用

pwd指令

pwd指令用于顯示使用者目前所處的工作目錄

文法:

pwd
           

cd指令

cd指令用于切換工作指令

文法:

cd 目錄名稱
           

常用的用法:

cd ~			//傳回目前使用者的家目錄
cd..			//進入上級目錄
cd ~username	//進入其他使用者的家目錄
cd -			//傳回上一次所處的目錄
           

ls指令

ls指令用于輸出目前目錄下的檔案資訊

文法:

ls 選項 檔案
           

檔案編輯指令

Linux系統中==“萬物皆檔案”==,是以我們必不可少的需要對文本進行編輯

下面就将講解檔案編輯指令

cat指令

cat指令用于檢視純文字檔案(内容較少時候)

文法:

cat [選項] [檔案]
           

使用==-n==選項顯示行号

more指令

more指令用于檢視純文字檔案(内容較多的)

使用more可以檢視目前閱讀百分比和空格/回車向下翻頁

文法:

more [選項] [檔案]
           

head指令

head指令由于檢視純文字文檔的前n行

具體使用就是使用==-n==參數指定看的行數

文法

head [選項] [檔案]
           

tail指令

tail指令用于檢視純文字文檔的後n行

同樣也是加上==-n==參數指定看的行數

可以使用-f參數來持續重新整理檔案

文法:

tail [選項] [檔案]
           

tr指令

tr指令由于替換文本中的字元

文法:

tr [原始字元] [目的字元]
           

一般和管道符結合起來進行快速修改

wc指令

wc用于統計指定文本的行數,字數,位元組數

文法:

wc 參數 文本
           

得到的結果分别是查詢檔案的行數,字數和位元組數

stat指令

stat指令用于檢視檔案的具體存儲資訊和時間等資訊

文法:

stat 檔案名稱
           

使用stat檢視當下檔案中的profile檔案

[[email protected] Desktop]# stat profile
  File: ‘profile’
  Size: 1750      	Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 102579774   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-06-28 09:30:16.847868217 -0400
Modify: 2020-06-28 09:30:08.916869121 -0400
Change: 2020-06-28 09:30:08.916869121 -0400
 Birth: -
           

可以看到profile檔案具有三種狀态: Access,Modify,Change

這三種狀态在後面的touch指令講解中将會講到

cut指令

cut指令用于按列提取文本字元

文法:

cut 參數 文本
           

diff指令

diff指令多用于比較多個文本檔案的差異

文法:

diff [參數] [檔案]
           

如果要比較兩個文本是否一樣,可以使用–brief參數

如果兩個檔案内容一樣,則不會産生任何資訊

如果檔案不一樣,那麼就用==-c==參數來描述檔案内容的具體不同

多出的内容會在這一行前面有加号,不同的内容會在這一行前面有歎号

檔案目錄管理指令

前面的講解更像是在打地基.在日常的linux運維中好需要掌握對檔案的建立,修改,複制,剪切,更名與删除等操作

下面就将講解linux中的檔案目錄管理指令

touch指令

touch指令用于建立空白檔案或者設定檔案時間

文法:

touch [選項] [檔案]
           

使用touch建立空白檔案很簡單,不加選項直接後面加檔案名即可,是以問題關鍵在于使用touch參數修改檔案時間

touch的參數如下

參數 作用
-a 僅修改讀取時間(atime)
-m 僅修改修改時間(mtime)
-d 同時修改atime和mtime

是以我們可以先用ls檢視一個檔案修改時間然後修改這個檔案,最後通過touch再改回修改之前的時間

mkdir指令

mkdir指令用于建立空白目錄

文法:

mkdir 選項 目錄
           

可以使用-p選項來遞歸建立具有重疊關系的目錄

cp指令

cp指令用于複制檔案或目錄

文法:

cp 選項 源檔案 目标檔案
           

mv指令

mv指令用于剪切檔案或者将檔案重命名

文法:

mv 選項 源檔案 目标路徑/目标檔案名
           

rm指令

rm指令用于删除檔案或目錄

文法:

rm 選項 檔案
           

dd指令

dd指令用于按照指定大小和個數的資料塊來複制檔案或者轉移檔案

文法:

dd 參數
           

file指令

file指令用于檢視檔案的類型

文法:

file 檔案名
           

需要注意的是,linux中不能通過字尾名來檢視檔案類型,是以需要用file來檢視

打包與壓縮指令

在網絡上,人們傾向于傳輸壓縮檔案,因為體積更小,效率更高

下面就将講解linux中的打包與壓縮指令

但是由于每個都很複雜,是以還是需要看檢視說明文檔

tar指令

tar指令用于對檔案進行打包壓縮或解壓

文法:

tar 選項 檔案
           

tar指令常用參數如下:

參數 作用
-c 建立壓縮檔案
-x 解開壓縮檔案
-t 檢視壓縮包内有哪些檔案
-z 用Gzip壓縮或者解壓
-j 用bzip壓縮或解壓
-v 顯示壓縮或者解壓的過程
-f 目标檔案名
-p 保留原始的權限和屬性
-P 使用絕對路徑來壓縮
-C 指定解壓到的目錄

一般壓縮時候用==-czvf==,解壓縮用==-xzvf==

grep指令

grep指令用于在文本中執行關鍵詞搜尋,并顯示比對結果

文法:

grep 選項 檔案
           

常用選項如下:

參數 作用
-b 将可執行檔案(binary)當做文本檔案(text)搜尋
-c 僅顯示找到的行數
-i 忽略大小寫
-n 顯示行号
-v 反向選擇,僅列出沒有關鍵詞的行

例如,在/etc/passwd這個文本檔案中比對/sbin/nologin

find指令

find指令用于按照指定條件來查找檔案

格式:

find [查找路徑] [尋找條件] [操作]
           

其中找條件是使用參數實作的

find指令常用的參數和作用如下:

參數 作用
-name 比對名稱
-perm 比對權限
-user 比對所有者
-group 比對所有組
-mtime -n +n 比對修改内容的時間(-n指n天以内,+n指n天以前)
-atime -n +n 比對通路檔案的時間(-n指n天以内,+n指n天以前)
-ctime -n +n 比對修改檔案權限的時間(-n指n天以内,+n指天以前)
-nouser 比對無所有者的檔案
-nogroup 比對無所有組的檔案
-newer f1 !f2 比對比檔案f1新但比檔案f2舊的檔案
–type b/d/c/p/l/f 比對檔案類型,後面的字母參數分别表示塊裝置,目錄,字元裝置,管道,連結檔案,文本檔案
-size 比對檔案的大小(+50KB表示大于50KB的檔案,-50KB表示小于50KB的檔案)
-preune 忽略某個目錄
-exec … {}; 可用于後面進一步處理搜尋結果的指令

例如

我們想要找出/etc檔案夾下所有以host開頭的檔案并列印出來

[[email protected] Desktop]# find /etc -name "host*" -print
           

在整個系統中搜尋權限包含SUID權限的所有檔案 隻需要使用-perm參數比對-4000即可

繼續閱讀