zoukankan      html  css  js  c++  java
  • doraemon的python centos的入门(二)文件目录操作

    4 文件的操作

    4.1 增

    mkdir

    mkdir liujia
    mkdir liujia-{2..10} 批量创建文件夹
    mkdir -p a/b/c/d 递归创建
    mkdir -pv {s13,s14}/{ss11,ss12}/{sss11,sss12} 显示创建过程

    4.2 查

    tree

    yum install -y tree
    tree name
    -L 控制显示的层数
    -b 值显示目录

    4.3 删

    只能删除空目录

    mkdir -p liu/jia/dan/ni
    rmdir -p liu/jia/dan/ni

     

    文件类型:用ll查询的时候权限前面的那个字母

      • 表示文件

    • d表示目录

    • l 表示链接

    • b 块设备

    • c 字符设备

    • s 表示socket套接字

    4.4 链接

    • 硬链接(硬链接就是指向源文件的内存地址,相当于python中的一个变量名)

      • ln 源文件 目标文件

      • 源文件发生改变,目标会发生改变

      • 将硬盘的引用次数+1

      • 删除

        • 将磁盘上的引用次数-1

        • 源文件删除对目标不会受影响

      • 不能对目录做硬链接

      • 不能跨越分区

    • 软链接

      • 相当于windows的快捷方式

      • ln -s 可以生成软链接

      • 链接大小就是制定的源文件的字符数

      • 源文件发生改变,目标会发生改变

      • 删除

        • 源文件删除目标会收影响

      • 可以对目录做软链接

      • 可以跨域分区

    4.5 i/o重定向

    输入

    • 标准输入:接收来自键盘的输入 stdin 0

    输出

    • 标准输出:默认输出到终端 stdout 1

    • 错误输出:默认输出到终端 stderr 2

    io重定向:把输出和错误信息重定向到文件或者别的地方

    > 覆盖

    • > 把stdout的数据重定向到文件里面

    • 2> 把stderr信息重定向到文件里面

    • &> 把所有的输出都同时重定向到文件

    >> 追加

    • >> 把标准的数据追加到文件中

    • 2>> 把错误输出追加到文件中

    • &>> 把所有的输出都同时追加到文件里面

    4.6 io的综合操作

    分文件输出

    • ls b bbbbb > info.log 2> error.log

    合并输出

    • &>

    • &>>

    • command > info.log 2>&1

    • command > info.log 2>>&1

    • /dev/null 无线接收的无底洞

    • ()多个合并

    tr替换或者删除

    tr 'a-z' 'A-Z' </etc/issue
    [root@localhost jiangyi]#tr ab 12
    ab
    12
    [root@localhost jiangyi]#tr abc 12 如果后面的位数不足的话,则用最后一位补齐
    abc
    122
    ab
    12
    tr -d abc < issue > issue2 从定向不能为原来的文件,如果说为原来的文件,则文件情况
    -d 删除
    -t 用来截断
    [root@localhost jiangyi]#tr -t abcd 12
    abcd
    12cd
    cd
    cd
    -s 压缩 去重
    [root@localhost jiangyi]#tr -s abc
    abc
    abc
    aaabbbccccccccccccccccccccccccccccc
    abc
    -c 取反
    [root@localhost jiangyi]#tr -sc abc
    aaaaaaaaaaaaaabbbbbbbbbbbbbbbcccccccccccccc
    aaaaaaaaaaaaaabbbbbbbbbbbbbbbcccccccccccccc
    aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbcccccccccccccccccdddddddddddddeeeeeeeeeeeeffffffffffffff
    aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbcccccccccccccccccdef
    aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccc1111111111111111222222222222333333333333
    aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccc123
    [root@localhost jiangyi]#tr -dc abc
    aaaaaaaaaaaaabbbbbbbbbbbbccccccccccccccccccdddddddddddddddwqweqweqwqeqwqwqwq
    wqqqqqqqqqqqqqqqqqqqqqqqqq
    ctrl+d结束
    [root@localhost jiangyi]#tr -dc "abc "
    adsada
    aaa
    sadasdcxzczx
    aacc
    asdadwq
    aa
    [root@localhost jiangyi]#seq 1 10 >f1
    [root@localhost jiangyi]#tr -d " " <f1
    [root@localhost jiangyi]tr " " " "<f1
    [root@localhost jiangyi] tr " " " " <f2

    4.7 多行输入

    [root@localhost jiangyi]#cat >f1 <<EOF
    > 1
    > 2
    > 3
    > 4
    > 5
    > 6
    > 7
    >
    > 8
    > 9
    > EOF
    [root@localhost jiangyi]# cat > f4
    asdas
    sad
    asd
    ctrl+d结束 ctrl+c也可以
    两者区别
    第一种方式输出结束,文件才会产生
    第二方式,回车一次就会写入文件
    EOF 约定俗成

    5 文件权限

    drwxr-xr-x. 4                          root root 30 Jul 31 08:55 s12
    权限     在磁盘上的引用次数(硬链接)   属主 属组 大小 atime     文件名

    5.1 chown change owner

    Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
    or:  chown [OPTION]... --reference=RFILE FILE...
    chown jiangyi d 修改属主
    chown jiangyi:jiangyi d 修改属主和属组
    chown root.root d
    chown :jangyi d 只修改属组信息
    chown -R jiangyi a 递归修改目录下的所有文件
    chown --reference=b f3 指定源文件

    chgrp

    chgrp jiangyi b
    chgrp --reference=b f3 指定源文件

     

    权限:

    rwxr-xr-x

    • 三位为一组

    • 属主 属组 其他

    • u g o

    • r read 可以读这个文件或者文件夹

    • w write 可以对这个文件或者文件夹有写的权限

    • x excut 执行的权限

    权限对于文件来说:

    • r 可以查看

    • w 可以修改内容

    • x 可以直接执行

    权限对于目录来说:

    • r 可以使用ls查看 可以cd进去

    • w 可以在其中创建文件或者目录,可以删除目录中的文件或者是文件夹

    • x 可以cd,如果没有x权限的话,w权限不会生效,r权限可以查看有哪些文件

    5.2 chmod

    • 可以直接用+-来操作

      • 可以用[u|g|o]+- = r w x

      • 可以什么都不写表示全部+-

    • 还可以用数字表示

      • r 100(二进制) 4(十进制)

      • w 010 2

      • x 011 1

    • 建议:

      • 不要给文件或者文件夹设置777权限

    5.3 特殊权限

    chattr +i 不能删除、改名、不能修改内容
    chattr +a 只能追加,不能删除,不能改名
    lsattr 查看属性

     

    6 管道

    使用"|"来连接多个命令

    命令1|命令2|命令3。。。。

    • 将命令的stdout发送给命令2的stdin,将命令2的stdout命令发送给命令3的stdin

    • stderr默认是不能通过管道传递

    [root@localhost jiangyi]#ls /dadadasda|tr -s "a-z" "A-Z"
    ls: cannot access /dadadasda: No such file or directory
    [root@localhost jiangyi]#ls|tr "a-z" "A-Z"

    查看当前的登录的用户信息

    whoami  获取登录的用户
    [jiangyi@localhost ~]$who am i
    jiangyi(用户) pts/4(登录的终端)        2019-07-31 08:27(登录的时间) (192.168.182.1(登录ip地址))
    w 可以查看当前登录的所有用户执行的命令

    7.文本处理工具

    cat

    Usage: cat [OPTION]... [FILE]...
    -E显示行的结束符号$
    -n 显示每一行的行号
    -b 给非空行编号
    -s 折叠空行为一行

    tac 倒叙显示文件内容

    less 分屏显示

    • 可以分屏显示

    • 空格一屏幕 回车一行

    • /来搜索

    • n乡下搜索 N向上搜索

    • q来退出

    more

    • 可以分屏显示

    • 空格一屏幕 回车一行

    • -d 显示翻页和退出信息

    • 输出自己退出

    head 显示前多少行默认是10行

    • head -8 显示前8行

    tail 显示后面多少行,默认是后十行

    • tail -9 显示后9行的数据

    • -f 追踪显示文件新加入的内容,常用语日志的跟踪

    • tailf 相当于tail -f命令

    cut 抽取文件

    -d 用来指定切割符号
    -f 执行显示哪一个数据
    # 显示指定的数据
    #,#,#,# 离散数据
    #-# 连续数据
    cut -d: -f3 passwd
    cut -d: -f1,3-7 passwd
    cut -d: -f3,4,5,6 passwd
    cut -d: -f3-6 passwd
    -c 按照字符切割
    cut -c2-5 passwd

    paste 合并文件

    -d 用来指定合并的符号,默认的是tab
    -s 把所有的行合并成一行显示

    8.分析文本的工具

    [root@localhost jiangyi]#wc passwd 
     44       87    2301   passwd
    行数   单词个数 字节数   文件
    -l 统计行的个数
    -w 统计单词的个数
    -c 统计字节的个数
    -m 统计字符的个数
    -L 显示最长一行的长度

    sort

    默认按照字母
    -n 按照数字来排序
    -r 按照倒叙来排序
    -R 随机排序
    sort -t: -nk4 passwd 切割以后在排序
    -t 指定切割符号
    -k 指定按照第几行排序

    uniq删除重复行

    -c 显示重复出现的次数
    -d 只显示重复的行
    -u 只显示不重复的行
    连续且完全一样的才是重复
    ss -tnp|cut -d: -f2|tr -s " "|cut -d" " -f2|sort -n|uniq -c
    ss的命令是用来获取socket统计信息的

    diff 对比两个文件

    [root@localhost jiangyi]#echo "abc" >b
    [root@localhost jiangyi]#echo "abcd" >d
    [root@localhost jiangyi]#diff b d
    1c1
    < abc
    ---
    > abcd
    [root@localhost jiangyi]#echo "abcde" >b
    [root@localhost jiangyi]#diff b d
    1c1
    < abcde
    ---
    > abcd
    [root@localhost jiangyi]#echo "abcde" >> b
    [root@localhost jiangyi]#diff b d
    1,2c1
    < abcde
    < abcde
    ---
    > abcd
    [root@localhost jiangyi]#echo "abcd" >> b
    [root@localhost jiangyi]#diff b d
    1,2d0
    < abcde
    < abcde

     

  • 相关阅读:
    React 创建一个自动跟新时间的组件
    React 组件传值 父传递儿子
    React 以两种形式去创建组件 类或者函数(二)
    React 语法基础(一)之表达式和jsx
    ref的使用
    使用scale等比例缩放图片
    Vue动态加载图片图片不显示
    div里面的元素在【垂直 方向】上水平分布 使用calc()函数动态计算
    控制label标签的宽度,不让它换行 label标签左对齐
    表单验证
  • 原文地址:https://www.cnblogs.com/doraemon548542/p/11801656.html
Copyright © 2011-2022 走看看