Linux基础
1.1系统目录结构:
/root:系统管理员的家目录
/home:系统预设的使用者的家目录
/bin:普通用户使用的命令
/etc:配置文件、系统设定档几乎都放置在这个目录下
/usr:系统文件
/tmp:临时文件夹,用于存储临时文件和临时数据
/boot:放置开机时会用到的档案
/dev:设备文件,任何装置与周边设备都以档案型态存在于这个目录中
/media:移动设备挂载点,可移除装置
/mnt:暂时挂在某些额外配置,手动挂载设备的挂载点
/lib:开机时会用到的函式库
/opt:第三方协力软体放置的目录,用来安装软件包,用户级的程序目录
/sbin:系统二进制文件
/tmp:使用者或者正在执行的程序暂时放置档案的地方
/srv:一些网络服务启动之后,这些服务所需要取用的资料目录
1.2文件类型:
普通文件:-表示,包括文本文件、二进制文件(.c、.h、.sh、.bin)
目录文件:d表示,目录文件就是文件夹
字符设备和块设备文件:c、d表示,字符设备文件一般放在/dev/下
符号链接文件:l表示,类似于Windows的快捷方式
管道文件:p表示,建立在内存之上可以同时被两个进程访问的文件
文件后缀名:
.sh:代表它是一个shell脚本
.tar.gz:表示它是一个压缩包
my.cnf:代表它是一个配置文件
test.zip:代表它是一个压缩文件
1.3常规操作:
cd:变更用户所在目录(文件不适用)
pwd:查看当前所在目录
mkdir:创建目录 格式:mkdir -p [目录名称] -p:创建多层目录
rmdir:删除目录
rm:删除文件及目录 选项:-r:删除目录 -f:强制删除
touch:新建文件
cp:复制文件 格式:cp [选项] [源文件] [目的文件]
选项:-r 复制目录 -i:安全起见,询问是否覆盖
mv:移动文件、目录以及重命名
格式:mv [源文件或目录] [目的文件或目录]
若目的文件或目录存在时,直接移动;若目的文件或目录不存在时,以源文件或目录重命名给定的目的文件或目录
重命名:在目的文件或目录后加新名字
例:把/a/b重命名为/a/b.repo 写法:mv /a/b /a/b.repo
1.4权限:
chgrp:更改文件所属组 格式:chgrp [组名] [文件名]
chown:更改文件所有者、所属组 格式:chown -R 账户名:组名 文件名
chown 所有者.所属组 文件名
chmod:更改用户对文件/目录的读、写、执行权限
数字表示:r=4,w=2,x=1
umask:用于改变文件的默认权限
chattr:用于修改linux文件系统中文件或目录属性的命令
格式:chattr[+-=][Asaci][文件或者目录名]
选项:A:增加该属性表示文件或目录atime不可修改
s:增加该属性数据将同步写入磁盘中
a:增加该属性只能追加不能删除,非root不能设定该属性
c:增加该属性自动压缩文件,读取时自动解压
i:增加该属性文件不能删除、重命名、设定链接、写入以及新增数据
set_uid:二进制可执行文件,使文件在执行阶段具有文件所有者的权限
set_pid:作用在文件上时,使文件在执行阶段具有文件所属组的权限;作用在目录上时,任何用户在此目录下创建的文件都具有该目录所属的组相同的组
stick_bit:防删除位
1.5 用户管理:
新增组的命令:groupadd
格式:groupadd [-g GID] groupname
删除组的命令:groupdel
新增用户命令:useradd
格式:useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]
选项:-u:表示自定义UID
-g:新增用户属于已经存在的某组
-d:表示自定义用户家目录
-M:表示不建立家目录
-s:表示自定义shell
删除账户命令:userdel
用户密码管理:命令passwd:
用户身份切换:su 格式:su username
命令:sudo(只有root才能执行的命令,但是需要你输入密码)
1.6文件传输:
lrzsz命令
rz:可以从客户端传文件到服务器,sz:可以从服务器传文件到客户端
安装命令
安装结束,运行rz命令:
ls:查看:
运行sz命令:
查看结果:
总结:
sz:参数:-a:以文本方式传输
-b:以二进制方式传输
-e:对控制字符串转义
rz:参数:-b:以二进制方式,默认为文本方式
支持rzsz的终端有xshell、secureCRT、
scp(在主机间安全复制文件)
scp命令通过SSH连接在主机间处置文件
命令:scp source user@host:destination
wget(从网上检索文件)
命令:wget 链接 -P存放地址
该图为拉取Nginx保存至/usr/local/下
curl(从服务器传输数据或像服务器传输数据)
curl命令可使用支持的协议与网络服务器之间传输数据
选项:-o:将输出写入文件
-L:跟踪重定向
1.7环境变量:echo $PATH
查看指定环境变量:
vim /etc/profile
添加系统级环境变量:
1.8链接文件
硬链接:硬链接是通过索引节点进行链接,多个文件名指向同一索引节点是正常且允许的,一般这样的链接就称为硬链接。
软链接:类似于Windows系统中的快捷方式,软链接可对文件或目录创建,便于文件的管理。格式:ln[参数][源文件或目录][目标文件或目录]
主要参数:-i:交互模式
-s:软链接。如果不加“-s”选项,则建立硬链接
-d:允许超级用户制作目录的硬链接
-b:删除,覆盖以前建立的链接
-f:强制
1.9查看文件:
cat:显示全部内容,适用于查看少量文件内容 选项:-n把行号显示到屏幕上
tac:倒序显示文件内容
more:分页查看,空格键可向下翻动,q退出
less:空格键可翻页,↑↓可上下翻动
head:查看文件前n行 格式:head -n (多少行)文件路径
tail:查看文件后n行 格式与head相同
1.10相对路径与绝对路径:
相对路径:路径的写法不是由根目录写起
例:文件路径:/etc/passwd
写法:cd /etc
cd passwd
绝对路径:路径一定由根目录写起
例:文件路径:/etc/passwd
写法:cd /etc/passwd
1.11磁盘管理:
df:查看已挂载磁盘的总容量、使用容量、剩余容量,默认以KB为单位
-i:表示查看inodes的使用情况,如使已用100%,即使磁盘空间有富余,也会提示已满
命令:df -i |grep -v tmps //grep -v 的作用是过滤包含tmps字符串的行
-h:表示使用合适的单位显示,例如GB
命令:df -h |grep -v tmps
-k、-m:分别表示以KB和MB为单位显示
命令:
du:查看某个目录或文件所占空间的大小
格式:du [-abckmsh] [文件或目录名]
选项:-a:表示全部文件和目录的大小全部列出来
-b:表示列出的值以B为单位输出
-k:表示以KB为单位输出
-m:表示以MB为单位输出
-h:表示系统自动调节单位
-c:表示最后加总
-s:表示只列出总和
fdisk:磁盘分区 命令:fdisk [设备名称]
p:打印当前磁盘分区情况
n:新建一个新的分区
w:保存
q:退出
d:删除一个分区
列出所有磁盘设备以及分区表 命令:fdisk -l [设备名称]
格式化磁盘分区:mkfs -t ext4、xfs、ext2、ext3、2fs 磁盘名称
新建目录:mkdir /media
挂载:mount /dev/cdrom /media
卸载挂载点: umount 挂载点/分区名
查看磁盘或目录的容量:
命令df:查看已挂载磁盘的总容量、使用量、剩余容量等,默认以KB为单位
-i:表示查看inodes的使用情况,如使已用100%,即使磁盘空间有富余,也会提示已满
命令:df -i |grep -v tmps //grep -v 的作用是过滤包含tmps字符串的行
-h:表示使用合适的单位显示,例如GB
命令:df -h |grep -v tmps
-k、-m:分别表示以KB和MB为单位显示
命令:df -k |grep -v tmpfs
df -m|grep -v tmpfs
第一列为分区名称,第二列为该分区的总容量,第三列为使用容量,第四列为剩余容量,第五列为使用容量百分比(如果数值达到90%以上,应着重关注,防止系统崩溃),最后一列为挂载点。
du:查看某个目录或文件所占空间的大小
格式:du [-abckmsh] [文件或目录名]
选项:-a:表示全部文件和目录的大小全部列出来
-b:表示列出的值以B为单位输出
-k:表示以KB为单位输出
-m:表示以MB为单位输出
-h:表示系统自动调节单位
-c:表示最后加总
-s:表示只列出总和
fdisk:磁盘分区 命令:fdisk [设备名称]
m:打印出菜单
p:打印当前磁盘分区情况
n:新建一个新的分区
w:保存
q:不保存退出
d:删除一个分区
t:改变分区的属性,系统ID
列出所有磁盘设备以及分区表 命令:fdisk -l [设备名称]
格式化磁盘分区:mkfs -t ext4(linux系统常见的文件类型)、xfs、ext2、ext3、2fs 磁盘名称
查看当前系统支持的文件类型:cat /proc/filesystems
磁盘空间的管理
列出块设备:lsblk
管理MBR分区:fdisk
管理GPT分区:gdisk
高级分区操作,可以是交互式或非交互式:parted
重新设置内存中的内核分区表版本:partprobe
对新硬盘进行分区:
新建主分区:
新建扩展分区:
e代表设置扩展分区;第二红框内不输入扇区大小,默认全部空间
新建逻辑分区:
l代表在建立扩展分区后,才可以建立逻辑分区
保存退出:
格式化磁盘:
挂载:
mount [-t类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
挂载规则:
一个挂载点同一时间只能挂载一个设备
一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据
一个设备可以同时挂载到多个挂载点
通常挂载点一般是以存在的空的目录
挂载选项
例一:使挂载的设备只读
mount -o ro /dev/sdb1 /mnt
临时挂载:
mount -t //指定文件系统挂载分区,如ext3,ext4,xfs
mount -a //重新读取/etc/fstab配置文件的所有分区
mount -o //指定挂载参数
永久挂载:
永久挂载需要修改/etc/fstab文件
/dev/sdb1:设备名
/mnt:挂载点
xfs:文件格式
defaults:默认权限
解挂载:
umount 设备名或挂载点
# umount /dev/sdb1
列出块设备:lsblk
查看块设备属性信息:
LVM扩容:
查看pv物理卷有没有物理卷:
pvs
创建物理卷:
pvcreate /dev/sdb /dev/sdc
查看创建后的pv物理卷:
查看vg卷组:
Vgs
创建vg sdb sdc 创建为卷组,名字是vg20
查看创建后的vg卷组:
查看逻辑卷:lvs
创建lv逻辑卷:
Lvcreate -n lv1 -L 10G vg20
创建第二个逻辑卷:
创建第三个逻辑卷:
格式:lvcreate [选项] 逻辑卷名称 卷组
选项:-n 指定逻辑卷名称 -L 指定逻辑卷的容量大小
查看lv逻辑卷:
给lv逻辑卷格式化文件系统:
命令:
mkfs.xfs /dev/vg20/lv1
mkfs.xfs /dev/vg20/lv2
mkfs.ext4 /dev/vg20/lv3
删除/etc/yum.repos.d目录下的所有repo 文件
创建新的dvd.repo
挂载lv逻辑卷:
查看挂载:
lvm扩容(重点)
方案一:卷组容量够
扩容到9G要求:
方法一:lvextend -L 9G /dev/vg20/lv2
方法二:lvextend -L +(9-x) /dev/vg20/lv2 x :代表原有多少G
方案二:卷组容量不够
步骤:
创建新物理卷pv
给硬盘pv物理化
查看pv
扩容vg
扩容lv
删除lvm
1、删除/etc/fstab里面的自动挂载
2、取消挂载
umount /dev/vg20/lv1
- 依次删除lvm的组件
lvremove /dev/vg20/lv1
- 删除vg
vgremove vg20
- 删除pv
pvremove /dev/sdb /dev/sdc
RAID的实现步骤:
RAID概念:简称为独立冗余磁盘阵列,把多个硬盘组合成一个逻辑硬盘
RAID层级不同,数据会以多种模式分散于各个硬盘,RAID层级的命令会以RAID开头并带数
RAID0(条带化存储):读写时都可以并行处理,所有级别里RAID0速度是最快的,但无容错能力,一个磁盘损坏,所有数据都会丢失
RAID1(镜像存储)
步骤:
- 添加多块磁盘
- 安装mdadm软件包
- 创建RAID
命令:madam [模式] RAID设备名称 [选项] 成员设备名称
-C:创建RAID
-l:指定RAID级别
-n:指定组成RAID磁盘数量
-x:指定组成RAID热备盘数量
- 格式化RAID设备
- 挂载RAID设备
- 删除RAID设备
- :取消手动挂载:
# umount /dev/md0
- :停止RAID阵列
# maadm -S /dev/md0
- :移除RAID的磁盘成员
(4):取消永久挂载
查看某个RAID设备详细信息:
mdadm -D RAID 设备名称
损坏某块硬盘:使、dev/sdb硬盘坏掉
mdadm -f /dev/md5 /dev/sdb
1.12软件包管理
查询当前系统已安装的rpm包:rpm -qa |head
查询一个包是否已安装:rmp -q 软件包名
查看一个已安装软件包详细信息:rpm -qi 软件包名
列出一个rpm包的安装文件:rpm -ql 软件包名
列出某个文件属于哪个rpm包:rpm -qf 文件名
列出所有可用的rpm包:yum list
搜索rpm包:yum search 关键词
安装rpm包:yum install -y [rpm包名]
卸载rpm包:yum remove -y [rpm包名]
升级rpm包:yum update -y [rpm包名]