1.1常用基礎指令總結
1.1.1mkdir建立目錄
mkdir 建立目錄 make directory
-p 一層一層建立目錄 (遞歸)
舉例: mkdir -p /dataa/ /oldboy/
1.1.2.ls 顯示目錄中的内容
顯示目錄中的内容,清單 list
-l(小寫字母L) 顯示詳細的資訊
-d 表示把目錄當做普通檔案來對待 顯示目錄本身的資訊
ls -l /tmp 顯示 /tmp 目錄裡面的詳細資訊
ls -ld /tmp ##顯示 /tmp 目錄本身的詳細資訊
-F 給不同類型的檔案加上不同的标記 /----表示目錄
-r 按照逆序(倒序,反過來)的順序進行排列
-t 按照檔案的修改時間排序
ls -lrt 或 ll -rt
舉例:ls -r /data/
1.1.3pwd 顯示目前你所在的位置 路徑
顯示目前你所在的位置 路徑
1.1.4cd 進入一個目錄
改變目前你所在位置/路徑/目錄
cd - 表示回到上一次使用的工作目錄(回到最近一次的位置)
舉例:cd /data/
1.1.5touch建立檔案
摸 建立檔案 修改檔案的時間戳 可以建立好幾個檔案
舉例:touch /data/oldboy.txt ett.txt
1.1.6.vi/vim 編輯
1)使用vi打開oldboy.txt
vi /data/oldboy.txt
預設是指令模式
2)i ===>insert插入模式(編輯模式) ====>然後輸入文本
I am studying linux.
3)按esc鍵 我不想編輯了,退出編輯模式(插入模式),再次進入到指令模式
4):wq儲存并退出
5)補充
:q 表示的是退出 quit
:q! 表示強制退出 退出不儲存
vi windwows記事本
vim notepad++ emeditor 複雜
vi/vim 指令(快捷鍵)
gg 把光标移動到檔案的第一行
G 把光标移動到檔案的最後行
set nu ##顯示行号,臨時給你看
set nonu ##不顯示行号
x 删除光标所在的字母
批量删除
1.選擇好你要删除的内容
ctrl+v 批量操作 可是塊模式
2.按x 删除
批量插入 添加内容
1.ctrl + v 選好範圍
2.shift+ i輸入你想要批量添加的内容
3.修改完成後,按esc
舉例:vim /ett/profile
1.1.7cat 顯示檔案内容
cat 顯示檔案内容
往檔案中一次放入多行
cat >>/data/oldboy.txt<<EOF
EOF
cat -n 顯示檔案内容并顯示行号
cat -A 顯示檔案中所有符号,以$結尾
舉例:cat /data/ett.txt
1.1.8echo 把後面的内容顯示到螢幕
echo 把後面的内容顯示(輸出,列印)到螢幕
-n 不輸出結尾的回車
-e 讓echo指令支援 撬棍系列/轉義符号系列
\t tab8個空格長的位置
\n 回車換行
舉例echo 'I love you' >>/data/ett.txt
1.1.9xargs 分組
xargs 分組
-n 2 分成2組 每一行隻顯示2列。
1.1.10cp 複制
cp 複制檔案或目錄 預設不能複制目錄
-a -pdr
-r 遞歸 目錄及目錄的内容(子孫後代)
-p 複制的時候 保持檔案或目錄的屬性不變。
舉例:cp -r /data/ /root/
1.1.11mv 移動
mv 移動(搬家)
修改檔案名
舉例:mv /data /root
mv /data/oldboy.txt data/ett.txt
1.1.12rm 删除
rm 删除 删除檔案或目錄 預設隻能删除檔案 (remove)
-r 遞歸 删除目錄 及目錄的内容(子孫後代)
-f 強制删除 不給任何提示
舉例:rm -f /data/oldboy 強制删除/data/oldboy
rm -r /data/ 删除目錄
1.2常用的重要指令
1.2.1find 用來找檔案或目錄
find 用來找檔案或目錄 linux四劍客
find /data/ -type f -name "oldboy.txt"
找哪裡的? 找什麼類型 找什麼名字
-maxdepth 1 表示find指令 查找的最大的深度(最多查找幾層目錄)
-type f (file普通檔案)
-type -d (directory目錄 )
-name "*.txt" (需要查找的名字)
-mtime +7 查找修改時間是7天以前的東西 修改時間
-size +100k /-size +1M 根據大小查找東西
舉例:以.txt結尾的檔案 find /data -type f -name "*.tx "-mtime +7 -size +1M
1.2.2sed 擅長取某一行
sed 三劍客老二,擅長取某一行
-n 取消預設輸出 與 p配合
-i 修改檔案的内容
'/找東西/' oldboy.txt
$NF/$p 最後一行
舉例:sed -n '20,30p' ett.txt (取出20-30行)
sed -i 's#oldboy#oldgril#g' test.txt
[root@oldboyedu-39-nb ~]# sed -n '1,4p' person.txt (p顯示範圍)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
1.2.3awk 擅長取莫一列
awk 三劍客老大,擅長取某一列
NR 行号 number of record awk'NR==20,NR==30' ett.txt
$數字 某一列
$NF 最後一列顯示 '{print $3,$NF}'
-F 指定菜刀 分隔符
-F ":" 修改的是FS的内置變量
-F "," 指定以逗号為菜刀 隻有一把刀
-F "[ ,]" 指定多把菜刀
'/找東西/' oldboy.txt
! 表示取反
-v 修改/建立變量
-e <script>或--expression=<script>:以選項中的指定的script來處理輸入的文本檔案;
-e 進行多項編輯,即對輸入行應用多條sed指令時使用
-f<script檔案>或--file=<script檔案>:以選項中指定的script檔案來處理輸入的文本檔案;
OFS 相當于,裡面的内容 awk在顯示/輸出某幾列的時候 使用的分隔符
舉例:awk -F ":" -vOFS=":" '{print $NF,$6,$5,$4,$3,$2,$1}' /etc/passwd
[root@oldboyedu-39-nb ~]# echo 1 2 3
1 2 3
[root@oldboyedu-39-nb ~]# echo 1 2 3 |awk -vOFS="###@@@####" '{print $1,$3}'
1###@@@####3
舉例:awk -F "[ ,]" '{print $3,$NF}' /oldboy/oldboy.txt
awk 'NR==30 NR==40' test.txt
1.2.4grep擅長過濾,在檔案中找東西
grep 三劍客老三,擅長過濾,在檔案中找東西
-v 排除,把grep找到的東西 排除掉。
-n 給顯示到螢幕上的内容加上行号 給grep指令找到的東西 加上行号
-i 過濾的時候,不區分大小寫
-c 統計行數,統計包含你想要的東西,一共有幾行
舉例:grep -v 'oldboy.1' /data/oldboy.txt
1.2.5head 預設檔案的前10行
head 頭,取檔案的頭幾行,預設檔案的前10行
-num 取檔案的頭num行 ===== -n 數字 head -40
舉例:head -40 test.txt
1.2.6tail 預設取後十行
tail 尾,取檔案的結尾的幾行,預設檔案的結尾的10行 tail -30
-f 顯示檔案的實時更新
tail -f ====== tailf
舉例:tail -30 test.txt
head -40 test.txt | tail -11 取30-40行
1.3必知必會指令
1.3.1alias 别名
alias 檢視或配置linux别名
unalias 臨時取消别名
舉例:alias rm='echo rm wo not do' 臨時
vim /etc/profile 永久
rm='echo rm wo not no'
source /etc/ profile 生效
1.3.2ifup 啟動某一塊網卡
ifup 啟動某一塊網卡
ifup eth0
1.3.3ifdown 關閉某一塊網卡
ifdown 關閉某一塊網卡
ifdown eth0
ifconfig 檢視網卡的ip位址
1.3.4uname 顯示系統核心資訊
uname 顯示系統核心資訊
-r 顯示的是核心版本
-m 32位 64位
1.3.5.whoami 檢視目前使用者名字
whoami 檢視目前使用者名字
1.3.6su 切換使用者
su 切換使用者 (switch user
su - oldboy
1.3.7df 檢視磁盤使用情況
df 檢視磁盤使用情況
-h --human-readable
舉例:df -h 磁盤空間還剩餘很多
1.3.8chkconfig 自啟動軟體
chkconfig 用來管理開機自啟動軟體/服務
--list 檢視指定服務的開機啟動狀态
chkconfig |grep ipt
--level 指定運作級别
chkconfig --level 0123456 iptables off 開啟
chkconfig iptables off
1.3.9 setenforce 設定selinux狀态
1.3.10 getenforce 檢視selinux狀态
1.3.11 tar 打包壓縮
tar linux裡面打包壓縮的工具
zcvf 壓縮 == zcf tar zcvf /tmp/etc.tar.gz /etc/
zxvf 解壓 == xf tar zxvf /tmp/etc.tar.gz -C /tmp/(解壓路徑)
ztf 查找 == tf tar tf /tmp/etc.tar.gz
tar zchf 根據打包壓縮軟連結找到原檔案(打包軟連結時候才用)
1.z==> gzip 壓縮工具
2.c==> create 建立(壓縮)包--打包
3.v==> verbose 顯示打包壓縮過程(打包 壓縮 解壓過程)
4.f==> file 筐 指定壓縮包的名字
5.h==> zchf 打包的時候 遇到軟連接配接 打包軟連接配接指向的源檔案
zcvf ----- zcf etc.tar.gz
z----gzip-- etc.tar.gz
j----bzip-- etc.tar.bz
z --- gzip 壓縮
c create 建立[壓縮]包
v 顯示過程
f 指定壓縮包(筐)的位置和名字
x 解開壓縮包
t list 檢視壓縮包中的内容
--exclude 打包壓縮排除某個檔案,使用相對路徑
-X --exclude-from 打包壓縮根據一個清單(名單)來排除
-C --directory 解壓到指定的檔案夾(目錄)
1.3.12cut 取列 切
cut 取列 切
-d 指定菜刀,一次隻能指定一個菜刀
-f 取某一部分
-f1 取第一列
-f1,3 取第一列和第三列
-f1-4 從哪裡來到哪裡去 取第一列到第四列 -f1,2,3,4
-c 取某一列字元 (cut -c 1-5就是去1-5個字元)
1.3.13wc 統計檔案的内容 多少行 多大
wc 統計檔案的内容 多少行 多大
wc -l /etc/services (wc -l 檢視行号/行數)
1.3.14source配置生效
source或.(點) 讓一些配置生效
source/etc/sysconfig/i18n 修改字元集
source/etc/profile 系統的環境變量
1.3.15.which查找指令的位置
.which 查找指令的位置 絕對路徑 全路徑(根據PATH環境變量查找)
[root@olbboy39 ~]# which find
/bin/find
1.3.16useradd 添加使用者
useradd 添加使用者
-u 指定使用者的UID
-s 指定使用者使用的shell /bin/bash /sbin/nologin
-M 建立使用者的時候 不建立家目錄
-g 添加使用者的時候 指定屬于哪個使用者組
1.3.17passwd 設定使用者密碼
passwd 給使用者設定密碼
--stdin 從管道前面擷取密碼,非互動式設定密碼
[root@oldboyedu36 ~]#
[root@oldboyedu36 ~]# echo 123456 |passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
1.3.18userdel 删除使用者
userdel 删除使用者,預設不會删除使用者的家目錄 和郵箱檔案
-r 删除使用者的家目錄和郵箱 删除和使用者有關的資訊
1.3.19usermod 修改使用者資訊
usermod 修改使用者資訊
-s 修改使用者使用的shell
-g 修改使用者屬于的使用者組
1.3.20mount挂載
mount 挂載
mount /dev/sdb1 /mnt
-t ext4 指定檔案系統類型
1.3.21umount 解除安裝
umount 解除安裝
umount /mnt 解除安裝這個目錄
-lf 強制解除安裝
1.3.22file 檢視檔案是什麼類型
file oldboy.txt 檢視oldboy.txt 檔案類型
1.3.23ln 建立硬連結
ln 建立連結 預設建立硬連結
-s 建立軟/符号連結
舉例:ln oldboy.txt wang.txt
ln -s oldboy.txt long.txt
1.3.24hostname 修改主機名
hostname 修改主機名
hostname -I ---表示檢視所有網卡的IP位址資訊
10.0.0.200 10.0.0.100
hostname -i ---表示檢視hosts檔案主機名映射的IP位址資訊
10.0.0.200
hostname oldboyedu36 臨時
/etc/sysconfig/network 永久修改主機名
1.3.25ps -ef檢視sshd服務是否存在
[root@olbboy39 ~]# ps -ef |grep sshd
root 1478 1 0 Aug08 ? 00:00:00 /usr/sbin/sshd
root 13904 1478 0 00:11 ? 00:00:01 sshd: root@pts/1
root 13966 1478 0 00:53 ? 00:00:00 sshd: root@pts/3
root 14339 1478 0 03:01 ? 00:00:00 sshd: wanglong [priv]
wanglong 14343 14339 0 03:01 ? 00:00:00 sshd: wanglong@pts/0
root 15925 1478 0 04:44 ? 00:00:00 sshd: root@pts/2
root 15991 15929 0 05:02 pts/2 00:00:00 grep --color=auto sshd
[root@olbboy39 ~]#
1.3.26ps 顯示正在運作的程序
[root@olbboy39 ~]# ps
PID TTY TIME CMD
15929 pts/2 00:00:00 bash
15977 pts/2 00:00:00 ps
1.3.27lsof 顯示出所有被打開的檔案
lsof+檔案 或 lsof |grep 檔案 顯示某個檔案被誰使用
程序調用數為零 lsof+檔案 或 lsof |grep 檔案
硬連結數為零,但是程序調用數不為零-----lsof |grep delete
rm -f /var/log/messages (删除)
lsof |grep messages (檢視這個檔案還有誰在用)
lsof |grep delete (排查錯誤)
/etc/init.d/rsyslog restart (重新開機軟體)
1.3.28ls -lih 檢視inode号碼
案例:
[root@39nu ~]# ls -lih
total 12K
260100 drwxr-xr-x. 2 root root 4.0K Jul 29 01:20 data
260216 -rw-r--r--. 1 root root 0 Jul 29 01:18 oldboy.txt
275228 -rw-r--r--. 2 root root 18 Jul 29 01:22 xiaowang
275228 -rw-r--r--. 2 root root 18 Jul 29 01:22 xiaowang-long::
1.3.29df -h 檢視block用量情況
[root@39nu ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
1.3.30du -h 檢視每個檔案的大小
[root@39nu ~]# du -sh
52K.
1.3.31用{}備份
[root@39nu data]# echo lianxi.txt{,.bak} (備份)
lianxi.txt lianxi.txt.bak
[root@39nu data]# \cp lianxi.txt{,.bak}
[root@39nu data]# ll
total 12
-rw-r--r--. 1 root root 183 Jul 30 23:47 lianxi.txt
-rw-r--r--. 1 root root 183 Jul 30 23:59 lianxi.txt.bak
-rw-r--r--. 1 root root 244 Jul 30 23:52 wang.tar.gz
[root@39nu data]#
1.3.32tr sed的閹割版
tr:簡單的替換
舉例說明:
[root@39nu 20170118]# cat oldboy.txt|tr "[a-z]" "[A-Z]"
I AM OLDBOY TEACHER!
I TEACH LINUX.
I LIKE BADMINTON BALL ,BILLIARD BALL AND CHINESE CHESS!
MY BLOG IS HTTP://OLDBOY.BLOG.51CTO.COM
OUR SITE IS HTTP://WWW.ETIANTIAN.ORG
MY QQ NUM IS 49000448.
NOT 4900000448.
MY GOD ,I AM NOT OLDBEY,BUT OLDBOY!
1.3.33egrep 過濾正規表達式進階處理
含義:過濾正規表達式進階處理
[root@39nu 20170118]# egrep "[a-z]+" oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
1.3.34date 時間 日期
date -d 按照描述的時間顯示,
-s 設定修改時間
舉例:
年-月-日_周幾(+%F=+%Y-%m-%d_%w) 【中間不能有空格】
[root@39nu 20170118]# date -d "-3day" 【表示三天前】
Fri Jul 28 07:03:53 CST 2017
[root@39nu 20170118]# date -d "-3day" +%F
2017-07-28
[root@39nu 20170118]# date +%T 【顯示時分秒】
12:32:33
時間拓展知識:
建立檔案——時間——拓展名
[root@39nu 20170118]# touch wang-$(date +%F).long
[root@39nu 20170118]# ls -lrt
-rw-r--r--. 1 root root 0 Aug 4 05:44 wang-2017-08-04.long
建立一個檔案要求檔案名是oldboy-2017-05-20.log 這種格式。
[root@39nu 20170118]# touch oldboy-$(date +%F).log
[root@39nu 20170118]# ls -lrt (逆序時間)
-rw-r--r--. 1 root root 0 Aug 4 05:47 oldboy-2017-08-04.log
1.3.35ntpdate 表示同步時間,自動修改時間
pool.ntp.org
ntp1.aliyun.com
time.nist.gov
root@39nu 20170118]# ntpdate pool.ntp.org 【方法一】
3 Aug 12:10:34 ntpdate[31617]: step time server 182.92.12.11 offset -13002721.841651 sec
[root@39nu 20170118]# ntpdate ntp1.aliyun com 【方法二】
3 Aug 12:13:15 ntpdate[31624]: adjust time server 182.92.12.11 offset 0.002576 sec
1.3.36shutdown 關機 重新開機
-h 關機
-r 重新開機
-c 取消目前關機(重新開機)模式
shutdown -h 10 -h ===== halt (十分鐘後關機)
shutdown -r 10 -r ===== reboot (十分鐘後重新開機)
1.1.1history 或者ctrl+r顯示曆史指令
1.1.2id 看使用者資訊,使用者是否存在
[root@39nu 20170118]# id root
uid=0(root) gid=0(root) groups=0(root)
1.1.3chmod 修改權限
-R 修改目錄及子目錄的權限 遞歸修改權限
+ 增權重限
- 減去權限
= 先清除原有的權限在添加
[root@39nu 20170118]# chmod u+x oldboy.txt
[root@39nu 20170118]# ll oldboy.txt
-rwxr--r--. 1 root root 246 Jul 31 03:04 oldboy.txt
給主人家人陌生人都加上同樣的rwx權限
[root@39nu 20170118]# chmod ugo=rwx oldboy.txt
-rwxrwxrwx. 1 root root 246 Jul 31 03:04 oldboy.txt
[root@39nu 20170118]# chmod a=rwx oldboy.txt
[root@39nu 20170118]# chmod =rwx oldboy.txt
-rwxr-xr-x. 1 root root 246 Jul 31 03:04 oldboy.txt
1.1.4stat 檢視檔案屬性
[root@39nu data]# stat oldboydir/test.sh
File: `oldboydir/test.sh'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051dInode: 275227 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-08-04 18:09:55.524970601 +0800
Modify: 2017-08-04 18:09:55.524970601 +0800
Change: 2017-08-04 18:09:55.528969905 +0800
1.1.5chattr 改變檔案屬性
chattr 授予檔案或目錄隐藏的權限
a (append 隻能追加) 如果設定這個權限,隻能追加,不能删除,修改
i (immuttable 無敵) 無法修改,無法删除
[root@olbboy39 ~]# chattr +a /oldboy/oldboydir/er.txt
[root@olbboy39 ~]# lsattr /oldboy/oldboydir/er.txt
-----a-------e- /oldboy/oldboydir/er.txt
[root@olbboy39 ~]# chattr -a /oldboy/oldboydir/er.txt
[root@olbboy39 ~]# chattr -a /oldboy/oldboydir/er.txt
-------------e- /oldboy/oldboydir/er.txt
1.1.6lsattr 檢視隐藏檔案
[root@olbboy39 ~]# lsattr
-------------e- ./wanglong
-------------e- ./tmp
-------------e- ./lianxi.txt
-------------e- ./oldboy.txt
-------------e- ./data
-------------e- ./xiaowang
-------------e- ./xiaowang-long
[root@olbboy39 ~]# chattr +a /oldboy/oldboydir/er.txt
注:chattr指令不能保護/、/dev、/tmp、/var目錄
lsattr指令是顯示chattr指令設定的檔案屬性
1.1.7crontab ==crond 定時任務
-e:編輯該使用者的計時器設定;
-l:列出該使用者的計時器設定;
-r:删除該使用者的計時器設定;
-u<使用者名稱>:指定要設定計時器的使用者名稱
[root@olbboy39 ~]# crontab -l (檢視) 《===》cat /var/spool/cron/root
no crontab for root
[root@olbboy39 ~]# #目前使用者沒有定時任務
[root@olbboy39 ~]# crontab -e (修改) 《===》vi/vim
#oldboy (添加一個oldboy)
crontab: installing new crontab
[root@olbboy39 ~]# crontab -l
#oldboy
1.1.8chown改變某個檔案或目錄的所有者和所屬的組
-R 修改目錄及子目錄的所有者,遞歸修改檔案或目錄的所有者
chown change own 修改檔案或目錄的所有者
chown oldboy.oldboy oldboy.txt
[root@olbboy39 ~]# ls -ld /oldboy/
drwxr-xr-x. 9 root root 4096 Aug 5 09:39 /oldboy/
[root@olbboy39 ~]# chown -R oldboy:root /oldboy/
drwxr-xr-x. 9 oldboy root 4096 Aug 5 09:39 /oldboy/
1.1.9chgrp指令用來改變檔案或目錄所屬的使用者組
-c或——changes:效果類似“-v”參數,但僅回報更改的部分;
-f或--quiet或——silent:不顯示錯誤資訊;
-h或--no-dereference:隻對符号連接配接的檔案作修改,而不是該其他任何相關檔案;
-R或——recursive:遞歸處理,将指令目錄下的所有檔案及子目錄一并處理;
-v或——verbose:顯示指令執行過程;
将/usr/meng及其子目錄下的所有檔案的使用者組改為mengxin
[root@olbboy39 ~]# chgrp -R mengxin /usr/meng
1.1.10history 顯示你用過的指令
history 顯示你用的指令,指令的曆史記錄
-d 數字 删除某一條用過的指令記錄
-c 删除所有使用過的指令記錄
1.1.11groupadd 添加使用者組
groupadd 添加使用者組
-g 指定gid
1.1.12w 檢視系統的負載
w 檢視系統的負載 ,誰遠端登陸了你的系統,并且他們在幹啥
[root@olbboy39 ~]# w
' 04:44:25 up 2 days, 17:42, 5 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Sat14 5days 0.07s 0.07s -bash
wanglong pts/0 10.0.0.1 03:01 1:43m 0.04s 0.04s -bash
root pts/1 10.0.0.1 00:11 40:27 0.37s 0.37s -bash
root pts/2 10.0.0.1 04:44 1.00s 0.24s 0.16s w
root pts/3 10.0.0.1 00:53 40:46 0.23s 0.05s -bash
1.1.13 last 顯示誰在哪裡遠端登入,登入了多久
last 顯示誰在哪裡遠端登入 ,登入了多久
[root@olbboy39 ~]# last |head -5
root pts/2 10.0.0.1 Fri Aug 11 04:44 still logged in
wanglong pts/0 10.0.0.1 Fri Aug 11 03:01 still logged in
root pts/3 10.0.0.1 Fri Aug 11 00:53 still logged in
root pts/1 10.0.0.1 Fri Aug 11 00:11 still logged in
root pts/1 10.0.0.1 Thu Aug 10 23:13 - 00:11 (00:58)
1.1.14 lastlog 顯示系統中所有使用者最近一次的登入資訊
lastlog 顯示系統中所有使用者最近一次的登入資訊
tail: cannot open `10' for reading: No such file or directory
[root@olbboy39 ~]# lastlog|tail -10
tcpdump **Never logged in**
oldboy **Never logged in**
oldgirl **Never logged in**
test **Never logged in**
wanglong pts/0 10.0.0.1 Fri Aug 11 03:01:01 +0800 2017
dalongga **Never logged in**
lidao **Never logged in**
DLG555 **Never logged in**
mysql **Never logged in**
liu **Never logged in**
1.1.15 locate 根據名字找到檔案 根據一個清單(資料庫)
locate 根據名字找到檔案 根據一個清單(資料庫)
[root@olbboy39 ~]# locate .txt|head -5
/2017/df.txt
/2017/df2.txt
/c/oldboy.txt
/data/oldboy11.txt
/data/oldboy12.txt
1.1.16 whereis找出指令的位置 指令相關幫助文檔的位置
whereis 找出指令的位置 指令相關幫助文檔的位置
[root@olbboy39 ~]# whereis find
find: /bin/find /usr/bin/find /usr/share/man/man1p/find.1p.gz /usr/share/man/man1/find.1.gz
1.1.1 fdisk 磁盤分區工具(用于MBR分區表,小于2TB的)
-b<分區大小>:指定每個分區的大小;
-l:列出指定的外圍裝置的分區表狀況;
-s<分區編号>:将指定的分區大小輸出到标準輸出上,機關為區塊;
-u:搭配"-l"參數清單,會用分區數目取代柱面數目,來表示每個分區的起始位址;
-v:顯示版本資訊。
-u: 以扇區的形式進行分區/檢視 預設是柱面
-c: 禁止的DOS相容模式
輸入m列出可以執行的指令:
輸入p列出磁盤目前的分區情況:
輸入d然後選擇分區,删除現有分區:
輸入n建立新的磁盤分區,首先建立兩個主磁盤分區:
1.1.2 parted 磁盤分區工具
主要用于大于2TB的
用于gpt分區表
parted /dev/sdc print (顯示情況)
parted /dev/sdc mklabel gpt
parted /dev/sdc mkpart primary 0 100 (建立分區)
1.1.3mkfs 格式化磁盤或者建立新的檔案系統
fs:指定建立檔案系統時的參數;
-t<檔案系統類型>:指定要建立何種檔案系統;
-v:顯示版本資訊與詳細的使用方法;
-V:顯示簡要的使用方法;
-c:在制做檔案系統前,檢查該partition是否有壞軌。
在/dev/hda5上建一個msdos的檔案系統,同時檢查是否有壞軌存在,并且将過程詳細列出來:
mkfs -V -t msdos -c /dev/hda
1.1.4mkfs -t ext3 /dev/sda6 //将sda6分區格式化為ext3格式
mkfs -t ext2 /dev/sda7 //将sda7分區格式化為ext2格式
mkfs.ext4=mkfs -t ext4
1.1.5tune2fs 修改檔案系統資訊
-i:間隔 檔案系統檢查的間隔
-c:次數 每次挂載多少之後進行磁盤檢查
tune2fs -i 1 -c 1 /dev/adb1
1.1.6dumpe2fs 顯示檔案系統(分區)的資訊
-h 人類可讀
inode size
block size
隻對于 ext2/ext3/ext4檔案類型
1.1.7fsck 檔案系統檢查/修複檔案系統的錯誤
-a:自動修複檔案系統,不詢問任何問題;
-A:依照/etc/fstab配置檔案的内容,檢查檔案内所列的全部檔案系統;
-N:不執行指令,僅列出實際執行會進行的動作;
-P:當搭配"-A"參數使用時,則會同時檢查所有的檔案系統;
-r:采用互動模式,在執行修複時詢問問題,讓使用者得以确認并決定處理方式;
-R:當搭配"-A"參數使用時,則會略過/目錄的檔案系統不予檢查;
-s:依序執行檢查作業,而非同時執行;
-t<檔案系統類型>:指定要檢查的檔案系統類型;
-T:執行fsck指令時,不顯示标題資訊;
-V:顯示指令執行過程。
linux的檔案系統損壞會導緻linux不正常關機,出錯的時候如果系統告訴你是哪一塊硬碟的分區有問題,比如是/dev/hda2,接着用如下的指令去對付它:
fsck -y /dev/hda2
1.1.8 dd複制檔案并對原檔案的内容進行轉換和格式化處理(建立一個塊)
bs=<位元組數>:将ibs(輸入)與歐巴桑(輸出)設成指定的位元組數;
cbs=<位元組數>:轉換時,每次隻轉換指定的位元組數;
conv=<關鍵字>:指定檔案轉換的方式;
count=<區塊數>:僅讀取指定的區塊數;
ibs=<位元組數>:每次讀取的位元組數;
obs=<位元組數>:每次輸出的位元組數;
of=<檔案>:輸出到檔案;
seek=<區塊數>:一開始輸出時,跳過指定的區塊數;
skip=<區塊數>:一開始讀取時,跳過指定的區塊數;
--help:幫助;
--version:顯示版本資訊。
執行個體: 每次讀多少 讀多少次
[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
[root@localhost text]# du -sh sun.txt
1.1M sun.txt
dd if =/dev/sda of =/tmp/mbr.bin bs=512 count=1
dd if=/dev/zero of =/tmp/swap bs=1M count=100
1.1.9mkswap在一個檔案或者裝置上建立交換分區
-c:建立交換區前,先檢查是否有損壞的區塊;
-f:在SPARC電腦上建立交換區時,要加上此參數;
-v0:建立舊式交換區,此為預設值;
-v1:建立新式交換區。
1.1.10swapon 上swap生效或,讓檔案/分區作為swap
-s 顯示swap統計資訊
[root@olbboy39 ~]# swapon -s
FilenameTypeSizeUsedPriority
/dev/sda2 partition7864280-1
1.1.11swapoff 關閉
1.1.12 du 顯示目錄/檔案占地面積(所占的磁盤空間)
-s 顯示一共多大
-h 人類可讀
[root@olbboy39 ~]# du -s
764.
[root@olbboy39 ~]# du -h
8.0K./wanglong
4.0K./tmp
4.0K./backup
12K./test
4.0K./backcp
4.0K./dalongge
4.0K./oldboy
764K.
1.1.13free 顯示系統記憶體 swap的使用情況
-m 以MB為機關大小
[root@olbboy39 ~]# free -h
total used free shared buffers cached
Mem: 980M 518M 461M 256K 120M 169M
-/+ buffers/cache: 228M 752M
Swap: 767M 0B 767M
1.1.14 bc 電腦
[root@olbboy39 ~]# echo 3*3 |bc
9
[root@olbboy39 ~]# awk 'BEGIN{print 1/3}'
0.333333
1.1.15rename 批量改變檔案名
1.1.16read linux的内置指令 從指令行讀取内容放到變量中
-p 提示
[root@olbboy39 ~]# read -p "wang: " oldboy
wang: wanbg
[root@olbboy39 ~]# echo $oldboy
wanbg
1.1.17 test 測試
-q 等于 == [ 3 == 3 ]
-gt 大于 > [ 3 -gt 2 ]
-ge 大于等于 >= [ 3 -ge 3 ]
-lt 小于 < [ 3 -lt 6 ]
1.1.18 sort 讓相同數組放在一起
1.1.19 uniq 讓幾個相同的緊挨在一起的數組,隻出現一次
-c 顯示相同的數組一共出現幾次
1.1.20 column -t 讓查找出來的内容間隔對齊
1.1.21 dig 域名查詢解析工具
1.1.22 nslookup 域名查詢解析過程
1.1.23 host 域名查詢解析過程
1.1.24 ping 域名查詢解析過程
01. 利用dig
dig www.oldboyedu.com
dig @8.8.8.8 www.baidu.com +trace ---@後面位址資訊表示利用什麼伺服器作為LocalDNS伺服器 ---+trace 表示追蹤整個DNS的詳細解析過程
02. 利用nslookup
nslookup www.oldboyedu.com
03. 利用host
host www.oldboyedu.com
04. 利用ping
ping www.oldboyedu.com
[root@olbboy39 ~]# dig www.baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29775
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.baidu.com.INA
;; ANSWER SECTION:
www.baidu.com.211INCNAMEwww.a.shifen.com.
www.a.shifen.com.211INA61.135.169.125
www.a.shifen.com.211INA61.135.169.121
;; Query time: 119 msec
;; SERVER: 223.5.5.5#53(223.5.5.5)
;; WHEN: Mon Aug 21 14:55:13 2017
;; MSG SIZE rcvd: 90
1.1.25traceroute 追蹤資料包在網絡上的傳輸時的全部路徑,預設資料包小于40位元組
1.1.26 route -n 檢視路由報表資訊
1.1.27 netstat -rn 檢視路由報表資訊
[root@olbboy39 ~]# netstat -rn
Kernel IP routing table 核心IP路由表
Destination Gateway Genmask Flags MSS Window irtt Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
1.1.28 tcpdump
選項參數說明
-i是interface的含義
指我們有義務去告訴tcpdump希望去監聽哪一個網卡,這在一台伺服器有多塊網卡時很有必要
-nn意思是當tcpdump遇到協定号或端口号時,不要将這些号碼轉換成對應的協定名稱或端口名稱,比如衆所周知21端口是FIP端口,我們希望顯示21,而非tcpdump自作聰明的将它顯示成FIP
-X告訴tupdump指令,需要把協定頭和包内容都原原本本的顯示出來(tupdump會以16進制和ASCII的形式顯示),這在進行協定分析時是絕對的利器,
如果不進行原本的顯示輸出,當将收到的資訊放入到其他專業分析包軟體中分析會有問題
-c是Count的含義
這設定了我們希望tcpdump幫我們抓幾個包,設定的是1,是以tupdump不會幫我再多抓哪怕一個包回來
-w将流量儲存到檔案中
tcpdump的-w方式是把raw packets(原始網絡包)直接存儲到檔案中了,也就是存儲的都是結構體系,而非是分析之後的文本格式的資訊,是以是無法直接通過less指令檢視的
-r讀取raw packets檔案
1.1.29路由添加方法
方法一:
[root@olbboy39 ~]# route add default gw 10.0.0.10
[root@olbboy39 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.10 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
[root@olbboy39 ~]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 10.0.0.1
172.16.1.0 10.0.0.1 255.255.255.0 UG 0 0 0 eth0
[root@olbboy39 ~]# route del -net 172.16.1.0 netmask 255.255.255.0 gw 10.0.0.1
1.1.30配置多個IP方法
[root@olbboy39 ~]# ifconfig eth0:0 10.0.0.201/24 up
[root@olbboy39 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:7F:89:20
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe7f:8920/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:198224 errors:0 dropped:0 overruns:0 frame:0
TX packets:143038 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:42234001 (40.2 MiB) TX bytes:38936123 (37.1 MiB)
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:7F:89:20
inet addr:10.0.0.201 Bcast:10.0.0.255 Mask:255.255.255.0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:610 (610.0 b) TX bytes:610 (610.0 b)
方法二:
[root@olbboy39 ~]# ip addr add 10.0.0.13/24 dev eth0:
[root@olbboy39 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:7f:89:20 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.200/24 brd 10.0.0.255 scope global eth0
inet 10.0.0.201/24 brd 10.0.0.255 scope global secondary eth0:0
inet 10.0.0.13/24 scope global secondary eth0
inet6 fe80::20c:29ff:fe7f:8920/64 scope link
注意: 配置完成以後需要使用ip add指令記性檢視
說明:預設centos7裡面使用網絡的檢視與配置指令為ip addr
輔助IP的标簽設定
ip addr add 10.0.0.201/24 dev eth0 label eth0:1 标注:
[root@olbboy39 ~]# ip addr add 10.0.0.13/24 dev eth0 label eth0:1
inet 10.0.0.13/24 scope global secondary eth0:1
1.2其中結構有關指令
1.2.1 rpm rpm包查詢 安裝
rpm -qa |grep rsync——檢查軟體是否安裝
rpm -ql rsync——檢視軟體包裡面有什麼内容
rpm -qf 查詢某一個指令或者檔案(配置檔案)屬于哪一個軟體包(使用決定路徑—例如—`which ssh`)
-vih 軟體包.rpm 安裝rpm軟體包 (很少用)
執行個體:
[root@olbboy39 ~]# rpm -qa |grep tree
tree-1.5.3-3.el6.x86_64
[root@olbboy39 ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.5.3
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz
1.2.2yum 安裝軟體
yum install -y + 軟體名
1.2.3檢視目前系統每個IP的連接配接數
ss -ant /netstat -ant
[root@web01 mnt]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 64 10.0.0.8:22 10.0.0.253:49688 ESTABLISHED
tcp 0 0 :::873 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
1.2.4檢視開放端口
netstat -an /netstat -ant /ss -ant /ss -an
tcp 0 0 :::22 :::* LISTEN
1.2.5檢視tcp連接配接狀态
netstat -lntup /ss -lntup
[root@web01 mnt]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 27169/rsync
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1188/sshd
tcp 0 0 :::873 :::* LISTEN 27169/rsync
tcp 0 0 :::22 :::* LISTEN 1188/sshd
1.2.6reload 平滑重新開機
/etc/init.d/nfs reload (重新開機nfs)
1.2.7rsync服務及重要參數
rsync -azvP /backup/ [email protected]::nfsbackup --passwrod-file=/etc/rsync.password
[-a參數]<==================>rtopgDl
1 -a選項是rsync裡比較霸道的一個選項,因為你使用-a選項,就相當于使用了-rlptgoD這一坨選項。以一敵七,唯-a選項也。(在看了前文之後,你應該可以很輕松的了解這七個選項的作用了)
2 -a選項的學名應該叫做archive option,中文叫做歸檔選項。使用-a選項,就表明你希望采取遞歸方式來同步,且盡可能的保持各個方面的一緻性。
3 但是-a選項也有阿克琉斯之踵,那就是-a無法同步“硬連結”情況。如果有這方面需求,要加上-H選項。
[--delete選項、--delete-excluded選項和--delete-after選項]
[-v參數]
這個選項,簡單易懂,就是讓rsync輸出更多的資訊,我們可以舉一個例子:
$ rsync -vI main.c machineB:/home/userB
main.c
sent 81 bytes received 42 bytes 246.00 bytes/sec
total size is 11 speedup is 0.09
你增加越多的v,就可以獲得越多的日志資訊。
[-z參數]
這是個壓縮選項,隻要使用了這個選項,rsync就會把發向對端的資料先進行壓縮再傳輸。對于網絡環境較差的情況下建議使用。
一般情況下,-z的壓縮算法會和gzip的一樣。
[--exclude=PATTERN] 指定排除不需要傳輸的檔案(和tar參數一樣)
[root@nfs01 ~]# rsync -avz --exclude=a --exclude=b --exclude=c/2.txt /oldboy/ [email protected]::backup --password-file=/etc/rsync.password
sending incremental file list
./
c/
c/1.txt
c/3.txt
d/
d/1.txt
d/2.txt
d/3.txt
sent 300 bytes received 114 bytes 828.00 bytes/sec
total size is 0 speedup is 0.00
[--exclude-from=file] 檔案名所在的目錄檔案,既可以實作排除多個檔案(和tar參數一樣)
[root@nfs01 oldboy]# rsync -avz --exclude-from=/oldboy/pichu.txt /oldboy/ [email protected]::backup --password-file=/etc/rsync.password
pichu.txt
sent 382 bytes received 133 bytes 1030.00 bytes/sec
total size is 12 speedup is 0.02
[--bwlimit=RATE] 案列:某DBA做資料同步,寬帶占滿,導緻使用者無差異同步資料
[--delete] 讓目标目錄SRC和源目錄資料DST一緻,即無差異同步資料
rsync -avz --delete /oldboy/ [email protected]::backup --password-file=/etc/rsync.password
注釋:這條指令起到/oldboy/目錄和/backup/目錄同步==》第一個目錄有什麼第二個就有什麼,一模一樣!
說明:使用無差異同步時,要小心謹慎
1.2.8nfs服務及重要參數
[root@web01 mnt]# mount -t nfs 172.16.1.31:/data /mnt
[root@web01 mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
172.16.1.31:/data 8.8G 1.5G 6.9G 18% /mnt
rpm -qa|grep rpc 檢查NFS RPC服務軟體有沒有安裝
rpm -ql nfs-utils -ql 參數表示檢視安裝好的軟體,都安裝了哪些資訊
rpm -qf `which ssh` -檢視某個指令或檔案屬于那個大禮包
/etc/rc.d/init.d/rpcbind - 啟動腳本指令
/usr/sbin/rpcinfo - 檢視NFS注冊資訊的
showmount -e localhost 檢視nfs配置是否生效
rpcinfo -p 10.0.0.31 檢視注冊資訊
rw 讀寫通路
sync 所有資料在請求時寫入共享
async NFS在寫入資料前可以相應請求
secure NFS通過1024以下的安全TCP/IP端口發送
insecure NFS通過1024以上的端口發送
wdelay 如果多個使用者要寫入NFS目錄,則歸組寫入(預設)
no_wdelay 如果多個使用者要寫入NFS目錄,則立即寫入,當使用async時,無需此設定。
hide 在NFS共享目錄中不共享其子目錄
no_hide 共享NFS目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(預設)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享檔案的UID和GID映射匿名使用者anonymous,适合公用目錄。
no_all_squash 保留共享檔案的UID和GID(預設)
root_squash root使用者的所有請求映射成如anonymous使用者一樣的權限(預設)
no_root_squas root使用者具有根目錄的完全管理通路權限
anonuid=xxx 指定NFS伺服器/etc/passwd檔案中匿名使用者的UID
anongid=xxx 指定NFS伺服器/etc/passwd檔案中匿名使用者的GID
cat /var/lib/nfs/etab --- NFS服務共享目錄配置參數檢視檔案
cat /proc/mounts --- NFS用戶端挂載後配置參數檢視檔案
說明:配置讀寫權限時,不管服務端還是用戶端,隻要有一方配置為ro,即最終目錄權限為隻讀權限
exportfs管理指令說明
[root@nfs01 /]# /usr/sbin/exportfs -rv
exporting 172.16.1.0/24:/data/r
exporting 172.16.1.0/24:/data/w
[root@nfs01 /]# # /usr/sbin/exportfs 調換掉 /etc/expots 檔案
[root@nfs01 /]# exportfs -o rw,sync 172.16.1.0/24:/data
[root@nfs01 /]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
/data/r 172.16.1.0/24
/data/w 172.16.1.0/24
[root@nfs01 /]# cat /etc/exports (nfs配置檔案)
#/data 172.16.1.0/24(rw,sync)
/data/w 172.16.1.0/24(rw,sync,all_squash)
/data/r 172.16.1.0/24(ro,sync,all_squash)
[root@nfs01 /]# /usr/sbin/exportfs -rv
挂載指令挂載的格式類型nfs伺服器端提供的共享目錄nfs用戶端的挂載點
mount -t nfs 172.16.1.31:/backup /mnt (必須存在)
完成挂載指令為:mount -t nfs 172.16.1.31:/backup /mnt 次指令要在用戶端執行
1.2.9killall 殺掉程序 根據程序的名字
1.2.10kill 殺掉程序 根據程序的号碼pid
-9 表示強制删除 殺掉 ===》工作中避免使用
1.2.11pkill 殺掉程序 根據程序的名字 ==》危險不建議用
1.2.12inotify文法測試
1.監控測試建立事件create
inotifywait -mrq /backup --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e create
2.監控測試删除事件delete
inotifywait -mrq /backup --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e delete
3.監控測試修改事件close_write
inotifywait -mrq /backup --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e close_write
4.監控測試移動事件move move_to move_from
inotifywait -mrq /backup --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e move
inotifywait -mrq /backup --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e move_to
inotifywait -mrq /backup --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e move_from
5.監控顯示所有事件,并顯示事件資訊
inotifywait -mrq /backup --format '%w%f 事件: %e'
6.監控事件資訊精簡标準指令
inotifywait -mrq /backup --format '%w%f' -e create,delete,moved_to,close_write
inotifywait /nfsbackup/ 臨時監控
inotifywait -r -m /nfsbackup/ 永久監控
1.2.13inotify服務參數
-r| --recursive Watch directoriec recursively 遞歸監控目錄資料資訊變化
-q| --quiet Print less (only print events) 列印很少的資訊,僅僅列印監控事件的資訊
-m| monitor keep listening for events forever 始終保持事件的監聽狀态
--excludel 排除檔案某些目錄或檔案 不進行監控
--excludei<pattern> 排除檔案或目錄時,不區分大小寫
--timefmt<fmt> 指定時間輸出的格式
--format<fmt> 實際監控輸出的内容
-e 指定監聽指定的事件,如果省略,表示所有事件都監聽
access 檔案或目錄被讀取
modify 檔案或目錄内容被修改
attrib 檔案或目錄屬性被改變
close 檔案或目錄封閉,無論讀寫模式
open 檔案或目錄被打開
moved_to 檔案或目錄被移動至監控目錄中
move 檔案或目錄被移動至另外一個目錄或從另外一個目錄移動至目前目錄
crcatc 檔案或目錄被建立在目前目錄
1.2.14inotify時間指令參數
%w事件出現時,監控檔案或目錄的名稱資訊
%f事件出現時,将顯示監控目錄下觸發事件的檔案或目錄資訊,否則為空
%e顯示發生的事件資訊,不同的事件資訊用逗号進行分隔
%Xe顯示發生的事件,不同的事件用X進行分隔,可以修改X為指定分隔符
%T輸出時間格式中定義的時間格式資訊,通過--timefmt option 文法格式指定時間資訊,這個格式是通過strftime函數進行相比對時間格式資訊的
%d 每月的第幾天,顯示資訊為十進制數(範圍是01-31)
%m顯示月份,顯示資訊為十進制(範圍01-12)
%M顯示分鐘,顯示資訊為十進制(範圍00-59)
%y年份資訊,顯示資訊為十進制,并且沒有世紀資訊
%Y年份資訊,顯示資訊為十進制,并且包含世紀資訊
%H小時資訊,顯示資訊為十進制,使用24小時制(範圍00-23)
說明:以上資訊可以通過man strftime資訊擷取
1.1.1inotify腳本相關參數
Ctrl+z 暫停運作程序
jobs 檢查放入背景運作的程序資訊
bg 表示背景運作程序
fg 表示前台運作程序
讓腳本程式在背景運作的方法:
1. sh inotify.sh &
2. nohup sh inotify.sh &
1.1.2inotify優化相關參數
max_queued_events:設定inotify執行個體事件(event)隊列可容納的事件數量
max_user_watches: 設定inotifywait或inotifywatch指令可以監視的檔案數量(單程序)
max_user_instances:設定每個使用者可以運作的inotifywait或inotifywatch指令的程序數
1.1.3ssh-keygen 建立公鑰
[root@m01 ~]# ssh-keygen -t dsa (建立秘鑰對,公鑰,私鑰)
[root@m01 ~]# ssh-keygen -t dsa -f /root/.ssh/id_dsa -P "" dsa秘鑰類型
1.1.4ssh-copy-id 分發公鑰
[root@m01 ~]# ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]
1.1.5sshpass 免密碼分發公鑰
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no [email protected]"
1.1.6ansible常用子產品指令
command指令子產品
[root@m01 ~]# ansible oldboy -m command -a "hostname"
ping子產品
[root@m01 ~]# ansible all -m ping
copy複制拷貝子產品
[root@m01 ~]# ansible oldboy -m copy -a "src=/etc/hosts dest=/opt/oldboy/oldgirl/"
file管理軟體服務子產品,例如:建立檔案或目錄,修改屬性
[root@m01 ~]# ansible 172.16.1.8 -m file -a "dest=/data/wanglong mode=700 owner=root group=root"
shell萬能子產品
[root@m01 ~]# ansible oldboy -m shell -a "cat /etc/hosts >/tmp/oldboy39.txt"
script遠端執行腳本子產品
[root@m01 ~]# ansible oldboy -m script -a "/server/scripts/yum.sh" --- 遠端執行本地腳本中的指令
cron定時任務子產品
[root@m01 ~]# ansible oldboy -m cron -a 'name=hello minute=*/2 job="echo hello >>/tmp/oldboy.log 2>&1"'
yum安裝子產品
[root@m01 .ssh]# ansible oldboy -m yum -a "name=nmap state=installed"
raw類似于command子產品,但是支援管道
[root@m01 ~]# ansible testservers -m raw -a "ifconfig eth0 |sed -n 2p |awk '{print \$2}' |awk -F: '{print \$2}'"
service 管理軟體服務子產品
[root@m01 ~]#ansible oldboy -m service -a "name=crond state=stop enabled=no"
1.1.7http協定取狀态碼指令
1. curl -I www.jd.com -s|awk 'NR==1{print$2}'
2. curl -I -s -w %{http_code} -o /dev/null www.etiantian.org
3. curl -s -w "%{http_code}\n" -o /dev/null www.etiantian.org
1.1.8curl
[root@nfs01 ~]# curl www.baidu.com
1.1.9Nginx軟體相關指令
/application/nginx/sbin/nginx <- 啟動nginx
/application/nginx/sbin/nginx -t <- 檢查配置檔案文法資訊是否正确
/application/nginx/sbin/nginx -s reload <- 平滑重新開機
ss -lntup|grep nginx <- 監聽位址資訊發生變化
/application/nginx/sbin/nginx -s stop <- 檢查文法配置正确後,進行優雅關閉nginx服務
curl 10.0.0.8 <- 利用curl指令本地檢測nginx配置是否成功;
nginx -V ---檢視編譯參數中,是否加載了狀态子產品資訊
1.1.10MySQL相關指令
/etc/init.d/mysqld start 啟動資料庫
/etc/init.d/mysqld stop 關閉資料庫
mysql -uroot -poldboy123 進入資料庫
show databases; <--- 查詢預設的資料庫資訊
use mysql; <--- 表示選擇使用一個資料庫,相當于cd進入一個資料庫
select database(); <--- 表示檢視目前所在資料庫,類似于pwd指令的功能
select user(); <--- 檢視目前登入資料庫的使用者,類似于whoami指令
create database wordpress; 建立資料庫
drop database wordpress; 删除資料庫
select user,host from mysql.user; ---檢視可以登入mysql資料庫的目錄,以及都可以從哪裡進行管理mysql資料庫
1.1.11PHP相關指令
/application/php/sbin/php-fpm 啟動PHP
lsof -i :9000 <--- 确認php 9000端口是否正确啟動
ps -ef|grep php-fpm
1.1.1upstream 子產品參數說明
upstream子產品的内容應放于nginx.conf配置的http{}便簽内,其預設排程節點算法是wrr(weighted round-robin,即權重輪詢),
upstream子產品内參數參數說明
server 10.0.0.8:80負載均衡後面的RS配置,可以是IP或域名,如果端口不寫,預設80端口,高并發場景下,IP可換成域名,通過DNS做負載均衡
weight=1代表伺服器的權重,預設值為1。權重數字越大表示接受的請求比例越大
max_fails=1Nginx嘗試連接配接後端主機失敗後的次數,這個數值是配合proxy_next_upstream,fastcgi_next_upstream和memcached_next_upstream這三個參數來使用的,當Nginx接收後端伺服器的傳回這三個參數定義的狀态碼時,會将這個請求轉發給正常工作的後端伺服器,例如404,502,503,max_fails的預設值是1
backup熱備配置(RS節點高可用)目前面激活的RS都失敗會自動啟用熱備RS,這标志着這個伺服器作為備份伺服器,若主伺服器全部當機了,就會向它轉發請求;
注意:當負載度數算法為ip_hash時,後端伺服器在負載均衡排程中的狀态不能是weight和backup
fail_timcout=10s在max_fails定義的失敗次數後,距離下次檢測的間隔時間,預設是10s,如果max_fails是5,它就檢測5次,如果5次都是502,那麼 ,它就會根據fail_timeout的值,等待10s再去檢查一次,如果持續502,在不重新加載Nginx配置的情況下,每隔10s都隻檢測一次,正常業務2-3秒比較合适,比如京東3秒,藍汛3秒,可根據業務需求去配置
down這标志着伺服器永遠 不可用,這個參數可配合ip_hash使用。
1.1.2LNMP相關指令
:set nopaste 關閉縮進功能
:set paste 開啟縮進功能
sz -y +檔案 (下載下傳到桌面)
rz -y +檔案 (上傳到Xshell)
vimdiff (比對兩個檔案)