zoukankan      html  css  js  c++  java
  • linux命令笔记-文件目录管理(二)

    cd 用来变更用户所在目录

    cd 目录名  切换到指定目录下

    pwd  打印出当前目录

    cd ./  当前目录

    cd ../  切换到上一级目录


     mkdir 创建目录

    mkdir 目录名  当目录的上一级不存在时,会报错

    mkdir -p 目录名  当目录的上一级不存在时,自动创建

    mkdir -m 权限 目录名  创建目录时,同时指定目录的权限 


    ls

    ls -ld 目录名  查看目录的属性

    ls -l 目录名 查看目录下的文件

    [root@localhost ~]# ls -ld /tmp/test/123
    drwxr-xr-x. 2 root root 4096 2月 20 18:10 /tmp/test/123

    rmdir 删除空目录

    rmdir 目录名1 目录名2  删除多个目录用空格分割

    rmdir 目录名1/目录名2/目录名3  级联删除多个目录


    rm 删除目录

    rm -r 目录名  删除时,会提示是否删除,输入'y'则会删除,输入'n'就不删除

    rm -rf 目录名  强制删除


     环境变量PATH设置

    which 命令 查找某个命令的绝对路径

    echo $PATH  打印$PATH内容

    PATH=$PATH:/root  将root路径加入$PATH中


    cp 拷贝

    cp  test1 test2   将test1文件拷贝成test2文件

    cp -r 目录1 目录2  拷贝目录 

    cp -i ……   遇到一个存在的文件,会问是否覆盖

    cp -a 目录1 目录2  复制之后的目录和原目录完全一样

    touch 文件名  如果有这个文件,则会访问这个文件,如果没有这个文件,则会创建这个文件

    echo 'abc' > 111 将'abc'写进文件111中,覆盖原先的内容

    echo 'def' >> 222 将'def'写进文件111中,追加到尾部

    cat 文件名  把读出的内容打印到当前屏幕上


    mv 是move的缩写

    mv dira dirb 若dirb目录不存在,则相当于把'dira'目录重命名为'dirb'

    mv dirc dirb 若dirb目录存在,则会把'dirc'移动到'dirb'目录里

    mv file1 file2 若file2文件不存在,则会把'file1'重命名为'file2'

    mv file2 dirb 将file2文件移动到dirb中


    cat 查看文件并显示到屏幕上

    cat -n 文件名  查看文件时,把行号也显示到屏幕上

    cat -A 文件名 显示所有东西出来,包括特殊字符

    tac 文件名 把文件的内容显示在屏幕上,先显示最后一行,再显示倒数第二行……最后显示第一行


    more 查看文件(下一屏)

    more 文件名  当文件内容多时,可以看完一屏后按空格键继续看下一屏,看完后就会退出。若想提前退出,只需按'q'键即可


    less 查看文件(翻页、查找)

    less 文件名 可以上翻、下翻,空格键同样可以翻页,按'j'键可以向下移动,按'k'键向上移动(每次移动一行)。

    使用more或者less时,按一下'/'或'?'键,然后输入一个word回车,这样就可以查找这个word了,'/'是向下搜索,'?'是向上搜索


    head 查看文件(行)

    head 文件名  显示文件的前十行

    head -n   行数  文件名 显示文件前n行

    tail  文件名  显示文件最后十行

    tail -n 行数 文件名  显示文件最后n行

    tail -f 文件名  动态显示最后十行(当文件不断增加时)         


    文件的所属主以及所属组

    所属主:即文件的拥有者,所属组:即文件所属主所在的一个组

    通过ls -l查看


    文件属性

    [root@localhost ~]# ls -l
    总用量 40
    -rw-------. 1 root root 652 3月 7 12:00 anaconda-ks.cfg
    drwxr-xr-x. 3 root root 3201 3月 11 05:10 dirb

    上面的例子详解:

    第一列'drwxr-xr-x':

      第一位标识文件类型:'d'是目录,'-'普通文件,'l'是链接文件,'b'是块设备,'c'是串行端口设备(鼠标、键盘等),'s'是套接字文件(用于进程间通信)

      后面的九位,三个一组。其中r 代表可读,w代表可写,x代表可执行。前三个是所属主(user)的权限,中间三个是所属组
    (group)的权限,后三个是其他非本组权限。

      第二列:'3' 是占用的节点,为目录时,通常与该目录地下还有多少目录有关系

      第三列:该文件的所属主

      第四列:该文件的所属组

      第五列:该文件的大小 

      第六、七、八列:文件最近修改的日期,分别是month、day、时分(atime)

      第九列:文件名


    更改文件所属组 chgrp

    groupadd 组名  增加一个用户组

    chgrp 组名 目录   只改了目录的所属组,没有修改目录下的文件和子目录

    chgrp -R 组名 目录  级联修改,修改了目录以及目录下的文件、子目录所属组


    更改文件所属主 chown

    useradd 用户名  创建用户

    chown 用户名 目录/文件  若是目录,只改了目录的所属主,没有修改目录下的文件和子目录

    chown -R 用户名 目录  级联修改,修改了目录以及目录下的文件、子目录所属组

    chown -R 用户名:组名  目录  目录以及目录下的文件均修改了修改所属主, 所属组


    改变用户对文件的读写执行权限 chmod

     rwx:r=4,w=2,x=1,'-'=0

    例如:'drwxrwx---'用数字表示是770

    chmod [-R] xyz 文件名 (这里的xyz表示数字)  

    chown还支持rwx的方式设置权限(1)user(2)group(3)others,分别用u、g、o代表,a代表全部

    例如:chown u=rwx,og=rx test


     umask

    目录权限默认值是775,普通文件权限是664

    umask xyz (xyz代表数字)

    umask的值与权限:

    umask 文件 目录
    0 6 7
    1 6 6
    2 4 5
    3 4 4
    4 2 3
    5 2 2
    6 0 7
    7 0 0

    chattr 修改文件特殊属性

    chattr [+-=][ASaci] [文件或目录名]

    注释:'+-=':分别为增加、减少、设定

    'A':文件或目录的atime将不可被修改;

    'S':将数据同步写入磁盘中;

    'a':只能追加不能删除,非root用户不能设定该属性;

    'c':自动压缩该文件,读取时会自动解压;

    'i':文件不能被删除、重命名、设定链接、写入、新增数据


    lsattr 读取文件或目录的特殊权限

    lsattr [-aR] [文件/目录名]

    '-a' 类似与ls 的-a 选项,即连同隐藏文件一同列出;

    '-R'连同子目录的数据一同列出


    find 查找

    find [路径] [参数]

    -atime +n/-n:访问或执行时间(Access time)大于/小于n天的文件

    -ctime +n/-n:写入、更改incode属性(例如更改所有者、权限或者链接)时间(Create time)大于/小于n天的文件

    -mtime +n/-n:写入时间(Modified time)大于/小于n天的文件

    例如:find /tmp/ -atime +10 

    stat命令可以列出文件的atime、ctime、mtime

    例如:stat test/test1

    (atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息。总之, 這三個 time stamp 都放在 inode 中。若 mtime, atime 修改inode 就一定會改, 既然 inode 改了, 那 ctime 也就跟着要改了)
    find -name filename 根据文件名查找文件
    例如:find -name test1

    find filetype 根据文件类型查找

    例如:find /tmp/ -type f


    链接文件

    索引节点(inode)
    在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。
    硬链接(Hard Link)
    硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。
    引用
    ln [options] existingfile(文件名) newfile(链接名)
    ln [options] existingfile-list(目录名) directory(链接名)

    用法:
    第一种为”existingfile”创建硬链接,文件名为”newfile”。
    第二种在”directory”目录中,为” existingfile-list”中包含的所有文件创建一个同名的硬链接。
    常用可选[options]:-f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接

    软链接(Soft Link)

    软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。

    可以用:ln -s 命令来建立软链接。

    引用

    ln -s existingfile(文件名) newfile(链接名)

    ln -s existingfile-list(目录名) directory(链接名)

    [root@localhost ~]# mkdir file01
    [root@localhost ~]# cd file01
    [root@localhost file01]# cp /etc/passwd ./
    [root@localhost file01]# ll      #ll相当于ls -l
    总用量 4
    -rw-r--r-- 1 root root 1097 5月 10 17:08 passwd
    [root@localhost file01]# du -sk
    8 .
    [root@localhost file01]# ln passwd passwd-hard  #建立硬链接
    [root@localhost file01]# ll
    总用量 8
    -rw-r--r-- 2 root root 1097 5月 10 17:08 passwd
    -rw-r--r-- 2 root root 1097 5月 10 17:08 passwd-hard
    [root@localhost file01]# du -sk
    8 

     

  • 相关阅读:
    全局数据库名称/数据库实例/SID 的区别
    【转载】ORACLE 10G DBCA创建脚本实现手动创建数据库
    apue 20130328
    apue 20130323
    visual c++6.0
    C语言
    apue 20130322
    apue 20130324
    apue 20130325
    C语言里的字符串解析
  • 原文地址:https://www.cnblogs.com/nsds/p/6588360.html
Copyright © 2011-2022 走看看