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高级命令的主要内容,如果未能解决你的问题,请参考以下文章

如何手动释放Linux内存的方法

实用的 Linux高级 命令

Linux高级Shell脚本讲解

linux命令:du,df用法说明

如何使用linux 命令查看硬盘

Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件