天天看點

Linux指令大全

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    (比對兩個檔案)

上一篇: 優化iptables
下一篇: 優化Selinux

繼續閱讀