Linux服务器操作系统
今日大纲
● 服务器操作系统的系列、Linux的主流产品、虚拟机软件
● 安装linux
● linux基本命令
● 用户管理及权限(多用户)
● 实战(搭建环境及部署web项目)
*****************************************************************************************************
1. 服务器操作系统简介
1.1 服务器操作系统
服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:
Unix系列:SUN Solaris,IBM-AIX,HP-UX,FreeBSD,OS X Server[6]等;
Linux系列:Red Hat Linux,CentOS,Debian,UbuntuServer等;
Windows系列:Windows NT Server,Windows Server 2003,Windows Server 2008,Windows Server 2008 R2,windows server 2012,windows server technical等。
1.2 学习Linux之前先认识Unix
- Unix是一个强大的多用户、多任务操作系统。
- 于1969年在AT&T的贝尔实验室开发。
- UNIX的商标权由国际开放标准组织(The Open Group)所拥有。
- UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。
*****************************************************************************************************
2. Linux
- Linux是基于Unix的。
- 诞生于1991 年10 月5 日。
- Linux是一个*的,免费的,源码开放的操作系统。
- Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。
2.1 Linux历史
Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds开发的,由于自己不满意教学中使用的MINIX操作系统,所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统.
2.2 Linux的应用领域
-
服务器系统
- Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;
-
嵌入式系统
- 路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,
-
高性能运算、计算密集型应用
- Linux有强大的运算能力。
- 桌面应用系统
- 移动手持系统
2.3 Linux主流产品
redhat:linux发行版最大的linux厂商,收费的,而且价格不低。
centos:基于redhat发行版重新编译之后开源版本;
*****************************************************************************************************
3.Linux安装
3.1 安装虚拟机软件
3.1.1 虚拟机软件的概念
虚拟机软件:是指可以在用户当前真实的操作系统中,创建多个可以安装其它操作系统的虚拟硬件平台(好比一个个虚拟的裸机设备)。
注意:虚拟机软件只是为安装操作系统提供了平台,并不是操作系统。
3.1.2 虚拟机软件的种类及特点
常用的虚拟机软件主要包括:VirtualBox、VMware Workstation、Virtual PC
VirtualBox: VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox
VMware Workstation: 是VMware公司销售的商业软件产品之一。该工作站软件包含一个用于英特尔x86相容电脑的虚拟机套装,其允许用户同时创建和运行多个x86虚拟机
Virtual PC:是Microsoft 最新的虚拟化技术。主要适合做微软自己产品的服务
VirtualBox与VMware的主要区别:
(1)VirtualBox是免费开源的,而VMware不是。
(2)VirtualBox体积小,而VMWare5、6安装后很庞大。
课程中我们以使用VirtualBox为主,如个别学员出现环境问题,可以选择安装VMware
3.1.3 安装虚拟机软件
参考:03-linux\相关资料\安装软件\1、虚拟机软件安装程序
本课程演示使用的虚拟机软件是VirtualBox
*****************************************************************************************************
3.2 安装Centos(操作系统)
参考《使用VirtualBox创建虚拟机(Centos6.5).doc》
参考《VMware-workstation_10_下创建虚拟机并安装安装centos_6.5步骤.docx》
*****************************************************************************************************
3.3 配置Linux网络
配置网络的目的主要是为了固定虚拟机的内网IP,方便我们在真实的操作系统中使用Linux连接工具软件进行远程连接
执行命令:setup
开启DHCP可以让Linux虚拟机自动分配IP
关闭DHCP需要指定IP
重启网络服务
service network restart
设置完,静态ip后,但是此时会发现外网无法访问。
注意,一定要将eth0作为仅主机only(以真实本机作为网关,并只于真实本机相连)模式,eth1作为NAT(可以访问外网)模式,才能为eth0分配静态ip的同时,也能够上外网。
每次更改完网络设置后,记得重启网络服务
Linux查看IP地址的命令:
ifconfig
ifconfig | more :分行进行显示,用于显示内容较多时
测试Linux网络配置是否成功:
在真实操作系统中运行命令:
ping xxx.xxx.xxx.xxx(Linux虚拟机的IP地址)
Ctrl + C :关闭正在运行的命令
注意:Linux系统中是严格区分大小写的,所有命令基本上都是小写字母
学习linux的要点:
、装好新的系统后,立刻设置备份(快照、类似win的还原点),以防不测,以后也可以在多个阶段生成备份(快照)。
、一定要敢于胆大心细的使用命令,敢于尝试Ctrl + C 、出错的命令、重启、关机、及各种重新运行。大不了还原或者重装。
但是在工作中使用公司的服务器一定要小心翼翼。。。。。。
*****************************************************************************************************
3.4 使用远程连接工具连接Linux
3.4.1 远程终端命令工具
主要功能是向Linux系统远程发送命令
XShell:目前最好用
Secure Shell Client(SSH):老牌的连接工具,对中文支持较差
SecureCRT:收费
Putty:早就停止维护了,很多东西支持的很差。但因为习惯依旧很多人支持
3.4.2 远程FTP工具
主要功能是与Linux系统之间进行文件传输
XFTP:配合XShell使用,支持简单在线编辑
Secure Shell Client(SSH):自带FTP工具
SecureFX:配合SecureCRT使用
Lrzsz:可以安装在Linux系统中,通过在远程终端中使用命令来实现FTP功能
3.4.3 使用XShell软件连接远程服务器
*****************************************************************************************************
3.4.4 使用XFTP软件进行FTP连接
安装好XFTP之后,点击工具栏的新建文件传输的图标:
通过XFTP工具,我们可以让本机操作系统和linux系统之间进行文件的上传和下载。
其余连接工具的使用可以参考 \相关资料\文档《使用其它工具(CRT SSH)连接linux.doc》
*****************************************************************************************************
4. linux 文件系统
- Windows磁盘分区格式:FAT16,FAT32,NTFS,exFAT
- Linux磁盘分区格式:与其它操作系统完全不同,共有两种。一种是Linux Native主分区,一种是Linux Swap交换分区。常见磁盘文件系统格式为:Ext2,ext3和ext4
查看Linux磁盘分区格式:
、命令:df -TH
、查看文件:vi /etc/fstab 退出vi 查看模式:先输入冒号: 在输入q 回车
/etc/fstab文件解释文件fstab包含了你的电脑上的存储设备及其文件系统的信息。
4.1 Linux的组成
内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
Shell:是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。
FILE SYSTEMS(文件系统):文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等
应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等
4.2 Linux的目录结构
、详情参考相关资料\文档\《Linux各目录及每个目录的详细介绍.docx》
*****************************************************************************************************
5. Linux基本命令
5.1 目录操作相关命令
5.1.1 显示当前所在目录
pwd命令:显示当前所在目录
5.1.2 浏览目录
ls命令:浏览目录
ls –l
等于
ll
命令
以长格式的形式查看当前目录下所有可见文件的详细属性
5.1.3 切换目录
、cd .. 切换到上一层目录
2、cd ./ 切换到当前目录下某个目录(cd xxx)
、cd – 回到上一次目录
、cd ../../ 切换到上上级目录
、cd /usr 切换到指定某目录(绝对路径)
、cd 切换到用户主目录(初始目录)
5.1.4 创建或删除目录
、mkdir abc 创建abc文件夹(目录)
2、rmdir abc 删除abc目录(如果abc目录下有子目录或者文件不能删除)
*****************************************************************************************************
5.2 文件创建编辑命令
- 在Linux下一般使用vi编辑器来编辑文件。
- vi既可以查看文件也可以编辑文件。
-
三种模式(状态):命令行、插入、底行模式。
- 切换到命令行模式:按Esc键; 开始执行插入模式或者是底行模式
- 切换到插入模式:按 i 、o、a键;
- 切换到底行模式:按 :(冒号);
- 更多详细用法,查询文档 \相关资料\文档 《Vim命令合集.docx》和《vi使用方法详细介绍.docx》
5.2.1 创建文件命令
vi filename 创建一个新文件,并进入vi 命令行模式。
如果选择不保存退出,将不会创建新文件
如果该文件已经存在,则进入该文件的vi编辑模式
touch filename 创建新文件,如果文件已经存在,更新文件时间戳(创建时间等)。
5.2.2 移动光标至文件尾部
shift + g:移动到文件尾部
5.2.3 显示行号
:set nu
5.2.4 退出vi编辑器
按Esc键进入命令行模式
按 :(冒号)进入底行模式
退出: :q
不保存退出(有变更): :q!
保存退出: :wq
*****************************************************************************************************
5.3 浏览文件内容命令
5.3.1 vi命令
vi filename 如果文件已经存在则可以查看文件内容,并进入vi命令行模式。
5.3.2 cat命令
cat filename 输出文件所有内容
5.3.3 more和less命令
more 查看更多内容
退出:按q键
空格:查询下一屏内容
less 用法和more类似,不同的是less可以通过PgUp、PgOn键来控制。
5.3.4 tail命令(重要)
tail 用于显示文件后几行的内容
行数据
tail -f catalina.log 动态查看日志,可以实时的得到新追加到文件中的信息,常用来跟踪日志文件。
行
Ctrl + C 结束查看
5.3.5 grep命令
- 查找符合条件的字符串。
- 用法: grep [选项]... PATTERN [FILE]...
-
示例:
- grep lang anaconda-ks.cfg 在文件中查找lang
- grep lang anaconda-ks.cfg --color 高亮显示
grep location nginx.conf --color -A5 -B5 查找字符串location并且高亮显示、显示查找到的元素的前、后5行内容。
查看进程:
ps -ef | grep java
ps -ef | grep tomcat
*****************************************************************************************************
5.4 内容查找替换命令
5.4.1 查找字符串
vi命令模式下输入:
/text 查找text,按n健查找下一个,按N健查找前一个。
5.4.2 替换字符串
vi底行模式下输入:
s/old/new/ 用new替换old,替换当前行的第一个匹配
s/old/new/g 用new替换old,替换当前行的所有匹配
%s/old/new/ 用new替换old,替换所有行的第一个匹配
%s/old/new/g 用new替换old,替换整个文件的所有匹配
*****************************************************************************************************
5.5 文件目录共有命令
5.5.1 删除文件或目录
rm 删除文件
rm a.txt 删除a.txt文件
删除需要用户确认 y/n
rm -f a.txt 不询问直接删除
rm -r abc 删除目录(递归删除),逐步询问是否删除里面的文件
rm -rf abc 不询问方式删除目录及里面的内容(慎用)
rm -rf * 删除当前目录下的所有文件
rm -rf /* 删除系统的所有文件(自杀)
5.5.2 复制文件或目录
cp(copy) 将文件从一处复制到另一处。
一般使用cp命令将文件复制成另一个文件或者复制到某目录时,需要指定原文件名与目标文件名或目录
cp a.txt b.txt 将a.txt 复制为 b.txt 文件
cp a.txt ../ 将a.txt 复制到上一级目录中
参数:
-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件
cp -rf abc /usr/local 复制当前目录中的abc文件夹及内的所有内容到 /usr/local 中,重名会覆盖
5.5.3 移动文件或目录
mv 移动或者重命名
mv a.txt ../ 将a.txt 移动到上一级文件夹中
mv a.txt c.txt 将a.txt 重名为c.txt
mv abc /usr/local 移动当前目录中的abc文件夹及内的所有内容到 /usr/local 中
mv abc /usr/local/haha 移动当前目录中的abc文件夹及内的所有内容到 /usr/local 中,并将文件夹名称更名为haha
5.5.4 打包命令:tar
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
打tar包:tar –zcvf 压缩文件夹名或压缩文件名需要压缩的文件
tar -zcvf abc.tar.gz * 压缩当前目录下所有文件,压缩后文件名为abc.tar.gz
解压tar包:tar –zxvf 压缩文件夹名或压缩文件名
tar -zxvf abc.tar.gz 解压到当前目录
tar -zxvf abc.tar.gz -C /usr/local/xixi/ 解压到指定目录中记得指定目录前面加 -C
查看tar包内的文件 tar -ztvf xxx.tar
5.5.5 显示文件或目录大小
du 显示目录或文件的大小。
du –h 显示当前目录的大小
*****************************************************************************************************
5.6 命令数据传递
5.6.1 重定向输出 > 和 >>
> 重定向输出;
>> 重定向输出,又追加功能;
示例:
cat b.txt > a.txt 输出定向到a.txt中
cat b.txt >> a.txt 输出并且追加
5.6.2 管道 "|"
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
示例
ls --help | more 分页查询帮助信息
ps –ef | grep java 查询名称中包含java的进程
*****************************************************************************************************
5.7 命令执行控制
5.7.1 && 方式
命令之间使用 && 连接,实现类似逻辑与的功能。
只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。
cat c.txt && ifconfig
cat: c.txt: 没有那个文件或目录,则不会执行ifconfig
5.7.2 || 方式
此外还有||
左边执行失败,则执行右边。左边执行成功,不执行右边。
*****************************************************************************************************
5.8 网络通讯命令
5.8.1 基本命令
ifconfig 显示或设置网络设备。
ifconfig 显示网络设备
ifconfig eth0 up 启用eth0网卡
ifconfig eth0 down 停用eth0网卡
ifup eth0 启用eth0网卡
ifdown eth0 停用eth0网卡
ping 探测网络是否通畅。
ping 192.168.0.1
netstat 查看网络端口。
端口占用情况
ifconfig eth0 up 是使用了 ifconfig 命令来激活网卡
ifup eth0 则是使用了 ifup脚本来激活网卡
用 ifup脚本方式的好处在于可以提供一些高级控制
ifup ifdown 通常存放于 /etc/network/interfaces下面
重启后都会失效
5.8.2 修改网卡信息
网卡信息的文件:
/etc/sysconfig/network-script/ifcfg-eth0
手动更改ifcfg-eth网卡文件请参照《网络配置问题.doc》
重启网卡的命令:
service network restart
配置主机名两种方法
1、setup
2、vi /etc/sysconfig/network
5.8.3 防火墙操作
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭:
chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭:
service iptables stop
service iptables status可以查看到iptables服务的当前状态
可以使用 lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例:
lsof -i:80
如果有显示说明已经开放了,如果没有显示说明没有开放。
在开启了防火墙时,做如下设置,开启相关端口
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
查看防火墙 iptables -L
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作
*****************************************************************************************************
5.9 系统相关命令
5.9.1 系统信息命令
date 显示或设置系统时间
date 显示当前系统时间
date -s "2014-01-01 10:10:10" 设置系统时间
df 显示磁盘信息
df –h 友好显示大小
free 显示内存状态
free –m 以mb单位显示内存状态
who 显示目前登入系统的用户信息。
hostname 查看当前主机名
修改:vi /etc/sysconfig/network
uname 显示系统信息。
uname –a 显示本机详细信息。
依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称
5.9.2 进程管理命令
top命令:显示,管理执行中的程序
第一行(top):
"00:11:04"为系统当前时刻;
"3:35"为系统启动后到现在的运作时间;
"2 users"为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
"load average"为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
"59 total"为当前系统进程总数;
"1 running"为当前运行中的进程数;
"58 sleeping"为当前处于等待状态中的进程数;
"0 stoped"为被停止的系统进程数;
"0 zombie"未被复原的进程数(僵尸进程);
第三行(Cpus):
分别表示了 CPU 当前的使用率;
"0.7% us":用户进程占用CPU百分比
"0.7% sy":内核进程占用CPU百分比
"0.0% ni":用户进程空间内改变过优先级的进程占用CPU百分比
"98.7% id":空闲CPU百分比
"0.0% wa":等待输入输出的CPU时间百分比
"0.0% hi":硬件中断请求时间
"0.0% si":软终端请求时间
第四行(Mem):
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
列表部分:
PID:进程id
USER;进程所有者的用户名
PR:进程的优先级
NI:nice值。负值表示高优先级,正值表示低优先级
VIRT -- 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES -- 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR -- 共享内存大小,单位kb
S -- 进程状态。
D =不可中断的睡眠状态
R =运行
S =睡眠
T =跟踪/停止
Z =僵尸进程
%CPU -- 上次更新到现在的CPU时间占用百分比
%MEM -- 进程使用的物理内存百分比
TIME+ -- 进程使用的CPU时间总计,单位1/100秒
COMMAND:启动任务的命令行(包括参数)
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 杀掉某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
5.9.3 系统管理命令
关机命令
shutdown -h now (立刻关机)
shutdown -h 5 (5分钟后关机)
poweroff (立刻关机)
halt (立刻关机)
重启命令
shutdown -r now (立刻重启)
shutdown -r 5 (5分钟重启)
reboot (立刻重启)
远程登录
使用ssh登录(登录到另一个系统);
ssh 目标机器IP
例如:ssh slave1
退出
exit (退出当前登录)
远程传输
传文件
scp 文件其他机器的用户名@其他机器的ip:路径
传文件夹:
scp -r 文件夹其他机器的用户名@其他机器的ip:路径
*****************************************************************************************************
5.10 其它命令
帮助命令
Linux的命令非常之多,不可能都记得住使用方法;
使用帮助命令 --help
shutdown --help
ssh --help
ifconfig --help (查看网卡信息)
使用man命令(命令说明书)
man shutdown
clear 清屏
wget 下载资源
*****************************************************************************************************
6. 用户管理及权限
6.1 用户管理
6.1.1 查看单个用户
id命令
功能:查看一个用户的UID和GID
用法:id [选项]... [用户名]
6.1.2 查看所有用户
查看所有用户:cat /etc/passwd
6.1.3 添加用户
useradd 添加一个用户
useradd test 添加test用户
useradd test -d /home/t1 指定用户home目录
6.1.4 修改密码
passwd 设置、修改密码
passwd test 为test用户设置密码
6.1.5 切换用户
su命令
功能:切换用户。
用法:su [选项]... [-] [用户 [参数]... ]
示例:
su u1 切换到u1用户
su - u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)
6.1.6 删除用户
userdel 删除一个用户
userdel test 删除test用户(不会删除home目录)
userdel –r test 删除用户以及home目录
userdel –rf test 暴力删除(虽然有提示用户正在使用,但是实际上已经删掉了)
*****************************************************************************************************
6.2 用户组管理
当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的私有组
6.2.1 查看所有组
查看所有组:cat /etc/group
6.2.2 创建组
groupadd 创建组
groupadd public 创建一个名为public的组
useradd u1 –g public 创建用户指定组
usermod -g public test 指定用户所属的群组(将用户移动到新的组)
usermod -G public test 指定用户所属的附加群组(将用户移动到新的组,但是用户依旧在原来的组存在)
在使用useradd命令创建用户的时侯可以用-g 和-G 指定用户所属组和附属组。
基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。在创建文件时,文件的所属组就是用户的基本组。
附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。
用户不论为与基本组中还是附加组中,就会拥有该组的权限。一个用户可以属于多个附加组。但是一个用户只能有一个基本组。
防止眼花:
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more
6.2.3 删除组
groupdel 删除组,如果该组有用户成员,必须先删除用户才能删除组。
groupdel public 删除名为public的组
*****************************************************************************************************
6.3 账户文件
6.3.1 用户文件
/etc/passwd 用户文件
root:x:0:0:root:/root:/bin/bash
账号名称: 在系统中是唯一的
用户密码: 此字段存放加密口令
用户标识码(User ID):系统内部用它来标示用户
组标识码(Group ID):系统内部用它来标识用户属性
用户相关信息: 例如用户全名等
用户目录: 用户登录系统后所进入的目录
用户环境: 用户工作的环境
6.3.2 密码文件
/etc/shadow 密码文件
shadow文件中每条记录用冒号间隔的9个字段组成.
用户名:用户登录到系统时使用的名字,而且是惟一的
口令:存放加密的口令
最后一次修改时间: 标识从某一时刻起到用户最后一次修改时间
最大时间间隔: 口令保持有效的最大天数,即多少天后必须修改口令
最小时间间隔: 再次修改口令之间的最小天数
警告时间:从系统开始警告到口令正式失效的天数
不活动时间: 口令过期少天后,该账号被禁用
失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
标志:未使用
6.3.3 组信息文件
/etc/group 组信息文件
root:x:0:
组名:用户所属组
组口令:一般不用
GID:组ID
用户列表:属于该组的所有用户
*****************************************************************************************************
6.4 权限管理
6.4.1 文件权限
6.4.2 文件类型
普通文件:包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件。
文件类型标识
普通文件(-)
目录(d)
符号链接(l)
字符设备文件(c)
块设备文件(s)
套接字(s)
命名管道(p)
6.4.3 文件权限管理
chmod 变更文件或目录的权限。
读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1
chmod 755 a.txt
chmod u=rwx,g=rx,o=rx a.txt
chmod 000 a.txt
chmod 777 a.txt 777就是rwxrwxrwx 最高权限
root的权限不会被chmod 000屏蔽.
权限为全0,root也可以访问。
chown 变更文件或目录的拥有者或所属群组。
chown test5:root a.txt 变更文件
chown -R test5:root dir 变更目录
*****************************************************************************************************
7. 实战(搭建环境及部署web项目)(重要)
7.1 上传文件到服务器
使用SecureFX工具上传
优点:简单、方便
缺点:需要安装软件、跳板机无法使用
使用lrzsz工具
优点:任何环境都可以使用,使用简单
缺点:需要在linux安装软件
步骤:
1、下载安装包,wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
或者是上传已经下载好的安装包。
2、解压安装包:tar -zxvf lrzsz-0.12.20.tar.gz
3、进入加压后的目录:cd lrzsz-0.12.20
4、执行配置:./configure
会提示 configure: error: no acceptable cc found in $PATH,意思是缺少gcc命令,需要安装gcc
手动安装gcc比较麻烦,所有选择使用yum安装(需要连接外网)
yum install gcc
执行配置:./configure
5、编译:make
6、安装:make install
7、配置系统命令:
cd /usr/bin
ln -s /usr/local/bin/lrz rz (上传命令)
ln -s /usr/local/bin/lsz sz (下载命令)
8、输入命令:rz
安装成功!
补充:
如果是CentOS则可以用yum install lrzsz 命令安装,更方便。(需要连接外网)
或:yum -y install lrzsz 命令安装,更加更加更加方便。(需要连接外网)
*****************************************************************************************************
7.2 安装java
安装完Centos6.5的Base Server版会默认安装OpenJDK,首先需要删除OpenJDK
1、查看以前是不是安装了openjdk
如果不是root用户需要切换到root用户(su - root)
命令:rpm -qa | grep java
显示如下:(有则卸载,没有就不用),注意版本可能会有些不一样,以实际操作的为准。
tzdata-java-2013g-1.el6.noarch
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
2、卸载openjdk:
(其中参数"tzdata-java-2013g-1.el6.noarch"为上面查看中显示的结果,粘进来就行)
rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
3、安装jdk
(1)、切换到root用户并进入usr目录: cd /usr
(2)、在usr目录下创建java文件夹: mkdir java
(3)、将jdk-7u71-linux-x64.tar.gz拷贝到java目录下(也可以用工具)
cd /usr/local/mao/
cp jdk-7u71-linux-x64.tar.gz /usr/java/
(4)、进入/usr/java文件夹下:cd /usr/java/
(5)、修改权限,参数"jdk-7u71-linux-x64.tar.gz"为你自己上传的jdk安装文件
chmod 755 jdk-7u71-linux-x64.tar.gz
(6)、解压:tar –zxvf jdk-7u71-linux-x64.tar.gz
(7)、配置环境变量
vi /etc/profile
添加内容:/usr/local/java/jdk1.7.0_71
export JAVA_HOME=/usr/java/jdk1.7.0_71 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME PATH CLASSPATH |
(8)、重新编译环境变量
source /etc/profile
*****************************************************************************************************
7.3 安装tomcat
安装Tomcat
1、进入tomcat绿色版压缩文件的目录中:cd /usr/local/mao/
2、解压tomcat绿色版压缩文件:tar -zxvf apache-tomcat-7.0.57.tar.gz
3、关闭防火墙(永久,需要重启):chkconfig iptables off
4、重启机器:reboot
5、启动tomcat:
进入tomcat的bin目录:cd /usr/local/mao/apache-tomcat-7.0.57/bin/
启动tomcat web服务器:./startup.sh
6、停止tomcat:./shutdown.sh
7、查看tomcat日志信息:
tail -200f /usr/local/mao/apache-tomcat-7.0.57/logs/catalina.out
200表示最后显示行数
运行web程序
设置tomcat开机启动
在/etc/rc.d/rc.local文件最后添加
export JAVA_HOME=/usr/java/jdk1.7.0_71
/usr/local/mao/apache-tomcat-7.0.57/bin/startup.sh start
*****************************************************************************************************
7.4 安装mysql
1、卸载linux自带的mysql
查看:rpm -qa | grep mysql
删除:rpm -e --nodeps 查看到的选项
2、上传mysql安装包文件
3、安装服务器端:server
修改权限: chmod 777 MySQL-server-5.5.8-1.rhel5.x86_64.rpm
执行安装: rpm -ivh MySQL-server-5.5.8-1.rhel5.x86_64.rpm --nodeps --force
注:--nodeps --force 表示不检查依赖
4、安装客户端:client
修改权限: chmod 777 MySQL-client-5.5.8-1.rhel5.x86_64.rpm
执行安装: rpm -ivh MySQL-client-5.5.8-1.rhel5.x86_64.rpm --nodeps --force
5、启动和关闭mysql
启动mysql: service mysql start
关闭mysql: service mysql stop
6、添加密码
/usr/bin/mysqladmin -u root password 'new-password'
7、mysql修改字符编码
vi /etc/my.cnf (mysql安装目录(/usr/share/mysql)中有模版)
【client】下面添加:default-character-set = utf8
【mysqld】下面添加:character_set_server = utf8
service mysql restart
8、配置mysql允许远程访问
(1)进入 mysql:
mysql -u root -p
(2)使用 mysql库:
use mysql;
(3)查看用户表:
SELECT `Host`,`User` FROM user;
(4)授权用户:
grant all privileges on *.* to root@'%' identified by '123456';
(5)强制刷新权限:
flush privileges;
注意要关闭防火墙
注意:如果出现错误
MySQL错误1042-Can't get hostname for your address
解决办法:
需要修改配置文件,在[mysqld]下增加skip-name-resolve(忽略主机名的方式访问),并重启MYSQL服务可解决此问题。
例如:MYSQL配置文件在: /etc/my.cnf,
编辑它,在[mysqld]下增加skip-name-resolve,在执行service mysql restart 即可。
查看selinux状态
getenforce
关闭selinux
setenforce 0 (临时,重启后失效)
vi /etc/sysconfig/selinux
把里边的中间一行改为SELINUX=disabled(永久,重启后生效)
*****************************************************************************************************
7.5 搭建项目
cat usermanage.sql | mysql -uroot -p123456
1、执行.sql文件初始化项目数据库信息
2、将root.war 部署到tomcat webapps中
3、注意数据库连接密码
最后访问的地址:
http://192.168.56.101:8080/user/page/query
*****************************************************************************************************
8. 总结
、linux安装可以连本机可以用第三方的工具去连接(必需)
、linux基本命名:(红色)
、安装java 安装tomcat