檀老师总结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