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中怎么查看mysql数据库版本

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrackonTriggeronInvalidate副作用的刷新时机`watch` pre)(代码片段

Linux高级命令04:查找文件命令

Linux高级命令03:文本搜索命令