Linux操作系统
win
unix/linux 服务器(php apache mysql)
apple苹果
?
虚拟机软件(VM500M virtualbox100M sun oracle)
?
攒一个裸机电脑
?
?
?
动态分配:本身500G 虚拟硬盘8G,本身电脑磁盘会根据虚拟磁盘存放文件大小情况动态分配磁盘空间。虚拟磁盘最多占据8G大小
固定大小:本身500G 虚拟硬盘8G,本身电脑一次性把8G磁盘都分配出来。
???????? 该方式执行速度非常快。
?
虚拟电脑磁盘文件存放位置设置:d:\mybox\study.vdi
该文件study.vdi大小是8G,因此要求我们磁盘格式必须是:NTFS
FAT32是老旧格式,单个文件大小不能超过4G
?
创建虚拟磁盘
?
?
【给裸机电脑安装操作系统】
?
CentOS linux 5.5
?
虚拟机捕捉鼠标
释放鼠标的捕捉:键盘右下角按Ctrl键
?
?
?
?
linux磁盘文件类型: ext2 ext3 swap
windows磁盘文件类型:fat32 NTFS
?
?
swap:交换分区,把硬盘的一部分空间 拿出来当内存使用,内存里边不常使用的数据否放入交换分区。交换分区大小建议是内存的两倍。
磁盘只有两个分区:交换分区 和 普通的/根目录分区
挂载点:windows系统的C、D、E等目录都是挂载点。
?
?
?
?
?
?
?
【系统安装后的配置】
?
?
?
?
【系统简单使用】
【linux与windows分区的区别】
windows分区结构:
linux分区
① 整个系统只有一个根目录(/斜杠)
- 系统目录挂载分为:自动 和 手动
- 文件占据磁盘空间,是占据与它最近的上级挂载点空间
?
????
????linux系统分区结构是一个"倒着的大树"
????windows系统分区结构是一个"倒着的森林"
?
?
总结:
- 攒裸机电脑
- 安装系统
- 系统简单使用(命令模式)
- window和linux分区的区别讲解
?
【跟目录文件说明】
1. /bin binary二进制文件,可执行程序文件
ls su pwd cd
内部文件是一些指令信息
?
2. /sbin super binary超级的二进制文件目录
超级管理员root可以执行的命令文件
?
3. /dev device设备目录
在linux系统里边全部设备都使用文件表示
/dev/cdrom 硬件光驱设备
/dev/sda1 分区设备
?
4. /home 家目录
给系统每创建一个用户,在该目录下就会自动
创建一个对应目录(目录名字与当前用户名字一致),
这个目录就是这个用户使用。
的家目录
具体用户登录系统会默认切换到自己的家目录
?
5. /proc 内存映射目录
查看系统的相关信息
?
6. /var variable 可变的、易变得
开发的php程序适合放到/var目录
/var/www/html
/var/www/部署php程序
?
7. /boot 系统启动目录
/boot/initrd-2.6.18-194.el5.img
linux内核版本是2.6版本 2.5M 核心版
CentOS 5.5 4G 发行版
发行版:核心版+外围软件(编译器、安装程序、解释器等等)
red hat 蓝点 红旗 ubuntu debian等等
发行版的版号由发型公司自定义版本号码
CentOS=redhat+相关软件
linux系统是自由软件 itcast
核心版:林纳斯 开发的
?
8. /etc 系统核心配置文件
/etc/passwd存放用户信息
?
9. /lib library 资源库、函数库。
?
10. /mnt mount挂载
光驱、u盘、移动硬盘
mnt相当于我们window系统的h盘符、k盘符、j盘符
该目录可以不使用,随便一个普通目录都可以实现挂载
?
11. /root root管理员家目录
?
12. /usr user用户目录
等于window系统的Program file目录
以后系统软件就安装到usr目录
?
13. /usr/bin
/usr/sbin
通过安装具体软件可以使用的一些指令
?
?
【目录操作】
创建、改名字、删除、移动、复制
?
【绝对路径和相对路径】
绝对路径:通过完整的路径定位一个文件,就是绝对路径
????????E:\1016php\05-ThinkPHP\20131223pm
????????通过跟目录寻找指定文件
相对路径:一个文件相对于当前文件所经历过的目录,就是相对路径
?
相对路径:
????cd ../ 上级目录
????cd .. 上级目录
????cd ../../ 上两级目录
????cd ../.. 上两级目录
????cd ./ 当前目录
????cd . 当前目录
绝对路径:
????cd /home/shuhua
????
/home/shuhua/shandong/jinan/licheng
????/etc/sysconfig/network-sciprts/位置A
????cd ../ cd /home/shuhua/shandong
????
????从jinan------位置A,需要通过绝对路径方式(推荐使用):
????cd /etc/sysconfig/network-scripts/
????从jinan------位置A,相对路径方式:
????cd ../../../../etc/sysconfig/network-script/
?
????从jinan-----shandong,推荐使用相对方式
????cd ../
?
????根据不同情况,有选择使用不同切换目录方式:绝对方式、相对方式
?
【文件操作】
文件查看、创建、追加内容:
????
?
【用户和组的管理】
linux多用户、多任务操作系统
增加、修改、删除
cat /etc/passwd //查看当前系统用户信息
cat /etc/group //查看当前系统组别信息
?
rbac:基于角色进行权限分配
用户----------组-----------权限设置
?
出现以上情况,(每个用户有一个组),因为没有指定这个用户所属的组别
?
?
- 用户操作
- 组操作
?
【给用户设置密码,让其登录系统】
????修改密码与设置密码操作一致
?
【linux发展的野史】
1991芬兰 赫尔辛基大学 林纳斯开发的操作系统
stallman 林纳斯
?
stallman
????1953年出生,为了自由软件事业,至今未婚
????大师有一台电脑,是中国江苏产的龙芯电脑,此电脑并非个人财产,是自由软件基金会的
?
????70年代上大学,美国哈佛大学,同时受聘于麻省理工学院人工智能实验室 做程序员,开发自由软件
????70---80年代 unix系统诞生,一个多任务、多用户,受众非常广泛的操作系统
????????单任务、单用户(小霸王游戏机)
????????多任务、单用户(windows操作系统)
????????多任务、多用户(unix)
????80年代,加州大学伯克利分校的几个研究生 发布了一个unix的商业版BSD版
????????同期 麻省理工学院人工智能实验室 的成员纷纷单飞 或 组团开公司 搞"商业软件"
????????此时实验室 就剩下stallman一个人了
????大家都搞商业软件,大师对此感到气愤与无奈。
????1984年,GNU项目启动
????????相继gcc、Emasc等软件被开发出来
????????成立FSF自由软件基金会
????????为软件授权CopyLeft copyright
????????GPL协议
????????gnome桌面程序
????????
????1991年,林纳斯发明了类unix操作系统 linux
????????stallman利用自己的三寸不烂之舌说服林纳斯把linux内核纳入GNU项目
????至此,GNU项目渐入佳境。。。
?
?
GNU linux
?
?
?
?
?
?
?
?
总结:
- 目录操作
- file文件操作
- 用户操作(useradd usermod userdel )
- 组别操作(groupadd groupmod –n groupdel)
?
作业:
- 创建3个组别,每个组别设置两个用户,每个组别的其中一个用户给设置密码可以登录系统
- 练习目录的创建、移动、改名字、删除、复制
- 练习文件的查看、创建、追加内容
?
?
?
?
?
?
2013-12-26 昨天内容回顾
- windows与linux分区区别
- 根目录
- 前者有多个根目录、后者只有一个根目录
- 磁盘占用情况
- 前者的子级文件需要占据自己根目录的空间
- 后者的子级文件会占据与其最近的挂载点的空间
- 挂载:磁盘目录与分区空间建立联系的过程就是挂载
- 前者 有C D E盘符 与磁盘空间建立联系
- 前者的挂载都是自动完成的(U盘 移动硬盘)
- 后者的挂载分为自动 和 手动挂载mount。
- 目录相关操作
- 创建目录:mkdir 目录 mkdir -p 目录/目录/目录
- 移动目录:
- mv dir1 dir2
- mv file dir2
- 给文件或目录改名字:
- mv file/dir dir2
- 如果dir2不存在,就是给文件改名字
- mv file/dir dir2/filename
- dir2存在,filename不存在 ,就是把文件移动到dir2里边并且该名字为filename
- 目录复制:
- cp -R dir1 dir2 复制目录需要加参数-R
- cp file dir2 复制文件没有参数
- 删除目录
- rm –rf dir recursive force 递归强制删除目录
- rm -rf filename 删除文件
- 文件操作
- 查看
- cat
- more
- less
- tail -n file
- head -n file
- wc
- 创建文件
- touch
- 追加内容
- echo content > file 覆盖追加
- echo content >> file 追加
- cat file1 > file2 覆盖追加
- cat file1 >> file2 追加
- 用户和组设置
- 用户操作
- useradd -g 组编号 -d 家目录 -u 用户编号 用户名
- usermod -g 组编号 -d 家目录 -u 用户编号 -l 新名字 用户名
- userdel -r 用户名 (连同用户家目录一并删除)
- 组操作
- groupadd 组名
- groupmod -n 新名 组名
- groupdel 组名
?
【编辑器】
vim:编辑器中的神
emacs:神的编辑器
- 三种vi模式:
- 尾行模式操作
????
- 命令模式操作
- 光标移动
- 删除内容
- 复制内容
- 快捷操作
- 编辑模式
?
【文件权限设置】
文件(目录)权限本身划分:读read 写write 执行execute
权限从用户的角度划分:主人权限user 同组用户权限group 其他组用户的权限other
?
music.txt(歌词) yixun(主人) music(组) 读、写、执行
????????????????dehua music 读
????????????????xiaogang movie 没有权限
?
?
- 字母相对方式设置权限
- 数字绝对方式设置权限
- 两种权限设置选取(相对、绝对)
?
总结:
- vi编辑器
- 权限设置 rwx ugo
?
【文件和目录的读、写、执行权限使用】
file文件的读、写、执行
文件权限操作
- 文件没有写权限,可以强行写保存退出 :wq!
- 其他组 用户对一个没有写权限的文件,也可以强行写保存退出(但是文件的主人和组就发生了变化,改为最后一个修改该文件的主人和组) :wq!
- 修改一个没有"读"权限的文件,强行写保存,原先内容就被覆盖了
- 通过一个shell脚本让文件执行
- linux内部的编程技术,shell脚本就是linux系统指令的集合。
- ls cd cat echo
?
目录权限操作
- 读、写、执行
- 目录的读权限规定用户是否可以查看其内部的文件信息
- 目录的写权限,规定用户是否可以给目录增、减文件
- 目录的执行权限,规定用户是否可以切换到该目录
- 如果用户对当前文件有读写权限,就可以执行,不受上级目录权限限制
?
?
如果我们需要明确保护系统的一些文件,那么就把这些文件的上级目录做权限设置
禁止其他用户查看、切换进该目录。
?
?
【系统相关命令】
?
【管道pipe】
smarty的变量调节器就是linux的管道
管道:前者的输出是后者的输入
{$name|upper} 通过调节器使得名字变为大写输出
{$name|lower}
?
linux的管道:
ls –al | wc //查看当前目录下一共的文件数目
递归使用管道
ls -al | grep shuhua | wc //查看当前目录下shuhua主人拥有多少文件
?
【find文件查找指令】
????
????
?
【软链接和硬链接】
软链接:就是windows的快捷方式
????文件和目录都可以设置快捷键。
????什么地方使用快捷键
- 方便操作
- 对磁盘大小进行合理分配
?
- 软链接设置
- ln -s 源文件 软链接
????
- 具体使用
- 普通文件和目录都可以创建软链接
- 软链接分无效和有效,如果软链接找不到源文件,就是无效的。我们可以手动创建源文件,这样无效就变为有效连接
- 创建软链接时候,如果源文件和软链接不在同一级目录,则源文件需要使用绝对路径表示。
?
- 硬链接
与php程序的引用类似
在linux系统里边,我们看到的文件(文件、目录)信息,都是文件的指引
- 硬连接设置(使用较少)
ln [-d] 源文件 硬链接
ls -li 查看文件的引用号码
- 硬链接不同于软链接,源文件无需设置绝对路径
- 目录不可以设置硬链接
- 许多硬链接操作的是同一个文件
- 硬链接不可以跨分区、跨硬盘
- 软链接和硬链接有和异同
- 相同:大家都是操作同一个分文件
- 不同:
- 前者是快捷方式
- 前者对文件和目录都可以设置软链接
- 后者是文件引用
- 后者只可以针对文件设置硬链接
- 后者硬连接不能跨分区、跨硬盘
?
【任务调度指令】
系统运行过程中在指定时间完成指定任务,就是任务调度
?
1. 设置任务调度指令:
????crontab -e
?
????
?
查看任务调度指令
????crontab -l
????
????
????????
????
?
【文件属组设置】
- 修改文件的主人 change owner(root执行)
chown 主人 file
chown 主人.组 file -R //同时修改主人和组
chown .组 file //只修改组
chown -R 主人 filedir //递归修改目录和目录下标全部文件的属组
- 修改组 change group
chgrp 组 file
?
总结:
- 文件和目录关于权限使用(读、写、执行)
- 系统常用命令 grep date du –h
- 管道 前者输出 | 后者输入
- 文件查找 find 查找目录 参数(-name -size +/- -perm -maxdepth -mindepth)
- 软链接和硬链接
- 任务调度指令
- crontab –e
- 分钟 小时 日期 月份 星期 具体指令
7. 文件属组设置 chown -R 主人.组 file
?
作业:
- 使用vi编辑器编辑一个php文档(数据库链接、信息显示、php html 不能低于50行)
- 自行写一个shell脚本,在规定的时间执行
- 练习vi编辑器使用(移动、复制、删除)
- 练习find指令使用
?
?
?
?
?
?
?
?
2013-12-27 昨天内容回顾
- vi编辑器
- 三种:尾行、命令(默认)、编辑
- 命令模式----》尾行模式: : /
- 尾行模式:
- :q
- :w
- :wq
- :wq!
- :12
- :set number :set nonumber
- :s/login/logout/ 替换第一个
- :s/login/logout/g 替换整行
- :%s/login/logout/g 替换整个文档
- 命令模式:
- 移动光标:
- hjkl 上下左右 ----》字符
- e w b ---->单词级
- $ 0 --->行级
- { } --->段落
- H L ---->屏幕级
- G 1G nG ----> 文档级
- 内容删除:
- dd ---> 删除当前行
- 6dd --->删除算当前行在内的以下6行
- d+ 光标移动区域
- x ---》 删除单个字符
- 内容复制
- yy -->复制当前行
- 5yy ---->复制5行
- p ----> 对复制或删除的内容进行粘贴操作
- 快捷方式
- u ----> undo 撤销操作
- . ----> 点 重复上个指令
- J ----> 合并上下两行
- r ----> 单个字母替换
- 编辑模式:
- a i o s
- 文件权限设置
- 两种:字母相对方式、 数字绝对方式
- chmod u+w file
- chmod 001 file
- chmod g+r x dir -R //给目录进行递归权限设置
- 权限使用
- 文件 的读、写、执行
- 目录 的读、写、执行
- 管道
- 前者的输出是后者的输入
- ls –al | grep hello //在当前目录里边,查找有hello字样的详细文件内容
- 文件查找
- find 搜寻目录 参数 参数值
- find ./ -name hello
- find /home/shuhua -perm 644 在shuhua目录查找权限为644的文件
- find /etc -size +1024c 在etc目录下查找大小大于1024字节的文件
- find /lib -type f 在lib目录下查找类型为普通文件的文件
- find / -maxdepth 3 -name passwd 在/根目录下查找最深深度为3的名字为passwd的文件
?
- 软链接和硬链接
- 软链接
- 快捷方式
- 文件和目录都可以设置软链接
- ln -s 源文件(绝对路径) 软链接
- 如果源文件被删除,该链接就是无效链接
- 硬链接
- 文件的引用
- 作用:防止重要文件误删除
- ls -li //查看文件对应的引用号码
- 只有文件可以设置硬连接,目录不可以
- 硬链接不可以跨分区、跨硬盘
- ?
- 任务调度指令
- crontab –e
- 分钟 小时 日期 月份 星期 具体指令
- 文件属组更改
- change owner
- chown yixun.music file 同时修改文件的主人和组
- chown 主人 file 单独修改主人
- chown .组 file 单独修改组
?
【给系统配置网络】
- virtualbox配置网卡、接网线
- 配置ip、子网掩码、静态设置、开机启动ONBOOT网卡
????/etc/sysconfig/network-scripts/ifcfg-eth0
????
????
????子网掩码:
????192.168.5.100------------192.168.5.165,为了搜寻对方比较快速,只寻找最后一位165即可。
????我们如何判断只找最后一位就可以,因为有子网掩码在做比较。
????通过子网掩码如何知道,大家彼此都是一个网段的?
????255.255.255.0
????大家的ip地址与子网掩码分别做and与运算,如果得到的结果一致,
就说明是一个网段的
????11111111 11111111 11111111 00000000(255.255.255.0二进制数表示)
????11000000 10101000 00000101 10101010(192.168.5.100)
????192 168 5 0
11000000 10101000 00000101 101010101(192.168.5.165)
192 168 5 0
?
????
????linux系统ip地址配置:
????
????本机子网掩码需要改动(与linux一致):
????
?
????
?
- 重启网络
service network restart
- 测试是否可以与本机对话ping 192.168.5.XXX
(关闭本机防火墙)
本机pinglinux系统
?
【终端软件secureCRT连接服务器】
该软件secureCRT走ssh协议,端口号是22
类似apache走http协议,端口号是80
?
设置secureCRT操作界面
?
?
?
【光驱挂载mount】
光驱硬件:/dev/cdrom
在系统里边找一个目录,让其与光驱硬件进行挂载,进而使用光驱。
mount 硬件设备 挂载点
卸载光盘
umount 硬件设备/挂载点
?
?
【linux软件的安装】
- rpm包安装
- 类似windows软件的安装
- 该软件安装过程本质就是把许多二进制文件复制到系统指定目录而已
- 在windows里边,软件安装过程中显示进度条,就是正在把许多二进制文件复制到指定目录。
- 源码编译安装
- configure做检查配置(软件安装目录配置)
- make 编译软件(c语言程序-------机器语言程序),程序文件就变为二进制程序文件
- make install 安装软件,与rpm方式类似。把二进制文件复制到系统指定目录
- 该方式比rpm方式多了两个步骤(第一和第二步骤)
- 该方式比rpm方式更灵活,该方式可以灵活配置需要安装的各种软件,而rpm方式只会按照默认方式安装(软件不可以灵活配置)
- 智能yum方式
yum php
一键安装方式。类似360软件管家。
要求服务器有网络,不灵活。不可以设置自己需要的具体软件版本。
?
【ftp软件】
ftp: 文件传输协议
该软件走ftp协议,端口是21
?
vsftpd : very secure非常安全的文件传输协议软件。
?
1. rpm安装软件:
rpm -ivh 文件名
2. 查看一个软件是否有被安装
rpm -q 软件名 //软件名是完整名字
- 卸载rpm软件
rpm -e 软件名
?
- 模糊查询一个软件是否有安装
rpm -qa | grep ftpd(软件的部分名字)
?
- 升级已有软件
rpm -u 文件名
?
文件名和软件名
文件名:软件名+版本号码+后缀
软件名:是一个软件在系统运行过程中,对其直接操作的名字。例如 vsftpd network
?
- 启动vsftpd服务器
serivce vsftpd start/stop/restart
?
- 通过客户端winscp软件使用服务器的ftp服务
首次连接失败
需要让linux服务器放开对21(ftp)号端口的保护
?
- root用户登录ftp服务
????root用户需要登录ftp,需要在以上两个文件里边开放ftp权限。
?
?
总结:
- 网络连接(网卡桥接、具体ip地址配置、本机子网掩码、网络重新启动)
- secureCRT连接服务器
- 软件安装方式介绍
- ftp安装使用rpm -ivh 文件名
?
下午用到的软件通过winscp上传到服务器
?
?
????
?
????root使用ftp服务,需要开启权限:
【ftp使用普通用户处于安全不要走到系统根目录】
设置配置文件/etc/vsftpd/vsftpd.conf:
用户使用ftp服务只可以访问自己的家目录地址
?
【gcc编译器安装使用】
????gcc glibc-devel
????A-------B-------C-------D A软件安装时候需要B、C、D软件的依赖支持
???????????????????????? 先安装D、再C、再B、再A
????C-------B-------A 卸载过程:先A,再B,再C
?
????gcc安装
????
????最简单的hello world C语言
????
????
?
?
【zlib软件编译安装】
软件解压缩:
????后缀 tar.gz ------------ tar zxvf 压缩包
????后缀 tar.bz2 ------------ tar jxvf 压缩包
?
安装zlib软件(源码编译方式安装)
- 检查配置软件 configure
- 检查软件的依赖关系
- 设置软件安装路径
- 软件参数配置等等
该zlib软件安装的时候做配置configure,不需要设置额外参数,系统会把其安装在默认目录,以便其他软件可以找到。
- 编译软件 make
例如:把c语言源码编译为二进制的可执行程序代码
- 安装软件 make install
把编译后的二进制文件复制到系统指定目录
【apache编译安装】
- configure做配置
--enable-modules=all 安装全部的apache模块
--prefix=XXX 软件的安装目录
--enable-so apache可以识别后缀为so的模块文件
- make && make install
????编译和安装
- 启动apache
/usr/local/http2/bin/apachectl start
- 通过浏览器请求apache服务 http://192.168.6.100
/usr/local/http2/htdocs/index.html
- 通过setup指令开放防火墙的80端口
?
?
【给apache配置虚拟主机】
- 在主配置文件/usr/local/http2/conf/httpd.conf引入虚拟主机辅助配置文件
- 配置虚拟主机/usr/local/http2/conf/extra/httpd-vhosts.conf
- 重新启动apache
- 在本机hosts文件配置域名解析
- 访问权限有问题
- 开启apache配置文件的目录访问权限
- 没有默认索引文件
- 文件目录权限
该虚拟主机对应的目录地址 /home/shuhua/1016,目录的其他用户对应的x权限必须要具备 chmod o+x home/shuhua/1016
?
?
安装php
php有许多依赖包程序:libxml gd jpeg png 等等
?
【php依赖软件包安装】
libxml jpeg png freetype gd等等
?
?
?
【php软件安装】
- configure配置php
- make编译php
- make install 安装php
- 复制php配置文件到指定目录
- cp php.ini-development /usr/local/php/lib/php.ini
- 与apache结合,/usr/local/http2/conf/httpd.conf
- apache重新启动使得修改生效
php模块相对我们的系统是一个陌生的模块
我们需要告诉系统我们创建了一个新的模块,php模块
解决:
现在apache可以重新启动
/usr/local/http2/bin/apachectl restart
- 让php模块来解释php后缀的文件
httpd.conf
?
软件安装失败,需要重新安装
????没有注册表。
????直接删除对应的程序文件即可
????① /usr/local/http2 目录给删除
????② 删除解压后的文件
③ 重新解压、重新配置configure、重新编译make、重新安装make install
?
?
?
?
【mysql编译安装】
- mysql对字符集的支持
- 发现mysql在configure配置的时候有软件依赖情况
curses
termcap
到光盘找到对应的软件并安装
- 给mysql做初始化设置
- mysql成功启动
- 给mysql用户设置密码
刷新mysql的权限,使得密码生效:
- 通过用户名密码重新登录mysql服务
- 给test数据库添加数据表和数据
- 自定义php (/home/shuhua/1016/data.php)程序读取mysql数据
?
【linux后续设置】
- gnome已经崩溃,不要使用桌面程序
使用命令行模式
/etc/inittab
id:5 ------> id:3
2. apache mysql
????系统重启启动自动开启apache、mysql等服务
????
- 系统重启
reboot 重启
poweroff 关机
?
总结:
- gcc安装
- c语言测试
- 通过源码编译方式安装各种软件
- ?
?
作业:
????php、apache、mysql安装完毕
????使用php程序可以访问到mysql的数据就达标
?
?