Linux之系统文件管理
1.创建/复制/移动/删除
(1)文件创建命令touch
# touch file #无则创建,有则修改创建时间
# touch file2 file3 #创建file2和file3两个文件
# touch /home/zhangsan/test file4 #指定目录创建文件file4
# touch {a,b,c} #创建a,b,c三个文件
# touch {1..10} #创建1-10一共10个文件
# touch {a..z} #创建a-z 26个文件
(2)目录创建命令mkdir
#选项: -v显示详细信息 -p 递归创建目录
# mkdir dir1
# mkdir /home/zhangsan/aaa /home/zhangsan/bbb
# mkdir -v /home/zhangsan/{dir3,dir4}
# mkdir -pv /home/zhangsan/dir5/dir6
--------------------------------
# mkdir -pv /home/{zhangsan/{qqq,www},lisi/eee}
#相当于创建/home/zhangsan/qqq,/home/zhangsan/www,/home/lisi/eee三个文件夹
(3)以树状显示目录结构tree
# yum install -y tree #不安装软件则无法执行该命令
# mkdir test2
# cd test2
# touch file_{1,10}.txt
# tree test2
test2
├── file_10.txt
├── file_1.txt
├── file_2.txt
├── file_3.txt
├── file_4.txt
├── file_5.txt
├── file_6.txt
├── file_7.txt
├── file_8.txt
└── file_9.txt
(4)复制cp
#选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性
# cp file /tmp/file_copy
# cp name /tmp/name #不修改名称
# cp file /tmp/ #不修改名称
# cp -p file /tmp/file_p #-p保持原文件或目录的属性
# cp -r /etc/ /tmp/ #复制目录需要使用-r参数, 递归复制
# cp -rv /etc/hosts /etc/hostname /tmp #拷贝多个文件至一个目录
# cp -rv /etc/{hosts,hosts.bak} #将/etc/hosts拷贝到/etc/hosts.bak
# cp -rv /etc/hosts{,-org} #将/etc/hosts拷贝到/etc/hosts-org
(5)移动mv
# mv file file1 #原地移动算改名
# mv file1 /tmp/ #移动文件至tmp目录
# mv /tmp/file1 ./ #移动tmp目录的文件至当前目录
# mv dir/ /tmp/ #移动目录至/tmp目录下
# touch file{1..3}
# mv file1 file2 file3 /opt/ #移动多个文件或至同一个目录
# mkdir dir{1..3}
# mv dir1/ dir2/ dir3/ /opt #移动多个目录至同一个目录
(6)删除rm
#选项:-r: 递归 -f: 强制删除 -v: 详细过程
# rm file.txt #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
# rm -f file.txt #删除文件, 不提醒
--------------------------------
# rm -r dir/ #递归删除目录,会提示
# rm -rf dir/ #强制删除目录,不提醒(慎用)
--------------------------------
#1.rm删除示例
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -f /home/dir10/* //不包括隐藏文件
# ls /home/dir10/ -a
--------------------------------
#2.rm删除示例2
# touch file{1..10}
# touch {1..10}.pdf
# rm -rf file*
# rm -rf *.pdf
2.查看文件内容
#------cat
# cp /etc/passwd ./pass
# cat pass #正常查看文件方式
# cat -n pass #-n显示文件有多少行
# cat -A pass #查看文件的特殊符号,比如文件中存在tab键
# tac pass #倒序查看文件
#------less、more
# less /etc/services #使用光标上下翻动,空格进行翻页,q退出
# more /etc/services #使用回车上下翻动,空格进行翻页,q退出
#------head
# head pass #查看头部内容,默认前十行
# head -n5 pass #查看头部5行,使用-n指定
#------tail
# tail pass
# tail -20 /var/log/secure
# tail -f /var/log/messages #-f查看文件尾部的变化
# tailf /var/log/messages #查看文件尾部的变化
#------grep过滤文件内容
# grep "^root" pass #匹配以root开头的行
# grep "bash$" pass #匹配以bash结尾的行
# grep -i "ftp" pass #忽略大小写匹配
# grep -Ei "sync$|ftp" pass #匹配文件中包含sync结尾或ftp字符串
# grep -n -A 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的下2行
# grep -n -B 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的上2行
# grep -n -C 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的上下2行
3.联网下载和文件上传下载
(1)联网下载
#选项: -O: 指定下载地址
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#选项: -o: 指定下载地址
# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
(2)上传下载
# yum install lrzsz -y #不安装软件则无法执行该命令
# rz #只能上传文件文件上传
# sz /path/file #只能下载文件
4.文件或命令查找
(1)文件查找
# yum install -y mlocate #不安装软件则无法执行该命令
安装完之后如果还无法执行,出现如下信息:locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db'
再执行如下命令即可:
# updatedb
# locate /etc/sh #搜索etc目录下所有以sh开头的文件
# locate -i /etc/sh #搜索etc目录下,所有以sh开头的文件,忽略大小写
(2)命令查找
# which ls #查找ls命令的绝对路径
# whereis ls //查找命令的路径、帮助手册、等
# whereis -b ls //仅显示命令所在的路径
# type -a ls #查看命令的绝对路径(包括别名)
5.字符处理命令
(1)sort排序
sort [OPTION]... [FILE]...
#选项
# -r:倒序
# -n:按数字排序
# -t:指定分隔符(默认空格)
# -k:指定第几列, 指定几列几字符(指定1,1 3.1,3.3)
#1.首先创建一个文件,写入一写无序的内容
[root@yfy ~]# cat >> file.txt <<EOF
b:3
c:2
a:4
e:5
d:1
f:11
EOF
#2.使用sort下面对输出的内容进行排序
[root@yfy ~]# sort file.txt
a:4
b:3
c:2
d:1
e:5
f:11
#结果并不是按照数字排序,而是按字母排序。
#可以使用-t指定分隔符, 使用-k指定需要排序的列。
[root@yfy ~]# sort -t ":" -k2 file.txt
d:1
f:11 #第二行为什么是11?不应该按照顺序排列?
c:2
b:3
a:4
e:5
#按照排序的方式, 只会看到第一个字符,11的第一个字符是1, 按照字符来排序确实比2小。
#如果想要按照数字的方式进行排序, 需要使用 -n参数。
[root@yfy ~]# sort -t ":" -n -k2 file.txt
d:1
c:2
b:3
a:4
e:5
f:11
案例:对如下内容进行排序
[root@yfy ~]$ cat >test.txt <<EOF
> 192.168.3.1 00:0F:AF:81:19:1F
> 192.168.3.2 00:0F:AF:85:6C:25
> 192.168.3.3 00:0F:AF:85:70:42
> 192.168.2.20 00:0F:AF:85:55:DE
> 192.168.2.21 00:0F:AF:85:6C:09
> 192.168.2.22 00:0F:AF:85:5C:41
> 192.168.0.151 00:0F:AF:85:6C:F6
> 192.168.0.152 00:0F:AF:83:1F:65
> 192.168.0.153 00:0F:AF:85:70:03
> 192.168.1.10 00:30:15:A2:3B:B6
> 192.168.1.11 00:30:15:A3:23:B7
> 192.168.1.12 00:30:15:A2:3A:A1
> 192.168.1.1 00:0F:AF:81:19:1F
> 192.168.2.2 00:0F:AF:85:6C:25
> 192.168.3.3 00:0F:AF:85:70:42
> 192.168.2.20 00:0F:AF:85:55:DE
> 192.168.1.21 00:0F:AF:85:6C:09
> 192.168.2.22 00:0F:AF:85:5C:41
> 192.168.0.151 00:0F:AF:85:6C:F6
> 192.168.1.152 00:0F:AF:83:1F:65
> 192.168.0.153 00:0F:AF:85:70:03
> 192.168.3.10 00:30:15:A2:3B:B6
> 192.168.1.11 00:30:15:A3:23:B7
> 192.168.3.12 00:30:15:A2:3A:A1
> EOF
按ip地址进行排序,因为前两个ip地址默认是192.168,所以从第三列开始排,第三列如果一样,则按第四列排。
第三列排第1个字符,第四列排第1到第3个字符,且是按数字进行排序
[root@yfy ~]$ sort -t. -k3.1,3.1n -k4.1,4.3n test.txt
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.0.153 00:0F:AF:85:70:03
192.168.1.1 00:0F:AF:81:19:1F
192.168.1.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.1.11 00:30:15:A3:23:B7
192.168.1.12 00:30:15:A2:3A:A1
192.168.1.21 00:0F:AF:85:6C:09
192.168.1.152 00:0F:AF:83:1F:65
192.168.2.2 00:0F:AF:85:6C:25
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:5C:41
192.168.3.1 00:0F:AF:81:19:1F
192.168.3.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.3.3 00:0F:AF:85:70:42
192.168.3.10 00:30:15:A2:3B:B6
192.168.3.12 00:30:15:A2:3A:A1
(2)unip去重
如果文件中有多行完全相同的内容,当前是希望能删除重复的行,同时还可以统计出完全相同的行出现的总次数, 那么就可以使用uniq命令解决这个问题(但是必须配合sort使用)。
uniq [OPTION]... [INPUT [OUTPUT]]
#选项:
# -c 计算重复的行
#1.创建一个file.txt文件:
[root@yfy ~]# cat file.txt
abc
123
abc
123
#2.uniq需要和sort一起使用, 先使用sort排序, 让重复内容连续在一起
[root@yfy ~]# cat file.txt |sort
123
123
abc
abc
#3.使用uniq去除相邻重复的行
[root@yfy ~]# cat file.txt |sort|uniq
123
abc
#4.-c参数能统计出文件中每行内容重复的次数
[root@yfy ~]# cat file.txt |sort|uniq -c2 1232 abc
上面的案例中,有重复的ip,我们希望能够去重
[root@yfy ~]$ sort -t. -k3.1,3.1n -k4.1,4.3n test.txt |uniq
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.1.1 00:0F:AF:81:19:1F
192.168.1.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.1.12 00:30:15:A2:3A:A1
192.168.1.21 00:0F:AF:85:6C:09
192.168.1.152 00:0F:AF:83:1F:65
192.168.2.2 00:0F:AF:85:6C:25
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.3.1 00:0F:AF:81:19:1F
192.168.3.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.3.10 00:30:15:A2:3B:B6
192.168.3.12 00:30:15:A2:3A:A1
(3)cut截取字段
cut OPTION... [FILE]...
#选项
# -d 指定分隔符
# -f 数字,取第几列 –f3,6 三列和六列
# -c 按字符取(空格也算)
#echo "Im yfy, from China" >cut_01.txt 过滤出文件中的yfy China
[root@yfy ~]$ cut -d " " -f2,4 cut_01.txt
yfy, China
[root@yfy ~]$ cut -d " " -f2,4 cut_01.txt |sed 's#,##g'
yfy China
#不加sed过滤会有, 所以用sed把,替换掉
(4)wc统计行号
wc [OPTION]... [FILE]...
#选项:-l显示文件行数 -c显示文件字节 -w显示文件单词
# wc -l /etc/fstab #统计/etc/fstab文件有多少行
# wc -l /etc/services #统计/etc/services 文件行号
Linux之系统文件管理相关推荐
- linux应用编程和网络编程-3.1.linux中的文件IO(read write open lseek)系统文件管理 inode 3种退出 fd 文件共享
基本文件API读写 文件IO的标准IO比较 文件IO read和write open及flag lseek 3种exit.error.perror linux系统文件管理 文件描述符filedescr ...
- 手把手教你Linux下的文件管理(一)
我的十大IT杰出博客参赛主页是:http://2010blog.51cto.com/1060257,请各位支持我,给我投上宝贵一票,谢谢! 随着Linux开源系统平台的不断发展,越来越多的开源软件可以 ...
- linux 命令行使用技巧linux 下的文件管理
##1.什么是linux### linux 是指Linux内核 内核 ##系统的核心程序 ##相当于人的大脑 #负责系统程序和硬件分配及调度 ##2.什么是shell## ...
- linux文件管理命令ppt,linux命令以及文件管理.ppt
linux命令以及文件管理 [LINUX常用命令详解] vi命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi ...
- ipados远程linux软件,JingOS Linux平板系统v0.6下载发布 支持多点触摸手势
原标题:JingOS Linux 平板系统 v0.6 下载发布:iPadOS 风格,附安装方法 1月29日消息 今年1月份,一款新的操作系统 JingOS 官网上线,官方介绍是全球首个 iPadOS ...
- 红旗 linux界面,红旗Linux桌面系统v11预览版发布:全新UI设计
原标题:红旗Linux桌面系统v11预览版发布:全新UI设计 关注 来源 | FOSS Lab 如若转载请联系原公众号 近日,国产操作系统红旗 Linux 官网上线最新的红旗 Linux 桌面操作系统 ...
- 红旗linux v11预览版下载,红旗 Linux 桌面系统发布 v11 预览版,1月10日开放下载
近日,国产操作系统红旗 Linux 官网上线最新的红旗 Linux 桌面操作系统 v11 社区预览版,更新内容包括多项组件更新和全新的主题界面等. 据悉,最新的红旗 Linux 桌面系统 v11 版本 ...
- 国产信创Linux桌面系统比较:软件包格式及软件管理、桌面环境及桌面应用
信创产业中,操作系统开始整合,基本上集中在银河麒麟V10和UOS2,很多朋友问到各种国产信创Linux系统的区别和比较.因此结合前期写的几篇文章,对这个问题再进行了整理.以龙芯CPU为例,比较包括lo ...
- linux充值系统下载,几款Linux操作系统下载
1.Suse 企业版10 SUSE Linux Enterprise 10,提供了稳定的Xen虚拟化技术,还包括许多Novell发起的Linux技术创新.如:SUSELinux Enterprise的 ...
最新文章
- springMVC3学习(二)--ModelAndView对象
- 【渝粤教育】电大中专办公设备使用与维护 (2)_1作业 题库
- java新人_JAVA新人之——专有名词
- WPF地区选择控件(内附下载地址)
- leetcode题库1014-- 最佳观光组合
- HyperLeger Fabric开发(七)——HyperLeger Fabric链码开发
- 物品登记php,thinkphp登记
- 数据结构与算法经典问题解析 Java语言描述pdf
- 实用的项目管理网络计划软件-MS Project
- Python爬虫【一】爬取移动版“微博辟谣”账号内容(API接口)
- sql in关键字使用长度超过1000问题处理
- 6.11编写计算正方体、圆柱体、球体的表面积和体积的类。
- [生产力]必备的全局文件搜索工具
- BLM模型:解决问题的前提是定义问题
- 【js练习】移动盒子位置,鼠标在盒子外问题
- C语言为什么不会过时?
- 10 个开源免费的电子商务平台
- 我的NAS方案及使用的功能
- cocos2dx 3.10版本的AssetsManager问题
- Elasticsearch7.x配置xpack实战
热门文章
- [architecture]-DBG、DMB、DSB 和 ISB指令介绍
- TEEC_AllocateSharedMemory()和 TEEC_RegisterSharedMemory()的总结
- apatedns unhandled exception
- (67)多核同步,lock 总线锁 ,自己实现临界区
- 【零基础】讲述网络安全介绍
- python Tkinter Text的简单用法
- win32 masm32 汇编学习 及 远程线程实例
- 【PHP-FPM】配置,优化性能
- 概率论 第二章 随机变量及其分布
- SpringMVC环境配置全过程IntelliJ IDEA 2020.3.1