檀老师总结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 待处理的问题列表
一、文件操作命令 【×】
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)
二、目录操作命令 【×】
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 #修改组
三、用户操作
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等命令都可以查看、修改这两个配置文件。
五、文件权限问题
权限八进制表示法:
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用户才有权修改文件的权限。
六、用户和用户组管理 (学习笔记)
基础知识:
用户:使用操作系统的人
用户组:具有相同系统权限的一组用户
1、用户(组)管理:
useradd san
userdel san
/etc/passwd #用户列表
passwd san #创建密码
/etc/shadow #密码列表
groupadd team
groupdel team
/etc/group #组列表
2、演示流程
root用户在 home 下新建文件:test
修改 home 权限;O=0
3、扩展:
linux的特点:多用户:在同一时刻可以有多个用户同时使用Unix操作系统而且他们互不干扰
管理员权限 visudo 98行 sudo
sudo rpm -e vim-minimal --nodeps 普通用户 强制卸载
六、进程相关命令
ps #查看进程
a 与终端相关的进程
x 与终端无关的进程
u 显示运行进程的用户
实例:ps -aux | grep yum
kill 命令:kill
选项:-9 强行终止进程
格式:kill [option] pid
实例:kill -9 pid
七、lamp 环境安装
1、查看mysql是否 安装
rpm -qa | grep mysql
-a 所有
-q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
2、mysql 需要安装几个包:
服务端、客户端、php-mysql 扩展包
3、镜像文件挂载到指定目录(相当于把光盘放到光驱里面可读,可执行)
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 套件安装时列出标记
4、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安装
八、svn安装
1、cat /etc/yum/.repos.d/dvd.repo #查看yum安装源挂载到哪里了
2、cd /media/mnt/Packages/ #进入挂载的安装包目录
3、ls sub* #查看svn的安装包
4、yum install sub=== #svn安装
5、rpm -qa| grep sub #查看是否安装成功
6、svnadmin create /usr/local/svn/blog #创建版本库
7、svnserve -dr /usr/local/svn/ #启动svn服务
8、vim /usr/local/svn/blog/conf/svnerve.conf #配置svn权限
要打开的地方:
行号:12、13、20、32
9、develop = dev1,dev2 #新建开发者和密码
10、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 命令
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将版本库中添加新的文件
svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
例如:svn commit -m "add test file for my test" test.php
简写:svn ci
4、更新到某个版本
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
五、shell脚本
一、Shell 概述
1、 ASCII 字码表
是一个命令解释器。
用户 =》 shell => 内核 调用硬件来执行这个命令
shell还是一个功能强大的编程语言。
shell是解释执行的脚本语言,在shell中可以直接调用Linux命令。
echo $SHELL #查看当前的shell类型
二、脚本执行方式:
1、echo 输出内容到屏幕上
#! /bin/bash #不是注释,也不是可有可无的,它是一个shell脚本的标准输出,必须要有
2、脚本执行:
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过Bash调用执行脚本
bash hello.sh
3、Bash的基本功能:
命令别名与快捷键
命令别名 == 人的小名
alias #查看所有别名
历史命令
三、常用快捷键
ctrl + c 强制终止当前命令
ctrl + l 清屏
ctrl + r 在历史命令中搜索
ctrl + a 光标移动到命令行首
ctrl + e 光标移动到命令行尾
ctrl + u 从光标所在位置删除到行首
ctrl + z 把命令放入后台执行
八、PowerDesign使用
概念建模:文件-》建立新模型 -》Conceptual Data Model (概念数据模型)
创建物理模型:工具 -> Generate Physical Data Model (生成逻辑数据模型)
数据库生成:数据库-> Generate Databases(生成数据库)
九、计划任务
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
十、虚拟机多域名配置
1、vim /etc/hosts
192.168.101.129 domain.com
2、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>
十一、挂载理解:
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的这些优势主要体现在以下几个方面:
1、多级撤消我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
2、易用性vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
3、语法加亮vim可以用不同的颜色来加亮你的代码。
4、可视化操作就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
5、对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不要拼写错了。