VMware使用Ubuntu教程

1 VMware

1.1 安裝VMware

在VMware官網(wǎng)下載安裝程序,傻瓜式安裝教程完成虛擬機安裝。

1.2 VMware創(chuàng)建虛擬機

  • Step1:文件 -> 新建虛擬機(Ctrl + N),根據(jù)創(chuàng)建向?qū)?chuàng)建虛擬機。步驟如下截圖:


    創(chuàng)建新虛擬機

    選擇自定義(高級)

    保持默認(rèn)選項,下一步

    選擇稍后安裝操作系統(tǒng)

    選擇Linux和Ubuntu64位

    自定義虛擬機名稱和存放位置

    選擇核數(shù)夠用就行,否則影響Windows性能

    選擇內(nèi)存夠用就行,一般情況保持推薦值

    選擇NAT模式

    選擇LSI Logic

    選擇SCSI

    選擇創(chuàng)建新虛擬磁盤

    按需設(shè)置磁盤大小

    設(shè)置虛擬機文件名稱

    點擊完成

    成功創(chuàng)建虛擬機界面

1.3 安裝Ubuntu

  • Step2:確認(rèn)是否開啟Windows系統(tǒng)虛擬化,任務(wù)欄右鍵 -> 任務(wù)管理器 -> 性能選項卡 -> 虛擬化(已啟用)


    確實虛擬化是否開啟
  • Step3:選擇Ubuntu鏡像,安裝Ubuntu系統(tǒng)


    點擊編輯虛擬機設(shè)置

    選擇安裝鏡像,安裝Ubuntu系統(tǒng)

    點擊開啟此虛擬機,開始安裝(安裝完成后點擊此選項是啟動Ubuntu系統(tǒng))

    點擊安裝Ubuntu

    選擇正常安裝,點擊繼續(xù)

    選擇截圖選項,點擊現(xiàn)在安裝

1.4 配置虛擬機網(wǎng)絡(luò)

  • 設(shè)置虛擬網(wǎng)絡(luò)
    • 編輯 -> 虛擬網(wǎng)絡(luò)編輯器 -> 更改設(shè)置(選擇NAT模式那行)


      點擊更改設(shè)置
    • 設(shè)置子網(wǎng)IP,此IP第3位數(shù)字自定義。后續(xù)創(chuàng)建的多個虛擬機IP均會已此IP的前3為為固定值開頭。

2 Ubuntu系統(tǒng)

2.1 設(shè)置固定IP

  • 設(shè)置各虛擬機固定IP,啟動虛擬機進(jìn)入系統(tǒng),右上角逐級展開菜單,點擊有線設(shè)置


    系統(tǒng)網(wǎng)絡(luò)設(shè)置

    點擊設(shè)置圖標(biāo)

    設(shè)置固定IP,選擇IPv4 -> 手動,地址(IP):192.168.3.100,子網(wǎng)掩碼:255.255.255.0,網(wǎng)關(guān):192.168.3.2(如果無法訪問公網(wǎng),手動設(shè)置DNS)

2.2 Ubuntu安裝SSH

Ubuntu系統(tǒng)安裝后,默認(rèn)沒有SSH模塊,導(dǎo)致外部SSH客戶端無法通過SSH連接虛擬機中得Ubuntu系統(tǒng)。在虛擬得的Ubuntu系統(tǒng)中,通過命令行安裝SSH模塊。

Ubuntu桌面,鼠標(biāo)右鍵 -> 在終端中打開,彈出終端命令行窗口


Ubuntu命令行窗口
$ sudo apt update 
  • 安裝SSH
$ sudo apt install ssh
  • 如果使用SSH客戶端連接Ubuntu系統(tǒng)是,提示root用戶沒有權(quán)限登錄,在Ubuntu系統(tǒng)命令行按一下步驟修改配置文件
$ sudo vim /etc/ssh/sshd_config

將PermitRootLogin修改為yes

  • 然后重啟ssh服務(wù)
$ service ssh restart

2.3 管理系統(tǒng)服務(wù)

  • systemctl命令
    • 基本語法
    systemctl start | stop | restart | status 服務(wù)名
    
    查看服務(wù)名的方法:查看/usr/lib/systemd/system目錄下的文件列表,該目錄下每個文件都對應(yīng)一個服務(wù)。

2.3.1 控制網(wǎng)絡(luò)管理服務(wù)

關(guān)閉此服務(wù)網(wǎng),不會關(guān)閉系統(tǒng)網(wǎng)絡(luò),僅僅是管理了網(wǎng)絡(luò)管理器而已(桌面右上角網(wǎng)絡(luò)管理圖標(biāo)將不可見(2.1小節(jié)),配置網(wǎng)絡(luò)會不方便)。

  • 查看網(wǎng)絡(luò)服務(wù)狀態(tài)
$ sudo systemctl status NetworkManager
  • 停止網(wǎng)絡(luò)服務(wù)
$ sudo systemctl stop NetworkManager
  • 啟動網(wǎng)絡(luò)服務(wù)
$ sudo systemctl start NetworkManager
  • 重啟網(wǎng)絡(luò)服務(wù)
$ sudo systemctl restart NetworkManager

2.3.2 設(shè)置后臺服務(wù)自啟配置

  • 查看服務(wù)開機啟動狀態(tài)
$ sudo systemctl list-unit-files
  • 關(guān)閉指定服務(wù)的自動啟動
$ sudo systemctl disable 服務(wù)名
  • 開啟指定服務(wù)的自動啟動
$ sudo systemctl enable 服務(wù)名

2.3.3 防火墻管理

  • 查看防火墻狀態(tài)
$ sudo systemctl status ufw
  • 臨時關(guān)閉防火墻
$ sudo systemctl stop ufw
  • 設(shè)置開機時啟動防火墻
$ sudo systemctl enable ufw
  • 設(shè)置開機時關(guān)閉防火墻
$ sudo systemctl disable ufw
  • 查看防火墻是否開機自啟,disable表示開機不自啟,enable表示開機自啟
$ sudo systemctl is-enable ufw
  • 放行TCP協(xié)議的80端口,如果不指定協(xié)議,默認(rèn)會放行TCP和UDP協(xié)議
$ sudo ufw allow 80/tcp
  • 放行HTTP協(xié)議特定范圍的端口(8000~8100),如果不指定協(xié)議,默認(rèn)會放行TCP和UDP協(xié)議
$ sudo ufw allow 8000:8100/http
  • 刪除放行HTTP協(xié)議特定范圍的端口(8000~8100),如果不指定協(xié)議,默認(rèn)會放行TCP和UDP協(xié)議
$ sudo ufw delete allow 8000:8100/http
  • 檢查ufw的規(guī)則和狀態(tài)列表
$ sudo ufw status verbose

2.4 關(guān)機重啟命令

  • 關(guān)閉并斷電,等同于shutdown -h now
$ poweroff
  • 重啟,等同于shutdown -r now
$ reboot

2.5 修改主機名和host映射

  • 修改命令語法(修改hostnam需要重啟系統(tǒng)才會生效)
$ sudo hostnamectl --static set-host 新主機名
  • 查看主機名命令
$ hostname
  • 如果遠(yuǎn)程訪問的主機,需要通過hostname訪問連接Ubuntu系統(tǒng),需要設(shè)置當(dāng)前訪問源主機的hosts文件。以windows為例,hosts文件中新增一下內(nèi)容
192.168.3.100 主機名

2.6 apt軟件包管理器

  • 很多情況我們需要通過命令行安裝軟件,使用apt驚醒軟件包的管理非常方便,下面列出常用的apt命令:
    • list - 根據(jù)名稱列出軟件包
    • search - 搜索軟件包描述
    • show - 顯示軟件包細(xì)節(jié)
    • install - 安裝軟件包
    • reinstall - 重新安裝軟件包
    • remove - 移除軟件包
    • autoremove - 卸載所有自動安裝且不再使用的軟件包
    • update - 更新可用軟件包列表
    • upgrade - 通過 安裝/升級 軟件來更新系統(tǒng)
    • full-upgrade - 通過 卸載/安裝/升級 來更新系統(tǒng)
    • edit-sources - 編輯軟件源信息文件
    • satisfy - 使系統(tǒng)滿足依賴關(guān)系字符串
  • 安裝net-tools,這樣才能使用ifconfig命令查看網(wǎng)絡(luò)配置信息
$ apt install net-tools

2.7 常用基礎(chǔ)命令

2.7.1 man命令查看幫助

  • 命令語法
$ man 命令
  • 例如,查看ls命令得幫助
$ man ls

2.7.2 help命令查看幫助

  • 命令語法
$ help 命令
  • 例如,查看ls命令得幫助
$ help cd

2.7.3 常用快捷鍵

常用快捷鍵 功能
ctrl + c 停止進(jìn)程
ctrl + l 清除當(dāng)前命令行屏幕,等同命令:reset
ctrl + q 退出
tab鍵 善用此鍵,命令行提示,補全,防止敲錯命令
上下鍵 查找執(zhí)行過程中得命令(查找執(zhí)行過的命令)
ctrl + u 清除當(dāng)前敲的命令

2.7.4 文件目錄類命令

  • pwd,查看當(dāng)前工作目錄路徑
    pwd:print working directory

    • 示例
    $ pwd
    /root
    
  • cd,切換目錄

    • 基本語法
    $ cd 目錄 | 目錄全路徑
    
    • 示例,切換到根目錄
    $ cd /
    
    • 示例,切換到home目錄(絕對路徑)
    $ cd /home
    
  • ls,列出當(dāng)前目錄內(nèi)容

    • 查看全部文件及文件夾
    $ ls
    
    • 查看全部文件及文件夾,包含隱藏文件
    $ ls -a
    
  • 以列表形式,查看全部文件及文件夾的詳細(xì)信息,包含隱藏文件

    $ ll
    
    • 以列表形式,查看全部文件及文件夾的詳細(xì)信息,不包含隱藏文件
    $ ls -l
    
  • mkdir,創(chuàng)建目錄

    • 基本語法
    $ mkdir [選項] 要創(chuàng)建的目錄名稱
    
    • 示例,在當(dāng)前路徑創(chuàng)建一個名字為test的目錄
    $ mkdir test
    
    • 示例,創(chuàng)建一個多級目錄
    $ mkdir -p /opt/dev/projects
    
  • touch,創(chuàng)建空文件

    • 基本語法
    $ touch 創(chuàng)建的文件名稱
    
    • 示例,在當(dāng)前路徑創(chuàng)建一個名字為config的空文件
    $ touch config
    
    • 示例,使用相對路徑,創(chuàng)建一個名字為config的空文件
    $ touch test/config 
    
    • 示例,使用絕對路徑,創(chuàng)建一個名字為config的空文件
    $ touch /opt/dev/projects/config 
    
  • cp,復(fù)制文件或目錄

    • 基本語法
    $ cp [選項] source target
    

    source:源文件或目錄,target:目標(biāo)文件或目錄

    • 示例,復(fù)制當(dāng)前文件夾中得config文件,到/opt/dev目錄中
    $ cp config /opt/dev
    
    • 示例,使用-r選項,遞歸復(fù)制/home/eugene目錄,到/opt目錄中
    $ cp -r /home/eugene /opt
    
    • 示例,復(fù)制時,強制覆蓋文件或文件夾,不進(jìn)行是否覆蓋提示
    $ \cp config /opt/dev
    
  • rm,刪除文件或目錄

    • 基本語法
    $ rm [選項] 刪除的文件/目錄
    
    • 示例,刪除指定絕對路徑的文件
    $ rm /opt/dev/projects/config
    
    • 示例,使用-r選項,遞歸刪除目錄中得內(nèi)容
    $ rm -r /opt/dev/projects
    
    • 示例,使用-r和-f選項組合,強制執(zhí)行遞歸刪除操作,不進(jìn)行是否刪除確認(rèn)提示
    $ rm -rf /opt/dev/projects
    
    • 示例,使用-v選項,顯示刪除指令的詳細(xì)執(zhí)行過程
    $ rm -v /opt/dev/projects/config
    
  • mv,移動文件或目錄,或重命名文件

    • 基本語法
      • 重命名文件名
      $ mv oldFileName newFileName
      
    • 重命名文件名
    $ mv 需要移動的文件 移動后文件的存放路徑
    
    • 示例,修改/opt/dev/projects目錄下的config文件名,為abc
    $ mv /opt/dev/projects/config /opt/dev/projects/abc
    
    • 示例,移動文件config,到/opt/dev目錄下
    $ mv /opt/dev/projects/config /opt/dev
    
  • cat,查看文件內(nèi)容,該命令適合查看文件行數(shù)少,一屏能顯示完整的文件

    • 基本語法
    $ cat [選項] 待查看的文件
    
    • 示例,查看/opt/dev/projects目錄下的config文件內(nèi)容
    $ cat /opt/dev/projects/config
    
    • 示例,查看/opt/dev/projects目錄下的config文件內(nèi)容。顯示行號(包括空白行)
    $ cat -n /opt/dev/projects/config
    
  • more,查看文件內(nèi)容,該命令適合查看文件行數(shù)多,一屏不能顯示完整的文件

    • 基本語法
    $ more 待查看的文件
    
    • 示例,查看/opt/dev/projects目錄下的config文件內(nèi)容
    $ cat /opt/dev/projects/config
    
    • 快捷鍵
    常用快捷鍵 功能
    空格鍵(Space) 向下翻一頁
    Enter 向下翻一行
    q 代表立刻離開more,不在顯示該文件內(nèi)容
    ctrl + f 向下滾動一屏
    = 輸出當(dāng)前的行號
    :f 輸出文件名和當(dāng)前行的行號
  • less,查看文件內(nèi)容,該命令比more命令更加強大,同樣適合查看文件行數(shù)多,一屏不能顯示完整的文件

    • 基本語法
    $ less 待查看的文件
    
    • 示例,查看/opt/dev/projects目錄下的config文件內(nèi)容
    $ less /opt/dev/projects/config
    
    • 快捷鍵
    常用快捷鍵 功能
    空格鍵(Space) 向下翻一頁
    pagedown 向下翻一行
    pageup 向上翻一行
    /字符串 向下搜尋字符串功能,n:向下查找,N:向上查找
    ?字符串 向上搜尋字符串功能,n:向下查找,N:向上查找
  • tail,輸出文件尾部內(nèi)容

    • 基本語法
      • 查看文件尾部10行內(nèi)容
      $ tail 待查看的文件
      
      • 查看文件尾部5行內(nèi)容,5可以根據(jù)需要查看的行數(shù)自行變更其值
      $ tail -n 5 待查看的文件
      
      • 實時追蹤文檔所有更新
      $ tail -f 待查看的文件
      
  • echo,輸出內(nèi)容到控制臺,也常用于shell腳本

    • 基本語法
    $ echo [選項] 待輸出的內(nèi)容
    
    • 使用-e,選項時,待輸出內(nèi)容使用雙引號""開始和結(jié)束。同時可使用下列轉(zhuǎn)義符
    常用快捷鍵 功能
    \ 輸出\本身
    \n 換行符
    \t 制表符,也就是Tab鍵
  • >,輸出重定向

    • 基本語法
    $ ls -l > 內(nèi)容輸出的目標(biāo)文件
    
    $ cat 指定文件 > 內(nèi)容輸出目標(biāo)文件
    
    $ echo "指定內(nèi)容" > 內(nèi)容輸出的目標(biāo)文件
    
    • 示例,查看當(dāng)前目錄結(jié)構(gòu),輸出到info.txt文件
    $ ls -l > info.txt
    
  • >>,輸出追加內(nèi)容

    • 基本語法
    $ ls -l >> 內(nèi)容輸出的目標(biāo)文件
    
    $ cat 指定文件 >> 內(nèi)容輸出目標(biāo)文件
    
    $ echo "指定內(nèi)容" >> 內(nèi)容輸出的目標(biāo)文件
    
    • 示例,查看當(dāng)前目錄結(jié)構(gòu),追加輸出到info.txt文件(追加到末尾,不覆蓋原有內(nèi)容)
    $ ls -l >> info.txt
    
    • 示例,采用echo,追加制定內(nèi)容到info.txt文件(追加到末尾,不覆蓋原有內(nèi)容)
    $ echo print >> info.txt
    
  • ln,軟連接
    軟鏈接也稱為符號鏈接,類似與Windows中的快捷方式。有自己的數(shù)據(jù)塊,主要存放了鏈接其它文件的路徑。

    • 基本語法,給源文件或目錄創(chuàng)建一個軟鏈接。源文件或目錄,最好使用完整全路徑
    $ ln -s 源文件或目錄 軟鏈接名
    
    • 刪除軟鏈接
    $ rm -rf 軟鏈接名
    
    • 使用ll命令,查詢軟鏈接,列表屬性第1位是l,尾部會有位置指向
    $ ll
    

2.7.5 VIM

  • 安裝VIM
$ sudo apt install vim
  • 一般模式
    當(dāng)vim命令打開一個文件時,默認(rèn)就是一般模式。常用操作語法如下:
語法 功能
yy 復(fù)制光標(biāo)所在的當(dāng)前行
y 數(shù)字 y 復(fù)制一行(從光標(biāo)當(dāng)前行,直到后續(xù)n行)
p 箭頭移動到目的行粘貼
u 撤銷上一步操作
dd 刪除光標(biāo)所在的當(dāng)前行
d 數(shù)字 d 刪除光標(biāo)(含)后多少行
  • 編輯模式
    當(dāng)處于一般模式時,按一些按鍵可進(jìn)入編輯模式,按ESC鍵可退出編輯模式。常用操作語法如下:
語法 功能
i 當(dāng)前光標(biāo)位置不變,進(jìn)入編輯模式,此時可輸入需要的內(nèi)容
a 當(dāng)前光標(biāo)位置后移一個位置,進(jìn)入編輯模式
o 當(dāng)前光標(biāo)下移一行(相當(dāng)于Enter),進(jìn)入編輯模式
I 當(dāng)前光標(biāo)移動到所在行最前面
A 當(dāng)前光標(biāo)移動到所在行末尾
O 當(dāng)前光標(biāo)移動到所在行的上一行
  • 指令模式
    當(dāng)處于一般模式時,輸入[? / :]3個中得任意一個按鍵可進(jìn)入指令模式(此時指令模式輸入操作在最底部一行),按ESC鍵可退出編輯模式。常用操作語法如下:
命令 功能
:w 保存
:q 退出
:! 強制執(zhí)行
/要查找得內(nèi)容 n:查找下一個,N:向上查找
:noh 取消高亮顯示
:set nu 顯示行號
:set nonu 關(guān)閉行號
:%s/pld/new/g 替換內(nèi)容,/g global替換匹配到得所有內(nèi)容

2.7.6 時間命令設(shè)置

  • 顯示年-月-日 時:分:秒
$ data "+%Y-%m-%d %H:%M:%S"
$ echo `data "+%Y-%m-%d %H:%M:%S"`
$ data "+%F %T"
  • 手動設(shè)置系統(tǒng)時間(一般情況不會使用)
    • 語法
    $ data -s 字符串時間
    
    • 示例,設(shè)置為2024-05-05 14:30:50
    $ data -s "2024-05-05 14:30:50"
    

2.7.7 Ubuntu用戶管理

2.7.7.1 添加用戶

  • 基本語法
$ adduser 新增加的用戶名
  • 示例,新增一個用戶名為eugene的用戶
$ sudo adduser eugene

2.7.7.2 查看及切換用戶

  • 設(shè)置和更改密碼
    • 基本語法
    $ passwd 用戶名
    
    • 示例,更改用戶名為eugene的用戶的密碼
    $ sudo passwd eugene
    
  • 查看用戶
    • id查看用戶名為eugene的用戶是否存在
    $ id eugene
    
    • 使用cat命令,查看/etc/passwd文件來確定創(chuàng)建了哪些用戶
    $ cat /etc/passwd
    
  • 使用su命令,切換用戶
    • 基本語法
      • 切換用戶,只能獲取用戶的執(zhí)行權(quán)限,不能獲取環(huán)境變量
      $ su 用戶名
      
      • 切換用戶,同時獲取用戶的執(zhí)行權(quán)限和環(huán)境變量
      $ su - 用戶名
      

2.7.7.3 刪除及修改用戶

  • 刪除用戶
    • 基本語法
      • 刪除用戶,但保留/home目錄下的用戶主目錄
      $ userdel 用戶名
      
      • 同時刪除用戶和/home目錄下的用戶主目錄
      $ userdel -r 用戶名
      
  • 修改用戶
    • 基本語法
      • 刪除用戶,但保留/home目錄下的用戶主目錄
      $ usermod -l 新用戶名 老用戶名
      
      • 同時刪除用戶和/home目錄下的用戶主目錄
      $ usermod -d /home/新用戶名 -m 新用戶名
      

2.7.8 Ubuntu用戶組管理

每個用戶,默認(rèn)都有一個和用戶名同名的用戶組。
系統(tǒng)可以對一個用戶組中的所有用戶進(jìn)行集中管理。

用戶組的管理涉及用戶組的添加、刪除、修改。用戶組的添加、刪除、修改實際上就是對/etc/group文件的更新。

2.7.8.1 用戶組增刪改查

  • 新增用戶組
    • 基本語法
    $ groupadd 組名
    
    • 示例,新增一個test組
    $ sudo groupadd test
    
  • 刪除用戶組
    • 基本語法
    $ groupdel 組名
    
  • 修改用戶組
    • 基本語法
    $ sudo groupmod -n 新組名 現(xiàn)有組名
    
  • 查看現(xiàn)有組
$ cat /etc/group

2.7.8.2 添加移除用戶

Linux和Unix系統(tǒng)中,每個用戶都有一個主組(Primary Group)和可能的多個附加組(Sencondary Grops或Additional Groups)。

用戶的主組,在創(chuàng)建用戶時被指定,默認(rèn)與用戶名相同。當(dāng)創(chuàng)建一個新文件或目錄時,默認(rèn)情況下,這些文件或目錄,會被分配給用戶的主組。
用戶的附加組,不會影響創(chuàng)建的文件,僅影響權(quán)限。

  • 修改主組
    • 基本語法
    $ usermod -g 組名 用戶名
    
  • 將用戶添加到附加組
    • 基本語法
    $ usermod -aG 組名 用戶名
    
  • 將用戶從組中刪除
    • 基本語法
    $ deluser 用戶名 組名
    

2.7.8.3 sudo組管理

sudo命令設(shè)置普通用戶的root權(quán)限,可簡單理解為sudo是將指定命令給到root用戶去執(zhí)行。

默認(rèn)情況,只有安裝系統(tǒng)時創(chuàng)建的那個用戶才能使用sudo命令。其他用戶需要管理員將需要使用sudo命令得用戶,添加到sudo組中。

  • sudo命令免密配置,編輯/etc/sudoers文件,在下列行中,最后一個ALL前面,添加NOPASSWD:。注意,/etc/sudoers沒有寫權(quán)限,vim保存退出時需要使用:wq!強制保存退出。
  • 使用創(chuàng)建系統(tǒng)時創(chuàng)建的用戶(擁有sudo命令使用權(quán)限的用戶),將eugene用戶添加到sudo組中,使其有用使用sudo命令的權(quán)限
    • 基本語法
    $ sudo usermod -aG 組名 用戶名
    
    • 示例
    $ sudo usermod -aG sudo eugene
    

2.8 文件權(quán)限

2.8.1 文件屬性介紹

Linux是一種典型的多用戶系統(tǒng),不同的用戶處于不同地位,擁有不同的權(quán)限。為了保護(hù)系統(tǒng)安全性,Linux系統(tǒng)對不同用戶訪問同一文件(包括目錄文件)的權(quán)限做了不同規(guī)定。在Linux中我們可以使用ll和ls -l命令來顯示一個文件的屬性及文件所屬用戶和組。

  • 文件屬性,從左到右10個數(shù)字表示。如果沒有權(quán)限就會出現(xiàn)"-"號。


    文件權(quán)限說明
    • 0-9數(shù)字表示:
      1. 0首位,表示類型。在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等。
        • "-",代表文件。
      • "d",代表目錄。
      • "l",代表鏈接文檔(link file)。
      1. 1-3位確定屬主(該文件所有者)擁有該文件的權(quán)限,用戶權(quán)限。3個數(shù)字或字母,從左到右分別代表:讀、寫、執(zhí)行權(quán)限。
      2. 4-6位確定屬組(所有者的同組用戶)擁有該文件的權(quán)限,用戶組權(quán)限。3個數(shù)字或字母,從左到右分別代表:讀、寫、執(zhí)行權(quán)限。
      3. 7-9位確定其他用戶擁有該文件的權(quán)限,用戶及用戶組以外用戶權(quán)限。3個數(shù)字或字母,從左到右分別代表:讀、寫、執(zhí)行權(quán)限。

2.8.2 文件權(quán)限修改

  • 使用chmod命令改變文件或文件夾權(quán)限


    修改文件權(quán)限說明.png
  • 第1中方式
    • 基礎(chǔ)語法:
    $ chmod [{u | g | o | a}{+ | - |=}{r | w |x}]
    
    u:所屬者權(quán)限,g:所屬組權(quán)限,o:其他用戶權(quán)限,a:所有(u+g+o)
    • 屬主權(quán)限增加執(zhí)行權(quán)限
    $ chmod u + x
    
    • 屬組權(quán)限去除寫權(quán)限
    $ chmod a - w
    
  • 第2中方式
    • 基礎(chǔ)語法:
    $ chmod [mode=421] [文件或文件夾]
    
    r=4,w=2,x=1,例如,屬組權(quán)限設(shè)置讀寫權(quán)限:r+w=4+2=6,設(shè)置讀寫執(zhí)行權(quán)限:r+w+x=4+2+1=7。
    • test.txt文件的屬主權(quán)限設(shè)置為讀寫(rw),屬組權(quán)限設(shè)置為讀執(zhí)行,其他設(shè)置為讀
    $ chmod 654 test.txt
    
    • test.txt文件的屬主權(quán)限,屬組權(quán),其他均設(shè)置為讀寫執(zhí)行(rwx),一般不會這樣設(shè)置權(quán)限,因為這樣的權(quán)限等于裸奔。
    $ chmod 777 test
    

2.8.3 文件改變所有者和所屬組

  • 使用chmod命令改變所有者
    • 基本語法
    $ chmod [-R] 權(quán)限所屬用戶名 文件或文件夾
    
    -R選項,遞歸操作
  • 使用chgrp令改變所屬組
    • 基本語法
    $ chgrp 權(quán)限所屬用戶組 文件或文件夾
    
  • 使用chmod令同時改變所屬用戶和所屬組
    • 基本語法
    $ chmod 權(quán)限所屬用戶:權(quán)限所屬用戶組 文件或文件夾
    

2.9 搜索查找

2.9.1 使用find命令

find命令從指定目錄向下遞歸遍歷各個子目錄,將滿足條件的文件顯示在終端。

  • 基本語法
$ find [搜索范圍(指定目錄)] [選項]
  • 示例,使用-name選項,指定文件名查找。本示例是查找當(dāng)前目錄下,所有.txt結(jié)尾的文件。
$ find ./ -name "*.txt"

2.9.2 使用grep命令過濾查找及"|"管道符

管道符,“|”,表示將前一個命令的處理結(jié)果,傳遞給后面命令處理。

  • 基本語法
$ grep 選項 查找內(nèi)容 [源文件]

-n,此選項表示顯示過濾查找匹配內(nèi)容的行號。
-v,此選項表示反向匹配搜索,也就是排除指定查找內(nèi)容以外的內(nèi)容作為查詢結(jié)果。

2.10 壓縮與解壓縮

2.10.1 使用gzip和gunzip實現(xiàn)壓縮解壓縮

  • 基本語法:
    • gzip,壓縮文件,只能將文件壓縮成.gz后綴的壓縮文件
    $ gzip 文件
    
    • gunzip,完成解壓縮,.gz后綴的壓縮文件
    $ gzip 文件.gz
    
  • 限制
    • 只能進(jìn)行文件壓縮,不能壓縮目錄
    • 壓縮文件后,原文件不保留(刪除掉原文件)

2.10.2 使用tar實現(xiàn)壓縮解壓縮

  • 基本語法:
    $ tar [選項] 最終壓縮包的文件名.tar.gz 需要打包的目錄(最后這個參數(shù)可以指定多個文件或目錄,使用空格分隔)
    
    • '-c'選項,生成.tar打包文件
    • '-v'選項,顯示詳細(xì)信息
    • '-f'選項,指定壓縮后的文件名
    • '-z'選項,打包同時壓縮,如果是一個.gz文件需要加此選項,否則就不加
    • '-x'選項,解壓.tar文件
      一般選項會組合使用,例如:
    • 打包目錄,通常使用-zcvf
    $ tar -zcvf project1_backup.tar.gz /opt/module/project1
    
    • 解壓,通常使用-zxvf,同時在待解壓的壓縮文件后,跟上'-C'選項,指定解壓后的存放目錄(不使用此選項指定目錄,默認(rèn)為當(dāng)前葉索文件同級目錄)
    $ tar -zxvf project1_backup.tar.gz -C /opt/module/project1
    

2.11 硬件監(jiān)控

2.11.1 磁盤空間監(jiān)控及查看

  • df命令,查看磁盤空間使用情況
    • 配合-h選項(此選項以較易閱讀的GBytes,MBytes,KBytes磁盤容量單位顯示已使用,未使用等系統(tǒng)磁盤容量),查看文件系統(tǒng)整體使用量
    $ df -h
    
  • du命令,查看指定文件和目錄的磁盤使用空間
    • 基本語法
    $ du 目錄/文件名
    
    • 使用'-a'選項,遞歸顯示當(dāng)目錄下所有文件目錄及子目錄大小使用情況。
    • 使用'-h'選項,以較易閱讀單位顯示已使用容量。
    • 使用'-sh'選項,只查看當(dāng)前磁盤暫用了多少磁盤空間,不進(jìn)行遞歸。

2.11.2 進(jìn)程監(jiān)控

2.11.2.1 ps命令,查看當(dāng)前系統(tǒng)進(jìn)程狀態(tài)

  • 基本語法
    • 查看系統(tǒng)中得所有進(jìn)程
    $ ps -aux | grep 查看內(nèi)容或者進(jìn)程ID(PID)
    
    • 可以查看子父進(jìn)程之間的關(guān)系
    $ ps -ef | grep 查看內(nèi)容或者進(jìn)程ID(PID)
    
    • 選項說明
      • '-a',選擇所有進(jìn)程
      • '-u',顯示所有用戶的所有進(jìn)程
      • '-x',顯示沒有終端的進(jìn)程
  • 'ps -aux',顯示信息說明(共11列),代表信息順序如下:
    • 創(chuàng)建進(jìn)程的用戶名
    • 進(jìn)程ID(PID)
    • 進(jìn)程占用的CPU百分比
    • 進(jìn)程占用的內(nèi)容百分比
    • 虛擬內(nèi)存的大小,單位KB
    • 占用實際物理內(nèi)存的大小,單位KB
    • 該進(jìn)程在哪個終端中運行
    • 進(jìn)程的狀態(tài):R:運行,S:睡眠,T:停止?fàn)顟B(tài),s:包含子進(jìn)程,+:位于后臺。
    • 啟動時間
    • 占用CPU的計算時間
    • 啟動進(jìn)程使用的命令
  • 'ps -ef',顯示信息說明(共8列),代表信息順序如下:
    • 創(chuàng)建進(jìn)程的用戶名
    • 進(jìn)程ID(PID)
    • 父進(jìn)程ID(父進(jìn)程被KILL關(guān)掉,其下的子進(jìn)程也會隨之全部關(guān)掉)
    • CPU用于執(zhí)行計算的優(yōu)先級(數(shù)值越小,優(yōu)先級越高[IO密集型運算]。反之優(yōu)先級越低[CUP密集型運算,需要花大量時間運行])
    • 啟動時間
    • 該進(jìn)程在哪個終端中運行
    • CPU占用的時間
    • 啟動進(jìn)程使用的命令

2.11.2.2 kill命令關(guān)掉系統(tǒng)進(jìn)程

  • 基本語法
    • 用過進(jìn)程號(PID)殺死進(jìn)程,選項'-9'表示強迫進(jìn)程立即停止
    $ kill -9 進(jìn)程ID(PID)
    
    • 用過進(jìn)程名稱殺死進(jìn)程,支持通配符,在系統(tǒng)因負(fù)載過大而變得很慢的時候很有
    $ killall 進(jìn)程名稱
    

2.11.3 內(nèi)存監(jiān)控

  • 基本語法
    • 查看服務(wù)器總體內(nèi)存(單位:兆)
    $ free -m
    

2.11.4 網(wǎng)絡(luò)端口占用監(jiān)控

  • 基本語法
    • 查看指定進(jìn)程(PID)的網(wǎng)絡(luò)信息
    $ netstat -anp | grep 進(jìn)程號
    
    • 查看網(wǎng)絡(luò)端口號占用情況
    $ netstat -nlp | grep 端口號
    
    1. 'n',拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化為數(shù)字
    2. 'l',僅列出有在listen(監(jiān)聽)的服務(wù)狀態(tài)
    3. 'p',顯示哪個進(jìn)程在調(diào)用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容