30no2's Blog.

linux学习--实操2.0

字数统计: 4.1k阅读时长: 16 min
2019/07/29 Share

1、crond任务调度

1.1 概述:

1.1.1任务调度:是指系统在某个时间执行的特定的命令或者程序。
  • 任务调度分类:
    1. 系统工作:一些系统的工作必须周而复始的执行。如病毒扫描。
    2. 个别用户的工作:个别用户可能希望执行某些程序,比如对mysql的数据库备份等。
    

1.2 基本语法

crontab [选项]

1.3 常用选项

  • -e:编辑crontab定时任务
  • -l:查询crontab定时任务
  • -r:删除当前用户所有的crontab定时任务

1.4 快速入门案例

  • 设置任务调度文件 /etc/crontab,设置个人任务调度。执行crontab -e命令。
    接着输入任务到调度文件如: /1 * ls -l /etc/>>/tmp/to.txt命令
    1
    2
    crontab -e //开启任务编辑器
    */1 * * * * ls -l /etc/>>/tmp/to.txt命令

1.5 说明

  • 如果是简单的任务,可以不用写脚本,直接在crontab中加入任务即可
  • 对于比较复杂的任务需要写脚本来完成(shell编程)

1.6 参数说明

1.6.1 *的说明
项目 含义 范围
第一个“*” 一小时当中的第几分钟 0-59
第二个“*” 一天当中的第几小时 0-23
第三个“*” 一个月当中的第几天 1-31
第四个“*” 一年当中的第几个月 1-12
第五个“*” 一周当中的星期几 0-7
0和7都是表示星期天
1.6.2 特殊符号说明
特殊符号 含义
* 代表任何时间。比如第一个*就是每分钟执行一次
, 代表不连续时间。比如0 8,12,16 * 命令
表示每天8点0分12点0分16点0分都执行一次
- 代表连续时间。比如0 5 1-6 命令
表示每周一到周五5点0分都执行一次
*/n 代表每隔多久执行一次。比如/10 * 命令
表示每间隔10分钟都执行一次
1.6.3 案例说明
时间 含义
45 22 * 命令 每天22点45执行一次命令
0 2 1 命令 每周一的2点0分执行一次命令
0 2 1,15 命令 每月1到15号的2点0分执行一次命令
40 2 1-5 命令 每周一到周五的2点40分执行一次命令
/10 4 命令 每天4点,每间隔10分钟执行一次命令
到5点就不执行了
0 0 1,15 * 1 命令 每月的1号15号0点0分执行一次命令,每周一的0点0分执行一次命令。都会执行。
注意:星期几和几号最好不要同时出现,因为他们都是天。非常容易让管理员混淆

1.7 任务调度的几个应用实例

1.7.1 案例一:每隔1分钟,将当前的日期信息追加到/home/date.txt文件中
1
2
3
4
5
6
7
8
9
//1.编写一个文件,并写入代码
touch mytash1.sh
vim mytash1.sh
date>>/home/date.txt
//2.给mytash1.sh一个权限
chmod 744 mytash1.sh
//3.crontab -e
//4.*/1 * * * * /home/mytash1.sh
//5.成功
1.7.2 案例二:每间隔一分钟,将当前日期和日历都追加到/home/date.txt文件中
1
2
3
4
//修改mytash1.sh
vim mytash1.sh
date>>/home/date.txt
cal>>/home/date.txt
1.7.3 案例三:每天凌晨2:00将mysql数据库testdb,备份到文件中mydb.bak
1
2
3
4
5
6
7
8
9
//1.编写一个文件,并写入代码
touch mytash2.sh
vim mytash1.sh
/usr/local/mysql/bin/mysqldump -u root -proot testbd > /tmp/mydb.bak
//2.给mytash2.sh一个权限
chmod 744 mytash2.sh
//3.crontab -e
//4.0 2 * * * /home/mytash2.sh
//5.成功

1.8 crond 相关指令

  • 1)crontab -r:终止任务调度。(删除)
  • 2)crontab -l:列出当前用户的任务调度
  • 3)service crond restart [重启任务调度]

2、linux 磁盘分区和挂载

2.1 分区基本概念

2.1.1 mbr分区
  • 最多支持4个主分区
  • 系统只能安装到主分区
  • 扩展分区要占一个主分区
  • MBR最大只支持2TB,但是拥有最好的兼容性
2.1.2 gpt分区
  • 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
  • 最大支持18EB的大容量(1EB=1024PB ,1PB=1024TB)
  • windows7 64位以后支持gtp

2.2 linux 分区

2.2.1 原理介绍
  • linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个du’li且唯一的文件结构,Linux中每一个分区都是用来组成整个文件系统的一部分
  • Linux 采用了一种载入的方式,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
  • linux硬盘通过mount(挂载)umount(卸载)操作和linux文件系统联系起来
2.2.2 硬盘分区
  • linux硬盘分ide硬盘和scsl硬盘,目前基本上是scsl硬盘,scsl的性能更好。
  • 对于ide硬盘,驱动器标识符为“hdx”,其中“hd”表明分区所在设备类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,他们是主分区或扩展分区,从5开始就是逻辑分区,例如hda3表示第一个ide磁盘上的第三个主分区或者扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
  • 对于SCSL硬盘则标识为“sdx”,SCSL硬盘是用“sd”来表示分区所在的设备类型的,其余则和IDE硬盘的表示方法一样。
2.2.3 指令(查看系统分区和挂载的情况)
1
2
lsblk -f 
lsblk

2.3 挂在的经典案例

2.3.1 需求是给我们的Linux系统增加一个新的硬盘
  • 虚拟机添加硬盘
  • 分区

    • 代码:fdisk /dev/sdb
    • 开始对/sdb分区
      1. m显示命令列表
      2. p显示磁盘分区 同fdisk -l
      3. n新增分区
      4. d删除分区
      5. w写入并退出
    • 说明:
      开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存则退出输入q
  • 格式化

    • 代码:mkfs -t ext4 /dev/sdb1
    • ext4是分区类型
  • 挂载

    • 先创建一个目录
      mkdir /home/newdisk
    • 挂载
      mount 设备名称 挂在目录
      mount /dev/sdb1 /home/newdisk
  • 设置可以自动挂载(永久挂载,即重启后仍然可以自动挂载)
    vim /etc/fstab
    /dev/sdb1 home/newdisk ext4 defaults 0 0

  • 卸载

    • umount 设备名称或者挂载目录
    • 例如:umount /dev/sdb1 或者umount /newdiskT

3、磁盘使用情况

3.1 指令:查询磁盘整体的使用情况

df

1
df -lh

3.2 查询指定目录的磁盘占用情况

3.2.1 基本语法:
du -h /目录
3.2.2 查询指定目录的磁盘占用情况,默认为当前目录
  • -s:指定目录占用大小汇总
  • -h:带计量单位
  • -a:含文件
  • –max-depth=1 子目录深度
  • -c 列出明细的同时,增加汇总量
3.2.3 应用实例

查询 /home目录的磁盘占用情况,深度为1

1
du -ach --max-depth=1 /home

3.3 工作中常用指令

3.3.1 统计/home文件夹下文件的个数
1
ls -l /home | grep "^-" |wc -l
3.3.2 统计/home文件夹下目录的个数
1
ls -l /home | grep "^d"|wc -l
3.3.3 统计/home文件夹下文件的个数,包括子文件夹里面的
1
ls -lR /home | grep "^-" |wc -l
3.3.4 统计/home文件夹下目录的个数,包括子目录的
1
ls -lR /home |grep "^d"|wc -l
3.3.5 以树状显示/home目录
默认显示当前目录
1
2
yum install tree
tree /home

4、网络配置

4.1 网络配置原理图

image.jpg

4.2 虚拟网络

4.2.1 查看虚拟网络编辑器

p1.jpg

4.2.2 查看网关

p2.jpg

4.2.3 查看设置window下的vmnet8的网络配置

p3.jpg

4.2.4 设置好后ping测试

4.3 linux 网络的环境配置

4.3.1 第一种方式 自动获取
缺点,每次获取的ip不一样
4.3.2 第二种方式 指定固定ip地址
1) 说明:直接修改配置文件来指定ip地址,并连接到外网,编辑
1
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="774b3c34-0110-46e3-b78d-0d3b644ddd6b"
DEVICE="ens33"
ONBOOT="yes"
IPV6_PRIVACY="no"
DNS1=114.114.114.114
IPADDR=192.168.72.2
NETMASK=255.255.255.0
GATEWAY=192.168.72.1
2) 修改完后重启服务
1
service network restart

5、进程管理

5.1 基本介绍

  • 在linux中,每个执行的程序(代码)就是一个进程,每一个进程都分配一个id号。
  • 每一个进程都对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器
  • 每个进程都可以以两种方式存在,前台和后台,所谓的前台就是用户在自己的屏幕上可以进行操作的,后台进程则是实际在操作,但是屏幕上面无法看到的,通常使用后台方式执行。
  • 一般系统的进程都是以后台方式存在的,而且会常驻系统中,关机才会结束。

5.2 常用操作

5.2.1 显示系统中执行的指令
  • ps
  • ps显示的字段信息
字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消耗的cpu时间
CMD 正在执行的命令或者进程名
5.2.2 常用参数
  • ps -a:显示当前终端的所有进程信息
  • ps -u:以用户的格式显示进程信息
  • ps -x:显示后台进程运行的参数
  • ps -aux
    5.2.3 指令详解

p4.jpg

5.2.4 实例
  • 查看系统中有没有sshd进程

    1
    ps -aux | grep sshd
  • 查看进程的父进程

    1
    ps -ef | more
  1. -e显示所有进程
  2. -f全格式
  • 查看sshd父进程
    1
    ps -ef | grep sshd

5.3 终止进程 kill 或者 killall

5.3.1 介绍:

如果进程执行一半需要停止时,或者已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项目。

5.3.2 基本语法:
  • kill [选项] 进程号 (功能描述:通过进程号杀死进程)
  • killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载较大时而变慢时很有用)
    5.3.3 常用语法:
  • -9:表示强迫进程立即停止
    5.3.4 案例
  • 踢掉某个非法用户
  • 查看当前用户

    1
    ps -aux |grep sshd
    • 根据进程号杀死用户

      1
      kill 7192
    • 终止远程登陆服务sshd 在适当的时候再次重启sshd服务

    • kill掉sshd的进程号
    • 终止多个gedit编辑器

      1
      killall gedit
    • 强制杀掉一个终端

      1
      kill -9 4090

5.4查看进程树

  • 常用参数
    • -p:显示进程的pid
    • -u:显示进程的所属用户
      1
      2
      pstree -p
      pstree -u

6、服务管理

6.1 介绍

服务的本质就是进程,但是运行在后台,通常会监听某个端口,等待其他的请求,比如(mysql,sshd,防火墙等),因此我们又称为守护进程,是linux非常重要的知识点。

6.2 service管理指令

  • service 服务名 start|stop|restart|reload|status|
    在CentOS 7.0后,不再使用service,而是用systemctl
    q1.jpg

6.3 使用案例

  • 1)查看当前防火墙的状态,关闭防火墙,重启防火墙

    1
    2
    3
    systemctl status firewalld.service
    systemctl start firewalld
    systemctl stop firewalld
- 补充:锁定防火墙

1
2
3
4
5
//解除锁定
systemctl unmask firewalld
Removed symlink /etc/systemd/system/firewalld.service.
//锁定防火墙
systemctl mask firewalld
  • 2)查看当前启动的服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
          ls -l /etc/init.d/
    ```

    #### 6.4 运行级别

    ![q2.jpg](https://i.postimg.cc/HLNB1xw5/q2.jpg)

    #### 6.5 chkconfig指令
    - 介绍
    通过chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
    - 基本语法
    - 1)查看服务 chkconfig --list|gerp xxx
    - 2)chkconfig 服务名 --list
    ```markdown
    //constOS7指令
    systemctl list-unit-files |grep sshd
    • 3)修改sshd在运行级别5的时候不自启动
      1
      chkconfig --level 5 ssdh off

6.6 监控网络状态

6.6.1 查看网络状态
  • 基本语法
    netstat [选项]
  • 选项说明
    • -an 按一定顺序排列输出
    • -p 显示哪个进程在调用
  • 应用案例
    • 查看服务名为sshd的服务信息
      1
      netstat -p | grep sshd
6.6.2 动态监控进程
  • 介绍
    top与ps相似,它们都是用来显示正在执行的进程。Top与ps最大的不同之处就是,top在执行中可以更新正在运行的进程
  • 基本语法
    top [选项]
  • 选项说明

    |选项|说明|
    |—|—|
    |-d 秒数|指定top命令每隔几秒更新,默认是3秒更新|
    |-i|使top不显示任何闲置或者僵尸进程|
    |-p|通过指定监控进程id来仅仅监控某个进程的状态|

  • 交互操作

    |操作|功能|
    |—|—|
    |p|已cpu使用率排序,默认就是此项|
    |m|已内存使用率排序|
    |n|已pid排序|
    |q|退出top|

  • 应用实例

    • 监视特定的用户

      1
      2
      top
      输入u回车后再输入指定的用户名
    • 终止指定的进程

      1
      2
      3
      top
      输入k后回车再输入指定的id号
      sigterm
    • 指定系统的更新时间(默认是3秒刷新一次)

      1
      top -d 10

6.7 监控网络状态

6.7.1 查看系统网络情况
  • 基本语法
    netstat [选项]
  • 选项说明
    • -an:按一定顺序排列输出
    • -p:显示哪个进程在调用
  • 应用案例
    • 查看所有的网络服务
      1
      netstat -anp | more

7、linux RPM与YUM

7.1 rpm包的管理

  • 介绍
    一种互联网下载包的打包工具和下载工具它包含在某些linux分发版中。它生成具有RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似windows的setup.exe 这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
  • rpm包的简单查询指令

    1
    rpm -qa | grep XX
  • rpm包基本格式的讲解

    • 一个rpm包名:firefox-45.0.1-1.el6.centos.x86-64.rpm
      • 名称:firefox
      • 版本号:45.0.1-1
      • 适用操作系统:el6.centos.x86-64
      • 表示centos6.x的64位系统
      • 如果是i686、i386表示32位系统,noarch表示通用
  • rpm包的其它查询指令

    • rpm -qa 查询所有安装的rpm包

      • 1)rpm -qa | more
      • 2)rpm -qa | grep XX (rpm-qa | grep sudo)
    • rpm -q XX 查询软件包是否安装

      • 1)rpm -q sudo
    • rpm -qi XX 查询软件包信息

      • 1)rpm -qi sudo
    • rpm -ql XX 查询软件包中的文件

      • 1)rpm -ql sudo
    • rpm -qf XX 文件全路径名 查询文件所属的软件包

      • 1) rpm -qf /var/db/sudo
  • 卸载rpm包

    • 基本语法
      rpm -e RPM包的名称
    • 应用案例
      • 1)删除firefox 软件包
        • 细节:
          (1)如果其他软件包依赖于您要预载的软件包,预载时则会产生错误信息
          (2)强制删除foo这个包则增加参数–nodeps,但是一般不这么做,防止依赖的包不能使用
          1
          rpm -r --nodeps foo
  • 安装rpm包

    • 基本语法
      rpm -ivh RPM包的名称
    • 参数说明
      • 1)i=install 安装
      • 2)v=verbose 提示
      • 3)h=hash 进度条
    • 案例
      • 1)安装firefox
        1
        2
        1.先找到firefox的rpm安装包
        rpm -ivm firefox-45.0.1.el6.centos.x86-64.rpm

7.2 yum

  • 介绍
    yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包,并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

  • yum的基本指令

    • 查询yum的服务器是否有安装的软件

      1
      yum list|grep xx(软件列表)
    • 安装指定的yum包

      1
      2
      3
      4
      5
      6
              yum install xxx(下载安装)
      ```
      - yum应用实例
      - 使用yum安装firefox
      ```markdown
      yum install firefox

8 Linux之JavaEE定制篇 搭建开发环境

8.1 概述

CATALOG
  1. 1. 1、crond任务调度
    1. 1.1. 1.1 概述:
      1. 1.1.1. 1.1.1任务调度:是指系统在某个时间执行的特定的命令或者程序。
    2. 1.2. 1.2 基本语法
    3. 1.3. 1.3 常用选项
    4. 1.4. 1.4 快速入门案例
    5. 1.5. 1.5 说明
    6. 1.6. 1.6 参数说明
      1. 1.6.1. 1.6.1 *的说明
      2. 1.6.2. 1.6.2 特殊符号说明
      3. 1.6.3. 1.6.3 案例说明
    7. 1.7. 1.7 任务调度的几个应用实例
      1. 1.7.1. 1.7.1 案例一:每隔1分钟,将当前的日期信息追加到/home/date.txt文件中
      2. 1.7.2. 1.7.2 案例二:每间隔一分钟,将当前日期和日历都追加到/home/date.txt文件中
      3. 1.7.3. 1.7.3 案例三:每天凌晨2:00将mysql数据库testdb,备份到文件中mydb.bak
    8. 1.8. 1.8 crond 相关指令
  2. 2. 2、linux 磁盘分区和挂载
    1. 2.1. 2.1 分区基本概念
      1. 2.1.1. 2.1.1 mbr分区
      2. 2.1.2. 2.1.2 gpt分区
    2. 2.2. 2.2 linux 分区
      1. 2.2.1. 2.2.1 原理介绍
      2. 2.2.2. 2.2.2 硬盘分区
      3. 2.2.3. 2.2.3 指令(查看系统分区和挂载的情况)
    3. 2.3. 2.3 挂在的经典案例
      1. 2.3.1. 2.3.1 需求是给我们的Linux系统增加一个新的硬盘
  3. 3. 3、磁盘使用情况
    1. 3.1. 3.1 指令:查询磁盘整体的使用情况
    2. 3.2. 3.2 查询指定目录的磁盘占用情况
      1. 3.2.1. 3.2.1 基本语法:
      2. 3.2.2. 3.2.2 查询指定目录的磁盘占用情况,默认为当前目录
      3. 3.2.3. 3.2.3 应用实例
    3. 3.3. 3.3 工作中常用指令
      1. 3.3.1. 3.3.1 统计/home文件夹下文件的个数
      2. 3.3.2. 3.3.2 统计/home文件夹下目录的个数
      3. 3.3.3. 3.3.3 统计/home文件夹下文件的个数,包括子文件夹里面的
      4. 3.3.4. 3.3.4 统计/home文件夹下目录的个数,包括子目录的
      5. 3.3.5. 3.3.5 以树状显示/home目录
  4. 4. 4、网络配置
    1. 4.1. 4.1 网络配置原理图
    2. 4.2. 4.2 虚拟网络
      1. 4.2.1. 4.2.1 查看虚拟网络编辑器
      2. 4.2.2. 4.2.2 查看网关
      3. 4.2.3. 4.2.3 查看设置window下的vmnet8的网络配置
      4. 4.2.4. 4.2.4 设置好后ping测试
    3. 4.3. 4.3 linux 网络的环境配置
      1. 4.3.1. 4.3.1 第一种方式 自动获取
      2. 4.3.2. 4.3.2 第二种方式 指定固定ip地址
        1. 4.3.2.1. 1) 说明:直接修改配置文件来指定ip地址,并连接到外网,编辑
        2. 4.3.2.2. 2) 修改完后重启服务
  5. 5. 5、进程管理
    1. 5.1. 5.1 基本介绍
    2. 5.2. 5.2 常用操作
      1. 5.2.1. 5.2.1 显示系统中执行的指令
        1. 5.2.1.1. 5.2.2 常用参数
        2. 5.2.1.2. 5.2.3 指令详解
        3. 5.2.1.3. 5.2.4 实例
    3. 5.3. 5.3 终止进程 kill 或者 killall
      1. 5.3.1. 5.3.1 介绍:
      2. 5.3.2. 5.3.2 基本语法:
      3. 5.3.3. 5.3.3 常用语法:
      4. 5.3.4. 5.3.4 案例
    4. 5.4. 5.4查看进程树
  6. 6. 6、服务管理
    1. 6.1. 6.1 介绍
    2. 6.2. 6.2 service管理指令
    3. 6.3. 6.3 使用案例
    4. 6.4. 6.6 监控网络状态
      1. 6.4.1. 6.6.1 查看网络状态
      2. 6.4.2. 6.6.2 动态监控进程
    5. 6.5. 6.7 监控网络状态
      1. 6.5.1. 6.7.1 查看系统网络情况
  7. 7. 7、linux RPM与YUM
    1. 7.1. 7.1 rpm包的管理
    2. 7.2. 7.2 yum
  8. 8. 8 Linux之JavaEE定制篇 搭建开发环境
    1. 8.1. 8.1 概述