天天看点

linux目录管理和文件管理常用命令

1、目录管理

1.1、linux的目录结构

.:当前目录

..:上一级目录

/:根目录

/bin:二进制,可执行的命令

/boot:引导,操作系统用于引导系统启动的文件,内核、grub

/dev:设备文件

    linux的设备类型:

        字符设备:c,线性设备

        块设备:b,随机设备

/etc:配置文件

/home:用户的家目录,/home/username,jerry,/home/jerry

/root:管理员的家目录

/lib,lib64:库文件

/media:挂载点目录,通常用于挂载便携性设备

/mnt:挂载点目录,挂载额外的文件系统

/misc:备份目录

/opt:可选目录,通常第三方软件偶尔安装于此路径下

/proc:伪文件系统:内存中内核的映射

/selinux:安全加强的linux

/srv:伪文件系统,通常用于访问硬件设备属性信息

/tmp:临时文件目录

/usr:储存只读文件

/var:经常会发生变化的文件:比方说日志等

1.2、linux下的文件以及文件的目录命名规则:

1.长度不能超过255个字符

2.不能使用/(斜线)当文件名, 建议不要使用特殊字符

3.严格区分大小写

1.3、目录管理常用命令

cd    更换工作目录用法:cd [directory]

    cd .. 返回上级目录

    cd ~  返回家目录

    cd    回家目录

    cd -    在上个目录和当前目录之间切换

    cd ~username    切换到username的家目录

pwd:显示当前目录

dirname:显示指定路径的目录

mkdir建立目录用法:mkdir [option] directory

    -p:父目录    如果我们指定z的话,z的父目录y不存在的话会自动先创建y,如果y的父目录x不存

        在的话会自动先创建x

    -v:显示创建过程

/mnt/test/x/m  /mnt/test/y   这个怎么同时创建?

rmdir(remove directory):删除目录,只能用于删除空目录

    -p:父目录

    -v:显示详细过程

注:加了-p后,只能删除一线单传的目录:即把z删除后,y目录 空了,就会把y目录删除,当y 删除后,x目录空了,就会把x 目录删除,但是root不空,所以不能删除root目录。

2、文件的管理

2.1、文件的类型

linux文件类型:

普通文件(-):a.html,b.txt,c.ppt,ls

目录文件(d):

特殊文件:

    块设备文件(b):

    字符设备文件(c):

符号链接文件(l):

命名管道文件(p):pipe

套接字文件(s):socket

判断普通文件的内容类型,使用file命令:#file 命令

2.2、文件的权限

目录权限:

    r:可以对目录执行ls命令,但不允许使用-l选项,而且,不能cd到目录中;

    w:可以在目录创建文件;

    x:可以对目录执行ls -l 命令,且能够cd进去。

文件系统安全模型:

    属主 属组 其它

    u,  g,  o

    ---:000 --> 0

    --x:001 --> 1

    -w-:010 --> 2

    -wx:011 --> 3

    r--:100 --> 4

    r-x:101 --> 5

    rw-:110 --> 6

    rwx:111 --> 7

3位二进制对应一个8进制

4位二进制对应一位16进制

    0,9,a,b,c,d,e,f

    f:1111

    9:1001

2.3、文件管理常用命令

cat、tac、more、less、head、tail    显示文件

cat    顺序显示整个文件    cat filename 

    -n:显示行号

    从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

    将几个文件合并为一个文件:cat file1 file2 > file

tac    逆序显示文件

more    满屏显示文件内容,向后翻,在翻至文件尾部之前允许向后翻 敲空格键:下一屏,按q结束

    -n:显示n行

    +n:从第n行开始显示

less:向前翻,在翻至文件头部之前允许向前翻敲b键:往前翻一屏回车键,往前翻一行

head:文件的前n行      n默认为10,且默认不显示文件名

    -q:隐藏文件名    

    -v:显示文件名

    -n n或-n::显示n行

    -c n:显示n个字节

tail:文件的后n行

    -n n或-n::显示n行

    -f:查看一个文件的尾部内容后,不退出,等待并显示新增的行; 退出使用ctrl+c结束

文件的创建和删除:在linux下,目录和文件是不能同名的,在windows下,也不能,因为windows下的文件都有后缀

touch                        

touch:主要命令不是用来创建文件的,是用来修改时间戳的

   时间戳:访问时间,修改时间,改变时间 

   -c:不创建任何文件

   -a:只改变访问时间      访问时间改变,改变时间也会改变

   -m:只改变修改时间      修改时间改变,改变时间也会改变

   -t:指定修改时间到某个指定时间,格式为[cc]yymmddhhmm.ss

stat:显示文件或文件系统的状态信息   

创建文件,可以使用文件编辑器   文本编辑器只是编辑纯ascii码的

  word不是文件编辑器,只是字处理器

nano、vim:文本编辑器

rm:删除文件

  -i:删除前提醒

  -f:强行删除

  -r:删除目录  删除目录下所有的文件

注:为什么会提示,因为这里的rm命令不是源生的rm命令,是被修改后的rm命令,是rm -i的别名,(命令别名),-i 交互式,如果你删的话,就跟你交互一下,问你要不要删因为现在是管理员,为了避免误删,所以有这个提示,普通用户没有提示

命令别名:

    alias

    \command:使用命令自身,而不使用与命令名称同名的别名

cp:copy    复制和移动文件    cp srcfile dest

    -r 或 -r : 复制目录及及目录中的文件的,实现递归复制

    -f :  强行复制,如果目标文件存在直接覆盖;如果文件目标不能打开,先把它删了,再重试

    -i :  交互式,覆盖前提醒确认

    -p :  复制文件后保留原有的属主、属组、权限以及时间戳

    -a :  全部复制,归档

复制文件能不能把一个文件复制为另外一个文件(能),能不能把一个文件复制为多个文件(不能),把一个文件复制为多个目标(不能),可不可以把多个文件复制为一个文件(不能),可不可以把多个文件复制到一个目录(能),可不可以把多个文件复制为多个文件(cp不能,可以使用脚本实现)

cp file1 file2 file3  

cp命令只有最后一个是目标,此前的所有都是源,不允许一个源多个目标,也不允许多个源多个目标

注:如果目标test不存在,则复制到tmp下并命名为test。如果test存在的话,则看是目录还是文件,是文件则提示我们 是不是覆盖掉,即删除原来的test文件,将passwd复制过来重新命名为test;是目录,则把passwd放到test目录下,并保存为原来的名字

cp命令默认下不会复制目录,如果要复制目录,cp有个递归选项:-r或-r都可以,即复制目录及目录下的所有文件

注:创建了一个链接,而且是指向当前的链接文件,但是是错的,因为tmp下没有init.d这个文件在linux上显示位红色

mv    移动文件及目录 用法:mv [option]...source dest

    -f:强行移动,如果目标文件存在直接覆盖;如果文件目标不能打开,先把它删了,再重试

    -i:交互式,移动覆盖前提醒确认

    -b:若需覆盖文件,则覆盖前先行备份。

通配符:bash支持文件名通配,globbing

*:任意长度的任意字符

?:任意单个字符

[]:指定范围内的任意单个字符

    [0-9]:所有的数字

    [a-z]或[a-z]所有的字母

    [0-9a-z]或[0-9a-z]所有的数字和字母

字符集和:

[:digit:] :所有的数字,相当于0-9    [0-9],[[:digit:]]

[:lower:] :所有的小写字母

[:upper:] :所有的大写字母

[:alpha:] :所有的数字

[:alnum:] :相当于[0-9a-z]所有的数字和字母

[:space:] :空白符号

[:punct:] :所有标点符号

[^]:脱字符,取反,指定范围外的任意但个字符