doraemon的python centos的入门(二)文件目录操作

番茄炒蛋548542 2020-11-30

栏目: python ·

来源: 番茄炒蛋548542

作者:番茄炒蛋548542

简介  这篇文章主要介绍了doraemon的python centos的入门(二)文件目录操作以及相关的经验技巧,文章约26043字,浏览量521,点赞数3,值得参考!

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

 


以上就是本文的全部内容,希望对大家的学习有所帮助,本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文地址:https://www.cnblogs.com/doraemon548542/p/11801656.html

相关文章

doraemon的python 守护进程和Process

doraemon的python csrf校验(国庆大更新)

doraemon的python django框架的路由详解(国庆大更新)

doraemon的python ORM必会操作(国庆大更新)

doraemon的python MongoDB的基础 增删改查和$用法

doraemon的python django的中间件(国庆大更新)

doraemon的python cookie和session(国庆大更新)

doraemon的python 爬虫 http和https的区别