linux31

linux3 的用戶管理:

root 權限
普通用戶 無法進入root :cd /root
也無法去remove了html

今日 做業 錯題

找一下python3 命令的絕對路徑
which python3 錯誤寫法: find / -name 'python3'找的是含有python3的
如何統計home文件夾的總大小
du -sh /home 錯誤寫法:ls -lh /home 找的是一個個的
在服務器啓動django而且讓用戶訪問
python3 manage.py runserver 192.168.230.129:8000 錯誤寫法:寫成python了python

1 用戶管理權限

1.1 ls -l 查看權限
普通用戶 : 本身分配的資源進行操做
用戶組: 具備類似權限的多個用戶的集合 (便於管理)mysql

w.1 root 爲何叫root uid ?
linux 系統用戶默認建立的UID 0-999開始
root 建立的普通用戶id 是從1000開始的 由管理員建立linux

root 能夠建立普通用戶
1.2 建立用戶 useradd 存在/etc/passwd
passwd 能夠更改密碼 用法:passwd 用戶名nginx

1.3 userdel 用戶 : 刪除用戶
1.4 查看全部用戶 : cat /etc/group cat /etc/passwdgit

1.5 id : 產看用戶信息的 直接輸入id 顯示當前登錄的信息 root的github

uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
id liuyang
uid=1001(liuyang) gid=1001(liuyang) groups=1001(liuyang)

gid : 用戶組 方便關聯整個用戶的sql

id liuyang -g     查看所在組  id就好了  畫蛇添足
1001

2 用戶切換
su 命令 中間必須加上橫槓,表明徹底的用戶環境變量切換shell

語法
2.1 su - 用戶名django

root 能夠隨意的切換普通用戶
普通用戶切換 : 切換root 須要輸入root的密碼
切換用戶 須要輸入用戶的密碼

退出登陸
logout ctrl+d

2.2 sudo ls /root 尚方寶劍 必須配置sudo
用戶提權的命令之一 sudo
sudo 配置
sudo命令用來以其餘身份來執行命令,預設的身份爲root。

1 用root打開 /etc/sudoers文件     vim /etc/sudoers
2 找到以下行,改 

vim 打開  黃馬褂  配置錯了   用戶名 ALL = (ALL)  ALL yy q 一下
3 此時 普通用戶 就可使用 sudo命令了
    [root@bogon ~]# su - qq
    [qq@bogon ~]$ sudo ls /   普通用戶就能夠查看root裏面的內容了

vim快捷鍵:93 定位 /root 搜索 n下一個 (vim寫錯了沒有任何的提示)

2.3 visudo(也在linux) 有提示 會報錯
what now? 你現 在想幹嗎?
三個 ALL = ALL ...

userdel 刪除用戶
userdel -rf 用戶名

kill 消除進程 ~ -9 3284

文件與文件夾的權限

對文件的讀寫執行和對文件夾的讀寫執行不同

什麼是權限 :全部者,和全部組, 可讀可寫可執行
cd /tmp 3.1 ll 查看權限
屬主 屬組 既不屬於屬主組的是其餘人 qq

文件權限

linux軟連接:快捷方式
3.2 ln -s 目標文件夾 快捷方式文件
ln -s /home/木蘭詩.txt /home/qq/mulan.txt 複製快捷方式

在複製了的/home/qq/mulan.txt 裏查看軟鏈接 3.3 ls -l ll也行
-dl

.sh 什麼文件夾 -rw-r

3.4 chmod 777 hehe.sh 777最高權限 綠色表明可執行

-rw-r--r--.  1 root root 175740458 Jun 27 15:24 木蘭詩.txt
drwxr-xr-x. 2 qq   qq    6 Jun 26 15:05 Desktop
lrwxrwxrwx. 1 root root 19 Jun 28 17:55 mulan.txt -> /home/木蘭詩.txt

-普通文件
d文件夾
l然諒解

-rw- r-- r-- 解讀它 rw-(屬主權限) r--(屬組) r--(第三者)
3.5 chmod 000 文件 沒權限 root權限厲害有權限 普通的就是-----

r 可讀 4
w 可寫 2
x 可執行 (綠色表示可執行) 1

修改文件的權限
change mode (chmod)

語法
ugo 用戶 組 其餘人
chmod 權限 操做的對象

chmod u+r file chmod u-r
chmod o+r 文件 加可讀 其餘人
chmod u+r 文件 加可讀 用戶
chmod w+r 文件 加可讀 用戶組
chomd g+r/w/x 都加上

讀寫執行的權限是有順序的
必須是
rwx 可讀可寫可執行
r-- 只讀

chmod 數字權限 文件對象
chmod 666 文件權限
-rw-rw-rw-
4+2+0 4+2+0 4+2+0
user other 屬主屬組其餘人

更改爲別人的文件
change

更改文件的屬主 change own
3.6 chown 用戶名 file
更改文件的屬組 change group
3.7 chgrp 用戶名 file

文件的讀寫執行
r cat more less
w echo vim
x 直接執行 或文件夾的

文件夾的讀寫執行
r ls
w 進入文件夾建立文件touch
x cd 能夠進入文件夾

chmod 004 user 加

linux 的命令提示符

經過PS1 變量所控制
hostname 主機名
修改主機名 hostnamectl set-hostname 20
改命令提示符 ~ 不顯示先相對路徑 相對絕對路徑 好看一點在哪 還有時間
PS1=""
3.9 echo $PS1 查看命令提示符

[\u@\h \w \t]$ 顯示時間 絕對路徑
3.10 hostname 查看主機名
3.11 hostnamectl set-hostname s20 設置主機名爲s20 要退出會話從新登錄
PS1 = ‘[\u@\h \w \t]$’ 改爲自動變化相對路徑的格式

#linux的網絡端口管理命令
netstat [選項]
-t或--tcp:顯示TCP傳輸協議的連線情況;
-u或--udp:顯示UDP傳輸協議的連線情況;
-n或--numeric:直接使用ip地址,而不經過域名服務器;
-l或--listening:顯示監控中的服務器的Socket;
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱;
-a或--all:顯示全部連線中的Socket;

4 命令
django開啓了,怎麼知道,看進程
4.1 natstat 命令 tunlp
natstat - tunlp

4.2 curl 發起http請求的 地址:8000/hello
curl 地址:8000/hello

關閉防火牆的命令
4.3 iptables -F
關閉防火牆服務
4.4 systemctl stop firewalld

linux 進程管理
4.5 ps 命令
4.6 ps -ef 顯示全部進程狀況

經過進程id號管理
殺死進程的命令 |grep python 不是django 這個是grep產生的進程

ps -ef|grep django 有grep和django的是本身的grep進程 , 找python的進程

4.7 kill 進程id kill 12251
4.8 pkill 支持正則的 經過pid處理的
pkill crm (很差亂用的 一個下去都刪了,公司裏)
kill 還有一個參數 -9 強制終止(不重要的殭屍進程,慎用:也有可能殺死依賴進程)

防火牆
iptables 是軟件防火牆 ,公司可能會用,可能不會用,還有硬件防火牆的存在,保證服務器安全,學習階段,爲了實驗安全

export 讀取shell 變量的命令
df 命令 讀取磁盤空間

英文版本
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
。。。

yum install tree -y 安裝
tree 工具,以樹狀圖顯示目錄結構

dns 域名解析系統
把域名解析成ip地址,網絡中的一個超大電話簿

公網中,存在dns服務器,進行解析
在linux中的dns服務器配置文件是

查看Linux的dns
/etc/resolv.conf 裏面定義了網絡中的dns

dns:
阿里巴巴:233.5.5.5 233.6.6.6
騰訊的dns : 119.29.29.29
谷歌的dns:8.8.8.8
114的dns:114.114.114.114

訪問百度,卻訪問到發牌的網站,hosts文件,強制解析了,也可能更換了你的dns記錄
用於測試本地的假域名(以後ngix域名不買)

網絡設置,以太網,詳細信息: dns服務器:
linux: vim /etc/resolv.conf 本身寫dns服務

nameserver 8.8.8.8

ping baidu.com
ping 123.206.16.61 能夠用 去檢測
域名服務沒寫 : namesever : 8.8.

域名查找 :

​ address: 域名地址 下一個address 是ip地址

vim /etc/hosts 修改 hosts權限
添加一個 127.0.0.1 www.baidu.com
在訪問就訪問不到了,由於host優先級比那個DNS高

dns 解析流程

1 瀏覽器輸入域名的時候,瀏覽器優先去hosts文件中尋找時候有對應記錄
2 沒有記錄就去dns本地緩存中尋找,是否有記錄
3.尋找是否配置了dns服務器,而後去公網中尋找記錄
4.找到了就緩存到本地dns記錄中,
5.解析結束

free -m 看緩存

echo '0' > /proc/sys/vm/drop_caches 清緩存 哪一個寫錯了

#linux的定時任務

時間點到了自動去執行 任務

crontab -e 編輯定時任務的文件

* * * * * echo '愛的魔力轉圈圈' >> /home/ai.txt   #>>先後有空格  * echo有空格    刪除的話: 把第一行刪除
tail -f ai.txt

crontab -l 列出定時任務的規則
分時日月周 作什麼事情 你要執行的命令的絕對路徑
/* * * * *

*全部的可能值
每分鐘執行一次命令

crontabl -e
/* * * * *
echo 絕對路徑 +
題目:

#每小時的整點執行命令 
0   *    *   *   *
#在上午8-11點的第3和第15分鐘執行
分   時   日  月  周  命令的絕對路徑
3,15  8-11  *  *  *   
#每晚21:30執行命令
分   時   日  月  周  命令的絕對路徑
30   21   *  *  *  
#每週6、日的下午1:30執行命令
分   時  日  月  周   命令的絕對路徑
30   13   *   *  6,0   
#每週一到週五的凌晨1點,清空/tmp目錄的全部文件
分   時  日  月  周 命令的絕對路徑
0   1   *  *  1-5   /usr/bin/rm -rf /tmp/*
#每晚的21:30重啓nginx
30 21 *  *  *  /usr/bin/systemctl restart nginx
#每個月的1,10,22日的4:45重啓nginx
分   時  日  月  周 命令的絕對路徑
45   4    1,10,22  *  *  /usr/bin/systemctl restart nginx
#每一個星期一的上午8點到11點的第3和15分鐘執行命令

3,15  8-11  *  *  1

tail -f hehe.txt
關閉 : crontab -e 進入 都刪了 !wq 保存 crontab -l 查看

軟件包

軟件開發規範 .config
setup.py 編譯的文檔 去github 開源 django 看結構
linux軟件包的格式
mysql -5.5.rpm
以及rpm也是一個軟件包管理命令
rpm -ivh mysql-5.5.rpm

rpm 管理軟件得手動處理依賴關係,不適用!
yum install 推薦使用!!! <自動處理依賴關係 ,最好配置個源,比較好
源代碼編譯安裝,獲取軟件源代碼,手動編譯安裝(能夠自由擴展軟件,選擇最新的軟件) :純淨

yum工具是紅帽子纔有的軟件管理工具,例如suse 烏班圖 是別的管理工具

yum install mysql 都是yum軟件倉庫服務器
是國外的,用阿里的下載
https://opsx.alibaba.com/mirror 之後去公司下載鏡像,這個網站

linux的yum倉庫目錄是:

cd /etc/yum.repos.d/ 這個目錄下,第一層中,全部以.repo結尾的文件,都會識別爲一個yum倉庫
(這個倉庫就是一個url),url中提供了各類rpm包的下載,yum工具回去查找

yum install nginx base : url源

配置阿里雲的yum源的步驟
1.地址以下:https://opsx.alibaba.com/mirror
2 備份本來的yum庫文件(防止改錯了)
cd/etc/yum.repos.d
新建文件夾
mkdir allrepo
移動全部的repo文件到這個目錄下,不用他了mv * ./allrepo

出現了第一個
3 . 下載新的yum 庫
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

-O 表明把Centos-7.repo 下載到指定目錄repos.d,且更名 url主機地址 文件目錄

4 .配置額外的第三方倉庫epel 不能鏈接,多是少插件什麼的
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

nginx :80的網絡服務 其實定義到index.html文件的 192.168.230.129/index.html
dg是清空

5.能夠測試yum工具安裝一個nginx 從epel倉庫裏下載的
yum install nginx -y
6.啓動nginx測試訪問
systemctl start nginx # ps -ef |grep nginx 查看進程

and : epel : extra packages enterprise linux 企業版的額外的包

老師的就是ngnix搭起來的
好玩的玩法: 把find / -name index.html 把nginx的改爲 dnf的源代碼網頁
再更改一下 gbk --> utf8 訪問網址就到了dnf 可是 頁面跳轉能夠用就是別人的網頁

yum還提供了哪些用法

1.
yum repolist all        列出全部倉庫
yum list all            列出倉庫全部軟件包
yum info 軟件包名            查看軟件包信息
yum install 軟件包名        安裝軟件包
yum reinstall 軟件包名    從新安裝軟件包
yum update    軟件包名        升級軟件包
yum remove    軟件包名        移除軟件包
yum clean all            清楚全部倉庫緩存
yum check-update        檢查能夠更新的軟件包
yum grouplist            查看系統中已安裝的軟件包
yum groupinstall 軟件包組    安裝軟件包組

系統服務管理命令

老企業: 不求技術,穩定就行
systemctl status nginx

centos7 用system服務管理
systemctl start/stop/reload/restart/ nginx

systemctl enable nginx 設置Nginx開機自啓
systemctl disable nginx 禁止開機自啓
systemctl disable firewalld #永久關閉開機自啓
systemctl stop firewalld #臨時關閉防火牆服務

systemctl enable firewalld

centos6/5/4
service nginx start/stop/restart

虛擬環境講解

不一樣且互不干擾的 虛擬環境
太多模塊了 不必定用,可是還得都安裝
目的: 一個跑爬蟲 一個跑flask 沒有別的 , 都是解釋器 虛擬解釋器
pip3 list window命令裏查看插件python
插件臃腫,還不適用全部 django flask

每個解釋器單走一個 應用 ,解耦合

安裝virtualenv 虛擬環境工具
venv1 走django1.0
venv2 走2.0
venv3 走flask

1 下載虛擬環境工具(這裏是在物理環境下安裝的)沒安裝虛擬 直接python或者pip都是本體
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

​ pip3 install --upgrade pip 升級 pip
2 使用命令,建立虛擬環境,分別運行一個django1和django2

#進入一個統一管理的目錄,管理虛擬環境例如/opt/allenv
mkdir  /opt/allenv
cd /opt/allenv 

virtualenv --no-site-packages --python=python3   venv1

#參數解釋       --no-site-packages  不要任何的第三方包
--python 是指定一個解釋器 咱們選的是python3
venv1是虛擬環境文件夾的名字,自定義

3 進入虛擬環境目錄,激活虛擬環境

source是linux的讀取命令,讀取一個腳本文件,激活虛擬環境

source /opt/allenv/venv1/bin/activate
參數解釋 : --no-site-packages 不要任何的第三方包
--python 是指定一個解釋器 咱們選的是python3
venv1 是虛擬環境文件夾的名字 ,自定義

4 虛擬環境使用原理是 ,修改了PATH變量,根據pATH的優先級,使用解釋器 pip3 list 乾淨的
5 激活虛擬環境,在venv1下建立django1.11.9項目
6 激活虛擬環境,在venv2 下建立虛擬環境
建立django2
which pip3
pip3 list

7.退出虛擬環境的命令 deactivate

確保開發環境的一致性
經過命令保證環境的一致性(將window中解釋器的模塊,導出一個),導出當前python環境包
1 在windows中導出全部的模塊信息
pip3 freeze > requirements.txt

2 將此文件,發送給linux服務器,可選lrzsz 或scp

3 在linux中安裝便可 pip3 install -i https://pypi.douban.com/simple -r requirements.txt

window中也建立了虛擬環境,而且模塊都在虛擬環境下

想要導出這個虛擬環境中的模塊,給linxu

問題: window中也建立了虛擬環境,而且都在虛擬環境

步驟:
1.第一步,在windows中激活虛擬環境,在虛擬環境下
pip3 freeze >  requirements.txt 

2.將次文件,發送給linux服務器,可選lrzsz 或scp 

3.在linux中安裝便可
pip3 install -i https://pypi.douban.com/simple -r requirements.txt

virtualenvwrapper工具
1.安裝工具
(注意要退出虛擬環境)
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper

2.配置用戶我的變量配置文件,每次開機都加載這個virtualevnwrapper工具

系統變量配置文件

/etc/profile

我的用戶變量配置文件,在用戶家目錄下找到這個~/.bash_profile文件,寫入以下配置

vim ~/.bash_profile #打開文件,寫入以下變量

export WORKON_HOME=~/Envs #設置virtualenv的統一管理目錄
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的參數,生成乾淨隔絕的環境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python #指定python解釋器
source /opt/python36/bin/virtualenvwrapper.sh #只有這一步,纔是讓這個工具生效的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

3.退出會話,從新登陸,查看是否加載了virtualenvwrapper工具

4.工具建立後,使用命令管理
建立虛擬環境
mkvirtualenv django1
mkvirtualenv django2

workon 虛擬環境的名字(支持tab補全) #激活虛擬環境

lsvirtualenv #列出全部虛擬環境的目錄

cdvirtualenv #進入已激活的虛擬環境的目錄

cdsitepackages #進入虛擬環境下的第三方模塊目錄

相關文章
相關標籤/搜索