linux常用命令

read

  • 利用read传参判断
echo -n "please input your score:"
read score

#read -p "please input a score:" score

if [ "$score" -ge "0" ]&&[ "$score" -lt "60" ];then
        echo "sorry,you are lost!"
elif [ "$score" -ge "60" ]&&[ "$score" -lt "85" ];then
        echo "just soso!"
elif [ "$score" -le "100" ]&&[ "$score" -ge "85" ];then
        echo "good job!"
else
        echo "input score is wrong , the range is [0-100]!"
fi

diff与patch命令

diff通常比较文件内容,patch常用来打补丁

< 表示第一个文件的内容

> 表示第二个文件的内容

a 表示添加 ---add

c 表示更改 ---change

d 表示删除 ---delete

  • 用法

diff命令的格式一般为:

diff [参数][文件或者目录1][文件或者目录2]

例如,有文件file11和filet2:

[root@server1 diff]# cat file1
123
abc
[root@server1 diff]# cat file2
123
[root@server1 diff]# diff file2 file1
1a2
> abc

diff命令也可以比较两个文件夹的不同:

我们将file1和file2分别放入两个文件夹中

[root@server1 diff]# mkdir test{1..2}
[root@server1 diff]# mv file1 test1
[root@server1 diff]# mv file2 test2
[root@server1 diff]# diff -r test2 test1
Only in test1: file1
Only in test2: file2

diff -u file1 file2 

-u 以合并的方式来显示文件内容的不同。即统一格式的输出。在合并中也使用的是这种模式。用来产生补丁

[root@server1 diff]# diff -u file1 file2
--- file1	2020-02-16 10:51:51.852623166 +0800
+++ file2	2020-02-16 10:52:34.465424216 +0800
@@ -1,2 +1 @@
 123
-abc
[root@server1 diff]# diff -u file1 file2 > file1.path
[root@server1 diff]# cat file1.path 
--- file1	2020-02-16 10:51:51.852623166 +0800
+++ file2	2020-02-16 10:52:34.465424216 +0800
@@ -1,2 +1 @@
 123
-abc
[root@server1 diff]# patch file1 file1.path 
patching file file1
[root@server1 diff]# cat file1 
123
[root@server1 diff]# cat file2
123

如果需要原文件备份

patch -b file1 file1.path

会在当前目录下新增一个名为file1.orig的文件,其内容就是原文件内容

cut命令

  • 定义

cut是一个选取命令,选取文件中的指定字符,主要有如下用途

(1)文件内容查看

(2)显示行中的指定部分,删除文件中指定字段

(3)显示文件的指定内容。

  • 语法格式

 

cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]

使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

第一,字节(bytes),用选项-b

第二,字符(characters),用选项-c

第三,域(fields),用选项-f

主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f  :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。

  • 举例

[root@server1 cut]# cut -d : -f 1 passwd  #显示passwd第一列
[root@server1 cut]# cut -c 1-3 passwd #显示passwd第一到三个字符

sort与uniq命令

sort命令通常用来排序,uniq命令对重复字符做相应处理

sort语法:

sort [选项] ...  [文件] ...

 

选项:

-n:纯数字排列

-r:倒序

-u:去重

-o:输出到指定文件

-t:分隔符

-k:指定要排序的列

-f:忽略大小写。

文件:

file:多个文件要使用空格分隔。

uniq

-c:每行显示一次并统计重复行数

-d:显示重复的行

[root@server1 sort-uniq]# sort -n num | uniq -c    #排序后并显示重复次数
      2 1
      2 2
      1 4
      1 5
      1 7
      1 23
[root@server1 sort-uniq]# sort -n num | uniq -d    #排序后显示重复行
1
2
[root@server1 sort-uniq]# sort -n num | uniq -u    #排序后显示不重复的行
4
5
7
23
[root@server1 sort-uniq]# sort -n -k 4 -t ':' passwd | cut -d ':' -f 4
[root@server1 sort-uniq]# cat info 
lisi 170 25 6000
wangwu 170 28 5000
zhangsan 175 20 5000
zhangxiaoliu 165 30 6000
[root@server1 sort-uniq]# sort -n -k 1 -t ' ' info 
lisi 170 25 6000
wangwu 170 28 5000
zhangsan 175 20 5000
zhangxiaoliu 165 30 6000
[root@server1 sort-uniq]# sort -n -k 2 -t ' ' info 
zhangxiaoliu 165 30 6000
lisi 170 25 6000
wangwu 170 28 5000
zhangsan 175 20 5000

join命令

功能说明:将两个文件中,指定栏位内容相同的行连接起来。 

    语  法:join [-i][-a<1或2>][-e<字符串>][-o<格式>] [-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help] [--version][文件1][文件2] 

    补充说明:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。 

    参  数: 
   
    -a<1或2>   除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。 
   
    -e<字符串>   若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。 
   
    -i或--igore-case   比较栏位内容时,忽略大小写的差异。 
   
    -o<格式>   按照指定的格式来显示结果。 
   
    -t<字符>   使用栏位的分隔字符。 
   
    -v<1或2>   跟-a相同,但是只显示文件中没有相同栏位的行。 
   
    -1<栏位>   连接[文件1]指定的栏位。 
   
    -2<栏位>   连接[文件2]指定的栏位。 
   
    --help   显示帮助。 

    --version   显示版本信息。
  • 举例

[root@server1 join]# join file1 file2
www http  nginx
123 gaoqi 20
[root@server1 join]# cat file1
www http 
123 gaoqi
h
[root@server1 join]# cat file2
www nginx
123 20
1
2


[root@server1 join]# cat file3
A li:20:women
B wang:18:men
C zhang:21:men
[root@server1 join]# cat file4
A li:song
B wang:dance
C zhang:paint

[root@server1 join]# join  file3 file4
A li:20:women li:song
B wang:18:men wang:dance
C zhang:21:men zhang:paint
[root@server1 join]# join -t ':' file3 file4    #指定分隔符
A li:20:women:song
B wang:18:men:dance
C zhang:21:men:paint

seq命令

是一个序列缩写主要用来输出序列化的东西

  • 用法

seq [选项]... 尾数

seq [选项]... 首数 尾数

seq [选项]... 首数 增量 尾数

-s 指定分隔符,默认/n

-w 在列前添加0,自动补位

-f 用printf样式的符点格式

  • 举例
[root@server1 sort-uniq]# seq -w -s ' ' 10 
01 02 03 04 05 06 07 08 09 10
[root@server1 sort-uniq]# seq -2 2 10
-2
0
2
4
6
8
10
[root@server1 sort-uniq]# seq -f "%03g" 98 101
098
099
100
101
[root@server1 sort-uniq]# seq -f "%3g" 98 101
 98
 99
100
101

tr命令

命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。

  • 语法

tr(选项)(参数)
  • 选项

-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
  • 参数

字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;

字符集2:指定要转换成的目标字符集。

  • 实例

将输入字符由大写转换为小写:
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world

使用tr删除字符:
echo "hello 123 world 456" | tr -d '0-9'
hello  world 

将制表符转换为空格:
cat text | tr '\t' ' '

字符集补集,从输入文本中将不在补集中的所有字符删除:
echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
 1  2  3  4
此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。

用tr压缩字符,可以压缩输入中重复的字符:
echo "thissss is      a text linnnnnnne." | tr -s ' sn'
this is a text line.

tr可以使用的字符类:

[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符

xargs命令

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据

xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令,

https://www.runoob.com/linux/linux-comm-xargs.html

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值