Linux文件管理命令

Linux文件管理命令

Linux命令中的三剑客

在Linux中,有三个命令,称之为Linux的三剑客

grep
sed		
awk

sed 过滤行、替换

语法

sed [选项] 文件名

选项

-i:表示可以更改源文件
sed -i 's/原内容/新内容/g' 文件名	i:表示更改源文件

awk 过滤列

语法

awk [选项] '{print $n}'   n表示第几列内容

默认以空格为分隔符
贪婪匹配:如果多个空格连在一起,awk把连在一起的空格当做一个空格

选项

-F:指定分隔符

[root@oldboy ~]# $ ifconfig eth0 | grep -w 'inet' | awk '{print $2}'
10.0.0.10
'[]+'	如果以多个符号作为分隔符,多个符号放入中括号内
NR==3	表示第三行
[root@oldboy ~]# $ ip a s eth0 | awk -F '[ /]+' 'NR==3 {print $3}'
10.0.0.10

过滤文件 内容

|:管道符的作用:管道符左边命令的标准输出交给管道符右边的命令标准输出处理

标准输入:在终端输入内容
标准输出:在终端输出的内容

grep

语法

grep [选项] 文件

选项

-n:显示行号
^:以……开头
[root@oldboy ~]# $ grep -n '^汗' /oldboyedu/zls.txt 
2:汗滴禾下土

$:以……结尾
[root@oldboy ~]# 
$ grep -n '土$' /oldboyedu/zls.txt 
2:汗滴禾下土

-w:以指定单词内容过滤
[root@oldboy ~]# $ ifconfig | grep -w 'inet'
        inet 10.0.0.10  netmask 255.255.255.0  broadcast 10.0.0.255
        inet 127.0.0.1  netmask 255.0.0.0

-o:只显示过滤的内容,其它内容都不显示
[root@oldboy ~]# $ ifconfig | grep -o 'inet'
inet
inet

-A:after 显示过滤内容及后n行内容 (-A n)
[root@oldboy ~]# $ grep -n '上' /oldboyedu/zls.txt -A 2
6:疑是地上霜
7-举头望明月
8-低头思故乡

-B:before 显示过滤内容及前n行内容 (-B n)
[root@oldboy ~]# $ grep -n '上' /oldboyedu/zls.txt -B 2
4-粒粒皆辛苦
5-床前明月光
6:疑是地上霜

-C:center 显示过滤内容及前后的n行内容
[root@oldboy ~]# $ grep -n '上' /oldboyedu/zls.txt -C 1
5-床前明月光
6:疑是地上霜
7-举头望明月

-E:可以过滤多个值,需要用 | 分隔('床|是|月'[root@oldboy ~]# $ grep -nE '床|是|月' /oldboyedu/zls.txt 
5:床前明月光
6:疑是地上霜
7:举头望明月

-V:取反,过滤非单引号中的内容
[root@oldboy ~]# $ grep -nvE '上|禾|皆|床' /oldboyedu/zls.txt
3:谁知盘中餐
7:举头望明月
8:低头思故乡

-i:不区分大小写
[root@oldboy ~]# 
$ grep -i 'www' /oldboyedu/zls.txt 
www.baidu.com
WWW.baidu.com

-r:递归过滤,指定目录下的所有文件,是否带有想要过滤的字段。

特殊符号

.	表示任意字符
*	表示匹配多次

用法

[root@oldboy ~]# $ grep '禾' /oldboyedu/zls.txt 
锄禾日当午
汗滴禾下土

上传下载命令

rz 上传命令(小于4G)

rz 文件名

sz 下载命令

sz 文件名

wget 从外网下载文件

语法

wget 网址

选项

-O:指定下载地址,更改名称
-T:超时时间
-q:安静下载(关闭wget输出)
--spider:网络爬虫

示例:wget http://www.baidu.com
curl    //文件下载
示例:curl -o http://www.baidu.com

文件查找命令

## which 查找可执行的二进制文件(命令位置)
[root@oldboy ~]# $ which cp
alias cp='cp -i'
        /usr/bin/cp
        
## type 查找可执行的二进制文件,也显示命令位置。
[root@oldboy ~]# $ type -a mv
mv is aliased to `mv -i'
mv is /usr/bin/mv

## locate  了解就行
## whereis 了解就行

字符串处理

sort 排序

默认按照文件的开头排序

语法

sort [选项] 文件名

选项

-t:指定分隔符(默认sort以空格为分隔符)
-k:指定分隔符后的区域
-n:number以阿拉伯数字排序
[root@oldboy ~]# $ sort -t ':' -k 2 -n sort.txt

-r:revers 取反
[root@oldboy ~]# $ sort -t ':' -k 2 -n -r sort.txt

uniq 去重

语法

uniq [选项] 文件名

选项

-c:count 统计重复数据的数量
[root@oldboy ~]# $ sort uniq.txt |uniq -c
      2 123
      2 abc

文件内容截取

cut 截取列

语法

cut [选项] 文件

选项

-d:指定分隔符
-f:选择分隔后的区域
-c:按照字符截取

[root@oldboy ~]# $ cat info.txt 
I'm zls,"18 years old QQ'133411023
I'm ycd,"20 years old QQ'123456789
I'm oldboy,"73 years old QQ'111111111
I'm cjk,"84 years old QQ'222222222
I'm tjh,"86 years old QQ'888888888

[root@oldboy ~]# 
$ cut -d ' ' -f 6 info.txt 
133411023
654461655
576131321

$ cut -d ' ' -f 2,6 info.txt | cut -d ',' -f 2  
18 133411023
26 654461655
24 576131321

[root@oldboy ~]# $ cut -c 5-8 info.txt 
zls,
ycd,
oldb
cjk,
tjh,

tr 替换

语法

tr '原来的内容' '新的内容' < 文件名

注意:替换原内容的位数必须和新内容的位数相同
[root@oldboy ~]# $ cat info.txt 
I'm zls,"18 years old QQ'133411023
I'm ycd,"20 years old QQ'123456789
I'm oldboy,"73 years old QQ'111111111
I'm cjk,"84 years old QQ'222222222
I'm tjh,"86 years old QQ'888888888

[root@oldboy ~]# $ tr 'QQ' 'qq' < info.txt 
I'm zls,"18 years old qq'133411023
I'm ycd,"20 years old qq'123456789
I'm oldboy,"73 years old qq'111111111
I'm cjk,"84 years old qq'222222222
I'm tjh,"86 years old qq'888888888

统计命令

wc 统计

语法

wc [选项] 文件名
默认情况下,统计除一个文件中的 行、单词数量、字符数量

选项

-l:统计行数
-w:统计单词数量
-c:统计字符数量
[root@oldboy ~]# $ wc -l /etc/services 
11176 /etc/services

[root@oldboy ~]# $ wc -w /etc/services 
61033 /etc/services

[root@oldboy ~]# $ wc -c /etc/services 
670293 /etc/services

创建目录

mkdir

# make directory 创建新目录

语法:
mkdir [选项] 目录名

## 在当前目录下创建aaa目录
[root@oldboy ~]# $ mkdir aaa
[root@oldboy ~]# $ ll
total 4
drwxr-xr-x. 2 root root    6 May 31 18:18 aaa
drwxr-xr-x. 2 root root    6 May 31 12:07 abc
## 创建目录中的{}
可以批量创建目录,相同的内容写在大括号之外。
[root@oldboy /opt]# $ mkdir /opt/oldboy{1..3}
[root@oldboy /opt]# $ ls
aaa  a.txt  b.txt  c.txt  d.txt  oldboy  oldboy1  oldboy2  oldboy3

小练习:
使用一条命令创建出下面的目录
/home/zls
/home/zls/test1
/home/zls/test2
/home/oldboy
/home/oldboy/test1
/tmp/oldboy
/tmp/oldgirl
/root/test/test1
/root/test/test2
/root/abc
/backup
# 答案:
mkdir -pv /{home/{zls/test{1..2},oldboy/test1},tmp/old{boy,girl},root/{abc,test/test{1..2}},backup}
-p:递归创建目录,如果目录已存在,不会报错。
-v:显示创建的过程
-m:创建目录时并制定权限
[root@oldboy /opt]# $ mkdir oldboy4 -m 333
drwxr-xr-x. 2 root root  6 May 31 18:24 oldboy3
d-wx-wx-wx. 2 root root  6 May 31 18:31 oldboy4

创建文件

touch

语法:
touch [选项] 文件名

# 在Linux中一切皆文件,没有后缀名。
# 在Linux中严格区分大小写
touch 文件名
touch 路径/文件名
#1.创建文件,必须要创建在一个存在的目录中。
#2.和创建目录不同的是,创建相同的目录或文件不会报错。
#3.在创建文件的时候,如果出现同名的目录或者其他文件,则不创建,但是会更新创建的时间戳。

查看目录结构

tree

语法:
tree [选项] [参数]

# 查看当前目录结构
[root@oldboy /opt]# tree
.
└── zls

1 directory, 0 files
-L:查看当前目录层级
-d:只查看目录,不查看文件。
[root@oldboy /]# 
$ tree -L 1
.
├── backup
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── oldboy
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var

复制

cp

语法:
cp [-T] 源文件 目标文件
-T:表示源文件在目标路径的前面,这个选项可写可不写。

cp [-t] 目标文件 源文件
-t: 和-T的作用相反。

选项

-r:递归拷贝
-p:保持文件的所有属性
-a:包含了所有选项
-v:拷贝的过程
-i:安全机制,当文件名重复时,提示:是否需要覆盖。

移动或改名

mv

# move 移动
## 目标文件如果不存在,就相当于重命名
## 目标文件如果是一个目录,就直接移动到目录下。
## mv可以直接移动目录(cp需要加上-r才能移动目录。)
mv [OPTION]... [-T] SOURCE DEST		-T可以忽略不写
-T:可有可无
mv [OPTION]... SOURCE... DIRECTORY

删除

rm

# 语法:
rm [选项] 文件名...
rm 不加选项的情况下只能删除文件。还会被询问(-i)

选项

-r:递归删除
-f:强制删除
-i:保护机制,询问是否要删除
-v:显示删除的步骤

在企业中不推荐使用rm
推荐使用mv替代rm
讲不需要使用的文件或目录移动到/tem下

查看文件内容

cat

# 语法
cat [选项] [文件名]...

选项

-T:显示文件中的Tab键,以 ^I 表示一个tab键。
-n:显示行号
-E:以$符标出文件的结尾
-A:-E  -T的结合

其它查看文件内容的命令

more

more 文件名

按回车,一行一行看 
按空格,一页一页看

less

less 文件名

按回车,一行一行看 
按空格,一页一页看
/字符串:搜索想要查看的关键字
	-在查找关键字的过程中,按n,向下查找下一个关键字
	-在查找关键字的过程中,按G,向上查找上一个关键字
g:回到首页
G:跳转到最后一页

head

语法:
head 文件名

默认:查看文件的前10行内容

选项:
-n: 查看指定的前n行内容  n可以省略。
[root@oldboy /opt]# 
$ head -n10000 /etc/services

tail

语法:
tail 文件名

默认:查看文件的后10行内容

选项:
-n:查看指定的后n行内容  n可以省略。
-f:follow 追踪文件末尾

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值