• 这里我们选择用虚拟机
  • 系统环境为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代表可执行,可以进入该目录
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
    • 成功
  • 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的源...

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/repo/Centos-7.repo //标明你用的是7的源

G.网络配置

a.Linux网络配置原理图(含虚拟机)

b.查看网络ip和网关
  • 查看虚拟网络编辑器

  • 修改ip地址(虚拟网卡)

  • 查看网关

  • 也可以通过windows环境中的vmnet8网络配置

    • ipconfig
    • 界面查看
  • ping命令是用来查看是否能够通信

c.linux网络环境配置
  • 每次Linux启动不是自动连接网络

  • 自动获取:登陆后,通过界面来设置自动获取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

更多推荐

运维菜鸟记-Linux入门(一)