📑打牌 : da pai ge的个人主页
🌤️个人专栏 : da pai ge的博客专栏
☁️宝剑锋从磨砺出,梅花香自苦寒来
☁️运维工程师的职责:监控,备份,应急故障处理
网站 账户:y2406
密码:hongfu2406
贝尔实验室 UNIX VUNIX: (不开源)
1969肯 • 汤普森 开发出了UNIX系统 肯 • 汤普森的同事丹尼斯 • 里奇发明了C语言
加州大学伯克利分校:90% 10% BSD NIX little
1987Minix andrew(爱得文)安德鲁h
1991Linux 李纳斯
版本分类:
内核版:www. kernel. org
发行版:
RedHat 系列:
Fedora:(个人版):
RHEL:(RedHat Enterprise Linux):
两个系列发行版的最大区别:
软件包管理系统: (Windows和Linux软件包不兼容)
RedHat 系列安装方式←
源码包:
(在官网手工下载)↔←
优点: 开源、安全、稳定
缺点: 安装时间长(需要本机编译)本机编译容易报错,初学者很难解决
二进制包(RPM包):在安装光盘中
优点:安装速度快,报错概率低
缺点:不再开源 依赖性(a->b->c) 要倒着安装即cba
主要安装方式:←
手工命令安装: (需要人工解决依赖性)
yum 在线安装: (全自动解决依赖性)
(Cent0s停止维护了)(自建yum源)
Debian系列: ubuntu 乌班图
源码包:
二进制包(DEB)包:←
手工命令安装:←
apt-get 安装: (在线源程序池不一致)
开源软件
- Apache: web服务器
- Nginx: web服务器
- MySQL: 数据库(SQLserver , Oracle)
- PHP: 脚本语言
Samba(不用): Linux和windows之间的内网文件服务器
- MongoDB: NoSQL数据库 redis
- Python: 脚本语言
- Ruby: 脚本语言
- Sphinx: 中文分词
原则: Linux一切皆文件 在7多了一个unit(不是文件可以不管)
Linux安装流程:
如图:
1选择分区表:把大硬盘分为小的逻辑分区
MBR GPT
2格式化 写入文件系统 EXIT4 centos6 XFS 7
3分区设备文件名 给每个分区定义设备文件名
/dev/hda1 hd: IDE接口(光驱) (a:第一块硬盘)(1:第一个分区)
/dev/sda1 sd::SATA接口、SCSI、USB)(主要用)←
/dev/nvme0nlpx (nyme:接口)(0:第一个模块)(n1:第一块硬盘)(p1:第一个分区)
例子
/dev/sdb7(第二块 SATA 接口硬盘,第三个逻辑分区) ps:/dev 读法是dev的根目录, /是挂载
4、分配挂载点(已经建立的空目录作为挂载点)
挂载(mount):把分区设备文件名和空目录(挂载点)连接起来的过程,叫做挂载 :也是给每个分区分配挂载点
挂载点:
必须建立:
/(根目录): 最高一级目录,是必备的目录 推荐预留足够大小,必备系统目录
swap(交换分区):虚拟内存。 推荐 4g是内存的两倍 4g以上和真实内存一样,16g则不需要配置(不建议) Windows也有
/boot/(启动分区):系统启动相关文件 推荐 500mb
推荐分区:(数据分区:根据具体情况建立)←
/www/
/mysql/
/game/
/home/
补充:SELinux 增强安全组件: 一般服务器不装
1、虚拟机网络配置
2、Linux 网络配置<
1)nmtui<
网卡配置文件名: CentOs 6.x以前的版本eth0
Cent0s 7.x以后的版本:ens33
Ethernet:以太网(工作在数据链路层的网络是以太网)
2)重启网络服务(只要修改了配置文件,就需要重启才能生效)←
systemct1 start stop restart network (RPM包安装的服务,通过此命令管理)
查询: ifconfig (最小化安装,此命令不存在)“
3)关闭防火墙←
(
关闭防火墙启动:←
systemctl stop firewalld
关闭防火墙自启动:
systemctl enable disable firewalld
补充 命令
Xshell 远程连接工具
Winscp文件拷贝工具
Packages 是Linux保证RPM包的地方‘
Ps: 光驱/dev/cdrom或dev/sr0 cent6的命名方式 /dev/hdc
Linux注意事项
1严格区分大小写
2Linux一切皆文件
3 Linux不靠扩展名区分文件类型 (所有推荐在不管touch什么文件都有写扩展名)
exe 文件不推荐在Linux上运行
压缩包:Linux下常见的压缩文件名有*.g2、*.bz2、*.zip、*.tar.gz、*.tar.bz2、*.tgz 等
4.Linux中所有的存储设备都必须在挂载之后才能使用 mount /dev/sr0 /空目录
区别是 Windows是半自动的(插进去是自动的,拔出去是要手动弹)。Linux是本机,硬盘是全自动的。移动设备的是手动的,严禁设成半自动,因为 Linux 识别的是开机自动挂载,而不是即插自动挂载。严禁移动设备u 盘、光盘 开机自动挂载 (如果你有一次开机没装光盘,那么Linux会直接死机)
5.Windows下的程序不能直接在 Linux中使用
Windwow可执行文件 bat msi exe Linux不可以写
服务器管理
1目录
1
目录讲解:
家目录:
超级用户:/root/
普通用户: /home/用户名/
补充:快捷键:
ctrl+l: 清屏
ctrl+c: 强制终止 (ctrl+z:放入后台)
ctrl+u: 从光标清除到行首
ctrl+y: 粘贴 ctrltu剪切内容
ctrl+a:光标移动到行首←
ctrl+e:光标移动到行尾
tab 命令和文件补全
xshe11 快捷键:
复制 :ctrl+insert:
粘贴 :shift+insert:
终结: 请记住基本根目录的作用,就/root 和/ tmp 可以进行实验。可以看的目录/bin /etc(大部分要学习的目录)/mnt 源码包安装目录 默认/usr/local/ 下载位置在/usr/local/src /usr/local/kernel
s是保存内核的位置 /var/spool/cron 是定时任务的位置 rpm包安装目录是不确定的, 目前就 /var/www/html 是Apache /var/lib/mysql 是MySQL
2.远程服务器关机及重启时的注意事项
不可以关机服务器 一般都是会有备份服务器
2.1远程服务器在重启前,要中止正在执行的服务 (建议服务器要把网站给停了,在重新启动) 重新启动命令推荐 shutdown -r now / reboot 这个命令sync要在重新启动命令之前按一次
3.不要在服务器访问高峰运行高负载命令
一般我们建议在凌晨 4:00-5:00执行这些命令(通过编写脚本来自动化执行)
4.远程配置防火墙时不要把自己踢出服务器(工作中会出现的错误 rm -rf 误删 还有就是这个防火墙)
建议在写防火墙时,先写一个系统定时任务,让它每5分钟清空一下防火墙规则
5.指定合理的密码规范并定期更新
设置密码需要遵守复杂性、易记忆性和时效性
6.合理分配权限
服务器管理有一个最简单的原则:给予用户最小的权限。
7.定期备份重要数据和日志
备份的基本原则:不要把鸡蛋放在同一个篮子里
补充
alias 命令别名:照顾管理员使用习惯的
临时生效: alias viens = ’/usr/bin/vim /etc/sysconfig/network-scripts/ifcfg-ens33'
永久生效:
针对个人生效: ~ /.bashrc
针对所有人生效: /etc/bashrc
Ps:whoami 显示当前登录用户的名字
解决命令:dos2unix window文本 / unix2dos linux脚本(建议不要用Windows写shell脚本)
vim三种模式
一命令模式
都是要记住的
h 键:向左移动一个字符。
j 键:向下移动一行。
k 键:向上移动一行。
l 键:向右移动一个字符。
二输入模式
a在光标所在字符后插入
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行行首插入
o在光标下插入新行
O在光标上插入新行
三编辑模式(末行模式)
:w保存不退出
:q不保存退出
:wq保存退出:
:!强制
:q! 强制不保存退出,用于修改文件之后,不保存数据退出。
:wq! 强制保存退出,当文件的所有者或者root用户,对文件没有写权限的时候,强制写入数据使用
Linux常用命令
第一位字符:文件类型-普通文件。b:块设备文件。d:目录文件,:
第二至十位:文件权限,前三位表示文件所有者权限。再三位文件所属组,最后三位表示其他用户(其他人)
组:拥有相同权限用户的集合。
每类身份用三位字符表示,分别是rwx,r读,w写,x执行:
. 表示SELinux
1表示文件链接数量 : 有几个文件记录了相同的inode号
文件所有者:默认为创建文件的用户,
文件所属组:默认为创建文件的用户的当前组。
根目录(不存在):逻辑上一切硬盘分区的起始点。(排除挂载点以外的就是根分区,或者boot以外是根分区)
sdb1 #分区
/disk1 #空目录 ,可以作为sdb1挂载点使用。
#挂载,Is /disk1 touch /disk1/a.txt
终端名称: 使用tty命令
本地终端: ttyn #n表示数字,默认范围1-6。(本地字符界面登录)
虚拟终端:pts/n #n表示数字。(本地图形化和远程连接)
绝对路径:以根(/)为起始点的路径表达方式。
相对路径:不以根(/)为起始点的路径表达方式。 像 ./ . 代表当前目录 .. 代表上一级目录
目录是保存文件名称的。不允许写入其他数据
挂载光盘:(因为光盘只能读所以要挂载)
mount-t iso9660 /dev/sr0 /mnt
挂载命令 文件系统类型 设备文件 挂载点
rpm -ivh/mnt/Packages/tree-1.6.0-10.el7.x86 64.rpm #安装tree命令包。
systemd 所有进程当中的第一个进程并且永远不变 atd 进程计划任务 bash命令解释器(帮助内核识别运行大部分命令(像ls,pwd等)) 进程不唯一进程号(pid)唯一,并且pid是会变的
文件系统: 1.block:文件系统中存储数据的最小单元,ext4、xfs等文件系统中,创建时默认4k,分为存储文 件数据的data block和存储目录数据的directory block。
2.inode:又称“索引节点”,每一个inode对应一个文件或目录,记录了文件的大小、所占用的 block以及目录的directory block信息。
3.Inode Bitmap:翻译成中文就是“inode位图”,用二进制的方式记录了inode的使用情况。
4.Block Bitmap:翻译成中文就是“块位图”,同Inode Bitmap,用二进制方式记录了块的使用情况
硬链接:多个文件,名称、保存路径都不相同,但是inode相同。
1.文件创建硬链接后,链接数量+1。每删除一个文件,文件链接数量-1。
2.互为硬链接的文件之间,修改任意一个其余均会发生变化。
3.硬链接无法跨分区创建。
4.目录无法创建硬链接。
软链接(符号链接):
1.软链接和原文件之间inode号不同。
2.软链文件类型为l,软链接默认权限最大。
3.修改软链接,源文件会发生变化。修改源文件,软链接也会发生变化。
4.删除软链接,源文件不受影响。删除源文件,软链接失效。
5.软链接可以跨分区创建。
6.创建软链接,建议写绝对路径。
7.目录可以创建软链接。
Linux常用命令
1命令名称:ls(显示目录文件)
命令的格式:命令 [-选项] [参数]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示下面的命令都必须配合l使用或者a
-d 查看目录属性
-h 文件大小显示为常见单位
-i 查询文件的inode号
-R 递归显示目录及其子目录
-n 显示文件的UID和GID Linux系统根据userid 和group id 来识别文件所有者
2、命令名称:touch(创建空文件/更新修改和访问时间)
命令格式:touch 文件名 可以用的字符有- _ . 最好不要有空格
Linux文件命名规则:
(1)除了/之外,所有字符都合法。
(2)有些字符最好不用。
(3)避免使用.作为普通文件开头。
(4)Linux严格区分大小写。
(5)长度不能大于255字符。
3、命令名称:mkdir(创建新目录) 目录带.d
命令格式:命令:[-选项] [参数]
-v 显示创建过程
-p 递归创建
4、命令名称:cd(切换目录)
命令格式:命令 [-选项] [参数]
语法:cd 目录
cd ~ 进入当前用户的家目录
cd - 进入上次目录 只能来回切换
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd . 进入当前目录
5、命令名称:pwd(显示当前所在目录)
6、命令名称:tree(显示目录树)
命令格式:tree 目录
-d 只显示目录
(在centos7.x下需要安装后才可使用)
6.5、命令名称:pstree(查看进程树之间的关系)
格式:pstree [选项]
-A:进程树之间的链接以ASCII码字符链接。
-p:同时列出每个进程的PID。
-u:同时列出每个进程的所属账号名称。
7、命令名称:cp(复制、复制并改名)
命令格式:cp 源文件或目录 目标目录
-r 复制目录
-p 保留文件属性
-a 相当于-rp
8、命令名称:mv(剪切、改名)
9、命令名称:rm (删除)
-r 删除目录
-f 强制删除
10、命令名称:rmdir(删除空目录)
-p 递归删除空目录
-v 显示指令执行过程
11、命令名称:cat(显示文件内容)
命令格式:cat 文件名
-n 列出行号
cat 显示多个文件内容
cat 将多个文件合并(按照文件先后顺序) (如文件超过一页内容后只能显示最后一页的内容)
12、命令名称:more(分页显示文件内容)
b 向上翻页(打开文件时使用)
空格 向下翻页
Enter 换行
q或Q 退出
13、命令名称:less(分页显示文件内容)
命令格式:less 文件名
显示文件内容的时候支持关键词查找。
14、查看文件首部指定行:head
-n 数字 #查看文件指定首部n行。
15、查看文件指定尾行:tail
-n 数字 #查看文件尾行。
-f #持续显示文件变化情况。
16、命令名称:ln(生成链接文件)
-s 创建符号链接
二、权限管理命令:
-rw-r--r-- 1 root root 08-11 01:45 aa.txt 权限位是十位
第一位:代表文件类型- 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符设备文件 s 套接字(保存ip和端口的组合) p 管道(让两个进程进行相连) ps netstat -anpt 监听端口 命令文件一定有可执行权限
其余九位为权限: r w x r w x r w x
读 写 执行 读 写 执行 读 写 执行
4 2 1 4 2 1 4 2 1
文件所有者(u) 文件所属组(g) 其他用户(o)other
- 命令名称:chmod(修改文件的权限) 命令格式:
- chmod u+x 文件
- chmod g+w,o+w 文件
- chmod u=rwx 文件
- chmod 644 文件 最常用
2、命令名称:chown(修改文件或目录的所有者,所属组 changewode)
命令格式:chown user1 ss
chown user1:user2 ss
chown :user1 ss
3、命令名称:chgrp(改变文件或目录的所属组)
命令格式:chgrp 用户组 文件或目录 chgrp roushan ss
4、命令名称:umask(显示和设置掩码值) 对目录和文件生效,
在默认掩码为0022下文件最大权限为644,目录最大权限为755.
777
-022
755
三、查找命令:
1、命令名称:which(查看命令文件位置和命令可能出现的别名)
2、whereis(查找命令及帮助文档所在位置)
3、locate(按照文件名查找,按照数据库查找)
updatedb 强制更新数据库
locate命令的使用实例:
# locate /etc/sh 搜索etc目录下所有以sh开头的文件。
在使用locate命令时,要使用绝对路径查询。
4、命令名称:find(搜索系统中符合条件的文件)
-name 根据文件名查找
通配符:
* 任意多个字符
? 任意一个字符
[ ] 指范围值,外侧加引号
-size 根据大小查找
find ./ -size -10k 查找小于10k的文件或目录
find ./ -size -10M 查找小于10M的文件或目录
find ./ -size +10G 查找大于10G的文件或目录
-user 根据所有者查找
find / -user root 查找根下所有root用户的文件
-group 根据所属组查找 find / -group root 查找根下所有root组的文件
-perm 根据文件权限查找 find /boot -perm 644
-按时间查找 按天 ctime atime mtime
按分钟 cmin amin mmin
c change 表示属性被修改过:所有者、所属组、权限
a access 被访问过(被查看过)
m modify 表示内容被修改过
find /etc -mmin -120 查找120分钟内内容被修改过的
find /etc -ctime +7 查找七天之前属性被修改过的
-type 根据文件类型查找
例:-type f 二进制文件(普通文件)
-type l 软连接文件
-type d 目录
-逻辑连接符
-a (and 逻辑与)
-o (or 逻辑或)
例:find /etc -size +1k -a -size -10k
#在etc目录小查找大于1k并且小于10k的文件
-命令执行连接符(对查找到的文件,进一步处理)
find ... -exec 命令 {} \;
{}表示find查询的结果集
\是转义符,不使用命令别名,直接执行命令。
;分号是表示语句结束
转义符:在Linux中有个别名机制,如rm删除文件,执行的却是rm -i(用which rm 可以查看命令 别名)使用rm删除文件前会提示确认信息,就因为rm -i 这个参数。如果想使用命令原意,可以在加 \转义。如:\rm tese.txt 不会提示,直接删除。
-inum 根据文件i节点查询
find ./ inum 231906 -exec rm {} \;
有一些文件的硬链接数量有很多,有相同的i节点,查找其中的一个文件的i节点号,一次性删除。
xargs命令:把前一个命令输出的结果当成多个参数。
例: find / -name "aaa*" | xargs rm -rf
5.grep “字符串” 文件名(在文件内查找符合条件的字符串行)
命令所在路径:/bin/grep
-v 反向选择
-i 忽略大小写
6.管道符 命令1 | 命令2 将命令1 的标准输出作为命令2的标准输入
更改模式为桥接模式的配置文件
BOOTPROTO="static" #静态IP:static/none 自动获取:dhcp
IPADDR=192.168.50.242 #IP地址。
NETMASK=255.255.255.0 #掩码。
GATEWAY=192.168.50.1 #网关。
DNS1=114.114.114.114 #DNS。
#修改完成后重启网卡生效:systemctl restart network
#修改网卡配置文件后:
6:if down ens33
6: if up ens33
7:nmcli con load 网卡配置文件
7:nmcli con up 网卡名称
Linux用户:
1.root用户/根用户/超级用户
2.普通用户。
3.管理员用户。
4.系统用户或服务用户:受shell类型限制不能登录系统,但可以使用系统资源(运行服务,服务运行变成进程会消耗资源)。
常见init运行级别:
init 0 #关机
init 3 #系统运行为字符级别
init 5 #系统运行为图形化级别
init 6 #重启系统
四.帮助命令:
- man 命令 查看命令的帮助
命令名称:man man -f 命令
#查看命令有哪些级别的帮助,在使用命令前要执行mandb生成man缓存信息,否则命令执行不成功。
图形界面因为安装原因所以比字符界面man级别更多。查看指定级别:
man 级别 命令 记住他是有级别的
- help 内部命令 查看内部的帮助信息
type 命令 的方式查看命令是否为内部命令。内部命令如cd、pwd、echo等。
外部命令如:ls、vi等命令。
- type查看命令类型(内建命令/外部命令)
[root@localhost ~]# type cd cd is a shell builtin
[root@localhost ~]# type ls
ls is aliased to `ls --color=auto'
Ps
- 命令 --help 查看命令的常见选项
- info 命令 #比man更详细的帮助命令。
- 回车:进入子帮助页面(带有*号标记) u:进入上层页面
n:进入下一个帮助小节p:进入上一个帮助小节q:退出
五.网络命令
- ping 测试网络连通性
-c 指定ping次数
- ifconfig 查询本机网络信息
ifconfig命令使用方法
注意:下面操作使用root用户(动态修改) 命令:ifconfig
作用:用来配置网络或显示当前网络接口的状态
上图信息大概说明:
第一行: UP-->网卡开启状态BROADCAST-->广播 RUNNING-->网线处理连接状态MULTICAST-->支持组播 mtu 1500-->(Maximum Transmission Unit)最大传输单元大小为1500字节
第二行:该网卡的IP地址,子网掩码,广播地址
第三行:IPV6的配置信息
第四行:网卡的MAC地址 ether表示连接类型为以太网txqueuelen 1000 --》传输队列的长度 第五六行:网卡接收数据包的统计信息和接收错误的统计信息
第七八行:网卡发送数据包的统计信息和发送错误的统计信息临时修改IP地址
例1:临时修改网卡IP地址
ifconfig 网卡名称 IP地址 直接修改网卡的IP地址,重启失效
[root@localhost Desktop]# ifconfig ens33 192.168.12.110 netmask 255.255.255.0
说明:修改后当前终端会终断,需要重新使用新的IP地址进行连接
systemctl restart network //CENTOS7的网卡重启方法
service network restart //CENTOS6的网卡重启方法
例2: 添加多个临时IP地址
ifconfig 网卡名称:0 第一个IP地址 (netmask 子网掩码) 增加一个IP
ifconfig 网卡名称:1 第二个IP地址 (netmask 子网掩码) 增加一个IP
[root@localhost ~]# ifconfig ens33:0 192.168.12.110 netmask 255.255.255.0 up
[root@localhost ~]# ifconfig
删除临时IP
[root@localhost ~]# ifconfig ens33:0 del 192.168.12.110
[root@localhost ~]# ifconfig
例3:添加真实网卡:
nmcli connection add con-name 网卡名称 type 接口类型 ifname 网卡名称
nmcli connection add con-name ens37 type ethernet ifname ens37
例4:停止或启动某网卡centos6:
[root@localhost ~]# if down eth0
[root@localhost ~]# if up eth0
centos7:
[root@localhost ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ens33 #重载配置文件。
[root@localhost ~]# nmcli connection down ens33 #停止。
[root@localhost ~]# nmcli connection up ens33 #启动。
Ps:uuid 硬件设备的唯一标识 6以前要删 7可以采用nmcli命令解决
- w 查询当前登陆服务器的用户
第一行:当前时间,持续运行时间,登陆用户数量,1分钟,5分钟,15分钟 前的平均负载
第二行:用户名 TTY:登陆终端 FROM:来源IP 登陆时间
IDLE:用户闲置时间
JCPU:所有进程占用CPU时间PCPU:当前进程占用CPU时间
WHAT:用户正在进行的操作
- who 查询登录用户
- last 列出登陆系统的相关信息
第一列:用户名 第二列:终端位置
第三列:登录IP或内核版本第四列:开始时间
第五列:结束时间第六列:持续时间
- lastlog 显示所有账号最后一次的登陆时间
- write 用户名 给在在线用户写信
write root tty1 “发送内容” ctrl+d 保存,发送
- wall 对所有在线用户广播
wall 字符串 或 wall enter(回车) 字符串 ctrl+d
- mail 邮件命令
发信:
mail 用户名标题
内容
ctrl+d 结束 发送收信:
h 列出邮件列表q 退出
- netstat 查看网络连接状态(用了排查网络问题的) -anpt
常见端口:
20 21 ftp服务 文件共享
22 ssh服务 安全的远程连接23 telnet
25 smtp:简单邮件传输协议 发信
110 pop3:邮局协议 收信
80 http超文本传输协议3306 mysql端口
3389 Windows终端端口
/etc/service 所有常见的端口
netstat -tlun 查看本机所有监听的端口
-t tcp协议
-u udp协议
-l 监听
-n 以IP和端口的形式显示信息
-a 显示所有选项
-p 显示建立相关连接程序名
例:
列出所有端口:netstat -a | more
列出所有tcp端口:netstat -at 列出所有udp端口:netstat -au 只显示监听端口:netstat -l
只列出所有监听tcp端口:netstat -lt 只列出所有监听udp端口:netstat -lu
六.关机和重启命令
- 关机
poweroff 掉电关机
init 0 以0级别运行
shutdown -h now now也可以替换为具体时间 shutdown -c 取消关机
shutdown +5 “system will shutdown after 5 minutes” #设定5分钟后关机,发给所有用户关机提示信息告知登录用户。
此命令执行五分钟后,登录的用户将退出登录,但系统并不会关闭。需要自行shutdown -h now进行关机(C7此命令直接关闭系统)。shutdown +2 -h "system will shutdown after 1 minutes" #如果想要关闭系统并提示用户即将关机信息那么要执行此命令
- 重启
shutdown -r now reboot
init 6
- 数据同步
Sync :用户通常不需执行sync命令,系统会自动将缓冲区的数据写 入磁盘。只有用户需要非正常关机时,才需手动执行sync命令。举例:500kb写一次 刚写200kb 时间没到电脑要关机 sync会检查内存缓冲区中,并把他写入磁盘在关机
七.挂载命令
Linux系统一切设备皆文件。比如第一张光盘,会被自动识别为/dev/sr0(设备文件的命名方式是主设备号加次设备号。主设备号说明设备类型,次设备号说明是第几个设备),但并此时的光盘还不能正常的读取。需要先进行挂载而后才能进行正常的读取。需要指定挂载点并执行挂载命令。(不同的光盘之间需要重新挂载并指定挂载点才能正常使用)
1.mount 查询系统中已经挂载的设备
常见的存储设备:
/dev/sda1 第一个scsi硬盘的第一个分区
/dev/cdrom 光盘
/dev/sr0 光盘
常用挂载点见目录挂载格式:
mount -t 文件系统类型 -o 特殊选项 设备文件名 挂载点
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统。
-o 特殊选项:可以指定挂载的额外选项,比如读写权限,同步异步等,如果不指定则默认值
生效。
参数 | 说明 |
atime/noatim e | 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间, 默认为更新。 |
async/sync | 异步/同步,默认为异步。 |
auto/noauto | 自动/手动,mount -a 命令执行时, 是否会自动安装/etc/fstab文件内容挂载默认自动。 |
defaults | 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项。 |
exec/noexec | 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许。 |
remount | 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限。 |
rw/ro | 读写/只读,文件系统挂载时,是否具有读写权限,默认是rw。 |
suid/nosuid | 具有/不具有SUID权限,设定文件系统是有具有SUID和SGID的权限,默认有。 |
user/nouser | 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许, 只有root可以挂载分区。 |
usrquota | 写入代表文件系统支持用户磁盘配额,默认不支持。 |
grpquota | 写入代表文件系统支持组磁盘配额,默认不支持。 |
例1:mount 查看挂载信息
/dev/sda1 on /boot type ext4 (rw)
我们查看到/boot分区已经被挂载,而且采用的defaults选项,那么我 们重新挂载分区,并采用noexec 权限禁止执行文件执行,看看会出现什么 情况(注意不要用/分区做试验,不然系统命令也不能执行了)
[root@localhost ~]# mount -o remount,noexec /boot [root@localhost ~]# cp /usr/bin/ls /boot [root@localhost ~]# /boot/ls
-bash: /boot/ls: 权限不够
[root@localhost ~]# mount -o remount,exec /boot
例2:挂载硬盘分区,移动硬盘[root@localhost ~]# mkdir /mnt/disk1 #创建挂载点
[root@localhost ~]# mount /dev/sdb1 /mnt/disk1 #挂载硬盘分区或者移动硬盘
例3:挂载光盘
[root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom
#/mnt/cdrom必须是已存在的目录
例4:挂载U盘
[root@localhost ~]# fdisk -l #查看当前系统下的存储设备,确认U盘的设备名称[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb #fat32格式的U盘挂载方式
-t vfat fat32
-t fat fat16
注:Linux默认情况不识别NTFS格式
例5:挂载.iso文件
mount -o loop /root/CentOS-7-x86_64-DVD-1810.iso /mnt/ 加入loop选项让文件以块设备的方式进行挂载。
例6:卸载
umount 设备名称或挂载点#所有挂载的设备卸载方式都一样
例7:挂载NTFS格式
yum -y install epel-release yum -y install ntfs-3g
mount -t ntfs-3g /dev/sdb1 /media/ ls /media
挂载注意事项:
同一个文件系统不应该重复挂载在不同的挂载点。同一个目录不应该重复挂载多个文件系统。
作为挂载点,一定要是空白目录。
八.打包压缩
- tar:文件的归档(打包)和压缩
归档和压缩文件的好处:节约硬盘的资源 ,加快文件传输速率用法:tar [选项] 压缩后生成文件 打包文件
参数:
-c:创建文件
-x:提取 解压还原文件
-v:显示执行详细过程
-f:指定备份文件
-t:列出压缩包中包括哪些文件,不解包,查看包中的内容
-C:指定解压位置
例1:对/boot/grub 目录打包并解包。
[root@localhost ~]# tar -cvf ./grub.tar /boot/grub/ 或:
[root@localhost ~]# tar cvf ./grub.tar /boot/grub/ tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz [root@localhost ~]# ls ./gurb.tar
[root@localhost ~]# tar -xvf ./grub.tar #解压缩boot/grub/
boot/grub/splash.xpm.gz
[root@localhost ~]# ls ./boot #得到 boot 目录例 1:指定解压位置 -C [root@localhost ~]# tar xvf ./grub.tar.bz2 -C /opt/
tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz [root@localhost ~]# ls /opt/ boot
例 2:把两个目录或目录+文件打包成一个软件包: [root@localhost ~]# mkdir ./back [root@localhost ~]# cp /etc/passwd back/
[root@localhost ~]# tar -cvf back.tar /boot/grub back/ /etc/passwd tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz back/
back/passwd
/etc/passwd
例3:在打包过程中跳过某个或多个文件。
- -exclude:指定跳过的文件。[root@localhost ~]# cp /etc/passwd ./back/
[root@localhost ~]# cp -a /etc/fstab ./back/
[root@localhost ~]# cp -a /etc/shadow ./back/ [root@localhost ~]# cp -a /etc/group ./back/ #创建目录和目录下文件。
[root@localhost ~]# tar exclude /root/back/group -cvf /root/back.tar /root/back/
#在打包过程中指定跳过group文件。
例 4:不解包,查看 tar 中的内容: [root@localhost ~]# tar -tvf /grub.tar
tar 归档+压缩:
常用参数:
-z:以 gzip 方式压缩 扩展名: tar.gz
-j:以 bz2 方式压缩的 扩展名:tar.bz2
-J:以 xz 方式压缩 扩展名:tar.xz
例 1:创建.tar.gz 包
[root@localhost ~]# tar -cvf /etc.tar /etc
[root@localhost test]# tar -zcvf /etc.tar.gz /etc
[root@localhost test]# tar -zxvf /etc.tar.gz
例 2:创建.tar.bz2 包
[root@localhost ~]# tar -jcvf /etc.tar.bz2 /etc
[root@localhost ~]# tar -jxvf ./etc.tar.bz2 #解压缩
[root@localhost ~]# tar jxvf ./etc.tar.bz2 C /opt #解压到 opt 目录下
例 3:创建.tar.xz 包
[root@localhost ~]# tar -Jcvf /etc.tar.xz /etc
[root@localhost ~]# tar -xvf /etc.tar.xz
对比三种压缩方式后压缩比例: [root@localhost ~]# ll -h /etc.tar*
- zip 管理压缩文件
zip 软件包解压缩命令:
zip 是压缩程序,unzip 是解压程序。例 1:压缩文件:
例 2:将所有.jpg 的文件压缩成一个 zip 包[root@localhost ~]# zip /all.zip *.jpg
例 3:压缩一个目录
[root@localhost ~]# zip -r /grub.zip /boot/grub
解压缩:
-d:指定解压目录。
[root@localhost ~]# unzip /grub.zip
[root@localhost ~]# unzip ./grub.zip d /opt/
- file 命令
作用:确定文件类型
用法: file /etc/passwd
注:linux 系统不根据后缀名识别文件类型用 file 命令查看文件的类型。[root@localhost ~]# file /etc/passwd
/etc/passwd: ASCII text