Linux——基礎命令用法(上)

王智剛 發表於 2021-11-27
Linux

一、Linux基礎命令

1、Linux命令列的格式

命令列的格式為:使用者名稱+主機名+當前工作目錄

輸入內容的命令格式為:命令 [-短選項/--長選項] [引數]

[[email protected]  ~]# 命令 [-短選項/--長選項] [引數]

其中命令就是“做什麼”,選項就是“怎麼做”,引數就是“對誰做”

例如:更改主機名

[[email protected] ~]# hostnamectl set-hostname 主機名
[[email protected] ~]# bash	#環境變數過載

2、常用基礎命令

1、pwd命令——作用:顯示當前所在位置的完整路徑

[[email protected] yum.repos.d]# pwd
/etc/yum.repos.d

2、cd命令——作用:進入某個資料夾(某條路徑)

藍色字元代表資料夾
橄欖綠色的字元代表連結檔案
黑色字元代表文字檔案
.代表當前路徑
..代表上一層路徑
~代表當前使用者的家目錄,cd後面可省略

[[email protected] etc]# cd~
[[email protected] ~]# cd /
[[email protected] /]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]#

3、ls命令——作用:顯示當前資料夾的所有內容

-l -> 以長檔案的形式顯示(ls -l 可縮寫成 ll 命令)
-a -> 顯示隱藏的檔案(以.開頭的檔案)
-la -> 以長檔案的形式顯示隱藏的檔案(ls -al 可縮寫成 ll -a)
-r -> 遞迴顯示檔案內容

[[email protected] /]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[[email protected] /]# ls -a
.   bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
..  boot  etc  lib   media  opt  root  sbin  sys  usr

4、man命令——作用:檢視某個命令的使用幫助文件

[[email protected] ~]# man  ls 或 ls  --help

5、su命令——作用:切換使用者

[[email protected] ~]#		#代表管理員root,有且僅有1個
[[email protected] ~]# su – luna	不需要輸入普通使用者密碼
[[email protected] ~]$		$代表普通使用者,可以有多個
[[email protected] ~]$ su – root	要輸入root使用者密碼

6、passwd命令——作用:設定或更改使用者的密碼

注意:只有root使用者才能使用該命令更改密碼

[[email protected] ~]# passwd luna

7、date命令——作用:顯示或者設定當前的系統日期和時間

date 單獨使用 -> 詳細日期和時間
date +%T -> 顯示時間
date +%D -> 顯示日期
date +%X%x -> 顯示日期和時間

[[email protected] /]# date +%d%m%Y
04032021
[[email protected] /]# date +%d%m%y
040321

8、file命令——作用:檢視檔案型別

注意:linux中字尾名是可以自定義的,所以不要以檔案的字尾名來判斷檔案型別

[[email protected] /]# file /etc/passwd
/etc/passwd: ASCII text

10、head命令(tail命令)——作用:顯示檔案的前(後)幾行,預設顯示10行,可帶引數-n指定顯示行數

[[email protected] /]# head /etc/passwd
...
[[email protected] /]# head -n 2 /etc/passwd
...
[[email protected] /]# tail -n 10 /etc/passwd | head -n  6	#檢視/etc/passwd 檔案倒數第10 行至第5行
...

11、cat(tac)命令——作用:將整個文件內容從頭至尾(從尾到頭)顯示出來

[[email protected] /]# cat /etc/crontab
...
[[email protected] /]# tac /etc/crontab
...

12、wc命令——作用:統計檔案中的行數、字數和字元數,分別對應-l、-w、-c

[[email protected] /]# wc /etc/shadow
42  42 1226 /etc/shadow
[[email protected] /]# wc -l /etc/shadow
42 /etc/shadow
[[email protected] /]# wc -lwc /etc/shadow
42  42 1226 /etc/shadow

13、history命令——作用:顯示之前使用過的命令列表

[[email protected] ~]# history

[[email protected] ~]# !number    #執行歷史命令列表中第number號命令

[[email protected] ~]# !string    #執行歷史命令列表中最近一次與string匹配的命令

[[email protected] ~]# history -c  #刪除歷史命令列表中的所有命令

可通過上下鍵查詢之前使用過的命令

15、init命令——作用:切換系統狀態

[[email protected] ~]# init1  #切換到命令模式,相當於ctrl + alt + F2

[[email protected] ~]# init5  #切換到桌面圖形化模式,相當於ctrl + alt + F1

[[email protected] ~]# init0  #關機,相當於ctrl + alt + Del

二、Linux的檔案系統

Linux系統一切皆檔案!以“/”開頭的路徑都是絕對路徑,不以“/”開頭的路徑都是相對路徑

1、“/”下面的重要目錄

  • /usr -> 存放普通使用者命令(/usr/bin)、供root使用者使用的系統管理命令,(/usr/sbin)、及安裝的軟體等資料。
  • /etc -> 存放系統服務的配置檔案。
  • /dev -> 存放裝置檔案,例如硬碟、cpu、網路卡等資料。
  • /home -> 普通使用者的家目錄(或主目錄),存放普通使用者的配置檔案。
  • /root -> root使用者的家目錄(或主目錄),存放root使用者的配置檔案。
  • /boot -> 存放系統啟動過程所需的檔案,系統核心等。
  • /var -> 存放動態變化的檔案,例如日誌檔案、快取檔案、資料庫等。
  • /tmp -> 存放臨時檔案,10天內未訪問更改的檔案將自動刪除。
  • /run -> 存放上一次系統啟動過的程式檔案。

其中有4個連結檔案:

  • /bin -> /usr/bin -> 存放普通使用者使用的命令。
  • /sbin -> /usr/sbin -> 存放root使用者使用的命令。
  • /lib -> /usr/lib -> 庫檔案
  • /lib64 -> /usr/lib64

2、檔案相關的命令

1、touch命令——作用:建立一個空文字檔案

[[email protected] ~]# touch /opt/abc
[[email protected] ~]# touch abc

2、dd命令——作用:建立一個大容量空檔案

dd if=/dev/zero of=/test.file bs=1M count=100

3、mkdir命令——作用:建立資料夾
mkdir -p 建立多級目錄

[[email protected] ~]# mkdir /aaa
[[email protected] ~]# mkdir -p /aaa/bbb/ccc

4、cp命令——作用:複製檔案
cp -r 複製資料夾(-r遞迴複製,也就是將當前資料夾裡面所有子目錄也複製過去)

注意:當複製的舊檔案與新檔案重名時,舊檔案將覆蓋新檔案。

[[email protected] opt]# cp -r /aaa/ /opt/

5、mv命令——作用:移動檔案,重新命名檔案

[[email protected] ~]# mv /aaa /mnt
[[email protected] ~]# cd /mnt
[[email protected] mnt]# ls
aaa
[[email protected] mnt]# mv aaa bbb
[[email protected] mnt]# ls
bbb

6、rm命令——作用:刪除檔案
rm -r 刪除資料夾
rm -f 強制刪除,不提示刪除確認

[[email protected] /]# rm -f abc
[[email protected] /]#
[[email protected] /]# rm -rf /aaa
[[email protected] /]#

7、echo命令——作用:將命令後面的引數顯示出來
$符號後面跟系統變數,這個變數可以是大寫也可以是小寫。

[[email protected] /]# echo $HOSTNAME
localhost.localdomain
[[email protected] /]# echo date
date
[[email protected] /]# echo `date`
p 8 11:36:21 CST 2020

echo還可以修改文字內容,語法是:echo “XXX” > 、 >> filename

3、萬用字元的使用

*號簡單模式匹配 -> 由0個或更多字元組成的字串
?號簡單模式匹配 -> 任何1個字元
{ }大括號 -> 批量執行命令,可以連續使用或者巢狀使用

[[email protected] /]# echo file{a{1,2},b,c}.log
filea1.log  filea2.log  fileb.log  filec.log
[[email protected] /]# echo file{a,b,c}{1..3}.log
filea1.log filea2.log filea3.log fileb1.log fileb2.log fileb3.log filec1.log filec2.log filec3.log

``反引號命令替換

[[email protected] /]# echo today is `date +%X%x`
today is 12:59:11 PM11/13/2021

\反斜槓轉意字元

[[email protected] /]# echo the hostname is \&HOSTNAME
the hostname is &HOSTNAME

由單引號括起來的字元都作為普通字元出現
由雙引號括起來的字元,除$、反引號(`)和反斜線(\)仍保留其特殊功能外,其餘字元均作為普通字元對待。

4、重定向操作符

一個>是重定向符,作用:覆蓋寫入,檔案裡的原有資料不保留

兩個>>是追加重定向符,作用:追加寫入,不覆蓋已有內容,直接寫在檔案末尾,原資料保留

[[email protected] /]# touch err.txt
[[email protected] /]# systemctl restart unbound
Failed to restart unbound.service: Unit not found.
[[email protected] /]# systemctl restart unbound 2>err.txt
[[email protected] /]# cat err.txt
Failed to restart unbound.service: Unit not found.

在linux中,一個執行的程式(或稱為程式)需要通過shell從鍵盤讀取輸入並將輸出寫入到終端或者檔案。
程式使用一個名為檔案描述符的編號通道來獲取輸入併傳送輸出。所有程式在開始時至少需要具有三個檔案描述符:標準輸入(通道0)、標準輸出(通道1)、標準錯誤(通道2)。

5、管道符"|"的使用

作用:將前面的執行結果丟到管道符後面的命令去執行。

注意:管道符前面有重定向符號時,管道符後面要加上一個tee命令

[[email protected] etc]# ls | grep ssh
ssh
[[email protected] /]# ls -l > 1.txt |tee less

三、vim文字編輯器

Vim有四種模式,分別是:插入模式、命令模式、末行模式和視覺化模式。

1、插入模式

先按i/a/O/o -> 進入編輯狀態(插入模式)

i -> 在當前游標處進行編輯
a -> 在當前游標下一格進行編輯
O -> 在當前游標上一行插入一個空行進行編輯
o -> 在當前游標下一行插入一個空行進行編輯

2、命令模式

先按Esc -> 退出編輯狀態(插入模式)

yy -> 複製一行
nyy -> 複製n行
p -> 貼上
dd -> 刪除一行
ndd -> 刪除n行
u -> 撤銷上一次操作
U -> 撤銷之前所有的操作
G -> 游標跳到末行
gg -> 游標跳到首行

3、末行模式

先按Esc -> 退出編輯狀態(插入模式)

:(w/q/wq/wq!=x) -> 退出vim(w儲存,q退出)
:set nu ->  顯示行號
:set nonu  -> 不顯示行號
/word  ->  從上而下查詢某個單詞內容
?word ->  從下而上查詢某個單詞word
N -> 從尾至頭進行查詢
n  -> 從頭至尾進行查詢
:%s/XXX/YYY/g  -> 將文件中所有的XXX替換為YYY

4、可視模式

先按Esc -> 退出編輯狀態(插入模式)

V(大寫的) -> 用游標選擇  -> Y

vim多行註釋:
1、先按Esc進入命令列模式
2、按Ctrl+v,進入列模式
3、上下鍵選擇需要註釋內容
4、按大寫“I”鍵,進入插入模式
5、然後輸入註釋符“#”
6、最後按兩下“Esc”鍵完成

四、常用快捷鍵

  • Ctrl + a -> 游標跳到命令列的開頭

  • Ctrl + e -> 游標跳到命令列的結尾

  • Ctrl + u -> 將游標處到命令列開頭的所有內容清除

  • Ctrl + k -> 將游標處到命令列結尾的所有內容清除

  • Ctrl + ← -> 將游標跳到命令列前一字的開頭(在桌面圖形化狀態下)

  • Ctrl + → -> 將游標跳到命令列下一字的末尾

  • Alt + backspace -> 刪除游標所在的單詞

  • Ctrl + g -> 游標進入

  • Ctrl + Alt -> 游標退出

  • Ctrl + L -> 清屏 = clear命令

  • Tab鍵補全——補全命令、選項和引數

    按一次Tab鍵:補全唯一匹配的命令或者選項或者引數
    按兩次Tab鍵:將所有匹配的命令或者選項或者引數全部羅列出來