linux 笔记si-tech

date1=`date "+%Y-%m-%d %H:%M:%S"` ==》2015-05-11 17:06:48

0:free -m 内存使用状态

1:tail -f  不断的刷新日志信息 例如 tail -f logs.log 退出Ctrl+c

2:ssh -l 用户名 ip 登录到指定的主机  exit退出

3:把bin目录下的文件打包 cd bnms(bin在bnms目录中)   ls  : bin conf  data logs  (cd到bin的上级目录)  http://blog.chinaunix.net/uid-13745643-id-2873882.html

tar -cvf bin.tar bin/  (打包后的文件名为bin.tar) 

tar -tvf bin.tar (列出bin.tar中的文件)

4:uname -a  显示系统名称、结点名称(电脑名称)、操作系统的发型版号、操作系统版本、运行系统的机器ID号

5:zpro=`ps aux |grep -v grep | grep /echnweb/cluster/nginxweb/sbin/nginx  | awk '{print $8}'| grep "^Z" | wc -l`

(1):awk '{print $4}'假设你读入的是abcdef gh i j,那么$1="abc", $2 = "def", $3 = "gh", $4 =i, $5 = j, $0 = "abc def gh i j"(awk 默认以空格分割 自定义的话用 例如以“/"分割 :awk -F '/' '{print $2}')

(2):grep -v grep 在文档中过滤掉包含有grep字符的行s

(3):grep "^Z" 匹配以Z开头的(ps aux Z是僵尸进程)

(4):wc –l 显示一个文件的总行数

(5):if [[ $zpro -eq 0 ]]$?shell变量,表示"最后一次执行命令"的退出状态.0为成功,0为失败,意思就是if语句前一个命令执行成功,就怎么样


awk中的BEGIN和 END

在 awk中两个特别的表达式,BEGIN和 END,这两者都可用于 pattern中,提供 BEGIN 和 END 的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。任何在 BEGIN 之后列出的操作(在{}内)将在 awk 开始扫描输入之前执行,而 END 之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来初始化变量,使用END 来输出最终结果。Awk中的循环语句与C很相似,包括do…while,for,continue/break,while等,条件语句与C相似,但它有更好地支持。

例:cat zhang.txt |awk-F '/' 'BEGIN {count=0;}{if($2!=""&&$2!="000000"){count=count+1;}}END {print count}'  和cat zhang.txt |awk -F '/' '{print $2}' |wc -l此处的BEGIN END实现的和wc -l的功能一样 ,统计行数的 不过是BEGIN,END 中可以添加条件

cat zhang.txt |awk 'BEGIN { FS="/";count=0;}{if($2!=""&&$2!="000000"){count=count+1;}}END {print count}'


echo "1 2"|awk '{print $1, $2 ";" $2}'   输出1 2 ;2 如果$1和$2中间没有,则输出12;2

[bnms@zj-web1 bin]$ vi zengtest2.sh   #读入的两个数,赋给两个变量i1 i2
#!/bin/sh
echo "1 2"|awk '{print $1,$2}'|while read  i1 i2
do
echo "i1=${i1} i2= ${i2}"
done

输出:i1=1 i2= 2


6:du -sh *查看当前目录下的所有文件(夹)大小

语法格式  
du    [-ahskm]    文件或者目录名  
参数解释  
-a : 列出所有的文件与目录容量,因为默认仅统计目录的容量而已  
-h :以人们较易读的容量格式呈现(G/M/K)显示,自动选择显示的单位大小  
-s :列出总量,不列出每个个别的目录占用容量  
-k :以KB为单位显示  
-m:以MB为单位显示  
实例:  

查看每个文件目录下的文件大小

du -h
查看当前目录大小  
du -sh ./  
查看某一指定目录大小  
du -sh dirName  
在指定目录下显示5个占用空间最大(最小)的目录或文件  
最大:  
du -sh * | sort -nr | head  
最小:  
du -sh * | sort -n | head  

7:cp命令

CP命令
格式: CP [选项]  源文件或目录   目的文件或目录
选项说明:-b 同名,备分原来的文件
        -f 强制覆盖同名文件
        -r  按递归方式保留原目录结构复制文件
cp  -r  /tmp/a   /root/a   记得有空格


8:cut      (http://www.cnblogs.com/siqi/p/3608893.html)
参数列表:
 -b 按字节选取 忽略多字节字符边界,除非也指定了 -n 标志
 -c    按字符选取
 -d 自定义分隔符,默认为制表符。
 -f 与-d一起使用,指定显示哪个区域。
                            that contains no delimiter character, unless
                            the -s option is specified
      --complement              补全选中的字节、字符或域
 -s, --only-delimited          不打印没有包含分界符的行
      --output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入
                                的分界符
范围控制:
    n:只有第n项
    n-:从第n项一直到行尾
    n-m:从第n项到第m项(包括m)
    -m:从一行的开始到第m项(包括m)
    -:从一行的开始到结束的所有项
cat /etc/passwd | cut -b1-3 #取每行的第1-3字字节
cat /etc/passwd | cut -b1-3,5-7,8 #取每行的第1-3,5-7,8的字节(后面的数字会先进行从小到大的排列) 需要事先知道具体字节,很容易出错
cat song.txt |cut -nb 1,2,3#当 -b 添加 -n 后则不会分割多字节 (我的系统是utf-8,所以需要用三个字节来表示一个汉字)
cat /etc/passwd | cut -c1,3 #适用于中文 
cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段
cat /etc/passwd | cut -d '' #以空格进行分割,且是一个空格
缺点: 有的时候分隔符很难确定




例如:tail -n 2 zhang.txt| head -n 1|awk '{print $1}'|cut -d"/" -f5  //读取zhang.txt文件最后两行的第一行(倒数第二行)以空格分割 取第一段 第一段再以"/"分割 取第5段
例如:zhang.txt内容:
sh/bnms/appagent/bin/tb_srvloga.sh 20141203
sh/bnms/appagent/bin/tb_srvlogb.sh 20141203
sh/bnms/appagent/bin/tb_srvlogc.sh 20141203
执行结果为:tb_srvlogb.sh


tail -n +1   zhang.txt    // 或tail -1   zhang.txt   执行结果(从第一行开始):

sh/bnms/appagent/bin/tb_srvloga.sh 20141203
sh/bnms/appagent/bin/tb_srvlogb.sh 20141203
sh/bnms/appagent/bin/tb_srvlogc.sh 20141203

 

 tail -n 1   zhang.txt  (最后一行)

sh/bnms/appagent/bin/tb_srvlogc.sh 20141203

 

除了最后2行的全部内容:head -n -2 zhang.txt   

sh/bnms/appagent/bin/tb_srvloga.sh 20141203

 

第14行:head -n 14 dblocktest.txt |tail -n 1  //或head -14 dblocktest.txt(head -n 14 前14行或head -14 ;tail -n 1 最后一行)

 

 (总结:

tail -n +数字:从第多少行开始的数据

tail -n 数字:最后多少行的数据

head -n -数字:除了最后多少行的数据

head -n 数字:前多少行的数据

 


9:grep

在linux下如果要查找包含某个关键字的文件,如要在/root/目录下搜索带有关键字“www”的文件,在终端下运行命令:

区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 

             (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。


find /root/ –type f |xargs grep "www"  //可以用通配符*     例如"www*"
grep -r "test" /root/

查找关键字出现在第几行 
grep -n kerword filename


10:tar

tar 解压缩命令
tar


-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件


这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。


-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出


下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg 
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif 
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif 
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar 
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar 
这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux      // zip -r activemq.zip ./activemq/  压缩activemq文件夹下所有文件
解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar –xZvf file.tar.Z   //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

tar -cvf 文件名.tar ./collProcess/           //压缩当前目录(ls -ltr)collProcess文件夹下的文件 命名为 "文件名.tar"

tar -xvf 文件名.tar  //解压

11:find

Linux下的Find命令查找文件名的用法 如需要查找redhat-lsb-3.1.121.rpm这个包 :find /bnms -name "lsb*"   //在/bnms文件下查找文件

 

12:get ,put

sftp bomc@10.155.0.5

ls

get/put    文件名   //下载和上传文件

13:sed

1. 删除file.txt的1~3行
sed -i '1,3d' file.txt
-i 选项用于直接修改原文件。

2. 删除file.txt第4行及之后的所有行
sed -i '4,$d' file.txt
$表示文件的最后一行。

3 如果是要删除第三行:
sed -i '3d' 1.txt

4 如果删除以Love开头的行
sed -i '/^Love/d' 1.txt

5 删除包含Love的行
sed -i '/Love/d' 1.txt

查看文件的第90行到100行:
sed -n '90,100p' wang.txt
如果查看某一行用:
sed -n '100,1p' wang.txt即可
sed -n 'a,bp' song.txt读取自第a行到第b行的数据
if(a > b ) return 第a行

例:查找一个文件关键字首次出现在哪一行,并删除1至这一行 :

 grep -n 2015-12-28 insertservinvokeapp1.sql|head -n 1  

输出结果:4727524

 sed -i '1,4727524d' insertservinvokeapp1.sql

 

14:date用法

linux date 昨天
date -d '-1 day' +%Y%m%d-%H%M%S

取前一个小时
date -d '-1 hour' +%Y%m%d-%H%M%S


15> 去重uniq
cat 文件名|sort|uniq|wc -l

16>gerp对比两个文本文件找出不同行
grep -vwf file1 file2 统计file1中没有,file2中有的行 (注意两个文件顺序)
eg: grep -vwf featurePhone.txt sourcePhone.txt > diffPhone.txt 统计featurePhone.txt中没有 sourcePhone.txt中有的行

17>停止进程
ps -ef|grep sendMailServiceForYanzhen|grep -v grep|awk '{print $2}'|xargs kill -9

13>tr
去除文件中的空行
cat 文件名 |tr -s ‘\n' > new.txt 去除空行后输出到新文件中

 

 

 

 


 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
B站上的韩顺平老师的《Linux学习笔记》系列课程非常值得推荐。通过这个课程,我学到了很多关于Linux操作系统的知识和技能。 首先,韩老师在课程中详细介绍了Linux的基本概念和特点。我清楚地了解到Linux是一个开源的操作系统,具有稳定性、安全性和可定制性强的特点。这让我对Linux有了更深入的理解,也更有信心去学习和使用它。 其次,韩老师从基础开始,逐步讲解了Linux的安装和配置。他用简单明了的语言和实际操作的示范,帮助我了解了如何在虚拟机上安装Linux系统,并设置网络、用户账户、文件系统等。这为我后续的学习和实践打下了坚实的基础。 此外,韩老师还讲解了Linux的常用命令和工具。他详细介绍了常用的文件和目录操作命令,比如cd、ls、mkdir、cp等。同时,他还讲解了grep、sed、awk等强大的文本处理工具的使用方法。这些内容帮助我更加高效地进行文件管理和数据处理。 最后,韩老师还介绍了Linux的网络管理和安全防护。他讲解了如何配置网络连接、使用ssh远程登录以及设置防火墙等内容。这些知识对我了解网络和保护系统安全非常有帮助。 总的来说,韩顺平老师的《Linux学习笔记》课程非常实用,对于初学者来说是入门学习Linux的好选择。他通过深入浅出的讲解和丰富的实操示范,让我可以轻松地学习到Linux的基本知识和操作技巧。我相信通过学习这个课程,我会在Linux领域有更进一步的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值