目錄
Linux 目錄結構及詳細操作
目錄結構
常見的目錄結構
- Windows下:
- D: \ProgramFiles
- Linux下:
- /etc/sysconfig
根目錄結構示意圖(倒掛樹),圖中的箭頭代表軟連線的關係,相當於Windows的快捷方式
目錄結構的特點
- Linux系統中的目錄一切從根開始
- Linux系統中的目錄結構擁有層次
- Linux系統中的目錄需要掛載使用
目錄結構掛載
系統目錄可以掛載任何磁碟裝置上
磁碟空間沒有被掛載是不能使用的
# 掛載命令及格式
mount [磁碟路徑] [掛載的路徑]
# 檢視本機掛載的命令
[root@localhost dev]# df -h
# 解除安裝掛載的磁碟
[root@localhost dev]# umount /mnt/
目錄結構發展
- 第一塊磁碟:用來存放系統程式 ---> /
- 第二塊磁碟:儲存資料(資料盤)---> /usr
- 第三塊磁碟:用於分類管理使用者 ---> /home
關閉selinux(瞭解)
臨時關閉
[root@localhost ~]# setenforce 0
永久關閉
[root@localhost ~]# vim/etc/selinux/config
修改檔案內引數
SELINUX=disabled
重要目錄說明(etc目錄說明)
etc目錄詳細操作
1、網路卡配置檔案
1、檔案資訊如下:
# 網路卡配置檔案(有以下幾種情況,通過ip a 檢視自己的名稱)
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/ifcfg-ens32
/etc/sysconfig/network-scripts/ifcfg-ens33
2、過載網路卡資訊:
# 檢視本機網路資訊的命令
ip a 或 ip address show (老版本的命令:ifconfig)
# 過載網路卡資訊
systemctl restart network
或
ifdown [網路卡名稱] && ifup [網路卡名稱]
# 確認網路卡配置是否正確
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 關閉網路管理器(因為已經有了network)
systemctl stop NetworkManager
systemctl disable NetworkManager
或
systemctl disable --now NetworkManager
2、解析配置檔案
作用:用於設定DNS解析地址
檔案資訊:/etc/resolv.conf # 臨時dns配置檔案
nameserver 114.114.114.114
# 判斷SSH服務是否開啟
systemctl status sshd
# 檢視作業系統的DNS:
[root@localhost sys]# cat /etc/resolv.conf
nameserver 114.114.114.114
# DNS可以修改,# vim /etc/resolv.conf
# 多種DNS
114.114.114.114 中國電信
223.5.5.5/223.6.6.6 中國阿里雲
8.8.8.8 谷歌
3、主機名稱檔案
檔案資訊:/etc/hostname
配置主機名稱資訊,永久生效
# 主機名稱檔案
1、檢視當前主機名稱資訊/臨時修改
檢視:hostname
臨時修改:hostname baidu
2、永久修改
[root@baidu ~]# vim /etc/hostname # 需要重啟生效
[root@baidu ~]# hostnamectl set-hostname oldboy # 立即生效
# 區別上
3、ps:自定義系統登入使用者資訊
PS1 環境變數
[root@localhost ~]# echo $PS1
[\u@\h \W]\$
[root@localhost ~]# PS1='[\u@\h --- \W]\$'
# 補充:通過域名檢視ip地址,百度舉例
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.
# 遠端的ip地址:112.80.248.75
4、解析對映檔案
相當於windows 系統中,C:\Windows\System32\drivers\etc\hosts;
解析對映檔案相當於本地的DNS;
-
檔案資訊:/etc/hosts
-
作用說明:用於設定DNS域名與IP地址對應關係
# 本地解析,可以在windows中的hosts檔案中新增解析
106.13.91.75 《==》 www.test.com
# 這樣通過ip地址或者對映後的域名都可以訪問到伺服器
5、磁碟掛載檔案
- 檔案資訊:/etc/fstab
- 作用說明:實現指定裝置檔案資訊,進行開機自動掛載
[root@localhost /]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Dec 9 18:57:52 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=046a66f5-d610-42fd-a0ec-c98793ff6320 /boot xfs defaults
# 通過df -h 檢視掛載資訊
[root@localhost /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 100G 2.2G 98G 3% /
/dev/sda1 509M 132M 378M 26% /boot
tmpfs 98M 0 98M 0% /run/user/0
可以發現/boot和/的掛載資訊是一樣的
6、開機載入指令碼
- 檔案資訊:/etc/rc.local
- 作用說明:實現系統啟動後,讀取檔案中的命令,從而實現一些操作隨系統啟動自動執行
- 使用方法:chmod +x /etc/rc.d/rc.local (centos7中需要執行此命令,才能使用此檔案)
說明:類似Windows中開機啟動的檔案,可以通過工作管理員中的啟動檢視在Windows中開機啟動的程式有哪些
# 驗證Linux中開機自啟動示例
# 在/etc/rc.local中加入執行語句
vim /etc/rc.local
echo 'hello' > test
# 設定開機自啟動許可權
chomd +x /etc/rc.d/rc.local
# 重啟系統
reboot
# 檢視test檔案是否寫入了hello
cat test
7、系統啟動級別
級別對應引數一覽表:
啟動級別 | 級別對應命令 | 描述 |
---|---|---|
0 | shutdown.target | 關機(不要設定,不然會一直關機) |
1 | emergency.target | 單使用者模式,root許可權 |
2 | rescure.target | 多使用者模式,沒有NFS和網路支援 |
3 | multi-user.target | 完整的多使用者文字模式,有NFS和網路,登入後進入控制檯命令列模式 |
4 | 無 | 待定 |
5 | graphical.target | 圖形化模式,登入後進入圖形GUI模式 |
6 | 無 | 重啟模式,預設執行級別不能設為6,否則不能正常啟動。執行init6機器就會重啟 |
-
命令格式:
- systemctl [command] [unit.target]
-
command引數如下表
引數 | 描述 |
---|---|
get-default | 取得當前的target |
set-default | 設定指定的target為預設的執行級別 |
isolate | 切換到指定的執行級別 |
unit.target | 上面列出的執行級別 |
-
設定系統級別:
init [編號] ---臨時設定 systemctl set-default [系統啟動級別] ---永久
-
檢視系統級別檔案儲存路徑
[root@localhost /]# cd /usr/lib/systemd/system [root@localhost system]# ls lrwxrwxrwx. 1 root root 15 Dec 9 18:58 runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Dec 9 18:58 runlevel1.target -> rescue.target drwxr-xr-x. 2 root root 50 Dec 9 18:58 runlevel1.target.wants lrwxrwxrwx. 1 root root 17 Dec 9 18:58 runlevel2.target -> multi-user.target drwxr-xr-x. 2 root root 50 Dec 9 18:58 runlevel2.target.wants lrwxrwxrwx. 1 root root 17 Dec 9 18:58 runlevel3.target -> multi-user.target drwxr-xr-x. 2 root root 50 Dec 9 18:58 runlevel3.target.wants lrwxrwxrwx. 1 root root 17 Dec 9 18:58 runlevel4.target -> multi-user.target drwxr-xr-x. 2 root root 50 Dec 9 18:58 runlevel4.target.wants lrwxrwxrwx. 1 root root 16 Dec 9 18:58 runlevel5.target -> graphical.target drwxr-xr-x. 2 root root 50 Dec 9 18:58 runlevel5.target.wants lrwxrwxrwx. 1 root root 13 Dec 9 18:58 runlevel6.target -> reboot.target
-
示例如下:
# 1、獲得當前的執行級別 [root@localhost ~]# systemctl get-default multi-user.target # 2、設定預設的執行級別為mulit-user [root@localhost ~]# systemctl set-default multi-user.target [root@localhost ~]# systemctl get-default multi-user.target # 3、在不重啟的情況下,切換到執行級別mulit-user下 [root@localhost ~]# systemctl isolate multi-user.target # 4、在不重啟的情況下,切換到圖形介面下 [root@localhost ~]# systemctl isolate graphical.target
-
補充:解決忘記密碼問題,通過單使用者模式解決
# 通過單使用者模式修改密碼 重啟,虛擬機器 在啟動選擇系統核心介面,按 e 鍵進入單使用者模式 找到 linux16 開頭行,刪除 ro , 並且在 ro 處新增 rw init=/sysroot/bin/sh 按 ctrl + x 進行系統重新引導 執行 chroot /sysroot 執行 passwd root 執行 touch /.autorelabel 執行 Ctrl + D 兩次 reboot重啟系統
8、變數載入檔案(環境變數)
-
檔案資訊:/etc/profile
-
作用說明:配置環境變數和別名檔案
-
增加環境變數有兩種方式:
- 臨時新增
- 永久新增
-
增加環境變數的格式:
- export ’[環境變數名] = [路徑]
示例如下:
export PYTHON_HOME='D:/python'
-
檢視本機的環境變數:
- printenv命令 : 檢視所有的環境變數
- echo $PYTHON_HOME : 檢視某一個環境變數
示例如下:
# 修改或新增環境變數主要修改以下四個檔案和目錄內新增.shw
# 修改下面兩個檔案
/etc/profile
/etc/bashrc
# 修改下面兩個檔案
~/.bash_profile
~/.bashrc
# 目錄
/etc/profile.d/ # 在該目錄下建立檔案後要新增執行許可權
# 讀取環境變數的幾種情況,以及使用檔案的先後順序
1、重啟
/etc/profile.d --> /etc/profile --> /etc/bashrc --> ~/.bashrc --> ~/.bash_profile
2、切換使用者
/etc/profile.d --> /etc/bashrc --> ~/.bashrc
ps:
useradd [使用者名稱]
su [使用者名稱]
3、重新登入使用者
1、su - [使用者名稱]
/etc/profile.d --> /etc/profile --> /etc/bashrc --> ~/.bashrc --> ~/.bash_profile
2、ssh root@192.168.15.101
/etc/profile.d --> /etc/profile --> /etc/bashrc --> ~/.bashrc --> ~/.bash_profile
9、登入提示檔案
- 檔案資訊 1:/etc/motd (登入之後提示的資訊)
- 作用說明:檔案中內容,會在使用者登入系統之後進行顯示
- 檔案資訊 2:/etc/issue (登入之前提示的資訊)
- 作用說明:檔案中內容,會在使用者登入系統之前進行顯示
示例如下:
# 登入之後提示小火龍圖畫,issue檔案也是一樣的
[root@localhost ~]# vim /etc/motd
\ / \ //\
\ |\___/| / \// \\
/0 0 \__ / // | \ \
/ / \/_/ // | \ \
@_^_@'/ \/_ // | \ \
//_^_/ \/_ // | \ \
( //) | \/// | \ \
( / /) _|_ / ) // | \ _\
( // /) '/,_ _ _/ ( ; -. | _ _\.-~ .-~~~^-.
(( / / )) ,-{ _ `-.|.-~-. .~ `.
(( // / )) '/\ / ~-. _ .-~ .-~^-. \
(( /// )) `. { } / \ \
(( / )) .----~-.\ \-' .~ \ `. \^-.
///.----..> \ _ -~ `. ^-` ^-_
///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~
/.-~
重要目錄說明(/usr目錄說明)
- 檔案資訊:/usr/local
- 作用說明:編譯安裝軟體的預設目錄
示例如下:
# yum安裝python:
yum install python3
重要目錄說明(/var目錄說明)
-
重要檔案-重要日誌檔案1:
- 檔案資訊:/var/log/messages
- 作用說明:軟體安裝執行以及系統執行異常日誌檔案
-
重要檔案-重要日誌檔案2:
-
檔案資訊:/var/log/secure (說明:此檔案具有日誌切割功能)
-
作用說明:系統使用者登入情況日誌資訊
-
檔案使用:grep 'Failed' /var/log/secure
-
檢視日誌:
# 先檢視5行吧,太多了佔地
[root@localhost log]# head -5 /var/log/messages
Dec 12 16:13:02 localhost rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-55.el7" x-pid="1470" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Dec 12 16:47:59 localhost systemd: Started Delayed Shutdown Service.
Dec 12 16:47:59 localhost systemd-shutdownd: Shutting down at Sun 2021-12-12 16:57:59 CST (poweroff)...
Dec 12 16:48:08 localhost systemd-shutdownd: Shutdown canceled.
Dec 12 17:01:01 localhost systemd: Started Session 3 of user root.
重要目錄說明(/proc目錄說明)
- 重要檔案-重要資訊檔案1:
- 檔案資訊:/proc/cpuinfo
- 作用說明:用於檢視系統CPU資訊情況檔案
- 相關命令:lscpu
[root@localhost proc]# lscpu
或
[root@localhost proc]# cat cpuinfo
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz
Stepping: 10
CPU MHz: 2303.999
BogoMIPS: 4607.99
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0
- 重要檔案-重要資訊檔案
- 檔案資訊:/proc/meminfo
- 作用說明:用於檢視系統記憶體資訊情況檔案
- 相關命令:free -h
示例如下:
[root@localhost proc]# head -5 /proc/meminfo
MemTotal: 995676 kB
MemFree: 689728 kB
MemAvailable: 672864 kB
Buffers: 2104 kB
Cached: 94548 kB
# 用free看記憶體資訊會更直觀
[root@localhost proc]# free -h
total used free shared buff/cache available
Mem: 972M 185M 673M 7.5M 113M 656M
Swap: 0B 0B 0B
- 重要檔案-重要資訊檔案
- 檔案資訊:/proc/loadavg
- 作用說明:用於檢視系統負載資訊情況檔案,用於衡量系統繁忙程度
- 相關命令:w
示例如下:
[root@localhost proc]# cat loadavg
0.13 0.04 0.05 1/113 1839
0.13 :1分鐘內CPU負載
0.04 :5分鐘內CPU負載
0.05 :15分鐘內CPU負載
負載:當前系統的所有程式佔用CPU的時間比
[root@localhost proc]# w
19:19:11 up 1:55, 1 user, load average: 0.08, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.15.1 17:24 7.00s 0.10s 0.01s w
# w命令的資料來源是/proc/loadavg
-
重要檔案-重要資訊檔案
-
檔案資訊:/proc/mounts
-
作用說明:用於檢視系統掛載資訊情況檔案
-
相關命令:mount : 掛載
umount : 解除安裝掛載
df - h : 檢視掛載
-
示例如下:
[root@localhost proc]#
[root@localhost proc]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 100G 2.2G 98G 3% /
/dev/sda1 509M 132M 378M 26% /boot
tmpfs 98M 0 98M 0% /run/user/0
補充知識:
- dev是操作硬體的入口
- 解析檔案順序,先本地(hosts)後配置