linux文件和目录
目录
文件权限
查看文件权限
- cmd
1 | [liuyee@localhost ~]$ ls -l 文件名 |
其中,
- 第一列第一个字符代表文件类型:
- -:普通文件,d:目录,b:设备文件(块设备),c:设备文件(字符文件),1:软连接(快捷方式)
- 第一列第2-4、5-7、8-10个字符分别代表所属用户(u)、所属组(g)、其他人(o)的权限:
- 三个字符位依次代表:读、写、执行的权限;
- r:可读,w:可写,x:可执行,-:无对应权限位的权限。
- 第二列:所属用户
- 第三列:所属组
- 第四列:文件大小
- 第…列:…
更改文件权限
- 在原来权限的基础上改变权限
chmod {u/g/o/ugo}{+/-}{r/w/x/rwx},{u/g/o/ugo}{+/-}{r/w/x/rwx} 文件名
例子1:给文件名的所有者加上可执行权限、所有组加上可写权限、其他人减去可读权限。
- cmd
1 | [liuyee@localhost ~]$ chmod u+x,g+w,o-r 文件名 |
- 例子2:给文件名的所有者和所有组减去可读权限和可写权限。
- cmd
1 | [liuyee@localhost ~]$ chmod ug-rw 文件名 |
- 不管原有权限,直接对所有用户及组赋予、加上、减去新的权限
chmod a{+/-/=}{r/w/x/rwx} 文件名
例子:给文件名的所有者、所有组和其他人都赋予可读权限,无其它权限。
- cmd
1 | [liuyee@localhost ~]$ chmod a=r 文件名 |
- 用数字代替权限
r=4,w=2,x=1,-=0
例子:若文件的权限为755,则由于7=4+2+1,5=4+1,所以文件的所属用户权限为可读、可写、可执行;所属组和其它用户的用户权限为可读、可执行。
- cmd
1 | [liuyee@localhost ~]$ chmod 755 文件名 |
- 改变文件夹及里面所有文件和子文件夹的权限
- chmod -R 000 文件夹名
- -R是使用递归的意思
改变文件所有者和所属组
- 改变所有者
- chown 用户名 文件名
- 改变所属组
- chgrp 组名 文件名
- 同时改变所有者和所属组
- chown 用户名:组名 文件名
- chown 用户名.组名 文件名
- 改变文件夹及里面所有文件和子文件夹的所有者和所属组
加上参数-R
查看和更改缺省权限
umask [-S] (英文愿意:the user file-creation mask)
- 以rwx的形式显示新建文件缺省权限,可以通过此命令显示、设置文件或目录的缺省权限。
- 缺省创建的文件不具有可执行权限。
- 不接选项-S时,以数字形式呈现。例如若显示为0022,第一位0为特殊权限,后三位表征所有者、所属组、其它人的权限,用777相减得到755,即权限为u=rwx,g=r-x,o=r-x。因此默认情况下创建的文件夹权限为rwxr-xr-x,默认创建的文件的权限为rw-r–r–。
文件扩展名
除了特定的文件外,Linux下的文件都没有后缀名,那么如何查看文件类型呢?可使用如下命令:
- file 文件名
- 例子:xxyy为用gedit创建的一个文本文件,编码方式为ASCII码。
- cmd
1 | [liuyee@localhost ~]$ file xxyy |
目录配置
系统文件夹
- bin:存放二进制文件;
- boot:存放系统启动文件及内核;
- dev:存放设备文件;
- etc:存放配置文件;
- home:存放用户的家目录;
- lib:存入链接库文件;
- media:系统挂载点(比如说插入U盘时,会访问该文件夹下的子文件夹);
- mnt:挂载点;
- opt:源码安装路径;
- proc:内核参数,不占用内核大小;
- root:root用户的家目录;
- sbin:存放系统二进制文件;
- tmp:临时文件;
- usr:安装软件时的默认文件;
- var:缓存、日志、数据库文件。
Linux只有一个根盘符’/‘,其它分区都放在根盘符下的文件夹内。
目录树
tree /boot/
查看/boot/的目录树。
Linux文件和目录管理
目录与路径处理命令
pwd
显示当前工作目录(Print Working Directory)
cd 目录
change dir到指定目录。
cd -
切换到前一次进入的目录(可以来回不停地在两个目录间切换)
mkdir 目录名
创建目录,可以同时创建多个。
mkdir -p 父目录名/子目录名
若父目录名不存在时,同时创建父目录名和子目录名。
rmdir 目录名
删除目录,只能删除空目录。
rmdir -p 父目录名/子目录名
同时删除子目录名和父目录名。等删除的目录名必须为空。
rm -rf 目录名
强制递归删除目录名及其所有子目录。
echo $PATH
显示系统默认路径。
PATH=’…:目录名’
将目录名加入系统默认路径。
文件管理命令
- 删除、拷贝、剪切操作
cp [选项]… /PATH1/xx /PATH2/yy
- 如果yy是一个文件夹,则将PATH1下的xx拷贝到PATH2下的yy文件夹下;
- 如果yy不是一个文件夹或不存在,则将PATH1下的xx拷贝到PATH2下,并重命名为yy。
mv [选项]… /PATH1/xx /PATH2/yy
- 如果yy是一个文件夹,则将PATH1下的xx剪切到PATH2下的yy文件夹下;
- 如果yy不是一个文件夹或不存在,则将PATH1下的xx剪切到PATH2下,并重命名为yy。
- 同一个文件夹操作,即可以改名。
rm [选项] 文件
删除文件。可选参数:-f 强制删除、-r 递归删除、-rf 强制递归删除
touch 文件名
- 创建一个空文件;
- 创建有文件名有空格的文件: touch “program files”
- 查看文件
cat 文件名
- 显示文件内容;
- -n 指定显示行号。
tac 文件名
- 显示文件内容,反向列示。
more 文件名
- 按空格或f:翻页
- 按Enter:换行
- 按Q:退出
less 文件名
- 分布显示文件内容,可按PgUp往上翻页。
- ‘/关键词’:查找关键词
tail 文件名
- 显示文件后面几行,默认最后10行;
- -n NUM 指定行数;
- -f 动态显示文件末尾内容。
- 创建软链接
ln -s 文件名 文件名.soft
- 生成软链接
- 软链接权限全部为rwx,但最权限仅由软链接所指向的文件的权限决定;
- 原文件丢失,软链接无法继续访问。
ln 文件名 文件名.hard
- 生成硬链接
- 相比拷贝,硬链接可以和指向的文件同时更新(映射到同一个i节点);
- 原文件丢失,硬链接可以继续访问;
- 不能跨分区;
- 不能针对目录使用。
文件搜索 find
- 搜索条件为文件名
- find / -name init
- 在根目录下查找文件名为init的文件
- find / -name *init*
- 在根目录下查找文件名中包含init的文件
- find / -name *init
- 在根目录下查找文件名以init开头的文件
- find / -name init???
- 在根目录下查找文件名以init开头并且后面接三个字符的文件
- find / -iname init
- 在根目录下查找文件名为init的文件,不区分大小写;
- 其它用法和name相同
- 搜索条件为文件大小
- find / -size +204800
- 在根目录下查找文件大小大于200MB的文件;
- 后面的参数为代表大于、为负代表小于、无符号代表等于。
- 搜索条件为文件所有者/所属组
- find / -user username
- 在根目录下查找文件所有者为username的文件。
- find / -group groupname
- 在根目录下查找文件所属组为groupname的文件。
- 搜索条件为时间
- find / -cmin -5
- 在根目录下查找5分钟内被修改过属性的文件和目录
- cmin: 文件属性,change
- amin: 访问时间,access
- mmin: 文件内容,modify
- 后面时间前面的符号为’-‘时,代表某个时间段内;为’+’时,代表超过某个时间。
- 根据文件类型查找
- find -type f
- f为文件,d为目录,l为软链接文件
- 根据i节点查找
- find -inum 31531
- 查找i节点为31531的文件;
- i节点可通过ls -i列出得到。
- 复合搜索条件
- find / -size +1024 -a -size -102400
- 在根目录下查找大于1Mb小于100Mb的文件
- 中间参数为-a,意思是and;参数为-o时,意思是or
- 对查找结果执行操作
- find / -name inittab -exec ls -l {} \;
- 对搜索结果显示详细信息。
- -exec可以换成-ok,对每个文件执行操作时都会要求确认。
文件搜索 locate
在文件资料库中查找文件,查找速度比find快,/tmp中的文件不能被收录入文件资料库
locate 文件名
- 区分大小写,若想不区分大小写,则需要加上-i选项。
更新文件资料库
- updatedb
搜索文件中的内容grep
- grep -iv [指定字串][文件]
- 在文件中搜索字串匹配的行并输出
- -i 不区分大小写
- -v 排除指定字串
压缩与解压
.gz压缩文件,只能压缩文件,压缩完后只剩压缩文件
- gzip 文件名:压缩gz文件
- gunzip 文件名:解压gz文件
- gzip -d 文件名:解压gz文件
.tar.gz打包目录,并压缩文件
- tar 选项 [压缩后文件名] [目录]
- 选项-c:打包
- 选项-v:显示详细信息
- 选项-f:指定文件名
- 选项-z:打包同时压缩
- tar 选项 [压缩后文件名] [目录]
解压tar命令
- tar 选项 [压缩后文件名] [目录]
- 选项-x:解包
- 选项-v:显示详细信息
- 选项-f:指定解压文件
- 选项-z:解压缩
- tar 选项 [压缩后文件名] [目录]
.zip压缩文件,可以压缩文件或目录,压缩后会保留压缩文件和目录
- zip 选项 [压缩后文件名] [文件或目录]
- 选项-r:压缩目录
- zip 选项 [压缩后文件名] [文件或目录]
解压缩.zip文件
- unzip [压缩文件]
.bz2压缩文件
- bzip2 选项 [文件]
- 选项-k:产生压缩文件后保留原文件
- .gz的升级版,一般用于压缩大型文件
- tar -cjf [压缩后目录名.tar.bz2] [目录]
- 压缩目录,生成.tar.bz2压缩文件
- bzip2 选项 [文件]
解压.bz2压缩文件
- bunzip2 选项 [压缩文件]
- 选项-k:解压缩后保留原文件
- 范例1:bunzip2 -k 文件名.bz2
- 范例2:tar -xjf 目录名.tar.bz2
- bunzip2 选项 [压缩文件]
“ 万物皆有时,比如你我相遇 ”