B站:linux相關 —— 進階

2020-08-08 21:46:41

tab鍵:補全命令

一、 Linux許可權管理操作

1. 許可權身份介紹

linux系統一般將檔案可存/取存取的身份分爲3個級別:owner,group,others,且三種身份各有read,write,execute等許可權。

  • owner:檔案所有者,預設爲文件建立者
  • group:與檔案所有者同組的使用者
  • others:其他人
  • root:超級使用者

2. 許可權的檢視

ls -l 路徑:檢視詳細資訊(-a 顯示隱藏檔案)
ll 路徑:等價於ls -l,檢視詳細資訊
在这里插入图片描述
首字母d是資料夾,-是檔案
在这里插入图片描述
rwx順序不變,-表示沒有對應許可權
在这里插入图片描述

3. 許可權設定

  • 許可權操作者:root使用者 或者 owner使用者
  • 不指定誰,預設all
  • linux中,如果要刪除一個檔案,不是看檔案有沒有對應的許可權,而是看檔案所在的目錄是否有許可權,如果有才能 纔能刪除

chmod -R 許可權模式 檔案/資料夾路徑:許可權設定,-R表示遞回設定許可權(用於資料夾許可權)

(1) 字母形式設定

在这里插入图片描述

chmod u+x,g+rx,o+r 1.cfg:給1.cfg檔案(-rw------)設定許可權,所有者擁有所有許可權,同組使用者擁有讀和執行許可權,其他使用者只讀許可權
chmod u=rwx,g=rx,o=r 1.cfg:①的同等功能

(2) 數位形式設定

rwx 二進制形式 ,011=3可寫可執行
在这里插入图片描述
chmod 754 1.cfg:給1.cfg檔案(-rw------)設定許可權,所有者擁有所有許可權,同組使用者擁有讀和執行許可權,其他使用者只讀許可權

4. 屬主與屬組設定

屬主:所屬的使用者(檔案的主人)
屬組:所屬的使用者組

(1) chown更改文件的所屬使用者

chown -R 使用者名稱 資料夾路徑:遞回更改檔案所屬使用者
chown 使用者名稱 檔案路徑:更改檔案所有者
在这里插入图片描述

(2) chgrp

chgrp -R 使用者組名 資料夾路徑:遞回更改檔案所屬組
chgrp 使用者組名 檔案路徑:更改檔案所屬組
chown -R 使用者名稱:使用者組名 文件路徑 : 同時該使用者和組名

4. sudo切換使用者操作

sudo(switch user do),讓root使用者事先定義某些特殊命令誰可以執行

sudo組態檔:/etc/sudoers

  • a. 設定sudo檔案使用visudo開啓,之後使用方法和vim一致
  • b. 設定使用者操作許可權
    在这里插入图片描述
    • root:表示使用者名稱,如果用使用者組,寫成 %組名
    • all:表示允許登錄的主機,
    • (all):表示以誰的身份執行,all表示root
    • all:表示當前使用者可以執行的命令,多個命令用,分隔

在寫sudo規則的時候不建議寫直接形式的命令,而是寫命令的完整路徑,路徑可以使用
which 指令名稱 檢視

輸入visudo新增命令:
在这里插入图片描述
爲使用者新增完命令之後,執行的時候要加 sudo useradd 使用者名稱sudo passwd 使用者名稱
在这里插入图片描述
在这里插入图片描述
passwd root命令不可執行 !/usr/bin/passwd root

二、網路相關命令

1. ping

ping 主機地址(ip,主機名,域名等):檢測當前主機與目標主機之間的連通性

與windows的區別:linux數據包預設一直髮送(類似windows中的 ping 地址 -t),windows預設發送4個數據

2.netstat

netstat -tnlp:檢視網路的連線資訊(-t:tcp協定,-n:將字母轉化爲數位,-l:監聽,-p:進程相關資訊)
netstat -an:-a表示全部
在这里插入图片描述

3.traceroute

traceroute 目標主機:檢視當前主機與目標主機之間所有的閘道器(路由資訊),會給沿途各個路由器發送icmp數據包【類似windows的tracert 目標主機
在这里插入图片描述

4.arp

地址解析協定,arp(address resolution protocol):根據IP地址獲取MAC地址的協定
arp -a:檢視本地mac表
arp -d ip地址 :刪除mac表中某條記錄
在这里插入图片描述

5.tcpdump

作用:抓取數據包

  • tcp 協定
  • tcpdump port 埠
  • tcpdump host 地址
  • tcpdump -i 網絡卡裝置名
    在这里插入图片描述
    18:02:21.466646 監聽數據的時分秒
    IP 使用的協定型別
    192.168.15.151 數據包的方向(來自)
    > 數據流向
    117.18.237.29 數據包的另外一個方向(到達)
    在这里插入图片描述

三、shell入門

shell是一種C語言編寫的程式,是命令語言,也是一種程式設計語言。

1. 程式碼規範

#!/bin/bash:【註釋】指定告知系統當前這個指令碼要使用的shell直譯器
檔案命名規範:檔名.sh

.sh 是linux下bash shell的預設後綴

2. shell基礎

① 建立.sh檔案:touch或者vim
② 編寫shell程式碼
③ 執行shell指令碼:指令碼必須得有執行許可權
在这里插入图片描述
在这里插入图片描述

  • 案例:建立test2.sh,實現shelltest使用者建立,並在其家目錄中新建檔案try.html
#!/bin/bash
useradd shelltest
touch /home/shelltest/try.html
  • 執行檔案方式:
    • ./test2.sh
    • /bin/bash test2.sh

3. shell進階

(1) 變數

a. 變數定義
  • 定義變數:name=「value」(變數後面的等號左右兩邊不能有空格
  • 使用變數:echo $class name(變數前要新增$符號
b. 變數規範
  • 變數後面的等號左右不能有空格
  • 變數命名只能使用英文字母、數位和下劃線,首字母不能以數位開頭
  • 變數中間不能有空格,可以使用下劃線_
  • 變數不能使用標點符號
  • 不能使用bash裡的關鍵字(可以使用help命令檢視保留關鍵字)

雙引號能夠識別變數,雙引號可以實現跳脫
單引號不能識別變數只能直接字串式輸出,單引號不能跳脫
在这里插入图片描述
反引號(esc鍵下方的那個鍵):當指令碼中需要執行一些指令並且將執行的結果賦給變數的時候需要使用反引號 `

c. 只讀變數

readonly 變數名:宣告變數爲只讀變數
在这里插入图片描述

d. 刪除變數

unset 變數名:刪除變數

(2) 接收使用者輸入

read -p 提示資訊 變數名:接收輸入,將輸入作爲參數賦給變數

  • 案例:要求執行之後提示使用者輸入檔案的名稱(路徑),然後自動爲使用者建立該檔案

在这里插入图片描述

(3) 條件判斷語句

  • 語法一:一個條件
if condition
then
	command1
	command2
	...
fi

單行寫法:if[condition];then command;fi

  • 語法二:二個條件
if condition
then 
	command1
	command2
	...
else
	command
fi
  • 語法三:多個條件
if condition1
then
	command1
elif condition2
then
	command2
...
else 
	commandN
fi
a. 算術運算子

在这里插入图片描述
expr表達式計算工具:用反引號括起來,表達式和運算子之間要有空格,例如:var=`expr`空1空+空2
在这里插入图片描述
注意空格,運算子前後要有空格
在这里插入图片描述

b. 關係運算符

關係運算符只支援數位,不支援字串,除非字串的值是數位

在这里插入图片描述
-eq:equal
-ne:not equal
-gt:great than
-lt:less than
-ge:great than or equal
-le:less than or equal

c. 邏輯運算子

在这里插入图片描述
在这里插入图片描述

d. 字串運算子

在这里插入图片描述

e. 檔案測試運算子

在这里插入图片描述
在这里插入图片描述

f. shell指令碼附帶選項

接收命令參數:
例如:./test.sh a b c
通過指令碼 $1 獲取a值,$2 獲取b值, $3 獲取c值

g. 練習:自定義指令

user -add 新增使用者
user -del 刪除使用者及其家目錄
在这里插入图片描述
在这里插入图片描述

四、MySQL

1. 軟體安裝方式

(1) 原始碼包

  • 使用原始碼編譯安裝方式,可安裝ncurses一種常用的終端庫
    在这里插入图片描述
    設定(config/configure/bootstrap) —→ 編譯(make/bootstrapd) —→ 安裝(make install/bootstrapd install)

設定操作:指定軟體的安裝目錄、需要的依賴在什麼地方、指定不需要可選依賴、組態檔的路徑、通用數據儲存位置等等

  • 指定安裝的路徑:--prefix=路徑
  • 需要依賴的路徑:--with-PACKAGE 名=包所在位置
  • 不需要依賴:--without-PACHAGE 名

例如:

  • ./configure --prefix=/usr/local/ncurses
  • make && make install

(2) 二進制包

rpm相關指令

  • rpm -qa|grep 關鍵詞:檢視軟體包
  • rpm -e 關鍵詞 --nodeps:忽略依賴關係,強制解除安裝
  • rpm -ivh 軟體包完整名稱:安裝軟體
  • rpm -qf 檔案路徑:查詢指定檔案屬於哪個包
    在这里插入图片描述

案例:使用二進制包安裝lynx(一款純命令列的瀏覽器)
在这里插入图片描述

(3) 使用yum安裝

  • yum list:列出當前以及裝的和可以安裝的全部軟體
  • yum search 名:搜尋指定關鍵詞的包
  • yum -y install 包名:安裝指定的包 -y表示預設允許
  • yum -y update 包名:更新指定的包,不指定包則更新全部軟體
  • yum -y remove 包名:解除安裝最好不要寫-y,可以再次確認是否刪除
    在这里插入图片描述
    在这里插入图片描述

五、MySQL安裝

1. 安裝

yum install mysql-server

2. MySQL初始化

service mysqld start:啓動mysql服務(加d表示守護行程)
mysql_secure_installation:啓動mysql,可修改root密碼

3. MySQL啓動控制

mysql -u 使用者名稱 -p:進入mysql
exit:退出mysql

4. 預設目錄/檔案位置

數據庫儲存目錄:/var/lib/mysql
組態檔:/etc/my.cnf

5. MySQL的基本操作

(1) 庫操作

show databases; 顯示mysql所有的數據庫
create database; 庫名; 建立新的數據庫
drop database; 庫名; 刪除已有數據庫
use 庫名; 使用指定的數據庫

(2) 表操作

delete from 表名;數據表內容數據清掉,自增id會保留
truncate table 表名; 自增id也一同會被清掉

(2) 備份與還原

mysqldump -u [數據庫使用者名稱] -p -A>[備份檔案的儲存路徑]; 導出所有數據庫
mysqldump -u [數據庫使用者名稱] -p [要備份的數據庫名稱]>[備份檔案的儲存路徑]; 導出數據和數據結構
mysqldump -u [數據庫w使用者名稱] -p -t [要備份的數據庫名稱]>[備份檔案的儲存路徑];只導出數據不導出數據結構
mysqldump -u [數據庫使用者名稱] -p -E [數據庫使用者名稱]>[備份檔案的儲存路徑];導出數據庫中的Events
mysqldump -u [數據庫使用者名稱] -p -R [數據庫使用者名稱]>[備份檔案的儲存路徑];導出數據庫中的儲存過程和函數
mysql>source [備份檔案的儲存路徑]; 從外部檔案匯入數據庫中
mysql -u root –p < [備份檔案的儲存路徑]; 從外部檔案匯入數據庫中
mysqldump -u使用者名稱 -p數據庫名 > 導出的檔名;備份數據庫

flush privileges:重新整理許可權表

五、Nginx

Nginx:是一款比較流行的web伺服器軟體,類似於Apache

1. 編譯安裝Nginx

① 下載nginx:nginx下載官網,選定版本,右鍵複製地址,
在/usr/local/src下安裝:

  1. cd /usr/local/src
  2. wget http://nginx.org/download/nginx-1.18.0.tar.gz

在这里插入图片描述

② 解壓安裝包tar -zxvf nginx-1.18.0.tar.gz
在这里插入图片描述
③ 安裝pcre:
cd /usr/local/src/:切換目錄
wget https://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz --no-check-certificate:獲取安裝包
tar zxvf pcre-8.35.tar.gz:解壓安裝包
cd pcre-8.35:切換到解壓後pcre目錄
./configure:設定pcre
make && make install:編譯安裝pcre
pcre-config --version:檢視pcre版本

④ 安裝zlib : yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安裝ssl:yum -y install openssl openssl-devel

⑤ 設定nginx
cd nginx-1.18.0:進入nginx解壓目錄
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35/
–prefix指定在安裝目錄:/usr/local/nginx
在这里插入图片描述
⑥ 編譯安裝nginx
make && make install:編譯安裝
/usr/local/nginx -v:檢視nginx版本

2. 啓動nginx

/usr/local/nginx/sbin/nginx:啓動nginx
/usr/local/nginx/sbin/nginx -s reload:過載,組態檔修改後執行
/usr/local/nginx/conf/nginx.conf:組態檔
如果80埠被佔用,關閉apache:service httpd stop
在这里插入图片描述