1文件分类
在Linux/Unix下,block,char,dir,fifo,file,link,unknown等七种类型
block:块设备文件,c盘分区,光驱,cd-rom等b
char:字符设备,I/O以字符为单位,鼠标,复印机等c
dir:目录也是文件的一种d
fifo:命名管线f
file:普通文件类型-
link:符号链接,是指向文件表针的表针,类似windows中的快捷方法l
unknown:未知文件
drwxr-xr-x.5rootroot1008月1022:19disk
第1列:包含该文件的类型
d文件夹(dir)
-普通文件(file)
l链接文件(link)
b块设备文件(block)
p管线文件(fifo)
c字符设备文件(char)
s套插口文件(socket)
文件类型旁边的9位,每3个为一组,"r"代表可读,"w"代表可写,"x"代表可执行
前3位为所属主(user)的权限,中间3位为所属组(group)的权限,最后3位为其他非本群组用户(others)的权限
第2列:表示链接占用的节点(innode),假如是目录,那这个数值与该目录下是子目录数目有关。
第3列:表示该文件的所属主。
第4列:表示该文件的所属组。
第5列:表示该文件的大小。
第6列、第7列和第8列:表示该文件最后一次被更改的时间(mtime),依次为月份、日期以及时间。
第9列:表示文件名
2、文件权限
r权限:(可读权限),权重值4
w权限:(可写权限),权重值2
x权限:(可执行权限),权重值1
常用的权限代码:777、755、644,这种数字都是由(4、2、1拼接而至的),采用八补码
①7=4+2+1=r+w+x=可读可写可执行
②5=4+1=r+x=可读可执行
③4=4=r=可读权限
1可执行
2可写
3可执行可写
4可读
5可读可执行
6可读可写
7可读可写可执行
3、目录操作(创建目录与删掉目录)
mkdir指令创建目录
选项:
-p:parent的简写,若所要完善目录的下层目录目前仍未完善,则会一并完善下层目录。
>mkdir-pApplication/Admin/Controller
-m:mode的简写,创建目录时指定目录权限
>cdApplication
>mkdir-m777Runtime
rmdir指令:删掉目录
选项:
-p:parent的简写,删掉指定目录后,若该目录的下层目录已弄成空目录,则将其四并删掉。
注意:在Linux中使用rmdir指令删掉文件夹时必须保证其内部没有子文件或子文件夹,否则难以删掉,即使用rmdir-p也不能删掉,
由于rmdir指令只能删掉目录,不能删掉文件,假如要删掉有子文件的目录可以使用rm-r指令删掉富含子文件的目录(慎重操作)
5、文件操作(创建文件与删掉文件)
创建文件
方式一:使用vim指令(vim代表创建并打开),倘若文件未保存,则该文件不存在。
方式二:使用touch指令(touch代表只创建文件但不打开)
删掉文件(强烈推荐)
rm指令删掉文件
-r:recursive的简写递归处理,将指定目录下的所有文件及子目录一并处理。
>rm-rApplicatin
输入y(或yes)或n(no)来确定或取消
注意:执行rm指令可删掉文件,如欲删掉目录必须加上参数"-r",否则预设仅会删掉文件。
-f:force的简写删掉时不弹出确认提示
>rm-rfApplication
6、复制与剪切(重命名)操作
cp指令
cp[参数]:复制文件到目标路径
-r(或-R):recursive的简写,递归处理,将指定目录下的所有文件与子目录一并处理。
-p(大写):preserve的简写,复制时保持文件的原有权限
-v:显示复制进度(进度条)
>cpfile1dir1
mv指令
mv[参数][源文件或目录]:剪切文件到目标路径
-v:显示剪切进度(进度条)
>mvdir1/dir2dir3/dir4//dir2联通到dir4目录下,并更名字为原名
>mvdir1/dir2dir3/dir4//dir2联通到dir4目录下,并更名字为原名
mv不仅可以剪切还可以重命名文件,基本句型:
>mvoldFileNamenewFileName
怎样判别是重命名还是联通文件
只在当前目录下操作,则是重命名;
在不同的目录下操作,则是联通文件;
7、文件统计
wc[参数]
-c:character简写,统计文件中一共有多少个字符
-l:line简写,统计文件中一共有多少行
-w:word简写,统计文件中一共有多少个词组
>wcfilename//查看文件行数
7870test.txt
行数词组数字节数文件名
8、grep搜索匹配行
grep[参数]
-n:显示所有匹配到的关键词所在行号
>grep-nmysqlinstall.log
-c:统计一共有多少个匹配的行
>grep-cmysqlinstall.log
-i:ignore简写,匹配关键词时忽视大小写
>grep-cimysqlinstall.log
9、显示文件内容
cat乱序显示文件所有内容
-n由1开始对所有输出的行数编号
>catuser.txt
>cat-n2user.txt
tac逆序显示文件的所有内容
-n由1开始对所有输出的行数编号
>tacuser.txt
>tac-n2user.txt
10、更改文件权限
chmod:修改文件权限
chmod用户名文件名
-R:递归(只能是小写的)recursive简写
>chmod-R777oa
u表示文件拥有者
g表示文件所属的用户组
o表示其他用户
aa=u+g+o
+降低权限
-降低权限
=设置权限
r可读取
w可写入
x可执行
-R递归更改
chmodu+ra.txt#所属用户降低可读权限
chmodu-ra.txt#所属用户降低可读权限
chmodu=ra.txt#所属用户设置可读权限
chmoda+ra.txt#给所有人降低可读权限
chmodu+x,g+wa.txt#同时更改多个权限
chmodug+xa.txt#同时更改多个权限
chmod777a.txt#给所有人降低读、写、执行权限
chmod-R777目录#更改目录及目录下所有文件的权限
chown:修改文件的拥有者
-R:递归(只能是小写的)
>chmod-Rxutaooa
chgrp:修改文件的所属组
-R:递归(只能是小写的)
>chmod-Rxutaooa
11、创建软链接(快捷方法)
基本句型:
ln-s
非常注意:软链接的创建器源文件与目标文件的路径必须是全路径(从根路径开始),倘若为当前路径下的文件指定软联接,则毋须写全路径。
>cd/home
>ln-sdata.txt/home/data.txt
命令:umask
上面也谈到了默认情况下,目录权限值为755,普通文件权限值为644,这么这个值是由谁规定呢?追究其缘由就涉及到了'umask'.
umask句型:umaskxxx(这儿的xxx代表三个数字)
查看umask值只要输入‘umask’然后回车。
>#umask
0022
umask预设是0022,其代表哪些涵义?先看一下下边的规则:
1)若用户构建为普通文件,则预设'没有可执行权限',只有'rw'两个权限。最大为666('-rw-rw-rw-').
2)若用户构建为目录,则预设所有权限均开放,即777('drwxrwxrwx').
umask数值代表的涵义为,上面两条规则中的默认值(文件为666,目录为777)须要减掉的权限。所以目录的权限为'rwxrwxrwx'-'----w--w-'='rwxr-xr-x',
普通文件的权限为'rw-rw-rw-'-'----w--w-'='rw-r--r--'.
umask的值是可以自定义的,例如设定umask为002,你再创建目录或则文件时,
默认权限分别为'rwxrwxrwx'-'-------w-'='rwxrwxr-x'和'rw-rw-rw-'-'-------w-'='rw-rw-r--'.
[root@localhost~]#umask002
[root@localhost~]#mkdirtest2
[root@localhost~]#ls-ldtest2
drwxrwxr-x2rootroot40965月1009:44test2
[root@localhost~]#touchtest3
[root@localhost~]#ls-ltest3
-rw-rw-r--1rootroot05月1009:45test3
可以见到创建的目录权限默认变为775,而文件默认权限变为664.之后再把umask改回去。
[root@localhost~]#umask022
[root@localhost~]#touchtest4
[root@localhost~]#ls-ltest4
-rw-r--r--1rootroot05月1009:45test4
umask可以在/etc/bashrc上面修改,预设情况下,root的umask为022,而通常使用者则为002,由于可写的权限十分重要,因而预设会去除写权限。
递归更改目录权限为755,文件权限为644
1.更改所有者:
>#chown-Rroot.rootpath(递归更改指定路径的所有文件为root用户组所有)
2.更改目录权限:
>#findpath-typed-execchmod755{};
3.更改文件权限:
>#findpath-typef-execchmod644{};