Linux高级命令
Posted 熊老二-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux高级命令相关的知识,希望对你有一定的参考价值。
按照我的习惯所有操作都在/export/data/shell目录进行,请提前创建该目录.
mkdir -p /export/data/
重定向命令
1、重定向 >
Linux 允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。如:ls >test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )。
案例:
将/目录下文件的详情保存到test.txt文件中
ll / > test.txt
查看文件内容:cat test.txt
总用量 28
lrwxrwxrwx. 1 root root 7 3月 31 06:05 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 3月 31 06:22 boot
drwxr-xr-x. 3 root root 18 5月 12 09:15 data
drwxr-xr-x. 20 root root 3320 5月 10 15:48 dev
drwxr-xr-x. 132 root root 8192 5月 12 10:27 etc
drwxr-xr-x. 3 root root 18 5月 7 20:25 export
drwxr-xr-x. 3 root root 20 4月 9 10:16 home
drwxr-xr-x. 2 root root 6 11月 5 2016 media
drwxr-xr-x. 5 root root 41 4月 7 16:23 opt
dr-xr-xr-x. 206 root root 0 5月 10 15:47 proc
dr-xr-x---. 24 root root 4096 5月 12 15:43 root
drwxr-xr-x. 38 root root 1180 5月 10 15:48 run
lrwxrwxrwx. 1 root root 8 3月 31 06:05 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 11月 5 2016 srv
dr-xr-xr-x. 13 root root 0 5月 10 15:48 sys
drwxrwxrwt. 25 root root 4096 5月 12 16:32 tmp
drwxr-xr-x. 13 root root 155 3月 31 06:05 usr
drwxr-xr-x. 20 root root 282 3月 31 06:22 var
根据结果发现命令的执行结果已经写入test.txt文件中了。
2.重定向 >>
这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
案例:
现在有个文件1.txt,内容如下,现在将整个文件的内容追加到上一个案例的test.txt文件中
Hadoop HDFS MapReduce
Zookeeper Hive HBase
实现方式:
cat 1.txt >> test.txt
查看test.txt内内容:cat test.txt
总用量 28
lrwxrwxrwx. 1 root root 7 3月 31 06:05 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 3月 31 06:22 boot
drwxr-xr-x. 3 root root 18 5月 12 09:15 data
drwxr-xr-x. 20 root root 3320 5月 10 15:48 dev
drwxr-xr-x. 132 root root 8192 5月 12 10:27 etc
drwxr-xr-x. 3 root root 18 5月 7 20:25 export
drwxr-xr-x. 3 root root 20 4月 9 10:16 home
drwxr-xr-x. 2 root root 6 11月 5 2016 media
drwxr-xr-x. 5 root root 41 4月 7 16:23 opt
dr-xr-xr-x. 206 root root 0 5月 10 15:47 proc
dr-xr-x---. 24 root root 4096 5月 12 15:43 root
drwxr-xr-x. 38 root root 1180 5月 10 15:48 run
drwxr-xr-x. 2 root root 6 11月 5 2016 srv
dr-xr-xr-x. 13 root root 0 5月 10 15:48 sys
drwxrwxrwt. 25 root root 4096 5月 12 16:32 tmp
drwxr-xr-x. 13 root root 155 3月 31 06:05 usr
drwxr-xr-x. 20 root root 282 3月 31 06:22 var
drwxr-xr-x. 3 root root 17 4月 8 16:17 xxx
doop HDFS MapReduce
Zookeeper Hive HBase
通过查看结果发现test.txt中已经有了1.txt文件的内容,实现了追加.
cut命令
cut:文件内容查看命令,cut命令可以从一个文本文件或者文本流中提取文本列。
cut命令参数解释
实例:
如有一个学生报表信息文件stu.txt,包含id、name、age、score.
id name age score
01 tom 18 78
02 jack 20 85
03 bill 16 90
04 mary 24 77
05 anna 21 85
1)使用-d和-f显示文件中的指定的列
#显示id列
[root@node1 shell]# cut -d " " -f 1 stu.txt
id
01
02
03
04
05
#显示name和age列
[root@node1 shell]# cut -d " " -f 2,3 stu.txt
name age
tom 18
jack 20
bill 16
mary 24
anna 21
解释:
-d “ ” :用来指定文件字段之间的分隔符,如果文件的分隔符是制表符则不需要指定该参数
-f 数字 :用来指定哪一列
2)–complement 选项提取指定字段之外的列(打印除了第二列之外的列)
[root@node1 shell]# cut -d " " -f 2 --complement stu.txt
id age score
01 18 78
02 20 85
03 16 90
04 24 77
05 21 85
3)指定字段的字符或者字节范围
cut命令可以将一串字符作为列来显示,字符字段的记法:
N-:从第N个字节、字符、字段到结尾;
N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;
-M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。
#打印第1个到第4个字符:
[root@node1 shell]# cut -c 1-4 stu.txt
id n
01 t
02 j
03 b
04 m
05 a
#打印前2个字符:
[root@node1 shell]# cut -c -2 stu.txt
id
01
02
03
04
05
#打印从第5个字符开始到结尾
[root@node1 shell]# cut -c 5- stu.txt
ame age score
om 18 78
ack 20 85
ill 16 90
ary 24 77
nna 21 85
sort命令
sort可针对文本文件的内容,以行为单位来排序。
第一步: 对字符串排序
准备工作
vim sort_demo1.txt
文件内容
banana
apple
pear
orange
pear
案例:
[root@node1 export]# sort sort_demo1.txt
apple
banana
orange
pear
pear
第二步: 去重排序
它的作用很简单,就是在输出行中去除重复行。
案例:
[root@node1 shell]# sort -u sort_demo1.txt
apple
banana
orange
pear
第三步: 对数值排序
准备数据
vim sort_demo2.txt
1
3
5
7
11
2
4
6
10
8
9
默认按照字符串排序
[root@node1 export]# sort sort_demo2.txt
1
10
11
2
3
4
5
6
7
8
9
升序
[root@node1 export]# sort -n sort_demo2.txt
1
2
3
4
5
6
7
8
9
10
11
倒序
[root@node1 shell]# sort -n -r sort_demo2.txt
11
10
9
8
7
6
5
4
3
2
1
[root@node1 shell]# sort -nr sort_demo2.txt
11
10
9
8
7
6
5
4
3
2
1
第四步: 对成绩排序
准备工作
vim sort_demo3.txt
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maqi 88 22 66
zhouba 98 44 46
练习: 根据第二段成绩 进行倒序显示 所有内容
[root@node1 export]# cat sort_demo3.txt | sort -t ' ' -k 2 -n -r
zhouba 98 44 46
lisi 98 66 96
maqi 88 22 66
zhaoliu 78 44 36
zhangsan 68 99 26
wangwu 38 33 86
以上是关于Linux高级命令的主要内容,如果未能解决你的问题,请参考以下文章