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不存在,会自动创建
- 将/home下的所有文件进行压缩成mypackage.zip
- 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
- ls -l中显示内容如下
-
rwx权限
- rwx作用到文件
- r代表可读:可以读取,查看
- w代表可写:可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
- x代表可执行:可以被执行
- rwx作用到目录
- r代表可读:可以读取,ls查看目录内容
- w代表可写:可以修改,目录内创建+删除+重命名目录
- x代表可执行:可以进入该目录
- rwx作用到文件
-
修改权限-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权限
- chmod u=rwx,g=rx,o=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.进程管理
-
- 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
-
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器
-
- 每个进程都可能以两种方式存在的。前台 与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd , crond]。
-
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
- 显示系统执行的进程
- 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
- 用树状的形式显示进程的pid
- 服务管理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