Linux的文件管理
1、创建文件:touch、vim/vi、echo重定向、cat重定向
touch也可以用来修改时间(文件时间信息的Atime、Mtime)
touch+文件名(如果文件不存在就创建文件)
touch -a -t[[CC]YY]MMDDhhmm[.ss]
-c:默认不创建文件
2、删除文件:mv /tmp
Find | xargs rm
rm 删除文件 参数:-i(删除时提示)、-f(强制删除)、-r(删除目录)
默认情况下,rm -rf是不让删除根目录(centos5及以下版本可以),Centos6和7要删除是要加参数的;--preserve-root可以删根
3、移动文件:mv:移动文件,改名
参数:-t:颠倒源目地址
-i:当文件存在时会提示是否覆盖
\mv a b(当文件存在时,不提示,直接覆盖)
例:mv a b c d / e(将多个文件移动到一个文件)
mv a b(将a文件的名字修改为b)
复制文件:cp:参数:-t(颠倒源目地址)
-a(可以复制目录以及目录里面文件的属性)
Install:复制文件和创建目录
参数:-d:创建目录 、-t:
-g:指定所属组
-o:指定所属主
-m:指定复制文件的权限
Scp--Linux之间进行文件传输的命令;
两个虚拟机之间传输文件的两种方法:
Linux1:scp 文件 root@ip(Linux2):/目录
Linux2:scp root@ip(Linux1):/文件 本地的那个目录
4、文件查找:locate:会生成一个查找库(不常用) yum install mlocate -y
updatedb:在这个查找库中查找相对应的文件
find:可以根据文件的任何一个属性,来查找文件
文件属性:1、inode 2、文件类型(-type) 3、文件权限
4、硬链接数 5、所属主 6、所属组
7、文件大小(-size)
8、修改时间(Atime、Ctime、Mtime)
9、文件名(-name)
文件类型:-type f (普通文件)d(目录文件) p(管道文件) c(字符设备文件)b(块设备文件) l(软链接) s(套接字文件)
文件权限:-maxdepth(查找最多几级目录)
-mindepth(查找做少几级目录)
-perm 007【权限值:r=4,w=2,x=1】
例:find ./ -maxdepth1 -perm +1
硬链接数:-links
文件大小:-size 【常用单位k、M、G】
5、压缩文件:gzip、bzip2、xz【只能对文件进行压缩,能让源文件变小】
6、归档:tar【可以多目录进行操作,但是不会让源文件变小】
参数:-j:bzip2 -J:xz -z:gzip
-f:filename指定压缩文件的名字【解压的时候最好不要指定压缩文件】
7、编辑文件:全屏编辑器:vim/vi、nano编辑器【例:nano abc】
流编辑器(行编辑器):sed
Vim:默认为命令模式,敲i I a A o O进入编辑模式,敲esc键进入末行模式
命令模式下常用技巧:上下左右移动k j h l
dd 删除一行 ndd删除n行
p粘贴(粘几次敲几下p)
u切回上一个操作
U退回到进入文件时的初始状态
yy复制光标所在当前行
nyy复制光标后n行
gg光标跳至文件内容行首
G光标跳至文件内容行尾
c=dd+i
r替换光标所在字符为指定字符
v进入可视模式,选出指定内容,然后进行相应的操作
ZZ保存并退出
末行模式下常用技巧:.,$s/#/ /g(光标当前行到结尾将#替换为空格)
:$将光标移动到文件末尾
:1将光标移动到第一行
:q保存 :wq保存并退出
:q!强制退出
:w保存
:w +文件名 将文件保存到新的文件中去
/向下查找 ?向上查找 n下一个 N上一个
多个文件同时编辑:在末行模式下: :next切换到下一个文件
:prev切回到前面的文件
:last切换到最后一个文件
:first切换到第一个文件
:q退出当前文件
:aq退出所有文件
比较查看: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不创建家目录
userdel 参数:-r带着家目录一起删除【默认不删除家目录】
usermod(修改)参数:-c -d -m -g -G -s -u 、-o【容许UID相同,和-u一起使用】
passwd 参数:-l(锁定) -u(解锁) -d(删除密码)
常用命令:echo “密码” | passwd --stdin “用户名”【给用户添加密码】
2、组管理:groupadd 参数:-g修改组ID
-o容许重复
groupdel 删除组
groupmod 参数:-g -o -n修改组名
-p指定组密码【如果一个文件输入这个用户的附加组,而你要访问整个文件,别人就可以为这个组设置密码】
3、常用文件:
①/etc/passwd
Uname:x:uid:gid:描述:家目录:shell程序
超级用户---root
系统用户----1-499 1-999 普通用户---500-65535 1000-6535
②/etc/shadow
uname:uid:密码:时间
③/etc/group
组:组密码:组ID:附加组
④/etc/gshadow
⑤/etc/skel:这个目录下的文件均会被复制到每一个普通用户的家目录中,一般用来做警告
4、用户权限:r(读权限,权限为100【二进制】,权限值为4)
w(写权限,010,权限值为2)
x(执行权限,001,权限值为1)
添加/删除权限:chmod [a|o|g|u] [+|-] [x|w|r] 文件
chown :user10 文件
chmod user10: 文件
chmood user10:user10文件
文件的访问控制列表
1、ACL的授权管理:通过权限管理,给指定用户添加指定权限
2、setfacl---添加权限
setfacl -m u:用户名:要添加的权限(文件一定是该用户的文件)
setfacl -x u:用户名 文件 (取消文件权限)
getfacl:查看ACL添加的权限【用法:getfacl +文件名】
3、特殊权限位:
临时借位;例如有A B两个用户,分别属于AA组和BB组,A创建了一个用户a.txt,B默认情况下去访问a.txt使用other;但是B想借用A的权限去访问a.txt,就需要将SUID借位为1;同时,也可以去借SGID的权限去访问这个文件,借位为2;
SUID:chmod u+s 文件【授予SUID的特殊权限】
SGID:chmod g+s 文件【授予SGID的特殊权限】
所属主有执行权限时显示为s,反之为S
Sticky:chmod o+t 文件【授予粘粘位的特殊权限】
所属主有执行权限时显示为t,反之为T
粘粘位的作用:授权给一个目录,在该目录下所有用户只能删除自己的文件,别人不能删除自己的文件--------给目录文件授予的
Sudo授权:/etc/sudoers【在这个文件中去添加权限】
Su - 用户:切换用户