日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

尚硅谷韩顺平Linux教程学习笔记

發布時間:2023/12/18 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 尚硅谷韩顺平Linux教程学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

尚硅谷韓順平Linux教程學習筆記
文章目錄
尚硅谷韓順平Linux教程學習筆記
寫在前面
虛擬機
Linux目錄結構
遠程登錄Linux系統
vi和vim編輯器
關機、重啟和用戶登錄注銷
用戶管理
實用指令
組管理和權限管理
定時任務調度
Linux磁盤分區、掛載
網絡配置
進程管理
RPM
YUM
搭建JAVAEE環境
安裝Tomcat
安裝Eclipse
安裝mysql
Shell編程
Shell編程綜合案例
Python定制篇 開發平臺Ubuntu
寫在前面
學習鏈接:尚硅谷韓順平Linux教程

虛擬機
虛擬機的網絡連接三種形式說明
橋連接:Linux可以和其他的系統通信。但是可能造成IP沖突。
NAT:網絡地址轉換方式:Linux可以訪問外網,不會造成IP沖突。
主機模式:你的Linux是一個獨立的主機,不能訪問外網。
vmtools:
共享文件夾
共享剪貼板
Linux目錄結構
Linux世界里,一切皆文件。

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

Linux的目錄中有且只有一個根目錄。
Linux的各個目錄存放的內容是規劃好,不用亂放文件。
Linux是以文件的形式管理我們的設備,因此linux系統,一切皆為文件。
Linux的各個文件目錄下存放什么內容,必須有一個認識。
遠程登錄Linux系統
遠程登錄:XShell5
遠程上傳下載文件:Xftp5
vi和vim編輯器
三種常見模式:

正常模式

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

插入模式/編輯模式

在這個模式下,程序猿可以輸入內容。

命令行模式

在這個模式中,可以提供相關指令。

快捷鍵使用練習:

yy:拷貝當前行
5yy:拷貝當前5行
dd:刪除當前行
5dd:刪除當前行向下的5行
在文件中查找某個單詞:命令行輸入 /(查找內容),按n查找下一個
設置文件行號:set nu,取消文件行號:set nonu
編輯文件,正常模式下使用快捷鍵到達文檔最末行:G,最首行:gg
撤銷輸入:在正常模式下輸入u
編輯文件,光標移動到某行:shift+g
顯示行號:set nu
輸入行號這個數
輸入shift+g
關機、重啟和用戶登錄注銷
shutdown -h now:表示立即關機
shutdown -h 1:表示1分鐘后關機
shutdown -r now:立即重啟
halt:直接使用,關機
reboot:重啟
sync:把內存的數據同步到磁盤上,當我們關機或者重啟時,都應該先執行一下sync,防止數據丟失。
logout:注銷用戶,在圖形運行級別無效,在運行級別3有效。
用戶管理
用戶,組,家目錄。

Linux系統是一個多用戶多任務的操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。
Linux的用戶需要至少要屬于一個組。
添加用戶:useradd [選項] 用戶名。
cd:表示change directory,切換目錄。
當創建用戶成功后,會自動的創建和用戶同名的家目錄。
也可以通過useradd -d 指定目錄 新的用戶名。
指定/修改密碼:passwd 用戶名
刪除用戶,保留家目錄:userdel 用戶名,一般保留家目錄,因為干過的活要留著。
刪除用戶以及家目錄:userdel -r 用戶名
查詢用戶信息:id 用戶名
切換用戶:su - 切換用戶名,從權限高切換到權限低的用戶不需要輸密碼。
返回切換前的用戶:exit
查看當前用戶/登錄用戶:who am i
用戶組:類似于角色,系統可以對有共性的多個用戶進行統一的管理。
增加組:groupadd 組名
刪除組:groupdel 組名
增加用戶時直接加上組:useradd -g 用戶組 用戶名
修改用戶組:usermod -g 用戶組 用戶名
/etc/passwd 文件
用戶(user)的配置文件,記錄用戶的各種信息。
每行的含義:用戶名:口令:用戶標識號:注釋性描述:主目錄:登錄shell
/etc/shadow 文件
口令配置文件
每行的含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
/etc/group 文件
組(group)的配置文件,記錄Linux包含的組的信息。
每行含義:組名:口令:組標識號:組內用戶列表
實用指令
指定運行級別(7個級別)

關機
單用戶【找回丟失密碼】
多用戶狀態沒有網絡服務
多用戶狀態有網絡服務
系統未使用保留給用戶
圖形界面
系統重啟
系統的運行級別配置文件:/etc/inittab

切換到指定運行級別的指令:init [012356]

面試題:如何找回丟失的root密碼?:進入到單用戶模式,然后修改root密碼。因為進入單用戶模式,root不需要密碼就可以登錄。【開機->在引導時輸入 回車鍵->看到一個界面輸入 e->看到一個新的界面,選中第二行(編輯內核),再輸入 e->在這行最后輸入 1,再輸入 回車鍵->再輸入b,這時就會進入到單用戶模式,使用passed來修改root密碼。】

幫助指令:

man [命令或配置文件]
help
文件目錄類

pwd:Print Working Directory,顯示當前工作目錄的絕對路徑。

ls:-a:顯示當前目錄所有的文件和目錄,包括隱藏的;-l:以列表的方式顯示信息。

cd:cd ~:回到自己的家目錄;cd …:回到當前目錄的上一級目錄。

mkdir:創建目錄;-p:創建多級目錄。

rmdir:刪除空目錄。rmdir不能刪除非空的目錄。如果需要刪除非空的目錄,需要使用rm -rf。

touch:創建空文件。可以一次性創建多個文件

cp:拷貝文件到指定目錄;-r:遞歸復制整個文件夾。強制覆蓋不提示的方法:cp命令改為\cp

rm:移除文件或目錄;-r:遞歸刪除整個文件夾;-f:強制刪除不提示。

mv:移動文件與目錄或重命名,兩種功能!

cat:查看文件內容。只能瀏覽文件,而不能修改文件。-n:顯示行號。結尾加上 | more:分頁顯示,不會全部一下顯示完。

more:是一個基于VI編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容。more還內置了很多快捷鍵:

操作?? ?功能說明
空白鍵(Space)?? ?向下翻一頁
Enter?? ?向下翻一行
q?? ?立刻離開more,不再顯示該文件內容
Ctrl + F?? ?向下滾動一屏
Ctrl + B?? ?返回上一屏
=?? ?輸出當前行的行號
:f?? ?輸出文件名和當前行的行號
less:用來分屏查看文件內容,與more相似,但是更強大,支持各種顯示終端。less指令在顯示文件內容時,并不是一次將整個文件加載之后才顯示,而是根據顯示需要加載內容。對于顯示大型文件具有較高的效率。

>指令:輸出重定向。如果不存在會創建文件,否則會將原來的文件內容覆蓋。

>>指令:追加。如果不存在會創建文件,否則不會覆蓋原來的文件內容,而是追加到文件的尾部。

cat是查看,echo是寫入,echo (內容) >> 文件

cal:顯示當前月日歷。

echo:輸出內容到控制臺。

head:顯示文件的開頭部分。-n 5:看前面5行內容。

tail:輸出文件中尾部的內容。-n 5:看后面5行內容。-f:時事追蹤該文檔的所有更新

時間日期類

date:顯示當前日期和時間
date “+%Y”:顯示當前年份
date “+%d”:顯示當前月份
date “+%Y-%m-%d %H:%M:%S”:顯示年-月-日 時:分:秒
設置日期:date -s 字符串時間
cal:查看日歷指令;cal 年份:顯示某一年一整年的日歷
搜索查找類

find:從指定目錄向下遞歸的遍歷其各個子目錄,將滿足條件的文件或者目錄顯示在終端。
find (搜索范圍) -name (文件名):按照指定的文件名查找模式查找文件。
find (搜索范圍) -user (用戶名):按照指定的用戶名查找模式查找文件。
find (搜索范圍) -size (+多少/-多少/多少):按照指定的文件大小查找模式查找文件(大于多少/小于多少/等于多少)
查詢 /目錄下所有.txt的文件:find / -name *.txt
locate:locate (搜索文件)
可以快速定位文件路徑。locate指令利用事先建立的系統中所有文件名稱及路徑的locate數據庫實現快速定位給定的文件。locate指令無需遍歷整個文件系統,查詢速度較快。為了保證查詢結果的準確度,管理員必須定期更新locate時刻。
在第一次運行之前,必須使用updatedb指令創建locate數據庫。
grep:過濾查找,表示將前一個命令的處理結果輸出傳遞給后面的命令處理。經常跟管道一起使用。
grep [選項] 查找內容 源文件
-n:顯示匹配行及行號。
-i:忽略大小寫字母。
cat hello.txt | grep yes
壓縮和解壓類

gzip/gunzip:壓縮文件/解壓
gzip (文件):壓縮為.gz文件,原來文件不保留。
gunzip (文件):解壓縮,同樣也不保留源文件。
zip/unzip:壓縮文件/解壓
zip [選項] (壓縮后文件xxx.zip) (將要壓縮的文件)
unzip [選項] (要解壓的文件xxx.zip)
zip -r:遞歸壓縮,即壓縮目錄
unzip -d (目錄):指定解壓后的文件的存放目錄
tar:打包指令,最后打包后的文件是.tar.gz的文件
tar [選項] xxx.tar.gz (打包的內容)
-c:產生.tar打包文件
-v:顯示詳細信息
-f:指定壓縮后的文件名
-z:打包同時壓縮
-x:解壓.tar文件
壓縮:tar -zcvf (壓縮后文件名) (要壓縮的文件)
解壓:tar -zxvf (要解壓的文件)
解壓到指定目錄:tar -zxvf (要解壓的文件) -C (指定目錄),指定解壓到的目錄要存在。
組管理和權限管理
文件:

所有者
所在組
其他組
改變用戶所在組
文件/目錄所有者:

一般為文件的創建者,誰創建了該文件,就自然的稱為該文件的所有者。
查看文件所有者:ls -ahl
修改文件所有者:chown (用戶名) (文件名)
文件所在組不一定是文件所有者。
組的創建

groupadd (組名)
文件/目錄所在組

修改文件所在組:chgrp (組名) (文件名)
其他組

除文件的所有者和所在組的用戶外,系統的其他用戶都是文件的其他組
改變用戶所在組

在添加用戶時,可以指定將該用戶添加到哪個組中,同樣的用root的管理權限可以改變某個用戶所在的組
改變用戶所在組:usermod -g 組名 用戶名
改變用戶登錄的初始目錄:usermod -d 目錄名 用戶名
權限的基本介紹

文件類型:

-:普通類型
d:目錄
l:軟連接
c:字符設備【鍵盤、鼠標等】
b:塊文件【硬盤】
ls -l 顯示內容說明:

rw-:表示文件所有者權限(rw,讀寫)
r–:表示文件所在組的用戶的權限(r,只有讀的權限)
r–:表示文件其他組的用戶的權限(r,只有讀的權限)
1:如果是文件,表示硬連接的數;如果是目錄則表示該目錄的子目錄個數
tom:文件所有者
bandit:文件所在組
0:文件的大小,0個字節;如果是目錄,則統一為4096
July 1 13:40:文件最后的修改時間
ok.txt:文件名


rwx權限詳解

rwx作用到文件:
r:read,可讀。讀取查看。
w:write,可以修改。但不代表可以刪除該文件。刪除一個文件的前提條件是對該文件所在的目錄有寫權限,才能刪除該文件。
x:execute,可執行。可以被執行。
rwx作用到目錄:
r:可以讀取,ls查看目錄內容。
w:可以修改,目錄內創建+刪除+重命名目錄。
x:可執行,可以進入該目錄。
修改權限 chmod

修改文件或者目錄的權限
u:所有者;g:所在組;o:其他人;a:所有人(u、g、o的總和)
chmod u=rwx,g=rx,o=x 文件目錄名:分別權限
chmod o+w 文件目錄名:給其他人都增加寫的權限
chmod a-x 文件目錄名:給所有的用戶都減掉執行權限
通過數字變更權限

規則:r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目錄名 等價于 chmod 751 文件目錄名
修改文件所有者 chown

chown newowner file:改變文件的所有者
chown newowner:newgroup file:改變用戶的所有者和所在組
-R:如果是目錄,則使其下所有子文件或目錄遞歸生效
修改文件所在組 chgrp

chgrp newgroup file:改變文件的所有組
-R:如果是目錄,則使其下所有子文件或目錄遞歸生效
定時任務調度
crond任務調度:crontab進行定時任務調度

crontab [選項]
-e:編輯crontab定時任務
-i:查詢crontab任務
-r:刪除當前用戶所有的crontab任務
-l:列出當前有哪些任務調度
service crond restart:重啟任務調度
當保存退出后就生效了
參數細節說明
項目?? ?含義?? ?范圍
第一個“*”?? ?一小時當中的第幾分鐘?? ?0-59
第二個“*”?? ?一天當中的第幾小時?? ?0-23
第三個“*”?? ?一個月當中的第幾天?? ?1-31
第四個“*”?? ?一年當中的第幾月?? ?1-12
第五個“*”?? ?一周當中的星期幾?? ?0-7(0和7都代表星期日)
特殊符號說明

*:代表任何時間。比如第一個*就代表一小時中每分鐘都執行一次的意思。
,:代表不連續的時間。比如“0 8,12,16 * * *命令”,就代表在每天的8點0分,12點0分,16點0分都執行一次命令。
-:代表連續的時間范圍。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5點0分執行命令。
/n:代表每隔多久執行一次。比如“*/10 * * * * 命令”,代表每隔10分鐘就執行一遍命令。
Linux磁盤分區、掛載
分區的方式

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

Linux來說無論有幾個分區,分給哪一個目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構,Linux中每個分區都是用來組成整個文件系統的一部分。
Linux采用了一種叫做“載入”的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯系起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得。
硬盤說明

Linux硬盤分IDE硬盤和SCSI硬盤,目前基本上是SCSI硬盤
lsblk -f:查看當前系統的分區和掛載情況。(list block)
掛載的經典案例

需求是給我們的Linux系統增加一個新的硬盤,并且掛載到/home/newdisk
虛擬機添加硬盤
分區:fdsk /dev/sdb
格式化:mkfs -t ext4 /dev/sdb1
掛載:新建目錄:mkdir /home/newdisk;掛載:mount /dev/sdb1 /home/newdisk
設置可以自動掛載(永久掛載):重啟系統后,仍然可以掛載。vim etc/fstab 增加掛載信息。mount -a:生效
取消掛載:unmount /dev/sdb1
磁盤情況查詢:df -h / df -l

查詢指定目錄的磁盤占用情況:du -h /目錄,默認為當前目錄

-s:指定目錄占用大小匯總
-h:帶計量單位
-a:含文件
–max-depth=1:子目錄深度
-c:列出明細的同時,增加匯總值
磁盤情況-工作實用指令

統計/home文件夾下文件的個數:ls -l /home | grep "^-" | wc -l
統計/home文件夾下目錄的個數:ls -l /home | grep "^d" | wc -l
統計/home文件夾下文件的個數,包括子文件夾里的:ls -lR /home | grep "^-" | wc -l
統計文件夾下目錄的個數,包括子文件夾里的:ls -lR /home | grep "^d" | wc -l
以樹狀顯示目錄結構:首先安裝tree指令:yum install tree,tree
網絡配置
指定固定IP:直接修改配置文件來指定IP,并可以連接到外網,編輯:vim /etc/sysconfig/network-scripts/ifcfg-eth0
重啟網絡服務:service network restart
進程管理
在Linux中,每個執行的**程序(代碼)**都稱為一個進程。每個進程都分配一個ID號
每一個進程,都會對應一個父進程,而這個父進程可以復制多個子進程。例如www服務器。
每個進程都可能以兩種方式存在。前臺和后臺。
前臺進程:用戶目前的屏幕上可以進行操作的。
后臺進程:實際在操作,但由于屏幕上無法看到的進程,通常使用后臺方式執行。
一般系統的服務都是以后臺進程的方式存在,而且都會常駐在系統中,直到關機才結束。
顯示系統執行的進程
ps:查看目前系統中,有哪些正在執行,以及它們執行的狀況。可以不加任何參數。PID:進程識別號;TTY:終端機號;TIME:此進程所消耗的CPU時間;CMD:正在執行的命令或進程名
ps -a:顯示當前終端的所有進程信息。
ps -u:以用戶的格式顯示進程信息。
ps -x:顯示后臺進程運行的參數。
ps -axu | grep xxx:過濾得到xxx的信息。
ps -ef:以全格式顯示當前所有的進程,查看進程的父進程。
-e:顯示所有進程。
-f:全格式。
終止進程
kill [選項] 進程號:通過進程號殺死進程
killall 進程名稱:通過進程名稱殺死進程,也支持通配符,這在系統因負載過大而變得很慢時很有用
-9:表示強迫進程立刻停止
案例1:踢掉非法用戶:kill 進程號
案例2:終止遠程登錄服務sshd,在適當時候再次重啟sshd服務
案例3:終止多個gedit編輯器:killall 進程名稱
案例4:強制殺掉一個終端:kill -9 進程號
查看進程樹:pstree [選項]
-p:顯示進程的PID
-u:顯示進程的所屬用戶
服務(service)管理
service管理指令:service 服務名 [start | stop | restart | reload | status]
在CentOS7.0之后,不再使用service,而是systemctl
查看防火墻情況:
service iptables status
systemctl status firewalld(7.0之后的版本)
測試某個端口是否在監聽:telnet
查看服務名:
方式1:使用setup->系統服務就可以看到
方式2:/etc/init.d/服務名稱
服務的運行級別(runlevel):
查看或修改默認級別:vim /etc/inittab
每個服務對應的每個運行級別都可以設置
如果不小心將默認的運行級別設置成0或者6,怎么處理?
進入單用戶模式,修改成正常的即可。
chkconfig:可以給每個服務的各個運行級別設置自啟動/關閉
查看xxx服務:chkconfig –list | grep xxx
查看服務的狀態:chkconfig 服務名 --list
給服務的運行級別設置自啟動:chkconfig –level 5 服務名 on/off
要所有運行級別關閉或開啟:chkconfig 服務名 on/off
動態監控進程
top [選項]
top和ps命令很相似。它們都用來顯示正在執行的進程。top和ps最大的不同之處在于top在執行一段時間可以更新正在運行的進程。
-d 秒數:指定top命令每隔幾秒更新。默認是3秒。
-i:使top不顯示任何閑置或者僵死進程。
-p:通過指定監控進程ID來僅僅監控某個進程的狀態。
案例1:監控特定用戶:top查看進程;u輸入用戶名。
案例2:終止指定的進程:top查看進程;k輸入要結束的進程。
案例3:指定系統狀態更新的時間(每隔10秒自動更新,默認是3秒):top -d 10
交互操作說明:
P:以CPU使用率排序,默認就是此項
M:以內存的使用率排序
N:以PID排序
q:退出top
監控網絡狀態
netstat [選項]
-an:按一定順序排列輸出
-p:顯示哪個進程在調用
RPM
RPM:RedHat Package Manager,紅帽軟件包管理工具。
RPM查詢已安裝的rpm列表:rpm -qa | grep xx
rpm包的其它查詢指令:
rpm -qa:查詢所安裝的所有rpm軟件包
rpm -qa | more
rpm -qa | grep xx
rpm -q xx:查詢xx軟件包是否安裝
rpm -qi xx:查詢軟件包信息
rpm -ql xx:查詢軟件包中的文件
rpm -qf 文件全路徑名:查詢文件所屬的軟件包
卸載rpm包:rpm -e 軟件包名稱
刪除時可能會發生依賴錯誤,忽視依賴強制刪除的方法:rpm -e --nodeps 軟件包名稱
安裝rpm包:rpm -ivh 軟件包全路徑名稱
i=install:安裝
v=verbose:提示
h=hash:進度條
YUM
YUM:是一個shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包。使用yum的前提是聯網。
yum list | grep xx:查詢yum服務器是否有需要安裝的軟件
yum install xx:安裝指定的yum包
yum -y remove xx:卸載指定的yum包
搭建JAVAEE環境
將軟件上傳到/opt下
解壓縮
配置環境變量的配置文件vim /etc/profile
JAVA_HOME=/opt/jdk1.7.0_79
PATH=/opt/jdk1.7.0_79/bin:$PATH
export JAVA_HOME PATH
保存然后source /etc/profile生效
安裝Tomcat
解壓縮到/opt:tar -zxvf apache-tomcat-7.0.70.tar.gz
進入tomcat的bin目錄,啟動tomcat ./startup.sh:./startup.sh
開放端口 vim /etc/sysconfig/iptables
firewall-cmd --zone=public --add-port=8080/tcp --permanent(Centos7)
systemctl restart firewalld.service
firewall-cmd --reload
重啟防火墻生效
測試是否安裝成功:在windows和Linux下訪問http://linuxip:8080
安裝Eclipse
解壓縮到/opt:tar -zxvf eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz
啟動eclipse,配置jre和server:./eclipse
編寫Hello world程序并測試成功
編寫jsp頁面,并測試成功
安裝mysql
查看是否有mysql:rpm -qa | grep mysql

刪除舊mysql:rpm -e –nopdeps mysql(強制刪除)

安裝環境:yum -y install make gcc-c++ cmake bison-devel ncurses-devel

解壓mysql:tar -zxvf mysql-5.6.14.tar.gz

進入mysql目錄

編譯安裝:

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_ENHINE=1
-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci

編譯并安裝:make && make install

配置mysql,設置權限

查看是否有mysql用戶和組:cat /etc/passwd,cat /etc/group

添加mysql組:groupadd mysql

添加mysql用戶并放在mysql組中:useradd -g mysql mysql

修改/usr/local/mysql權限:chown -R mysql:mysql /usr/local/mysql/

初始化mysql:

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
–user=mysql

如果報錯:Can't locate Data/Dumper.pm,則運行:yum install 'perl(Data::Dumper)',參考鏈接:https://www.cnblogs.com/yanghongfei/p/7118072.html

刪除之前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

執行下面的命令修改root密碼

cd /usr/local/mysql/bin

./mysql -u root -p

set password = password(‘root’);(quit退出mysql)

Shell編程
Shell是一個命令行解釋器,它為用戶提供了一個向Linux內核發送請求以便裕興程序的界面系統級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。

Shell腳本的執行方式:

腳本格式要求:
腳本以#!/bin/bash 開頭
腳本需要有可執行權限
腳本的常用執行方式:
方式1(輸入腳本的絕對路徑或相對路徑)
首先要賦予xx.sh腳本的+x權限:chmod 744 myShell.sh
執行腳本:./myShell.sh
方式2(sh+腳本):
說明:不用賦予+x權限,直接執行即可
sh ./myShell.sh
shell的變量

shell變量的介紹

Linux Shell的變量分為,系統變量和用戶自定義變量
系統變量:$HOME、$PWD、$SHELL、$USER等等
顯示當前shell中所有變量:set
shell變量的定義

基本語法

定義變量:變量=值,=兩邊不能有空格

撤銷變量:unset 變量

聲明靜態變量:readonly 變量,注意:不能unset

定義變量的規則

變量名稱可以由字母、數字和下劃線組成,但是不能以數字開頭
等號兩側不能有空格
變量名稱一般習慣為大寫
將命令的返回值賦給變量

A=ls -la這里有反引號(ESC下面),運行里面的命令,并把結果返回給變量A
A=$(ls -la)等價于上面
設置環境變量

基本語法

export 變量名=變量值:將shell變量輸出為環境變量

source 配置文件:讓修改后的配置文件信息立即生效

echo $變量名:查詢環境變量的值

多行注釋:

:<<!

需要注釋的內容

!

位置參數變量

當我們執行一個shell腳本時,如果希望獲取到命令行的參數信息就可以使用到位置參數變量。比如: ./myshell.sh 100 200,這個就是一個執行shell的命令行,可以在myshell腳本中傳參100,200。
基本語法:
$n:n為數字,$0代表命令本身,$1-$9代表第一到第九個參數,10以上的參數需要用大括號包含,如${10}
$*:這個變量代表命令行中所有的參數,$*把所有的參數看成一個整體
$@:這個變量也代表命令行中所有的參數,不過$@把每個參數區分對待
$#:這個變量代表命令行中所有參數的個數
預定義變量

shell設計者事先已經定義好的變量,可以直接在shell腳本中使用
基本語法:
$$:當前進程的進程號(PID)
$!:后臺運行的最后一個進程的進程號(PID)
$?:最后一次執行的命令的返回狀態。如果這個變量的值為0,證明上一個命令正確執行;如果這個變量的值為非0(具體是哪個數,由命令自己來決定),則證明上一個命令執行不正確。
后臺運行:./myShell.sh &
運算符

在Shell中進行各種運算操作
“$((運算式))”或“$[運算時]”
expr m + n,注意expr運算符間要有空格
expr m - n
expr \* / %,乘,除,取余
條件判斷

基本語法:[ condition ],注意condition前后有空格!
非空返回true,可使用$?驗證(0為true,>1為false)
兩個整數比較
=:字符串比較
-lt:小于
-le:小于等于
-eq:等于
-gt:大于
-ge:大于等于
-ne:不等于
按照文件權限進行判斷
-r:有讀的權限
-w:有寫的權限
-x:有執行的權限
按照文件類型進行判斷
-f:文件存在并且是一個常規的文件
-e:文件存在
-d:文件存在并且是一個目錄
流程控制if語句

if判斷基本語法:

if [ 條件判斷式 ];then

程序

fi

或者:

if [ 條件判斷式 ]

??? ?then

??? ?程序

elif [ 條件判斷式 ]

??? ?then

??? ?程序

fi

流程控制case語句

case語句基本語法:

case $變量名 in

“值1”)

如果變量的值等于值1,則執行程序1

;;

“值2”)

如果變量的值等于值2,則執行程序2

;;

…省略其他分支…

*)

如果變量的值都不是以上的值,則執行此程序

;;

esac

流程控制for循環

for循環基本語法1:

for 變量 in 值1 值2 值3…

??? ?do

??? ?程序

??? ?done

for循環基本語法2

for ((初始值;循環控制條件;變量變化))

??? ?do

??? ?程序

??? ?done

流程控制while循環

while循環基本語法1:

while [ 條件判斷式 ]

??? ?do

??? ?程序

??? ?done

read讀取控制臺的輸入

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

系統函數

basename:返回完整路徑最后/的部分,常用于獲取文件名
basename [pathname] [suffix]
basename [string] [suffix]
basename命令會刪掉所有的前綴包括最后一個/
選項:suffix為后綴,如果suffix被指定了,basename會將pathname或string中的suffix去掉
dirname:返回完整路徑最后/的前面的部分,常用于返回路徑部分
dirname 文件絕對路徑:從給定的包含絕對路徑的文件名中出去文件名(非目錄部分),然后返回剩下的路徑(目錄部分)
反正兩個系統函數都不要最后一個/
自定義函數

基本語法:

function funname()

{

??? ?Action;

??? ?[return int;]

}

調用直接寫函數名:funname(不用寫括號),然后在后面寫參數

Shell編程綜合案例
需求分析

每天凌晨2:10備份數據庫atguiguDB到/data/backup/db
備份開始和備份結束能夠給出相應的提示信息
備份后的文件要求以備份時間為文件名,并打包成.tar.gz的形式,比如:2018-03-12_230201.tar.gz
在備份的同時,檢查是否有10天前備份的數據庫文件,如果有就將其刪除。
如果報錯:mysqldump: command not found

解決方案:

先找到mysqldump的位置:find / -name mysqldump -print
然后建立一個鏈接:ln -fs /usr/local/mysql/bin/mysql /usr/bin
crontab -e

10 2 * * * /usr/sbin/mysql_backup_db.sh

Python定制篇 開發平臺Ubuntu
設置Ubuntu支持中文

su root顯示認證失敗:是因為我們還沒有對root用戶設置密碼

給root用戶設密碼:sudo passwd

如果ubuntu沒有vim:apt install vim

apt軟件管理和遠程登錄

apt:Advanced Packaging Tool,是一款安裝包管理工具。在Ubuntu下,我們可以使用apt命令進行軟件包的安裝、刪除、清理等。

常用命令:

sudo apt-get update
更新源
sudo apt-get install package 安裝包
sudo apt-get remove package 刪除包
sudo apt-cache search package 搜索軟件包
sudo apt-cache show package
獲取包的相關信息,如說明、大小、版本等
sudo apt-get install package --reinstall
重新安裝包

sudo apt-get -f install
修復安裝
sudo apt-get remove package --purge 刪除包,包括配置文件等
sudo apt-get build-dep package 安裝相關的編譯環境

sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
sudo apt-cache depends package 了解使用該包依賴那些包
sudo apt-cache rdepends package 查看該包被哪些包依賴
sudo apt-get source package
下載該包的源代碼

更新Ubuntu軟件下載地址

查看Ubuntu版本:cat /proc/version
需要修改的文件位置:/etc/apt/source.list
Windows使用SSH遠程登錄Ubuntu

安裝SSH:sudo apt-get install openssh-server
啟用SSH:service sshd start
Linux使用SSH遠程登錄Ubuntu

同上
基本語法:ssh 用戶名@IP
例如:ssh atguigu@192.168.188.130
使用shh訪問,如訪問出現錯誤。可查看是否有該文件 ~/.ssh/known_ssh,嘗試刪除該文件解決。
登出:exit或者logout

版權聲明:本文為CSDN博主「李英俊小朋友」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_21579045/article/details/95605401

總結

以上是生活随笔為你收集整理的尚硅谷韩顺平Linux教程学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。