Linux shell 学习笔记

For loop 例子
for i in {1..5}
do
   echo "Welcome $i times"
done

Linux Shell获取文件夹下的

Shell脚本如下:

#!/bin/bash
# get all filename in specified path

path=$1
files=$(ls $path)
for filename in $files
do
   echo $filename >> filename.txt
done

另外,如果使用>而不是>>重定向输出,它将覆盖以前的文件。

https://www.bilibili.com/video/BV1Da4y1L7Nn/

shell去除重复行:

注:uniq只对相邻行做比较,一般结合sort先排序下(以使重复行相邻)

sort -n aa.txt | uniq > bb.txt

补充的重要内容:

1、统计两个文本文件的相同行

grep -Ff file1 file2

2、统计file2中有,file1中没有的行

grep -vFf file2 file1

如何比较两个文件并去删除相同的内容

for i in $(<file1); do grep $i file2 || echo $i >>tmp1 ; done

输出相同行:

$grep -wf file1 file2

输出不同行

 $grep -wvf file1 file2

找出A和B 之间不同并输出

找出文件1和文件2中相同的行:

cat 09-07_as_route 09-14_as_route | sort | uniq -d | sort -n

grep -f 09-07_as_route 09-14_as_route 或 grep -f 09-14_as_route 09-07_as_route 

也可以使用comm,但使用comm比较的结果不准。????

可参考:http://blog.csdn.net/shuckstark/article/details/7872176

comm - 12     就只显示在两个文件中都存在的行;

comm - 23    只显示在第一个文件中出现而未在第二个文件中出现的行;

comm - 123  则什么也不显示。

例如:找出a.txt文件有而b.txt文件中没有的放在c.txt文件中

[cpp] view plaincopy #!/bin/sh  

# author by tianmo  

# date 2011-11-21 20:33  

#BEGIN  

cat a.txt | sort | uniq | sort > a_u.txt  

cat b.txt | sort | uniq | sort > b_u.txt  

comm -23  a_u.txt  b_u.txt > c.txt  

# END  

原文链接:https://blog.csdn.net/ysdaniel/article/details/7988140

tar查看目录结构(不解开压缩文件)

只查看目录结构:

 tar -tvf  sns.tar.gz | grep ^d

查看文件列表(包含路径):

tar -tf sns.tar.gz

遇到的问题:

[root@haha ~]#tar  -czf  /root/ss3.tat.gz /root/ss2
tar: Removing leading `/' from member names

意思就是让我们将路径的 ‘/’ 去除掉。

问题原因:

   因为我们使用的是绝对路径,而不是相对路径。而tar 命令默认是采用相对路径来进行压缩打包的。

解决办法:

  我们需要使用参数 -P(大写)来允许我们使用绝对路径进行压缩打包。

得到当前时间:

#!/bin/bash

cur_dateTime=`date +"%Y-%m-%d %H:%m"`
echo ${cur_dateTime}

Centos 7 下载 crontab 包

On CentOS 7 you need to use cronie:

yum install cronie

在centos系统中,如果/sbin目录下没有service这个命令,就会出现

bash: service: command not found
1
解决步骤如下:
1、 输入

yum list | grep initscripts
1
会出现:

initscripts.x86_64
1
(其实一共有三个信息,但是后面根据版本不同,显示的信息也不同)
2、 上面给出了可安装软件的yum源版本,然后执行

yum install initscripts -y
1
3、 此时service命令就可用了
 

Crontab 使用注意:

在脚本中也要使用绝对路径,不然会报错!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值