Linux

Linux

1.CentOS网络配置三种方式的理解

  • 桥接模式
    • 大家都在同一个网段,相互可以通讯
    • 因为IP地址有限,可能造成ip冲突
  • Nat(网络地址转换模式)
    • 虚拟机不占用其他的ip所以不会ip冲突
    • 内网的其他人不能和虚拟机通讯
  • 主机模式
    • 单独的一台电脑

2.在linux世界里,一切皆文件(即使是一个硬件设备,也是使用文本来标志)

3.Vi和Vim编辑器

  • Vim具有程序编辑的能力,可以看Vi的增强版本,可以主动以字体颜色辨别语法的正确性,方便程序设计.代码补充,编译即错误跳转等方便编程的功能特别丰富
  • 快捷键
    • 拷贝当前行 yy
    • 拷贝当前行向下的5行 5yy
    • 粘贴 p
    • 删除当前行 dd, 删除当前行向下的5行 5dd
    • 在文件中查找某个单词
      • 命令模式下 /关键字,回车查找,输入n就是查找下一个
    • 设置文件的行号,取消文件的行号
      • 命令行下 :set nu和 :set nonu
    • 编辑/etc/profile文件,使用快捷键到文档的最末行 G 和最首行 gg
    • 在一个文件中输入"hello",然后又撤销这个动作 u

4.一些指令

  • ln
    • 软链接也称为符号链接,类似于windows里的快捷键,主要存放了链接其他文件的路径
    • 语法
      • ln -s 原文件或目录 软链接名 给原文件创建一个软链接
      • ln -s /root linkToRoot
  • history
    • 查看已经执行过的历史命令,也可以执行历史命令
  • date指令
    • 显示当前日期
    • date
      • 显示当前时间
    • date +%Y
      • 显示当前年份
    • date +%m
      • 显示当前月份
    • date +%d
      • 显示当前是哪一天
    • date “+%Y-%m-%d %H:%M:%S”
      • 显示年月日,时分秒
  • find指令
    • 将从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端
    • find 搜索范围 选项
      • -name:查询方式 按照指定文件名查找模式查找文件,可以使用通配符*?
      • -user:用户名 查找属于指定用户名所有文件
      • -size:文件大小 按照指定的文件大小查找文件
    • 按文件名:根据名称查找/home 目录下的hello.txt文件
      • find /home -name hello.txt
    • 按拥有者:查找/opt目录下,用户名称为nobody的文件
      • find /opt -user nobody
    • 查找整个linux系统下大于10M的文件 +n大于 -n小于 n等于
      • find / -size +10M
  • gzip/gunzip
    • 只能将文件压缩为*.gz文件,或者解压此类文件
  • zip/unzip
    • 将/home下的所有文件进行压缩成mypackage.zip
      • zip -r mypackage.zip /home/
    • 将mypackage.zip解压到/opt/tmp目录下
      • unzip -d /opt/tmp mypackage.zip 如果/opt/tmp不存在,会自动创建
  • tar
    • 打包指令,最后打包后的文件时.tar.gz的文件
    • 可以压缩,也可以解压
    • 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成  a.tar.gz
      • tar -zcvf a.tar.gz a1.txt a2.txt
    • 将/home的文件夹压缩成myhome.tar.gz
      • tar -zcvf myhome.tar.gz /home/
    • 将a.tar.gz解压到当前目录
      • tar -zxvf a.tar.gz
    • 将myhome.tar.gz解压到/opt/tmp2目录下
      • tar zxvf myhome.tar.gz -C /opt/tmp2
      • /opt/tmp2事先需要创建好

5.组管理和权限管理

  • 在linux中的每个用户必须属于一个组,不能独立于组外,在linux中每个文件,有所有者,所在组,其他组的概念.

  • 一般文件的创建者,谁创建了该文件,就自然成为了该文件的所有者

  • 查看文件的所有者

    • ls -ahl
    • # 创建一个组police,再创建一个用户tom,将tom放在police组,然后使用tom来创建一个文件ok.txt
      groupadd police
      useradd -g police tom
      passwd tom
      ls -ahl
      
  • 修改文件的所有者

  • chown 用户名 文件名

  • 修改文件所在的组

    • chgrp 组名 文件名
  • 改变用户所在组

    • usermod -g 组名 用户名
    • usermod -d 目录名 用户名 改变该用户登录的初始目录
  • 权限介绍

    • ls -l中显示内容如下
      • -rwxrw-r-- 1 root police 1213 Feb 2 09:39 abc.txt
      • 第0位确定文件类型
        • -:普通文件
        • d:目录
        • l:连接文件
        • c:字符设备文件(键盘,鼠标)
        • b:块设备文件(硬盘)
      • 第1-3位确定所有者拥有该文件的权限
        • R:读
        • W:写
        • x:执行
      • 第4-6位确定所属组拥有该文件的权限
      • 第7-9位确定其他用户拥有该文件的权限
      • 1:如果是文件,表示硬链接的数目,如果是目录,表示有多少个子目录
      • 1213:表示文件大小,如果是目录,则统一为4096
  • rwx权限

    • rwx作用到文件
      • r代表可读:可以读取,查看
      • w代表可写:可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
      • x代表可执行:可以被执行
    • rwx作用到目录
      • r代表可读:可以读取,ls查看目录内容
      • w代表可写:可以修改,目录内创建+删除+重命名目录
      • x代表可执行:可以进入该目录
  • 修改权限-chmod

    • +,-,=变更权限
      • u:所有者
      • g:所有组
      • o:其他人
      • a:所有人(u,g,o的总和)
    • 举例
      • chmod u=rwx,g=rx,o=x 文件,目录
        • 表示给所有者rwx,给所在组的用户rx,给其他人x
      • chmod o+w 文件,目录
        • 给其他用户增加w的权限
      • chmod a-x 文件,目录
        • 给所有用户去掉x权限
    • 通过数字变更权限
      • r=4,w=2,x=1
    • chmod u=rwx,g=rx,o=x 文件,目录 等价于chmod 751 文件,目录
  • 修改文件的所有者

  • chown newowner file 修改文件的所有者

  • chown newowner:newgroup file 改变文件的所有者和所有组

  • -R 如果是目录,则使其下所有子文件或目录递归生效

  • 修改文件所在组

    • chgrp newgroup file 改变文件的所有组

6.定时任务调度

  • 每隔一分钟,就将当前的日期信息,追加到/tmp/mydate.log文件中

    • */1 * * * * date>>/tmp/mydate.log
      
  • 每隔一分钟,将当前日期和日历都追加到/home/mycal.log文件中

  • */1 * * * * date>>/home/mycal.log
    */1 * * * * cal>>/home/mycal.log
    
  • 每天凌晨2:00将mysql数据库testdb,备份到文件中

  • #!/bin/bash
    #备份路径
    BACKUP=/data/backup/sql/dy
    #当前时间
    DATETIME=$(date +%Y-%m-%d_%H%M%S)
    echo "===备份开始==="
    echo "备份文件存放于${BACKUP}/$DATETIME.tar.gz"
    #数据库地址
    HOST=localhost
    #数据库用户名
    DB_USER=root
    #数据库密码
    DB_PW=Ces123456
    #创建备份目录
    [ ! -d "${BACKUP}/$DATETIME" ]&&mkdir -p "${BACKUP}/$DATETIME"
    
    #后台系统数据库
    DATABASE=dy_backgroundms
    mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE |gzip >${BACKUP}/$DATETIME/$DATABASE.sql.gz
    
    #投入监管数据库
    DATABASE=dy_firip
    mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql.gz
    
    #压缩成tar.gz包
    cd $BACKUP
    tar -zcvf $DATETIME.tar.gz $DATETIME
    #删除备份目录
    rm -rf ${BACKUP}/$DATETIME
    
    #删除30天前备份的数据
    find $BACKUP -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
    echo "===备份成功==="
    
  • chmod u+x backupdb.sh

  • crontab -e

    • * 2 * * * /home/backupdb.sh
      

7.磁盘相关

  • df -h:查询系统整体磁盘使用情况

  • du -h /目录:查询指定目录的磁盘占用情况,默认为当前目录

    • -s:指定目录占用大小汇总
    • -h:带计量单位
    • -a:含文件
    • –max-depth=1 子目录深度
    • -c 列出明细的同时,增加汇总值
  • 查询/usr目录的磁盘占用情况,深度为1

    • du -ach --max-depth=1 /usr
  • 磁盘情况
    1.统计/home文件夹下文件的个数
    ls -l /home/|grep “^-” |wc -l
    2.统计/home文件夹下目录的个数
    ls -l /home/|grep “^d” |wc -l
    3.统计/home文件夹下文件的个数,包括子文件夹里的
    ls -lR /home/|grep “^-” |wc -l
    4.统计/home文件夹下目录的个数,包括子文件夹里的
    ls -lR /home/|grep “^d” |wc -l

    以树状显示home目录结构
    先安装
    yum install tree
    

8.进程管理

    1. 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
    1. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器
    1. 每个进程都可能以两种方式存在的。前台 与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd , crond]。
    1. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
  • 显示系统执行的进程
    • ps -aux:显示所有的进程
    • ps -aux|grep sshd:查看sshd进程
  • ps指令
    • ps -aux|grep xxx
    • 指令说明
      • System V展示风格
      • USER:用户名称
      • PID:进程号
      • %CPU:进程占用CPU的百分比
      • %MEM:进程占用物理内存的百分比
      • VSZ:进程占用的虚拟内存大小(单位:KB)
      • RSS:进程占用的物理内存大小(单位:KB)
      • TTY:终端名称,缩写
      • STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
      • STARTED:进程的启动时间
      • TIME:CPU时间,即进程使用CPU的总时间
      • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
  • 终止进程kill和killall
    • kill -9 对应的bash进程号
    • 终止多个gedit编辑器
      • killall gedit
  • 查看进程树pstree
    • 用树状的形式显示进程的pid
      • pstree -p
    • 用树状形式显示用户的id
      • pstree -u
      • pstree -pu
  • 服务管理service
    • service  服务名 [start | stop | restart | reload | status]
    • 在CentOS7.0后 不再使用service ,而是 systemctl
  • chkconfig指令
    • 通过chkconfig可以给每个服务的各个运行级别设置自启动/关闭
    • 显示当前系统所有服务的各个运行级别的运行状态
      • chkconfig --list
    • 查看sshd服务的运行状态
      • chkconfig sshd --list或者chkconfig --list|grep sshd
    • 将sshd服务在运行级别5以下设置不自动启动
      • chkconfig -level 5 sshd off
    • 当运行级别为5时,关闭防火墙
      • chkconfig -level 5 iptables off
    • 在所有运行级别下,关闭/开启防火墙
      • chkconfig iptables off/on
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值