磁盘
磁盘的接口
IDE(并口)
SATA(串口):速度快,纠错能力强
SCSI:转速快,cpu占用资源低
目前在使用的是:SCSI
分区的分类
主分区、逻辑分区、扩展分区
类分区的关系
一个磁盘可以是4个主分区 一个磁盘还可以是3个主分区+1个扩展分区
一块磁盘最多只能有一个扩展分区
一个扩展分区包含多个逻辑分区
命令
fdisk
fdisk -l /dev/vda1 查看磁盘
fdisk /dev/vda1 硬盘的分区操作
-m 列出指令帮助
-p 查看现有的分区表
-n 新建分区
-d 删除分区
-q 放弃更改并退出
-w 保存更改并退出
挂载
df -T 只可以查看已挂载的分区和文件系统类型
partprobe 命令刷新分区表,刷新完之后,reboot重启
parted -l 可以查看未挂载的文件系统类型,以及哪些分区尚未格式
lsblk -f 也可以查看为挂载以及挂载的文件系统类型
fdisk 查看所有挂载和未挂载的分区,不显示文件系统
如何挂载磁盘
创建文件夹
mkdir /文件路径/文件夹名字
磁盘挂载到新建文件夹下
mount 磁盘路径[/dev/vda1] 文件夹路经
把文件系统的类型拷贝到新建文件夹下
cp /etc/fstab /mnt/part2/fstab.txt
查看挂载情况
df -T
管理用户/用户组
用户/用户组的概念
uid=1001(dzqc01) 用户[主]信息
gid=1001(dzqc01) 用户组信息
groups=1001(dzqc01) 所有组的信息
/etc/passwd —> 用户信息
/etc/shadow —> 密码信息
/etc/group —> 用户组信息
用户/组相关文件
在/etc/shadow文件中,每行记录也是有冒号来进行分割,共分为9个字段,以此为用户名称、加密后的密码、最近改动密码时间、密码不可变更时间(99999为没有限制)、密码重新变更时间、密码过期时间、密码过期宽恕时间、用户失效时间保留
用户/用户组的操作
创建用户/用户组
创建用户
useradd 用户名
-u uid 指定用户id
-g gid 指定用户组
-G 多个组id/名字
-s 用户登录的shell
-d 指定主目录
创建用户组
groupadd 用户组名
-g gid 指定用户组id
修改用户/用户组信息
通过修改文件去修改对应信息
查看用户的基本信息
id 用户名
删除用户/用户组
删除用户/用户组
userdel -r 用户名/用户组
groupdel -r 用户名/用户组
修改密码
passwd 用户名
切换用户
su 用户名
移动文件/修改文件名
mv 文件名 目标路径 移动文件
mv 旧文件名 新文件名 修改文件名
查看ip地址
ifconfig -a
sudo
sudo无法使用↓
提权,给普通用户赋予root权限
su root
vim /etc/sudoers
普通用户名字 ALL=(ALL) ALL
sudo mkdir file01 就可以成功
修改文件用户和用户组
chown -R 用户名字:用户组名字 文件名字
Eg: chown -R hadoop:hadoop 文件名字
文件权限
文件的基本权限UGO
概念
U: uwner 用户主
G: group 用户组
O: other 其他用户
权限分类:
r:read (读取),数字设定4.
w:write(写入),数字设定2.
x:execute(执行),数字设定1.
如何修改文件权限
chmod 数字权限 文件路径
Eg: chmod 664 /data/a.txt
chomd 字母权限 文件路径
chmod u=rw,g=rw,o=r /data/a.txt
chmod u+x /data/a.txt
chmod u-x /data/a.txt
chown和chmod的区别
chown 修改文件的用户/用户组
chmod 修改文件的权限.(rwx)
chgrp 命令
chgrp -R 用户组名 文件名 修改用户组
chown -R hadoop:hadoop a.txt 修改用户和用户组
chown -R hadoop a.txt 修改用户
chown -R :hadoop a.txt 修改用户组
基本权限ACL
ACL概念
ACL是访问控制列表,类似于防火墙
查询ACL
getfacl 文件路径
设置ACL
setfacl -m u:用户名:权限 文件路径
删除ACL
setfacl -x u:用户名 文件路径 不彻底的删除(+号还存在,mask权限未删除)
setfacl -b 文件路径 彻底的删除(+号不存在)
更改mask权限
setfacl -m mask::权限 路径
注:Mask和user:dzqc02:rw- 相与之后,才是ACL最大的权限
软件包、压缩包管理
安装软件包
yum istall 软件包名[-y]
删除软件包
yum remove 软件包名[-y]
查看已安装的软件包
yum list 压缩管理
压缩管理
tar -zxvf 压缩包名字 -C 路径
-C 解压到
-v, --verbose 详细显示处理的文件;
-z, --gzip, --ungzip 有gz属性的软件包;
-x, --extract,–get 解压文件
-f, --file[HOSTNAME:]F 指定存档或设备,后接文件名称
Linux基础命令
基础命令
ls 显示所在目录的所有文件
ll(ls -l) 以长格式显示文件信息
-a 显示隐藏文件
-d 查看目录属性
-t 按照创建时间顺序显示文件
cd 切换目录
cd … 返回上一级目录
cd 路径 切换路径
全路径(绝对路径)和半路径(相对路径)
绝对路径:从根目录开始,到目标文件结束
相对路径:从当前目录下开始,到目标文件接收
pwd 查看当前路径
touch 路径 --> 创建文件
mkdir 路径 --> 创建目录/文件夹
mkdir -p --> /data/mysql/jdk 创建多层文件夹
cp 源文件路径 目标文件路径 --> 复制/拷贝
mv 源文件路径 目标文件路径 --> 移动/重命名
rm -rf 路径 -->删除
r 递归 f 强制
文件查看命令
cat 文件路径 --> 查看文件内容
more 文件路径 --> 分页查看
回车 --> 显示下一行
f或空格 --> 显示下一页
head 文件路径 --> 默认显示前10行
head -n 文件路径 --> 显示前几行
n ->替换为数字
tail -n 文件路径 --> 显示后几行
帮助命令
man
Linux文本处理
通配符 | 含义 |
---|---|
* | 匹配0或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配list中的任意单一字符 |
[!list] | 匹配除list中的任意单一字符 |
| 管道符
把左边的结果作为右边的输入
ps aux | grep nginx 查看所有的进程
正则表达式
概念
正则表达式是一种描述一组字符串的模式,为处理大量文本、字符串而定义的一套规则
案例
1.非负整数 (正整数+0) ^\d+$
2.正整数 123 ^[0-9]*[1-9][0-9]*$
3.邮箱Song_ls@163.com
^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$
grep
概念
快速检索/查找
在文件中搜索与字符串匹配的行并输出
语法
grep [选项] 字符串 文件路径
[选项]:
-A 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-v或–revert-match 反转查找。
-n 在显示符合样本的那一行之前,标示出该行的编号。
-i或–ignore-case 忽略字符大小写的差别。
-q或–quiet或–silent 不显示任何信息。
-V或–version 显示版本信息。
–help 在线帮助
Find
概念
查找/检索某个文件夹下的匹配文件
语法
find 文件夹的路径 选项
Eg: find /data/ -name ‘a.txt’
选项:
-name 按照名字查找文件
-type 按照类型查找文件, d:文件,f:文件
-size 按照文件/文件夹的大小查找,+10M 大于等于10M -10M小于等于10M
sed
概念
文本三剑客之一,对文件内容进行增删改查,对文件输出内容进行增删改查,并不会修改文件
语法
sed [选项] 匹配模式 文件路径
增
sed [选项] [正则] 文件
sed ‘n,na 添加的内容’ 文件 在第几行到第几行后加入内容
选项:
a 追加文本信息(追加到下一行)
i 插入文本信息(插入到上一行)
例:
在第二行后加入三行test
sed ‘2a test\test\test’ /etc/passwd
在第二行到四行后加入test
sed ‘2,4a test’ /etc/passwd
删:
选项:
d 定位删除
例: 1.删除第五行到最后一行
sed ‘5,%d’ /data/a.txt
2.删除批注行
sed ‘/^#/d’ /data/a.txt
改:
sed ‘[选项] [正则]’ 文件路径
选项:
c 用新文本替换定位文本
语法:
sed ‘c 新文本’ 文件路径
s 使用替换模式替换相应模式 还要配合g
语法:
sed ‘s/旧单词/新单词/g’ 文件路径
s///和s///g
g: 如果一行中有多个旧单词,加上g,一行中的旧单词都会被替换,不加g,只替换每行第一个旧单词
例: 1.将2-5行内容取代为sssssss
sed ‘2,5c sssssss’ /data/a.txt
2.把a.txt文件中的old替换为new
sed ‘s/old/new/g’ /data/a.txt
3.在一行的内容前面添加内容
sed ‘s/^/test/g’ /data/a.txt
4.在一行的内容后面添加内容
sed ‘s/$/test/g’ /data/a.txt
查:
-n 显示行号
1,3p 1到3行
$ p 最后一行
‘1p;$p’ 第一行和最后一行
正则必须在//之间
语法: /正则/
例: 显示/etc下面的所有以a开头的文件
ls /etc | sed - ‘/^a/p’
awk
概念
文本三剑客之一,文本内容的分析
语法
awk [选项] ‘条件/函数{print}’ 文件路径
条件和打印可以只写一种,但是不能不写
两个条件都写,就是满足条件去打印
[选项]:
-F 分隔符:按照分隔符进行拆分
-f 脚本路径:获取到脚本当中的命令并执行
-v 变量的名字=值:赋值一个用户定义变量,将外部变量传递给awk
整个引号里面的选项:
$0 打印当前行(打印整行内容)
$1- $n 打印第n列
NR 打印行号,从1开始
NF 打印当前行
FS 分隔符:按照什么分割,默认是空格
例:1.打印a.txt按照空格拆分的第一列和第二列
awk -F ‘’ ‘{print $1,$2}’ a.txt
2.awk打印硬盘设备名称,默认以空格进行分割
df -T | awk -F ‘’ ‘{print $1}’
条件:
< > == != >= <=
&& 并且 || 或者
+ - * /
例:1.打印a.txt文件中的第三行至第五行的第一列与最后一列
awk -F : ‘5>=NR&&NR>=3 {print 1 , 1, 1,NF}’ /etc/passwd
2.awk以冒号切割,打印前三行的第一列
awk -F : ‘3>=NR {print $1}’ /etc/passwd
awk内置函数
语法:
awk [选项] ‘内置函数+{action}’ 文件路径
选项 | 解释 |
---|---|
gsub (旧单词,新单词,$n) | 替换第几列的单词,$n可以不写,不写的时候替换所有的旧单词 |
index (s, t) | 返回s中t的第一个位置 |
length (s) | s的长度 |
match (s, r) | s是否匹配r |
split (需要拆分的字符串,集合,按照什么拆分) | 在fs上将s分成序列a |
substr (s, p) | 返回s从p开始的子串 |
例:1.打印a.txt文件中长度大于20的行号
awk ‘length($0)>=20 {print NR}’ /data/a.txt
2.把文件中的aa替换成gsub并打印
awk ‘{gsub(/aa/,‘gsub’);print}’ /data/a.txt