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
總結
以上是生活随笔為你收集整理的linux系统实用脚本,常用linux系统命令及简单小脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java高级教程_Java高级教程02
- 下一篇: pythonmulti函数_python