Linux的使用_尚硅谷视频学习笔记
到達底部
文章目錄
- 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 ?基本語法
- 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 的吉祥物
企鵝 tux
- 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 安裝的步驟
看老師的具體演示:因為老師的電腦上已經安裝了 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 目錄總結一下
第 5 章 實操篇 遠程登錄 Linux 系統
5.1 為什么需要遠程登錄 Linux
5.1.1示意圖
5.1.2說明
說明: 公司開發時候, 具體的情況是這樣的
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 快捷鍵的使用案例
第一步:顯示行號 :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基本介紹
7.2.2使用細節
第 8 章 實操篇 用戶管理
8.1 基本介紹
給大家畫一個示意圖,幫助大家理解用戶管理的規則。
說明
8.2 添加用戶
8.2.1基本語法
useradd [選項] 用戶名
8.2.2實際案例
添加一個用戶 xm.
特別說明:
cd 表示 change directory, 切換目錄.
8.2.3細節說明
8.3 給用戶指定或者修改密碼
基本語法
passwd 用戶名
應用案例
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應用實例
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課堂練習:
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 -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 行內容。
基本語法
應用實例
案例 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: 顯示當前時間信息
案例 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 改變用戶所在組
10.6.2 應用實例
創建一個土匪組(bandit)將 tom 這個用戶從原來所在的 police 組,修改到 bandit(土匪) 組
10.7權限的基本介紹
ls -l 中顯示的內容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位說明
- - : 普通文件
- d: 目錄
- l : 軟連接
- c: 字符設備(鼠標、鍵盤)
- b:塊文件,硬盤
10.8 rwx 權限詳解
10.8.1 rwx 作用到文件
10.8.2 rwx 作用到目錄
10.9文件及目錄權限實際案例
ls -l 中顯示的內容如下:(記住)
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
10 個字符確定不同用戶能對文件干什么
第一個字符代表文件類型: 文件 (-),目錄(d),鏈接(l)
其余字符每 3 個一組(rwx) 讀? 寫(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 的總和)
案例演示
給 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 案例演示:
首先我們應該使用 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 步驟如下
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。
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
chmod 744 /home/mytask3.sh
11.6 crond 相關指令:
第 12 章 實操篇 Linux 磁盤分區、掛載
12.1 分區基礎知識
12.1.1 分區的方式:
1.最多支持四個主分區
2.系統只能安裝在主分區
3.擴展分區要占一個主分區
4.MBR 最大只支持 2TB,但擁有最好的兼容性
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 原理介紹
12.2.2 硬盤說明
12.2.3 使用 lsblk 指令查看當前系統的分區情況
12.3 掛載的經典案例
需求是給我們的 Linux 系統增加一個新的硬盤,并且掛載到/home/newdisk
12.3.1 如何增加一塊硬盤
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 指令)
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
修改后,一定要 重啟服務
第 14 章 實操篇 進程管理
14.1 進程的基本介紹
14.2 顯示系統執行的進程
14.2.1 說明
查看進程使用的指令是 ps ,一般來說使用的參數是 ps -aux
14.2.2 ps 指令詳解
? 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 細節討論:
如果希望設置某個服務自啟動或關閉永久生效,要使用 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 應用實例:
bash> chkconfig --list
bash> service sshd status
bash> chkconfig --level 5 sshd off
bash> chkconfig --level 5 iptables off
bash> chkconfig iptables off
bash> chkconfig iptables on
14.5.10 ? 使用細節
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 包的名稱
?應用案例
?細節問題
如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
如:$ rpm -e –nodeps foo
帶上 --nodeps 就是強制刪除。
15.1.6 安裝 rpm 包
基本語法
rpm -ivh RPM 包全路徑名稱
參數說明
i=install 安裝
v=verbose 提示
h=hash 進度條
應用實例
步驟先找到 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
會安裝最新版本的軟件。
成功!
第 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 步驟 :
啟動方法 1: 創建一個快捷方式
啟動方式 2: 進入到 eclipse 解壓后的文件夾,然后執行 ./eclipse 即可
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 編程
17.2 Shell 是什么
畫一個示意圖:
Shell 是一個命令行解釋器,它為用戶提供了一個向 Linux 內核發送請求以便運行程序的界面系統級程序,用戶可以用 Shell 來啟動、掛起、停止甚至是編寫一些程序.
17.3 shell 編程快速入門-Shell 腳本的執行方式
17.3.1 腳本格式要求
17.3.2 編寫第一個 Shell 腳本
需求說明
創建一個 Shell 腳本,輸出 hello world!
看案例:
17.3.3 腳本的常用執行方式
方式 1(輸入腳本的 絕對路徑 或 相對路徑 )
方式 2(sh+腳本),不推薦
- 說明:不用賦予腳本+x 權限,直接執行即可
17.4 shell 的變量
17.4.1 Shell 的變量的介紹
1)Linux Shell 中的變量分為,系統變量 和用戶自定義變量 。
2)系統變量:HOME、HOME、HOME、PWD、SHELL、SHELL、SHELL、USER 等等
比如:echo $HOME 等等
3)顯示當前 shell 中所有變量:set
17.4.2 shell 變量的定義.
基本語法
快速入門
案例 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 基本語法
17.5.2 快速入門
echo $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代表第一到第九個參數,十以上的參數,十以上的參數需要用大括號包含,如9 代表第一到第九個參數,十以上的參數,十以上的參數需要用大括號包含,如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 運算符間要有空格
應用實例
案例 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的位置和虛擬機的名稱
設置磁盤容量
回到頂部
總結
以上是生活随笔為你收集整理的Linux的使用_尚硅谷视频学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尚硅谷前端视频总结(一)
- 下一篇: 西门子1200PLC的OB块用法讲解