linux系统实用脚本,常用linux系统命令及简单小脚本

个人用到的比较常用的命令:

过滤配置文件注释与空行

grep "^\s*[^# \t].*$"

1、linux下挂在windows指定用户的共享目录

mount -t cifs 192.168.0.1:\lamp /mnt -ousername=lamp,password=password

2、设置vim到最适合自己使用习惯。

# vim ~/.vimrc

set hlsearch

set backspace=2

set autoindent

set ruler

set showmode

set nu

set bg=dark

syntax on

解释:hlsearch是高亮显示,backspace=2是说允许用退格键删除文本,autoindent是自动缩行,写脚本的时候常用,ruler是现实右下角的状态说明,showmode是指现实目前状态如INSERT等,nu是显示行号,bg=dark是为了解决一些注释的语句是深蓝色,在黑背景下不容易显示。syntax on指根据程序相关语法显示不同颜色。

set autoindent也有副作用,他的副作用就是,如果你是粘贴文本,如man手册,用vim粘贴,那会累积tab,导致格式错误。注意,这个选项只在用vim编辑脚本的时候用合适。

3、逐行读取文件并赋值脚本,每行有n列,任意分隔符。这里分隔符为“:”,如果只是用cat做分隔符,可以把“-F:”省略。awk具体用法自己看man手册或百度google。

[root@localhost test]# cat ccc

111:222

444:555

[root@localhost test]# cat a.sh

#!/bin/bash

awk -F: '{print $1" "$2}' ccc|while read A B;do

a=$(($A+1))

b=$(($B+2))

echo $a,$b

done

[root@localhost test]# ./a.sh

112,224

445,557

4、格式输出。竖排变横排

(1)用xargs

# df

文件系统        1K-块       已用       可用 已用% 挂载点

/dev/sda2  81256500   8604508  68457824  12% /

/dev/sda1    101086     11773     84094  13% /boot

tmpfs       4087168         0   4087168   0% /dev/shm

# df|sed -n 2,3p|gawk '{print $6"\t"$5}'

/       12%

/boot   13%

# df|sed -n 2,3p|gawk '{print $6"\t"$5}'|xargs

/ 12% /boot 13%成了单行输出,这里就好解决了,用前边提到的while read就能读取到变量里了,想干啥随便你了。

如:

# cat test.sh

#!/bin/bash

# script to capture system statistics

/bin/df|sed -n 2,3p|gawk '{print $6"\t"$5}'|xargs|gawk '{print $1,$2,$3,$4}'|while read A B C D;do

echo $A,$B,$C,$D

done

(2)用awk的函数命令

首先介绍会用到的两个函数:OFS和ORS

OFS是定义gawk的分隔符

ORS是定义换行符(小bug,定义换行符了以后,用完gwak,#不会重新换行,而是紧跟在你定义的ORS之后)

例如:

[root@localhost test]# cat a

aaa bbb

ccc ddd

[root@localhost test]# awk '{OFS="---"}{ORS="+++"}{print $1,$2}' a

aaa---bbb+++ccc---ddd+++[root@localhost test]#

[root@localhost test]# awk '{OFS="\t"}{ORS="\n"}{print $1,$2}' a

aaa     bbb

ccc     ddd

看到例子的第二个输出了吧。首先,其会吧$1和$2之间的分隔符用OFS替代,即指定了分隔符为什么。ORS为替换换行符,换行符用+++替代。当然大家可以用任何你喜欢的字符串进行操作的,如最后又将分隔符换为tab制表位,将换行符接着换回回车换行符,这样显示就对了吧。

5、awk计算输出的某列之和

$ find /tmp -xdev -name"*log"-execdu {} \;

12  /tmp/appLoader-2862.log

4   /tmp/appLoader-2859.log

$ find /tmp -xdev -name"*log"-execdu {} \;|awk'{total=total+$1};END{print total" KB"}'

16 KB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值