linux01
一、linux介紹與作用
windows: 95 98 2000 xp win7 win8 win10(客戶機)
windows 2003server 2008server(服務器)
linux: 烏班圖 紅帽 紅旗 安卓 ios 小米 錘子
linux:CentOS(服務器)
Linux特點:
開源(免費)
安全
穩定
可靠
windows 2008 server
簡單
易用
用戶友好
http://www.netcraft.com 踩點技術
李納斯 託瓦斯
肯 湯普森
丹尼斯里奇
二、命令行提示符
a) [root@localhost ~]#(掌握)
[當前登錄用戶@主機名 當前所在目錄] #
linux 超級用戶: root
windows 超級用戶: administartor
超級用戶
$ 普通用戶
當前所在目錄 ~ 用戶的家目錄
管理員超級用戶 /root/
普通用弩 /home/用戶名/所在目錄
b) linux 命令格式
命令 空格 [選項] 空格 [參數]
選項: 使用與調整命令的功能
參數 : 參數是命令操作的對象 如果可以省略 說明有默認值的參數顯示
注意: 在linux下是嚴格區分大小寫的 所有內容都嚴格區分大小寫
c) ls list 顯示目錄下的內容(重點重點重點)
ls 直接回車 顯示目錄下的內容
ls -l 長格式顯示(縮略的選項用一個減號 完整的選項使用兩個減號)
別名 ll
-rw-r--r--. 1 root root 27034 7月 25 22:42 install.log
第一列 權限 所有者權限 所屬組權限 其他人權限(瞭解)
第二列: 引用計數
第三列: 所有者
第四列: 所屬組
第五列: 大小 默認單位Byte
第六列: 文件最後一次修改和訪問時間
第七列: 文件名
ls -hl -h 人性化顯示 文件大小顯示爲 M K G T
多個選項可以一起使用而且大部分沒有任何順序
ls -a 顯示所有文件(包含隱藏文件)
文件名前面帶點的文件是隱藏文件
需求: 我想要所有文件人性化 長格式顯示
ls -ahl
d) 目錄操作命令(重點重點重點重點重點)
- cd 切換所在目錄
a) 命令名稱 :cd
b) cd /home
相對路徑
參考當前所在目錄 進行查詢 如果使用相對目錄 請先查看好所在目錄是哪一個
絕對路徑
從根目錄(/)開始 一級一級的查找 直到找到位置 對於初學者來說 建議使用絕對路徑
cd 回到登錄用戶的家目錄
cd - 進入上一次操作目錄
cd .. 進入上一級目錄
tab鍵 可以對我們的目錄和文件進行補全
c) 終止命令執行 使用ctrl+c - pwd 顯示當前所在目錄(重點重點重點)
- linux常見目錄(以下目錄必須全部記錄)(重點重點)
/ 根目錄
/root 超級管理員的家目錄
/home 普通用戶的家目錄
/bin 命令保存目錄(普通用戶的命令)
/sbin 命令保存目錄(超級用戶的命令)
/dev 設備文件保存目錄
/etc 配置文件的保存目錄
/lib 函數庫的保存目錄
/mnt 系統掛載目錄(推薦使用)
/media 掛載目錄
/tmp 臨時目錄
/proc 直接寫入內存
/usr 系統軟件資源目錄
/var 系統相關文件內容
/var/log 系統日誌 - 建立目錄(重點重點重點)
藍色名字的文件是目錄
mkdir 目錄名
mkdir weisuobao
mkdir -p weisuobao/shuaiqixiang/qiuqiu/baizi
加上-p 就是遞歸創建 - 刪除(重點 重點 重點)
rm -rf 文件/目錄
-r 刪除目錄
-f 強制
快捷鍵:
強制終止 : ctrl+c
清屏: ctrl + l
三、文件操作命令 (重點重點重點重點重點) - 創建文件 新建文件
touch 文件名
touch hetao.avi - cat 文件名 查看文件
cat -n install.log
-n 查看文件同時顯示行號 - more 文件名 分屏顯示
more install.log
空格向下翻頁 b 向上翻頁 q 退出 - head -要查看的條數 文件名
head -10 install.log
四、文件和目錄都能操作的命令(重點重點重點) - rm 刪除 rm -rf 文件/目錄
-
cp 複製拷貝 copy
cp ./xiaoni.laodu ./weisuobao/shuaiqixiang/xiaoni.laodu
cp /root/xiaoni.laodu /root/weisuobao/shuaiqixiang/xiaoni.laodu
複製文件
cp -r /root/sanpi /root/weisuobao/sanpi/
-r 複製目錄 - mv 剪切或改名
mv 源文件 目標位置
mv /root/xiaoni.laodu /tmp/xiaoni.laodu剪切
mv ./xiaoni.laodu ./weisuodelaodu 改名
既要剪切也要改名
mv /root/sanpi/xiaoni.laodu /root/weisuobao/ml.laodu
五、權限管理(重點重點重點重點重點重點難點難點)
- 權限位
d rwx r-xr-x
權限位是十位
第一位: 代表文件類型
- 普通文件
d 目錄文件
l 鏈接文件
後面九位 每三位代表一個權限
第二位到第四位 所有者權限 u=user
第五位到第七位 所屬組權限 g =group
第八位到 第十位 其他人權限 o = other
r 讀取 4
w 寫入 2
x 執行 1- 無權限
- 修改權限(超級重點重點重點重點)
chmod 權限 文件名
邏輯描述法:
chmod u+x yanquan.avi
chmod u-x yanquan.avi
chmod u=rwx yanquan.avi
chmod g=rwx yanquan.avi
其他人權限上加上rwx 對於yanquan.avi這個文件
chmod o=rwx yanquan.avi
請將其他人權限改爲rw 對於yanquan.avi這個文件
chmod o-x yanquan.avi
數字描述法
r =4 w =2 x=1
chmod 5 5 5 yanquan.avi
chmod 755 yanquan.avi
chmod 777 yanquan.avi
777最大權限 在生產服務器中 禁止賦予這個權限
實驗: 問 root用戶創建一個目錄(默認權限 rwxr-xr-x) 在目錄裏面新建一個文件 設置爲777 普通用戶是否能刪除文件 - mkdir /jack
- cd /jack
- touch rose.rmvb
- chmod 777 rose.rmvb
- useradd 用戶名(添加用戶)(瞭解)
- passwd 用戶名 (爲用戶添加密碼)(瞭解)
使用普通用戶去嘗試刪除rose.rmvb 文件
得到的結果是什麼? 刪除失敗
原因: rwx 權限對於目錄和文件實際意義不一致
文件:
r: 查看文件內容
w: 修改文件內容
x: 執行文件
目錄:
r: 列出文件
w: 創建刪除文件
x: 進入目錄
如果想要刪除目錄中的文件修改目錄權限
chmod 777 /jack
總結: - 對文件有寫權限 只能代表可以修改這個文件 要想刪除需要文件所在目錄有寫權限
- 只要對目錄有寫權限 目錄中的文件就算是root創建的文件也可以刪除掉
賦予權限要合理 - 對目錄有w權限 就意味着需要有rwx權限
- 對腳本執行 需要rx 並且對該目錄也有rx權限
- 修改權限(超級重點重點重點重點)
- 無權限
chown 修改所有者和所屬組
命令名稱: chown
chown 用戶名 文件名 改變文件所有者
chown linlin yanquan.avi linlin這個用戶必須存在
chown 用戶名:用戶組 文件名
chown linlin:linlin yanquan.avi 改變所有者同時改變所屬組
六、幫助命令
i. man 命令名
man ls 空格向下翻頁 b 向上翻頁 q退出
ii. 命令 --help
ls --help
七、關機和重啓命令
- shutdown -h now 關機 -h 關機 now 馬上
- shutdown -r now 重啓 -r 重啓 now 馬上
- reboot 重啓
注意: 如果是服務器請不要關機 但是如果是你的虛擬機你就自己開心就好
linux02
八、查找命令 - whereis 命令 查找命令的命令 同時可以看到幫助文檔位置 (掌握)
- find 搜索命令 在系統中搜索符合條件的文件名(重點重點重點重點重點)
find 查找位置 按什麼模式搜索 搜索的條件
a. 按照文件名查找
find 查找位置 -name 文件名
find / -name “sanpi” 按照文件名查找sanpi的文件(區分大小寫)
find / -iname “sanpi” 按照文件名查找sanpi的文件(不區分大小寫)
b. 按照文件大小查找
-size 按照文件大小
+50k 大於50k
-50k 小於50k
50k 等於50k
b k M G
find / -size +50k 查找 根目錄下文件大小大於50k的所有文件
c. 按照那文件類型查找
-type 類型 按照文件類型查找 f:文件 d:目錄 l 鏈接文件
find /root -type d 查找家目錄下面所有文件類型爲目錄的全部查找出來
d. 在查詢出來的結果中 直接進行命令操作
find /root -name “yanquan.avi” -exec ls -l {} \;
find 要查找的位置 按照什麼方式查找 文件名 -exec 要操作的命令 {} \;
{} 是用來放置你前面查詢出來的結果
\是轉義 表示一個命令使用其本身的意義,不使用別名
; 語句的結束
注意固定格式 只能這樣寫而且注意空格
- grep “字符串” 文件名 在文檔中搜索符合條件的內容(重點重點重點重點)
-v 反向選擇
-i 忽略大小寫
grep -i “root” /root/install.log
grep -v “root” /root/install.log
grep “字符串” 文件名 - 管道符
命令1 | 命令2 命令1 執行的結果 作爲命令2的操作對象
ls -l /etc | grep yum
ls -l /etc | more 分屏的形式顯示etc目錄下面的所有內容 向下翻頁 空格 b不能操作
九、壓縮和解壓縮(重點重點重點重點重點重點)
windows 下面壓縮類型: rar zip .7z
linux 壓縮類型: tar.gz tar.bz2 - 壓縮
tar -zcvf 壓縮文件名 源文件
-z 識別.gz格式
-c 壓縮
-v 顯示壓縮過程
-f 執行壓縮包名
壓縮的選項不要改變順序
tar -zcvf shuaiqixiang /root/meilidelixiang
tar -jcvf 壓縮的文件名 源文件
-j 識別 .bz2 格式
tar .jcvf shuaiqidebao.tar.bz2 meilidelixiang
- 解壓縮
- tar -zxvf 壓縮文件路徑
tar-zxvf shuaiqixiang.tar.gz
-x 解壓縮 - tar -jxvf 壓縮文件路徑
-x 解壓縮
tar -jxvf shuaiqidebao.tar.bz2 - 指定解壓縮路徑
tar -zxvf 解壓縮文件路徑 -C 要解壓縮的位置路徑
-C指定路徑
tar -jxvf 解壓縮文件路徑 -C 要解壓縮的位置路徑
-C 指定路徑
十、掛載命令(重點重點重點重點重點重點重點重點重點)
linux 所有的存儲設備都必須掛載才能使用(linux中的掛載點就是window中的盤符) 如果你掛載的是光盤 那麼必須提前將光驅中有光盤 - 放入光盤iso
- 建立掛載點
mkdir /mnt/cdrom - mount 設備描述文件 掛載點(必須存在目錄並且目錄必須是空目錄)
mount /dev/sr0 /mnt/cdrom
如果出現下面這句話 說明你光盤掛載成功
mount: block device /dev/sr0 is write-protected, mounting read-only
光盤卸載
umount /mnt/cdrom
報錯;
umount: /mnt/cdrom: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
計算機想說: 大哥能不能行了 我不想自殺
重點: 一定要退出你當前掛載點目錄之後再進行卸載
十一、網絡命令
- ifconfig 與windows 裏面 ipconfig -all 是一樣的顯示網絡信息
ifconfig eth0 192.168.204.250 臨時修改 - ping 網絡連通性測試
ping 192.168.204.148
ping -c 次數 ip ping 多少次 - netstat 查看網絡狀態命令
-t 查看tcp端口 tcp傳輸控制協議
-u 查看udp端口 udp 用戶數據報協議 即時通訊
-l 監聽
-n 顯示ip 和端口號
-a 查看所有連接
:80 apache
:3306 mysql
netstat -talun | grep :80 查看80端口是否被使用 apache
netstat -talun | grep :3306 查看3306端口使用情況 mysql
今天晚上各位需要將你們的外部鏈接工具給我連接成功
將/etc/selinux/config 裏面的SELINUX = enforcing 改爲 SELINUX=disabled 改完之後 reboot 重啓才能生效
十二、vim編輯器
vim 是全屏幕純文本編輯器
- vim使用
怎麼進入vim
vim 後面寫上你要操作的文件名即可
例如:vim 1.php
a. vim 模式
命令模式->插入模式(輸入模式)
a 後插入模式 (追加)
i 前插入模式
o 下插入模式
A 在本行末尾進行插入
I 在本行行首進行插入
O 上插入模式
插入模式->命令模式 ESC鍵
命令模式->編輯模式 (:)冒號 :w 保存 :wq 保存並退出 :q! 不保存退出(!強制)
快捷鍵 但是這個快捷鍵只允許在命令模式下使用
ZZ 保存並退出
b. 命令模式操作(linux 是鼠標操作 ,vim中都是通過快捷鍵來進行操作,這些快捷鍵可以替代鼠標)
- 光標操作
:n 移動到第n行
:set nu 顯示行號
在命令模式下
h左 j 下 k 上 l右
gg 移動到文件頭
G 移動到文件尾 - 刪除整行、剪切
dd 刪除單行
ndd 刪除多行 n代表你要刪除的行數
dG 從光標所在行刪除到文件末尾
p 粘貼 - 複製
yy 複製單行
nyy 複製多行 n代表你要複製的行數
p 粘貼
np 粘貼 n行 - 撤銷回來
u 撤銷 windows ctrl+z
ctrl+r 反撤銷 windows ctrl+y
注意: 如果你使用內網通飛秋等一系列軟件 請退出軟件之後再使用ctrl+r 爲什麼因爲ctrl+r在這些軟件中有熱鍵(快捷鍵) - 顯示行號
:set nu 顯示行號
:set nonu 隱藏行號 - 查找
/ 查找內容
n 下一個
N 上一個
linux03
一、軟件包管理
a) windows 和Linux的 軟件不能通用 windows的.exe文件 不能在linux下直接安裝
缺點: 所有軟件都要在linux當中獨立開發
優點: windows的病毒和***都無法在linux 下安裝
b) 軟件包選擇原則
i. 如果軟件包安裝之後 是給大量客戶端提供訪問 我們就使用的都是(源碼包)安裝
ii. 如果軟件包安裝之後 是給本機或者少量客戶端使用建議我們使用(二進制包)安裝
c) 軟件包分類 - 源碼包
優點: 開源 自定義 本身編譯 效率高
缺點: 編譯時間長 一旦報錯 不容易排除 - 二進制(rpm)包
優點: 安裝速度快 簡單
缺點: 不開源 自定義性能差 軟件包依賴性高
A--------------->B---------------------->C 樹形依賴
A---------------->B-------------------->C------------------->A 環形依賴 (庫軟件依賴) - rpm 安裝
i. 包命名
包名-版本號-發佈次數-適合的linux-適合的硬件.rpm
ii. 包全名:操作未安裝軟件包 使用我們的包全名就是(有後綴名)
iii. 包名: 操作已經安裝的軟件包 使用我們的包名(就是沒有後綴名)
- 依賴性特別嚴重
- 安裝
rpm -ivh 包全名(絕對路徑)
-i 安裝
-v 顯示詳細信息
-h 顯示進度
安裝位置: 默認位置
rpm包不建議指定安裝位置
1.系統習慣使用默認位置來查找rpm相關信息- rpm包有對應的卸載命令 不用擔心 安裝的太凌亂 導致無法卸載
- 升級
rpm -Uvh 包全名
-U 升級 - 卸載
rpm -e 包名
--nodeps 不檢查依賴性 -
查看
a) 查看軟件是否安裝
rpm -q 包名 -- 查詢包是否安裝
rpm -qa | grep httpd -- 顯示所有安裝 查詢http的是否安裝
-q 查詢
-a all 所有
b) 查詢軟件包安裝的位置
rpm -ql 包名 -- 查詢軟件包中文件安裝的位置
-l list 列表
c) 查詢系統文件屬於哪個包
rpm -qf 系統文件名 -- 查看這個系統文件是哪個包的文件
-f file 文件 - 實驗: 安裝httpd
準備工作: 掛載光盤 - 放入iso鏡像文件
- 創建目錄如果你已經有了就不用在創建了
- mount /dev/sr0 /mnt/cdrom
- 如果掛載成功之後進入到掛載點目錄
cd /mnt/cdrom/Packages/
E rpm -ivh httpd-2.2.15-53.el6.centos.i686.rpm
C rpm -ivh apr-util-ldap-1.3.9-3.el6_0.1.i686.rpm
B rpm -ivh apr-util-1.3.9-3.el6_0.1.i686.rpm
A rpm -ivh apr-1.3.9-5.el6_2.i686.rpm
D rpm -ivh httpd-tools-2.2.15-53.el6.centos.i686.rpm
- 啓動httpd服務
service httpd start
如果在瀏覽器上訪問的時候 比較慢 請查看你的防火牆是否沒有關閉 如果是請關閉掉
setup->防火牆->*號去掉 進行保存即可 - yum 命令安裝rpm包 沒有yum包 yum 是rpm的在線自動安裝方式
yum -y install 包名 安裝
install 安裝
-y 自動回答yes
yum -y remove 包名 卸載
yum -y update 包名 更新
yum list 查看所有可以安裝的包 - 將光盤作爲你的源地址 yum源(非常重點非常重點非常重點非常重點非常重點非常重點)
- cd /etc/yum.repos.d/
- mv CentOS-Base.repo CentOS-Base.repo.bak
CentOS-Base.repo 網絡源
上面的操作的作用是讓yum的網絡源失效
- mount /dev/sr0 /mnt/cdrom (如果沒有掛載請輸入這條命令 如果已經掛載請忽略)
- vim /etc/yum.repos.d/CentOS-Media.repo
[c6-media] # yum源名稱
name=CentOS-$releasever - Media #yum源說明
baseurl=file:///media/CentOS/ #指定yum源地址
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1 #yum源驗證生效
enabled=0 # yum 文生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
將上面的內容改爲下面內容
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
改完之後保存並退出文件 - 做一個實驗 用於測試yum源是否改變成功 yum -y install gcc(gcc是c語言編譯器 不裝gcc源碼包無法安裝)
d) 源碼包安裝- 上傳軟件包
使用winscp 等遠程工具連接linux上傳輸文件
實驗 上傳httpd - 安裝(重點重點重點)
a) 解壓縮
tar -zxvf 文件名
b) cd 進入解壓縮目錄
cd 進入解壓縮目錄
c) 查看安裝文檔(瞭解)
INSTALL
README
d) 檢測
./configure --prefix=/usr/local/apache2
--prefix= 兩個中間不能出現空格
功能:
1.檢測系統環境 聲明 makefile文件 - 定義軟件選項
--prefix 指定軟件安裝目錄
e) 編譯
make
若編譯失敗 使用make clean 清空編譯文件
f) 安裝
make install
報錯判斷:
第一個: 安裝過程是否停止
第二個: 停止的地方是否出現error warning這樣的報錯提示
- 上傳軟件包
- 啓動
/usr/local/apache2/bin/apachectl start
注意下面的錯誤是80端口被佔用
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
解決方法就是馬上重啓電腦 之後開啓你要開啓的apache
報下面的錯誤應該怎麼改
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
將配置文件
vim /usr/local/apache2/conf/httpd.conf 的內容 大概在97行左右 將前面的#號去掉
#ServerName www.example.com:80 - 卸載
直接刪除安裝目錄
rm -rf /usr/local/apache2
問題:
1.什麼樣的服務可以改端口號
如果服務給大量客戶端使用訪問的話我們不推薦去修改端口號 因爲改了之後找不到
如果服務只是給你自己使用我們建議修改端口號 爲什麼 因爲有利於安全 - 我們rpm包安裝了一個apache 我們使用源碼包還安裝了一個apache 能行嗎?
答案: 可以 因爲安裝的位置不一樣
rpm 包安裝的是系統默認位置
源碼包 安裝的是我們手動安裝的位置 - 能啓動兩個apache服務嗎?
答案: 不能 只能開啓一個 因爲80端口被佔用 - 源碼包從哪裏獲取
rpm包從哪裏獲取
rpm 包從光盤獲取
源碼包 是從官方網站獲取
www.apache.org
www.php.net
linux.cn Linux中國
系統管理和網絡管理
用戶與用戶組管理
用戶信息文件: /etc/passwd 查看所有用戶
影子文件: /etc/shadow 查看哪些用戶有密碼
組信息文件: /etc/group 查看系統中有哪些用戶組
- 添加用戶
useradd 用戶名 - 設定密碼
passwd 用戶名
千萬千萬千萬 要寫用戶名 不寫用戶默認修改root密碼 - 刪除用戶
userdel -r 用戶名
-r 連帶家目錄一起刪除 - 添加組
groupadd 組名 - 刪除組
groupdel 組名 - 把已經存在的用戶加入到組中
gpasswd -a 用戶名 組名 -- 用戶加入到組中
gpasswd -d 用戶名 組名 -- 把用戶從組中刪除 - su 用戶名 -- 切換用戶身份
進程管理
進程管理 三個主要任務- 判斷服務器健康狀態
內存/cpu 佔比 70/90 安全範圍
- 判斷服務器健康狀態
- 查看所有正在運行的進行
a) 合法進程佔用資源
b) 非法進程佔用資源 - 強制終止進程
一、 進程查看
- ps aux 查看當前系統所有運行的進行
-a 顯示所有前臺進程
-u 顯示用戶名
-x 顯示所有後臺進程
a. user: 用戶名
b.pid: 進程id
c. %CPU : CPU佔用百分比
d.%MEM: 內存在用百分比
e. command: 進行本身
前臺進程是使用之後不可以操作別的命令 需要等待進行結束之後再次操作
後臺進程不需要等待進行結束就可以再次操作命令後臺進程使用需要在後面加上& - pstree 查看進程樹
-p 查看pid
二、