Linux 常用指令入門,這些指令你必須會!

2021-04-20 23:00:02

走近Linux系統

開機

windows開機會啟動許多程式。它們在Windows叫做’服務" ( service ) , 在Linux就叫做"守護行程" ( daemon)
一般來說,使用者的登入方式有三種:
 ●命令列登入 賬號密碼
 ●SSH登入(遠端) 我們使用的是Xshell
 ●圖形介面登入 原生的虛擬機器器
 最高許可權賬戶為root,可以操作一切!

關機

在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。
 關機指令為shutdown,這個指令不建議在伺服器上操作,可以在本機上嘗試。

sync #將資料由記憶體同步到硬碟中。
shutdown #關機指令,你可以man shutdown 來看一下 幫助檔案。例如你可以執行如下命令關機:
shutdown -h 10 #這個命令告訴大家,計算機將在10分鐘後關機
shutdown -h now#立馬關機
shutdown -h 20:25 #系統會在今天20:25關機
shutdown -h +10 #十分鐘後關機
shutdown -r now #系統立馬重新啟動
shutdown -r +10 #系統十分鐘後重新啟動
reboot #就是重新啟動,等同於shutdown -r now
halt #關閉系統,等同於shutdown -h now和poweroff

最後總結:不管是重新啟動還是關閉系統,首先要執行sync命令,把記憶體中的資料寫到磁碟中,執行命令之後沒有返回訊息(沒有錯誤就代表操作成功)則表明執行成功

系統目錄

1、一切皆檔案
2、根目錄/ ,所有的檔案都掛載在這個節點下

ls / #檢視當前下的目錄

在這裡插入圖片描述

目錄解釋

/bin:bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。比如ls命令 /boot:
這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。不要動 /dev : dev是Device(裝置)的縮寫,
存放的是Linux的外部裝置,在Linux中存取裝置的方式和存取檔案的方式是相同的。
/etc: 這個目錄用來存放所有的系統管理所需要的組態檔和子目錄。
/home :使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。administrator 可以在這個目錄下及建立自己的目錄。 /lib:這個目錄裡存放著系統最基本的動態連線共用庫,其作用類似於Windows裡的DLL檔案。 不要動
/opt:這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。
/root:該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。 /sbin:s就是Super
/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。
/media:linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。
/mnt:系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。(後面可以把原生的的一些檔案掛載在這個目錄下)

/usr:這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。

/tmp:這個目錄是用來存放一些臨時檔案的。 用完即丟的檔案可以放在這個目錄下。比如安裝包用完就刪除 /usr/bin: 系統使用者使用的應用程式。 /usr/sbin: 超級使用者使用的比較高階的管理程式和系統守護程式。 /usr/src:
核心原始碼預設的放置目錄。
/var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種紀錄檔檔案。 /run:是一個臨時檔案系統,儲存系統啟動以來的資訊。當系統重新啟動時,這個目錄下的檔案應該被刪掉或清除。
/www:存放伺服器網站相關的資源,環境,網站的專案(裡面會安裝一些環境) 環境基本設定:LNMP( Linux Nginx Mysql Php ) 或者LAMP(Linux Apache Mysql Php)
預設的網路組態檔ifcfg-eth0

ifconfig 檢視網路的設定

ipconfig winows 網路設定

網路設定目錄:

cd /etc/ sysconfig/network-scripts
ping *#用來檢視網路是否連通
* ifconfig *#檢視網路 和Windows的ipconfig是一樣的*

常用的基本命令

windosw和linus通用的內容

引數合併 指令格式
在這裡插入圖片描述

在這裡插入圖片描述

路徑: Linux根路徑是/,Linux區分大小寫windows不區分

  • 絕對路徑:以/開頭

  • 相對路徑 :非/開頭

    • 特殊的相對路徑 :
 ..  上一級  
     . 當前這一級
     ~ 進入當前登入的使用者目錄

在這裡插入圖片描述

目錄檔案操作指令

ls(列出目錄!)

在Linux中Is可能是最常常被使用的!

直接使用ls 就會列出當前路徑下的所有檔案
-a:#引數: all ,檢視全部的檔案,包括隱藏檔案
-l:#引數列出所有的檔案,包含檔案的屬性和許可權,沒有隱藏檔案 
-R # 列出所有子目錄下的檔案

在這裡插入圖片描述

在這裡插入圖片描述

所有Linux可以組合使用!

ls -al 檢視全部的檔案包括隱藏檔案的屬性和許可權

屬主和屬組具體後面解釋
在這裡插入圖片描述

ll不是命令,是ls -l的別名 可以通過 alias 指令檢視別名
在這裡插入圖片描述
tips : tab鍵可以做到自動補全

cd:切換目錄 change dir

cd:#切換目錄命令!
cd .. : #返回上一級目錄
cd ~: #進入使用者家目 回到當前的使用者目錄
cd -:返回最近存取目錄
cd ./:#當前目錄
pwd :#顯示當前使用者所在的目錄

如果以root的身份進行登入,進入的目錄就是root的家目錄,
在這裡插入圖片描述

對一般使用者,~表示/home/(使用者名稱)
對於root使用者,~表示/root

pwd :顯示使用者當前所在的目錄

比如當前在usr目錄下 如果以相對路徑 進入home目錄
cd …/home 如果以絕對路徑就是 cd /home

mkdir 建立一個目錄

mkdir test # 建立目錄
mkdir -p test2/test3 # 用-p遞迴建立層級目錄

如果目錄存在,重複建立,會報錯
在這裡插入圖片描述

rmdir 刪除目錄

rmdir test # 刪除空的目錄
rmdir -p test2/test3/test4 #遞迴刪除檔案

rmdir僅能刪除空的目錄,如果下面存在檔案,需要先刪除檔案,遞迴刪除多個目錄-p引數即可

touch 建立檔案

建立檔案可以使用絕對路徑,也可以使用相對路徑,如果檔案已經存在,那麼就修改檔案建立的時間。

touch text.tx

在這裡插入圖片描述

cp複製檔案或者目錄

cp [選項] 原始檔或目錄 目標檔案或目錄 #
要麼把檔案複製到目錄下,要麼把檔案或者目錄複製到目錄下

-f 或 --force 強行復制檔案或目錄, 不論目的檔案或目錄是否已經存在。不存在的話建立檔案
-i 或 --interactive 覆蓋檔案之前先詢問用
-r / -R 遞迴處理 這裡大小寫都是可以的


cp t.txt t1.txt  #將當前t.txt 複製 到t1.txt
# 如果檔案重複就選擇覆蓋或者放棄
# y 代表覆蓋  n 代表放棄

在這裡插入圖片描述

模糊匹配也支援複製操作 所以支援多個檔案或者資料夾的複製
在這裡插入圖片描述

解決不能複製資料夾問題 cp -r test xqr 把home 下的test檔案 複製到home下的xqr檔案

rm 移除檔案或者目錄

-f #忽略不存在的檔案,不會出現警告,強制刪除!  即使檔案屬性為唯讀(即防寫),亦直接刪除
-r #遞迴刪除目錄其下所有檔案!
-i #互動,刪除詢問是否刪除
rm -rf / # 系統中的所有檔案都刪除 刪庫跑路!!這個命令別用
rm -rf install.sh/#刪除系統中的install.sh

rm test 的時候預設會詢問是否刪除
也可以使用 * 代表進行模糊匹配。 * 代表任意數量的任意字元

rm -rf * # 刪除的時候需要看當前的路徑是什麼!如果當前路徑是/ 那等同於 rm -rf /
rm - f   *.txt   #刪除當前目錄下的 txt的檔案
rm - rf   a*   #刪除以a開頭的任意的檔案或者資料夾啊、

mv 移動檔案或者目錄|重新命名檔案

mv [選項] 原始檔或目錄 目標檔案或目錄 注意不能把檔案移動到資料夾下

-f #強制
-u #只替換已經更新過的檔案
mv test xqr #移動檔案
mv test test2 #重新命名資料夾名

可以將移動和重新命名的操作結合起來使用
在這裡插入圖片描述
可以同時移動目錄和檔案,也支援模糊匹配
在這裡插入圖片描述

man 檢視幫助檔案

Linux的命令有很多引數,我們不可能全記住,我們可以通過檢視聯機手冊獲取幫助。: man [選項] 命令

man  + 指令的名字

g切換到整個文字的首部(vi 中是gg),shift+g (大寫G)切換額檔案的尾部
n切換的
:q 回車退出

檔案內容操作指令

vi命令 檢視檔案

vi是linux上預設的文字編輯器
支援的模式

檢視模式
進入編輯模式i(編輯的位置是在遊標的位置)
進入編輯模式o(編輯的位置是遊標的下一行新行插入)
上下行切換j /k 和上下鍵一樣
搜尋/搜尋內容 回車後進入搜尋
切換檔案的首位部gg 首部 shift+g 檔案尾部
刪除遊標所在行dd
:w寫(修改內容)
:q退出
:wq修改並退出
:q!不修改並退出
編輯模式
回退到檢視模式esc

如果輸入vi 檢視不存在的檔案,就會建立,離開的時候如果儲存,那麼這個檔案就可以正常儲存了。

vim 提供高亮的檔案檢視

基本的指令格式和vi 是相同的用法。

cat 顯示檔案內容 列印輸出

cat [選項] [ 檔名稱 ]
功能: 檢視目標檔案的內容
常用選項:

-n 對輸出的所有行編號
cat test.txt

在這裡插入圖片描述

less指令 檢視檔案內容

為什麼要有和學習less指令

  • 上面的cat和vim指令都是載入出來所有的檔案內容,但是less指令可以做到不用載入檔案的所有內容,也可以進行查詢的操作。
  • 公司的生產上,使用tomcat的時候,如果出現後臺報錯,沒有類似IDEA的圖形化介面可以排查,但是可以檢視tomcat的紀錄檔內容,而如果紀錄檔內容很多,佔用空間比較大,全部載入效能不好,所以不使用。

在這裡插入圖片描述

head指令 顯示檔案開頭到指定行 列印內容

不指定指令的時候,預設列印十行
在這裡插入圖片描述
與cat的對比
在這裡插入圖片描述

tail 指令 顯示從檔案尾部開始往前指定的行數

-n 行數 顯示的是最後的n行 也就是倒數的n行(從檔案尾部 -n 到檔案尾部)列印輸出
在這裡插入圖片描述

和重定向結合使用

可以和漏斗結合進行理解 大開口的那一段接受資料 小開口的那一端輸出

  1. 標準輸入(System.in) <

  2. 標準輸出重定向(System.out) >
    在這裡插入圖片描述

在這裡插入圖片描述
3. 標準錯誤輸出 (System.err) 2 >

在這裡插入圖片描述

管道

把前面輸入的內容作為一個輸出,輸出到後面的檔案裡面去。
類似資料庫的分頁操作的底層實現 limit offset,len
取 (x 到 y)行的內容

  • 可以先取出前y行 ( head -ny 檔名)
  • 然後再取後 ( tail -n y-x+1)行
  • 類似就可以擴充套件的取出第幾行的資料
    在這裡插入圖片描述
    也可以和 > 操作結合起來
    在這裡插入圖片描述

在這裡插入圖片描述

date指令

可以使用 man指令檢視幫助檔案

man date 

直接輸入

date

獲取當前的時間
在這裡插入圖片描述

其他常用的指令

程序操作指令

根據埠號查詢pid netstat-anp

展示所有的埠號
第一個命令是錯的
在這裡插入圖片描述

根據前面的內容查詢(grep)埠號
在這裡插入圖片描述
在這裡插入圖片描述
注:
window下根據埠號查詢pid的指令是

netstat -ano | findstr 埠號

根據程序的名稱查詢pid ps -ef

但是如果不知道埠號,該怎麼查詢pid
可以通過程式的名字查詢pid

ps -ef # 顯示所有的程序名稱和pid
ps aux

在這裡插入圖片描述

在這裡插入圖片描述

grep 進行搜尋id

ps -ef | grep mysql
ps aux | grep mysql

在這裡插入圖片描述
和java的jps相似 只是jps 是顯示所有java程序的名稱和pid

檔案解壓指令

使用 tar 解壓命令

  • tar/tar.gz 安裝包使用命令
tar xvf 檔名

使用 unzip 解壓命令

unzip  + 檔名 # 比如 unzip apache-tomcat-8.5.47.zip

軟體操作指令

yum安裝 list/remove/install

yum 線上安裝:遠端有一個軟體包的安裝倉庫,發起網路請求獲取軟體包,直接安裝。

yum list | grep [軟體包關鍵字] # 注意, 最好要加上 grep, 否則羅列的內容會非常多, 導致機器很卡.

安裝軟體包(需要管理員許可權)

yum install [軟體包名字]
yum install -y [軟體包名字] # 不詢問直接安裝

解除安裝軟體包

yum remove [軟體包名字]

搜尋本機中已經通過yum安裝的軟體

yum list installed |grep 軟體名

rpm安裝 -ivh/-qa/-e/:

已經有一個原生的rpm檔案,(rpm檔案是Linux 上的可安裝檔案,類似windows上exe檔案

rpm -ivh +軟體檔案的路徑

搜尋在本機中已經通過rpm安裝的軟體

rpm -qa | grep 軟體名 

解除安裝

rpm -e 軟體名

注意這裡的軟體名字,要先通過rpm -qa 查詢有哪些軟體名字,解除安裝的名字要和軟體名字一致。

環境變數設定

全域性的環境設定變數 vi etc/profile

vi /etc/profile# 或者下面的命令
vim /etc/profile

修改後重新整理 source/etc/profile

對etc/profile操作完成之後按esc 從編輯模式進入檢視模式,輸入:wq 儲存退出
之後進行重新整理

source /etc/profile

系統統計 top指令

可以進行系統統計的指令
常用的下面的四個必須知道
在這裡插入圖片描述

磁碟統計df

命令用於顯示目前在 Linux 系統上的檔案系統磁碟使用情況統計。

在這裡插入圖片描述

使用者

Linux下有兩種使用者:超級使用者(root)、普通使用者。
超級使用者:可以再linux系統下做任何事情,不受限制
普通使用者:在linux下做有限的事情。
超級使用者的命令提示字元是「#」,普通使用者的命令提示字元是「$

  • 超級使用者
    在這裡插入圖片描述
  • 普通使用者
    在這裡插入圖片描述

使用者賬號的管理

使用者賬號的管理工作主要涉及到使用者賬號的新增、修改和刪除。新增使用者賬號就是在系統中建立一個新賬號,然後為新賬號分配使用者號、使用者組、主目錄和登入ShelI等資源。
 理解一下本質: Linux中一切皆檔案,這裡的新增使用者說白了就是往某-個檔案中寫入使用者的資訊了!
而這個檔案就是使用者賬戶檔案 /etc/passwd

useradd 命令 新增使用者


useradd -選項 使用者名稱
-m:自動建立這個使用者的主目錄/home/cqh
-G:給使用者分配組

passwd使用者 給使用者設定密碼

在這裡插入圖片描述

userdel 刪除使用者

userdel -r 123 #刪除使用者的時候把它的目錄也刪除掉

切換使用者 su

su [使用者名稱]
功能:切換使用者。 例如,要從root使用者切換到普通使用者user,則使用 su user。
要從普通使用者user切換到root使用者則使用 su root(root可以省略),此時系統會提示輸入root使用者的口令。

許可權

檔案型別和存取許可權

  • 檔案型別
    d:資料夾
    -:普通檔案
    l:軟連結(類似Windows的快捷方式

  • 基本許可權
    i.讀(r/4):Read對檔案而言,具有讀取檔案內容的許可權;對目錄來說,具有瀏覽該目錄資訊的許可權
    ii.寫(w/2):Write對檔案而言,具有修改檔案內容的許可權;對目錄來說具有刪除移動目錄內檔案的許可權
    iii.執行(x/1):execute對檔案而言,具有執行檔案的許可權;對目錄來說,具有進入目錄的許可權
    iv.「-」 表示不具有該項許可權

對不具有許可權的檔案操作
演示使用者123 對唯讀檔案的操作
在這裡插入圖片描述

在這裡插入圖片描述

chomd 修改許可權

屬主 屬組(使用者組)

存取一個檔案的人可能分成三種類別.
檔案和檔案目錄的所有者:u—User
檔案和檔案目錄的所有者所在的組的使用者:g—Group
其它使用者:o—Others

可以通過 ll檢視

比如:-rw-r–r-- 1 root root 0 Jan 7 21:29 testfile
表示testfile檔案的屬主有可讀可寫,屬組可讀,其他人可讀。
testfile的屬主是root,屬組是root。

通過以下這個指令也很重要!

cat /etc/passwd

在這裡插入圖片描述

在這裡插入圖片描述
Linux檔案屬性有兩種設定方法,一種是數位(常用的是數位), 一種是符號。

設定許可權方式1

u:擁有者 user
g:擁有者同組用 group
o:其它使用者 other
a:所有使用者 all
和以下的符號搭配使用

  • +:向許可權範圍增加許可權代號所表示的許可權
    -:向許可權範圍取消許可權代號所表示的許可權
    =:向許可權範圍賦予許可權代號所表示的許可權

賦予許可權
只用將前面的

# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
# chmod a=x /home/abc.txt

在這裡插入圖片描述

取消許可權
在這裡插入圖片描述

設定許可權方式二

使用數位的方式

讀 對應數位 4
寫 對應數位 2
可執行 對應數位 1

在這裡插入圖片描述

chown 修改擁有者

chown 使用者 檔案/資料夾

在這裡插入圖片描述

chgrp 修改使用者組

在這裡插入圖片描述

硬連結和軟連結

Linux連結分為兩種:硬連結、軟連結(瞭解即可)
硬連結:A—B,假設B是A的硬連結,那麼他們兩個指向了同一個檔案!允許一個檔案擁有多個路徑,使用者可以通過這種機制硬連結到一個重要檔案上,防止誤刪
軟連結:類似Windows下的快捷方式,刪除原始檔,快捷方式也就存取不
操作步驟:
建立連結

 ln f1 f2! # 建立硬連結 f2
 ln -s f1 f3  # 建立一個軟連線(符號連結)f3

touch命令建立檔案!
echo輸入字串,也可以輸入到檔案

[root@iZ2zefgqs5qgnl9r5se6xgZ etc]# cd /home
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# touch f1   # 建立一個f1檔案
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ln f1 f2  # 建立一個硬連結f2
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  f2  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ln -s f1 f3  # 建立一個軟連線(符號連結)f3
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ll
total 8
-rw-r--r-- 2 root root    0 Jan 29 17:04 f1
-rw-r--r-- 2 root root    0 Jan 29 17:04 f2
lrwxrwxrwx 1 root root    2 Jan 29 17:05 f3 -> f1
drwxr-xr-x 2 root root 4096 Jan 29 16:14 test
drwxr-xr-x 4 root root 4096 Jan 29 15:55 xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# echo "i love you" >>f1  # 給f1中寫入字串
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ll
total 16
-rw-r--r-- 2 root root   11 Jan 29 17:07 f1
-rw-r--r-- 2 root root   11 Jan 29 17:07 f2
lrwxrwxrwx 1 root root    2 Jan 29 17:05 f3 -> f1
drwxr-xr-x 2 root root 4096 Jan 29 16:14 test
drwxr-xr-x 4 root root 4096 Jan 29 15:55 xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1  # 檢視f1
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2  # 檢視f2
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 # 檢視f3
i love you


刪除操作執行後,硬連結和軟連線不一樣了
硬連結還在,軟連線不在
(硬連結相當於是深拷貝,軟連線相當於是淺拷貝可以這麼理解)

[root@iZ2zefgqs5qgnl9r5se6xgZ home]# rm -rf f1  # 刪除f1
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1
cat: f1: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2 # f2 硬連結還在
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 #f3 軟連線不在
cat: f3: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# 
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# rm -rf f1  # 刪除f1
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1
cat: f1: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2 # f2 硬連結還在
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 #f3 軟連線不在
cat: f3: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# 

在這裡插入圖片描述