• linux文件和目录(二)


    rm命令

    rm 删除文件,删除时会提示是否删除。默认会附带选项-i。使用/usr/bin/rm就不会有提示。
    rm -f 强制删除没有任何提示,包括错误信息也不提示。
    rm -r 删除目录
    rm -v 删除时可以看到删除的过程
    
    语法
    rm -rfv [目录]

    环境变量PATH

    如果命令在$PATH定义的路径下,可以在任何路径执行。
    临时在PATH下添加路径:PATH= PATH下添加路径:PATH=PATH下添加路径:PATH=PATH:目录
    永久在$PATH下添加路径:vi /etc/profile
    或
    echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
    source /etc/profile

    cp命令(拷贝)

    cp 复制源文件至目标文件,默认附带-i选项,提示是否覆盖目标文件。
    cp -r 复制源目录至目标目录
    约定:凡是目录尾部都加上/
    当目标目录存在,源目录会复制到目标目录下做为他的子目录
    
    [root@centos ~]# cp /etc/passwd /root/1.txt 
    [root@centos ~]# cp /etc/passwd /root/1.txt  若1.txt有你内容会提示你是否覆盖
    cp: overwrite ‘/root/1.txt’? y

    mv命令

    mv 把源文件移动至目标位置(默认附加-i选择)
    如果目标是一个目录,将直接移动至这个目录下
    如果目标是一个文件且不存在,将被视为移动并改名。
    如果目标是一个文件且存在,将提示覆盖文件(直接使用/usr/bin/rm 命令将不提示覆盖)。
    如果源是一个目录,目标目录存在将会把源目标移动至目标目录之下。
    如果源是一个目录,目标目录不存在被视为移动并改名。

    文档查看cat more less head tail

    cat命令

    cat 文件 查看文件内容
    tac 文件 倒序查看文件内容
    cat -A 显示所有字符,包括换行,结束。等隐藏符号。
    cat -n 显示行号

    more命令

    more 文件 分屏显示文件内容。
    显示时按“空格” 向下翻页,看完全部自动退出
    显示时按“ctrl+b"向向上翻页

    less命令

    less 命令 分屏显示文件内容。看完后不自动退出。按q键退出。
    显示时按上下箭头一行一行的查看。
    和more的翻页方式相同。
    向下查找功能“/”: /查找内容 #会将查找内容高亮。
    查找下一个相同内容 按字母“n”键。查找上一个相同内容shift+n
    向上查找功能“?”: ?查找内容 #会将查找内容高亮。
    查找上一个相同内容 按字母“n”键。查找下一个相同内容shift+n
    shift+g 定位至文件未尾
    按一下g 定位至文件开头

    head&tail

    head 显示文件开头10行内容
    head -n 显示文件开头n行内容
    tail 显示文件倒数10行内容
    tail -n 显示文件未尾n行内容
    tail -f 动态显示文件未尾10行内容

    chomd命令

    用ls -l +文件命令列出每个位置是什么

    [root@linux1 ~]# touch 1.txt 创建一个文件
    [root@linux1 ~]# ls -l 1.txt
    总用量 20
    -rw-r--r--. 1 root root     0 8月  29 11:26 1.txt
    
    • 第一位开头是文件类型,后面九位都是权限位
    • 权限位后面有一个(.)受至于selinux,关闭selinux在创建文件目录就没有(.)
    • 在九位权限位。前三位便是所有者权限拿上面1.txt文件(rw-)中间三位是所属组权限(r–)最后三位是其他用户权限(r–)

    解释rwx

    r 可读 用数字表示4

    w可写 用数字表示2

    x 可执行 数字表示1

    • 权限可以用数字表示,比如777 所有者权限(rwx)所属组(rwx)其他用户(rwx)都是可以读写执行
    • 怎么得到777就是把三个字母用数字表示来相加

    更改权限命令chmod

    • 语法chmod 777 +文件或者目录名字
    [root@linux1 ~]# chmod 777 1.txt 
    [root@linux1 ~]# ls -l 1.txt 
    -rwxrwxrwx. 1 root root 0 8月  29 11:26 1.txt
    

    chmod -R 操作只对目录或文件生效。需要目录以及子文件全部生效就需要加上-R

    [root@linux1 ~]# mkdir 123
    [root@linux1 ~]# touch 123/1.txt
    [root@linux1 ~]# touch 123/2.txt
    [root@linux1 ~]# ls -l
    总用量 20
    drwxr-xr-x. 2 root root    32 8月  29 11:44 123
    [root@linux1 ~]# ls -l 123/
    总用量 0
    -rw-r--r--. 1 root root 0 8月  29 11:43 1.txt
    -rw-r--r--. 1 root root 0 8月  29 11:44 2.txt
    
    
    [root@linux1 ~]# chmod -R 777 123/
    [root@linux1 ~]# ls -l
    总用量 20
    drwxrwxrwx. 2 root root    32 8月  29 11:44 123
    [root@linux1 ~]# ls -l 123/
    总用量 0
    -rwxrwxrwx. 1 root root 0 8月  29 11:43 1.txt
    -rwxrwxrwx. 1 root root 0 8月  29 11:44 2.txt
    

    chown命令更改所有者和所属组

    • 用法chown 所有者:所属组 文件或者目录
    • 修改1.txt文件的所有者 也支持同时更改所有者和所属组
    [root@linux1 ~]# useradd centos 创建一个用户
    [root@linux1 ~]# ls -l 1.txt 
    -rwxrwxrwx. 1 root root 0 8月  29 11:26 1.txt 所有者和所属组都属于root
    
    [root@linux1 ~]# chown centos:root 1.txt  更改所有者
    [root@linux1 ~]# ls -l 1.txt 
    -rwxrwxrwx. 1 centos root 0 8月  29 11:26 1.txt 更改成功
    
    [root@linux1 ~]# chown centos:centos 1.txt 更改所属组
    [root@linux1 ~]# ls -l 1.txt 
    -rwxrwxrwx. 1 centos centos 0 8月  29 11:26 1.txt
    
    • chonw -R同时可以更改目录与子目录或文件的所有者所属组
    [root@linux1 ~]# ls -l
    总用量 20
    drwxrwxrwx. 2 root   root      32 8月  29 11:44 123
    
    [root@linux1 ~]# ls -l 123/
    总用量 0
    -rwxrwxrwx. 1 root root 0 8月  29 11:43 1.txt
    -rwxrwxrwx. 1 root root 0 8月  29 11:44 2.txt
    更改所有者和所属组
    [root@linux1 ~]# ls -l
    总用量 20
    drwxrwxrwx. 2 centos centos    32 8月  29 11:44 123
    
    [root@linux1 ~]# ls -l 123/
    总用量 0
    -rwxrwxrwx. 1 root root 0 8月  29 11:43 1.txt
    -rwxrwxrwx. 1 root root 0 8月  29 11:44 2.txt
    
    

    umask命令

    • linux创建目录和文件的默认权限值是怎么来的?运行下umask
    [root@linux1 ~]# umask
    0022
    
    • 目录最高权限是777
    • 文件最高权限是666
    • 默认值是怎么由来
    当前用umask查看的出值为0022
    目录(最高权限为777) 777-022=755 所以创建目录默认值为755
    文件(最高权限为666) 666-022=644 所以创建文件默认值为644
    • 当然也可以更改umask值
    [root@linux1 ~]# umask 0002
    [root@linux1 ~]# umask
    0002
    这时候我们创建的目录默认值为775,文件为664
    
    • 这个规律逻辑不一定是准确的
    • 假如把umask设置0003,按之前文件算法666-003=663,实际测试下
    [root@linux1 ~]# umask 0003
    [root@linux1 ~]# touch 3.txt
    [root@linux1 ~]# ls -l 3.txt 
    -rw-rw-r--. 1 root root 0 8月  29 12:07 3.txt
    
    • 之前算法是有漏洞
    • 正确算法
    文件666(rw-rw-rw-)-003(-------wx)=rw-rw-r-也就是664
    目录777(rwxrwxrwx)-003(rwxrwxr--)=rwxrwxr--也就是774
     
  • 相关阅读:
    常用正则表达式大全
    js基础的自定义属性练习
    AngularJS中最重要的核心功能
    Architecture.the-reactive-manifesto
    iOS.ReactNative-3-about-viewmanager-uimanager-and-bridgemodule
    iOS.DistributionApp.1-mobile-provision-file[draft]
    iOS.DistributionApp.0-build-adhoc-distribution-for-tester
    iOS.ReactNative-5-make-react-native-to-support-dynamically-update
    OpenSource.organization-in-github
    iOS.Performance-trick-presentViewController-is-so-slow-in-didSelectRowAtIndexPath
  • 原文地址:https://www.cnblogs.com/yantou/p/13409368.html
Copyright © 2020-2023  润新知