vim編輯器 與etc目錄
- 2020 年 9 月 1 日
- 筆記
第1章 目錄結構
1.1 vim vim故障
vim 是vi的升級版本 vi類似於文本文檔 vim類似於notepad++ 編輯
必須先安裝vim命令
yum -y install vim # 必須能上網 ping外網 ping www.baidu.com
1.1.1 使用vim
vim 文件 相對路徑|絕對路徑 # 文件不存在則自動創建
vim的幾種模式說明:
a. vim編輯文件剛進入的界面 稱為命令模式
b. 可以往文本內些內容的模式 稱為編輯模式
c. 可以退出保存、可以查找內容的模式 稱為底行模式
1.1.2 模式間如何轉換
命令行模式--->輸入i--->編輯模式--->esc回到命令行模式 命令行模式--->輸入:--->進入底行模式--->esc回到命令行模式 命令行模式--->輸入i--->編輯模式--->esc命令行模式--->:進入底行模式--->wq退出文本
PS: 想要退出必須要在底行模式 在編輯模式不能直接到底行模式 必須先回到命令行模式
編輯模式–>命令行模式 使用 esc鍵
底行模式–>命令行模式 使用 esc鍵
1.1.3 命令行模式快捷方式
a # 在光標所在處的後面進入編輯模式 A # 快速移動光標到行尾進入編輯模式 i # 在光標所在的位置進入編輯模式 I # 快速移動光標到行首進入編輯模式 o # 在光標所在行的下一行進入編輯模式(新增加一行) O # 在光標所在行的上一行進入編輯模式(新增加一行) s # 刪除光標所在字母 並進入編輯模式 S # 刪除光標所在的行 並進入編輯模式 C # 刪除光標所在到行尾 並進入編輯模式 ZZ # 快速保存並退出 u # 撤銷操作 可以撤銷到最原始的狀態 沒保存的前提下操作 快速移動光標操作 $ # 快速移動光標到行尾 End # 快速移動光標到行尾 ^ # 快速移動光標到行首 0 # 快速移動光標到行首 Home # 快速移動光標到行首 G # 快速移動光標到文件的尾部 gg # 快速移動光標到文件的首行(第一行) 10gg # 快速移動到第10行 10G # 快速移動到第10行
1.1.4 底行模式快捷鍵
命令行-->:--->底行模式 :wq 保存並退出 :q 退出不保存 :wq! 強制保存並退出 :q! 強制不保存退出 w :write 寫入 q: quit退出 :set nu 查看行號 set nonu 取消行號 / TCP 搜索內容 需要記憶 第一步: 在命令行模式 輸入 / 第二步: 在/後面輸入想要的查找的內容 然後回車 第三步:按n 往下查找 按大N 往上查找內容 ?搜索內容 n 往上 N 往下 (了解) PS: 在搜索內容的過程中 想要退出 直接輸入:q :wq
1.1.5 vim的複製粘貼 刪除
yy # 複製當前光標所在的行
3yy # 複製光標所在往下3行
p # 粘貼複製的內容到光標所在的下一行
3p # 粘貼三次複製的內容
dd # 刪除當前光標所在的行(剪切)
2dd # 刪除2行
dG # 刪除光標所在到行尾
dw # 刪除一個單詞 連續的字符串
r # 替換指定的字符信息
R # 連續替換多個字符信息
1.1.6 vim 故障
a. vim 後面必須跟文件
b. vim 命令必須安裝
c. vim 不能編輯目錄
d. vim 編輯文件的過程
在vim編輯文件的時候 系統默認會生成一個 .文件名.swp 命名的隱藏文件
如果正常編輯保存退出 系統會把隱藏的文件 移動成新文件
如果沒有正常退出 則隱藏文件會被保留 在編輯文本的時候會提示 有swp交換文件
1.1.7 模式vim故障
第一步:
使用vim 編輯oldboy.txt文件輸入aaaaa
第二步:
直接關閉xshell連接
第三步:
使用xshell連接上使用vim編輯 oldboy.txt
1.1.7.1 什麼原因導致vim提示swap文件
a. 沒有正常保存退出 直接關閉xshell連接 按了ctrl+z
b. 服務器直接斷電
c. 多人編輯同一個文件
d. 單人多窗口編輯同一個文件
解決方法:
a. 新增加的內容需要恢復
第一步:
vim -r oldboy.txt # -r 恢復交換文件中的內容 然後回車 把swp的內容進行恢復
第二步:
正常保存並退出:wq
第三步:
刪除隱藏交換文件 .oldboy.txt.swp
b. 不需要恢復新增加的內容
直接刪除隱藏交換文件 .oldboy.txt.wap 即可
ls
-a 查看linux下的隱藏文件 隱藏文件的特點: 文件的前面都帶點.
df -h 查看磁盤使用情況(人類可讀方式)
1.2 操作系統目錄
1.2.1 windows 系統目錄結構
C: D: E: F: \文件夾
可以理解為是多顆樹組成
Linux系統目錄結構 a. 一切都是從根開始 b. 類似一棵倒掛的樹 有目錄層次的樹 c. Linux的目錄可以掛載到不同的設備上 d. 可以理解成一棵樹 e. 是所有的硬件設備 都必須有一個入口才能正常訪問 入口文件稱為目錄(可以是自己創建、可以是系統自帶空目錄)
1.2.2 通過掛載cdrom理解linux的目錄結構
第一個步驟:
把鏡像文件放入DVD光驅
第二個步驟:
所有的硬件設備都在/dev目錄下
在系統中找到DVD硬件設備 不能cd和cat查看
[root@oldboyedu-lnb ~]# ll /dev/cdrom lrwxrwxrwx. 1 root root 3 Jul 17 12:34 /dev/cdrom -> sr0
第三個步驟:
創建一個門 掛載 # 掛載的目錄如果有內容 則會隱藏 卸載後會出現
[root@oldboyedu-lnb ~]#mkdir /data [root@oldboyedu-lnb ~]# mount /dev/cdrom /data mount: /dev/sr0 is write-protected, mounting read-only
第四個步驟:
通過門(/data) 訪問cdrom的數據 /data相當於正常的目錄
第五個步驟:
關閉訪問cdrom的門 卸載
[root@oldboyedu-lnb ~]# umount /data
PS:
1. 卸載的時候不要在門裏面卸載(不要在掛載目錄下卸載)
2. 如果沒有在門裏面還提示忙
a. 關閉xshell重新連接
b. 使用umount -f 強制卸載
PS: Linux下磁盤的表示方法
sda # 表示系統的第一塊磁盤
sda1 # 表示系統的第一塊磁盤的第一個分區 /boot
sda2 # 表示系統的第一塊磁盤的第二個分區 swap
sda3 # 表示系統的第一塊磁盤的第三個分區 /
安裝操作系統相當於是給磁盤做什麼風格的裝修
windows: 中式風格
直接可以訪問分區 訪問可移動設備 訪問硬件
Linux: 歐式風格
所有的硬件都沒有門 自己創建門進去訪問數據
1.2.3 mv move 移動 remove 移除 類似於windows的剪切
語法格式:
mv [參數選項] 源文件 目標文件
mv 源文件 新的文件名
[root@oldboyedu-lnb ~]# [root@oldboyedu-lnb ~]# #移動/oldboy下的oldboy.txt文件 到當前的目錄 [root@oldboyedu-lnb ~]# mv /oldboy/oldboy.txt ./ [root@oldboyedu-lnb ~]# ll total 4 -rw-r--r--. 1 root root 5 Jul 21 09:08 oldboy.txt [root@oldboyedu-lnb ~]# ll /oldboy/oldboy.txt ls: cannot access /oldboy/oldboy.txt: No such file or directory [root@oldboyedu-lnb ~]# [root@oldboyedu-lnb ~]# #把oldboy.txt 修改為test.txt [root@oldboyedu-lnb ~]# mv oldboy.txt test.txt [root@oldboyedu-lnb ~]# ll total 4 -rw-r--r--. 1 root root 5 Jul 21 09:08 test.txt [root@oldboyedu-lnb ~]# mv test.txt /tmp/ [root@oldboyedu-lnb ~]# ll /tmp/test.txt -rw-r--r--. 1 root root 5 Jul 21 09:08 /tmp/test.txt
移動目錄
[root@oldboyedu-lnb ~]# mv oldboy1 oldboy2 oldboy3 oldboy4 /tmp/
1.2.4 系統文件目錄
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用「/」表示
根文件系統(rootfs):root filesystem
文件名稱區分大小寫
以.開頭的文件為隱藏文件
路徑分隔的 /
文件有兩類數據:
元數據:metadata
數據:data
文件系統分層結構:LSB Linux Standard Base
FHS: (Filesystem Hierarchy Standard)
文件名最長255個位元組
包括路徑在內文件名稱最長4095個位元組
藍色–>目錄 綠色–>可執行文件 紅色–>壓縮文件 淺藍色–>鏈接文件 灰色–>其他文件
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們
標準Linux文件系統(如ext4),文件名稱大小寫敏感
例如:MAIL, Mail, mail, mAiL
Linux下的文件類型
- 普通文件 d 目錄文件 b 塊設備 c 字符設備 l 符號鏈接文件 p 管道文件pipe s 套接字文件socket
第2章 /etc下的重要文件
2.1 網卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet # 網絡類型 以太網 Fastethernet 快速以太網
BOOTPROTO=none # 獲取IP地址的方式
a. none 手動指定 常用
b. static 手動指定 常用
c.dhcp 自動獲取IP地址 不用
NAME=eth0 # 網卡在系統中的名字 系統的邏輯名稱
UUID=23bfda9a-1954-428b-aa9f-72ee10ab57e5 # 系統會給每個設備都會分配一 個標識符 等同於硬件設備的名稱 在網卡的配置中可以刪除
DEVICE=eth0 # 硬件設備的名字
ONBOOT=yes # 是否激活設備 yes是激活狀態
IPADDR=10.0.0.200 # IP地址 使用xshell連接服務器的IP地址 使用 ip a 查看的IP地址
IP地址 虛擬機內唯一
PREFIX=24 # 子網掩碼 決定了當前局域網內可用的IP地址數量 一個房間裝多少個人
a. PREFIX=24
b.NETMASK=255.255.255.0
c. /24 可用IP地址 10.0.0.1-10.0.0.254
d. IP地址不能衝突 網關10.0.0.2 vmnet8 10.0.0.1
GATEWAY=10.0.0.2 # 網關 去互聯網的必經之路 類似於大門
a. route -n查看當前的網關
b. 硬件網關在公司和IDC機房 中是 有專門的一個路由器上配置
c. 雲平台服務器網關和IP不需要自己配置 自動分配的
DNS1=223.5.5.5 # DNS 域名解析服務
DNS2=114.114.114.114
把域名解析成IP地址
www.baidu.com —-> 服務器的IP地址39.156.66.18
PS: !cat 調用最後一次執行cat的命令
注:雲服務器不需要配置網卡
精簡後的網卡配置
TYPE=Ethernet # 網絡類型 以太網 Fastethernet 快速以太網 BOOTPROTO=none # 獲取IP地址的方式 a. none 手動指定 常用
b. static 手動指定 常用
c.dhcp 自動獲取IP地址 不用
NAME=eth0 # 網卡在系統中的名字 系統的邏輯名稱 DEVICE=eth0 # 系統會給每個設備都會分配一 個標識符 等同於硬件設備的名稱 在網卡的配置中可以刪除 ONBOOT=yes # 是否激活設備 yes是激活狀態 IPADDR=10.0.0.200 # IP地址 使用xshell連接服務器的IP地址 使用 ip a 查看的IP地址
IP地址 虛擬機內唯一
PREFIX=24 # 子網掩碼 決定了當前局域網內可用的IP地址數量 一個房間裝多少個人 GATEWAY=10.0.0.2 # 網關 去互聯網的必經之路 類似於大門 DNS1=223.5.5.5 # DNS 域名解析服務
2.2 配置完成後需要重啟網卡:
方法1: 重啟後沒有任何輸出信息 說明網卡配置正確
CentOS7.X systemctl restart network CentOS6.X service network restart /etc/init.d/network restart
方法2: ifdown eth0 && ifup eth0
關閉 eth網卡 開啟eth0網卡 開啟的時候會自動加載ifcfg-eth0的配置文件
如果先執行ifdown eth0 會導致無法遠程連接
&& 前一條命令執行成功後 才執行後面的命令
2.3 /etc/hostname
作用: 主機名稱 方便多台服務器之間相互連接
2.3.1 查看當前的主機名稱
a. 通過命令提示符查看
[root@oldboyedu-lnb ~]#
————-
主機名稱
b. 通過命令查看當前的主機名稱
[root@oldboyedu-lnb ~]# hostname oldboyedu-lnb
2.3.2 臨時修改主機名稱 在當前系統中生效 重啟後失效
第一步: 使用hostname+主機名稱 臨時修改
[root@oldboyedu-lnb ~]# hostname test
第二步: 重新遠程連接服務器 不需要重啟操作系統
[root@test ~]#
2.3.3 永久修改主機名稱 直接修改配置文件 必須重啟操作系統才能生效
[root@test ~]# cat /etc/hostname oldboyedu-lnb [root@oldboyedu-lnb ~]# echo test01 > /etc/hostname 修改主機名為test01
2.3.4 臨時修改主機名稱+永久修改主機名稱 重啟後必須生效
[root@test01 ~]# cat /etc/hostname test01
第一個步驟: 使用命令修改主機名
[root@test01 ~]# hostnamectl set-hostname oldboyedu-lnb [root@test01 ~]# cat /etc/hostname oldboyedu-lnb
第二個步驟: 重新遠程連接服務器
PS:如果配置了多個主機名 則第一個生效
[root@test01 ~]# cat /etc/hostname test01
oldboyedu-lnb
2.4 /etc/fstab file system table 文件作用: 開機自動掛載硬件的配置文件
UUID=91daf9b9-e872-41e9-86cc-cef1a3c70318 / xfs defaults 0 0
1 2 3 4 5 6
1: UUID 設備的唯一標識 硬件的一種標識方法 可以是UUID 可以是sda3
系統為硬件分配的一個標識符
如何查看設備的標識符
blkid 直接回車查看
[root@oldboyedu-lnb ~]# blkid /dev/sda1: UUID="efcbe32a-cd6e-494b-95f0-bcbe8c021af0" TYPE="xfs" /dev/sda2: UUID="fb10d54e-1d99-43fa-a4bc-510540fe31c0" TYPE="swap" /dev/sda3: UUID="91daf9b9-e872-41e9-86cc-cef1a3c70318" TYPE="xfs" /dev/sr0: UUID="2018-05-03-20-55-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
2: 掛載點 硬件設備的入口 門 / 目錄
3: xfs 文件系統類型 CentOS7.X 默認是xfs
4: defaults 默認的參數 決定能不能在硬件設備中刪除和讀取數據
5: 0 是否對磁盤進行備份 0是不備份 1是備份 不需要備份 影響磁盤使用速度和使用率
6: 0 是否對磁盤進行檢查 fsck 0不檢查 1檢查 不檢查
示例: 開機自動掛載cdrom
第一步: 插入鏡像文件到光驅
第二步: 在當前系統中進行掛載測試
[root@oldboyedu-lnb ~]# mount /dev/cdrom /data
第三步: 寫入fstab開機自動掛載
1. 硬件名稱或者UUID
cdrom
blkid 查看硬件設備的UUID
2. 寫入fstab
vim /etc/fstab
UUID=2018-05-03-20-55-23-00 /data iso9660 defaults 0 0
第四步: 重啟測試是否自動掛載
1.reboot
2.df -h 查看是否自動掛載到/data 目錄
[root@oldboyedu-lnb ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.6G 18G 8% / devtmpfs 477M 0 477M 0% /dev tmpfs 488M 0 488M 0% /dev/shm tmpfs 488M 7.7M 480M 2% /run tmpfs 488M 0 488M 0% /sys/fs/cgroup /dev/sr0 4.2G 4.2G 0 100% /data
PS: 不想開機自動掛載
注釋掉#
#UUID=2018-05-03-20-55-23-00 /data iso9660 defaults 0 0
2.5 /etc/resolv.conf 文件作用: 配置DNS服務器
223.5.5.5—>阿里雲服務器
DNS作用: 域名解析 把域名解析成對應的IP地址
例: 自己購買一台雲服務器 116.63.0.10
搭建一個社交平台—->域名訪問—>註冊–>chunming.com cn org net
域名服務器上配置—>綁定域名—>chunming.com—IP地址綁定在一起
瀏覽器—>輸入chunming.com—>DNS服務器—>返回服務器的真實IP地址116.63.0.10
瀏覽器—> 116.63.0.10 建立連接
DNS服務器 都是免費使用 免費讓我們解析域名
公司自己內部搭建的DNS服務器 解析速度快 運營商 IDC機房自己的DNS服務器
公用DNS服務器
223.5.5.5 阿里雲DNS服務器
114.114.114.114 電信DNS服務器
8.8.8.8 谷歌的DNS服務器
202.106.0.20 北京聯通
正常訪問網站的流程
瀏覽器輸入網址www.oldboyedu.com —> DNS服務器—>返回真實IP—->瀏覽器—>IP地址建立連接
租房—–>中介—->房東
比較兩個DNS配置文件:
1. /etc/resolv.conf 和 網卡的配置ifcfg-eth0 都可以配置DNS 兩個配置文件的不同點: /etc/resolv.conf ---> nameserver 223.5.5.5 網卡配置ifcfg-eth0--> DNS1=223.5.5.5 2. 網卡如果配置了DNS 重啟網卡會覆蓋resolv.conf 3. 網卡中如果不配置DNS 不會覆蓋resolv.conf 4. 在resolv.conf中配置DNS服務器 直接生效 查看當前系統使用的哪個DNS服務器解析的 yum -y install bind-utils # 安裝解析命令
[root@oldboyedu-lnb ~]# nslookup www.baidu.com Server: 114.114.114.114 Address: 114.114.114.114#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 39.156.66.18 Name: www.a.shifen.com Address: 39.156.66.14
5. 網卡配置文件不是直接生效 需要重啟
6. 在工作中使用resolv.conf配置DNS
7. 如果不配置DNS服務器 對服務器有什麼影響
a. 不能訪問域名 可以訪問IP地址
b. 不影響用戶正常使用
8. 如果一個DNS出問題 會繼續向下請求DNS
nameserver 223.5.5.5
nameserver 114.114.114.114
ifcfg-eth0
DNS1=223.5.5.5
DNS2=114.114.114.114
2.6 /etc/issue # 清空登陸操作系統前的提示信息 提高系統的安全性 系統優化使用
[root@oldboyedu-lnb ~]# cat /etc/issue \S Kernel \r on an \m [root@oldboyedu-lnb ~]# > /etc/issue
2.7 /etc/issue.net # 清空遠程連接前的提示信息 提高系統的安全性 系統優化使用
2. 8 /etc/motd 文件作用: 登陸系統後顯示的內容 默認空文件
2.9 /etc/hosts 文件作用:域名和IP地址的對應關係表 好比是本地的DNS服務器
公司的內部測試 二階段學習
正常訪問一個網站的流程:
1.輸入www.oldboyedu.com
2.系統會查找本地的/etc/hosts文件 有沒有域名和IP地址的對應關係
3.如果有www.oldboyedu.com 10.0.0.200 系統會給瀏覽器返回域名的真實IP 而不需要在去
/etc/resolv.conf 中找DNS服務器去查找
4.如果沒有域名對應關係 則會去/etc/resolv.conf DNS服務器去找真實的IP地址
windows hosts文件的位置
C:\Windows\System32\drivers\etc
2.10 /etc/rc.local 文件的作用: 開機自動執行命令 或者是 自動啟動服務(開機自啟)
shell腳本: 把命令放入到文件中 按照順序執行 從上到下一步步的執行
1)開機自動執行命令 命令必須是可執行的
mkdir /data
2)加入開機自動執行 —–> Linux中的軟鏈接 類似於windows的快捷方式
a. 先給rc.local 一個執行權限(有沒有權限來運行這個命令) x execute
chmod +x /etc/rc.d/rc.local
b. 把命令寫入rc.local
服務器的開機自動運行
1) 關閉sshd開機自動啟動
[root@oldboyedu-lnb ~]# systemctl disable sshd
2) sshd服務加入到/etc/rc.local 實現開機自動啟動
vim /etc/rc.local systemctl start sshd
3) 重啟測試
PS: 上面的例子是系統自帶的服務 服務都有專門命令進行管理 systemctl
第三方應用程序、開發人員開發的應用程序(python) 寫入/etc/rc.local
2.11 /etc/inittab 文件作用: 設置開機運行級別配置文件
什麼是運行級別:
1)7個運行級別0-6
2)每一個運行級別表示不同的界面、實現不同的功能 類似於windows的正常登陸和安全模式
3)紅燈–> 停止 綠燈–>行 黃燈–>等
centos6.X 運行級別 runlevel centos7.x target
0# 表示關機狀態 如果配置文件中設置 為0 不能啟動操作系統 ----> poweroff.target a.不允許設置為0 b.可以使用 init 0 進行關機 1 # 表示單用戶模式 ----> rescue.target a.安全模式 在忘記密碼的時候 可以通過此級別來修改密碼 b.擁有root權限 登陸的時候不需要密碼 2 # 表示多用戶模式 ----> multi-user.target a. 沒有NFS b. 不用 3 # 表示完全多用戶 ----> multi-user.target a. 默認是用3運行級別 b. 工作中使用3運行級別 4 # 保留 待開發 ----> multi-user.target 5 # 表示帶桌面的操作系統 ----> graphical.target a. 必須安裝DESKTOP包才能使用 b. 工作中不使用 6 # 表示重啟操作系統 配置文件不能配置成級別6 進入死循環重啟狀態 --> reboot.target
4) 查看默認的運行級別 centos6和7
[root@oldboyedu-lnb ~]# runlevel N 3
5)centos6.x centos7.x 臨時修改運行級別
[root@oldboyedu-lnb ~]# init 6 # 在命令行臨時切換運行級別
6) centos6.x 永久修改運行級別
2.12 修改/etc/inittab文件
id:5:initdefault: # 設置開機運行在級別5 圖形化界面 工作中不修改
7) centos7.x 永久修改運行級別
centos7第二種查看運行級別的方法
[root@oldboyedu-lnb ~]# systemctl get-default multi-user.target
永久設置運行級別
systemctl set-default TARGET.target [root@oldboyedu-lnb ~]# systemctl set-default runlevel5.target # 設置為運行級別5
2.13 補充問題
什麼是啟動 # 在當前的操作系統中運行起來 通過雙擊鼠標運行
什麼是開機自動啟動 # 在重啟電腦後自動運行的程序 自動運行QQ 自動運行微信 自動運行紅蜘蛛
如果在/etc/rc.local中配置
systemctl enable sshd # 第一次開機自動運行命令 會執行成功
# sshd 服務會啟動嗎? 不會 會把sshd服務設置為開機自動啟動
# 在第二次重啟操作系統的時候 sshd會自動運行
2.14 /etc/profile 文件作用: 配置環境變量 永久生效
能夠保證我們正常使用操作系統
什麼是變量:
1) x=1 y=x+1 y=2
x 變量的名稱
1變量的值 可變的
2) 書本
目錄 —-> 內容
lg.jpg-10頁—> 圖片
3) 變量的分類
a. 普通變量 局部變量 自己定義的變量 類似於家規
b. 環境變量 全局變量 系統中存在的變量 類似於國法
4) 變量的定義方法 變量名稱不允許以數字開頭
a. 臨時定義變量
語法:
變量名稱=變量的值 # 等號兩端不允許有空格 後面的值可以是數字 字母 命令
[root@oldboyedu-lnb ~]# name=oldboy
b. 調用變量 $
[root@oldboyedu-lnb ~]# echo $name oldboy
c. 永久生效
vim /etc/profile name=oldboy
d. 及時生效 不需要xshell重新連接
source 和. 含義: 讓配置文件重新加載運行
[root@oldboyedu-lnb ~]# source /etc/profile [root@oldboyedu-lnb ~]# . /etc/profile
示例: 為什麼使用變量
1. 方便 變量可以重複調用
[root@oldboyedu-lnb ~]# eth0=/etc/sysconfig/network-scripts/ifcfg-eth0 [root@oldboyedu-lnb ~]# cat $eth0
2. 系統滿足我們操作需求 bin sbin 所有系統自帶的服務和第三方程序的執行命令都是在bin sbin下
執行命令的原理過程: PATH 設置的是所有命令的全路徑
a. 手動輸入命令 系統會在PATH變量中查找此命令的路徑
b. 如果PATH路徑中有命令所在的目錄 則會執行晨歌功
c. 如果沒有在PATH路徑則提示命令找不到
[root@oldboyedu-lnb ~]# ll /data/
total 56
-rwxr-xr-x. 1 root root 54080 Apr 11 2018 cat
[root@oldboyedu-lnb ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboyedu-lnb ~]# cat /etc/hosts
-bash: cat: command not found
[root@oldboyedu-lnb ~]# /data/cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
定義PATH變量
[root@oldboyedu-lnb ~]# PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data' [root@oldboyedu-lnb ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
第3章 /usr目錄
3.1 /usr/local 文件作用: 編譯安裝的軟件默認存放文件的位置
Linux中安裝軟件的方法:
第一種: yum安裝 最常用的安裝方式:
語法:
yum -y install package-name
參數選項:
-y : yes 在安裝過程中會提示是否繼續 手動輸入y 自動增加參數-y
yum安裝軟件的特點:
a. 能夠自動解決依賴問題
什麼是依賴
b. 類似於點外賣: 點水餃 辣椒 醋 大蒜 網紅辣醬 自動解決所有一切需求 不用我們去管
c. 知道軟件包的名字即可
d. 如何知道包的名字
1) 使用命令查找 不一定能查到
[root@oldboyedu-lnb ~]# yum provides wget wget-1.14-18.el7_6.1.x86_64
2) 百度查找
3) 使用yum -y install wget 安裝
e. 安裝的時候可以不帶版本號 也可以帶
常用
使用yum命令卸載軟件 # 卸載自動解決依賴問題
yum -y remove package.name
f.重新安裝
yum -y reinstall package.name
例子: 安裝Linux命令 rz 從windows上傳文件 sz 從Linux下載文件到windows
安裝 ifconfig命令
第一步 查找包名:
[root@oldboyedu-lnb ~]#yum provides rz
第二步 安裝軟件
[root@oldboyedu-lnb ~]# yum -y install lrzsz
PS:已安裝最新的軟件包的提示
Package lrzsz-0.12.20-36.el7.x86_64 already installed and latest version Nothing to do
PS: 自動補全的包
yum -y install bash-completion.noarch擴展自動補全包
注意事項: 安裝不上軟件包
1. YUM倉庫問題
2. YUM倉庫緩存倉庫
yum clean all # 清空yum緩存
3. 網絡原因 盡量使用國內的倉庫進行安裝
安裝python的依賴包 pip3.5 install python-name # 默認是國外的網站
如何使用國內的源進行安裝
pip install pythonname -i //pypi.tuna.tsinghua.edu.cn/simple //blog.csdn.net/qq_36949176/article/details/82939676
4. 命令錯誤 軟件包名稱
第二種: rpm安裝 必須先下載對應的.rpm包
1)語法:
rpm -ivh 軟件包名稱.rpm 結尾
參數選項:
-i install -v verbose 顯示安裝過程 -h 顯示安裝進度 -q query 查詢 -a 查看所有的安裝過的軟件 -ql 顯示軟件所有的安裝文件
特點: 類似於點外賣 點水餃 買的速凍 鍋 水 勺子 碗 筷子 醬油醋 辣椒 大蒜
a. 不能自動解決依賴問題 手動安裝
b. 安裝必須先下載rpm包 執行的過程要注意 絕對路徑或者相對路徑
c. 安裝第三方軟件常用的方式
d. rpm包去哪裡下載 軟件的官網
e. 安裝過程需要什麼 手動安裝 #必要的依賴 可以使用yum安裝
2)查看軟件是否安裝
a. 直接執行命令回車
[root@oldboyedu-lnb ~]# wget -bash: /usr/bin/wget: No such file or directory
b. 使用which命令
[root@oldboyedu-lnb ~]# which wget /usr/bin/which:
no wget in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
c. 使用rpm -qa 查看
rpm -qa # 查看所有已經安裝過的軟件
[root@oldboyedu-lnb ~]# rpm -qa wget # 查看wget軟件是否安裝 [root@oldboyedu-lnb ~]# rpm -qa wget wget-1.14-18.el7_6.1.x86_64
d. 查看版本號的方式 了解
[root@oldboyedu-lnb ~]# wget --version GNU Wget 1.14 built on linux-gnu.
3) 使用rpm卸載軟件 卸載不支持解決依賴問題
rpm -e 軟件包名
[root@oldboyedu-lnb ~]# rpm -e wget --------- [root@oldboyedu-lnb ~]# rpm -qa jenkins jenkins-2.176.1-1.1.noarch [root@oldboyedu-lnb ~]# rpm -e jenkins-2.176.1-1.1.noarch
例子:
使用rpm安裝zsh-5.0.2-28.el7.x86_64.rpm 軟件包名
安裝
查看是否安裝成功
使用rpm卸載
使用yum卸載
查看安裝了哪些文件
查看命令的路徑在哪裡
第三種: 編譯安裝 特點: 自己備食材 餃子皮 餃子餡 油….
第一步:
下載源碼包
第二步:
cd 進入源碼包
第三步:
./configure # 自己選擇我想使用什麼功能
make
make install
特點:
a. 安裝時間久
b. 功能可定製
3.2 /var # variable 變化的 日誌經常發生變化
/var/log # 目錄 /var/log/messages # 系統默認的日誌文件 保存了系統的運行狀況 執行命令的信息
Jul 27 11:36:17 oldboyedu-lnb systemd: Started The Apache HTTP Server.
時間 主機名稱 系統命令: 啟動httpd服務
/var/log/secure # 系統默認的日誌文件 保存了安全方面的信息 登陸 退出操作系統
grep ‘Failed’ /var/log/secure # 過濾文件本中包含Failed的行 如果出現的失敗次數過多 系統存在安全隱患
查看日誌的最後10行 tail -n 顯示尾巴n行
[root@oldboyedu-lnb ~]# tail /var/log/messages [root@oldboyedu-lnb ~]# tail -n 2 /var/log/messages # 顯示最後2行內容
查看日誌的前10行 head -n 顯示頭部n行
[root@oldboyedu-lnb ~]# head /var/log/messages Jul 22 09:19:15 oldboyedu-lnb kernel: e1000: eth0 NIC Link is Down Jul 22 09:19:19 oldboyedu-lnb kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None Jul 22 10:01:01 oldboyedu-lnb systemd: Started Session 54 of user root. Jul 22 10:01:01 oldboyedu-lnb systemd: Starting Session 54 of user root. Jul 22 10:04:58 oldboyedu-lnb systemd-logind: Removed session 35. Jul 22 10:05:23 oldboyedu-lnb systemd-logind: Removed session 37. Jul 22 10:08:39 oldboyedu-lnb systemd: Started Session 55 of user root. Jul 22 10:08:39 oldboyedu-lnb systemd-logind: New session 55 of user root. Jul 22 10:08:39 oldboyedu-lnb systemd: Starting Session 55 of user root. Jul 22 10:12:41 oldboyedu-lnb systemd-logind: Removed session 52.
3.3 /var 日誌特點
a. 最新的日誌在文件的最底部
b. 系統的問題 優先查看messages
c. 服務的日誌默認的位置 在/var/log下以自身服務命名的目錄下
cat /var/log/httpd/access_log
d. 服務日誌如果解決不了 注意查看messages
e. 日誌的切割 文件過大 統計較慢 系統配置內存
1. 方便我們更快速的統計數據
2. 日誌的安全性
3. 系統的日誌 默認都是自動切割
4. 服務的日誌 自研發的服務 定時任務+腳本的方式
把源日誌移動走 不要cp 速度慢
把相關的服務重新加載
第4章 /proc目錄
4.1 proc
文件作用: 內存的映射文件 Linux一切皆文件
4.1.1 /proc/cpuinfo
文件作用: 查看cpu信息
processor : 0 # 核心數量 從0開始是第一個
physical id: 0 # CPU的個數 從0開始是第一個
[root@oldboyedu-lnb ~]# grep 'processor' /proc/cpuinfo processor : 0 processor : 1 processor : 2 processor : 3 [root@oldboyedu-lnb ~]# grep 'physical id' /proc/cpuinfo physical id : 0 physical id : 0 physical id : 1 physical id : 1
4.1.2 使用命令的方式查看cpu信息
lscpu
CPU(s): 4 # 核心數量
On-line CPU(s) list: 0-3 # 核心數量列表
Socket(s): 2 # CPU的個數
4.2 /proce/meminfo
文件作用: 查看內存信息
MemTotal 997980 kB # 總共的 MemFree 727608 kB # 空閑的 MemAvailable 705476 kB # 可用的 Buffers 2092 kB # 寫buffer Cached 85084 kB # 讀cache
4.2.1 命令查看內存的信息
free -h 以下列方式顯示內存的詳細信息
B = bytes
K = kilos
M = megas
G = gigas
T = teras
[root@oldboyedu-lnb ~]# free -h total used free shared buff/cache available Mem: 974M 123M 707M 7.6M 143M 687M Swap: 1.0G 0B 1.0G
4.3 /proc/loadvag
作用: 系統的平均負載
[root@oldboyedu-lnb ~]# cat /proc/loadavg 0.08 0.03 0.05 2/130 1546 1分鐘 5分鐘 15分鐘
a. 什麼是系統負載 對外提供訪問的服務器
負載是衡量服務器空閑的一個程度 一個指標
如何負載的值 達到了核心的總數 當前的系統處於繁忙狀態
CPU核心數量4核心—負載4 ===== 繁忙
CPU核心數量16核心–負載16 ===== 繁忙
b. 什麼對負載的影響最大
CPU 磁盤
4.3.1 使用命令查看負載信息
[root@oldboyedu-lnb ~]# uptime 10:17:44 up 41 min, 1 user, load average: 0.00, 0.01, 0.05 -----------------
[root@oldboyedu-lnb ~]# w 10:19:23 up 43 min, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.0.1 09:36 3.00s 0.19s 0.02s w
[root@oldboyedu-lnb ~]# top # 動態的方式實時顯示硬件信息的變化 top - 10:32:26 up 56 min, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 997980 total, 716984 free, 128604 used, 152392 buff/cache KiB Swap: 1048572 total, 1048572 free, 0 used. 698564 avail Mem 退出top命令 q 或者ctrl+c
4.3.2 擴展命令:
ps axu 查看系統中所有運行的進程信息
[root@oldboyedu-lnb ~]# ps axuf|grep pts/0 root 1212 0.0 0.5 158804 5560 ? Ss 09:36 0:00 sshd: root@pts/0 root 1453 0.0 0.3 116460 3196 pts/0 Ss 09:36 0:00 -bash root 1568 0.1 0.5 149316 5292 pts/0 S+ 10:20 0:00 vim /etc/passwd root 1597 0.0 0.0 112704 960 pts/1 S+ 10:22 0:00 grep --color=auto pts/0 [root@oldboyedu-lnb ~]# kill -9 1453
全能型人才 不可替代
ps : 查看進程信息
[root@oldboyedu-lnb ~]# ps axu|grep pts
| 管道 前面命令的結果做為後面命令的輸出
[root@oldboyedu-lnb ~]# cat 1.txt|grep '白星' 白星 87.5 白星 67.00 [root@oldboyedu-lnb ~]# grep '白星' 1.txt 白星 87.5 白星 67.00
4.4 /proc/mounts # 了解 掛載信息