1)開頭加直譯器:#!/bin/bash
2)語法縮排,使用四個空格;多加注釋說明。
3)命名建議規則:變數名大寫、區域性變數小寫,函式名小寫,名字體現出實際作用。
4)預設變數是全域性的,在函式中變數local指定為區域性變數,避免汙染其他作用域。
5)有兩個命令能幫助我除錯指令碼:set -e 遇到執行非0時退出指令碼,set-x 列印執行過程。
6)寫指令碼一定先測試再到生產上。
(1)ps aux 顯示系統全部程序,一行乙個
(2)grep 「abc」 從標準輸入讀取字元流,輸出包含字串「abc」的行
(3)grep -v "acb" 從標準輸入讀取字元流,輸出不包含字串「abc」的行
(4)wc -l 從標準輸入讀取字元流,輸出行數
例如需要檢測程序httpd是否存在,操作流程如下:
(1)讀取系統所有程序
(2)判斷包含指定程序名字的資訊是否存在
通過管道連線,命令如下:
所有程序-->獲取包含「httpd」的行-->刪除grep程序資訊-->輸出最後的行數
通過判斷命令的執行結果是否為 0 ,可以知道程序是否存在。
指令碼如下:
在日常工作過程中,經常要對伺服器進行一些操作,整理了一些常用的一句話shell命令。
1、查詢當前目錄下占用為0位元組的檔案並刪除
find ./ -type f -size 0 -exec rm -rf {}\; #此命令不要用於對根目錄0位元組檔案的操作
2、將系統程序按記憶體占用大小排列顯示出來
ps -e -o 「%c : %p : %z : %a」|sort -k5-nr
3、將系統程序按cpu占用大小排列顯示
ps -e -o 「%c : %p : %z : %a」|sort -nr
4、匹配某檔案中某一行並進行內容替換
sed -i 『/root/s/no/yes』/ etc/ssh/sshd_config #先匹配到root,再將此行no替換為yes
5、顯示所有執行級別為3並開機啟動的服務
ls /etc/rc3.d/s* |cut -c 15- #rc3.d中s開頭即為執行級別3的服務,並用cut擷取第15個字元後面的內容
6、取得eth0網絡卡的ip位址
方法1:ifconfig | grep 『inet addr:』| grep -v 』127.0.0.1′ | cut -d:-f2 | awk 『』
方法2:ifconfig eth0 |grep 「inet addr:」 |awk 『』|cut -c 6-
方法3: ip addr |grep "inet"|awk ''| awk -f "/" ''
7、tcp抓包工具分析80埠資料流
tcpdump -c 10000 -i eth0 -n dst port 80
8、查詢昨天的日期
date –date=yesterday
9、刪除所有空目錄
find /data -type d -empty -exec rm -rf {}; #最好不要在/目錄下執行此命令
10、刪除5天前的檔案
find /data -mtime +5 -type f -exec rm -rf{};
11、強制踢出終端使用者
pkill -kill -t pts/1
12、將來自80埠的請求**到8080埠
iptables -a prerouting -p tcp -m tcp –dport80 -j dnat –to-destination 127.0.0.1:8080
13、linux伺服器之間傳檔案
scp ~/[email protected]:/data/ #將個人主目錄下test.txt傳到遠端主機的/data目錄下
14、對大檔案進行分割
split -l 1000 message.log message #按每個檔案1000行來分割
split -b 5m message.log message #按每個檔案5m來分割
15、殺掉80埠相關的程序
lsof -i :80|grep -v "pid"|awk ''|sh
Linux運維基本命令詳解
ls命令 ls a 列出目錄所有檔案,包含以.開始的隱藏檔案 ls a 列出除.及.的其它檔案 ls r 反序排列 ls t 以檔案修改時間排序 ls s 以檔案大小排序 ls h 以易讀大小顯示 ls l 除了檔名之外,還將檔案的許可權 所有者 檔案大小等資訊詳細列出來 mkdir命令 在這裡插入...
Linux運維常用指令碼整理
1 查詢當前目錄下占用為0位元組的檔案並刪除 find type f size 0 exec rm rf 此命令不要用於對根目錄0位元組檔案的操作 2 將系統程序按記憶體占用大小排列顯示出來 ps e o c p z a sort k5 nr 3 將系統程序按cpu占用大小排列顯示 ps e o c...
常用Linux運維命令
1 檢視tcp連線狀態 netstat nat awk sort uniq c sort rn netstat n awk tcp end netstat n awk tcp end netstat n awk tcp end netstat n awk tcp sort uniq c sort r...