压缩和解压缩指令
gzip/gunzip
gzip 用于压缩文件 gunzip 用于解压缩
gzip 文件名
gunzip 文件名
压缩或解压缩后不会保留原文件
zip/unzip
zip 用于压缩文件 unzip用于解压
zip [选项]***.zip 将要压缩的内容
unzip [选项]***.zip
zip常用选项
-r 递归压缩,即压缩目录
unzip常用选项
-d<目录> 指定解压后文件存放的目录
zip -r mypackage.zip /home/
unzip -d /opt/tmp/ mypackage.zip
tar 打包指令 文件后缀是.tar.gz
tar [选项] ***.tar.gz 打包的内容
选项说明
-c 产生tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
tar -zcvf a.tar.gz a1.txt a2.txt
tar -zcvf myhome.tar.gz /home/
tar -zxvf a.tar.gz
tar -zxvf myhome.tar.gz -C /opt/ 指定解压到的目录事先要存在
Linux组管理和权限管理(重点、难点)
默认情况,用户创建一个文件后,这个文件所在组就是该用户所在的组
Linux组的基本介绍
文件:所有者、所在组、其他组
文件、目录 所有者
查看文件所有者
ls -ahl
修改文件所有者
chown 用户名 文件名
组的创建
groupadd 组名
gropuadd monster
useradd -g monster fox
修改文件所在组
chgrp 组名 文件名
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组
usermod -g 组名 用户名
权限管理
权限的基本介绍
略
详解rwx权限
rwx作用在文件上
r 读 w 写 x 可执行
rwx作用在目录上
r 读 w 可以修改 创建删除重命名 x 可进入该目录
修改权限 chmod 可以修改文件或者目录的权限
第一种方式 + - =
u 所有者 g 所在组 o 其他人
chomd u=rwx,g=rx.o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
第二种方式
r=4 w=2 x=1
chmod 751 文件名
修改文件所有者 chown
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录 则使其下所有子文件或目录递归生效
改变文件所在组 chgrp
chgrp newgroup file
chgrp bandit/home/abc.txt
chgrp -R bandit/home/kkk
课后练习
建立两个组(神仙和妖怪)
建立四个用户(唐僧、悟空、八戒、沙僧)
设置密码
把悟空、八戒放入妖怪 唐僧、沙僧放在神仙
用悟空建立一个文件(monkey.c 该文件输出 I am monkey)
给八戒一个可以rw的权限
八戒修改monkey.c加入一句话 I am pig
唐僧、沙僧对该文件没有权限
把沙僧放入妖怪组
让沙僧 修改 该文件 monkey.c 加入一句话 我是沙僧,我是妖怪
用root登录,创建用户mycentos,自己设定密码
用mycentos登录,在主目录下建立目录test/t11/t1
在t1中建立一个文本文件aa,用vi编辑其内容为 ls -al
改变aa的权限为可执行文件[可以将当前日期追加到一个文件],运行该文件./aa
删除新建立的目录test/t11/t1
删除用户mycentos及其主目录中的内容
将linux设置成进入到图形界面
重新启动或者关机
cront 任务调度
任务调度是指系统在某个时间执行特定的命令或程序
任务调度分类:1.系统工作:有些系统工作必须周而复始的执行 比如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序 比如对mysql数据库备份
如果是简单的任务,可以不用写脚本,直接在crontab中编辑即可
基本语法
crontab [选项]
crontab -e 插入任务调度
crontab -r 终止任务调度
crontab -l 列出当前有哪些任务调度
service crond restart 重启任务调度
*/ 1 * * * * ls -l/etc >>/tmp/to.txt
五个占位符 0-59 分钟 ;0-23 小时 ;1-31 天数 ;1-12 月份 ;0-7 周几
* 代表任何时间
0 8,12,16 * * * 逗号表示不连续的时间
0 8 * * 1-6 横表示连续的时间范围
*/10 * * * * 斜杠代表每隔多久执行一次
编写一个文件 /home/mytask1.sh
date >> /home/mydate
chmod 744 mytask1.sh # 给可执行权限
*/1 * * * * /home/mytask1.sh
每天凌晨两点将mysql数据库testdb备份到文件mydb.bak中
1.编写文件 /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -p 123456 testdb >> /tmp/mydb.bak
2.给mytask3.sh一个可以执行权限
chmod 744 /home/mytask3.sh
3.crontab -e
4. 0 2 * * * /home/mytask3.sh
磁盘分区、挂载
lsblk -f 查看系统分区和挂载情况
需求 给linux增加一块新的硬盘,并挂载到/home/newdisk
1.虚拟机添加硬盘
2.分区 fdisk /dev/sdb
3.格式化 mkfs -t ext4 /dev/sdb1
4.挂载 先创建1个目录 /home/newdisk
挂载 mount /dev/sdb1 /home/newdisk
卸载 umount /dev/sdb1 或者 umount /newdisk
5.设置可以自动挂载(永久挂载)
vim /etc/fstab 加入挂载
磁盘情况查询
查询系统整体磁盘使用情况
基本语法
df -lh
查询指定目录的磁盘占用情况
基本语法
du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
-max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
应用:查询/opt 目录的磁盘占用情况
du -ach --max-depth=1 /opt
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. 统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" | wc -l
5. 以树状显示目录结构 tree
yum install tree 安装一个指令
网络配置
自动获取ip
缺点:每次自动获取的ip地址可能不一样 不适用于做服务器 因为服务器的ip需要是固定的
指定固定ip
直接修改配置文件来指定ip,并可以连接到外网
vim /etc/sysconfig/network-scripts/ifcfg-eth0
要求:将ip地址配置为静态的,ip地址为192.168.200.128
修改后重启服务
进程管理
进程的基本介绍
1.在linux中,每个执行的程序都称为一个进程 每一个进程都分配一个ID号
2.每一个进程,都会对应一个父进程 而这个父进程可以复制多个子进程 例如www服务器
3.每个进程都可能以两种方式存在 前台与后台(守护进程) 前台是指用户目前的屏幕上可以进行操作的
后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常采用后台方式执行
4.一般系统的服务都是以后台进程的方式存在 而且都会常驻在系统中 直到关机才结束
显示系统执行的进程
基本介绍
ps 查看目前系统中 有哪些正在执行 以及它们执行的情况 可以不加任何参数
PID 进程识别号
TTY 终端机号
TIME 此进程所消耗CPU时间
CMD 正在执行的命令或进程名
ps -a 显示当前终端的所有进程信息
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
ps -aux | grep *** 比如查看有无sshd ps -aux | grep sshd
ps -ef 可以显示父进程
终止进程kill和killall
kill [选项] 进程号
killall 进程名称
常用选项
-9 强制kill
查看进程树
pstree
-p 显示进程pid
-u 显示所属用户
服务管理 service
服务的本质就是进程 但是是运行在后台的 通常会监听某个端口 等待其他程序的请求 比如(MySQL sshd 防火墙等)
因此我们又称为守护进程
service管理指令
service 服务名 [start | stop | restart | reload | status]
centos7.0后 不再使用service 而是 systemctl
systemctl start firewalld 开启防火墙
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld
1.关闭或启动防火墙后 立即生效 win下 telnet测试 某个端口即可
2.这种方式只是临时生效 当重启系统后 还是回归以前对服务的设置
3.如果希望设置某个服务器自启或关闭永久生效 要使用chkconfig命令
查看服务器
setup
ls -l /etc/init.d/
服务的运行级别
查看或修改默认运行级别 vim /etc/inittab
Linux系统有7种运行级别(runlevel) 常用的是级别3和5
0 系统停机状态 系统默认运行级别不能为0 否则不能正常启动
1 单用户工作状态 root权限 用于系统维护 禁止远程登录
2 多用户状态 没有NFS 不支持网络
3 完全的多用户状态 有NFS 登陆后进入控制台命令模式
4 系统未使用 保留
5 X11控制台 登陆后进入图形GUI模式
6 系统正常关闭并重启 默认级别不能为6 否则不能正常启动
开机流程说明
开机-BISO-/boot-init进程1-运行级别-运行级对应的服务
chkconfig 可以给每个服务的各个运行级别设置自启动/关闭
查看服务 chkconfig --list|grep XXX
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
进程监控指令
动态监控进程 top
top和ps命令很相似 都是用来显示正在执行的进程 top与ps最大的不同之处在于top在执行一段时间可以更新正在运行的进程
top [选项]
-d 后面接秒数
-i 使top不显示任何闲置或者僵死进程
-p 通过指定监控进程id来仅仅监控某个进程的状态
交互操作说明
P 以CPU使用率排序 默认是此选项
M 以内存使用率排序
N 以PID排序
q 退出top
监控网络状态 netstat
netstat [选项]
-an 按一定顺序排列输出
-p 显示哪个进程在调用
netstat -anp | more
netstat -anp | grep sshd
RPM 与YUM
rpm 红帽包管理器
查询已安装的rpm列表 rpm -qa | grep xx
rpm -qi file 查询安装的软件信息
rpm -ql 软件包名 查询文件所属的软件包
rpm -qf 文件 查询某个文件属于哪个rpm包
卸载软件包 rpm -e 包名
rpm -e firefox
安装软件包 rpm -ivh RPM包全路径名称
i=install 安装
v=verbose 提示
h=hash 进度条
yum 是一个shell前端软件包管理器 基于RPM包管理 能够从指定的服务器自动下载rpm包并且安装 可以自动处理依赖关系
yum list | grep xx 查看服务器是否有xx软件
yum install xx 下载安装xx软件