到達底部
@
目錄- 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 的使用
- 5.1 為什么需要遠程登錄 Linux
- 第 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使用細節
- 7.1 關機&重啟命令
- 第 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 磁盤情況-作業實用指令
- 12.1 磁區基礎知識
- 第 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 應用實體:
- 15.1 rpm 包的管理
- 第 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
- 16.1 概述
- 第 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 的學習方法和建議(很重要)
-
- 高效而愉快的學習
-
- 先建立一個整體框架,然后細節
-
- 不需要掌握所有的 Linux 指令,要學會查詢手冊和百度
-
- 先 know how ,再 know why
-
- 計算機是一門”做中學” 的學科 ,不是會了再做,而是做了才會.
-
- 適當的囫圇吞棗
-
- Linux 不是編程,重點是實際操作,各種常用指令要玩的溜
第 2 章 基礎篇 Linux 入門
2.1 Linux 介紹
-
- Linux 怎么讀 【里紐克斯,利尼克斯,里納克斯】
-
- Linux 是一款作業系統,免費,開源, 安全,高效,穩定, 處理高并發非常強悍,現在很多的企業級的專案都部署到 Linux/unix 服務器運行,
-
- Linux 創始人-linux 林納斯

- Linux 創始人-linux 林納斯
-
- Linux 的吉祥物
企鵝 tux

- Linux 的吉祥物
-
- Linux 的主要的發行版

- 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 安裝的步驟
- 去 BIOS 里修改設定開啟虛擬化設備支持(f2, f10)
- 安裝虛擬機軟體(vm12)
看老師的具體演示:因為老師的電腦上已經安裝了 VM12,因此我先卸載然后再安裝
Linux_安裝VMWare
3.4 CentOS安裝的步驟
- 創建虛擬機(空間)
這里在配置網路連接時,有三種形式,需要大家伙注意 :

- 1 橋接模式: 會給虛擬機上的Linux系統分配當前網路的ip地址,能夠同其他系統通信,
- 2 NAT : 會給虛擬機上的Linux系統分配一個不同的網段ip地址,此時虛擬機上的Linux 可以訪問外部(通過自己的windows上的ip代理出去),但是外部的其他機器不能訪問虛擬機上的Linux系統,
- 3 主機模式 :你的Linux是一個獨立的主機,不能訪問外網,
-
開始安裝系統(CentOS6.8)
-
看老師安裝的演示程序,
參考: Linux_安裝CentOS
3.5 CentOS 的終端使用和聯網
-
終端的使用,點擊滑鼠右鍵,即可選擇打開終端

編輯-->測寫首選項-->顏色, 可以改變顏色和背景

-
配置網路,可以上網,
點擊上面右側的;兩個計算機圖片,選擇啟用 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 的共享檔案夾
-
選單->vm->setting, 如圖設定即可
注意:設定選項為 always enable ,
這樣可以讀寫了

-
windows 和 centos 可共享 d:/share 目錄
可以讀寫檔案了 -
在 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 目錄總結一下
- linux 的目錄中有且只要一個根目錄 /
- linux 的各個目錄存放的內容是規劃好,不用亂放檔案,
- linux 是以檔案的形式管理我們的設備,因此 linux 系統,一切皆為檔案,
- linux 的各個檔案目錄下存放什么內容,大家必須有一個認識,
- 學習后,你腦海中應該有一顆 linux 目錄樹
第 5 章 實操篇 遠程登錄 Linux 系統
5.1 為什么需要遠程登錄 Linux
5.1.1示意圖

5.1.2說明
說明: 公司開發時候, 具體的情況是這樣的
- linux 服務器是開發小組共享的.
- 正式上線的專案是運行在公網的.
- 因此程式員需要遠程登錄到 centos 進行專案管理或者開發.
- 畫出簡單的網路拓撲示意圖(幫助理解)
- 遠程登錄客戶端有 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 快捷鍵的使用案例
- 拷貝當前行 yy , 拷貝當前行向下的 5 行 5yy,并粘貼(p),
- 洗掉當前行 dd , 洗掉當前行向下的 5 行 5dd
- 在檔案中查找某個單詞 [命令列下 /關鍵字 , 回車 查找 , 輸入 n 就是查找下一個 ],查詢hello.
- 設定檔案的行號,取消檔案的行號.[命令列下 : set nu 和 :set nonu]
- 編輯 /etc/profile 檔案,使用快捷鍵到底檔案的最末行[G]和最首行[gg],注意這些都是在正常模式下執行的,
- 在一個檔案中輸入 "hello" ,然后又撤銷這個動作,再正常模式下輸入 u
- 編輯 /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基本介紹
- 登錄時盡量少用 root 帳號登錄,因為它是系統管理員,最大的權限,避免操作失誤,可以利用普通用戶登錄,登錄后再用”su - 用戶名’命令來切換成系統管理員身份.
- 在提示符下輸入 logout 即可注銷用戶

7.2.2使用細節
- logout 注銷指令在圖形運行級別無效,在 運行級別 3 下有效.
- 運行級別這個概念,后面給大家介紹
第 8 章 實操篇 用戶管理
8.1 基本介紹
給大家畫一個示意圖,幫助大家理解用戶管理的規則,

說明
- Linux 系統是一個多用戶多任務的作業系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統,
- Linux 的用戶需要至少要屬于一個組,
8.2 添加用戶
8.2.1基本語法
useradd [選項] 用戶名
8.2.2實際案例
添加一個用戶 xm.

特別說明:
cd 表示 change directory, 切換目錄.
8.2.3細節說明
- 當創建用戶成功后,會自動的創建和用戶同名的家目錄
- 也可以通過 useradd -d 指定目錄 新的用戶名,給新創建的用戶指定家目錄
8.3 給用戶指定或者修改密碼
基本語法
passwd 用戶名
應用案例
- 給 xiaoming 指定密碼

8.4 洗掉用戶
8.4.1基本語法
userdel 用戶名
8.4.2應用案例
-
洗掉用戶 xm,但是要保留家目錄

-
洗掉用戶 xh 以及用戶主目錄

8.4.3思考題
在洗掉用戶時,我們一般不會將家目錄洗掉,
8.5 查詢用戶資訊
8.5.1基本語法
id 用戶名
8.5.2應用實體
案例 1:請查詢 root 資訊

8.5.3細節說明
- 當用戶不存在時,回傳”無此用戶”

8.6 切換用戶
8.6.1介紹
在操作 Linux 中,如果當前用戶的權限不夠,可以通過 su - 指令,切換到高權限用戶,比如 root
8.6.2基本語法
su – 切換用戶名
8.6.3應用實體
- 創建一個用戶 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課堂練習:
- 假設我們的 root 密碼忘記了,請問如何找回密碼
- 請設定我們的 運行級別,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 > 指令 和 >> 指令
> 指令 和 >> 指令
> 輸出重定向 : 會將原來的檔案的內容覆寫
>> 追加: 不會覆寫原來檔案的內容,而是追加到檔案的尾部,
基本語法
- ls -l >檔案 (功能描述:串列的內容寫入檔案 a.txt 中(覆寫寫))

說明:ls -l > a.txt , 將 ls -l 的顯示的內容覆寫寫入到 a.txt 檔案,如果該檔案不存在,就創建該檔案,
-
ls -al >>檔案 (功能描述:串列的內容追加到檔案 aa.txt 的末尾)

-
cat 檔案 1 > 檔案 2 (功能描述:將檔案 1 的內容覆寫到檔案 2)

-
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 行內容,
基本語法
- tail 檔案 (功能描述:查看檔案后 10 行內容)
- tail -n 5 檔案 (功能描述:查看檔案后 5 行內容,5 可以是任意行數)
- 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 指令-顯示當前日期
基本語法
- date (功能描述:顯示當前時間)
- date +%Y (功能描述:顯示當前年份)
- date +%m (功能描述:顯示當前月份)
- date +%d (功能描述:顯示當前是哪一天)
- 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" 所在行,并且顯示行號

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 中每個檔案有所有者、所在組、其它組的概念,
- 所有者
- 所在組
- 其它組
- 改變用戶所在的組

10.2檔案/目錄 所有者
一般為檔案的創建者,誰創建了該檔案,就自然的成為該檔案的所有者,
10.2.1 查看檔案的所有者
-
指令:ls -ahl
-
應用實體:創建一個組 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 改變用戶所在組
- usermod –g 組名 用戶名
- 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 位說明
- 第 0 位確定檔案型別(d, - , l , c , b)
- - : 普通檔案
- d: 目錄
- l : 軟連接
- c: 字符設備(滑鼠、鍵盤)
- b:塊檔案,硬碟
- 第 1-3 位確定所有者(該檔案的所有者)擁有該檔案的權限,---User
- 第 4-6 位確定所屬組(同用戶組的)擁有該檔案的權限,---Group
- 第 7-9 位確定其他用戶擁有該檔案的權限 ---Other
- 下一塊(1):如果是檔案,表示硬鏈接的數,如果是目錄則表示該目錄的子目錄個數,
- 下一塊(root): 該檔案或目錄所屬的用戶
- 下一塊(root): 該檔案或目錄所屬的組
- 下一塊(1213): 檔案大小,如果是目錄則為4096
- 下一塊( Feb 2 09:39): 最后一次修改時間
- 下一塊( abc): 檔案或目錄名

10.8 rwx 權限詳解
10.8.1 rwx 作用到檔案
- [ r ]代表可讀(read): 可以讀取,查看
- [ w ]代表可寫(write): 可以修改,但是不代表可以洗掉該檔案,洗掉一個檔案的前提條件是對該檔案所在的目錄有寫權限,才能洗掉該檔案.
- [ x ]代表可執行(execute):可以被執行
10.8.2 rwx 作用到目錄
- [ r ]代表可讀(read): 可以讀取,ls 查看目錄內容
- [ w ]代表可寫(write): 可以修改,目錄內創建+洗掉+重命名目錄
- [ 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 的總和)
- chmod u=rwx,g=rx,o=x 檔案目錄名
- chmod o+w 檔案目錄名
- chmod a-x 檔案目錄名
案例演示
-
給 abc 檔案 的所有者讀寫執行的權限,給所在組讀執行權限,給其他組讀執行權限 ,

-
給 abc 檔案的所有者除去執行的權限,增加組寫的權限

-
給 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 案例演示:
- 請將 /home/abc .txt 檔案的所有者修改成 tom

- 請將 /home/kkk 目錄下所有的檔案和目錄的所有者都修改成 tom
首先我們應該使用 root 操作,

10.12 修改檔案所在組-chgrp
10.12.1 基本介紹
chgrp newgroup file 改變檔案的所有組
10.12.2 案例演示:
-
請將 /home/abc .txt 檔案的所在組修改成 bandit (土匪)
chgrp bandit /home/abc.txt -
請將 /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 步驟如下
- cron -e
- */ 1 * * * * ls -l /etc >> /tmp/to.txt
- 當保存退出后就程式,
- 在每一分鐘都會自動的呼叫 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,
- 先撰寫一個檔案 /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak - 給 mytask3.sh 一個可以執行權限
chmod 744 /home/mytask3.sh - crontab -e
- 0 2 * * * /home/mytask3.sh
- 成功
11.6 crond 相關指令:
- conrtab –r:終止任務調度,
- crontab –l:列出當前有那些任務調度
- service crond restart [重啟任務調度]
第 12 章 實操篇 Linux 磁盤磁區、掛載
12.1 磁區基礎知識
12.1.1 磁區的方式:
- mbr 磁區:
1.最多支持四個主磁區
2.系統只能安裝在主磁區
3.擴展磁區要占一個主磁區
4.MBR 最大只支持 2TB,但擁有最好的兼容性 - 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 原理介紹
- Linux 來說無論有幾個磁區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的檔案結構 , Linux 中每個磁區都是用來組成整個檔案系統的一部分,
- Linux 采用了一種叫“載入”的處理方法,它的整個檔案系統中包含了一整套的檔案和目錄,且將一個磁區和一個目錄聯系起來,這時要載入的一個磁區將使它的存盤空間在一個目錄下獲得,
- 示意圖

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

12.3 掛載的經典案例
需求是給我們的 Linux 系統增加一個新的硬碟,并且掛載到/home/newdisk

12.3.1 如何增加一塊硬碟
- 虛擬機添加硬碟
- 磁區 fdisk /dev/sdb
- 格式化 mkfs -t ext4 /dev/sdb1
- 掛載 先創建一個 /home/newdisk , 掛載 mount /dev/sdb1 /home/newdisk
- 設定可以自動掛載(永久掛載,當你重啟系統,仍然可以掛載到 /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 磁盤情況-作業實用指令
-
統計/home 檔案夾下檔案的個數

-
統計/home 檔案夾下目錄的個數

-
統計/home 檔案夾下檔案的個數,包括子檔案夾里的

-
統計檔案夾下目錄的個數,包括子檔案夾里的

-
以樹狀顯示目錄結構

第 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 指令)
- 使用 ipconfig 查看
- 界面查看

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

修改后,一定要 重啟服務
- service network restart
- reboot 重啟系統

第 14 章 實操篇 行程管理
14.1 行程的基本介紹
- 在 LINUX 中,每個執行的程式(代碼)都稱為一個行程,每一個行程都分配一個 ID 號,
- 每一個行程,都會對應一個父行程,而這個父行程可以復制多個子行程,例如 www 服務器,
- 每個行程都可能以兩種方式存在的,前臺與后臺,所謂前臺行程就是用戶目前的螢屏上可以進行操作的,后臺行程則是實際在操作,但由于螢屏上無法看到的行程,通常使用后臺方式執行,
- 一般系統的服務都是以后臺行程的方式存在,而且都會常駐在系統中,直到關機才才結束,
14.2 顯示系統執行的行程
14.2.1 說明
查看行程使用的指令是 ps ,一般來說使用的引數是 ps -aux


14.2.2 ps 指令詳解
- 指令:
ps –aux|grep xxx,比如我看看有沒有 sshd 服務:ps -aux | grep sshd - 指令說明
? 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 使用案例:
- 查看當前防火墻的狀況,關閉防火墻和重啟防火墻,

14.5.4 細節討論:
- 關倍訓者啟用防火墻后,立即生效,[telnet 測驗 某個埠即可]

- 這種方式只是臨時生效,當重啟系統后,還是回歸以前對服務的設定,
如果希望設定某個服務自啟動或關閉永久生效,要使用 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 命令可以給每個服務的各個運行級別設定自啟動/關閉
基本語法
-
查看服務 chkconfig --list|grep xxx


-
chkconfig 服務名 --list

-
chkconfig --level 5 服務名 on/off

14.5.9 應用實體:
- 案例 1: 請顯示當前系統所有服務的各個運行級別的運行狀態
bash> chkconfig --list - 案例 2 :請查看 sshd 服務的運行狀態
bash> service sshd status - 案例 3: 將 sshd 服務在運行級別 5 下設定為不自動啟動,看看有什么效果?
bash> chkconfig --level 5 sshd off - 案例 4: 當運行級別為 5 時,關閉防火墻,
bash> chkconfig --level 5 iptables off - 案例 5: 在所有運行級別下,關閉防火墻
bash> chkconfig iptables off - 案例 6: 在所有運行級別下,開啟防火墻
bash> chkconfig iptables on
14.5.10 ? 使用細節
- 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 包的名稱
?應用案例
- 洗掉 firefox 軟體包

?細節問題 - 如果其它軟體包依賴于您要卸載的軟體包,卸載時則會產生錯誤資訊
如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1 - 如果我們就是要洗掉 foo 這個 rpm 包,可以增加引數 --nodeps ,就可以強制洗掉,但是一般不推薦這樣做,因為依賴于該軟體包的程式可能無法運行
如:$ rpm -e --nodeps foo
帶上 --nodeps 就是強制洗掉,
15.1.6 安裝 rpm 包
基本語法
rpm -ivh RPM 包全路徑名稱
引數說明
i=install 安裝
v=verbose 提示
h=hash 進度條
應用實體
- 演示安裝 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
- 先查看一下 firefox rpm 在 yum 服務器有沒有

- 安裝
會安裝最新版本的軟體,
成功!

第 16 章 JavaEE 定制篇 搭建 JavaEE 環境
16.1 概述
16.1.1 示意圖:

如果需要在 Linux 下進行 JavaEE 的開發,我們需要安裝如下軟體

16.2 安裝 JDK
16.2.1 看老師演示,一會整理筆記:
16.2.2 安裝步驟
-
先將軟體通過 xftp5 上傳到 /opt 下
-
解壓縮到 /opt
-
配置環境變數的組態檔 vim /etc/profile

JAVA_HOME=/opt/jdk1.7.0_79
PATH=/opt/jdk1.7.0_79/bin:$PATH
export JAVA_HOME PATH -
需要注銷用戶,環境變數才能生效,
如果是在 3 運行級別, logout
如果是在 5 運行級別,右上角注銷 -
在任何目錄下就可以使用 java 和 javac

16.2.3 測驗是否安裝成功
撰寫一個簡單的 Hello.java 輸出"hello,world!"


16.3 安裝 tomcat
-
解壓縮到/opt

-
啟動 tomcat ./startup.sh
先進入到 tomcat 的 bin 目錄


使用 Linux 本地的瀏覽是可以訪問到 tomcat -
開放埠 8080 ,這樣外網才能訪問到 tomcat
vim /etc/sysconfig/iptables

重啟防火墻

16.3.2 測驗是否安裝成功:
在 windows、Linux 下 訪問 http://linuxip:8080

16.4 Eclipse 的安裝
16.4.1 步驟 :
- 解壓縮到/opt

- 啟動 eclipse,配置 jre 和 server
啟動方法 1: 創建一個快捷方式
啟動方式 2: 進入到 eclipse 解壓后的檔案夾,然后執行 ./eclipse 即可 - 撰寫 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 編程
- Linux 運維工程師在進行服務器集群管理時,需要撰寫 Shell 程式來進行服務器管理,
- 對于 JavaEE 和 Python 程式員來說,作業的需要,你的老大會要求你撰寫一些 Shell 腳本進行程式或者是服務器的維護,比如撰寫一個定時備份資料庫的腳本,
- 對于大資料程式員來說,需要撰寫 Shell 程式來管理集群,
17.2 Shell 是什么
畫一個示意圖:

Shell 是一個命令列解釋器,它為用戶提供了一個向 Linux 內核發送請求以便運行程式的界面系統級程式,用戶可以用 Shell 來啟動、掛起、停止甚至是撰寫一些程式.
17.3 shell 編程快速入門-Shell 腳本的執行方式
17.3.1 腳本格式要求
- 腳本以#!/bin/bash 開頭
- 腳本需要有可執行權限
17.3.2 撰寫第一個 Shell 腳本
需求說明
創建一個 Shell 腳本,輸出 hello world!
看案例:

17.3.3 腳本的常用執行方式
方式 1(輸入腳本的 絕對路徑 或 相對路徑 )
- 首先要賦予 helloworld.sh 腳本的+x 權限
- 執行腳本

方式 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 變數的定義.
基本語法
- 定義變數:變數=值
- 撤銷變數:unset 變數
- 宣告靜態變數:readonly 變數,注意:不能 unset
快速入門
案例 1:定義變數 A
案例 2:撤銷變數 A

案例 3:宣告靜態的變數 B=2,不能 unset

案例 4:可把變數提升為全域環境變數,可供其他 shell 程式使用【一會舉例,】
17.4.3 ?定義變數的規則
- 變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,
- 等號兩側不能有空格
- 變數名稱一般習慣為大寫
17.4.4 ?將命令的回傳值賦給變數(重點)
1)A=`ls -la` 反引號,運行里面的命令,并把結果回傳給變數 A
2)A=$(ls -la) 等價于反引號

17.5 設定環境變數
17.5.1 基本語法
- export 變數名=變數值 (功能描述:將 shell 變數輸出為環境變數)
- source 組態檔 (功能描述:讓修改后的配置資訊立即生效)
- echo $變數名 (功能描述:查詢環境變數的值)

17.5.2 快速入門
- 在/etc/profile 檔案中定義 TOMCAT_HOME 環境變數

- 查看環境變數 TOMCAT_HOME 的值
echo $TOMCAT_HOME - 在另外一個 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 基本語法
- “$((運算式))”或“$[運算式]”
- expr m + n
注意 expr 運算子間要有空格 - expr m - n
- expr *, /, % 乘,除,取余
應用實體
案例 1:計算(2+3)X4 的值
-
$((運算式))

-
$[運算式]

-
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 ?常用判斷條件
- 兩個整數的比較
- = 字串比較
- -lt 小于
- -le 小于等于
- -eq 等于
- -gt 大于
- -ge 大于等于
- -ne 不等于
- 按照檔案權限進行判斷
- -r 有讀的權限 [ -r 檔案 ]
- -w 有寫的權限
- -x 有執行的權限
- 按照檔案型別進行判斷
- -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 :
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
標籤:其他
下一篇:JAVA設計之SPI
