undefaned

undefaned

Linux系統學習

環境配置#

學習 Linux 需要一個環境,我們需要創建一個虛擬機,然後在虛擬機上安裝一個 CentOS 系統來學習

虛擬機安裝#

VMware15.5

系統安裝#

CentOS 7

網路連接的三種模式:

  1. 桥接模式:虛擬機可以直接和外部通訊(容易 IP 衝突)
  2. NAT 模式:網路地址轉換模式,虛擬機可以和外部系統通訊,不造成 IP 衝突
  3. 主機模式:獨立的系統,不和外部聯繫

虛擬機克隆:直接複製文件夾

虛擬機快照:比如發生誤觸,想返回原先的狀態,這就叫虛擬機快照管理

Vi Vim 入門#

vi 文本編輯器 Linux 系統會內置

Vim 具有程序編輯的能力,可以看作是 Vi 的增強版本,可以主動的以字體顏色辨別語法的正確性方便程序設計。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。

正常模式以 V 打開一個檔案就直接進入一般模式了(這是默認的模式)。在這個模式中,你可以使用『上下左右』按鍵來移動光標,你可以使用『刪除字符』或『刪除整行』來處理檔案內容,也可以使用『複製、粘貼』來處理你的文件數據。

插入模式按下 L,o,O,a,A,r,R 等任何一個字母之後才會進入編輯模式,一般來說按 i 即可

命令行模式 輸入 esc,再輸入 在這個模式當中,可以提供你相關指令,完成讀取、存盤、替換、離開 V、顯示行號等的動作則是在此模式中達成的!

wq write quit

撤銷:u

1. 拷貝當前行 yy, 拷貝當前行向下的 5 行 5yy, 並粘貼(輸入 P)

2. 刪除當前行 dd, 刪除當前行向下的 5 行 5dd

3. 在文件中查找某個單詞 [命令行下 / 關鍵字,回車查找,輸入就是查找下個]

4. 設置文件的行號,取消文件的行號.[命令行下:set nu 和 set nonu]

5. 編輯 /etc/profile 文件,在一般模式下,使用快捷鍵到該文檔的最末行 [G] 和最首行 [gg]

6. 在一個文件中輸入 "helo”,在一般模式下,然後又撤銷這個動作 u

7. 編輯 /etc/rofile 文件,在一般模式下,並將光標移動到,輸入 20,再輸入 shift+g

相關管理文件:

/etc/passwd文件,記錄用戶的各種信息:用戶名:口令:用戶標識符:組標識號:注釋性描述:主目錄:登錄 Shell

Shell 是指口令的解釋器,使內核根據用戶輸入口令進行工作

/etc/shadow文件,保存口令的配置信息

/etc/group文件 組配置信息,記錄 Linux 包含的組信息

運行級別#

基本介紹運行級別說明:

  • 0: 關機
  • 1: 單用戶【找回丟失密碼】
  • 2: 多用戶狀態 沒有網路服務
  • 3: 多用戶狀態 有網路服務
  • 4: 系統未使用保留給用戶
  • 5: 圖形界面
  • 6: 系統重啟

常用運行級別是 3 和 5,也可以指定默認運行級別

init x 切換運行級別

一、Linux 遠程連接#

1.1 網路信息配置#

遠程登錄 Linux——XShell

遠程文件管理 ——XFtp

檢測兩個系統是否 ping 通:ping 192.168.58.129

192.168.58.129 是虛擬機的 IP 地址,在主機驗證 ping 通

ip addr查詢 IP 地址

ifconfig查詢 ip 地址

ls /etc/sysconfig/network-scripts/ 查看網卡信息
可以看到,網卡 IP 的配置文件名為 ifcfg-ens33。

vi /etc/sysconfig/network-scripts/ifcfg-ens33查看文件 ifcfg-ens33 的內容

根據本地局域網設置配置網路信息

1.2 聯網需配置內容#

DNS=8.8.8.8

DNS1=114.114.114.114

BROADCAST 設置的是局域網廣播地址

IPADDR 就是靜態 IP

NETMASK 是子網掩碼

GATEWAY 就是網關或者略由地址

更改之後重啟網路:service network restart

ping www.baidu.com

1.3 防火牆相關#

查看防火牆狀態:firewall--cmd-state或者systemctl status firewalld.service

啟動防火牆:systemctl start firewalld.service

關閉防火牆:systemctl stop firewalld.service

重啟:systemctl restart firewalld.service

開機啟用:systemctl enable firewalld.service

禁止開機啟動:systemctl disable firewalld.service

查看是否開機啟動:systemctl is-.enabled firewalld.service

二、Linux 系統目錄結構#

目錄結構樹#

  • /bin:bin 是 Binaries (二進制文件) 的縮寫,這個目錄存放著最經常使用的命令
  • /boot:這裡存放的是啟動 Linux 時使用的一些核心文件,包括一些連接文件以及鏡像文件。
  • /dev:dev 是 Device (設備) 的縮寫,該目錄下存放的是 Linux 的外部設備,在 Linux 中訪問設備的方式和訪問文件的方式是相同的。
  • /etc: etc 是 Etcetera (等等) 的縮寫,這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。
  • /home用戶的主目錄,在 Linux 中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的帳號命名的,如上圖中的 alice、bob 和 eve。
  • /lib:lib 是 Library(庫)的縮寫這個目錄裡存放著系統最基本的動態連接共享庫,其作用類似於 Windows 裡的 DLL 文件。幾乎所有的應用程序都需要用到這些共享庫。
  • /lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些文件。
  • /media: linux 系統會自動識別一些設備,例如 U 盤、光驅等等,當識別後,Linux 會把識別的設備掛載到這個目錄下。
  • /mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在 /mnt/ 上,然後進入該目錄就可以查看光驅裡的內容了。
  • /opt: opt 是 optional (可選) 的縮寫,這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個 ORACLE 數據庫則就可以放到這個目錄下。默認是空的。
  • /proc:proc 是 Processes (進程) 的縮寫,/proc 是一種虛文件系統(也即虛擬文件系統),存儲的是當前內核運行狀態的一系列特殊文件,這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
  • /root:該目錄為系統管理員,也稱作超級權限者的用戶主目錄。
  • /sbin: s 就是 Super User 的意思,是 Superuser Binaries(超級用戶的二進制文件) 的縮寫,這裡存放的是系統管理員使用的系統管理程序
  • /selinux:這個目錄是 Redhat/CentOS 所特有的目錄,Selinux 是一個安全機制,類似於 windows 的防火牆,但是這套機制比較複雜,這個目錄就是存放 selinux 相關的文件的。
  • /srv:該目錄存放一些服務啟動之後需要提取的數據。
  • /sys:這是 Linux2.6 內核的一個很大的變化。該目錄下安裝了 2.6 內核中新出現的一個文件系統 sysfs。sysfs 文件系統集成了下面 3 種文件系統的信息:針對進程信息的 proc 文件系統、針對設備的 devfs 文件系統以及針對虛終端的 devpts 文件系統。該文件系統是內核設備樹的一個直觀反映。當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。
  • /tmp:tmp 是 temporary (臨時) 的縮寫這個目錄是用來存放一些臨時文件的。
  • /usr:usr 是 unix shared resources (共享資源) 的縮寫,這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似於 windows 中的 program files 目錄。
  • /usr/bin:系統用戶使用的應用程序
  • /usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序。/usr/src: 內核源代碼默認的放置目錄。
  • /var:var 是 variable (變量) 的縮寫,這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件
  • /run:是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 var/run 目錄,應該讓它指向 run。

在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。 /etc:上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。

/bin,/sbin,/usr/bin,/usr/sbin:這是系統預設的執行文件的放置目錄,比如 ls 就是在 /bin/ls 目錄下的。值得提出的是 /bin、/usr/bin 是給系統用戶使用的指令(除 root 外的通用用戶),而 /sbin,/usr/sbin 則是給 root 使用的指令。

/var:這是一個非常重要的目錄,系統上跑了很多程序,那麼每個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在 /var/log 目錄下,另外 mail 的預設放置也是在這裡。

三、Linux 基礎知識文件與目錄管理#

絕對路徑:路徑的寫法,由根目錄 / 寫起,例如:/usr/share/doc 這個目錄。

相對路徑:路徑的寫法,不是由 / 寫起,例如:由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成:cd../man 這就是相對路徑的寫法。

3.1 處理目錄的常用命令#

ls (列出目錄)

  • -a:全部的文件,連同隱藏文件,文件名以開頭(常用)
  • -d:顯示詳細信息(常用)
  • -l:查看目錄屬性(常用)
  • -h:與配合使用顯示詳細文件大小

mkdir (創建新目錄)

mkdir -mp xxx

  • -m:配置文件的權限
  • -p:遞歸創建

touch (創建空文件)

touch xxx

cd (切換目錄)

#使用 mkdir 命令創建 runoob 目錄
[root@www ~]# mkdir runoob

#使用絕對路徑切換到 runoob 目錄
[root@www ~]# cd /root/runoob/

#使用相對路徑切換到 runoob 目錄
[root@www ~]# cd ./runoob/

# 表示回到自己的家目錄,亦即是 /root 這個目錄
[root@www runoob]# cd ~

# 切換到上一级目錄
[root@www ~]# cd ..

pwd (顯示目前所在的目錄)

pwd

rmdir (刪除空的目錄)

rmdir [-p] 目錄名稱

-p 從該目錄起,一次刪除多級空目錄(僅能刪除空目錄)

cp (複製文件或目錄)

[root@www ~]# cp -rp [原文件或者目錄]  (目標目錄)
[root@www ~]# cp [opt] tes1

mv (移動文件與目錄,或修改名稱)

[root@www ~]# mv [原文件或者目錄] (移動地址/修改名稱)
[root@www ~]# mv /tmp/day1  /root/day02  移動別的目錄在改名
[root@www ~]# mv day1  day02  在當前目錄改名
  • -f :如果目標文件已經存在,不會詢問而直接覆蓋;
  • -i :若目標文件已經存在時,就會詢問是否覆蓋!

rm (移除文件或目錄)

  • -f :強制執行
  • -i :在刪除前會詢問是否刪除
  • -r :遞歸刪除啊!最常用在刪除目錄

3.2 Linux 文件內容查看#

cat 第一行開始顯示文件內容

tac 最後一行開始顯示

more 一頁一頁翻動

less 一頁一頁翻動

head 取出文件前面幾行

tail 取出文件後面幾行

四、關機和重啟指令#

4.1 重啟命令:#

  • reboot 就是重啟
  • shutdown -r now 立刻重啟 (root 用戶使用)
  • shutdown -r 10 過 10 分鐘自動重啟 (root 用戶使用)
  • shutdown -r 20:35 在時間為 20:35 時重啟 (root 用戶使用) 如果是通過 shutdown 命令設置重啟的話,可以用 shutdown -c 命令取消重啟

4.2 關機命令:#

  • halt 立刻關機
  • poweroff 立刻關機
  • shutdown -h now 立刻關機 (root 用戶使用)
  • shutdown -h 10 10 分鐘後自動關機 如果是通過 shutdown 命令設置關機的話,可以用 shutdown -c 命令取消重啟

五、權限管理命令#

5.1 用戶管理#

用戶信息

使用 cat 命令來查看一下保存用戶信息的文件 ,保存用戶信息的文件保存在 /etc/passwd 文件裡
cat /etc/passwd

超級用戶:root,UID=0
普通用戶:UID 在 500 到 60000
虛擬用戶:UID 在 1 到 499

虛擬用戶不能登錄系統,而且沒有宿主目錄
為什麼需要虛擬用戶:沒有用戶登錄時,linux 系統依然要運行,有很多進程在跑著,所以必須需要一些虛擬用戶來執行那些命令

保存密碼的文件:/etc/shadow

保存用戶組的文件:/etc/group

保存用戶組密碼的文件:/etc/gshadow

用戶配置文件:/etc/default/useradd

添加用戶
useradd 參數 用戶名
參數:

  • -s:設置新用戶的默認 Shell 終端
  • -u:user 設置用戶 ID
  • -e:end 設置用戶的終止日期
  • -f:fire 設置用戶過期幾日後永久停權
  • -M:不建立用戶家目錄
  • -G:group 設置用戶對應的擴展用戶組

修改用戶
usermod 參數 用戶名
參數:

  • -c:修改用戶帳號的備註文字
  • -d:修改用戶登錄時的家目錄
  • -e:修改用戶帳號的有效期限
  • -f:設置在密碼過期後多少天關閉該帳號
  • -u:修改用戶帳號的 ID
  • -l:修改用戶帳號名稱
  • -L:鎖定用戶密碼,使密碼立即失效
  • -U:解除密碼鎖定,使密碼恢復正常
  • -p:設置用戶的新密碼

修改用戶密碼
passwd 參數 用戶名
參數:

  • -l:lock 鎖定用戶的密碼值,不允許修改
  • -u:unlock 解鎖用戶的密碼值,允許修改
  • -e:edit 下次登錄時強制修改密碼
  • -d:delete 清除已有密碼
  • -S:show 顯示當前密碼狀態

切換用戶
su 參數 用戶名

  • -l:切換身份時,也同時變更工作目錄
  • -m:切換身份時,不要變更工作目錄

刪除用戶
userdel 參數 用戶名
參數:

  • -f:強制刪除用戶帳號而不詢問
  • -h:顯示幫助信息
  • -r:刪除用戶的家目錄及其全部子文件

查看用戶有誰
ls /home

5.2 用戶組管理#

添加用戶組
groupadd 參數 用戶組

  • -g:設置用戶組 ID
  • -r:root 創建系統用戶組
  • -o:允許創建重複 ID 的用戶組

更改用戶組
groupmod 參數 組名
參數:

  • -g:設置群組識別碼
  • -n:name 設置群組名稱

刪除用戶組
groupdel 參數 組名

  • -f:強制刪除而不詢問

修改用戶組
usermod 參數 用戶名

  • -l:修改用戶帳號名稱
  • -L:鎖定用戶密碼,使密碼立即失效
  • -u:修改用戶帳號的 ID
  • -U:解除密碼鎖定,使密碼恢復正常
  • -d:修改用戶登錄時的家目錄

5.3 修改文件權限#

更改文件所屬用戶組
chgrp 參數 用戶名

  • -R:遞歸處理所有子文件
  • -v:顯示執行過程詳細信息

改變文件或目錄權限
chmod 參數 用戶名

  • -c:改變文件權限成功後再輸出成功信息
  • -f:改變文件權限失敗後不顯示錯誤信息
  • -R:遞歸處理所有子文件
  • -v:顯示執行過程詳細信息

六、管道命令和重定向#

6-1 管道#

  • more:分屏顯示內容
  • grep:在命令執行結果的基礎上查詢指定文本

6-2 重定向 > 和 >>#

> 表示輸出,會覆蓋文件原有內容
>> 表示追加,會將內容追加到已有文件的末尾

七、軟體磁碟命令#

7-1 磁碟管理相關命令#

管理磁碟分區
fdisk 參數 設備名

  • -H:設置硬碟的磁頭數
  • -l:顯示指定的外圍設備分區表狀態
  • -s:顯示指定的分區大小
  • -S:設置每個磁道的扇區數
  • -b:設置每個分區的大小

顯示系統內存使用量情況
free 參數

  • -b:設置顯示單位為 Byte
  • -g:設置顯示單位為 GB
  • -h:自動調整合適的顯示單位
  • -k:設置顯示單位為 KB
  • -l:顯示低內存和高內存統計數據
  • -m:設置顯示單位為 MB
  • -s:持續顯示內存數據

7-2 打包 / 解壓#

gzip 壓縮文件
gzip -v t.txt 將文件壓縮為.gz,用於壓縮單個文件

  • -d:解壓指定壓縮包文件
  • -v:顯示執行過程詳細信息
  • -k:保留原文件
  • -l: 顯示壓縮包內的文件信息

gunzip 解壓文件
gunzip -v t.txt.gz壓縮或解壓多個文件

Zip 壓縮文件
zip 參數 壓縮名稱 需要壓縮的文件

unzip 解壓文件
unzip 參數 壓縮包名 -d 指定目錄名

tar 壓縮或解壓文件
tar 參數 壓縮包名自定義 文件或目錄名
tar -czvf test.tar.gz -C /etc規範後綴為.tar.gz
-c:創建新的壓縮包
-z:使用 gzip 壓縮格式
-v:顯示執行過程詳細信息
-t:顯示壓縮包的內容
-f:指定壓縮後的文件名
-x:解壓
-C:解壓到指定目錄
tar 參數 壓縮包名 -C 解壓目錄名
tar -xvf File.tar -C /etc解壓 File.tar 文件到 /etc 目錄

7-3 軟體安裝與載#

yum 命令
yun 參數 動作 軟體包

7-4 軟體控制啟動關閉#

systemctl 參數 動作 服務名

7-5 rpm 命令 RPM 軟體包管理器#

rpm 的作用類似於 windows 上的電腦管家中 “軟體管理”、安全衛士裡面的 “軟體管家” 等產品,主要作用是對 linux 伺服器上的軟體包進行對應管理操作,管理分為:查詢、卸載、安裝。
rpm -ql 軟體包名
參數:

  • -a:顯示所有軟體包
  • -e:卸載軟體包
  • -i:安裝軟體包
  • -l:顯示軟體包的文件列表
  • -q:顯示指定軟體包是否已安裝
  • -U:升級軟體包
  • -v:顯示執行過程信息

查詢某個軟體的安裝情況

安裝軟體

查看安裝軟體路徑

卸載某個軟體

升級某個軟體包

八、搜尋命令和軟連接#

8-1 搜尋命令#

find 命令
find 路徑 條件 文件名

grep 命令
grep 參數 文件名

8-2 軟連接#

類似於 Win 中的快捷方式
ln 參數 源文件名 目標文件名

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。