- 这里我们选择用虚拟机
- 系统环境为centos6.8
一.虚拟机安装
1.虚拟机安装的三种网络连接
- 桥接模式:在教室环境下,两个人连上网,比如一个人张三windows系统,ip为192.168.0.20,另一个人李四也是windows系统,ip为192.168.0.10,张三装了一个虚拟机,如果虚拟机选择桥接模式,虚拟机环境下的ip地址就会是192.168.0.30,同一个网段下,两个人还是可以互相通信,乍看很不错…但是对于同一个教室下,有200+人,每个人都弄一个虚拟机,网络都选桥接模式会出现ip地址不够用的情况…简单来说就是桥接模式下Linux可以和其他系统通信,但是可能会造成ip地址冲突
- NAT模式:Linux可以访问外网,不会造成ip冲突。王五windows系统,ip为192.168.0.30,新建一个虚拟机选择NAT模式,windows系统会生成一个虚拟的ip地址,比如说是192.168.100.200,虚拟机ip为192.168.100.50,简单点说就是虚拟机ip和windows系统出现的虚拟ip组成了同一个局域网
- 仅主机模式:你的Linux是一个独立的主机,不能访问外网
- 一般情况下选择NAT模式
2.类型安装-自定义布局
- Linux至少要分三个区
- 根分区(空闲全给根分区)
- boot区(LInux启动需要的一些引导文件,默认放这里,200M就够了)
- swap分区(交换分区,系统内存不够用的时候,可以用swap占时替代内存,2G吧,虚拟内存,不要分太多,性能会下降,一般是物理内存的1.5-2倍之间)
3.CentOS安装
- 默认安装是最小安装,一定要选自定义…
- 基本系统
- 兼容程序库
- 基本
- 调试工具
- 应用程序
- 互联网浏览器(默认是火狐浏览器)
- 桌面(默认)
- 语言支持
- 中文
4.安装vmtools
-
可以直接粘贴命令在windows喝centos系统之间
-
可以设置windows和centos的共享文件夹
-
把VMwareTools-10.0.5-3228253.tar.gz放到opt目录下,进入终端
cd /opt
tar -zxvf VMwareTools-10.0.5-3228253.tar.gz //解压
cd vmware-tools-distrib/
./vmware-install.pl //安装
一路回车,等待一会,安好后要重启centos
reboot //重启
- 共享文件夹默认在mnt目录下hgfs下
5.Linux目录结构
- Windows系统有分盘,而Linux系统下只有一个根目录,根目录下有很多子目录
- Linux的文件系统采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他目录
- 在Linux世界里,一切皆文件
- linx各个目录存放的内容是规划好的,不要乱放文件
- bin目录:存放最经常使用的命令
- sbin目录:存放系统管理员使用的系统管理程序
- home目录:存放普通用户的主目录,在LInux中每个用户都有一个自己的目录,一般该目录名是以用户的账户命名的
- root目录:该目录为系统管理员,也称作超级权限者的用户主目录
- lib目录:系统开机所需要最基本的动态连接共享库,作用类似于windows里的DLL文件。几乎所有应用程序都需要用到这些共享库
- lost+found目录:一般情况是空的,当系统非法关机,会存放一些文件
- etc文件(重点):所有系统管理所需要的配置文件和子目录,比如mysql的my.conf配置文件就放这里
- usr文件(重点):非常重要目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
- boot(重点):存放启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- proc目录:这个目录是一个虚拟目录,系统内存的映射,存放系统信息
- srv目录:存放一些服务启动之后需要提取的数据
- sys目录:LInux2.6内核一个很大变化,该目录下安装2.6内核中新出现的一个文件系统
- 上面三个目录和Linux内核有关,一般都是高手才动的…
- tmp:存放一些临时文件
- dev目录:类似于windows设备管理器,所有硬件用文件形式存储
- media目录(重点):自动识别一些设备,如U盘,光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
- mnt目录(重点):为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在mnt上,然后进入该目录就可以查看里面的内容了。比如共享文件
- opt目录:给主机额外安装软件所摆放的目录,安装ORACLE数据库就可放到该目录下。默认为空
- usr/local目录(重点):这是另一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装的程序
- var目录(重点):存放着在不断扩充的东西,习惯将经常被修改的目录放在这个目录下。包含各种日志文件
- selinux目录:是一种安全子系统,控制程序只能访问特定文件,类似于360
二.Linux实操篇
1.远程登录XShell5
- 为什么要远程登录LInux?
- 人在公司办公…你的服务器在机房,机房多半不是和办公场所在一起的…所以就需要远程登录了
- XShell5是远程登录到Linux的软件
- XFtp5是远程上传和下载文件
- 远程访问Linux系统,需要一个前提,就是Linux启用SSHD服务,该服务会监听22号端口
ifconfig //查看ip信息
- 然后去Xshell远程登录
- 有时候你可能遇到登不上,登不上可以把防火墙关了,关了一般就可以登了,不关虚拟机的ip我本机都Ping不通…
关闭Linux防火墙命令:service iptables stop / service firewalld stop
查看Linux防火墙状态命令:service iptables status / service firewalld status
2.远程上传下载文件Xftp5
- 基于windows平台的功能强大的SFTP,FTP文件传输软件
- 选择协议一定要选择SFTP,不要选择FTP,FTP默认是21端口,Linux没有给你提供这个端口
- 连接成功后有可能遇到乱码,选项中选择utf-8编码就可以了,如果你用的Xftp6,就不会乱码
- 然后就可以使用它来上传下载文件了
3.vi和vim编辑器
- 所有的Linx系统都会内建vi文本编辑器
- vim具有程序编辑的能力,可以看做是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完,编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用
A.vi和vim的三种常见模式
- 正常模式:以vim打开一个档案就直接进入一般模式,这是默认模式。这模式下,你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理档案内容,也可以使用复制,粘贴来处理你的文件数据。正常模式下,可以使用快捷键。
- 插入模式:程序员可以输入内容。按下i,I,O,a,A,r,R等任何一个字符之后才会进入编辑模式,一般来说按i即可。
- 命令行模式:提供你相关指令,完成读取,存盘,替换,离开vim,显示行号等动作则是此模式中达成的
B.快速入门案例
vim Hello.java
按i进入编辑模式之后写入如下代码
public class Hello{
public static void main(String[] args){
System.out.println("Hello");
}
}
C.快捷键的使用
- 拷贝当前行 yy,拷贝当前行向下的5行,5yy,并粘贴§
- 删除当前行 dd,删除当前行向下的5行,5dd
- 在文件中查找某个单词 [命令行下 /关键字,回车查找,输入n就是查找下一个]
- 设置文件的行号,取消文件的行号 [命令行下:set nu和set nonu]
- 编辑 /etc/profile文件,使用快捷键到底文档的最末行[G]和最首行[gg],正常模式下执行
- 在一个文件中输入’hello’,然后又撤销这个动作 u,正常模式下输入u
- 编辑/etc/profile文件,并将光标移动到20行 shift+g
- 显示行号:set nu
- 输入20这个数
- 输入shift+g
- 还有很多…
4.开机,重启和用户登陆注销
A.开机和重启
- 基本介绍
shutdown
shutdown -h now:表示立即关机
shutdown -h 1:表示1min后关机
shutdown -r now:立即重启
halt:直接使用,效果等价于关机
reboot:重启系统
sync:把内存数据同步到磁盘中
- 关机或重启最好执行一下sync命令,防止数据丢失
B.用户登录和注销
- 登录时尽量少用root登录,它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用“su -用户名”命令来切换成系统管理员身份
- 在提示符下输入logout即可注销用户
- logout注销指令在图形运行级别无效,在运行级别3下有小
- 运行级别这个概念,后面讲…
5.用户管理
A.基本介绍
- Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账户的身份进入系统
B.添加用户
useradd [选项] 用户名
- 如果这里你直接useradd 用户名,那么不仅会创建用户名,还会创建一个用户名的一个新组,home目录下也多了一个文件夹
- 也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
passwd 用户名 //给用户设置密码
C.删除用户
userdel 用户名//删除用户,但是要保留家目录
userdel -r 用户名//删除用户以及用户主目录,-r可以理解成递归删除
- 是否保留家目录?一般来讲保留家目录…家目录下保留了一系列信息,员工离职信息肯定还要保留呀…
D.查询用户信息
- 用户不存在,会返回不存在此用户的
id 用户名
E.切换用户
- 如果当前用户权限不够,可以通过su -指令,切换到高权限用户,比如root用户
- 高权限切换低权限用户,不需要密码,反之需要
- 当需要返回原来用户时,使用exit指令
su - 切换用户名
- 权限不够会提示的
F.用户组的管理
- 类似于角色,系统可以对有共性的多个用户进行统一管理
groupadd 组名 //增加组
groupdel 组名 //删除组
useradd -g 用户组 用户名 //增加用户时直接加上组,当然用户组要先创建
usermod -g 用户组 用户名 //修改用户的组,用户组要存在
G.用户和组的配置文件
- 用户配置文件(用户信息):在/etc/passwd
- 口令配置文件(密码和登录信息,是加密的):在/etc/shadow
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- 组配置文件(组信息):在/etc/group
每行含义:组名:口令:组标识号:组内用户列表
6.实用指令
A.指令运行级别
- windows里面的安全模式就是运行级别
- 常用运行级别是3和5,要修改默认的运行级别可改文件
- /etc/inittab的id:5:initdefault:这一行中的数字
init [012356] //切换到指定运行级别的指令,注意没有4
- 面试题:如何找回root密码,如果不小心忘记了root密码,怎么找回?
- 思路:进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码就可以登录。
- 开机->在引导时输入 回车键->看到一个界面输入e->看到一个新的界面,选中第二行(编辑内核),再输入e->在这行最后输入 1,在输入回车键->再次输入一个b,这时就会进入到单用户模式,这时,使用passwd来修改root密码
- 修改这些前提是你需要进到机房,操作物理机,而不是远程…所以机房很重要
- 可以用vim修改那个文件那行修成对应的运行级别,保存重启就永远进入对应的运行级别了,当然了如果有人整你设置成0,一启动就关机,你就只能进入单用户模式去修改了…
B.帮助指令
- 当我们对某个指令不熟悉时,我们可以使用LInux提供的帮助指令来了解这个指令的使用方法。
man [命令或配置文件] //(功能描述:获得帮助信息) 有语法和详解
help 命令 //(功能描述:获得shell内置命令的帮助信息)
- 当一个指令不熟悉时,可以百度,也可以用上面两个命令查看详解解释
C.常用命令
a.pwd指令
pwd //显示当前工作目录的绝对路径
b.ls指令
常用选项
-a:显示当期目录所有文件和目录,包括隐藏的
-l:以列表方式显示信息
ls [选项] [目录或是文件]
c.cd指令
cd [参数] //切换到指定目录
cd ~或者cd:回到自己的家目录
cd ..回到当前目录的上一级目录
- 绝对路径和相对路径理解
d.mkdir指令
- mkdir指令用于创建目录(make directory)
mkdir [选项] 要创建的目录
- 常用选项
-p:创建多级目录
e.rmdir指令
rmdir用于删除空目录
rmdir [选项] 要删除的空目录
- 删除的是空目录,如果目录下有内容时无法删除,需要删除非空目录,需要使用rm -rf来删除
f.touch指令
- touch指令用于创建空文件
touch 文件名称
g.cp指令
- cp指令拷贝文件到指定目录
- 常用选项
- -r:递归复制整个文件夹
cp [选项] source dest
- 使用细节:强制覆盖不提示的方法:\cp
- 技术小技巧:可以通过上下箭头的键,选择你之前敲了并执行的命令
h.rm指令
- rm指令移除文件或目录
- 常用选项
- -r:递归删除整个文件夹
- -f:强制删除不提示
rm [选项] 要删除的文件或目录
- 不想一直打y可以加上f,强制删除
- 删除不提示的方法:带上-f参数即可
i.mv指令
- mv移动文件与目录或重命名
mv oldNameFile newNameFile //重命名
mv /temp/movefile /targetFolder //移动文件
j.cat指令
- cat指令是查看文件内容,和vim有区别,只能查看,不能修改,相当于是以只读的方式打开文件
- 常用选项
- -n:显示行号
cat [选项] 查看的文件
- cat加上-n显示行号也是一次性浏览完整个文件就完了,让人很不爽…我们可以在后边加上 | more来分页配合使用(管道符)…按空格键下一页
k.more指令
- more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容
- more指令内置了若干快捷键
more 要查看的文件
l.less指令
- less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
less 要查看的文件
m.重定向和追加
-
输出重定向和 >>追加
-
输出重定向:会将原来的文件的内容覆盖
-
追加:不会覆盖原来的内容,而是追加到文件的末尾
- 基本语法如下
ls l >文件 //列表的内容写入文件a.txt中(覆盖写)
ls -al >>文件 //列表的内容追加到文件aa.txt的末尾
cat 文件1 > 文件2 //文件1的内容覆盖到文件2
echo "内容">>文件
n.echo指令
- echo是输出内容到控制台
echo [选项] [输出内容]
echo $PATH //输出环境变量
o.head指令
- head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
head 文件 //查看文件头10行内容
head -n 5 文件 //查看文件头5行内容,5可以是任意行数
p.tail指令
- tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容
tail 文件 //查看文件后10行内容
tail -n 5 文件 //查看文件后5行内容,5可以是任意行数
tail -f 文件 //并实时追踪该文档的所有更新
q.ln指令
- 软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
ln -s [原文件或目录] [软链接名] //给源文件创建一个软链接
- 当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录
- 删除软链接文件时,因为只删除链接,不用带斜杠
r.history指令
- 查看已经执行过历史命令,也可以执行历史指令
history //查看已经执行过历史命令
history 5 //最近执行的5个指令
!(history指令的编号) //执行history指令的对应编号的指令
- 可以用它写成一个文件,用于日志记录
s.date指令
- 显示当前日期
date //显示当前时间
date + %Y //显示当前年份
date + %m //显示当前月份
date + %d //显示当前是哪一天
date “+ %Y-%m-%d %H:%M:%S“ //显示年月日时分秒
date -s 字符串时间 //设置日期
t.cal指令
- 查看日历指令
cal [选项] //不加选项,显示本月日历
u.find指令
- 将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
find [搜索范围] [选项]
- 当然可以用通配符
- 按大小查询,+n 大于,-n小于,n等于
- 加上h就可以查看大小了
v.locate指令
- locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须顶起更新locate时刻
locate 搜索文件
- 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
w.grep指令和管理符号|
- grep过滤查找,管道符,"|",表示将前一个命令的处理结果输出传递给后面的命令处理
grep [选项] 查找内容 源文件
x.压缩和解压类指令
- gzip用于压缩文件,gunzip用于解压的
gzip 文件 //压缩文件,只能将文件压缩为*.gz文件
gunzip 文件.gz //解压缩文件命令
- zip用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用的
zip [选项] xxx.zip //将要压缩的内容(压缩文件和目录的命令)
unzip [选项] xxx.zip //解压缩文件
- 常用选项
- -r:递归压缩,即压缩目录
- unzip常用选项
- -d<目录>:指定解压后文件的存放目录
- tar指令
- tar指令是打包指令,最后打包后的文件是.tar.gz文件
tar [选项] xxx.tar.gz 打包的内容 //打包目录,压缩后的文件格式.tar.gz
D.组管理
a.组的管理
- 在linux中的每个用户必须属于一个组,不能独立于组外
- 在linux中每个文件有所有者,所在组,其他组的概念
- 所有者,所在组,其它组,改变用户所在的组
- 文件/目录所有者:一般为文件的创建者,谁创建了改文件,就自然的成为该文件的所有者
ls -ahl //查看文件的所有者
chown 用户名 文件名 //修改文件所有者
- 改变了所有者,但是所在组没有变化,所以要注意!!!!
- 组的创建
groupadd 组名
- 所在组
- 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
ls -ahl //查看文件/目录所在组
chgrp 组名 文件名 //修改文件所在的组
- 其他组
- 除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
- 改变用户所在组
- 再添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户的组
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登录的初始目录
- 注意:所有者为tom的文件不会改变所在组
b.权限基本介绍
- 这里的权限主要指文件和目录权限
- rwx权限详解
- rwx作用到文件
- r代表可读,可以读取,查看
- w代表可写,可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件(linux中一切皆文件,文件夹也是一个文件,删除文件就相当于对文件夹文件进行了修改,所以需要这个权限)
- x代表可执行,可以被执行
- rwx作用到目录
- r代表可读,可以读取,ls查看目录内容
- w代表可写,可以修改,目录内创建+删除+重命名目录
- x代表可执行,可以进入该目录
- rwx作用到文件
c.权限管理
- 修改权限-chmod,可以修改文件或者目录的权限
- 第一种方式:+ - = 变更权限
- u:所有者 g:所有组 o:其他人 a:所有人(u,g,o总和)
- chmod u=rwx,g=rx,o=x 文件目录名
- chmod o+w 文件目录名
- chmod a-x 文件目录名
- 第二种方式:通过数字变更权限
r=4,w=2,x=1 rwx=4+2+1=7 //二进制7 111
chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件目录名
- 修改文件所有者-chown
chown newowner file //改变文件的所有者
chown newowner:newgroup file //改变用户的所有者和所有组
-R 如果是目录,则使其下所有子文件或目录递归生效
- 修改文件所在组-chgrp
chgrp newgroup file 改变文件的所有组
d.权限最佳实践-警察和土匪游戏
- police,bandit
- jack,jerry:警察
- xh,xq:土匪
1.创建组
groupadd police
groupadd bandit
2.创建用户
useradd -g 组名 用户名
设置密码:passwd 用户名
3.jack创建一个文件,自己可以读写,本组人可以读,其他组没人任何权限
jack登录
4.jack修改该文件,让其它组人可以读,本组人可以读写
5.xh投靠警察,看看是否可以读写
xh登录,连jack目录都进不去,权限不够,就算改成police组还是进不去
就算jack给了同组xr权限也还是进不去...耍我?要重新登录
- 课后练习…多练
E.crond任务调度
a.任务调度简介
- 任务调度,是指系统在某个时间执行的特定的命令或程序
- 任务调度分类:1.系统工作:有些重要的工作必须周而复始的执行。如冰毒扫描等 2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
crontab [选项]
- 快速入门,设置任务调度文件:/etc/crontab,设置个人任务调度。执行crontab -e命令。接着输入任务到调度文件
*/1 * * * * ls-l /etc/>/tmp/to.txt
意思说每小时的每分钟执行ls -1 /etc/ > /tmp/to.txt命令
crontab -e
写入
*/1 * * * * ls -l /etc >> /tmp/to.txt //追加到这个文件内,保存 去/tmp/文件下,会生成to.txt
b.任务调度实例
-
每隔1分钟,将当前日期信息,追加到/tmp/mydate文件中
- 编写一个文件,/home/mytask1.sh(shell编程)
date >> /tmp/mydate
- 给mytask1.sh一个可以执行权限,chmod 744 路径
- crontab -e
*/1 * * * * /home/mytask1.sh
- 成功
-
每隔1分钟,将当前日期和日历都追加到/home/mycal文件中
- 编写一个文件,/home/mytask2.sh(shell编程)
date >> /tmp/mycal
cal >> /tmp/mycal
- 给mytask2.sh一个可以执行权限,chmod 744 路径
- crontab -e
*/1 * * * * /home/mytask2.sh
- 成功
-
每天凌晨2点将mysql数据库testdb,备份到文件中
- 编写一个文件 /home/mytask3.sh,
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
- 给mytask3.sh一个可执行权限,
chmod 744 /home/mytask3.sh
- crontab -e
* 2 * * * /home/mytask3.db
- 成功
- 编写一个文件 /home/mytask3.sh,
-
conrtab -r:终止任务调度
-
conrtab -l:列出当前有哪些任务调度
-
service crond restart 重启任务调度
F.Linux磁盘分区,挂载
a.磁盘分区介绍
- 分为两种分区方式
- mbr分区
- 最多支持四个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- MBR最大只支持2TB,但拥有最好的兼容性
- GTP分区
- 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
- 最大支持18EB的大容量(1EB=1024 PB,PB=1024TB)
- windows7 64位以后支持gtp
b.Linux分区
-
Linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
-
Linux采用了一种叫载入的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
-
硬盘说明
- Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
对于IDE硬盘,驱动器标识符为"hdx~",其中"hd"表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例如,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区
- 对于SCSI硬盘则标识为"sdx~",SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样
-
命令很长,不好记,就记成"老师不离开",查看当前系统的分区情况
-
也可以看到分区大小
c.添加一块新硬盘
-
增加一块硬盘,挂载到/home/netdisk上面去
-
虚拟机添加硬盘
- 设置
- 硬盘->添加->选择硬盘->下一步->SCSI->下一步->分配空间->下一步->确定
- 重启
slblk -f
看到了新的硬盘
-
分区
fdisk /dev/sdb
输入m,再输入n,再输入p,编号1(主分区的第一个),默认输1,再回车,再输入w,之后分区分好了,然后看硬盘有个sdb1,但是没格式化
-
格式化
mkfs -t ext4 /dev/sdb1
格式化成ext4格式
-
挂载
- 先创建一个目录
mkdir /home/newdisk
- 挂载
mount /dev/sdb1 /home/newdisk
- 进入newdisk里面看看有lst+found,有就挂载成功了,但是这种挂载有问题,重启后挂载关系就没有了,因为你这是临时挂载
- 先创建一个目录
-
设置可以自动挂载(永久挂载,重启系统,仍然可以挂载到 /home/newdisk)
- 编辑/etc/fstab,记录分区和挂载点的关系
-
保存,执行
mount -a
自动挂载,重启挂载关系还存在… -
断掉挂载命令
umount /dev/sdb1
d.磁盘情况查询
- 查询系统整体磁盘使用情况
df -h
du -h ./目录 //查询指定目录的磁盘占用情况,默认当前目录
-s 指定目录占用大小汇总
-h带计量单位
-a含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
- 查询/opt目录的磁盘占用情况,深度为1
- 统计/home文件夹下文件的个数
ls -l /home//这是显示所有了
ls -l /home | grep "^-" //只显示文件 d是文件夹了
ls -l /home | grep "^-" | wc -l //wc统计
- 统计/home文件夹下目录的个数
ls -l /home | grep "^d" | wc -l //wc统计
- 统计/home文件夹下文件的个数,包括子文件夹里的
R递归
ls -lR /home | grep "^-" | wc -l
- 统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" | wc -l
- 以树状显示目录结构
tree //如果不存在
yum install tree //如果报错,请去配置下yum的源...
- 多说几句,和上面文章说的一样,6版本下已经没东西,所以你如果是centOS6.x版本,修改文件全改成7,并且要执行
- 如果你全改成了7,但是执行过下面那行命令对应的6的源,再去执行yum install xxx 会报一个请检查仓库的公钥 URL 是否配置正确的错误,你执行下这个命令就可以yum install xxx了
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo //标明你用的是7的源
G.网络配置
a.Linux网络配置原理图(含虚拟机)
b.查看网络ip和网关
-
查看虚拟网络编辑器
-
修改ip地址(虚拟网卡)
-
查看网关
-
也可以通过windows环境中的vmnet8网络配置
- ipconfig
- 界面查看
-
ping命令是用来查看是否能够通信
c.linux网络环境配置
-
每次Linux启动不是自动连接网络
-
自动获取:登陆后,通过界面来设置自动获取ip
- linux启动后悔自动获取IP,缺点是每次自动获取的ip地址可能不一样,如果你是一个网站…每次ip地址都不一样嘛?很麻烦,不适用于做服务器,服务器ip需要是固定的
- linux启动后悔自动获取IP,缺点是每次自动获取的ip地址可能不一样,如果你是一个网站…每次ip地址都不一样嘛?很麻烦,不适用于做服务器,服务器ip需要是固定的
-
指定固定ip
- 直接修改配置文件来指定ip,并可以连接到外网(推荐)
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 要求,将ip地址配置的静态的,ip地址为192.168.184.130
-
ping下外网和windows看看通没通
-
service network restart,reboot 重启网络服务或者重启系统生效
H.进程管理(重点)
a.基本介绍
- 在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器
- 每个进程都可能以两种方式存在的,前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
b.显示系统执行的进程
- ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状态,可以不加任何参数
c.ps指令详解
- 比如像看有没有sshd服务,
ps -aux | grep sshd
- 以全格式显示当前所有的进程,查看进程的父进程
ps -ef
是以全格式显示当前所有的进程,-e显示所有进程,-f全格式
d.终止进程kill和killall
- 若某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止进程。使用kill命令来完成此项任务
kill [选项] 进程号 //通过进程号杀死进程
killall 进程名称 //通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
- 常用选项:
-9 //表示强迫进程立即停止
//踢掉某个非法登录用户
ps -aux | grep sshd //查看进程,有哪些人远程登录
kill 进程号 //踢掉
//终止远程登录服务sshd
ps -aux | grep sshd //查看进程中sshd服务的进程号
kill 进程号 //踢掉
//终止多个gedit编辑器(通过进程名杀掉)
killall gedit //踢掉
//强制杀掉一个终端
ps -aux | grep bash //终端名
kill 进程号//忽略了你的kill
kill -9 进程号
也可以kill自己的终端,自杀...
- 两个都是终端
- 查看进程树pstree
pstree [选项],可以更加直观的来看进程信息
-p:显示进程的PID
-u:显示进程的所属用户
//树状的形式显示进程的pid
pstree -p
//树状的形式进程的用户id
pstree -u
e.服务管理
-
服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysql,sshd,防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点
-
service管理指令
service 服务名 [start | stop | status | restart | reload]
centos7.0后,不再使用service,而是systemctl
centos7后,防火墙是firewall
- 查看当前防火墙状态,关闭防火墙和重启防火墙
service iptables status
service iptables stop
service iptables restart
- 通过telnet指令检查linux的某个端口是否在监听,并且可以访问
dos telnet ip 端口
-
关闭或者启用防火墙后,立即生效
-
这种方式只是临时生效,当重启系统后,会回归以前对服务的设置
-
如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令
-
查看服务名
使用setup ->系统服务 就可以看到
/etc/init.d/服务名称
f.服务的运行级别
- chkconfig指令
//通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭
chkconfig --list | grep xxx
chkconfig 服务名 --list //这两个一样的
chkconfig --level 5 服务名 on/off
chkconfig --level 5 sshd off //sshd服务在5这个级别不会启动
- 运用
//显示当前系统所有服务的各个运行级别的运行状态
chkconfig --list
//查看sshd服务的运行状态
service sshd status
//将sshd服务在运行级别5设置为不自动启动
chkconfig --level 5 sshd off
//当运行级别为5时,关闭防火墙
chkconfig --level 5 iptables off
//当所有运行级别下,关闭防火墙
chkconfig iptables off
//当所有运行级别下,开启防火墙
chkconfig iptables on
- 设置好需要重启才能生效
g.监控服务
- 动态监控进程
- top与ps命令很相似,它们都用来显示正在执行的进程,top与ps最大不同之处,在于top在执行一段时间可以更新正在运行的进程
top [选项]
- 监视特定用户
- top:输入此命令,按回车键,查看执行的进程
- u:然后输入"u"回车,再输入用户名,即可
- 终止指定的进程
- top:输入此命令,按回车键,查看执行的进程
- k:然后输入"k"回车,再输入要结束的进程ID号
- 指定系统状态更新的时间(每隔10s自动更新,默认是3s)
- top -d 10
- 查看系统网络情况
netstat [选项]
-an 按一定顺序排列输出
-p 显示那个进程在调用
- 查看服务名为sshd的服务的信息
netstat -anp | grep sshd