檀老師總結Linux;
(一)知識目標
1.理解什麼是LINUX
2.掌握虛擬主機軟件的使用
3.掌握linux系統的安裝
4.掌握對linux系統中目錄的操做
5.掌握對linux系統中文件的操做
6.掌握對linux系統中用戶的操做
=================================================================
7.掌握對linux系統中軟件的安裝、卸載、更新
8.掌握在linux中php環境的搭建
9.掌握在linux中SVN的安裝和使用
=================================================================
10.掌握軟件開發的週期
11.掌握如何設計數據庫範式
12.掌握如何使用powerdesign建立E-R圖、生成數據字典、導出sql
13.掌握使用ThinkPHP框架進行學生選課系統項目的開發
(二)能力目標
1.本月總體速度目標:
利用5天時間完成學生選課系統,主要的功能模塊有:
(1)利用linux環境+SVN+thinkPHP框架+js正則驗證+COOKIE登陸後進行學生登陸
(2)利用linux環境+SVN+thinkPHP框架+js正則驗證+COOKIE登陸後進行教師登陸
(3)利用linux環境+SVN+thinkPHP框架+表設計+教師選課
(4)利用linux環境+SVN+thinkPHP框架+表設計+學生髮表建議
(5)利用linux環境+SVN+thinkphp框架+表設計+學生添加好友
週考月考時:用三個小時的時間能夠完成其中任意一個功能模塊
(三)教學內容及考覈要求
第一單元:Linux系統簡介及安裝;
第二單元:Linux 文件經常使用命令
第三單元:Linux 目錄經常使用命令
第四單元:Vim/Vi 文本編輯器應用
第五單元:Linux 系統管理&軟件安裝
第六單元:Linux 用戶及用戶組管理
第七單元:Linux 進程管理
第八單元:Shell 編程
第九單元:Linux 網絡管理
第十單元:LAMP 環境搭建及管理
第十一單元:項目搭建和SVN安裝
第十二單元:軟件工程
第十三單元:業務流程圖&功能模塊圖
第十四單元:數據庫範式
第十五--十九單元:項目實戰!
setup 圖形界面 關閉防火牆
Linux 待處理的問題列表
1、文件操做命令 【×】
touch a.php #建立空文件
cp 1.php 2.php #複製文件
mv 1.php a/1.php #移動文件
more #
head -n 文件名 #文件頭幾行
tail -n 文件名 #文件尾幾行
cat #查看文件
less a.php #查看文件
q:退出
h:顯示幫助
空格:下一頁
b:上一頁
g:到第一行
G:到結尾
/pattern 向下查找模式爲pattern的詞
/ 向下查找上一次使用的模式的詞
n 【繼續查找下一個關鍵詞】
?pattern 向上查找模式爲pattern的詞
? 向上查找上一次使用的模式的詞
文件查找命令:
find:
find / -name filename(文件名)
find / -user user(用戶)
find ./ -size +100k(文件大小)
locate
數據庫:/var/lib/mlocate 配置項:/etc/updatedb.conf 命令:updatedb
whereis
說明:
當咱們用whereis和locate沒法查找到咱們須要的文件時,可使用find,可是find是在硬盤上遍歷查 找,所以很是消耗硬盤的資源,並且效率也很是低,
所以建議你們優先使用whereis和locate。
locate 是在數據庫裏查找,數據庫大至天天更新一次。
whereis 能夠找到可執行命令和man page
find 就是根據條件查找文件。
which 能夠找到可執行文件和別名(alias)
2、目錄操做命令 【×】
mkdir -m 777 #建立最高權限的目錄
mkdir -p b/c/d #遞歸建立目錄
rmdir 目錄名 #刪除空目錄
rm -fr /usr/lib/mysql (強制遞歸刪除)
f:強制刪除,不須要確認
r:遞歸刪除目錄及其內容
chmod 777 目錄/文件名 #修改目錄或文件權限
chown -R apache blog #修改blog文件夾的全部者 爲 apache
chgrp -R apache blog #修改組
3、用戶操做
id 用戶名 #用戶的相關Id
su 用戶名 #切換用戶
who #當前用戶詳情
users #查看當前登陸的用戶
sudo #sudo 受權許可以使用的su,也是受限制的su
whoami #顯示當前終端上的用戶名
useradd 用戶名 #建立一個新的用戶賬號
-g 指定該用戶的首要組
-G 指定該用戶的次要組
-d 指定該用戶的Home目錄
-p 指定該用戶的密碼
實例:useradd ora -g oinstall -G dba -d /home/oracle -p ora12
userdel 用戶名 #刪除一個已存在的帳號
groupadd 組名 #建立一個新的用戶組
groupdel 組名 #刪除一個已存在的用戶組
passwd #改變本身的口令;超級用戶能夠修改用戶的口令 passwd 用戶名
/etc/group 文件是用戶組的配置文件。
/etc/passwd 文件是用戶的配置文件。
使用cat、more、less、head、tail以及vim等命令均可以查看、修改這兩個配置文件。
5、文件權限問題
權限八進制表示法:
1(x) 2(w)4(r)
用戶組包含了:
文件屬主(u) 文件數組(g) 其它人(o) || 全部人(a)
更改文件權限實例:
chmod u+x days
chmod ug=rw,o+r days
chmod 711 prog 【更多的使用這種方法】
更改所屬組 chgrp 語法:chgrp [組名] [文件名]
更改所屬用戶 chown
語法: chown [ -R ] 帳戶名 文件名 chown [ -R ] 帳戶名:組名 文件名
這裏的-R選項只做用於目錄,做用是級聯更改,即不只更改當前目錄,連目錄裏的目錄或者文件所有更改。
命令與權限的關係:【重要】
進入目錄:該目錄至少具備可 x 權限
查閱目錄:該目錄必須有 r、x 權限
修改文件:該文件必須有 r、w 權限
注意:
只有文件的屬主和root用戶纔有權修改文件的權限。
6、用戶和用戶組管理 (學習筆記)
基礎知識:
用戶:使用操做系統的人
用戶組:具備相同系統權限的一組用戶
一、用戶(組)管理:
useradd san
userdel san
/etc/passwd #用戶列表
passwd san #建立密碼
/etc/shadow #密碼列表
groupadd team
groupdel team
/etc/group #組列表
二、演示流程
root用戶在 home 下新建文件:test
修改 home 權限;O=0
三、擴展:
linux的特色:多用戶:在同一時刻能夠有多個用戶同時使用Unix操做系統並且他們互不干擾
管理員權限 visudo 98行 sudo
sudo rpm -e vim-minimal --nodeps 普通用戶 強制卸載
6、進程相關命令
ps #查看進程
a 與終端相關的進程
x 與終端無關的進程
u 顯示運行進程的用戶
實例:ps -aux | grep yum
kill 命令:kill
選項:-9 強行終止進程
格式:kill [option] pid
實例:kill -9 pid
7、lamp 環境安裝
一、查看mysql是否 安裝
rpm -qa | grep mysql
-a 全部
-q 使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶。
二、mysql 須要安裝幾個包:
服務端、客戶端、php-mysql 擴展包
三、鏡像文件掛載到指定目錄(至關於把光盤放到光驅裏面可讀,可執行)
mount /dev/cdrom /media/mnt 【前者是光盤,後者是掛載的地方】
error:mount: you must specify the filesystem type【你的系統不能識別這個光盤裏面的數據格式】
檢查右下角光盤是否啓動?
umount /media/mnt 【卸載掛載】
進入掛載的目錄,查看包文件
cd /media/mnt/Packages
ls mysql* #查看全部 mysql包 兩個包(客戶端和服務器包)
ls php* #查看php-mysql 擴展包
rpm -ivh mysql-5.1.66-2.el6_3.i686.rpm 【安裝 mysql客戶端】
rpm -ivh mysql-server-5.1.66-2.el6_3.i686.rpm 【安裝 mysql服務端 rpm包 出現依賴關係,引入yum安裝】
i 顯示套件的相關信息
v 顯示指令執行過程
h 套件安裝時列出標記
四、yum 安裝mysql(本地安裝yum源)
cp -r /etc/yum.repos.d/ /etc/yum.repos.d_bak #備份文件
rm -rf /etc/yum.repos.d/* (原來的都不要了)
vim /etc/yum.repos.d/dvd.repo #yum源 指向本地目錄
[local_server]
name=This is a local repo
baseurl=file:///media/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
yum makecache #生成yum 緩存
yum install mysql-server #安裝mysql-server
rpm -qa | grep mysql #查看安裝好的apm包
yum -y install php-mysql #安裝php-mysql
-y 參數指明默認贊成
service mysqld start|stop|status #mysql安裝
8、svn安裝
一、cat /etc/yum/.repos.d/dvd.repo #查看yum安裝源掛載到哪裏了
二、cd /media/mnt/Packages/ #進入掛載的安裝包目錄
三、ls sub* #查看svn的安裝包
四、yum install sub=== #svn安裝
五、rpm -qa| grep sub #查看是否安裝成功
六、svnadmin create /usr/local/svn/blog #建立版本庫
七、svnserve -dr /usr/local/svn/ #啓動svn服務
八、vim /usr/local/svn/blog/conf/svnerve.conf #配置svn權限
要打開的地方:
行號:十二、1三、20、32
九、develop = dev1,dev2 #新建開發者和密碼
十、Linux 自動更新
新建文件:
vim /usr/local/svn/demo/hooks/post-commit
增長可執行權限:
chmod -R 777 post-commit
添加以下文字:
#!/bin/sh
export LANG=en_US.UTF-8
/usr/bin/svn update /var/www/html/demo --username dev1 --password 123456
svn 命令
一、將文件checkout到本地目錄
svn checkout path(path是服務器上的目錄)
svn checkout svn://192.168.1.1/pro/domain
簡寫:svn co
二、往版本庫中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加當前目錄下全部的php文件)
三、將版本庫中添加新的文件
svn commit -m "LogMessage" [-N] [--no-unlock] PATH(若是選擇了保持鎖,就使用--no-unlock開關)
例如:svn commit -m "add test file for my test" test.php
簡寫:svn ci
四、更新到某個版本
svn update -r m path
例如:
svn update若是後面沒有目錄,默認將當前目錄以及子目錄下的全部文件都更新到最新版本。
svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)
svn update test.php(更新,於版本庫同步。若是在提交的時候提示過時的話,是由於衝突,須要先update,修改文件,而後清除svn resolved,最後再提交commit)
簡寫:svn up
5、shell腳本
1、Shell 概述
一、 ASCII 字碼表
是一個命令解釋器。
用戶 =》 shell => 內核 調用硬件來執行這個命令
shell仍是一個功能強大的編程語言。
shell是解釋執行的腳本語言,在shell中能夠直接調用Linux命令。
echo $SHELL #查看當前的shell類型
2、腳本執行方式:
一、echo 輸出內容到屏幕上
#! /bin/bash #不是註釋,也不是無關緊要的,它是一個shell腳本的標準輸出,必需要有
二、腳本執行:
賦予執行權限,直接運行
chmod 755 hello.sh
./hello.sh
經過Bash調用執行腳本
bash hello.sh
三、Bash的基本功能:
命令別名與快捷鍵
命令別名 == 人的小名
alias #查看全部別名
歷史命令
3、經常使用快捷鍵
ctrl + c 強制終止當前命令
ctrl + l 清屏
ctrl + r 在歷史命令中搜索
ctrl + a 光標移動到命令行首
ctrl + e 光標移動到命令行尾
ctrl + u 從光標所在位置刪除到行首
ctrl + z 把命令放入後臺執行
8、PowerDesign使用
概念建模:文件-》創建新模型 -》Conceptual Data Model (概念數據模型)
建立物理模型:工具 -> Generate Physical Data Model (生成邏輯數據模型)
數據庫生成:數據庫-> Generate Databases(生成數據庫)
9、計劃任務
crontab -e #定時任務執行
crontab -l #定時任務列表
crontab -e -u tan #執行用戶
tail -f /var/log/cron #動態查看任務執行狀況
whereis php-cgi #php執行
/usr/bin/php-cgi -q /var/www/html/insert.php >>/root/time.txt
10、虛擬機多域名配置
一、vim /etc/hosts
192.168.101.129 domain.com
二、vim /etc/httpd/conf/httpd.conf
最低端 PgDn 加入代碼:
NameVirtualHost 192.168.1.115:80
<VirtualHost 192.168.1.115:80>
DocumentRoot /usr/local/apache2/htdocs/project
ServerName domain.com
</VirtualHost>
<Directory "/usr/local/apache2/htdocs/project">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
< /Directory>
11、掛載理解:
1.umount, 總是提示:device is busy, 服務又不能中止的。
能夠用"umount -fl"解決!
=======================
========================
其它:
命令查看幫助:less --help | man 命令
關機:halt
重啓系統:reboot
查看ip地址:ifconfig
查看上次命令是否執行成功:echo $?
服務相關:
圖形化:ntsysv 命令
位置:Linux系統全部的預設服務能夠查看/etc/init.d/目錄獲得:
命令使用:
service 服務名稱 start|stop|restart|status
iptables #防火牆
network #網絡服務
crond #計劃任務
連接ssh
service iptables start|stop|restart|status #關閉防火牆
httpd #apatch
netstat -anptu | grep ssh #
快捷鍵:
Ctrl+P 並回車執行。 #重複執行上一條命令:
Ctrl + N 並回車執行 #重複下一條命令:
Ctrl +fn+ Insert #複製所選
Shift + Insert #粘貼
Alt + Insert #粘帖所選
查找安裝的包位置: rpm -ql 包名
實例:rpm -ql mysql
幾個經常使用命令
rpm -qa | grep mysql #查看rpm包是否安裝
ps -aux | grep mysql #查看進程
whereis mysql #查看軟件安裝路徑
ls http* #該目錄下的列表
文件目錄記錄:
/etc/httpd/conf/httpd.conf #apatch 配置文件
vi 和 vim 的區別:
vi和vim都是多模式編輯器,不一樣的是vim 是vi的升級版本,它不只兼容vi的全部指令,並且還有一些新的特性在裏面。
vim的這些優點主要體如今如下幾個方面:
一、多級撤消咱們知道在vi裏,按 u只能撤消上次命令,而在vim裏能夠無限制的撤消。
二、易用性vi只能運行於unix中,而vim不只能夠運行於unix,windows ,mac等多操做平臺。
三、語法加亮vim能夠用不一樣的顏色來加亮你的代碼。
四、可視化操做就是說vim不只能夠在終端運行,也能夠運行於x window、 mac os、 windows。
五、對vi的徹底兼容某些狀況下,你能夠把vim當成vi來使用。
今天配置lamp環境遇到php代碼不解析,在瀏覽器中顯示php代碼,花了好長時間終於解決問題:
打開/etc/httpd/conf/httpd.conf
找到AddType application/x-gzip .gz .tgz
在下一行加入AddType application/x-httpd-php .php
注意AddType application/x-httpd-php .php不要拼寫錯了。
php