1.取磁盤利用率:cut -d命令
df|tr –s? ‘ ’?? ‘%’ |cut –d “%” –f5
正則表達式:df -h |grep “^/dev/sd” |grep -o “[[:digit:]]\+%”|grep -o “[[:digit:]]\+”
2. paste 合并兩個文件同行號的列到一行
paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默認用TAB
-s : 所有行合成一行顯示
paste f1 f2???? paste -s f1 f2
3.分析文本的工具
wc=word count? 文本數據統計行數 字數 字節數
例:wc story.txt
常用選項:
?-l 只計數行數
?-w? 只計數單詞總數
?-c? 只計數字節總數
?-m? 只計數字符總數
?-L? 顯示文件中最長行的長度
4.service iptables stop 關閉防火墻 后使用? chkconfig? iptables off 禁止系統下次開機時開啟防火墻
5. 文本排序sort
?把整理過的文本顯示在STDOUT,不改變原始文件sort [options] file(s)
常用選項:
?-r 執行反方向(由上至下)整理
?-R 隨機排序
?-n 執行按數字大小整理
?-f 選項忽略(fold)字符串中的字符大小寫
?-u 選項(獨特,unique)刪除輸出中的重復行
?-t c 選項使用c做為字段界定符
?-k X 選項按照使用c字符分隔的X列來整理能夠使用多次
6.隨機抽取1-100中的一個數
seq 100 |sort –R |head –n1
7.使用 grep查找f1文件中以r開頭t結尾中間兩個任意字符,后期又重復出現的字符串
grep? “\(r..t\).* \1” f1
8.使用正則表達式截取IP地址
使用分組方式:ifconfig |grep –color -o “\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}
擴展正則表達式:ifconfig |grep –color -Eo “([0-9]{1,3}\.){3}[0-9]{1,3}”
sed方式:ifconfig |sed -n ‘2p’ |sed ‘s/^.*inet//’|sed ‘s/netmask.*//’
9.取/run/media/centos/packages 里rpm文件有幾種類型
ls *.rpm |grep –Eo”\.\<[[:alnum:]_]=\>.rpm$ |cut-d. –f2 |sort |uniq –c
10.Vim 搜索非#開頭的行添加#
%s/^[^#]/#&/
%s:全文搜索
11.sed打印非#開頭的行
sed –n “/^[^#]/p” etc/fstab
刪除#開頭的行:sed? “/^#/d” etc/fstab
sed執行搜索替換:
sed? “s@/sbin/nologin@/bin/bash@ f1
sed默認不更改文件,sed-i可以更改文件
sed搜索替代功能修改網卡名稱:
sed “s/quiet/& net.ifnames=0/” /etc/default/grub
sed ‘/GRUB_CMDLINE_LINUX/s/quiet/& net.ifname=0/’ /etc/default/grub
正則表達式:sed –r ‘/GRUB_CMDLINE_LINUX/s/(.*)”/\1 net.ifnames=0”/’ /etc/default/grub
12.sed命令添加別名:sed ‘/^# Source/ialias vi=vim’?? .bashrc
打印最后一行:sed ‘N;D’file
13. awk基本用法:
awk [options] ‘program’ var=value file…
awk [options] -f programfile var=value file…
awk [options] ‘BEGIN{ action;… } pattern{ action;… } END{ action;… }’ file …
awk 程序通常由:BEGIN語句塊、能夠使用模式匹配的通用語句塊、END語句塊,共3部分組成
選項:
-F 指明輸入時用到的字段分隔符
-v var=value: 自定義變量
awk里面命令默認使用空格作為分隔符且不計空格數量:
awk –F:?? 以:作為分隔符對etc/passwd進行分割字段
awk-v 定義變量 例:awk -v OFS=‘:’ ‘{print $1,$3,$7}’ /etc/passwd
如果有多個變量需要分別定義:awk -v FS=‘:’? -v OFS=‘:’
FS:輸入字段分隔符,默認為空白字符
打印每行的行號并打印最后一個字段awk –F:? ‘{print NR,$NF}’ /etc/passwd
?print格式: print item1, item2, …
? 要點:? (1) 逗號分隔符
? (2) 輸出的各item可以字符串,也可以是數值;當前記錄的字段、變量或awk的表達式
? (3) 如省略item,相當于print $0
printf命令:格式化輸出:printf “FORMAT”, item1, item2, …
print $1”:”$3?? 以:作為分隔符進行結果輸出,字符串:必須用雙引號標注,變量不需加
printf:
(1) 必須指定FORMAT
(2) 不會自動換行,需要顯式給出換行控制符,\n
(3) FORMAT中需要分別為后面每個item指定格式符格式符:與item一一對應
%c: 顯示字符的ASCII碼
%d, %i: 顯示十進制整數
%e, %E:顯示科學計數法數值
%f:顯示為浮點數
%g, %G:以科學計數法或浮點形式顯示數值
%s:顯示字符串
%u:無符號整數
%%: 顯示%自身
yum安裝參數:rpm -q autofs-systemctl start autofssystemctl enable autofscd –cd /misc/cd /etc/yum.repos.d-mkdir bak—mv *.repo bak–vim base.repo-修改參數
[base]
baseurl=file:///misc/cd
gpgcheck=0—–yum install httpd-tools
SHELL: 創建shell腳本
?第一步:使用文本編輯器來創建文本文件
?第一行必須包括shell聲明序列:#!
#!/bin/bash
?添加注釋: 注釋以#開頭
第二步:運行腳本
?給予執行權限,在命令行上指定腳本的絕對或相對路
徑直接運行解釋器,將腳本作為解釋器程序的參數運行
bash的數值測試:
?-v VAR變量VAR是否設置
數值測試:
-gt? 是否大于
-ge? 是否大于等于
-eq? 是否等于
-ne? 是否不等于
-lt? 是否小于
-le? 是否小于等于
使用read命令來接受輸入:
read? -p 指定要顯示的提示
-s 靜默輸入,一般用于密碼
-n N 指定輸入的字符長度N
-d? ‘字符’ 輸入結束符
-t N TIMEOUT為N秒
read 從標準輸入中讀取值,給每個單詞分配一個變量, 所有剩余單詞都被分配給最后一個變量
read -p “Enter a filename: “ FILE
for循環的特殊格式:for ((控制變量初始化;條件判斷表達式;控制變量的修正表達式)) do
循環體
done
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92553