码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-11-05 21:35:04      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:mod   enc   reference   tree   设备   单词   passwd   不重复   递归   

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\n"
adsada
aaa
sadasdcxzczx
aacc
asdadwq
aa
[root@localhost jiangyi]#seq 1 10 >f1
[root@localhost jiangyi]#tr -d "\n" <f1
[root@localhost jiangyi]tr "\n" " "<f1
[root@localhost jiangyi] tr " " "\n" <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

 

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

标签:mod   enc   reference   tree   设备   单词   passwd   不重复   递归   

原文地址:https://www.cnblogs.com/doraemon548542/p/11801656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!