產業消息

vi指令說明(完整版)
.vi 的操作模式
==============
        vi 提供兩種操作模式:輸入模式(insert mode)和指令模式(command mode)
        。當使用者進入 vi 後,即處在指令模式下,此刻鍵入之任何字元皆被視為
        指令。在此模式下可進行刪除、修改等動作。若要輸入資料,則需進入輸入
        模式。
.輸入模式
=========
        如何進入輸入模式
                a (append)      由游標之後加入資料。
                A               由該行之末加入資料。
                i (insert)      由游標之前加入資料。
                I               由該行之首加入資料。
                o (open)        新增一行於該行之下供輸入資料之用。
                O               新增一行於該行之上供輸入資料之用。
        如何離開輸入模式
                《ESC》 結束輸入模式。
.指令模式
=========
游標之移動
        h       向左移一個字元。
        j       向上移一個字元。
        k       向下移一個字元。
        l       向右移一個字元。
        0       移至該行之首
        $       移至該行之末。
        ^       移至該行的第一個字元處。
        H       移至視窗的第一列。
        M       移至視窗的中間那列。
        L       移至視窗的最後一列。
        G       移至該檔案的最後一列。
        +       移至下一列的第一個字元處。
        -       移至上一列的第一個字元處。
        (       移至該句之首。 (註一)
        )       移至該句之末。
        {       移至該段落之首。 (註二)
        }       移至該段落之末。
        nG      移至該檔案的第 n 列。
        n+      移至游標所在位置之後的第 n 列。
        n-      移至游標所在位置之前的第 n 列。
        <Ctrl><g>       會顯示該行之行號、檔案名稱、檔案中最末行之行號、游標
                        所在行號佔總行號之百分比。
        註一:句子(sentence)在vi中是指以『!』、『.』或『?』結束的一串字。
        註二:段落(paragraph)在vi中是指以空白行隔開的文字。
.視窗的移動
===========
        <Ctrl><f>       視窗往下捲一頁。
        <Ctrl><b>       視窗往上捲一頁。
        <Ctrl><d>       視窗往下捲半頁。
        <Ctrl><u>       視窗往上捲半頁。
        <Ctrl><e>       視窗往下捲一行。
        <Ctrl><y>       視窗往上捲一行。
.刪除、複製及修改指令介紹 (此單元較少使用)
=========================
        d(delete)、c(change)和y(yank)這一類的指令在 vi 中的指令格式為:
        Operator + Scope = command
        (運算子)   (範圍)
        運算子:
        d       刪除指令。刪除資料,但會將刪除資料複製到記憶體緩衝區。
        y       將資料(字組、行列、句子或段落)複製到緩衝區。
        p       放置(put)指令,與 d 和 y 配和使用。可將最後delete或yank的資
                料放置於游標所在位置之行列下。
        c       修改(change)指令,類似delete與insert的組和。刪除一個字組、句
                子等之資料,並插入新鍵資料。
        範圍:
        e       由游標所在位置至該字串的最後一個字元。
        w       由游標所在位置至下一個字串的第一個字元。
        b       由游標所在位置至前一個字串的第一個字元。
        $       由游標所在位置至該行的最後一個字元。
        0       由游標所在位置至該行的第一個字元。
        )       由游標所在位置至下一個句子的第一個字元。
        (       由游標所在位置至該句子的第一個字元。
        {       由游標所在位置至該段落的最後一個字元。
        }       由游標所在位置至該段落的第一個字元。
        整行動作
        dd      刪除整行。
        D       以行為單位,刪除游標後之所有字元。
        cc      修改整行的內容。
        yy      yank整行,使游標所在該行複製到記憶體緩衝區。
.刪除與修改
===========
        x       刪除游標所在該字元。
        X       刪除游標所在之前一字元。
        dd      刪除游標所在該行。
        r       用接於此指令之後的字元取代(replace)游標所在字元。
                如: ra 將游標所在字元以 a 取代之。
        R       進入取代狀態,直到《ESC》為止。
        s       刪除游標所在之字元,並進入輸入模式直到《ESC》。
        S       刪除游標所在之該行資料,並進入輸入模式直到《ESC》。
.搬移與複製
==========
        利用 delete 及 put 指令可完成資料搬移之目的。
        利用 yank 及 put 指令可完成資料複製之目的。
        yank 和 delete 可將指定的資料複製到記憶體緩衝區,而藉由 put 指令
        可將緩衝區內的資料複製到螢幕上。
        例:
        搬移一行        ‧在該行執行 dd
                        ‧游標移至目的地
                        ‧執行 p
        複製一行        ‧在該行執行 yy
                        ‧游標移至目的地
                        ‧執行 p
.指令重複
=========
        在指令模式中,可在指令前面加入一數字 n,則此指令動作會重複執行 n
        次。
        例:
        刪除10行                ‧10dd
        複製10行                ‧10yy
                                ‧游標移至目的地
                                ‧p
        指標往下移10行  ‧10j
.取消前一動作(Undo)
===================
        即復原執行上一指令前的內容。
        u       恢復最後一個指令之前的結果。
        U       恢復游標該行之所有改變。
.搜尋
=====
        在vi中可搜尋某一字串,使游標移至該處。
        /字串           往游標之後尋找該字串。
        ?字串           往游標之前尋找該字串。
        n               往下繼續尋找下一個相同的字串。
        N               往上繼續尋找下一個相同的字串。
.資料的連接
===========
        J       句子的連接。將游標所在之下一行連接至游標該行的後面。
        若某行資料太長亦可將其分成兩行,只要將游標移至分開點,進入輸入模式
        (可利用 a、i等指令)再按《Enter》即可。
.環境的設定
===========
        :set nu                設定資料的行號。
        :set nonu              取消行號設定。
        :set ai                自動內縮。
        :set noai              取消自動內縮。
        自動內縮(automatic indentation)
        在編輯文件或程式時,有時會遇到需要內縮的狀況,『:set ai』即提供自
        動內縮的功能,用下例解釋之:
        ‧vi test
        ‧(進入編輯視窗後)
          this is the test for auto indent
          《Tab》start indent           ← :set ai (設自動內縮)
          《Tab》data
          《Tab》data
          《Tab》data                   ← :set noai (取消自動內縮)
        the end of auto indent.
        ‧註:<Ctrl><d> 可刪除《Tab》字元。
.ex指令
=======
        讀寫資料
        :w                     將緩衝區的資料寫入磁碟中。
        :10,20w test   將第10行至第20行的資料寫入test檔案。
        :10,20w>>test  將第10行至第20行的資料加在test檔案之後。
        :r test                將test檔案的資料讀入編輯緩衝區的最後。
        刪除、複製及搬移
        :10,20d                刪除第10行至第20行的資料。
        :10d                   刪除第10行的資料。
        :%d                    刪除整個編輯緩衝區。
        :10,20co30             將第10行至第20行的資料複製至第30行之後。
        :10,20mo30             將第10行至第20行的資料搬移至第30行之後。
        字串搜尋與取代
        s(substitute)指令可搜尋某行列範圍。
        g(global)指令則可搜尋整個編輯緩衝區的資料。
        s指令以第一個滿足該條件的字串為其取代的對象,若該行有數個滿足該條
        件的字串,也僅能取代第一個,若想取代所有的字串則需加上g參數。
        :1,$s/old/new/g                將檔案中所有的『old』改成『new』。
        :10,20s/^/   /         將第10行至第20行資料的最前面插入5個空白。
        :%s/old/new/g          將編輯緩衝區中所有的『old』改成『new』。
.恢復編輯時被中斷的檔案
=======================
        在編輯過程中,若系統當掉或連線中斷,而緩衝區的資料並還未
        被寫回磁碟時,當再度回到系統,執行下列指令即可回復中斷前
        的檔案內容。
        %vi -r filename
.編輯多個檔案
=============
        vi亦提供同時編輯多個檔案的功能,方法如下:
        %vi file1 file2 ..
當第一個檔案編修完成後,可利用『:w』將該緩衝區存檔,而後
        再利用 『:n』載入下一個檔案。

[參考]http://www2.nsysu.edu.tw/csmlab/unix/vi_command.htm
vi指令說明(完整版)

修改 nginx.conf 檔,新增一條指令

# vi /etc/nginx/nginx.conf

 

可以在 http, server 或 location 其中一個 block 加入 client_max_body_size 設定

client_max_body_size 500M; MB數依需求自定義

 

重新啟動nginx

# systemctl restart nginx

 

[參考]https://www.phpini.com/linux/fix-nginx-error-413-request-entity-too-large

解決 Nginx 錯誤: 413 Request entity too large

  @@ -975,7 +975,7 @@ public static function calendar($value, $name, $id, $format = '%Y-%m-%d', $attri
975  static::_('bootstrap.tooltip');
976   
977  // Format value when not nulldate ('0000-00-00 00:00:00'), otherwise blank it as it would result in 1970-01-01.
刪除或註解 if ($value && $value != JFactory::getDbo()->getNullDate())
978  新增 if ($value && $value != JFactory::getDbo()->getNullDate() && strtotime($value) !== false)
979  {
980  $tz = date_default_timezone_get();
981  date_default_timezone_set('UTC');
   

[參考]https://github.com/joomla/joomla-cms/pull/7849/files#diff-b01d47e3fbe4a8e5fb4987f4df64b291

Make sure $value parameter passed to JHtml::calendar method is valid #7849

Server端:

安裝 Samba 套件
yum install samba samba-client samba-common -y

本例為 /home 分享目錄home
chmod 777 /home

編輯設定檔 /etc/samba/smb.conf,可進入home目錄操作的群組為smbgrp
[global]
 workgroup = WORKGROUP
 security = user
 server string = Samba Server Version %v
 hosts allow = 192.168.33.
 log file = /var/log/samba/log.%m
 max log size = 150
 netbios name = centos
 dos charset = UTF-8
 unix charset = CP950
 map to guest = bad user
 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
 create mask = 0644
 directory mask = 0755
 dead time = 15
 getwd cache = yes
 guest account = nobody
 load printers = no
 dns proxy = no
 
[home]
 path = /home
 valid users = @smbgrp
 force user = root
 guest ok = no
 writable = yes
 browseable = yes

設定samba的帳號root,加入smbgrp群組,最後設定密碼
useradd root
groupadd smbgrp
usermod -a -G smbgrp root
smbpasswd -a root

New SMB password:*********
Retype new SMB password:*********
Added user root.

設定分享權限
chown -R root:smbgrp /home
chmod -R 0770 /home


設定SElinux
chcon -t samba_share_t /home


啟動 Samba 服務

systemctl start smb

systemctl enable smb

systemctl start nmb

systemctl enable nmb

設定防火牆
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload

 

[參考]

http://icekuo.blogspot.com/2017/01/centos-7-samba-server.html 

CentOS 7 Samba Server 架設筆記

https://tw.saowen.com/a/f20e8ef4c6245e948e8a33389e9fc970141dd9856fe0d4ad72c83503bbe3a8d0

CentOS 7下Samba伺服器的安裝與配置

 

 

利用 YUM ,安裝 monitorix

# yum -y install monitorix

Monitorix 的設定檔在 “/etc/monitorix/monitorix.conf”

啟動 Monitorix 及設定開機自動啟動 Monitorix

# systemctl start monitorix
# systemctl enable monitorix

Monitorix 預設使用 Port 8080, 在啟動 Monitorix 後,在 CentOS 需要在防火牆開啟 Port 8080

# firewall-cmd --permanent --zone=public --add-port=8080/tcp
# firewall-cmd --reload

開啟 Monitorix 檢視系統狀況,開啟瀏覽器開啟以下網址 http://your-ip:8080/monitorix

monitorix

參考:https://www.phpini.com/linux/linux-install-monitorix

Linux 安裝 Monitorix 輕量化系統及網路監測工具

第 1 頁,共 2 頁