主頁 > 後端開發 > 20210429# Linux的使用

20210429# Linux的使用

2021-04-29 18:35:50 後端開發


到達底部

@

目錄
  • Linux的使用
    • 參考
  • 第 1 章 Linux 開山篇
    • 1.1 本套 Linux 課程的內容介紹
    • 1.2 Linux 的學習方向
    • 1.3 Linux 的應用領域
      • 1.3.1個人桌面應用領域
      • 1.3.2服務器應用領域
      • 1.3.3嵌入式應用領域
    • 1.4 學習 Linux 的階段(高手進階程序)
    • 1.5 Linux 的學習方法和建議(很重要)
  • 第 2 章 基礎篇 Linux 入門
    • 2.1 Linux 介紹
    • 2.2 unix 是怎么來的
    • 2.3 Linux 是怎么來的
      • 2.3.1 GNU,人機互動
    • 2.4 linux 和 unix 關系一覽圖
    • 2.5 linux 和 Windows 比較
      • 2.5.1 作業中Linux的使用場景
  • 第 3 章 基礎篇 VM 和 Linux 系統(CentOS)安裝
    • 3.1 vm Centos
    • 3.2 vm 軟體和 CentOS 的安裝軟體
    • 3.3 VM 安裝的步驟
    • 3.4 CentOS安裝的步驟
    • 3.5 CentOS 的終端使用和聯網
    • 3.6 vmtools 安裝
      • 3.6.1介紹
    • 3.7 vmtools 的安裝和使用
      • 3.7.1安裝 vmtools 的步驟說明
      • 3.7.2使用 vmtools 來設定 windows 和 linux 的共享檔案夾
      • 3.7.3安裝 vmtools 的課堂練習
      • 3.7.4 安裝vmtools遇到的問題
  • 第 4 章 基礎篇 Linux 的目錄結構
    • 4.1 基本介紹
    • 4.2 目錄結構的具體介紹
    • 4.3 一些理解參考
    • 4.4 Linux 目錄總結一下
  • 第 5 章 實操篇 遠程登錄 Linux 系統
    • 5.1 為什么需要遠程登錄 Linux
      • 5.1.1示意圖
      • 5.1.2說明
    • 5.2 遠程登錄 Linux-Xshell5
    • 5.3 安裝 XShell5 并使用
      • 5.3.1安裝程序
      • 5.3.2XShell5 的關鍵配置
      • 5.3.3 XShel5 操作 Linux 系統
    • 5.4 遠程上傳下載檔案 Xftp5
      • 5.4.1XFtp5 軟體介紹
      • 5.4.2XFtp5 軟體的安裝
      • 5.4.3Xftp5 的配置和使用
      • 5.4.4如何解決 XFTP5 中文亂碼的問題
    • 5.5 Xftp5 和 XShell5 的使用
  • 第 6 章 實操篇 vi 和 vim 編輯器
    • 6.1 vi 和 vim 的基本介紹
    • 6.2 vi 和 vim 的三種常見模式
      • 6.2.1正常模式
      • 6.2.2插入模式/編輯模式
      • 6.2.3命令列模式
      • 6.3 快速入門案例
    • 6.4 vi 和 vim 三種模式的相互轉化圖
    • 6.5 快捷鍵的使用案例
    • 6.6 vim 和 vi 的快捷鍵鍵盤一覽圖
    • 6.7 vi 和 vim 課堂練習
  • 第 7 章 實操篇 開機、重啟和用戶登錄注銷
    • 7.1 關機&重啟命令
      • 7.1.1基本介紹
      • 7.1.2注意細節
    • 7.2 用戶登錄和注銷
      • 7.2.1基本介紹
      • 7.2.2使用細節
  • 第 8 章 實操篇 用戶管理
    • 8.1 基本介紹
    • 8.2 添加用戶
      • 8.2.1基本語法
      • 8.2.2實際案例
      • 8.2.3細節說明
    • 8.3 給用戶指定或者修改密碼
    • 8.4 洗掉用戶
      • 8.4.1基本語法
      • 8.4.2應用案例
      • 8.4.3思考題
    • 8.5 查詢用戶資訊
      • 8.5.1基本語法
      • 8.5.2應用實體
      • 8.5.3細節說明
    • 8.6 切換用戶
      • 8.6.1介紹
      • 8.6.2基本語法
      • 8.6.3應用實體
      • 8.6.4細節說明
    • 8.6-2 查看當前用戶/登錄用戶
    • 8.7 用戶組
      • 8.7.1介紹
      • 8.7.2增加組
      • 8.7.3案例演示
      • 8.7.4洗掉組
      • 8.7.5案例演示
    • 8.8 增加用戶時直接加上組
      • 8.8.1指令(基本語法)
      • 8.8.2案例演示
    • 8.9 修改用戶的組
      • 8.9.1指令(基本語法)
      • 8.9.2案例演示
    • 8.10 /etc/passwd 檔案
    • 8.11 /etc/shadow 檔案
    • 8.12 /etc/group 檔案
  • 第 9 章 實操篇 實用指令
    • 9.1 指定運行級別
    • 9.2 切換到指定運行級別的指令
      • 9.2.1基本語法
      • 9.2.2應用實體
      • 9.2.3面試題
      • 9.2.4課堂練習:
    • 9.3 幫助指令
      • 9.3.1介紹
      • 9.3.2man 獲得幫助資訊
      • 9.3.3 help 指令
      • 9.3.4當一個指令不熟悉如何學習的建議
    • 9.4 檔案目錄類
      • 9.4.1pwd 指令
      • 9.4.2 ls 指令
      • 9.4.3cd 指令
      • 9.4.4mkdir 指令
      • 9.4.5rmdir 指令
      • 9.4.6touch 指令
      • 9.4.7cp 指令[重要]
      • 9.4.8 rm 指令
      • 9.4.9 mv 指令
      • 9.4.10 cat 指令
      • 9.4.11 more 指令
      • 9.4.12 less 指令
      • 9.4.13 > 指令 和 >> 指令
      • 9.4.14 echo 指令
      • 9.4.15 head 指令
      • 9.4.16 tail 指令
      • 9.4.17 ln 指令
      • 9.4.18 history 指令
    • 9.5時間日期類
      • 9.5.1 date 指令-顯示當前日期
      • 9.5.2date 指令-設定日期
      • 9.5.3cal 指令
    • 9.6搜索查找類
      • 9.6.1find 指令
      • 9.6.2 locate 指令
      • 9.6.3 grep 指令和 管道符號 |
    • 9.7壓縮和解壓類
      • 9.7.1gzip/gunzip 指令
      • 9.7.2 zip/unzip 指令
      • 9.7.3 tar 指令
  • 第 10 章 實操篇 組管理和權限管理
    • 10.1 Linux 組基本介紹
    • 10.2檔案/目錄 所有者
      • 10.2.1 查看檔案的所有者
      • 10.2.2 修改檔案所有者
    • 10.3組的創建
      • 10.3.1 基本指令
      • 10.3.2 應用實體:
    • 10.4檔案/目錄 所在組
      • 10.4.1 查看檔案/目錄所在組
      • 10.4.2 修改檔案所在的組
    • 10.5其它組
    • 10.6 改變用戶所在組
      • 10.6.1 改變用戶所在組
      • 10.6.2 應用實體
    • 10.7權限的基本介紹
    • 10.8 rwx 權限詳解
      • 10.8.1 rwx 作用到檔案
      • 10.8.2 rwx 作用到目錄
    • 10.9檔案及目錄權限實際案例
    • 10.10 修改權限-chmod
      • 10.10.1 基本說明:
      • 10.10.2 第一種方式:+ 、-、= 變更權限
      • 10.10.3 第二種方式:通過數字變更權限
    • 10.11 修改檔案所有者-chown
      • 10.11.1 基本介紹
      • 10.11.2 案例演示:
    • 10.12 修改檔案所在組-chgrp
      • 10.12.1 基本介紹
      • 10.12.2 案例演示:
    • 10.13 最佳實踐-警察和土匪游戲
    • 10.14 課后練習
    • 10.15 課后練習題 2
  • 第 11 章 實操篇 crond 任務調度
    • 11.1原理示意圖
    • 11.2 概述
    • 11.3 基本語法
      • 11.3.1 常用選項
    • 11.4快速入門
      • 11.4.1 任務的要求
      • 11.4.2 步驟如下
      • 11.4.3 引數細節說明
    • 11.5任務調度的幾個應用實體
      • 11.5.1 案例 1:每隔 1 分鐘,就將當前的日期資訊,追加到 /tmp/mydate 檔案中
      • 11.5.2 案例 2:每隔 1 分鐘, 將當前日期和日歷都追加到 /home/mycal 檔案中
      • 11.5.3 案例 3: 每天凌晨 2:00 將 mysql 資料庫 testdb ,備份到檔案中
    • 11.6 crond 相關指令:
  • 第 12 章 實操篇 Linux 磁盤磁區、掛載
    • 12.1 磁區基礎知識
      • 12.1.1 磁區的方式:
      • 12.1.2 windows 下的磁盤磁區
    • 12.2 Linux 磁區
      • 12.2.1 原理介紹
      • 12.2.2 硬碟說明
      • 12.2.3 使用 lsblk 指令查看當前系統的磁區情況
    • 12.3 掛載的經典案例
      • 12.3.1 如何增加一塊硬碟
    • 12.4 具體的操作步驟整理
      • 12.4.2 虛擬機增加硬碟步驟 2
      • 12.4.3 虛擬機增加硬碟步驟 3
      • 12.4.4 虛擬機增加硬碟步驟 4
      • 12.4.5 虛擬機增加硬碟步驟 5
    • 12.5 磁盤情況查詢
      • 12.5.1 查詢系統整體磁盤使用情況
      • 12.5.2 查詢指定目錄的磁盤占用情況
    • 12.6 磁盤情況-作業實用指令
  • 第 13 章 實操篇 網路配置
    • 13.1 Linux 網路配置原理圖(含虛擬機)
    • 13.2 查看網路 IP 和網關
      • 13.2.1 查看虛擬網路編輯器
      • 13.2.2 修改 ip 地址(修改虛擬網路的 ip)
      • 13.2.3 查看網關
      • 13.2.4 查看 windows 環境的中 VMnet8 網路配置 (ipconfig 指令)
    • 13.3 ping 測驗主機之間網路連通
      • 13.3.1 基本語法
      • 13.3.2 應用實體
    • 13.4 linux 網路環境配置
      • 13.4.1 第一種方法(自動獲取)
      • 13.4.2 第二種方法(指定固定的 ip)
  • 第 14 章 實操篇 行程管理
    • 14.1 行程的基本介紹
    • 14.2 顯示系統執行的行程
      • 14.2.1 說明
      • 14.2.2 ps 指令詳解
      • 14.2.3 應用實體
    • 14.3 終止行程 kill 和 killall
      • 14.3.1 介紹:
      • 14.3.2 基本語法:
      • 14.3.3 常用選項:
      • 14.3.4 最佳實踐:
    • 14.4 查看行程樹 pstree
      • 14.4.1 基本語法:
      • 14.4.2 常用選項:
      • 14.4.3 應用實體:
    • 14.5 服務(Service)管理
      • 14.5.1 介紹:
      • 14.5.2 service 管理指令:
      • 14.5.3 使用案例:
      • 14.5.4 細節討論:
      • 14.5.5 查看服務名:
      • 14.5.6 服務的運行級別(runlevel):
      • 14.5.7 開機的流程說明
      • 14.5.8 chkconfig 指令
      • 14.5.9 應用實體:
      • 14.5.10 ? 使用細節
    • 14.6 動態監控行程
      • 14.6.1 介紹:
      • 14.6.2 基本語法:
      • 14.6.3 選項說明:
      • 14.6.4 應用實體:
      • 14.6.5 查看系統網路情況 netstat(重要)
  • 第 15 章 實操篇 RPM 和 YUM
    • 15.1 rpm 包的管理
      • 15.1.1 介紹
      • 15.1.2 rpm 包的簡單查詢指令:
      • 15.1.3 rpm 包名基本格式:
      • 15.1.4 rpm 包的其它查詢指令:
      • 15.1.5 卸載 rpm 包
      • 15.1.6 安裝 rpm 包
    • 15.2 yum
      • 15.2.1 介紹:
      • 15.2.2 yum 的基本指令
      • 15.2.3 yum 應用實體:
  • 第 16 章 JavaEE 定制篇 搭建 JavaEE 環境
    • 16.1 概述
      • 16.1.1 示意圖:
    • 16.2 安裝 JDK
      • 16.2.1 看老師演示,一會整理筆記:
      • 16.2.2 安裝步驟
      • 16.2.3 測驗是否安裝成功
    • 16.3 安裝 tomcat
      • 16.3.2 測驗是否安裝成功:
    • 16.4 Eclipse 的安裝
    • 16.5 mysql 的安裝和配置
      • 16.5.1 安裝的步驟和檔案
      • 16.5.2 說明
        • 一:卸載舊版本
        • 二:安裝MySQL
        • 三:配置MySQL
  • 第 17 章 大資料定制篇 Shell 編程
    • 17.1 為什么要學習 Shell 編程
    • 17.2 Shell 是什么
    • 17.3 shell 編程快速入門-Shell 腳本的執行方式
      • 17.3.1 腳本格式要求
      • 17.3.2 撰寫第一個 Shell 腳本
      • 17.3.3 腳本的常用執行方式
    • 17.4 shell 的變數
      • 17.4.1 Shell 的變數的介紹
      • 17.4.2 shell 變數的定義.
      • 17.4.3 ?定義變數的規則
      • 17.4.4 ?將命令的回傳值賦給變數(重點)
    • 17.5 設定環境變數
      • 17.5.1 基本語法
      • 17.5.2 快速入門
    • 17.6 位置引數變數
      • 17.6.1 介紹
      • 17.6.2 基本語法
      • 17.6.3 位置引數變數應用實體
    • 17.7 預定義變數
      • 17.7.1 基本介紹
      • 17.7.2 基本語法
      • 17.7.3 應用實體
    • 17.8 運算子
      • 17.8.1 基本介紹
      • 17.8.2 基本語法
    • 17.9 條件判斷
      • 17.9.1 ?基本語法
  • 非慷訓傳 true,可使用$?驗證(0 為 true,>1 為 false)
    • 17.9.2 ?應用實體
    • 17.9.3 ?常用判斷條件
    • 17.9.4 應用實體
    • 17.10流程控制
      • 17.10.1 if 判斷
      • 17.10.2 case 陳述句
      • 17.10.3 for 回圈
      • 17.10.4 while 回圈
    • 17.11 read 讀取控制臺輸入
      • 17.11.1 基本語法
      • 17.11.2 應用實體
    • 17.12函式
      • 17.12.1 函式介紹
      • 17.12.2 系統函式
      • 17.12.3 ?應用實體
      • 17.12.4 自定義函式
    • 17.13Shell 編程綜合案例
  • 第 18 章 Python 定制篇 開發平臺 Ubuntu
    • 18.1 Ubuntu 的介紹
    • 18.2 Ubuntu 的安裝

Linux的使用

感謝尚硅谷推出的視頻教程,感覺韓順平老師,

參考

序號 內容 鏈接
1 Linux_安裝VMWare https://blog.csdn.net/qq_17079255/article/details/108807156
2 Linux_安裝CentOS https://blog.csdn.net/qq_17079255/article/details/108807160
3 Linux命令與快捷鍵 https://blog.csdn.net/qq_17079255/article/details/108807204
4 Linux_/bin,/sbin,/usr/sbin,/usr/bin 目錄之簡單區別 https://blog.csdn.net/qq_17079255/article/details/108813404
5 vim常用快捷鍵及其功能 https://www.cnblogs.com/wj-1314/articles/9486106.html
6 vim 快捷鍵技巧總結 https://blog.csdn.net/ithomer/article/details/6002837
7 菜鳥教程_Linux 教程 https://www.runoob.com/linux/linux-tutorial.html
8 Linux中的$符號的三種常見用法 https://blog.csdn.net/weixin_37766087/article/details/99974385

第 1 章 Linux 開山篇

1.1 本套 Linux 課程的內容介紹

在這里插入圖片描述

1.2 Linux 的學習方向

1.2.1Linux 運維工程師

1.2.2Linux 嵌入式開發工程師

1.2.3在 linux 下做各種程式開發
在這里插入圖片描述

1.2.4示意圖

在這里插入圖片描述

1.3 Linux 的應用領域

1.3.1個人桌面應用領域

此領域是傳統 linux 應用最薄弱的環節,傳統 linux 由于界面簡單、操作復雜、應用軟體少的缺點,一直被 windows 所壓制,但近些年來隨著 ubuntu、fedora [f??d?:r?] 等優秀桌面環境的興起,同時各大硬體廠商對其支持的加大,linux 在個人桌面領域的占有率在逐漸的提高,

在這里插入圖片描述

1.3.2服務器應用領域

linux 在服務器領域的應用是最強的,linux 免費、穩定、高效等特點在這里得到了很好的體現,近些年來 linux 服務器市場得到了飛速的提升,尤其在一些高端領域尤為廣泛,

1.3.3嵌入式應用領域

近些年來 linux 在嵌入式領域的應用得到了飛速的提高

linux 運行穩定、對網路的良好支持性、低成本,且可以根據需要進行軟體裁剪,內核最小可以達到幾百 KB 等特點,使其近些年來在嵌入式領域的應用得到非常大的提高

主要應用:機頂盒、數字電視、網路電話、程控交換機、手機、PDA、智能家居、智能硬體等都是其應用領域,以后再物聯網中應用會更加廣泛

1.4 學習 Linux 的階段(高手進階程序)

linux 是一個開源、免費的作業系統,其穩定性、安全性、處理多并發已經得到業界的認可,目前很多中型,大型甚至是集群專案都在使用 linux,很多軟體公司考慮到開發成本都首選 linux,在中國軟體公司得到廣泛的使用,

我個人認為學習 linux 流程為:

  • 第 1 階段:linux 環境下的基本操作命令,包括 檔案操作命令(rm mkdir chmod, chown) 編輯工具使用(vi vim)linux 用戶管理(useradd userdel usermod)等
  • 第 2 階段:linux 的各種配置(環境變數配置,網路配置,服務配置)
  • 第 3 階段:linux 下如何搭建對應語言的開發環境(大資料,JavaEE, Python 等)
  • 第 4 階段:能撰寫 shell 腳本,對 Linux 服務器進行維護,
  • 上面時需要到達的基本要求
  • 第 5 階段:能進行安全設定,防止攻擊,保障服務器正常運行,能對系統調優,
  • 第 6 階段:深入理解 Linux 系統(對內核有研究),熟練掌握大型網站應用架構組成、并熟悉各個環節的部署和維護方法,

1.5 Linux 的學習方法和建議(很重要)

    1. 高效而愉快的學習
    1. 先建立一個整體框架,然后細節
    1. 不需要掌握所有的 Linux 指令,要學會查詢手冊和百度
    1. 先 know how ,再 know why
    1. 計算機是一門”做中學” 的學科 ,不是會了再做,而是做了才會.
    1. 適當的囫圇吞棗
    1. Linux 不是編程,重點是實際操作,各種常用指令要玩的溜

第 2 章 基礎篇 Linux 入門

2.1 Linux 介紹

    1. Linux 怎么讀 【里紐克斯,利尼克斯,里納克斯】
    1. Linux 是一款作業系統,免費,開源, 安全,高效,穩定, 處理高并發非常強悍,現在很多的企業級的專案都部署到 Linux/unix 服務器運行,
    1. Linux 創始人-linux 林納斯
      在這里插入圖片描述
    1. Linux 的吉祥物
      企鵝 tux
      在這里插入圖片描述
    1. Linux 的主要的發行版
      在這里插入圖片描述
  • 目前主要的作業系統有
    windows, android ,車載系統,linux 等,
    在這里插入圖片描述

2.2 unix 是怎么來的

在這里插入圖片描述

2.3 Linux 是怎么來的

在這里插入圖片描述

2.3.1 GNU,人機互動

在這里插入圖片描述

2.4 linux 和 unix 關系一覽圖

在這里插入圖片描述

2.5 linux 和 Windows 比較

在這里插入圖片描述

2.5.1 作業中Linux的使用場景

在這里插入圖片描述

第 3 章 基礎篇 VM 和 Linux 系統(CentOS)安裝

3.1 vm Centos

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

1)先安裝 virtual machine ,vm12
2)再安裝 Linux (CentOS 6.8)
3)原理示意圖,這里我們畫圖說明一下 VM 和 CentOS 的關系,
在這里插入圖片描述

3.2 vm 軟體和 CentOS 的安裝軟體

在這里插入圖片描述

在這里插入圖片描述

3.3 VM 安裝的步驟

  1. 去 BIOS 里修改設定開啟虛擬化設備支持(f2, f10)
  2. 安裝虛擬機軟體(vm12)
    看老師的具體演示:因為老師的電腦上已經安裝了 VM12,因此我先卸載然后再安裝
    Linux_安裝VMWare

3.4 CentOS安裝的步驟

  1. 創建虛擬機(空間)
    這里在配置網路連接時,有三種形式,需要大家伙注意 :
    在這里插入圖片描述
  • 1 橋接模式: 會給虛擬機上的Linux系統分配當前網路的ip地址,能夠同其他系統通信,
  • 2 NAT : 會給虛擬機上的Linux系統分配一個不同的網段ip地址,此時虛擬機上的Linux 可以訪問外部(通過自己的windows上的ip代理出去),但是外部的其他機器不能訪問虛擬機上的Linux系統,
  • 3 主機模式 :你的Linux是一個獨立的主機,不能訪問外網,
  1. 開始安裝系統(CentOS6.8)

  2. 看老師安裝的演示程序,
    參考: Linux_安裝CentOS

3.5 CentOS 的終端使用和聯網

  1. 終端的使用,點擊滑鼠右鍵,即可選擇打開終端
    在這里插入圖片描述
    編輯-->測寫首選項-->顏色, 可以改變顏色和背景
    在這里插入圖片描述

  2. 配置網路,可以上網,

點擊上面右側的;兩個計算機圖片,選擇啟用 eth0,即可成功連接到網路,就可以上網,

在這里插入圖片描述

3.6 vmtools 安裝

3.6.1介紹

1)可以直接粘貼命令在 windows 和 centos 系統之間
2)可以設定 windows 和 centos 的共享檔案夾
3)示意圖

在這里插入圖片描述

3.7 vmtools 的安裝和使用

3.7.1安裝 vmtools 的步驟說明

1.進入 centos
2.點擊 vm 選單的->install vmware tools
在這里插入圖片描述

3.centos 會出現一個 vm 的安裝包
4.點擊右鍵解壓, 得到一個安裝檔案
5.進入該 vm 解壓的目錄 ,該檔案在 /root/桌面/vmware-tools-distrib/下
6.安裝 ./vmware-install.pl
7.全部使用默認設定即可
8.需要 reboot 重新啟動即可生效

3.7.2使用 vmtools 來設定 windows 和 linux 的共享檔案夾

  1. 選單->vm->setting, 如圖設定即可
    注意:設定選項為 always enable ,
    這樣可以讀寫了
    在這里插入圖片描述

  2. windows 和 centos 可共享 d:/share 目錄
    可以讀寫檔案了

  3. 在 centos 的 /mnt/hgfs/ 下

3.7.3安裝 vmtools 的課堂練習

在這里插入圖片描述

3.7.4 安裝vmtools遇到的問題

  • Mounting HGFS shares: 失敗
  • 一直無法在/mnt/hgfs/看到共享檔案夾

解決:

  • 先是重新安裝了幾次vmtools,還是一直顯示Mounting HGFS shares: 失敗

  • 然后看到有個帖子說要在:在Linux 系統關閉的情況下,將虛擬機的共享檔案夾開啟,然后再重新安裝就能成功了,

  • 我想著那就徹底一點,于是直接重啟電腦,然后打開VMware 后首先將共享檔案夾設定打開,

  • 然后登陸進系統后,就能夠看到共享的檔案夾了!!! 我還沒重新安裝vmtools呢!
    在這里插入圖片描述

  • 驗證一下,再找問題的程序中看到一個命令: vmware-hgfsclient ,嘗試使用一下,發現也能夠正常,于是決定不重新安裝vmtools了,感覺已經完全正常了,
    在這里插入圖片描述

第 4 章 基礎篇 Linux 的目錄結構

4.1 基本介紹

linux 的檔案系統是采用級層式的樹狀目錄結構,在此結構中的最上層是根目錄“/”,然后在此目錄下再創建其他的目錄,

深刻理解 linux 樹狀檔案目錄是非常重要的,這里我給大家說明一下,

記住一句經典的話:在 Linux 世界里,一切皆檔案,

在這里插入圖片描述

4.2 目錄結構的具體介紹

具體的目錄結構

  • /bin [重點] (/usr/bin、/usr/local/bin)
    • 是Binary的縮寫, 這個目錄存放著最經常使用的命令,
  • /sbin (/usr/sbin、/usr/local/sbin)
    • s就是Super User的意思, 這里存放的是系統管理員使用的系統管理程式,
  • /home [重點]
    • 存放普通用戶的主目錄,在Linux中每隔用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的,
  • /root [重點]
    • 該目錄為系統管理員,也稱為超級權限者的用戶主目錄,
  • /lib
    • 系統開機所需最基本的動態連接共享庫,其作用類似于Windows里的DLL檔案,幾乎所有的應用程式都需要用到這些共享庫,
  • /lost+found
  • 這個目錄一般情況下是空的,當系統非法關機后,這里存放了一些檔案,
  • /etc [重點]
    • 所有的系統管理所需的組態檔和子目錄 my.conf
    • etc : abbr. 等等,及其他 (et cetera) 等同于 and so on
  • /usr [重點]
    • 這是一個非常重要的目錄,用戶的很多應用程式和檔案都放在這個目錄下,類似于windows下的program files 目錄,
  • /boot [重點]
    • 存放的是啟動Linux時使用的一些核心檔案,包括連接檔案以及鏡像檔案
  • /proc
    • 這個目錄是一個虛擬的目錄,它是系統記憶體的映射,訪問這個目錄來獲取系統資訊,
  • /srv
    • service縮寫, 該目錄存放一些服務啟動之后需要提取的資料,
  • /sys
    • 這是Linux2.6內核的一個很大的變化,該目錄下安裝了2.6內核中新出現的一個檔案系統
  • /tmp
    • 這個目錄是用來存放一些臨時檔案的,
  • /dev
    • 類似于 windows的設備管理器,把所有的硬體用檔案的形式 存盤,
  • /media [重點]
    • Linux系統會自動識別一些設備,例如U盤,光驅等等,當識別后,Linux會把識別的設備掛載到這個目錄下,
  • /mnt [重點]
    • mount : 安裝,掛載的意思
    • 系統提供該目錄是為了讓用戶臨時掛載別的檔案系統的,我們可以將外部的存盤掛載在/mnt/上,然后進入該目錄就可以查看里面的記憶體了,
  • /opt
    • 這是給主機額外安裝軟體(安裝包?)所擺放的目錄,如安裝Oracle資料庫就可放到該目錄下,默認為空,
  • /usr/local [重點]
    • 這是另一個給主機額外安裝軟體所安裝的目錄,一般是通過編譯原始碼方式安裝的程式,
  • /var [重點]
    • 這個目錄中存放著不斷擴充著的東西,習慣將經常被修改的目錄放在這個目錄下,包括各種日志檔案,
  • /selinux
    • security-enhanced linux 類似于360
    • SELinux是一種安全子系統,它能控制程式只能訪問特定檔案,

4.3 一些理解參考

  • /proc /srv /sys : 這三個和Linux 內核相關,非高手莫動
  • Linux_/bin,/sbin,/usr/sbin,/usr/bin 目錄之簡單區別

4.4 Linux 目錄總結一下

  1. linux 的目錄中有且只要一個根目錄 /
  2. linux 的各個目錄存放的內容是規劃好,不用亂放檔案,
  3. linux 是以檔案的形式管理我們的設備,因此 linux 系統,一切皆為檔案,
  4. linux 的各個檔案目錄下存放什么內容,大家必須有一個認識,
  5. 學習后,你腦海中應該有一顆 linux 目錄樹

第 5 章 實操篇 遠程登錄 Linux 系統

5.1 為什么需要遠程登錄 Linux

5.1.1示意圖

在這里插入圖片描述

5.1.2說明

說明: 公司開發時候, 具體的情況是這樣的

  1. linux 服務器是開發小組共享的.
  2. 正式上線的專案是運行在公網的.
  3. 因此程式員需要遠程登錄到 centos 進行專案管理或者開發.
  4. 畫出簡單的網路拓撲示意圖(幫助理解)
  5. 遠程登錄客戶端有 Xshell5, Xftp5 , 我們學習使用 Xshell5 和 Xftp , 其它的遠程工具大同小異.

5.2 遠程登錄 Linux-Xshell5

說明: Xshell 是目前最好的遠程登錄到 Linux 操作的軟體,流暢的速度并且完美解決了中文亂碼的問題, 是目前程式員首選的軟體,

Xshell [1] 是一個強大的安全終端模擬軟體,它支持 SSH1, SSH2, 以及 Microsoft Windows 平臺的 TELNET 協議,

Xshell 可以在 Windows 界面下用來訪問遠端不同系統下的服務器,從而比較好的達到遠程控制終端的目的,

特別說明:如果希望安裝好 XShell 5 就可以遠程訪問 Linux 系統的話,需要有一個前提,就是Linux 啟用了 SSHD 服務,該服務會監聽 22 號埠,
一般安裝好的Linux就會啟動該服務:SSHD ,
查看方式如下:使用setup命令 --> 系統服務 (該界面退出方式,按tab鍵移動游標,按回車確認 )

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

5.3 安裝 XShell5 并使用

5.3.1安裝程序

看老師的視頻演示即可,基本是下一步即可

5.3.2XShell5 的關鍵配置

在這里插入圖片描述

5.3.3 XShel5 操作 Linux 系統

XShel5 遠程登錄到 Linux 后,就可以使用指令來操作 Linux 系統

在這里插入圖片描述

5.4 遠程上傳下載檔案 Xftp5

5.4.1XFtp5 軟體介紹

是一個基于 windows 平臺的功能強大的 SFTP、FTP 檔案傳輸軟體,使用了 Xftp 以后,windows用戶能安全地在 UNIX/Linux 和 Windows PC 之間傳輸檔案,(示意圖),

在這里插入圖片描述

5.4.2XFtp5 軟體的安裝

這個看老師的演示即可.

5.4.3Xftp5 的配置和使用

在這里插入圖片描述

連接到 Linux 的界面如下,就說明已經成功的遠程連接到 Linux

在這里插入圖片描述

5.4.4如何解決 XFTP5 中文亂碼的問題

在這里插入圖片描述
說明:如上圖配置后,還需要重繪一下,就可以解決中文亂碼

5.5 Xftp5 和 XShell5 的使用

在這里插入圖片描述

第 6 章 實操篇 vi 和 vim 編輯器

參考:vim常用快捷鍵及其功能

6.1 vi 和 vim 的基本介紹

所有的 Linux 系統都會內建 vi 文本編輯器,

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

6.2 vi 和 vim 的三種常見模式

6.2.1正常模式

在正常模式下,我們可以使用快捷鍵,

以 vim 打開一個檔案就直接進入一般模式了(這是默認的模式),在這個模式中,你可以使用『上下左右』按鍵來移動游標,你可以使用『洗掉字符』或『洗掉整行』來處理檔案內容, 也可以使用『復制、貼上』來處理你的檔案資料,

6.2.2插入模式/編輯模式

在模式下,程式員可以輸入內容,

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

6.2.3命令列模式

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

6.3 快速入門案例

使用 vim 開發一個 Hello.java 程式, 保存.步驟說明和演示

在這里插入圖片描述

在這里插入圖片描述

6.4 vi 和 vim 三種模式的相互轉化圖

  • w : 寫
  • q : 退出
  • ! : 強制
  • ESC : 退回到 一般模式

注意:在其他資料中將模式分為:命令模式 、編輯模式、 底行模式
分別對應此處的: 一般模式、編輯模式、命令(行)模式
在這里插入圖片描述

6.5 快捷鍵的使用案例

  1. 拷貝當前行 yy , 拷貝當前行向下的 5 行 5yy,并粘貼(p),
  2. 洗掉當前行 dd , 洗掉當前行向下的 5 行 5dd
  3. 在檔案中查找某個單詞 [命令列下 /關鍵字 , 回車 查找 , 輸入 n 就是查找下一個 ],查詢hello.
  4. 設定檔案的行號,取消檔案的行號.[命令列下 : set nu 和 :set nonu]
  5. 編輯 /etc/profile 檔案,使用快捷鍵到底檔案的最末行[G]和最首行[gg],注意這些都是在正常模式下執行的,
  6. 在一個檔案中輸入 "hello" ,然后又撤銷這個動作,再正常模式下輸入 u
  7. 編輯 /etc/profile 檔案,并將游標移動到 第 20 行 shift+g
    第一步:顯示行號 :set nu
    第二步:輸入 20 這個數
    第三步: 輸入 shift+g

6.6 vim 和 vi 的快捷鍵鍵盤一覽圖

在這里插入圖片描述

6.7 vi 和 vim 課堂練習

在這里插入圖片描述

第 7 章 實操篇 開機、重啟和用戶登錄注銷

7.1 關機&重啟命令

7.1.1基本介紹

shutdown
shutdown -h now : 表示立即關機
shutdown -h 1 : 表示 1 分鐘后關機
shutdown -r now: 立即重啟

halt
就是直接使用,效果等價于關機

reboot
就是重啟系統,

syn
把記憶體的資料同步到磁盤

7.1.2注意細節

當我們關機或者重啟時,都應該先執行以下 sync 指令,把記憶體的資料寫入磁盤,防止資料丟失,

7.2 用戶登錄和注銷

7.2.1基本介紹

  1. 登錄時盡量少用 root 帳號登錄,因為它是系統管理員,最大的權限,避免操作失誤,可以利用普通用戶登錄,登錄后再用”su - 用戶名’命令來切換成系統管理員身份.
  2. 在提示符下輸入 logout 即可注銷用戶
    在這里插入圖片描述

7.2.2使用細節

  1. logout 注銷指令在圖形運行級別無效,在 運行級別 3 下有效.
  2. 運行級別這個概念,后面給大家介紹

第 8 章 實操篇 用戶管理

8.1 基本介紹

給大家畫一個示意圖,幫助大家理解用戶管理的規則,

在這里插入圖片描述

說明

  1. Linux 系統是一個多用戶多任務的作業系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統,
  2. Linux 的用戶需要至少要屬于一個組,

8.2 添加用戶

8.2.1基本語法

useradd [選項] 用戶名

8.2.2實際案例

添加一個用戶 xm.

在這里插入圖片描述

特別說明:
cd 表示 change directory, 切換目錄.

8.2.3細節說明

  1. 當創建用戶成功后,會自動的創建和用戶同名的家目錄
  2. 也可以通過 useradd -d 指定目錄 新的用戶名,給新創建的用戶指定家目錄

8.3 給用戶指定或者修改密碼

基本語法
passwd 用戶名

應用案例

  1. 給 xiaoming 指定密碼

在這里插入圖片描述

8.4 洗掉用戶

8.4.1基本語法

userdel 用戶名

8.4.2應用案例

  1. 洗掉用戶 xm,但是要保留家目錄
    在這里插入圖片描述

  2. 洗掉用戶 xh 以及用戶主目錄
    在這里插入圖片描述

8.4.3思考題

在洗掉用戶時,我們一般不會將家目錄洗掉,

8.5 查詢用戶資訊

8.5.1基本語法

id 用戶名

8.5.2應用實體

案例 1:請查詢 root 資訊

在這里插入圖片描述

8.5.3細節說明

  1. 當用戶不存在時,回傳”無此用戶”
    在這里插入圖片描述

8.6 切換用戶

8.6.1介紹

在操作 Linux 中,如果當前用戶的權限不夠,可以通過 su - 指令,切換到高權限用戶,比如 root

8.6.2基本語法

su – 切換用戶名

8.6.3應用實體

  1. 創建一個用戶 zf, ,指定密碼,然后切換到 zf.

在這里插入圖片描述

8.6.4細節說明

1)從權限高的用戶切換到權限低的用戶,不需要輸入密碼,反之需要,
2)當需要回傳到原來用戶時,使用 exit 指令

8.6-2 查看當前用戶/登錄用戶

whoami/ who am I
在這里插入圖片描述

8.7 用戶組

8.7.1介紹

類似于角色,系統可以對有共性的多個用戶進行統一的管理,

8.7.2增加組

groupadd 組名

8.7.3案例演示

在這里插入圖片描述

8.7.4洗掉組

指令(基本語法)
groupdel 組名

8.7.5案例演示

在這里插入圖片描述

8.8 增加用戶時直接加上組

8.8.1指令(基本語法)

useradd -g 用戶組 用戶名

8.8.2案例演示

增加一個用戶 zwj, 直接將他指定到 wudang
步驟看演示:

在這里插入圖片描述

8.9 修改用戶的組

8.9.1指令(基本語法)

usermod -g 用戶組 用戶名

8.9.2案例演示

創建一個 shaolin 組,讓將 zwj 用戶修改到 shaolin
在這里插入圖片描述

8.10 /etc/passwd 檔案

用戶(user)的組態檔,記錄用戶的各種資訊
每行的含義:用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄 Shell

在這里插入圖片描述

8.11 /etc/shadow 檔案

口令的組態檔
每行的含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動
時間:失效時間:標志

8.12 /etc/group 檔案

組(group)的組態檔,記錄 Linux 包含的組的資訊

每行含義:組名:口令:組標識號:組內用戶串列

在這里插入圖片描述

第 9 章 實操篇 實用指令

9.1 指定運行級別

運行級別說明:
0 :關機
1 :單用戶【找回丟失密碼】
2:多用戶狀態沒有網路服務
3:多用戶狀態有網路服務
4:系統未使用保留給用戶
5:圖形界面
6:系統重啟
常用運行級別是 3 和 5 ,要修改默認的運行級別可改檔案
/etc/inittab 的 id:5:initdefault:這一行中的數字

在這里插入圖片描述

9.2 切換到指定運行級別的指令

9.2.1基本語法

init [012356]
在這里插入圖片描述

9.2.2應用實體

案例 1: 通過 init 來切換不同的運行級別,比如動 5->3 , 然后關機

init 3
init 5
init 0

9.2.3面試題

如何找回 root 密碼,如果我們不小心,忘記 root 密碼,怎么找回,

思路: 進入到 單用戶模式,然后修改 root 密碼,因為進入單用戶模式,root 不需要密碼就可以登錄,

演示一把(注意觀察):

總結
開機->在引導時輸入 回車鍵-> 看到一個界面輸入 e -> 看到一個新的界面,選中第二行(編輯內核)在輸入 e-> 在這行最后輸入 1 ,再輸入 回車鍵->再次輸入 b ,這時就會進入到單用戶模式,
這時,我們就進入到單用戶模式,使用 passwd 指令來修改 root 密碼,

  • 開機,在引導時輸入 回車鍵
    在這里插入圖片描述

  • 看到一個界面輸入 e
    在這里插入圖片描述

  • 看到一個新的界面,選中第二行(編輯內核)在輸入 e
    在這里插入圖片描述

  • 在這行最后輸入 1 ,再輸入 回車鍵
    在這里插入圖片描述
    在這里插入圖片描述

  • 再次輸入 b ,這時就會進入到單用戶模式
    在這里插入圖片描述

  • 使用 passwd 指令來修改 root 密碼,重啟后就可以使用新的密碼來登錄了,
    -

9.2.4課堂練習:

  1. 假設我們的 root 密碼忘記了,請問如何找回密碼
  2. 請設定我們的 運行級別,linux 運行后,直接進入到 命令列界面,即進入到 3 運行級別
    vim /etc/inittab
    將 id:5:initdefault:這一行中的數字, 5 這個數字改成對應的運行級別即可,

9.3 幫助指令

9.3.1介紹

當我們對某個指令不熟悉時,我們可以使用 Linux 提供的幫助指令來了解這個指令的使用方法,

9.3.2man 獲得幫助資訊

基本語法
man [命令或組態檔](功能描述:獲得幫助資訊)

應用實體
案例:查看 ls 命令的幫助資訊
在這里插入圖片描述

9.3.3 help 指令

基本語法
help 命令 (功能描述:獲得 shell 內置命令的幫助資訊)

應用實體
案例:查看 cd 命令的幫助資訊
在這里插入圖片描述

9.3.4當一個指令不熟悉如何學習的建議

百度幫助更直接
雖然上面兩個都可以來獲取指令幫助,但是需要英語功底,如果英語不太好的,我還是推薦大家直接百度靠譜, ifconfig在這里插入圖片描述

9.4 檔案目錄類

9.4.1pwd 指令

基本語法
pwd (功能描述:顯示當前作業目錄的絕對路徑)

應用實體
案例:顯示當前作業目錄的絕對路徑
在這里插入圖片描述

9.4.2 ls 指令

基本語法
ls [選項] [目錄或是檔案]

常用選項
-a :顯示當前目錄所有的檔案和目錄,包括隱藏的,
-l :以串列的方式顯示資訊

應用實體
案例:查看當前目錄的所有內容資訊
應用實體

在這里插入圖片描述

9.4.3cd 指令

基本語法
cd [引數] (功能描述:切換到指定目錄)

常用引數
絕對路徑相對路徑
如何理解絕對路徑和相對路徑:
在這里插入圖片描述

cd ~ 或者 cd :回到自己的家目錄
cd .. 回到當前目錄的上一級目錄

應用實體

案例 1:使用絕對路徑切換到 root 目錄
cd /root

案例 2: 使用相對路徑到/root 目錄
這里我們需要知道該用戶目錄在哪個目錄下,才能寫出這個指令,假設在/usr/lib
cd ../../root

案例 3:表示回到當前目錄的上一級目錄
cd ..

案例 4:回到家目錄
cd
cd ~

9.4.4mkdir 指令

mkdir 指令用于創建目錄(make directory)

基本語法
mkdir [選項] 要創建的目錄

常用選項
-p :創建多級目錄

應用實體
案例 1:創建一個目錄 /home/dog
在這里插入圖片描述

案例 2:創建多級目錄 /home/animal/tiger

在這里插入圖片描述

9.4.5rmdir 指令

介紹
rmdir 指令洗掉空目錄

基本語法
rmdir [選項] 要洗掉的空目錄

應用實體
案例 1:洗掉一個目錄 /home/dog
在這里插入圖片描述
使用細節

rmdir 洗掉的是空目錄,如果目錄下有內容時無法洗掉的,
提示:如果需要洗掉非空目錄,需要使用 rm -rf 要洗掉的目錄
在這里插入圖片描述

9.4.6touch 指令

touch 指令創建空檔案

基本語法
touch 檔案名稱

應用實體
案例 1: 創建一個空檔案 hello.txt(可以使用命令同時創建多個檔案)

9.4.7cp 指令[重要]

cp 指令拷貝檔案到指定目錄

基本語法
cp [選項] source dest

常用選項
-r :遞回復制整個檔案夾

應用實體
案例 1: 將 /home/aaa.txt 拷貝到 /home/bbb 目錄下[拷貝單個檔案]
在這里插入圖片描述

案例 2: 遞回復制整個檔案夾,舉例
將/home/test 整個目錄拷貝到 /home/zwj 目錄
在這里插入圖片描述
使用細節
強制覆寫不提示的方法:\cp
在這里插入圖片描述
技術小技巧:
可以通過 上下箭頭的鍵,調出原來使用過的指令,

9.4.8 rm 指令

rm 指令移除【洗掉】檔案或目錄

基本語法
rm [選項] 要洗掉的檔案或目錄

常用選項
-r :遞回洗掉整個檔案夾
-f : 強制洗掉不提示

應用實體
案例 1: 將 /home/aaa.txt 洗掉
在這里插入圖片描述
案例 2: 遞回洗掉整個檔案夾 /home/bbb
在這里插入圖片描述
使用細節
強制洗掉不提示的方法:帶上 -f 引數即可
在這里插入圖片描述

9.4.9 mv 指令

mv 移動檔案與目錄或重命名

基本語法
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移動檔案)

應用實體
案例 1: 將 /home/aaa.txt 檔案 重新命名為 pig.txt
在這里插入圖片描述
案例 2:將 /home/pig.txt 檔案 移動到 /root 目錄下
在這里插入圖片描述

9.4.10 cat 指令

cat 查看檔案內容,是以只讀的方式打開,

基本語法
cat [選項] 要查看的檔案

常用選項
-n :顯示行號

應用實體
案例 1: /etc/profile 檔案內容,并顯示行號
在這里插入圖片描述

使用細節
cat 只能瀏覽檔案,而不能修改檔案,為了瀏覽方便,一般會帶上 管道命令 | more
cat 檔案名 | more [分頁瀏覽]

9.4.11 more 指令

more 指令是一個基于 VI 編輯器的文本過濾器,它以全屏的方式按頁顯示文本檔案的內容 ,more
指令中內置了若干快捷鍵,詳見操作說明

基本語法
more 要查看的檔案

應用實體
案例: 采用 more 查看檔案
/etc/profile
在這里插入圖片描述

快捷鍵一覽
在這里插入圖片描述

9.4.12 less 指令

less 指令用來分屏查看檔案內容,它的功能與 more 指令類似,但是比 more 指令更加強大,支持各種顯示終端,less 指令在顯示檔案內容時,并不是一次將整個檔案加載之后才顯示,而是根據顯示需要加載內容,對顯示大型檔案具有較高的效率 ,

基本語法
less 要查看的檔案

應用實體
案例: 采用 less 查看一個大檔案檔案 /opt/金庸-射雕英雄傳 txt 精校版.txt
在這里插入圖片描述

快捷鍵

在這里插入圖片描述

9.4.13 > 指令 和 >> 指令

> 指令 和 >> 指令
> 輸出重定向 : 會將原來的檔案的內容覆寫
>> 追加: 不會覆寫原來檔案的內容,而是追加到檔案的尾部,

基本語法

  1. ls -l >檔案 (功能描述:串列的內容寫入檔案 a.txt 中(覆寫寫))
    在這里插入圖片描述

說明:ls -l > a.txt , 將 ls -l 的顯示的內容覆寫寫入到 a.txt 檔案,如果該檔案不存在,就創建該檔案,

  1. ls -al >>檔案 (功能描述:串列的內容追加到檔案 aa.txt 的末尾)
    在這里插入圖片描述

  2. cat 檔案 1 > 檔案 2 (功能描述:將檔案 1 的內容覆寫到檔案 2)
    在這里插入圖片描述

  3. echo "內容" >> 檔案

應用實體
案例 1: 將 /home 目錄下的檔案串列 寫入到 /home/info.txt 中
在這里插入圖片描述
案例 2: 將當前日歷資訊 追加到 /home/mycal 檔案中 [提示 cal ]

在這里插入圖片描述

9.4.14 echo 指令

echo 輸出內容到控制臺,

基本語法
echo [選項] [輸出內容]

應用實體
案例: 使用 echo 指令輸出環境變數,輸出當前的環境路徑,
在這里插入圖片描述
案例: 使用 echo 指令輸出 hello,world!
在這里插入圖片描述

9.4.15 head 指令

head 用于顯示檔案的開頭部分內容,默認情況下 head 指令顯示檔案的前 10 行內容

基本語法
head 檔案 (功能描述:查看檔案頭 10 行內容)
head -n 5 檔案 (功能描述:查看檔案頭 5 行內容,5 可以是任意行數)

應用實體
案例: 查看/etc/profile 的前面 5 行代碼
在這里插入圖片描述

9.4.16 tail 指令

tail 用于輸出檔案中尾部的內容,默認情況下 tail 指令顯示檔案的后 10 行內容,

基本語法

  1. tail 檔案 (功能描述:查看檔案后 10 行內容)
  2. tail -n 5 檔案 (功能描述:查看檔案后 5 行內容,5 可以是任意行數)
  3. tail -f 檔案 (功能描述:實時追蹤該檔案的所有更新,作業經常使用)

應用實體
案例 1: 查看/etc/profile 最后 5 行的代碼
在這里插入圖片描述

案例 2: 實時監控 mydate.txt , 看看到檔案有變化時,是否看到, 實時的追加日期

在這里插入圖片描述

9.4.17 ln 指令

軟鏈接也叫符號鏈接,類似于 windows 里的快捷方式,主要存放了鏈接其他檔案的路徑
基本語法
ln -s [原檔案或目錄] [軟鏈接名] (功能描述:給原檔案創建一個軟鏈接)

應用實體
案例 1: 在/home 目錄下創建一個軟連接 linkToRoot,連接到 /root 目錄
在這里插入圖片描述

案例 2: 洗掉軟連接 linkToRoot

在這里插入圖片描述

細節說明
當我們使用 pwd 指令查看目錄時,仍然看到的是軟鏈接所在目錄,

9.4.18 history 指令

查看已經執行過歷史命令,也可以執行歷史指令
基本語法
history (功能描述:查看已經執行過歷史命令)
應用實體
案例 1: 顯示所有的歷史命令
在這里插入圖片描述

案例 2: 顯示最近使用過的 10 個指令
在這里插入圖片描述

案例 3:執行歷史編號為 5 的指令
在這里插入圖片描述

9.5時間日期類

9.5.1 date 指令-顯示當前日期

基本語法

  1. date (功能描述:顯示當前時間)
  2. date +%Y (功能描述:顯示當前年份)
  3. date +%m (功能描述:顯示當前月份)
  4. date +%d (功能描述:顯示當前是哪一天)
  5. date "+%Y-%m-%d %H:%M:%S"(功能描述:顯示年月日時分秒)

應用實體
案例 1: 顯示當前時間資訊
在這里插入圖片描述

案例 2: 顯示當前時間年月日
在這里插入圖片描述

案例 3: 顯示當前時間年月日時分秒
在這里插入圖片描述

9.5.2date 指令-設定日期

基本語法
date -s 字串時間

應用實體
案例 1: 設定系統當前時間 , 比如設定成 2018-10-10 11:22:22

在這里插入圖片描述

9.5.3cal 指令

查看日歷指令

基本語法
cal [選項] (功能描述:不加選項,顯示本月日歷)

應用實體
案例 1: 顯示當前日歷
在這里插入圖片描述

案例 2: 顯示 2020 年日歷
在這里插入圖片描述

9.6搜索查找類

9.6.1find 指令

find 指令將從指定目錄向下遞回地遍歷其各個子目錄,將滿足條件的檔案或者目錄顯示在終端,

基本語法
find [搜索范圍] [選項]

選項說明
在這里插入圖片描述
應用實體
案例 1: 按檔案名:根據名稱查找/home 目錄下的 hello.txt 檔案
在這里插入圖片描述
案例 2:按擁有者:查找/opt 目錄下,用戶名稱為 nobody 的檔案
在這里插入圖片描述
案例 3:查找整個 linux 系統下大于 20m 的檔案(+n 大于 -n 小于 n 等于)
在這里插入圖片描述
1m = 1024k
在這里插入圖片描述

查詢 / 目錄下,所有 .txt 的檔案(通配符)
在這里插入圖片描述

9.6.2 locate 指令

locaate 指令可以快速定位檔案路徑,locate 指令利用事先建立的系統中所有檔案名稱及路徑的locate 資料庫實作快速定位給定的檔案,Locate 指令無需遍歷整個文件系統,查詢速度較快,為了保證查詢結果的準確度,管理員必須定期更新 locate 時刻,

基本語法
locate 搜索檔案

特別說明
由于 locate 指令基于資料庫進行查詢,所以第一次運行前,必須使用 updatedb 指令創建 locate 資料庫,

應用實體
案例 1: 請使用 locate 指令快速定位 hello.txt 檔案所在目錄
在這里插入圖片描述

9.6.3 grep 指令和 管道符號 |

  • grep 過濾查找
  • 管道符,“|”,表示將前一個命令的處理結果輸出傳遞給后面的命令處理,

基本語法
grep [選項] 查找內容 源檔案

常用選項
在這里插入圖片描述

應用實體
案例 1: 請在 hello.txt 檔案中,查找 "yes" 所在行,并且顯示行號
查找檔案中的yes

9.7壓縮和解壓類

9.7.1gzip/gunzip 指令

gzip 用于壓縮檔案, gunzip 用于解壓的

基本語法
gzip 檔案 (功能描述:壓縮檔案,只能將檔案壓縮為*.gz 檔案)
gunzip 檔案.gz (功能描述:解壓縮檔案命令)

應用實體
案例 1: gzip 壓縮, 將 /home 下的 hello.txt 檔案進行壓縮
在這里插入圖片描述
案例 2: gunzip 壓縮, 將 /home 下的 hello.txt.gz 檔案進行解壓縮
在這里插入圖片描述

細節說明
當我們使用 gzip 對檔案進行壓縮后,不會保留原來的檔案.

9.7.2 zip/unzip 指令

zip 用于壓縮檔案, unzip 用于解壓的,這個在專案打包發布中很有用的

基本語法
zip [選項] XXX.zip 將要壓縮的內容(功能描述:壓縮檔案和目錄的命令)
unzip [選項] XXX.zip (功能描述:解壓縮檔案)

zip 常用選項
-r:遞回壓縮,即壓縮目錄

unzip 的常用選項
-d<目錄> :指定解壓后檔案的存放目錄

應用實體
案例 1: 將 /home 下的 所有檔案進行壓縮成 mypackage.zip
在這里插入圖片描述

案例 2: 將 mypackge.zip 解壓到 /opt/tmp 目錄下
在這里插入圖片描述

9.7.3 tar 指令

tar 指令 ,最后打包后的檔案是 .tar.gz 的檔案,
基本語法
tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄,壓縮后的檔案格式.tar.gz)
選項說明
在這里插入圖片描述

應用實體
案例 1: 壓縮多個檔案,將 /home/a1.txt 和 /home/a2.txt 壓縮成 a.tar.gz
在這里插入圖片描述

案例 2: 將/home 的檔案夾 壓縮成 myhome.tar.gz
在這里插入圖片描述

案例 3: 將 a.tar.gz 解壓到當前目錄
在這里插入圖片描述
案例 4: 將 myhome.tar.gz 解壓到 /opt/ 目錄下
在這里插入圖片描述

指定解壓到的那個目錄,事先要存在才能成功,否則會報錯,

第 10 章 實操篇 組管理和權限管理

10.1 Linux 組基本介紹

在 linux 中的每個用戶必須屬于一個組,不能獨立于組外,在 linux 中每個檔案有所有者、所在組、其它組的概念,

  1. 所有者
  2. 所在組
  3. 其它組
  4. 改變用戶所在的組

在這里插入圖片描述

10.2檔案/目錄 所有者

一般為檔案的創建者,誰創建了該檔案,就自然的成為該檔案的所有者,

10.2.1 查看檔案的所有者

  1. 指令:ls -ahl

  2. 應用實體:創建一個組 police,再創建一個用戶 tom,將 tom 放在 police 組 ,然后使用 tom 來創建一個檔案 ok.txt,看看情況如何?
    在這里插入圖片描述

在這里插入圖片描述

10.2.2 修改檔案所有者

指令:chown 用戶名 檔案名

應用案例
要求:使用 root 創建一個檔案 apple.txt ,然后將其所有者修改成 tom

在這里插入圖片描述

10.3組的創建

10.3.1 基本指令

groupadd 組名

10.3.2 應用實體:

創建一個組, ,monster
創建一個用戶 fox ,并放入到 monster 組中
在這里插入圖片描述

10.4檔案/目錄 所在組

當某個用戶創建了一個檔案后,默認這個檔案的所在組就是該用戶所在的組,

10.4.1 查看檔案/目錄所在組

基本指令
ls –ahl

應用實體

在這里插入圖片描述

10.4.2 修改檔案所在的組

基本指令
chgrp 組名 檔案名

應用實體
使用 root 用戶創建檔案 orange.txt ,看看當前這個檔案屬于哪個組,然后將這個檔案所在組,修改到 police 組,

在這里插入圖片描述

10.5其它組

除檔案的所有者和所在組的用戶外,系統的其它用戶都是檔案的其它組.

10.6 改變用戶所在組

在添加用戶時,可以指定將該用戶添加到哪個組中,同樣的用 root 的管理權限可以改變某個用戶所在的組,

10.6.1 改變用戶所在組

  1. usermod –g 組名 用戶名
  2. usermod –d 目錄名 用戶名 改變該用戶登陸的初始目錄,

10.6.2 應用實體

創建一個土匪組(bandit)將 tom 這個用戶從原來所在的 police 組,修改到 bandit(土匪) 組
在這里插入圖片描述

10.7權限的基本介紹

ls -l 中顯示的內容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0-9 位說明

  1. 第 0 位確定檔案型別(d, - , l , c , b)
    • - : 普通檔案
    • d: 目錄
    • l : 軟連接
    • c: 字符設備(滑鼠、鍵盤)
    • b:塊檔案,硬碟
  2. 第 1-3 位確定所有者(該檔案的所有者)擁有該檔案的權限,---User
  3. 第 4-6 位確定所屬組(同用戶組的)擁有該檔案的權限,---Group
  4. 第 7-9 位確定其他用戶擁有該檔案的權限 ---Other
  5. 下一塊(1):如果是檔案,表示硬鏈接的數,如果是目錄則表示該目錄的子目錄個數,
  6. 下一塊(root): 該檔案或目錄所屬的用戶
  7. 下一塊(root): 該檔案或目錄所屬的組
  8. 下一塊(1213): 檔案大小,如果是目錄則為4096
  9. 下一塊( Feb 2 09:39): 最后一次修改時間
  10. 下一塊( abc): 檔案或目錄名

在這里插入圖片描述

10.8 rwx 權限詳解

10.8.1 rwx 作用到檔案

  1. [ r ]代表可讀(read): 可以讀取,查看
  2. [ w ]代表可寫(write): 可以修改,但是不代表可以洗掉該檔案,洗掉一個檔案的前提條件是對該檔案所在的目錄有寫權限,才能洗掉該檔案.
  3. [ x ]代表可執行(execute):可以被執行

10.8.2 rwx 作用到目錄

  1. [ r ]代表可讀(read): 可以讀取,ls 查看目錄內容
  2. [ w ]代表可寫(write): 可以修改,目錄內創建+洗掉+重命名目錄
  3. [ x ]代表可執行(execute):可以進入該目錄

10.9檔案及目錄權限實際案例

ls -l 中顯示的內容如下:(記住)
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

10 個字符確定不同用戶能對檔案干什么
第一個字符代表檔案型別: 檔案 (-),目錄(d),鏈接(l)
其余字符每 3 個一組(rwx) 讀(r) 寫(w) 執行(x)
第一組 rwx : 檔案擁有者的權限是讀、寫和執行
第二組 rw- : 與檔案擁有者同一組的用戶的權限是讀、寫但不能執行
第三組 r-- : 不與檔案擁有者同組的其他用戶的權限是讀不能寫和執行
可用數字表示為: r=4,w=2,x=1 因此 rwx=4+2+1=7

后面幾塊內容
1 【檔案:硬連接數或 目錄:子目錄數】
root 【用戶】
root 【組】
1213 【檔案大小(位元組),如果是檔案夾,顯示 4096 位元組】
Feb 2 09:39 【最后修改日期】
abc 【檔案名】

10.10 修改權限-chmod

10.10.1 基本說明:

通過 chmod 指令,可以修改檔案或者目錄的權限

10.10.2 第一種方式:+ 、-、= 變更權限

u:所有者 g:所有組 o:其他人 a:所有人(u、g、o 的總和)

  1. chmod u=rwx,g=rx,o=x 檔案目錄名
  2. chmod o+w 檔案目錄名
  3. chmod a-x 檔案目錄名

案例演示

  1. 給 abc 檔案 的所有者讀寫執行的權限,給所在組讀執行權限,給其他組讀執行權限 ,
    在這里插入圖片描述

  2. 給 abc 檔案的所有者除去執行的權限,增加組寫的權限
    在這里插入圖片描述

  3. 給 abc 檔案的所有用戶添加讀的權限
    在這里插入圖片描述

10.10.3 第二種方式:通過數字變更權限

規則:r=4 w=2 x=1 ,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 檔案目錄名
相當于 chmod 751 檔案目錄名

案例演示
要求:將 /home/abc.txt 檔案的權限修改成 rwxr-xr-x, 使用給數字的方式實作:
rwx = 4+2+1 = 7
r-x = 4+1=5
r-x = 4+1 =5
指令:chmod 755 /home/abc.txt

10.11 修改檔案所有者-chown

10.11.1 基本介紹

chown newowner file 改變檔案的所有者
chown newowner:newgroup file 改變用戶的所有者和所有組
-R 如果是目錄 則使其下所有子檔案或目錄遞回生效

10.11.2 案例演示:

  1. 請將 /home/abc .txt 檔案的所有者修改成 tom
    在這里插入圖片描述
  2. 請將 /home/kkk 目錄下所有的檔案和目錄的所有者都修改成 tom
    首先我們應該使用 root 操作,
    在這里插入圖片描述

10.12 修改檔案所在組-chgrp

10.12.1 基本介紹

chgrp newgroup file 改變檔案的所有組

10.12.2 案例演示:

  1. 請將 /home/abc .txt 檔案的所在組修改成 bandit (土匪)
    chgrp bandit /home/abc.txt

  2. 請將 /home/kkk 目錄下所有的檔案和目錄的所在組都修改成 bandit(土匪)
    chgrp -R bandit /home/kkk
    在這里插入圖片描述

10.13 最佳實踐-警察和土匪游戲

police , bandit
jack, jerry: 警察
xh, xq: 土匪
(1) 創建組
在這里插入圖片描述

(2) 創建用戶
在這里插入圖片描述
在這里插入圖片描述

(3) jack 創建一個檔案,自己可以讀寫,本組人可以讀,其它組沒人任何權限
在這里插入圖片描述

(4) jack 修改該檔案,讓其它組人可以讀, 本組人可以讀寫
在這里插入圖片描述

(5) xh 投靠 警察,看看是否可以讀寫.
登錄root,修改用戶所在組
在這里插入圖片描述

使用小紅登錄,發現進不去目錄
在這里插入圖片描述
在這里插入圖片描述
修改jerry這個目錄的權限,讓同組的其他用戶可以進入
在這里插入圖片描述
在這里插入圖片描述

10.14 課后練習

練習檔案權限管理[課堂練習]
建立兩個組(神仙,妖怪)
在這里插入圖片描述

建立四個用戶(唐僧,悟空,八戒,沙僧)
在這里插入圖片描述

設定密碼
在這里插入圖片描述

(這里有問題,使用usermode無法真正修改用戶的所屬組,我的理解錯了,這里shaseng不是用戶,而是目錄,由于前面創建的時候沒有指定指定的用戶是shaseng,所以這個時候要修改也是按照修改檔案或目錄所屬的組的方式去修改)在這里插入圖片描述
把悟空,八戒放入妖怪 唐僧 沙僧 在神仙

在這里插入圖片描述

用悟空建立一個檔案 (monkey.java 該檔案要輸出 i am monkey)

在這里插入圖片描述

給八戒一個可以 r w 的權限
在這里插入圖片描述

八戒修改 monkey.java 加入一句話( i am pig)
在這里插入圖片描述

唐僧 沙僧 對該檔案沒有權限
把 沙僧 放入妖怪組
在這里插入圖片描述

讓沙僧 修改 該檔案 monkey, 加入一句話 ("我是沙僧,我是妖怪!");
在這里插入圖片描述

10.15 課后練習題 2

1 用 root 登錄,建立用戶 mycentos,自己設定密碼
在這里插入圖片描述

2.用 mycentos 登錄,在主目錄下建立目錄 test/t11/t1
在這里插入圖片描述

3.在 t1 中建立一個文本檔案 aa,用 vi 編輯其內容為 ls –al

在這里插入圖片描述
在這里插入圖片描述

4.改變 aa 的權限為可執行檔案[可以將當前日期追加到一個檔案],運行該檔案./aa
在這里插入圖片描述
在這里插入圖片描述

5.洗掉新建立的目錄 test/t11/t1
6.洗掉用戶 mycentos 及其主目錄中的內容
7.將 linux 設定成進入到圖形界面的
8. 重新啟動 linux 或關機

第 11 章 實操篇 crond 任務調度

11.1原理示意圖

在這里插入圖片描述
在這里插入圖片描述

crontab 進行 定時任務的設定,,

11.2 概述

任務調度:是指系統在某個時間執行的特定的命令或程式,

任務調度分類:
1.系統作業:有些重要的作業必須周而復始地執行,如病毒掃描等
2.個別用戶作業:個別用戶可能希望執行某些程式,比如對 mysql 資料庫的備份,

11.3 基本語法

crontab [選項]

11.3.1 常用選項

在這里插入圖片描述

11.4快速入門

11.4.1 任務的要求

設定任務調度檔案:/etc/crontab
設定個人任務調度,執行 crontab –e 命令,
接著輸入任務到調度檔案
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思說每小時的每分鐘執行 ls –l /etc/ > /tmp/to.txt 命令

11.4.2 步驟如下

  1. cron -e
  2. */ 1 * * * * ls -l /etc >> /tmp/to.txt
  3. 當保存退出后就程式,
  4. 在每一分鐘都會自動的呼叫 ls -l /etc >> /tmp/to.txt

11.4.3 引數細節說明

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

11.5任務調度的幾個應用實體

11.5.1 案例 1:每隔 1 分鐘,就將當前的日期資訊,追加到 /tmp/mydate 檔案中

  • 先撰寫一個檔案 /home/mytask1.sh
    • date >> /tmp/mydate
  • 給 mytask1.sh 一個可以執行權限
    • chmod 744 /home/mytask1.sh
  • crontab -e
  • */1 * * * * /home/mytask1.sh
  • 成功

11.5.2 案例 2:每隔 1 分鐘, 將當前日期和日歷都追加到 /home/mycal 檔案中

1)先撰寫一個檔案 /home/mytask2.sh
date >> /tmp/mycal
cal >> /tmp/mycal
2) 給 mytask1.sh 一個可以執行權限
chmod 744 /home/mytask2.sh
3) crontab -e
4) */1 * * * * /home/mytask2.sh
5) 成功

11.5.3 案例 3: 每天凌晨 2:00 將 mysql 資料庫 testdb ,備份到檔案中

mydb.bak,

  1. 先撰寫一個檔案 /home/mytask3.sh
    /usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
  2. 給 mytask3.sh 一個可以執行權限
    chmod 744 /home/mytask3.sh
  3. crontab -e
  4. 0 2 * * * /home/mytask3.sh
  5. 成功

11.6 crond 相關指令:

  1. conrtab –r:終止任務調度,
  2. crontab –l:列出當前有那些任務調度
  3. service crond restart [重啟任務調度]

第 12 章 實操篇 Linux 磁盤磁區、掛載

12.1 磁區基礎知識

12.1.1 磁區的方式:

  1. mbr 磁區:
    1.最多支持四個主磁區
    2.系統只能安裝在主磁區
    3.擴展磁區要占一個主磁區
    4.MBR 最大只支持 2TB,但擁有最好的兼容性
  2. gtp 磁區:
    1.支持無限多個主磁區(但作業系統可能限制,比如 windows 下最多 128 個磁區)
    2.最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )
    3.windows7 64 位以后支持 gtp

12.1.2 windows 下的磁盤磁區

在這里插入圖片描述

12.2 Linux 磁區

12.2.1 原理介紹

  1. Linux 來說無論有幾個磁區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的檔案結構 , Linux 中每個磁區都是用來組成整個檔案系統的一部分,
  2. Linux 采用了一種叫“載入”的處理方法,它的整個檔案系統中包含了一整套的檔案和目錄,且將一個磁區和一個目錄聯系起來,這時要載入的一個磁區將使它的存盤空間在一個目錄下獲得,
  3. 示意圖
    在這里插入圖片描述

12.2.2 硬碟說明

  1. Linux 硬碟分 IDE 硬碟和 SCSI 硬碟,目前基本上是 SCSI 硬碟
  2. 對于 IDE 硬碟,驅動器識別符號為“hdx~”,其中“hd”表明磁區所在設備的型別,這里是指 IDE 硬碟了,“x”為盤號(a 為基本盤,b 為基本從屬盤,c 為輔助主盤,d 為輔助從屬盤),“~”代表磁區,前四個磁區用數字 1 到 4 表示,它們是主磁區或擴展磁區,從 5 開始就是邏輯磁區,,例,hda3 表示為第一個 IDE 硬碟上的第三個主磁區或擴展磁區,hdb2 表示為第二個 IDE 硬碟上的第二個主磁區或擴展磁區,
  3. 對于 SCSI 硬碟則標識為“sdx~”,SCSI 硬碟是用“sd”來表示磁區所在設備的型別的,其余則和 IDE 硬碟的表示方法一樣,

12.2.3 使用 lsblk 指令查看當前系統的磁區情況

在這里插入圖片描述

12.3 掛載的經典案例

需求是給我們的 Linux 系統增加一個新的硬碟,并且掛載到/home/newdisk
在這里插入圖片描述

12.3.1 如何增加一塊硬碟

  1. 虛擬機添加硬碟
  2. 磁區 fdisk /dev/sdb
  3. 格式化 mkfs -t ext4 /dev/sdb1
  4. 掛載 先創建一個 /home/newdisk , 掛載 mount /dev/sdb1 /home/newdisk
  5. 設定可以自動掛載(永久掛載,當你重啟系統,仍然可以掛載到 /home/newdisk) ,
    vim /etc/fstab
    /dev/sdb1 /home/newdisk ext4 defaults 0 0

12.4 具體的操作步驟整理

12.4.1 虛擬機增加硬碟步驟 1
在【虛擬機】選單中,選擇【設定】,然后設備串列里添加硬碟,然后一路【下一步】,中間只有選擇磁盤大小的地方需要修改,至到完成,然后重啟系統(才能識別)!
在這里插入圖片描述

12.4.2 虛擬機增加硬碟步驟 2

磁區命令 fdisk /dev/sdb
開始對/sdb 磁區

? m 顯示命令串列
? p 顯示磁盤磁區 同 fdisk –l
? n 新增磁區
? d 洗掉磁區
? w 寫入并退出
說明: 開始磁區后輸入 n,新增磁區,然后選擇 p ,磁區型別為主磁區,兩次回車默認剩余全部空間,最后輸入 w 寫入磁區并退出,若不保存退出輸入 q,
在這里插入圖片描述

12.4.3 虛擬機增加硬碟步驟 3

格式化磁盤
磁區命令:mkfs -t ext4 /dev/sdb1
其中 ext4 是磁區型別

12.4.4 虛擬機增加硬碟步驟 4

掛載: 將一個磁區與一個目錄聯系起來,
?mount 設備名稱 掛載目錄
?例如: mount /dev/sdb1 /newdisk
?umount 設備名稱 或者 掛載目錄
?例如: umount /dev/sdb1 或者 umount /newdisk

12.4.5 虛擬機增加硬碟步驟 5

永久掛載: 通過修改/etc/fstab 實作掛載
添加完成后 執行 mount –a 即刻生效
在這里插入圖片描述

12.5 磁盤情況查詢

12.5.1 查詢系統整體磁盤使用情況

基本語法
df -h
應用實體
查詢系統整體磁盤使用情況
在這里插入圖片描述

12.5.2 查詢指定目錄的磁盤占用情況

? 基本語法
du -h /目錄
查詢指定目錄的磁盤占用情況,默認為當前目錄
-s 指定目錄占用大小匯總
-h 帶計量單位
-a 含檔案
--max-depth=1 子目錄深度
-c 列出明細的同時,增加匯總值

?應用實體
查詢 /opt 目錄的磁盤占用情況,深度為 1

12.6 磁盤情況-作業實用指令

  1. 統計/home 檔案夾下檔案的個數
    在這里插入圖片描述

  2. 統計/home 檔案夾下目錄的個數
    在這里插入圖片描述

  3. 統計/home 檔案夾下檔案的個數,包括子檔案夾里的
    在這里插入圖片描述

  4. 統計檔案夾下目錄的個數,包括子檔案夾里的
    在這里插入圖片描述

  5. 以樹狀顯示目錄結構
    在這里插入圖片描述

第 13 章 實操篇 網路配置

13.1 Linux 網路配置原理圖(含虛擬機)

目前我們的網路配置采用的是 NAT,
在這里插入圖片描述

13.2 查看網路 IP 和網關

13.2.1 查看虛擬網路編輯器

在這里插入圖片描述

13.2.2 修改 ip 地址(修改虛擬網路的 ip)

在這里插入圖片描述

13.2.3 查看網關

在這里插入圖片描述

13.2.4 查看 windows 環境的中 VMnet8 網路配置 (ipconfig 指令)

  1. 使用 ipconfig 查看
  2. 界面查看
    在這里插入圖片描述

13.3 ping 測驗主機之間網路連通

13.3.1 基本語法

ping 目的主機 (功能描述:測驗當前服務器是否可以連接目的主機)

13.3.2 應用實體

測驗當前服務器是否可以連接百度
[root@hadoop100 桌面]# ping www.baidu.com

13.4 linux 網路環境配置

13.4.1 第一種方法(自動獲取)

在這里插入圖片描述
缺點: linux 啟動后會自動獲取 IP,缺點是每次自動獲取的 ip 地址可能不一樣,這個不適用于做服務器,因為我們的服務器的 ip 需要時固定的

13.4.2 第二種方法(指定固定的 ip)

說明
直 接 修 改 配 置 文 件 來 指 定 IP, 并 可 以 連 接 到 外 網 ( 程 序 員 推 薦 ) ,編 輯
vi /etc/sysconfig/network-scripts/ifcfg-eth0
要求:將 ip 地址配置的靜態的,ip 地址為 192.168.1.130
在這里插入圖片描述

修改后,一定要 重啟服務

  1. service network restart
  2. reboot 重啟系統
    在這里插入圖片描述

第 14 章 實操篇 行程管理

14.1 行程的基本介紹

  1. 在 LINUX 中,每個執行的程式(代碼)都稱為一個行程,每一個行程都分配一個 ID 號,
  2. 每一個行程,都會對應一個父行程,而這個父行程可以復制多個子行程,例如 www 服務器,
  3. 每個行程都可能以兩種方式存在的,前臺與后臺,所謂前臺行程就是用戶目前的螢屏上可以進行操作的,后臺行程則是實際在操作,但由于螢屏上無法看到的行程,通常使用后臺方式執行,
  4. 一般系統的服務都是以后臺行程的方式存在,而且都會常駐在系統中,直到關機才才結束,

14.2 顯示系統執行的行程

14.2.1 說明

查看行程使用的指令是 ps ,一般來說使用的引數是 ps -aux
在這里插入圖片描述
在這里插入圖片描述

14.2.2 ps 指令詳解

  1. 指令:ps –aux|grep xxx ,比如我看看有沒有 sshd 服務: ps -aux | grep sshd
  2. 指令說明
    ? System V 展示風格
    ? USER:用戶名稱
    ? PID:行程號
    ?%CPU:行程占用 CPU 的百分比
    ?%MEM:行程占用物理記憶體的百分比
    ?VSZ:行程占用的虛擬記憶體大小(單位:KB)
    ?RSS:行程占用的物理記憶體大小(單位:KB)
    ?TT:終端名稱,縮寫 .
    ?STAT:行程狀態,其中 S-睡眠,s-表示該行程是會話的先導行程,N-表示行程擁有比普通優先級更低的優先級,R-正在運行,D-短期等待,Z-僵死行程,T-被跟蹤或者被停止等等
    ?STARTED:行程的啟動時間
    ?TIME:CPU 時間,即行程使用 CPU 的總時間
    ?COMMAND:啟動行程所用的命令和引數,如果過長會被截斷顯示

14.2.3 應用實體

要求:以全格式顯示當前所有的行程,查看行程的父行程,
在這里插入圖片描述

?ps -ef 是以全格式顯示當前所有的行程
?-e 顯示所有行程,-f 全格式,
?ps -ef|grep xxx
?是 BSD 風格
?UID:用戶 ID
?PID:行程 ID
?PPID:父行程 ID
?C:CPU 用于計算執行優先級的因子,數值越大,表明行程是 CPU 密集型運算,執行優先級會降低;數值越小,表明行程是 I/O 密集型運算,執行優先級會提高
?STIME:行程啟動的時間
?TTY:完整的終端名稱
?TIME:CPU 時間
?CMD:啟動行程所用的命令和引數
思考題,如果我們希望查看 sshd 行程的父行程號是多少,應該怎樣查詢 ?

在這里插入圖片描述

14.3 終止行程 kill 和 killall

14.3.1 介紹:

若是某個行程執行一半需要停止時,或是已消了很大的系統資源時,此時可以考慮停止該行程,使用 kill 命令來完成此項任務,

14.3.2 基本語法:

kill [選項] 行程號(功能描述:通過行程號殺死行程)
killall 行程名稱 (功能描述:通過行程名稱殺死行程,也支持通配符,這在系統因負載過大而變得很慢時很有用)

14.3.3 常用選項:

-9 :表示強迫行程立即停止

14.3.4 最佳實踐:

案例 1:踢掉某個非法登錄用戶
在這里插入圖片描述

案例 2: 終止遠程登錄服務 sshd, 在適當時候再次重啟 sshd 服務
在這里插入圖片描述

案例 3: 終止多個 gedit 編輯器 【killall , 通過行程名稱來終止行程】
在這里插入圖片描述

案例 4:強制殺掉一個終端
在這里插入圖片描述

14.4 查看行程樹 pstree

14.4.1 基本語法:

pstree [選項] ,可以更加直觀的來看行程資訊

14.4.2 常用選項:

-p :顯示行程的 PID
-u :顯示行程的所屬用戶

14.4.3 應用實體:

案例 1:請你樹狀的形式顯示行程的 pid

在這里插入圖片描述
案例 2:請你樹狀的形式行程的用戶 id

pstree -u 即可

14.5 服務(Service)管理

14.5.1 介紹:

服務(service) 本質就是行程,但是是運行在后臺的,通常都會監聽某個埠,等待其它程式的請求,比如(mysql , sshd 防火墻等),因此我們又稱為守護行程,是 Linux 中非常重要的知識點,

【原理圖】
在這里插入圖片描述

14.5.2 service 管理指令:

service 服務名 [start | stop | restart | reload | status]

在 CentOS7.0 后 不再使用 service ,而是 systemctl

14.5.3 使用案例:

  1. 查看當前防火墻的狀況,關閉防火墻和重啟防火墻,
    在這里插入圖片描述

14.5.4 細節討論:

  1. 關倍訓者啟用防火墻后,立即生效,[telnet 測驗 某個埠即可]
    在這里插入圖片描述
  2. 這種方式只是臨時生效,當重啟系統后,還是回歸以前對服務的設定,
    如果希望設定某個服務自啟動或關閉永久生效,要使用 chkconfig 指令,馬上講

14.5.5 查看服務名:

方式 1:使用 setup -> 系統服務 就可以看到,
在這里插入圖片描述

方式 2: /etc/init.d/服務名稱
在這里插入圖片描述

14.5.6 服務的運行級別(runlevel):

查看或者修改默認級別: vi /etc/inittab
Linux 系統有 7 種運行級別(runlevel):常用的是級別 3 和 5
?運行級別 0:系統停機狀態,系統默認運行級別不能設為 0,否則不能正常啟動
?運行級別 1:單用戶作業狀態,root 權限,用于系統維護,禁止遠程登陸
?運行級別 2:多用戶狀態(沒有 NFS),不支持網路
?運行級別 3:完全的多用戶狀態(有 NFS),登陸后進入控制臺命令列模式
?運行級別 4:系統未使用,保留
?運行級別 5:X11 控制臺,登陸后進入圖形 GUI 模式
?運行級別 6:系統正常關閉并重啟,默認運行級別不能設為 6,否則不能正常啟動

14.5.7 開機的流程說明

在這里插入圖片描述

14.5.8 chkconfig 指令

介紹
通過 chkconfig 命令可以給每個服務的各個運行級別設定自啟動/關閉

基本語法

  1. 查看服務 chkconfig --list|grep xxx
    在這里插入圖片描述
    在這里插入圖片描述

  2. chkconfig 服務名 --list
    在這里插入圖片描述

  3. chkconfig --level 5 服務名 on/off
    在這里插入圖片描述

14.5.9 應用實體:

  1. 案例 1: 請顯示當前系統所有服務的各個運行級別的運行狀態
    bash> chkconfig --list
  2. 案例 2 :請查看 sshd 服務的運行狀態
    bash> service sshd status
  3. 案例 3: 將 sshd 服務在運行級別 5 下設定為不自動啟動,看看有什么效果?
    bash> chkconfig --level 5 sshd off
  4. 案例 4: 當運行級別為 5 時,關閉防火墻,
    bash> chkconfig --level 5 iptables off
  5. 案例 5: 在所有運行級別下,關閉防火墻
    bash> chkconfig iptables off
  6. 案例 6: 在所有運行級別下,開啟防火墻
    bash> chkconfig iptables on

14.5.10 ? 使用細節

  1. chkconfig 重新設定服務后自啟動或關閉,需要重啟機器 reboot 才能生效.

14.6 動態監控行程

14.6.1 介紹:

top 與 ps 命令很相似,它們都用來顯示正在執行的行程,Top 與 ps 最大的不同之處,在于 top 在執行一段時間可以更新正在運行的的行程,

14.6.2 基本語法:

top [選項]

14.6.3 選項說明:

在這里插入圖片描述

14.6.4 應用實體:

案例 1.監視特定用戶
top:輸入此命令,按回車鍵,查看執行的行程,
u:然后輸入“u”回車,再輸入用戶名,即可
在這里插入圖片描述

案例 2:終止指定的行程,
top:輸入此命令,按回車鍵,查看執行的行程,
k:然后輸入“k”回車,再輸入要結束的行程 ID 號

在這里插入圖片描述

案例 3:指定系統狀態更新的時間(每隔 10 秒自動更新, 默認是 3 秒)
bash> top -d 10

14.6.5 查看系統網路情況 netstat(重要)

基本語法
netstat [選項]
netstat -anp

選項說明
-an 按一定順序排列輸出
-p 顯示哪個行程在呼叫

應用案例
查看系統所有的網路服務
在這里插入圖片描述

請查看服務名為 sshd 的服務的資訊
在這里插入圖片描述

第 15 章 實操篇 RPM 和 YUM

15.1 rpm 包的管理

15.1.1 介紹

一種用于互聯網下載包的打包及安裝工具,它包含在某些 Linux 分發版中,它生成具有.RPM擴展名的檔案,RPM 是 RedHat Package Manager(RedHat 軟體包管理工具)的縮寫,類似 windows的 setup.exe,這一檔案格式名稱雖然打上了 RedHat 的標志,但理念是通用的,Linux 的分發版本都有采用(suse,redhat, centos 等等),可以算是公認的行業標準了,

15.1.2 rpm 包的簡單查詢指令:

查詢已安裝的 rpm 串列 rpm –qa|grep xx
請查詢看一下,當前的 Linux 有沒有安裝 firefox .
在這里插入圖片描述

15.1.3 rpm 包名基本格式:

一個 rpm 包名:firefox-45.0.1-1.el6.centos.x86_64.rpm

名稱:firefox
版本號:45.0.1-1
適用作業系統: el6.centos.x86_64
表示 centos6.x 的 64 位系統
如果是 i686、i386 表示 32 位系統,noarch 表示通用,,

15.1.4 rpm 包的其它查詢指令:

rpm -qa :查詢所安裝的所有 rpm 軟體包
rpm -qa | more [分頁顯示]
rpm -qa | grep X [rpm -qa | grep firefox ]
在這里插入圖片描述
rpm -q 軟體包名 :查詢軟體包是否安裝
rpm -q firefox

rpm -qi 軟體包名 :查詢軟體包資訊
在這里插入圖片描述
rpm -qi file
rpm -ql 軟體包名 :查詢軟體包中的檔案
rpm -ql firefox
在這里插入圖片描述
rpm -qf 檔案全路徑名 查詢檔案所屬的軟體包

  • rpm -qf /etc/passwd
  • rpm -qf /root/install.log
    在這里插入圖片描述

15.1.5 卸載 rpm 包

?基本語法
rpm -e RPM 包的名稱
?應用案例

  1. 洗掉 firefox 軟體包
    在這里插入圖片描述
    ?細節問題
  2. 如果其它軟體包依賴于您要卸載的軟體包,卸載時則會產生錯誤資訊
    如: $ rpm -e foo
    removing these packages would break dependencies:foo is needed by bar-1.0-1
  3. 如果我們就是要洗掉 foo 這個 rpm 包,可以增加引數 --nodeps ,就可以強制洗掉,但是一般不推薦這樣做,因為依賴于該軟體包的程式可能無法運行
    如:$ rpm -e --nodeps foo
    帶上 --nodeps 就是強制洗掉,

15.1.6 安裝 rpm 包

基本語法
rpm -ivh RPM 包全路徑名稱
引數說明
i=install 安裝
v=verbose 提示
h=hash 進度條

應用實體

  1. 演示安裝 firefox 瀏覽器
    步驟先找到 firefox 的安裝 rpm 包,你需要掛載上我們安裝 centos 的 iso 檔案,然后到/media/下去找 rpm 找,
    cp firefox-45.0.1-1.el6.centos.x86_64.rpm /opt/
    在這里插入圖片描述

15.2 yum

15.2.1 介紹:

Yum 是一個 Shell 前端軟體包管理器,基于 RPM 包管理,能夠從指定的服務器自動下載 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,使用 yum 的前提是可以聯網,
在這里插入圖片描述

15.2.2 yum 的基本指令

  • 查詢 yum 服務器是否有需要安裝的軟體
    yum list|grep xx 軟體串列
  • 安裝指定的 yum 包
    yum install xxx 下載安裝

15.2.3 yum 應用實體:

案例:請使用 yum 的方式來安裝 firefox

  1. 先查看一下 firefox rpm 在 yum 服務器有沒有
    在這里插入圖片描述
  2. 安裝
    會安裝最新版本的軟體,
    成功!
    在這里插入圖片描述

第 16 章 JavaEE 定制篇 搭建 JavaEE 環境

16.1 概述

16.1.1 示意圖:

在這里插入圖片描述
如果需要在 Linux 下進行 JavaEE 的開發,我們需要安裝如下軟體

在這里插入圖片描述

16.2 安裝 JDK

16.2.1 看老師演示,一會整理筆記:

16.2.2 安裝步驟

  1. 先將軟體通過 xftp5 上傳到 /opt 下

  2. 解壓縮到 /opt

  3. 配置環境變數的組態檔 vim /etc/profile
    在這里插入圖片描述
    JAVA_HOME=/opt/jdk1.7.0_79
    PATH=/opt/jdk1.7.0_79/bin:$PATH
    export JAVA_HOME PATH

  4. 需要注銷用戶,環境變數才能生效,
    如果是在 3 運行級別, logout
    如果是在 5 運行級別,右上角注銷

  5. 在任何目錄下就可以使用 java 和 javac
    在這里插入圖片描述

16.2.3 測驗是否安裝成功

撰寫一個簡單的 Hello.java 輸出"hello,world!"
在這里插入圖片描述

在這里插入圖片描述

16.3 安裝 tomcat

  1. 解壓縮到/opt
    在這里插入圖片描述

  2. 啟動 tomcat ./startup.sh
    先進入到 tomcat 的 bin 目錄
    在這里插入圖片描述
    在這里插入圖片描述
    使用 Linux 本地的瀏覽是可以訪問到 tomcat

  3. 開放埠 8080 ,這樣外網才能訪問到 tomcat
    vim /etc/sysconfig/iptables
    在這里插入圖片描述
    重啟防火墻
    在這里插入圖片描述

16.3.2 測驗是否安裝成功:

在 windows、Linux 下 訪問 http://linuxip:8080
在這里插入圖片描述

16.4 Eclipse 的安裝

16.4.1 步驟 :

  1. 解壓縮到/opt
    在這里插入圖片描述
  2. 啟動 eclipse,配置 jre 和 server
    啟動方法 1: 創建一個快捷方式
    啟動方式 2: 進入到 eclipse 解壓后的檔案夾,然后執行 ./eclipse 即可
  3. 撰寫 jsp 頁面,并測驗成功!
    在這里插入圖片描述

16.5 mysql 的安裝和配置

16.5.1 安裝的步驟和檔案

[說明: 因為 mysql 安裝時間很長,所以在授課時,可以考慮最先安裝 mysql]
相關的安裝軟體在課件
注意: 先洗掉一下 Mysql 相關的軟體..
在這里插入圖片描述

16.5.2 說明

請同學們一定要按照老師的檔案一步一步的安裝成功,

CentOS 6.8下編譯安裝MySQL 5.6.14

概述:
通過源代碼安裝高版本的5.6.14,

正文:

一:卸載舊版本

使用下面的命令檢查是否安裝有MySQL Server

rpm -qa | grep mysql

有的話通過下面的命令來卸載掉
目前我們查詢到的是這樣的:

[root@hsp ~]# rpm -qa | grep mysql
mysql-libs-5.1.73-7.el6.x86_64

如果查詢到了,就洗掉吧

rpm -e mysql_libs //普通洗掉模式
rpm -e --nodeps mysql_libs // 強力洗掉模式,如果使用上面命令洗掉時,提示有依賴的其它檔案,則用該命令可以對其進行強力洗掉

二:安裝MySQL

  • 安裝編譯代碼需要的包
    yum -y install make gcc-c++ cmake bison-devel ncurses-devel
    下載MySQL 5.6.14 【這里我們已經下載好了,看軟體檔案夾】
    tar xvf mysql-5.6.14.tar.gz
    cd mysql-5.6.14

  • 編譯安裝[原始碼=》編譯]
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

  • 編譯并安裝
    make && make install

整個程序需要30分鐘左右……漫長的等待

三:配置MySQL

  • 設定權限
    使用下面的命令查看是否有mysql用戶及用戶組
    cat /etc/passwd 查看用戶串列
    cat /etc/group 查看用戶組串列
    如果沒有就創建
    groupadd mysql
    useradd -g mysql mysql
  • 修改/usr/local/mysql權限
    chown -R mysql:mysql /usr/local/mysql
    初始化配置,進入安裝路徑(在執行下面的指令),執行初始化配置腳本,創建系統自帶的資料庫和表
    cd /usr/local/mysql
    scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql [這是一條指令]

:在啟動MySQL服務時,會按照一定次序搜索my.cnf,先在/etc目錄下找,找不到則會搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的組態檔的默認位置!
注意:在CentOS 6.8版作業系統的最小安裝完成后,在/etc目錄下會存在一個my.cnf,需要將此檔案更名為其他的名字,如:/etc/my.cnf.bak,否則,該檔案會干擾原始碼安裝的MySQL的正確配置,造成無法啟動,
修改名稱,防止干擾:
mv /etc/my.cnf /etc/my.cnf.bak

啟動MySQL
添加服務,拷貝服務腳本到init.d目錄,并設定開機啟動
[注意在 /usr/local/mysql 下執行]
cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start --啟動MySQL

執行下面的命令修改root密碼
cd /usr/local/mysql/bin
./mysql -uroot
mysql> SET PASSWORD = PASSWORD('root');

添加環境變數:
在這里插入圖片描述
然后就可以在任何地方直接使用 mysql -u root -p 去登陸了,這里設定的面為root
在這里插入圖片描述

簡單使用:
創建一個資料庫 DB1
創建一張表 user
添加一個用戶,如果成功,說明我們的資料庫就安裝成功了!
在這里插入圖片描述

第 17 章 大資料定制篇 Shell 編程

17.1 為什么要學習 Shell 編程

  1. Linux 運維工程師在進行服務器集群管理時,需要撰寫 Shell 程式來進行服務器管理,
  2. 對于 JavaEE 和 Python 程式員來說,作業的需要,你的老大會要求你撰寫一些 Shell 腳本進行程式或者是服務器的維護,比如撰寫一個定時備份資料庫的腳本,
  3. 對于大資料程式員來說,需要撰寫 Shell 程式來管理集群,

17.2 Shell 是什么

畫一個示意圖:
在這里插入圖片描述
Shell 是一個命令列解釋器,它為用戶提供了一個向 Linux 內核發送請求以便運行程式的界面系統級程式,用戶可以用 Shell 來啟動、掛起、停止甚至是撰寫一些程式.

17.3 shell 編程快速入門-Shell 腳本的執行方式

17.3.1 腳本格式要求

  1. 腳本以#!/bin/bash 開頭
  2. 腳本需要有可執行權限

17.3.2 撰寫第一個 Shell 腳本

需求說明
創建一個 Shell 腳本,輸出 hello world!
看案例:
在這里插入圖片描述

17.3.3 腳本的常用執行方式

方式 1(輸入腳本的 絕對路徑 或 相對路徑 )

  1. 首先要賦予 helloworld.sh 腳本的+x 權限
  2. 執行腳本
    在這里插入圖片描述

方式 2(sh+腳本),不推薦

  • 說明:不用賦予腳本+x 權限,直接執行即可
    在這里插入圖片描述

17.4 shell 的變數

17.4.1 Shell 的變數的介紹

1)Linux Shell 中的變數分為,系統變數用戶自定義變數
2)系統變數:$HOME、$PWD、$SHELL、$USER 等等
比如:echo $HOME 等等
在這里插入圖片描述
3)顯示當前 shell 中所有變數:set

17.4.2 shell 變數的定義.

基本語法

  1. 定義變數:變數=值
  2. 撤銷變數:unset 變數
  3. 宣告靜態變數:readonly 變數,注意:不能 unset

快速入門
案例 1:定義變數 A
案例 2:撤銷變數 A
在這里插入圖片描述

案例 3:宣告靜態的變數 B=2,不能 unset
在這里插入圖片描述
案例 4:可把變數提升為全域環境變數,可供其他 shell 程式使用【一會舉例,】

17.4.3 ?定義變數的規則

  1. 變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,
  2. 等號兩側不能有空格
  3. 變數名稱一般習慣為大寫

17.4.4 ?將命令的回傳值賦給變數(重點)

1)A=`ls -la` 反引號,運行里面的命令,并把結果回傳給變數 A
2)A=$(ls -la) 等價于反引號

在這里插入圖片描述

17.5 設定環境變數

17.5.1 基本語法

  1. export 變數名=變數值 (功能描述:將 shell 變數輸出為環境變數)
  2. source 組態檔 (功能描述:讓修改后的配置資訊立即生效)
  3. echo $變數名 (功能描述:查詢環境變數的值)
    在這里插入圖片描述

17.5.2 快速入門

  1. 在/etc/profile 檔案中定義 TOMCAT_HOME 環境變數
    在這里插入圖片描述
  2. 查看環境變數 TOMCAT_HOME 的值
    echo $TOMCAT_HOME
  3. 在另外一個 shell 程式中使用 TOMCAT_HOME
    在這里插入圖片描述

注意:在輸出 TOMCAT_HOME 環境變數前,需要讓其生效
source /etc/profile

17.6 位置引數變數

17.6.1 介紹

當我們執行一個 shell 腳本時,如果希望獲取到命令列的引數資訊,就可以使用到位置引數變數,比如 : ./myshell.sh 100 200 , 這個就是一個執行 shell 的命令列,可以在 myshell 腳本中獲取到引數資訊

17.6.2 基本語法

  • $n (功能描述:n 為數字,$0 代表命令本身,$1-$9 代表第一到第九個引數,十以上的引數,十以上的引數需要用大括號包含,如${10})
  • $* (功能描述:這個變數代表命令列中所有的引數,$*把所有的引數看成一個整體)
  • $@(功能描述:這個變數也代表命令列中所有的引數,不過$@把每個引數區分對待)
  • $#(功能描述:這個變數代表命令列中所有引數的個數)

17.6.3 位置引數變數應用實體

案例:撰寫一個 shell 腳本 positionPara.sh , 在腳本中獲取到命令列的各個引數資訊
在這里插入圖片描述

17.7 預定義變數

17.7.1 基本介紹

就是 shell 設計者事先已經定義好的變數,可以直接在 shell 腳本中使用

17.7.2 基本語法

  • $$ (功能描述:當前行程的行程號(PID))
  • $! (功能描述:后臺運行的最后一個行程的行程號(PID))
  • $? (功能描述:最后一次執行的命令的回傳狀態,如果這個變數的值為 0,證明上一個命令正確執行;如果這個變數的值為非 0(具體是哪個數,由命令自己來決定),則證明上一個命令執行不正確了,)

17.7.3 應用實體

在一個 shell 腳本中簡單使用一下預定義變數

在這里插入圖片描述

17.8 運算子

17.8.1 基本介紹

學習如何在 shell 中進行各種運算操作,

17.8.2 基本語法

  1. “$((運算式))”或“$[運算式]”
  2. expr m + n
    注意 expr 運算子間要有空格
  3. expr m - n
  4. expr *, /, % 乘,除,取余

應用實體
案例 1:計算(2+3)X4 的值

  1. $((運算式))
    在這里插入圖片描述

  2. $[運算式]
    在這里插入圖片描述

  3. expr
    在這里插入圖片描述

案例 2:請求出命令列的兩個引數[整數]的和.
在這里插入圖片描述

17.9 條件判斷

判斷陳述句

17.9.1 ?基本語法

[ condition ](注意 condition 前后要有空格)

非慷訓傳 true,可使用$?驗證(0 為 true,>1 為 false)

17.9.2 ?應用實體

  • [ atguigu ] :回傳 true
  • [] :回傳 false
  • [condition] && echo OK || echo notok : 條件滿足,執行后面的陳述句

17.9.3 ?常用判斷條件

  1. 兩個整數的比較
    • = 字串比較
    • -lt 小于
    • -le 小于等于
    • -eq 等于
    • -gt 大于
    • -ge 大于等于
    • -ne 不等于
  2. 按照檔案權限進行判斷
    • -r 有讀的權限 [ -r 檔案 ]
    • -w 有寫的權限
    • -x 有執行的權限
  3. 按照檔案型別進行判斷
    • -f 檔案存在并且是一個常規的檔案
    • -e 檔案存在
    • -d 檔案存在并是一個目錄

17.9.4 應用實體

案例 1:"ok"是否等于"ok"
判斷陳述句:
在這里插入圖片描述

案例 2:23 是否大于等于 22
判斷陳述句:
在這里插入圖片描述

案例 3:/root/install.log 目錄中的檔案是否存在
判斷陳述句:
在這里插入圖片描述

17.10流程控制

17.10.1 if 判斷

基本語法

if [ 條件判斷式 ];then
程式
fi

或者

if [ 條件判斷式 ]
	then
	程式
elif [條件判斷式]
	then
	程式
fi

注意事項:

(1)[ 條件判斷式 ],中括號和條件判斷式之間必須有空格
(2) 推薦使用第二種方式

應用實體
案例:請撰寫一個 shell 程式,如果輸入的引數,大于等于 60,則輸出 "及格了",如果小于 60,則輸出 "不及格"

在這里插入圖片描述

17.10.2 case 陳述句

基本語法

case $變數名 in
"值 1")
如果變數的值等于值 1,則執行程式 1
;;
"值 2")
如果變數的值等于值 2,則執行程式 2
;;
…省略其他分支…
*)
如果變數的值都不是以上的值,則執行此程式
;;
esac

應用實體
案例 1 :當命令列引數是 1 時,輸出 "周一", 是 2 時,就輸出"周二", 其它情況輸出 "other"

在這里插入圖片描述

17.10.3 for 回圈

基本語法 1

for in 1 2 3...
do
	程式
done

應用實體
案例 1 :列印命令列輸入的引數 【會使用到$* $@】
在這里插入圖片描述

基本語法 2

for (( 初始值;回圈控制條件 ;變數變化 ))
do 
	程式
done
	

應用實體
案例 1 :從 1 加到 100 的值輸出顯示

17.10.4 while 回圈

基本語法 1

while [ 條件判斷式 ]
do
	程式
done

應用實體
案例 1 :從命令列輸入一個數 n,統計從 1+..+ n 的值是多少?
在這里插入圖片描述

17.11 read 讀取控制臺輸入

17.11.1 基本語法

read(選項)(引數)
選項:
-p:指定讀取值時的提示符;
-t:指定讀取值時等待的時間(秒),如果沒有在指定的時間內輸入,就不再等待了,,
引數
變數:指定讀取值的變數名

17.11.2 應用實體

案例 1:讀取控制臺輸入一個 num 值
案例 2:讀取控制臺輸入一個 num 值,在 10 秒內輸入,
在這里插入圖片描述

17.12函式

17.12.1 函式介紹

shell 編程和其它編程語言一樣,有系統函式,也可以自定義函式,系統函式中,我們這里就介紹兩個

17.12.2 系統函式

  • basename 基本語法
    功能:回傳完整路徑最后 / 的部分,常用于獲取檔案名
    basename [pathname] [suffix]
    basename [string] [suffix] (功能描述:basename 命令會刪掉所有的前綴包括最后一個(‘/’)字符,然后將字串顯示出來,
    選項:
    suffix 為后綴,如果 suffix 被指定了,basename 會將 pathname 或 string 中的 suffix 去掉

  • dirname 基本語法
    功能:回傳完整路徑最后 / 的前面的部分,常用于回傳路徑部分
    dirname 檔案絕對路徑 (功能描述:從給定的包含絕對路徑的檔案名中去除檔案名(非目錄的部分),然后回傳剩下的路徑(目錄的部分))

17.12.3 ?應用實體

案例 1:請回傳 /home/aaa/test.txt 的 "test.txt" 部分
在這里插入圖片描述
案例 2:請回傳 /home/aaa/test.txt 的 /home/aaa
在這里插入圖片描述

17.12.4 自定義函式

基本語法

[ function ] funname[()]
{
	Action;
	[return int;]
}

呼叫直接寫函式名:funname [值]

應用實體
案例 1:計算輸入兩個引數的和(read), getSum
在這里插入圖片描述

17.13Shell 編程綜合案例

需求分析
1)每天凌晨 2:10 備份 資料庫 atguiguDB 到 /data/backup/db
2)備份開始和備份結束能夠給出相應的提示資訊
3)備份后的檔案要求以備份時間為檔案名,并打包成 .tar.gz 的形式,比如:
2018-03-12_230201.tar.gz
4) 在備份的同時,檢查是否有 10 天前備份的資料庫檔案,如果有就將其洗掉,

撰寫一個 shell 腳本,
思路分析:
在這里插入圖片描述

代碼實作:

在這里插入圖片描述

在這里插入圖片描述

第 18 章 Python 定制篇 開發平臺 Ubuntu

18.1 Ubuntu 的介紹

Ubuntu(友幫拓、優般圖、烏班圖)是一個以桌面應用為主的開源 GNU/Linux 作業系統,Ubuntu是基于 GNU/Linux,支持 x86、amd64(即 x64)和 ppc 架構,由全球化的專業開發團隊(Canonical Ltd)打造的,

專業的 Python 開發者一般會選擇 Ubuntu 這款 Linux 系統作為生產平臺.

溫馨提示:

Ubuntu 和 Centos 都是基于 GNU/Linux 內核的,因此基本使用和 Centos 是幾乎一樣的,它們的各種指令可以通用,同學們在學習和使用 Ubuntu 的程序中,會發現各種操作指令在前面學習 CentOS都使用過,只是界面和預安裝的軟體有所差別,
Ubuntu 下載地址:http://cn.ubuntu.com/download/
在這里插入圖片描述

18.2 Ubuntu 的安裝

18.2.1 安裝的步驟
檢查BIOS虛擬化支持
在這里插入圖片描述

新建虛擬機
在這里插入圖片描述

新建虛擬機向導

在這里插入圖片描述
在這里插入圖片描述

填寫ubuntu系統資訊
在這里插入圖片描述

設定安裝ubuntu的位置和虛擬機的名稱
在這里插入圖片描述

設定磁盤容量

回到頂部

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281391.html

標籤:其他

上一篇:零基礎學Python,AI時代必備編程語言

下一篇:JAVA設計之SPI

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more