201307091018Linux 隨手記

        Linux中有太多指令了,記錄指令使用方式,方便 towns 以後使用,有很多詳細的資料可以參考
相關說明:http://homepage.ttu.edu.tw/u9106240/page_main/linux.html

1. true > 檔名,清空該檔案


2. at,單次排程指令
at 06:30 2009-08-19  <==排定時間於2009年8月19日上午6:30執行
at> /bin/sync <==執行暫存資料回存(如RAM中及swap中的資料)
at> /sbin/shutdown -h now <==立刻關閉主機
at> <EOT> <==結束該排程(按ctrl + D)
at -c 5 <==顯示工作5的詳細資料

at now + 3 minutes -f /home/towns/job1.sh <== 設定從現在時間三分鐘後執行指定檔案

atq <==顯示目前已排程的工作

atrm <==刪除已排程的工作
atrm 5 <==刪除工作5

at now + 3 minutes -f [PATH]job1.sh <== 過三分鐘後執行 job1.sh

batch <==在系統有空時再執行,與at 寫法相同
資料來源:鳥哥的Linux私房菜


3. find 指令使用
 find ./ -type d | wc ==>算出本資料匣中,有幾個資料匣
 find ./ -type f | wc ==>算出本資料匣中,有幾個檔案
 find ./ | wc ==>算出本資料匣中,資料匣與檔案總數
感謝不明大大指導
 find ./ -name public_html ==>列出本資料匣中,檔名(or目錄)為public_html
 find / -mtime 0 ==> 找出24小時內/ 有變動的檔案
 find / -mtime 3 ==> 找出前三天24小時內 / 有變動的檔案
 find / -mtime -3 ==> 找出前三天至現在 / 有變動的檔案
 find / -mtime +3 ==> 找出三天前 / 有變動的檔案
 find / -mmin 10 ==> 找出10分鐘內 / 有變動的檔案
 find /home -user towns ==> 找出在/home之下,擁有者為towns 的檔案
 find / -group towns ==> 找出在 / 之下,群組為 towns 的檔案
 find / -nouser ==> 找出在 / 下,無擁有者的檔案
 find / -name passwd ==> 找出在 / 下,檔名為passwd的檔案
 find / -iname passwd -print ==> 找出在 / 下,檔名為passwd的檔案,指定大小寫,及只列出該檔
 find /var -type s ==> 找出在 / 下,檔名屬性有S的檔案
 find / -perm +7000 ==> 找出在 / 下,檔名屬性有 SGID 或 SUID 或 SBIT的檔案
 find / -size +1000k ==> 找出在 / 下,檔案大於1mb的檔案
 find / -type -f -size +500000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
 找出 / 中大於 500MB,並使用 ls -lh 列出檔案,並取第9項、第5項資訊加 : 列表
 find / -type f \(-name '.*'\) ==> 找出在 / 下的隱藏檔案
 find ./ -type d -exec chmod 755 {} + ==> 查詢該層目錄(含子目錄)並將資料匣改為 755
 find ./ -type d -exec chown towns:towns {} + ==> 查詢該層目錄(含子目錄)並將資料匣改為  towns:towns
 find ./ maxdepth 1 ==> 查詢該層目錄

資料來源:鳥哥 第七章、Linux 檔案與目錄管理
其他資料:http://blog.xuite.net/akuox/linux/23198310 碎大的blog,有說明find指令使用方式
http://blog.miniasp.com/post/2010/08/27/Linux-find-command-tips-and-notice.aspx 保哥是很強的
James Richardson 大的文章 -- How to find what is using the most disk space on my server
http://www.inmotionhosting.com/support/website/general-server-setup/check-disk-space-through-shell

Tsung大的文章
https://blog.longwin.com.tw/2017/08/linux-find-limit-date-time-file-2017/

補充:關於資料匣、檔案計數說明

[root@*** test]# ls -als
total 12
4 drwxrwxr-x 2 apache apache 4096 Nov 13 17:23 .
4 drwxr-xr-x 4 root   root   4096 Nov 13 17:38 ..
0 -rw-r--r-- 1 apache apache    0 Nov  8 18:09 php3.txt
4 -rw-r--r-- 1 apache apache   30 Nov 13 17:29 php5.txt

[root@*** test]# find ./ | wc
      3       3      25

[root@*** test]# find ./ -type d | wc
      1       1       3

[root@*** test]# find ./ -type f | wc
      2       2      22


4. scp(ssh copy)加密的檔案傳送
語法 scp [source] [destination]
範例 scp /var/named/*.hosts *.re towns@192.168.1.54:/home/towns/
由本地端將目錄/var/named/下的*.hosts *.re copy到(使用towns帳號)192.168.1.54主機 /home/towns/ 目錄下
連目錄同時copy,加 -r 參數
範例 scp -r towns@192.168.1.28:/home/towns /home/


5. tail 由檔尾顯示部分文字檔
tail -n 10 /var/log/messages <==顯示messages檔最後10行文字
tail -f -n 100 /var/log/messages <==持續顯示messages檔最後100行文字,可用來做監控用途

混合應用
du -h var | tail -n 1 <== 顯示var資料匣使用的空間


6. head 由檔頭示部分文字檔
head -n 10 /var/log/messages <==顯示messages檔前10行文字

混合應用
top | head -n 12 | tail -n 5 <==抓出top前12 行資料,並顯示後五行資料
資料來源:http://forum.icst.org.tw/phpbb/viewtopic.php?t=17814


 7. tar 壓縮指令
tar -czvf zone_backup.tar.gz /var/named <==產生(c)zone_backup.tar.gz 包裝檔,壓縮(z)/var/named資料匣,列出詳細(v)資料,顯示檔案(f)

tar -xzvf zone_backup.tar.gz <==解開(X)zone_backup.tar.gz 包裝檔,解壓縮(z)zone_backup.tar.gz檔,列出詳細(v)資料,顯示檔案(f)

tar -cjvf zone_backup.tar.bz2 /var/named <==產生(c)zone_backup.tar.bz2 包裝檔,壓縮(j)/var/named資料匣為bz2檔,列出詳細(v)資料,顯示檔案(f)

tar -xjvf  zone_backup.tar.bz2 <==解開(X)zone_backup.tar.bz2 包裝檔,解壓縮(z)zone_backup.tar.bz2檔,列出詳細(v)資料,顯示檔案(f)

tar -vjvf test.tar.bz2 ./test <==產生(c)test.tar.bz2 包裝檔,壓縮(j)test檔案為bz2檔,列出詳細(v)資料,顯示檔案(f)

相關資料:http://topic.csdn.net/t/20040103/21/2630302.html

凍仁的筆記
http://note.drx.tw/2008/04/command.html


 8. zip 壓縮指令
zip -r abc.zip ./abc <== 將該層 abc 資料匣,壓縮到 abc.zip 檔中(含子目錄)
unzip abc.zip    <== 將 abc.zip 解開
zip -P test abc.zip abc.txt <== 將該層 abc.txt 檔案,壓縮到 abc.zip 檔中,並加上密碼 test
unzip -P test abc.zip <== 帶入密碼並將 abc.zip 解開
zip abc.zip ./abc.txt ./bcd.txt <== 將該層 abc.txt、bcd.txt 檔案,壓縮到 abc.zip 檔中

參考資料:GNAS大的文章
http://kinomelma.pixnet.net/blog/post/30626794-linux%E4%B8%8B-zip-%E6%93%8D%E4%BD%9C%E5%A3%93%E7%B8%AE%E5%92%8C%E8%A7%A3%E5%A3%93%E7%B8%AE%E6%96%B9%E6%B3%95-%28%E5%8A%A0%E5%AF%86%E3%80%81%E8%A7%A3%E5%AF%86


9. 硬體相關指令
lspci==>可以看出各晶片的資料,-v詳細資料
lspci -v ==>可以看出各晶片的資料及主機版資源使用情形
lsmod==>列出核心模組,如usb(uhci_hcd、ehci_hcd增強模組)等等……
modprobe ==>新增或移除核心模組
補充:相關路徑 /etc/modprobe.d
modinfo==>列出模組資訊,modifo uhci_hcd,可以查到usb的情形
hdparm==>可以看出硬碟的讀取速度、使用模式、設定模式及速度測試,如UDMA
/proc 這個資料匣,全部都是硬體資訊
ip link<==可以查看網路卡的使用及順序
dmidecode <==可詳細列出硬體資訊
lshw <==可詳細列出硬體資訊,需安裝lshw套件
iostat <==可測硬體IO效能,需安裝sysstat套件
例1:iostat 1 10 <== 每秒一次,取10次
例2:iostat 1 <== 每秒一次,不停止
例3:iostat -x 1 1 <== 每秒一次,取1次,並提供延伸資訊
lsusb <== 可列出USB介面連接情形
lsof <== list open files
例1:lsof -p [pid] <== 查看指定程序存取檔案

例1:
hdparm -t /dev/mapper/VG00-LV00 <==測試VG00-LV00這個paptition的讀取速度
/dev/mapper/VG00-LV00:
 Timing buffered disk reads:   62 MB in  3.07 seconds =  20.22 MB/sec
測試得到該分割區的讀取速度為 20.22 MB/sec

例2:
iostat <==顯示CPU及HD的IO的讀取效能,由tps值,可得知該磁碟(區)每秒傳送的次數
Linux 2.6.18-194.el5 (centos55)         12/13/10

avg-cpu:  %user   %nice %system %iowait  %steal   %idle  <==顯示目前CPU使用情形
                2.35      0.02    4.03        2.25       0.00      91.35

Device:        tps        Blk_read/s     Blk_wrtn/s   Blk_read   Blk_wrtn
sda              9.71      802.69           52.41          663024     43294
sda1            0.09      2.60               0.02            2150         14
sda2            9.60      799.72           52.40          660570     43280
dm-0            50.84    798.18           52.40          659298     43280
dm-1            0.14      1.08               0.00            896           0
tps:平均每秒鐘的傳送次數
Blk_read/s:開機到現在平均的讀取單位
Blk_wrtn/s:開機到現在平均的寫入單位
Blk_read:開機到現在,總共讀出來的檔案單位
Blk_wrtn:開機到現在,總共寫入的檔案單位

例3:
lshw -html <== 將硬體資訊以html檔案方式列出,不過,資訊太多了,如果有Summary功能就更好了
lshw -short <== paths方式列出,比較精簡,但無法與 -html合用

blkid <== 列出 硬碟(磁區)所對應的 UUID

資料來源:鳥哥的Linux私房菜 
其他資料:jammy大有圖例
http://jamyy.dyndns.org/blog/2012/01/3524.html


10. split <==檔案切割指令
split -b 10m displaysearch dis <==將displaysearch這個文字檔案以10MB為一個單位切割
split -l 1000 displaysearch dis <==將displaysearch這個文字檔案以1000行為一個單位切割
split -C 10m maillog.1 maillog <==將maillog.1這個文字檔案以最大10MB為一個單位切割,行不會被切斷


11. 指令 dmesg

顯示開機/頁面顯示訊息,可以看到系統做了什麼事


12. kill
kill -9 [PID number] 強制停止 <==不論完不完成,強制停止
kill -15 [PID number] 程序終止 <==會等待程序完成

Linux 指令: kill 常用參數
Kill 算是基本且常用的指令(送一個信號給 process), 但是在 kill 一個 process(程序)有很多優雅的方法, 不要每次都暴力的 -9 來砍掉, 以下來列幾個參數, 不得已再來用 -9 砍吧 :)

補充:使用名稱來停止指定程序
1. 確認該程序的名稱
2. kill `pidof chrome`

指令: kill -Num ProcessId(pid)
信號簡稱 數值 代表意義
HUP 1 控制中的終端/程序中斷
INT 2 鍵盤的插入指令(同 Ctrl + C)
QUIT 3 鍵盤的中斷指令(同 Ctrl + \)
TERM 15 程序的終止指令
KILL 9 程序的強制終止指令(暴力砍掉)
CONT 18 程序的再啟動指令(STOP(19) 後再重新啟動)
STOP 19 程序的停止指令(同 Ctrl + Z)

一般如果關機的話, 系統是會先送 TERM(15) 的訊號來終止 process, 不行才會送 KILL(9) 來終止程式.
資料來源:不好意思,towns已經忘了資料來源了

參考資料:herb 大的 blog
https://blog.iphpo.com/


 13. cron 循環排程,提供重複性的排程工作
vi /etc/crontab  ==> 直接編輯檔案,用於系統固定排程工作
crontab -e ==> 編輯目前登入者的循環工作
crontab -u towns -l ==> 查看使用者towns的排程工作(只有root 可使用 -u)
crontab -u towns -e ==> 編輯使用者towns的排程工作(只有root 可使用 -u)
crontab -l ==> 列出目前登入者的循環工作
crontab -r ==> 移除目前登入者所有的循環工作
/var/spool/cron/ ==>所有帳號設定循環工作的設定檔存放位置
詳細資料:http://linux.vbird.org/linux_basic/0430cron.php#cron(鳥哥網站)

30  *   *   *   *   root /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w
分 時 日 月 週 <執行者><===========指令串=====================>|
每小時的30分時執行一次後面的指令

*/5  *   *   *   * root /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w
分 時 日 月 週 <執行者><===========指令串=====================>|
每小時的 5、10、15…60 執行一次後面的指令

1,6  *   *   *   * root /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w
分 時 日 月 週 <執行者><===========指令串=====================>|
每小時的 1、6 分執行一次後面的指令

1-6  *   *   *   * root /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w
分 時 日 月 週 <執行者><===========指令串=====================>|
每小時的 1、2、3、4、5、6 分執行一次後面的指令

@reboot root /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w
 重開機後,執行一次後面的指令

參考資料:man 5 crontab

註:corntab -e 是編輯自己的排程,這時不可使用指定執行者,只有在編緝 /etc/crontab 檔時,才能指定執行者


14. cp指令
cp -r /mnt/cdrom /tmp/ <==將/mnt/cdrom整個目錄備份到/tmp/(會自動生目錄)
cp -p <==保留檔案屬性(包含mod、own、selinux等)
cp -r /mnt/cdrom/. /tmp/ <==將/mnt/cdrom/所有檔案及子目錄備份到/tmp/


15. 帳號密碼管理指令
pwck
pwconv 分開帳號密碼檔(passwd 及 shadow)
pwunconv 合併帳號密碼檔(passwd 及 shadow)
參考資料:
http://ithelp.ithome.com.tw/question/10039061?tag=nl.daily
鳥哥 第十四章、Linux 帳號管理與 ACL 權限設定


16. iptstate -- IPTables State 即時監控 TCP/IP 協定,可以監控Linux 系統Port、IP使用情形


17. RPM 指令
 rpm -ivh yum-2.2.2-0.fc3           <==安裝yum-2.2.2-0.fc3 套件
 rpm -e yum-2.2.2-0.fc3              <==移除yum-2.2.2-0.fc3 套件
 rpm -qa |grep yum                      <==查詢是否有安裝 *yum* 套件
 rpm -q yum                             <== 查詢是否有安裝 yum 套件
 rpm -ql yum-2.2.2-0.fc3             <==列出yum-2.2.2-0.fc3 套件所有相關的目錄及檔案
 rpm -qf /etc/yum.conf                  <==反查/etc/yum.conf 檔案是由那個套件產生
 rpm -qc yum-2.2.2-0.fc3             <==列出yum-2.2.2-0.fc3 套件所有設定檔存放位置
 rpm -qd yum-2.2.2-0.fc3             <==列出yum-2.2.2-0.fc3 套件所有說明檔存放位置
 rpm -qpR yum-2.2.2-0.fc3          <==查詢yum-2.2.2-0.fc3 套件相依性資訊,該檔案必須存在
 rpm -qR yum-2.2.2-0.fc3            <==查詢yum-2.2.2-0.fc3 套件相依性,該套件必須已安裝
 rpm -Uvh yum-2.2.2-0.fc3           <==升級套件。系統中有該套件時,執行升級動作,無該套件時,執行安裝動作
 rpm -Fvh yum-2.2.2-0.fc3            <==升級套件。系統中有該套件時,執行升級動作,無該套件時,則不安裝
 rpm -ivh yum-2.2.2-0.fc3 --test    <==僅測試套件,並不實際安裝
 rpm --rebuilddb                               <==重建rpm資料庫,移除套件時建議使用
 rpm -ivh yum-2.2.2-0.fc3 --nodeps  <==強制安裝套件,不管相依性問題
 rpm -e yum-2.2.2-0.fc3  --nodeps    <==強制移除套件,不管相依性問題
 rpm -qi yum-2.2.2-0.fc3 <==列出套件資訊,該套件必須已安裝
 rpm -ivh [套件名] --force <== 強制重新安裝套件
 rpm -V openssh-server <== 驗證openssh-server的設定檔、執行檔檔案版本資訊,主要用於查看檔案是否遭到變更
八個欄位說明,一但有顯示,就表示有變動
[檔案大小變動].[權限變動].[MD5碼變動].[主要裝置與次要裝置編碼不合].[連結路徑不合].[擁有者變動].[擁有群組變動].[時間變動]

註1:log 檔沒有套件擁有者
註2:當查詢套件資料時出現以下錯誤時,就可以使用 rpm --rebuilddb 重建套件的資料庫檔,就可以正常查詢了
error: db5 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db5 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm

參考資料:
某大大的文件
http://tnrc.ncku.edu.tw/course/93/fedora_core2/page6/p6htm

Gleb Reys 大的文章
https://www.unixtutorial.org/how-to-fix-corrupted-packages-database-for-yum/


18. 關於帳號、密碼、群組檔案說明
帳號:passwd
帳號名稱:密碼(轉移到/etc/shadow):UID:GID:使用者資訊說明欄:家目錄:Shell
abc:x:500:500::/home/abc:/bin/bash

密碼:shadow
帳號名稱:密碼(加密後):最近更動密碼的日(1970年起,用日算):密碼不可被更動的天數:密碼需要重新變更的天數:密碼需要變更期限前的警告期限:密碼過期的恕限時間:帳號失效日期(需以1970年算起):保留
abc:!!:13658:0:99999:7:::

群組:group
群組名稱:群組密碼:GID:此群組支援的帳號名稱:
abc:x:500:

資料來源:鳥哥的Linux 私房菜 -- Linux 帳號管理與 ACL 權限設定

使用指令改變shadow中帳號時間設定
passwd -x 180 test <== 變更 test 帳號第五欄時間(密碼最大存活時間)
passwd -n 10 test <==變更 test 帳號第四欄時間(密碼最小存活時間)
passwd -w 10 test <==變更 test 帳號第六欄時間(密碼到期警告時間)
passwd -i 10 test <==變更 test 帳號第七欄時間(密碼過期寬恕時間)
passwd -d towns <==刪除towns的密碼
passwd -l towns<==鎖住towns的密碼,這樣towns就無法使用ssh登入了(在shadow密碼欄加“!!”)
passwd -u towns<==解開towns密碼的鎖定(在shadow密碼欄減“!!”)
passwd -f <==忽略
passwd -S towns <==查尋towns帳號狀態,主要為說明密碼編碼方式

補充:
鎖住及解開使用者帳號還可以用 usermod -L 及 usermod -U(在shadow密碼欄加及減“!”)


19. 啟動設定檔,當 towns 安裝了程式需要開啟動時,除了將他寫入 service 中,還可以將該程式的script 檔,放到 /etc/rc.d/rc.local 檔中,當所有的系統需求程式都載入後,在rc.local中指定的程式也會跟隨啟動

註1:這個檔案在 CentOS 7 後,如果要使用必需改為 +x 才能在開機執行
註2:如果要使用其他帳號啟動特定 script,可以使用 sudo -u towns /opt/script.sh

參考資料:
GTW
https://blog.gtwang.org/linux/auto-execute-linux-scripts-during-boot-login-logout/


20. touch 指令
touch -d '2010-08-05 10:13:45' abc.txt  ==>變更abc.txt (-d)檔案更新時間為 2010-08-05 10:13:45


21. 原來,除了yum安裝指令用來安裝系統套件,還有一個指令pear,也可以用來安裝pear本身需要的套件

1.必要條件
需有安裝php-pear 這個套件,該指令才能使用

2.參數(詳細說明請使用 pear help 查看)
pear install Auth_SASL <== 線上安裝Auth_SASL 套件
pear list <== 列出所有由 pear 預設頻道安裝的套件
pear list-all <==  列出所有由 pear 的套件
pear list-files [package name]<== 列出指定套件的檔案
pear channel-update pear.php.net <== 更新 pear.php.net 資料


 22. RPM 套件的查找
RPM Search:http://rpm.pbone.net/,可以使用套件中的特定檔案(如***.so)來找出需求套件,打套件名稱會找不到
RPMfind:http://rpmfind.net/,可直接打入套件名稱,找出相關套件


23. 共同開發環境
在windows 中,towns可以將特定的使用者加入指定的資料匣並管理該資料匣內的資料,在linux中也可以做到,就是使用UPG(User Private Group)功能,這個功能的管理非常容易,只需要使用幾個簡單的指令就能達到,下面以範列來說明
gpasswd <group>
gpasswd -a <user> <group>
gpasswd -A <user> <group>
gpasswd -d <user> <group>
gpasswd -r <group>
gpasswd -R <group>


24. 安裝nmap工具
這個工具是用來掃瞄主機開放了那些 Port,對於安全性來說是一個很棒的工具
套件:nmap*.rpm


25. 舊版Linux(如RH9)系統 pop3的管理方式
舊版linux系統(如 RH9)ipop3管理位置
於/etc/xinetd.d/ipop3,加入disable = yes


26. 關於date指令的使用說明
date -R ==>顯示目前時區
date 062016322011 ==>修改主機時間為2011年06月20日16時20分
http://www.cnblogs.com/h2appy/archive/2008/11/27/1342029.html


27. 擴大LV的方式
詳見 Linux LVM管理 -- 擴大與縮小LV空間 一文


28. Linux主機名稱
一般在 towns 在主機設定完成後,才會去設定主機名稱,但這次有一台主機自動產生了主機名稱,而這個名稱來源與該IP設定的反解有關,當 towns 將IP改為一個私人IP後,這台主機的名稱就自動變回localhost.localdomain,但再設回外部IP後,重開機,他的名稱又變回反解的設定了 = =


29. 變更預設開機等級
修改 /etc/inittab 中 id:*:initdefault:: *號的數字(0~6)
執行等級分為7級
詳細資料可見鳥哥  第二十章、開機流程、模組管理與 Loader


30. 統計資料匣大小
du -sh [資料匣名稱]
du -sh / <== 統計 / 目錄下使用的總空間(含所有在 / 目錄之下的總計)
du -sh /* <== 查看根目錄每個資料匣的大小
du -sh * <== 統計該目錄下資料匣使用空間
不過這個做法檔案越多就越久
資料來源:
http://moto.debian.tw/viewtopic.php?p=11009,感謝 d2207197大
鳥哥 第八章、Linux 磁碟與檔案系統管理


31. PHP檔案上傳時間修改
max_execution_time = 30 <==預設php檔案上傳時間
default_socket_timeout = 60


32. Fedora 14更新 bind 套件
towns使用yum update更新bind套件,他就只更新了 bind-9.7.4-0.3.b1.fc14.i686 這個套件,另外兩個並沒有主動更新,bind-libs-9.7.2-2.P2.fc14.i686 及 bind-utils-9.7.2-2.P2.fc14.i686,造成在啟動named時,會出現 undefined symbol: dns_cache_create3 這樣的錯誤


33. 關於CentOS5 版與PHP 5.2問題
CentOS 5.X 版,內部提供的PHP套件為 5.1版,如果要昇級成5.2版,可以到http://rpm.pbone.net/尋找適當的套件來安裝


34. 測試jsp是否正常運作
<% out.println("<h1>hello JSP</h1>"); %>
資料來源:http://blog.yam.com/u9323523/article/25178591


35. 重要指令:Linux檔案隱藏屬性管理(chattr及lsattr)
chattr +a /var/log/messages <==將messages 檔加入保留(a)屬性,該檔只能寫入,不能刪除
chattr +i /var/log/messages <==將messages 檔加入保留(i)屬性,該檔永遠不能改變
chattr -a /var/log/messages <==將messages 檔解除保留(a)屬性
chattr -i /var/log/messages <==將messages 檔解除保留(i)屬性,
lsattr /var/log/messages <==查看messages 檔案屬性
lsattr -d /var/log <==查看log 目錄屬性
資料來源: 鳥哥 第七章、Linux 檔案與目錄管理


36. 協助檢查使用者登入或入侵的相關資料
1. w指令   資料存放處
/var/log/wtmp <==將這個檔案刪除就看不到了
2. last指令   最後資料
/var/log/utmp <==將這個檔案刪除就看不到了,在CentOS 5.5中不存在
3. lastlog指令   查看最後資料
/var/log/lastlog <==將這個檔案刪除就看不到了
4. 使用ps指令,查看sshd執行情形
ps aux |grep sshd,如果在後面加了個 -q,ssh的log檔就不會有記錄
5. history指令
/root/.bash_history<==這是記錄所有執行過指令的檔案,也是history看的地方
下nuset HISTFILE ==> 登出後,不寫入.bash_history檔案中
6. who am i <== 查看自己是那個 session
7. pkill -kill -t pts/2 <== 將pts/2的使用者踢出
8. 使用rpm 指令確認套件的設定檔及執行檔是否遭改變
rpm -V  [套件名、RPM名]

註:w、who只能看到誰由ssh登入,如果使用者是使用UI登入(如遠端登入X-win),w、who是看不到的

資料來源:范老師上課口述筆記
大陸的SOSO問 http://wenwen.soso.com/z/q302245848.htm


37. 背景執行 &、Ctrl +z
指令 &
執行中程式 按 Ctrl +z
回前景 fg


38. 關於Fedora 10以後,圖型介面無法使用 root 登入的問題
使用文字介面 設定 /etc/pam.d/gdm-password 檔,將auth required pam_succeed_if.so user !=root quiet 註解掉

相關資料:http://tw.myblog.yahoo.com/seeu-boworstern/article?mid=268


39. 透過VNC遠端登入 X-win
1. 安裝VNC server
  yum install tigervnc-server

2. 建立使用者
  vncserver :1 ,第一次建立時,會要求打入密碼(必需6碼以上),同時建立相關資料到家目錄./vnc中,同時開放5901埠

3. 設定防火牆
 可透過手動設定iptablest檔或使用setup協助設定

4. 設定開機啟動
 4.1. 設定啟動後登入者
 在 /etc/sysconfig/vncservers 檔案中加入
 VNCSERVERS="1:towns" <== 第一個視窗,使用者 towns
 VNCSERVERARGS[1]="-query -nolisten tcp" <== 相關協定,如要遠端登入,不要加localhost
 4.2. chkconfig vncserver on 
 4.3. service vncserver restart
問題:這樣的設置只能開啟一個使用者一個視窗,如果要開啟兩個使用者,該怎麼設定,towns設定了兩組,似乎是沒用的 = =

5. 其他指令
 vncserver :1 <== 手動啟動第一個視窗,執行後會開啟5901 Port
 vncserver -kill :1 <== 手動關閉第一個視窗
更多功能可參考man vncserver

詳細資料:鳥哥 第十一章、遠端連線伺服器SSH / XDMCP / VNC / RDP


40. iptables 應用
towns 到現在才知道原來有這樣的工具可以使用iptables recent module 可以使用,他可以用來管制同一個port 的連結次數
相關資料:感謝前輩們的教學
http://anderson1029.pixnet.net/blog/post/25102540
http://hahahaha.cc/?p=76
註1:這個功能iptables版本必須在1.3版(含)以上才有,不然,得自行安裝 ipt_recent-0.3.1.tar.gz
註2:CentOS與Fedora 14所產生的預設路徑不同。CentOS,/proc/net/ipt_recent/*,Fedora 14,/proc/net/xt_recent/*


41. set 指令
set -x  在指令被執行前,會顯示指令內容,可以檢查指令無法執行的問題
set +x 關閉該功能


42. JSP顯示本機時間語法
<%= new java.util.Date() %> 


43. phpmyadmin常用設定
修改登入密碼為http模式
 1. config.sample.inc.php ==> config.inc.php
 2.  $cfg['Servers'][$i]['auth_type'] = 'cookie'; ==> $cfg['Servers'][$i]['auth_type'] = 'http';
官方安裝說明文件:http://www.phpmyadmin.net/documentation/
問題1:缺少 mysqli 外掛
處理1:確認是否有安裝 php-mysql套件
處理2:如有安裝,請到php.ini中設定mysqli.so檔案連結位置
資料來源:http://mail2.ccps.kh.edu.tw/wordpress/?p=16

問題2:缺少mbstring
處理1:安裝php-mbstring 套件

問題3:缺少 mcrypt 外掛
處理1:安裝php-mcrypt 套件
如果使用CentOS,請加裝 Extra Packages for Enterprise Linux (EPEL)額外的 repo檔,就可以使用yum 來安裝 php-mcrypt 套件
資料來源:http://talk-away-999.blogspot.tw/2012/09/linux-centos-63-php-mcrypt.html
註:towns在安裝php-mcrypt(5.3.3-1.el6.rf.x86_64) 發生了安後,phpmyadmin仍出現無 mcrypt 外掛,後來查看了 /etc/php.d/mcrypt.ini 的內容,發覺內容寫的是extension=module.so,這個不太合理,towns將內容改為extension=mcrypt.so,就正常了,這樣改是否能正常,就看看phpmyadmin能不能正常運作了

問題3:phpmyadmin高級功能設定(非必要)
1. 建立phpmyadmin資料庫 ==> 使用./examples中的create_tables.sql ,建立資料表
2. 將 config.inc.php中Storage database and tables這一段的 // 全部移除
註:如果更新版本,記得要重建資料庫


44. 怪問題,logwatch停止
towns遇到一個怪問題,有一台linux server的logwatch每週都會停止,需於週一手動執行一次00-logwatch,而後一週內都會正常。經過查看log檔(massage及cron)並沒有出現相關問題的紀錄。經過測試,本機發信是正常的。不知道是否有朋友遇過相同的問題呢?
logwatch版本:logwatch-5.2.2
系統版本:CentOS 4.5
虛擬平台:VirtualBox 4.1.6


45. 指令 iwconfig
查看無線網路資訊


46. 關於NetworkManager服務
NetworkManager 看起來是專為X-win設計的網路管理套件,他可以動態的建立網路設定值,也可以寫入network-scripts/中(勾選 所有使用者皆可用 時,在network-scripts/下,就會多一個檔案),但如果同時使用network 及 NetworkManager 管理無線網路,無線網路會出現不明情形也會不通,當有安裝X-win,並啟用 NetworkManager,時,請將ifcfg-wlan0中ONBOOT設為no(開機不啟動)。
OS:CentOS 6.2
相關資料:http://blog.roodo.com/rocksaying/archives/11777065.html

註1:動態資料路徑 /etc/sysconfig/networking/
註2:透過NetworkManager設定eth0,動態資料與network-scripts/中的資料會有一致性,因為使用相同的eth0檔,並預設有勾選 所有使用者皆可用


47. 關於SSH 的安全性
在SSH的設定檔中,有一個 MaxAuthTries 參數,預設為6次,這個參數預設為啟動,密碼只能try 6次


48. 在CentOS 6的X-win中安裝嘸蝦米
 1. 安裝gcin-1.5.5-3.fc14.x86_64.rpm套件並安裝
 2. 取得noseeing-12.tar.gz,解壓後將noseeing.gtab拷入/usr/share/gcin/table
 3. 到Xwin中的 系統==>編好設定==>輸入法,將gcin設為預設值
 4. 重新登入
資料來源:
海芋小站:http://www.inote.tw/2009/05/ubuntugcin.html
insecta大大:http://insecta.idv.tw/lf/index.php?op=ViewArticle&articleId=18&blogId=2
註1:client 端會出現這個檔設定檔.xinputrc及路徑/.gcin/

CentOS6 安裝gcin的問題
1. 使用套件版本為 gcin-1.5.1-1.el6.x86_64.rpm (RH6的版本)
2. 安裝後登入Xwin使用者會出現 Unable to keep input method running 這樣的錯誤息
處理方式:進入Xwin後,到 系統 ==> 偏好設定 ==> 啟動應用程式 ==> 將 imsettings-start(輸入法啟動器)取消勾選,在下次登入Xwin後,就不會出現這個問題了
資料來源:王大的資料 http://dywang.csie.cyut.edu.tw/moodle23/blog/index.php?entryid=108
王大的第一段指令 towns是看不懂的 = =

嘸蝦米安裝於 iBUS中
ubunto的安裝方式,真好,有人做出安裝檔了 ^^,其他版本仍需自己做
相關連結:http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=43628

其他版本安裝教學
1. 取得字碼表並加上header
2. 必需安裝iBUS
3. 使用iBus指令建立db檔
ibus-table-createdb -s [字碼表檔名].txt -n [資料檔檔名].db
4. 將產生的db及圖檔放到iBUS的路徑中
cp [資料檔檔名].db /usr/share/ibus-table/tables/
cp [圖檔名].png /usr/share/ibus-table/icons/
5. 重新登入
6. 設定輸入法中ibus偏好設定
成功
註:在設定字碼表中的header,可以看而icons的檔名設定,請設定正確,否則會看不到圖

相關連結:
http://oranqe.wordpress.com/2010/06/04/%E5%98%B8%E8%9D%A6%E7%B1%B3%E8%BC%B8%E5%85%A5%E6%B3%95-on-ibus/
http://francinelin.blogspot.tw/2012/07/ibus.html
http://vicamo.blogspot.tw/2009/07/boshiamy-for-ibus.html


49. 關於遠端登入安全性問題
透過VNC登入遠端桌面,會出現很多限制,連mount光碟片都會發生權限不足的問題


50. CentOS 62 64bit,使用的檔案總管套件是 nautilus-2.28


51. Linux 遠端桌面client 端套件 tsclient-2.0.2-7.el6.x86_64


52. Dovecot 的 log檔中,rip指的是來源IP,lip指的是目標IP


53. partiton相關指令
dumpe2fs ==> 列出ext2/ext3/ext4 FS 的詳細資訊
dumpe2fs /dev/sd* ==> 可看出詳細資訊,下面多了一些group 的東西
dumpe2fs /dev/mapper/VG-lv_root ==> 當有使用LVM 時,查看FS資訊,要指定這樣的徑

tune2fs ==> FS 調整指令
tune2fs -l /dev/sd* ==> 可看出硬碟詳細資訊
tune2fs -l /dev/mapper/VG-lv_root
tune2fs -j -L sda1 /dev/sda1 ==> (-j)幫sda1加上日誌(ext2昇級為ext3),(-L)並幫FS加入名稱

補充:在Centos 7 下,使用dumpe2fs /dev/mapper/VG-lv_root、tune2fs -l /dev/mapper/VG-lv_root 看來是會出現錯誤訊息

fdisk ==> patation管理工具,這個跟SPFDisk 還蠻像的,只是一個是英文、一個是中文
fdisk -l /dev/sd* ==> 列出sd* 硬碟的FS分割方式(進入工具後按P有相同的效果)

mkfs、mke2fs==> Linux 中FS 格式化指令,類似windowns的format 指令,預設為Ext2
mkfs -t ext3 /dev/sdb1 ==> 格式化sdb1並指定為ext3格式
mke2fs -t ext3 /dev/sdb1
Ext2與Ext3格式差別在journal日誌功能
mkswap ==> 建立虛擬記憶體(swap) 
e2label
mkbootdisk
fdformat
fsck
badblocks
sync
mknod

相關網址:Rex大說明的很仔細,壞軌處理
http://blog.nutsfactory.net/2011/05/30/manage-bad-blocks-on-linux/


54. ARP 封包收集長指令(這個方式可以協助知道區域網路中異常的主機)
sudo tcpdump -l -n arp | grep 'arp who has' | head -100 | awk '{ print $NF }' | sort | uniq -c | sort -n
資料來源:
Thomas A. Limoncelli(O'REILLY 時間管理 給統管理者)

jyoutw 的 blog -- tcpdump 的用法
https://blog.xuite.net/jyoutw/xtech/23669726-tcpdump+%E7%9A%84%E7%94%A8%E6%B3%95


56. 關於磁區的UUID
磁區UUID可以到/dev/disk/by-uuid/中看到,swap 磁區,在這裡也可以看到


57. 查看磁區的格式
 1. 可以透過tune2fs -l /dev/sd* 方式查看 Filesystem features 中是否有 has_journal,這個就是ext3
 2. cat /etc/fstab。這個也可以明顯看到硬碟格式,但限已掛載的磁區
 3. 使用mount指令,將磁區掛上後,再使用mount指令直接查看掛載磁區,該方式只適用於Linux系統可自動辨視的磁區


58. 查看Linux 廠商
 1. cat /etc/issue
 2. cat /boot/grub/grub.conf 中 title有寫到
 3. rpm -aq |grep *** 查看套件時,也可以看到

補充:在CentOS6版開始,在/etc/有一個檔案 centos-release,這個檔案也是寫廠商的版本,而在CentOS7以後,就必需看centos-release這個檔案或看os-release檔案(這個寫的比較細)

參考資料:shing dong大的文章
http://shingdong.blogsport.tw/2014/03/linux-oracle-11g-r2-rac-asm-virtualbox.html


59. SMTP及POP3指令
由網路上的資料可以知道,SMTP及POP3指令已成為顯學,那這樣的方式架設mail server,看來是有一定的風險了
相關資料:
http://mrynlin.blogspot.com/2010/12/smtppop3.html YN.Lin大的blog
http://hweily.pixnet.net/blog/post/22585676-%E6%8C%87%E4%BB%A4--pop3 hweily的blog


60. mail 指令、管理
在Linux文字介面上直接寄信的指令
指令編寫方式1:mail -s '[主旨]' [帳號] < [檔名]
指令編寫方式2:cat [檔名] | mail -s '[主旨]' [帳號]
例1:mail -s 'test' towns@a.b.c < /home/towns/test.txt
例2:cat /home/towns/test.txt | mail -s 'test' towns@a.b.c 
寄信給towns@a.b.c,標題 test,內容為test.txt中的文字
資料來源:鳥哥的Linux私房菜 第二十二章、郵件伺服器: Postfix
Linus Chen大的文章:http://blog.tmu.edu.tw/m110092006/003585.html
官方wiki:http://en.wikipedia.org/wiki/Mailx

-------------------------------------------------------------------------------------------------

使用mail 指令,指定外部發信主機

如果要指令外部主機發送,必需設定 /etc/mail.rc 檔中加入以下設定
set from=fromuser@domain.com smtp=domain.com
set smtp-auth-user=username smtp-auth-password=password
set smtp-auth=login

說明:
from是發送的郵件地址
smtp是發生的外部smtp服務器的地址
smtp-auth-user是外部smtp服務器認證的用戶名
smtp-auth-password是外部smtp服務器認證的用戶密碼
smtp-auth是郵件認證的方式

參考資料:70大的blog
http://70tw.spotlight.net.tw/?p=349

補充:如果使用舊版系統,如CentOS 5,會沒有mailx


61. Dovecot 套件說明
neio大的blog文章 http://neio.pixnet.net/blog/post/15546063-dovecot-on-debian


62. 登入檔輪替工具 logrotate 的特殊地方
這裡說明一個特殊的地方,towns在設定了apache 虛擬網站的log檔輪替後,的確有產生 *_access_log.1這樣的檔案,特殊在當towns試著存取網站時,讀取紀錄寫入了*_access_log.1,而不是新產生的 *_access_log,重新啟動 httpd 後,才開始寫入*_access_log中
系統說明:CentOS55、httpd-2.2.3
詳細的設定資訊:鳥哥 第十九章、認識與分析登錄檔


63. 文字模式下取得外部IP
方式1:使用php的函式抓取
curl 
"http://www.ripe.net/@@ipaddress" 
這個方式必需要有安裝PHP才可以

方式2:使用telnet 方式抓取IP
#!/bin/bash
NEW_IP=$((sleep 2;echo helo localhost; sleep 2; echo quit) | telnet msa.hinet.net 25 2>&1 | awk -F '[][]' '/^250/{print $2}') echo $NEW_IP
使用script,並抓取出的IP資訊,這個是在抓取連入mail server後出現的主機資訊,這是通用的方式

註:方式2 因為 hinet mail server 調整後,無法看到了

資料來源:小舖討論區,蔥大回應,蔥大真是太強了
http://www.blueshop.com.tw/board/FUM20050110200903ZWZ/BRD2012052000184015U.html


64. file指令
取得檔案資訊
file [檔名]
資料來源:鳥哥 第七章、Linux 檔案與目錄管理


65. 關閉IPv6支援
目前來說,大部分的設備都還沒有支援IPv6,但新版的OS多半都預設支援IPv6,如windows 7、CentOS6 以上、Fedora 10以上,說真的,towns並不喜歡這樣,所以towns都會將他關閉,一方面也可以減少安全性的隱懮
win7請參考 IT隨手記第55點

CentOS6、Fedora 14(已測試)
在/etc/modprobe.d/dist.conf 中加入 options ipv6 disable=1,就可關閉IPv6支援
測試1:使用ifconfig 查看網路介面,可發覺inie6_addr 這一行已經不見了
測試2:使用netstat 查看監聽中IPv6位置已經全部不見了
註1:要開啟IPv6支援,將1改為0
註2:可以的話,記得連同ip6tables這個服務一起關閉,雖然並沒有影響
相關連結:http://windphp.com/unix/51.html

補充:最近測試發現,如果關閉IPv6,似乎會造成防火牆啟動、變更異常,在查出問題前,請不要關閉IPv6

另一方式(CentOS 6.X)
關閉IPv6:在/etc/modprobe.d/中加入disable-ipv6.conf,內容為 install ipv6 /bin/true
開啟IPv6:刪除該檔案
這個方式不會出現防火牆異常
Jerry 大的文章說明 http://download.ithome.com.tw/article/index/id/7848


66. 確定Linux系統為32或64bit
uname -a ,後面出現 x86_64,就是64bit的系統


67. X-win 使用類似檔案總管方式開資料匣
系統 ==> 偏好設定 ==> 檔案管理 ==> 運作方式 ==> 總是以瀏覽視窗開啟 勾選


68. 開機預設值設定檔
/etc/inittab


69. 使用X-win 時需調整
網路管理服務調整
 1. 關閉network 在UI介面下的服務
chkconfig nework off
chkconfig --level 3 network on
 2. 關閉NetworkManager 在text介面下的服務
chkconfig NeworkManager off
chkconfig --level 5 NeworkManager on
這可以避免UI在重新啟動網路介面時的異常問題


70. Linux 存取 NTFS
1. 下載 ntfs-3g_ntfsprogs-2012.1.15.tgz
官網:http://www.tuxera.com/
到官網的community 中,download下面的連結

2. 下載 fuse-2.9.1.tar.gz
官網:http://fuse.sourceforge.net/
到官網的download中可以找到

3. 解開後,打入./configure、make、make install,就可以完成安裝

4. 測試
測試1:打入指令ntfs-3g,如果出現操作說明表示 ntfs-3g有完成安裝
測試2:掛載硬碟,測試是否可正常存取
使用mount指令掛載:mount -t ntfs-3g /dev/sdb1 /mnt/
使用ntfs-3g指令掛載:ntfs-3g /dev/sdb1 /mnt/

資料來源:
http://benjr.tw/node/330 sunchiahome大的blog
http://download.ithome.com.tw/article/index/id/156 ithome Superfunction大的文章

補充1:CentOS 5.4 開始,核心已經有內建 fuse ,可以直接安裝 fuse、fuse-ntfs-3g,就可以掛載NTFS FS 了
補充2:CentOS 6、7,只需要安裝 ntfs-3g
補充3:測試與掛載方式與第4點相同

參考資料:CentOS 官方說明
https://wiki.centos.org/zh-tw/TipsAndTricks/NTFS


71. Linux  GUI 遠端桌面
使用Linux GUI連接遠端桌面(windows、Linux),towns比較喜歡使用 tsclient這個遠端桌面套件,因為他比較順手,也支援多種協定


72. 指令 iptab
towns在偶然的情形下,打下了iptab這個指定,這個指令即沒有man,也沒有help,不過,打下去他會說明關於towns在上課時學到的addr數量、幾bit、pref、class及netmask,好玩的指令


73. 另人又愛又怕的工具 Rootkits
善用工具是好的,但惡用工具呢!= =
相關連結:http://technology.apol.com.tw/technology-55.html


74. type 指令
用來確認是否為原生指令
type [指令] ==> 列出指令主要使用情形
type -a [指令] ==> 列出指令所有資料
例1:
type cd
cd is a shell builtin <== cd 是shell的原生指令
例2:
type find
find is /bin/find <== find 是非原生指令,是一個執行檔


75. xrdp安裝及設定
安裝xrdp的目地是為了使用windows 的遠端桌面(mstsc)登入。
在Fedora 14中,可以直接使用 yum 來安裝xrdp
這是一個很棒的tigervnc取代方案,可以去除第8點的問題哦!^0^
設定檔:/etc/xrdp/xrdp.ini、sesman.ini
相關資料:http://pulipuli.blogspot.com/2008/08/windowslinuxxrdpvnc-server.html 感謝布丁大
註1:tigervnc vncserver 並不需要啟動,也可正常連入
註2:預設啟動 chkconfig xrdp on
註3:CentOS 安裝,請參考 鳥哥 第十一章、遠端連線伺服器SSH / XDMCP / VNC / RDP
套件可由:http://download.fedora.redhat.com/pub/ 取得
套件名稱:xrdp-0.5.0-0.13.el6.x86_64.rpm

安全性設定:
在sesman.ini中,可以看到一個設定值 AllowRootLogin 這個值預設為 1,同意Root 登入,基於安全性考量,可設為 0,拒絕 Root 帳號連入
資料來源:
http://erictoit.blogspot.com/2010/12/xrdplinux-remote-desktop.html
http://itschool.dgbas.gov.tw/blog/post.do?bid=8&pid=557
前輩的網頁中,有詳細的參數說明

改變預設連接阜:
在/etc/xrdp/xrdp.ini  [globals] 中可以看到 port=3389,修改這個值就可以了

註1:在啟動後,還需設定防火牆開放3389可以連入哦!

補充1:錯誤訊息 VNC error - only support 8, 15, 16, and 24 bpp rdp connections
當安裝 xrdp 0.9.0 版本時,會出現該訊息,主要是因為 xrdp.ini 中 max_bpp 預設為 32,將該值改為 24 即可

參考資料:Griffon's IT Library 討論串 Griffon 大的回應
http://c-nergy.be/blog/?p=5439

------------------------------------------------------------------------------

啟用加密

預設下 xrdp 是不開啟 TLS 加密的,但這個有可能會造成弱點,所以,在必要時,還是開啟

開啟方式
1. 於 /etc/xrdp/xrdp.ini 設定檔中將 security_layer=negotiate 改為 security_layer=tls

2. 指定  X.509 certificate and private key 位置
certificate=/etc/xrdp/cert.pem
key_file=/etc/xrdp/key.pem

註:在安裝 xrdp 後,套件會自動建立一個 365天的自簽憑證,可以直接套用,到期後,再重新建立一個自簽憑證即可

------------------------------------------------------------------------------ 

加密選擇

當在 security_layer 選擇 negotiate 或 tls 時,就可以用以下參數設定使用的加密方式
tls_ciphers= 他的寫法與 openssl 寫法是相同的

tls_ciphers=HIGH:!ADH:!AECDH

參考資料:
mankier -- xrdp man page
https://www.mankier.com/5/xrdp.ini

其他資料:
itread01 -- Linux遠端桌面的選擇
https://www.itread01.com/p/156102.html

stack 討論 -- 為什麼Linux上的RDP用戶端比Windows上的RDP用戶端慢得多?
https://qastack.cn/unix/219171/why-are-rdp-clients-on-linux-much-slower-than-on-windows 


76. 查看目前透過NAT連線的資料
/proc/net/ip_conntrack
這個檔案可以看到netstat 顯示資料中,無法看到的NAT連線資料情形
資料來源:鳥哥新手討論區 http://linux.vbird.tw/viewtopic.php?f=2&t=846 twu2大的回應
註:CentOS 6.3版,沒看到這個檔案呢!


77. 開放IPv6支援
開啟CentOS5支援IPv6
CentOS5預設為關閉IPv6,需要手動開啟
在/etc/modprobe.conf中,可以看到 options ipv6 disable=1 ,改為0,就可以開啟了

相關說明:
啄木鳥大的說明 http://sammywpk.blogspot.tw/2010/04/ob2d-ipv6.html
臥龍大的IPv6應用教材 http://news.ols3.net/techdoc/new/ipv6_intro/


78. 加入額外的 repo檔
這個是為了加強Red Hat系列的系統(如CentOS、Fedora)的yum更新功能,因有些套件官方並沒有提供
1. 加入Extra Packages for Enterprise Linux (EPEL)額外的 repo檔
CentOS 5 請取得 epel-release-5-4.noarch.rpm
CentOS 6 請取得 epel-release-6-7.noarch.rpm
CentOS 7 請取得 epel-release-7-5.noarch.rpm
官網說明:http://fedoraproject.org/wiki/EPEL
套件取得:http://mirror01.idc.hinet.net/EPEL

2.  加入rpmforge 額外的 repo檔
CentOS 5 請取得 rpmforge-release-0.3.6-1.el5.rf.i386.rpm
CentOS 6 請取得 rpmforge-release-0.5.2-1.el6.rf.i686.rpm
CentOS 7 請取得 rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
官網說明:http://dag.wieers.com/rpm/FAQ.php#B
套件取得:http://apt.sw.be/redhat/

註:取得的RPM檔,版本是會變的,請依官方資訊變更為最新版本

3. 加入webtatic 額外的repo檔(選用)
這是andy大自行架設的yum server,主要是提供PHP的更新
CentOS 5 請取得 latest.rpm
CentOS 6 請取得 latest.rpm
CentOS 7 請取得 webtatic-release.rpm
官網說明:https://webtatic.com
套件取得:https://mirror.webtatic.com
註1:webtatic-release.rpm與epel-release.rpm有相依性,要先安裝epel-release.rpm
註2:如果要手動下載套件,網址為 https://repo.webtatic.com

註3:手動下載套件網址變更
https://sp.repo.webtatic.com/yum/el7/x86_64/
https://us-east.repo.webtatic.com/yum/el7/x86_64/
https://uk.repo.webtatic.com/yum/el7/x86_64/

4. Remi's RPM repository
再加一個額外的 repo ,感謝 Remi 大的提供
官方網站:http://rpms.famillecollet.com
在官網下面的 Distribution choice - Repository content,可以找到各版本需要的 rpm 檔
註1:也可以點 Configuration wizard 由系統幫我們選擇需求
註2:安裝完 PHP71 後,有時會發生 php 指令無法使用,這時請加上這行後 reboot,讓環境變數生效
ln -s /opt/remi/php71/enable /etc/profile.d/remipath.sh

補充:3、4,這兩個額外的資訊,都是為了安裝 PHP 7 以上的版本而找的 ^^

5. SCL 套件庫
官方網站:https://www.softwarecollections.org/en/
這個套件安裝是直接使用 yum install centos-release-scl
CentOS 說明:https://wiki.centos.org/zh-tw/AdditionalResources/Repositories/SCL

6. atomic 套件庫
官方網站:http://www.projectatomic.io/docs/introduction/
套件下載:https://pkgs.org/
這個網站列出了很多 Linux、unix 第三方的套件庫,而 atomic 計畫這個依 CentOS 官網說明,是專為執行 Docker 容器而設的輕型操作系統,towns 發覺這個計畫中的套件都比較新


79. 關於Linux系統硬體溫度監控方式要(系統CentOS 6.3 64bit)
 1. 安裝相關套件 
        文字介面:dmidecode,lm_sensors,lm_sensors-devel
        UI介面:gnome-applet-sensors
 2. 執行一次sensors-detect指令,程式會自動偵測硬體,並產生/etc/sysconfig/lm_sensors檔
 3. 執行sensors指令,就可以看到各項硬體資料

資料來源:IBATA大的Blog
http://www.wretch.cc/blog/IBATAHIRO/12541732

註1:CentOS中並沒有gnome-applet-sensors,需手動取得或安裝epel-release套件,由yum取得
註2:gnome-applet-sensors套件是面版程式,如需要可以於面版中選取Hardware Sensors Monitor,就會出現了


80. openwebmail發生“無法更新信件索引”問題
今天towns做了系統更新(yum upgrade),更新完成後,就出現了“無法更新信件索引”問題,在google查詢一些資料後,將openwebmail重新初使化後,就可正常運作
openwebmail-tool.pl --init
註:在初使化時,出現一個說明,要更新 dbm.conf中的設定值,只需要依照說明更改設定值後,就可以正常初使化
資料來源:酷學園討論串 http://phorum.study-area.org/index.php?topic=26076.0


81. 卸載與安全移除
在Linux系統中,卸載與安全移除似乎是不同的。towns在文字模式下,下umount 指令,指定已掛載的USB磁區後,該資料匣中的資料會不見。在UI介面使用卸載,與umout指令相同,但使用安全移除,則整個USB裝置會從/dev/ 消失,這個方式比較符合移除USB設備的標準動作。目前towns正在尋找如何使用指令安全移除USB設備呢!

參考Linux 隨手記 2 第27點

相關資料:http://linux-wiki.cn/wiki/zh-hant/%E5%AE%89%E5%85%A8%E7%A7%BB%E9%99%A4USB%E8%AE%BE%E5%A4%87


82. 兩條件搜尋
grep -e或egrep
例:cat /var/log/mail |grep -e "sasl_username|info" ,同時查詢有sasl_username及info字串的資料
資料來源:酷學園討串 http://phorum.study-area.org/index.php?topic=62181.0


83. 舊版Linux ISO檔下載
資料來源:
符大 blog http://werdna1222coldcodes.blogspot.tw/2012/04/centos-iso.html
酷學園討論區:http://phorum.study-area.org/index.php?topic=50093.0
官方下載點:http://vault.centos.org/
官方轉載點:
USA: http://mirror.symnds.com/distributions/CentOS-vault/
Europe: http://mirror.nsc.liu.se/centos-store/


84. RootKit Hunter 方便好用的 RootKit finder
因為towns的一台主機的sshd被換掉了,towns才開始注意到 RootKit 這種類的Cracker工具,進而知道了 RootKit Hunter 這個方便的工具,感謝每一個RootKit Hunter 工具的供獻者,提供了如towns這樣的初級管系統管理人一套方便的工具
towns的程式檢查流程
1. 使用 RootKit Hunter 測試系統 異常處
rkhunter -c <== 檢查檔案執行檔檔案版本、套件版本等等…
2. 使用 rpm -qf <== 找出執行檔檔案版本異常的套件(檔名完整路徑)
rpm -qf /sbin/ifdown /usr/bin/GET /usr/bin/groups /usr/bin/ldd
3. 使用 rpm -V <== 驗證套件的執行檔及設定檔版本正確性
rpm -V initscripts perl-libwww-perl coreutils glibc-common

會做三個動作是因為 RootKit Hunter 會有誤判,而使用套件驗證則不會發生這樣的事情
資料來源:鳥哥 RootKit Hunter 後端偵測軟體之架設與執行
下載網址:http://www.rootkit.nl/projects/rootkit_hunter.html


 85. 動態管理防火牆 Knock
如果主機必需直接對外開放,這個工具就非用不可
資料來源:鳥哥 使用 knock 管理防火牆


86. logrotate設定方式
1. 加入檔案 cacti到 /etc/logrotate.d/
2. 檔案內容
/var/www/cacti/log/cacti.log {
monthly <== 每月進行一次
size=100M <==大於100M開始處理
rotate 5 <== 保留5個檔案
create 0600 root root <== 建立新檔案時權限設為600,ownner及group設為root
dateext <== 新檔案名稱加上年月日。如cacti.log 下一個檔案為 cacti.log-20160507
dateformat [format_string] <== 新檔案名稱年月日格式
資料來源:鳥哥 第十九章 認識與分析登入檔

指令
logrotate -v /etc/logrotate.conf<== 執行並顯示詳細料
logrotate -vf /etc/logrotate.d/cacti <== 強制執行cacti設定

參數說明
missingok 找不到 log 檔仍可產生(當有使用 notifempty 時就會發生)
notifempty 如果 log 檔是空的,就不 rotate
compress 壓縮,預設用 gzip
delaycompress 延後壓縮直到下一次 rotate
copytruncate 先複製 log 檔的內容後,再清空的原 log 檔(因為有些程式一定 log 在本來的檔名,例如 rails。)
create 將原 log 檔,rotate 後,產生新的同檔名 log 檔
dateext 檔案加 rotate 的日期
rotate 7 保留 7 份

補充:/var/lib/logrotate/status,這個檔案可以看到最後一次執行 logrotage 時間及有那些 log 有執行 logrotate

參考資料:
ihower 大的文章
https://ihower.tw/blog/archives/3565

stackexchange - EightBitTony 大說明
https://unix.stackexchange.com/questions/15546/logrotate-log-does-not-need-rotating-why


87. 產生log檔方式
LDAP預設使用local4
所以....
touch /var/log/ldap.log

然後再/etc/syslog.conf
加上   local4.*    /var/log/ldap.log

restart syslog

SLDAP就會記錄log在ldap.log
資料來原:酷!學園討論 天線大的回應  http://phorum.study-area.org/index.php?topic=13873.0
詳細說明:鳥哥 第十九章 認識與分析登入檔
註:CentOS6 預設使用 rsyslog


88. 忘記root密碼的重建方式
 1. 重新開機
 2. 進入grub的開機選單(在數秒時按任意鍵)
 3. 按下e鍵,並在kernel這一行,再按一次e鍵
 4. 在這一行最後面打入 single
 5. 按下enter,再按 b,就可以進入單人模式了,這時進入為root權限
 6. 打入passwd,變更密碼
 7. 重新啟動,變更完成
資料來源:鳥哥 第二十章、開機流程、模組管理與 Loader
補充1:這個方式在CentOS7 不行,因為進入單人模式時,他還是要towns打root的密碼,才能進入rescue mode
補充2:使用光碟片進入 Rescue a CentOS system,並 mount 原系統(系統會詢問是否mount 原系統),這時就可以到shadow檔案中,將root密碼清空,重新啟動系統,root的密碼就消失了
補充3:使用Feodra 10以上版本,在進入系統前要按 shift 鍵,才看的到boot 畫面
參考資料:外國大大的文章
http://www.labtestproject.com/using_linux/step_by_step_to_reset_change_root_password_on_fedora_10


89. lsof 指令(list open file;列出開啟的檔案)
這個指令是towns在查 Debian Linux 服務開啟的Port時,偶然發現的,看來不錯用呢!
這指令可以列出程式COMMAND(指令名)、PID、USER(開啟人)、FD(執行形式)、TYPE(類型)、DEVICE(裝置編號) SIZE/OFF(大小/關閉) NODE(節點/協定) NAME(服務名稱/檔名/連接埠),而且這個指令通用於多數的Unix-like系統哦!

lsof -i -n | egrep 'COMMAND|LISTEN'
lsof -i -n |grep LISTEN <== 列出所有監聽中網路的指令,主機IP以數字表示
lsof -i -n -P |grep LISTEN <== Port以數字表示

資料來源:
國外的技術網站 http://www.techrepublic.com/blog/security/list-open-ports-and-listening-services/443
tsung大的說明 http://blog.longwin.com.tw/2012/05/lsof-port-network-2012/


90. 語系設定檔
Redhat 系列 /etc/sysconfig/i18n。下面為內容
 LANG="en_US.UTF-8"
 SUPPORTED="zh_TW.UTF-8:zh_TW:zh:en_US:en:en_US.iso88591"
 SYSFONT="latarcyrheb-sun16"

Debian 系列 /etc/default/locale。下面為內容
 LANG="en_US.UTF-8"
 LC_ALL="en_US.UTF-8"


91. SVN在linux 常用指令
server:VisualSVN 2.1.1
client:subversion-1.6.17
 1. 第一次同步(下載)  svn checkout [路徑]
 2. 加入更新  svn add [檔名or路徑]
 3. 下載同步  svn update [檔名or路徑]
 4. 更新到指版本  svn update -r [版號] [檔名or路徑]
 5. 查詢狀態  svn status [檔名or路徑]
 6. 查詢log紀錄  svn log [檔名or路徑]
 7. 查詢更新資訊  svn info [檔名or路徑],可以看到更新路徑,本目錄更新的最後版本
 8. 上傳更新 svn commit [檔名or路徑]

註:如果沒有打路徑、檔名,svn會直接判斷目前路徑

資料來源:
myarrow大的blog http://blog.csdn.net/myarrow/article/details/8110858
Tsung's 大的Blog http://blog.longwin.com.tw/2007/07/svn_tutorial_2007/


92. ls 指令
ls -l <== 使用較長格式列出資訊
ls -a <== 列出所有檔案,含隱藏檔
ls -tl <== 使用較長格式列出資訊,並依時間排列
ls -lh <== 使用較長格式列出資訊,檔案大小使用kb、mb
ls -S <== 依檔案大小排序
ls -al --full-time <== 顯示出完整時間
ls -s <== 顯示該檔佔用block的數量(第一欄)
ls -1 <== 一個檔案顯示一行
ls -lt <== 依時間排序列出檔案
ls -al --time-style=long-iso <== 時間顯示方式以 long-iso 顯示
ls -dl /etc/rc* <== 只列出/etc/rc* 該層為 rc* 的檔案,而目錄只會列出本身,不含目錄內檔案

補充:
[root@*** test]# ll -s
total 4
0 -rw-r--r-- 1 apache apache  0 Nov  8 18:09 php3.txt
4 -rw-r--r-- 1 apache apache 30 Nov 13 17:29 php5.txt
加上 -s,後可以看到在檔案前面多了一個block佔用數量
total 指的是佔用 4個block而不是4個檔案
註:每個block預設為4kb,13000byte/4096byte=3.17,系統就必需使用4個block

[root@*** test]# ls -als
total 12
4 drwxrwxr-x 2 apache apache 4096 Nov 13 17:23 .
4 drwxr-xr-x 4 root   root   4096 Nov 13 17:38 ..
0 -rw-r--r-- 1 apache apache    0 Nov  8 18:09 php3.txt
4 -rw-r--r-- 1 apache apache   30 Nov 13 17:29 php5.txt
全部佔用 12個block(一個資料匣佔用4個block,不過,一個資料匣才4096byte怎麼會佔用4個block,towns想,可能就如鳥哥所說的,他是離散的,應該這麼說,一個資料匣分別寫在4個block中)

資料來源:鳥哥的討論區
http://phorum.vbird.org/viewtopic.php?t=28596


93. VPN架設資訊

預訂使用系統CentOS 6.3 64bit
使用套件 pptpd-1.3.4-1.el6.nux.x86_64.rpm、ppp-2.4.5-5.el6.x86_64(yum安裝)
由http://rpm.pbone.net 搜尋找到的
下載路徑:ftp://ftp.pbone.net/mirror/li.nux.ro/download/nux/misc/el6/x86_64/pptpd-1.3.4-1.el6.nux.x86_64.rpm

架設流程
詳細資訊可參考 SJ大的文章

SJ 大的文章
http://blog.toright.com/archives/3260

流浪大的文章
http://yutongchen.blogspot.tw/2012/01/centos-vpn.html

Vixual 大的文章
http://www.vixual.net/blog/archives/32

prosper 大的自問自答
http://segmentfault.com/q/1010000000307769
towns也出現相同問題
1. localip應該寫外網的IP => 不是這個問題
2. 路由上做一個PPTP的NAT穿透 ==> 不是這個問題
3. 是logwtmp版本與pptpd版本不一致造成,將pptp.conf中的logwtmp mark掉,就正常了

資料來源:李大仁大的blog
http://www.lidaren.com/archives/1229


94. Linux FS求援注意事項
1. 要求援32bit系統,必需使用32bit 的Linux Rescue模式


95. Avahi 用途
towns因有一台CentOS server一直出現 Invalid query packet 這樣的錯誤,而去查了一下資料,剛好看到Pjack大對於Avahi的詳細說明,非常值得參考

Pjack大的blog
http://pjack1981.blogspot.tw/2012/07/avahi.html


96. UI介面的磁碟公用程式

需安裝三個套件
gnome-disk-utility-ui-libs
gnome-disk-utility-libs
gnome-disk-utility


97. Free指令

查看實體、虛擬(swap)使用情形


98. vim操作說明(CentOS 5.3)

1. 使用簡易版:在OS指令列中打入 vi,這時畫面都是黑白色
2. 使用完整版:在OS指令列中打入 vim,這時畫面會出現彩色,色彩可以協助判斷語法是否正確
3. vim 顯示行號:在指令列模式打入 set nu
4. vim 顯示檔案編碼:在指令列模式打入 set fileencoding
5. vim 顯示預設編碼順序:在指令列模式打入 set fileencodings
6. 關於vim設定編碼順序方式

 6.1. 編輯環境設定檔 vim ~/.vimrc
 6.2. 在設定檔中寫入以下設定(==>後面為說明不需打入)
set fileencodings=utf8,big5,gbk,latin1  ==> 依續嘗試編碼開啟檔案
set fileencoding=big5  ==> vi新檔預設編碼
set <C-u>=^U ==> 設定 Ctrl + u
set <C-b>=^B ==> 設定 Ctrl + b
map <C-u> :set fileencoding=utf8 ==> 設定 Ctrl + u 轉為UTF8
map <C-b> :set fileencoding=big5 ==> 設定 Ctrl + b 轉為Big5
 6.3. 存檔

資料來源:Q毛老師的blog
http://blog.xuite.net/smes.pc/blog/32122095

7. 區塊選擇(Visual Block)
原來vim也有這樣的功能 Ctrl + v 就可以以長方型方式選取文字了

資料來源:鳥哥 第十章、vim 程式編輯器

8. 換行符號取代

在vi指令列打入 %s/\n//g

資料來源:老外大blog
http://lawaymayaw.blogspot.tw/2009/11/misc-vim.html

9. vimrc 檔案中的設定,如何 mark 掉

在這個檔案中不能使用 # ,要使用 "

10. 刪除、複製、貼上
p, P     p 為將已複製的資料在游標下一列貼上,P 則為貼在游標上一列!
yy     複製游標所在的那一列
nyy     n 為數字。複製游標所在的向下 n 列,例如 20yy 則是複製 20 列
dd     刪除游標所在的那一整列
ndd     n 為數字。刪除游標所在的向下 n 列,例如 20dd 則是刪除 20 列
u    復原前一個動作。
U    復原所有動作。
.     重複前一個動作。

參考資料:
有心故我在
https://www.cnblogs.com/youxin/archive/2013/04/08/3007220.html

TU大
http://qbsuranalang.blogspot.com/2015/01/vim.html 

鳥哥 - vim程式編輯器
http://linux.vbird.org/linux_basic/0310vi.php


99. SSH無法登入的問題

SSH無法登入的問題,可能是key檔被改過
處理方式:
1. 刪除 /etc/ssh/*key*,
2. 重新啟動 SSH,service sshd restart
3. 再重新登入

資料來源:范老師上課筆記


100. CentOS兩張網路介面卡頻寬合併

這個還蠻有用的,感謝jerry710822

資料來源:iTdownload  jerry710822大的文章
http://download.ithome.com.tw/article/index/id/2354
Jerry大的blog(Jerry大的blog有很多有用的資訊)
http://www.dotblogs.com.tw/jerry710822/Default.aspx

回應
廣告

關鍵字
    沒有新回應!





Powered by Xuite