文章目錄
- File Stat – Display Information About File
1.遞迴建立目錄,並且指定許可權值
2.建立檔案,並且指定許可權值
3.ls列出目錄時,一定要列出的資料資訊
最基本的顯示標準: 以—full-time 全格式的形式顯示 ,帶檔案大小 –h 【單位為MB,或者是GB,而非位元組】的方式來顯示(預設是位元組), 標識檔案類型,檔案的許可權,檔案的所屬使用者以及使用者組,並且排序:
按修改時間順序顯示:
ll –sh -t –full-time
-h 以MB,KB,GB的形式顯示
-t 以修改的時間來排序
按檔案名稱來進行排序
預設,即按照檔案名稱來進行排序
按檔案大小來進行排序【不包括目錄】
ll –sh –S –-full-time 【加上-r,如 ll –sth –Sr –-full-time 則代表反向來進行排序】
預設的排序方式為檔案名稱(字母順序), 以檔案名稱,檔案大小,檔案類型(目錄,檔案),修改時間來排序【最好先按類型排序,再根據時間或者是檔案名稱】
排序優先順序: 先以檔案類型排序,再以大小【僅僅為檔案,而不包括目錄形式】來排序
4. 快遞的查看某一個目錄或者是檔案的相關資訊:檔案類型,路徑,許可權值
5. 顯示行號查看較小檔案
顯示行號查看較大的文字檔【翻頁查看】 ,翻頁指定查看第幾頁,以及頁數,當前頁,每一頁顯示多少條記錄
6. 選取檔案部分查看【行數範圍】—>比如說大檔案的資料查看
有這個的幾種情況:
1. 從行首的40行到未尾
2. 從行首的40行到行尾的前50行
3. 擷取檔案中第30到到100行的資料
第一種使用,head,tail來完成: head –n 100 ~/.bashrc |tail –n 30
第二種直接使用sed來完成: nl ~/.bashrc |sed –n ‘30,100p’
解釋說明:
sed –n n,--quiet,--silent取消預設輸出, 不然對於nl ~/.bashrc |sed –n ‘30,100p’,它會全部輸出 .bashrc 。 預設情況下,在一般的SED用法中,所有來自於STDIN的資料都會顯示在螢幕上,如果加上-n參數,則只有經過sed特殊處理的資料才會顯示。
7. locate 可以萬用字元匹配尋找,同時解決locate不能搜尋即時檔案的問題
即先更新搜尋資料庫,後尋找
以root更新執行updatedb命令 更新,進行再使用locate進行搜尋尋找
--- 如何快速尋找檔案,進而使用列出檔案的相關permission值
File Stat – Display Information About File
stat /home/ramesh
stat `locate detail.phtml`|cat -n
ll --full-time -th `locate detail.phtml`|cat -n
8. 當系統管理員清空了/etc/issue檔案,如何知道當前系統的版本,版本號碼,核心號
ll -sh --full-time /etc/ |grep -i 'release'
如果有一個廠商商標-release檔案,即為詳細資料
lsb_release -a
如果是查看核心
uname -a
cat /proc/version
9. 讓grep 支援萬用字元過濾
10. 如果要螢幕的內容輸出到文字檔中,管道命令的應用[特別是stdout與正確,錯誤輸出]
11. grep 對netstat,ps等過濾時,會將head頭部的說明也去掉,如何讓console即輸出head頭資訊,同時又輸出過濾的資訊
12. 如果快速的尋找某一個服務的日誌資訊
如如何快速的知道httpd,mysql,corntab的記錄檔位置
查看syslog.conf
13.顯示檔案時,作業系統的不一樣導致 換行,斷行符號符不一樣,如何查看斷行符號符等
sudo cat access_etam.com.cn-check.log |egrep -i '.+\.html.+HTTP.+[[:space:]]?\b503\b[[:space:]]?.+'
14. 找出當前系統所有可以登入的使用者以及使用者資訊
15. 移出目前的目錄下,各個檔案夾所佔用磁碟的百分比
軟體安裝
1. 如何知道軟體是通過bin, rpm-src, 還是原始碼安裝
日誌上看
如何知道哪些是做了logrotate
以後操作linux ---------> 一切可能去使用 Regex 去尋找檔案
---------先用好原始的命令,再來使用alias---
一個過大的文字檔,比如HTTPD的記錄檔,MYSQL的記錄檔過大,有近2G大,如何快速的讀取部分的資料(行數),當然使用grep,vim,cat肯定是不現實的
如何一次性殺死所有的進程,如現系統中有近15個httpd進程,不可能使用kill -9 PID 一個一個的殺,如何一次性全部殺死進程
killall 進程名
20.在不同的伺服器中以最大的速度來傳輸大資料檔案? 即大資料檔案的網路傳輸?
HTTP日誌的分析以及解決
1. 希望得到檔案檔案中所有的404頁面,除spilder,crawler等
2. 希望得到檔案中所有503,504,502錯誤的頁面,以及IP地址
gawk ‘BEGIN{FS=“,”; OFS=“--”} {print $1,$2,$3}’ data1
cat access_etam.com.cn-check.log|egrep -iv '(Spider|crawler|bot)'|egrep -i 'http://[-a-z0-9R:@&?=+,.!/~+%$]+\.(html|htm)'|gawk 'BEGIN{FS=" ";OFS="-"} {if ($9=="502" || $9="504") print $4,$9,$7}'|head -n 20
gawk ‘BEGIN{FS=“,”} $2 ~ /ˆdata2/{print $0}’ data1
cat access_etam.com.cn-check.log|egrep -iv '(Spider|crawler|bot)'|egrep -i 'http://[-a-z0-9R:@&?=+,.!/~+%$]+\.(html|htm)'|gawk 'BEGIN{FS=" ";OFS="----"} $7 ~/(html|htm)$/ {if ($9=="502" || $9="504") print $4,$9,$7}'
cat access_etam.com.cn-check.log|egrep -iv '(Spider|crawler|bot)'|egrep -i 'http://[-a-z0-9R:@&?=+,.!/~+%$]+\.(html|htm)'|gawk 'BEGIN{FS=" ";OFS="----"} $7 ~/(html|htm)$/ {if ($9=="502" || $9="504") print $4,$9,$7}'
1,對於使用了輪換的日誌配置而言,它一般會產生一些壓縮檔,如果在不解壓這些檔案的同時,同時又可以看到這些檔案中的內容
22. 如何知道系統郵件哪些是已經發送,哪些還沒有發送?
如何知道有哪些使用者發郵件給了MTA? 包含了各種使用者?
如何MTA發了什麼的郵件給誰?
23. 當一個終端需要執行很長時間的命令時,使用後台運行來解決,問題是如何來知道後台運行是否有報錯或者是知道它是運行成功的?
24. 對後台執行的管理,將運行程式添加到一個後台執行,以及相關的調用管理?
什麼時候使用後台執行: 比如說你正在複製一個大檔案,有3G,匯入資料庫指令碼,需要1個小時,進行解壓縮或者是壓縮操作,如果不使用後台執行的話,它會一直佔用終端,導致無法繼續執行命令列
後台執行需要考慮的點:
1. 如何保證執行過程中是沒有錯誤的,應該有一個記錄。
2. 必須考慮到 sdtout與sdtin, 如果命令列中有標準的輸入與輸出,它還是會自動的顯示在螢幕中.. 如 tar zxvf 中的v就是輸出可視資訊。
如: tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &
2>&1是什麼含義:
就是將錯誤輸出與正確輸出放置到同一個檔案中,需要使用這種特殊的寫法 2>&1 它也就是代表著寫入同一個檔案中。
關於管道使用說明:
1 代表正確的輸出 find /home testing > list_right 其實它所操作的就是1
2 代表錯誤輸出 find /home –name testing > list_right 2> list_error
當我們僅需要正確的資訊,而不需要錯誤資訊時,就要使用到/dev/null這個垃圾桶了, 可以把/dev/null看作"黑洞". 它非常等價於一個唯寫檔案. 所有寫入它的內容都會永遠丟失. 而嘗試從它那兒讀取內容則什麼也讀不到.
如
rm $badname 2>/dev/null 這樣錯誤資訊[標準錯誤]就要顯示,同時也不會儲存到系統中
如果需要把錯誤輸出與正確輸出放置在同一個記錄檔中,可以使用 2>&1這種特殊的寫法
如果希望將程式執行過程中的error忽視,則可以使用
查看當前的jobs
jobs –l
中止並且刪除某一個作業: kill –9 %作業編號
一台伺服器是多個人操作的,當發現系統有點不穩定時,如何知道別人做了什麼操作?
last [它一般只會讀取當前一個月的lo記錄,一般它的資訊量會比較大], lastlog
硬體資訊以及效能監控
查看電腦或者系統的基本配置資訊
硬體
CPU型號以及大小
[root@localhost ~]# grep "model name" /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
model name : Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
4、查看CPU位元
[root@localhost ~]# getconf LONG_BIT
查看記憶體情況(只能以KB的單位顯示)
[root@localhost ~]# more /proc/meminfo
MemTotal: 3755008 kB
MemFree: 155276 kB
查看記憶體情況(以MB的單位來顯示)
[root@localhost ~]# free –m
查看網卡資訊
[root@localhost ~]# dmesg | grep ‘eth’
系統軟體
1、查看核心
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-164.el5xen #1 SMP Tue Aug 18 16:06:30 EDT 2009 i686 i686 i386 GNU/Linux
2、查看版本
[root@localhost ~]# more /etc/issue
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Kernel \r on an \m
3. 查看系統語系
基本的磁碟資訊
1.擷取當前的存放裝置資訊(包括有品牌,商標,型號等最基本的資訊)
cat /proc/scsi/scsi
或者是硬碟的容量等
如果僅僅是想獲得磁碟的大小: fdisk –l
最好是使用lshw這個軟體來查看,它的資訊會更加全面,當然前提是要先安裝此軟體
lshw -class disk -class storage
轉速以及磁碟的基本讀寫速度
sudo hdparm -tT /dev/sda
查看硬碟或者是磁碟的組織形式: 是LVM,RAID等形式,這種組織形式的容量是多少
硬碟類型: RAID, 基本的硬碟
SCSI還是HDA
硬碟的讀寫速度測試
硬碟
幾塊硬碟
硬碟類型: RAID, 基本的硬碟
硬碟類型:
PV VP PE LV LVM
---------查看PV
pvscan
pvdisplay
vpdisplay
RAID的層級
分區
dmesg –l |egrep –I ‘disk’
參考資料
http://www.cyberciti.biz/faq/find-hard-disk-hardware-specs-on-linux/
http://www.cyberciti.biz/tips/how-fast-is-linux-sata-hard-disk.html
------------
主板:
硬碟可以插入的數量
USB的資料
USB的支援類型
日誌過大的問題要解決
httpd的進程太多的問題也要解決