Linux文件管理
创建 touch vim/vi echo重定向
touch 管理:atime mtime ctime
touch 文件名 //如果文件不存在就创建文件
touch -a -t [CC]YY]MMDDhhmm[.ss]
20190827100322
-C
删除 1、mv /tmp
2、find| xargs rm
3、rm
rm删除文件
alias rm -i
-i提示
-f
-r
默认情况下rm-f /是不让删的(在centos 5以及以下版本)
centos7和6要删是需要加一个参数的; --preserve-root 可以删根
rmdir删除目录
移动
文件的传输都有两种行为:一种是“推"一种是“拉"的方式; ,
mv移动文件,改名
-t
mv a b c d /e //将多个文件同时移动到一个目录中
mv a b //修改名字a文件名称改为b
覆盖的问题 -i
cp
cp a b
-t
-a 可以复制目录以及目录里面文件的属性! !
install 删除和复制文件
-d 直接删除文件
-t
-g指定所属组
-o指定所属主
-m指定复制文件的权限
scp - Linux机器之间进行文件传输的命令;
linux1--linux2
linux1: scp文件root@ip(linux2):/目录
linux2 : scp root@ip(linux1:/文件 本地的那个目录
4、查找
locate
需要生成一个查找库的--不常用
updatedb 我在这个查找库中查找对应文件
find
可以根据文件的任何一个属性,来查找文件
1、inode2、文件类型3、文件权限4、硬连接数5、所属主6.所属组7、文件大小8、修改时间9.文件名(globbing) -regex
-type f d s p c b l
-perm 007
-maxdepth 查找最多几级目录
-mindepth 查找最少几级目录
find ./ -maxdepth 1 -perm + 1
find ./ -maxdepth 2 -perm 755
-links
find ./ -maxdepth 1 -links 2
-user -nouser
-group -nogroup
-size [默认单位是多少? ]
-mtime -ctime -atime + -数字
-name通配符
-regex指定使用正则表达式
------------
-ok
-exec
|xargs
5、压缩和递归
压缩- 1.只能对文件进行压缩; 2、能让源文件变小
gzip --------- -z
bzip2 ----------- -j
xz ------------- J
归档-- 1、归档可以对目录进行操作2、不会让目录变小
tar
-c -x
-v
-f filename 指定创建压缩文件的名字
【解压的时候,最好不要指定的压缩文件】
6、编辑
全屏编辑器:
nano
vi vim
【区分 sed 流编辑器 行编辑器】
vim
1、默认为命令模式--------| il a A o O进入编辑模式
| ESC 进入末行模式
2、命令模式下的常用技巧
2.1. 上下左右hjkI
2.2 dd ndd 删除
p np 复制
u(上一个操作) U(退回到进入文件的初始状态)
yy nyy
gg 光标跳至文件内容行首
G 光标跳至文件内容行尾
c=dd+i
r替换光标所在字符为指定字符
v进入可选模式,选出指定内容,然后进行相应的操作
3、末行模式
【末行模式很多操作和sed相同】
,$S/^#/ /g
:$将光标移动到文件末尾:1 .
:W
:W filename 将当前文件保存到新的文件中去
:q
:wq! //!代表强制
【在命令模式下ZZ也可以保存并退出文件】
查找
/向下操作 n下一个 N上一个
?向上查找 n上面一个 N下面一个
多个文件同时编辑的情况
:next
vim a b
5dd
:next!
p
:perv
:first
:last
:q //退出当前文件
:q! :qa //退出所有的文件
比较查看文件
1、垂直分屏
vim -O a b
切换光标ctrl+w松开w
再进行切屏ctrl+w 松开V
2、水平分屏
vim -o a b . .
切换光标:ctrl+w松开w .
再进行切屏: ctrl+w 松开S
:qa!全部退出
:wq! 全部保存并退出
linux用户与用户、权限管理
用户管理:
1、useradd 创建用户
-c 指定用户描述
-d 指定家目录 默认家目录/home下同名的目录
-g 指定主组
-G 指定附加组
【一个用户主组只能有一个,而附加组可以有两个】
-s 指定shell程序
特殊:/sbin/nologin --> 不允许登录系统的用户
-u 指定UID
-M 不创建家目录
2、userdel
-r 带着家目录块删除
3、usermod -修改
-c-d -m-g-G-s-u -o (容许UID相同,和-u-起使用)
4、passwd
-1 lock
-u unlock
-d 删除密码
echo "密码" | passwd --stdin "用户名”
组管理
1、groupadd
-g 添加组
-o 删除组
2、groupdel 删除组
3、groupmod
-g
-O
-n 修改组名
-p 指定组密码【如果一个文件输入这个用户的附加组,而你要访问这个文件,别人就可以为这个组设置密码】
常用文件
/etc/passwd
uname:x:uid:gid:描述家目录:shell程序
超级用户 - root
系统用户 1-499 1-999 普通用户 500-65535 1000-65535
/etc/shadow
uname:uid:密码:各种时间..
/etc/group
组:组密码:组ID:附加组
/etc/gshadow
/etc/skel
这个目录下的文件均会被复制到每一个普通用户的家目录中,一般用来做警告;
用户权限
r w x
读 写 执行
4 2 1
r 100
w 010
x 001
chmod [a|o|g|u][+|-]文件
chown :user10文件
chown user10:文件
chown user10:user10文件
acl的授权管理:
通过权限管理,给指定用户添加指定权限;
setfacl --添加权限
setfacl -m u:用户名:所添加的权限文件//文件- 定要是该用户的文件
setfacl-x u:用户名文件//取消文件权限
getfac
查看acd添加的权限
特殊权限位
临时借权限:临时借权限;例如:有A B两个用户分别输入AA组和BB组; A创建了一个用户a.txt, B默认情况下去访问a.txt使用other; 但是,我如果想要越权,借用A的权限去访问a.txt,就需
要将SUID位置位为1;同时也可以,去借SGID的权限去访问这个文件;
粘黏位作用:授权给一个目录,在该目录下所有用户只能删除自己的文件,别人不能删除自己的文件; --给目录文件授予的;
SUID
chmod u+s 文件名 //授予SUID的特殊权限
如果属主权限有x 显示为s
如果属主权限没有x 显示为S
SGID
chmod u+s 文件名 //授予SGID的特殊权限
如果属主权限有x 显示为s
如果属主权限没有x 显示为S
Sticky
chmod o+t文件//授予粘粘位的特殊权限
如果属主权限有t显示为s
如果属主权限没有T显示为S
sudu授权
/etc/sudoers //在这个文件里面去添加权限即可;
SU-
sU
sudo
Linux磁盘管理
磁道 磁头 扇区 柱面
磁盘的分类:机械盘(接口IO) 固态盘
IO -- 串行sata scsi(iscsi) 并行ata
FC二层协议 (施乐公司 POAR - 以太网 解释了面向对象的编程语言 图形界面)
磁盘必须要有文件系统(数据存储) -- 数据库(数据管理平台)
windows fat32 ntfs exfat
linux 单文件系统 -- ext2 3 4 xfs
iNode -- 索引空间(文件属性)
block -- 存储空间
数据存储过程、数据复制过程、数据删除的过程
mkfs -t
mount -o remount,rw
-a /etc/fstab
umount 过载点或者挂载文件
linux内核模块 -- dm
我们将一个或者多个磁盘融合起来,进行从新划分;
首先,我们需要定义PV(物理卷)
然后,再定义VG(卷组)
最后,我们再从VG中获取空间--LV(逻辑卷)
最大优点:
可以自由删除或者添加空间,不再需要重新进行分区;
pvcreate vgcreate 命名 lv -l | -L 指定大小 -n 指定名字
lvextend -- 添加磁盘空间
lvreduce -- 删除磁盘空间
最后一个操作:
做镜像 lv 命令可以为lv逻辑分区做磁盘镜像;
这个功能和数据库一块使用,实现数据被;
lvcreate -n Morrie_LV -s -p r -L 1000M /dev/mapper/VGname-LVname
/dev/VGname/LVname
磁盘冗余--RAID 磁盘管理
(软RAID)linux内核模块 -- md
廉价的冗余磁盘阵列
独立的冗余磁盘阵列
1、冗余
2、提高读写性能
raid0 -- 条带技术 磁盘1 磁盘2
raid1 -- 镜像技术
raid4 -- 校验盘 3快盘 (raid降级)
raid5 -- 将校验值分别存储于多快盘上
raid6 -- 二次校验
raid10(好一点) raid01
raid50
硬raid -- 需要raid卡来实现
软raid -- 在工作中不会做软raid,如果做:用磁盘去做raid即可(不要使用分区);
mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdb2 -x /dev/sdb3
mdadm -S /dev/md0
mdadm -D /dev/md0
mdadm -A /dev/md0
磁盘的命名:
md / sd / hd / vd
a b c sda sdb
1 2 3 4 5 6 7 8 9 10 sda1 sda2