什么是linux?
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
linux主要特性
1)基本思想
Linux的基本思想有兩點(diǎn):第一,一切都是文件;第二,每個(gè)軟件都有確定的用途。其中第一條詳細(xì)來講就是系統(tǒng)中的所有都?xì)w結(jié)為一個(gè)文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對(duì)于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類型的文件。至于說Linux是基于Unix的,很大程度上也是因?yàn)檫@兩者的基本思想十分相近。
2)完全免費(fèi)
Linux是一款免費(fèi)的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來自全世界的無數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對(duì)其進(jìn)行改變,這讓Linux吸收了無數(shù)程序員的精華,不斷壯大。
3)完全兼容POSIX1.0標(biāo)準(zhǔn)
這使得可以在Linux下通過相應(yīng)的模擬器運(yùn)行常見的DOS、Windows的程序。這為用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。許多用戶在考慮使用Linux時(shí),就想到以前在Windows下常見的程序是否能正常運(yùn)行,這一點(diǎn)就消除了他們的疑慮。
4)多用戶、多任務(wù)
Linux支持多用戶,各個(gè)用戶對(duì)于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。多任務(wù)則是現(xiàn)在電腦最主要的一個(gè)特點(diǎn),Linux可以使多個(gè)程序同時(shí)并獨(dú)立地運(yùn)行。
5)良好的界面
Linux同時(shí)具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應(yīng)的指令來進(jìn)行操作。它同時(shí)也提供了類似Windows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標(biāo)對(duì)其進(jìn)行操作。在X-Window環(huán)境中就和在Windows中相似,可以說是一個(gè)Linux版的Windows。
6)支持多種平臺(tái)
Linux可以運(yùn)行在多種硬件平臺(tái)上,如具有x86、680x0、SPARC、Alpha等處理器的平臺(tái)。此外Linux還是一種嵌入式操作系統(tǒng),可以運(yùn)行在掌上電腦、機(jī)頂盒或游戲機(jī)上。2001年1月份發(fā)布的Linux 2.4版內(nèi)核已經(jīng)能夠完全支持Intel 64位芯片架構(gòu)。同時(shí)Linux也支持多處理器技術(shù)。多個(gè)處理器同時(shí)工作,使系統(tǒng)性能大大提高。
Linux命令匯總
一、find命令
作用:查找文件
?。踨oot@server ~]# find / -name elasticsearch
/var/log/elasticsearch
/var/run/elasticsearch
/var/lock/subsys/elasticsearch
/var/lib/elasticsearch
/var/lib/elasticsearch/elasticsearch
/usr/share/elasticsearch
/usr/share/elasticsearch/bin/elasticsearch
/etc/rc.d/init.d/elasticsearch
/etc/elasticsearch
/etc/sysconfig/elasticsearch
/opt/kibana/src/plugins/elasticsearch
/opt/kibana/node_modules/elasticsearch
二、tar 打包壓縮與解壓命令
[root@template ~]# cd /tmp
#進(jìn)入目錄打包文件
[root@template tmp]# tar czvf passwd.tar.gz passwd
passwd
#指定解壓目錄
?。踨oot@template tmp]# tar xzvf passwd.tar.gz -C /tmp
passwd
?。踨oot@template tmp]# ll
total 8
-rw-r--r--。 1 root root 1138 Apr 16 04:12 passwd
-rw-r--r--。 1 root root 618 Apr 16 04:13 passwd.tar.gz
用腳本對(duì)文件進(jìn)行打包
?。踨oot@template tmp]# ll
總用量 8
drwxr-xr-x 2 root root 4096 4月 28 18:07 nulige
-rw-r--r-- 1 root root 75 4月 28 18:24 tar_backup.sh
?。踨oot@template tmp]# sh tar_backup.sh
ok
?。踨oot@template tmp]# ll
總用量 12
drwxr-xr-x 2 root root 4096 4月 28 18:07 nulige
-rw-r--r-- 1 root root 190 4月 28 18:24 nulige.tar.gz
-rw-r--r-- 1 root root 75 4月 28 18:24 tar_backup.sh
?。踨oot@template tmp]# cat tar_backup.sh
#!/bin/sbin
cd /tmp
tar zcf nulige.tar.gz 。/nulige
[ $? -eq 0 ] && echo ok
三、grep命令
示例:過濾出帶有/sbin/nologin的內(nèi)容
[root@template tmp]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
四、stat命令
作用:用于查看文件的具體存儲(chǔ)信息和時(shí)間
?。踨oot@template tmp]# stat passwd
File: ‘passwd’
Size: 1138 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 102426465 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-04-16 04:14:47.442943634 +0800
Modify: 2017-04-16 04:12:48.000000000 +0800
Change: 2017-04-16 04:14:47.442943634 +0800
Birth: -
五、cut命令
作用:用來按列提取文本字條
-f 參數(shù):用來設(shè)置要看的列數(shù)
-d參數(shù):設(shè)置間隔符號(hào)
示例:提取出passwd文件中的用戶名
?。踨oot@template tmp]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
operator
games
ftp
nobody
avahi-autoipd
systemd-bus-proxy
systemd-network
dbus
polkitd
abrt
tss
postfix
sshd
mysql
六、head命令
作用:用來查看文本文檔
示例:顯示前10行
?。踨oot@template tmp]# head -n 10 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
七、history
作用:查看歷史記錄命令
?。踨oot@tempate tmp]# history
1 ip a
2 shutdown -h now
3 ip addr
4 systemctl restart network
5 ip addr
清空歷史記錄
[root@template tmp]# history -c
八、sosreport
sosreport命令用于收集系統(tǒng)配置并診斷信息后輸出結(jié)論文檔,格式為:“sosreport”。
當(dāng)咱們的Linux系統(tǒng)出現(xiàn)故障需要聯(lián)系紅帽廠商或其他技術(shù)支持時(shí),大多數(shù)時(shí)候都要先使用這個(gè)SOS功能來簡(jiǎn)單收集計(jì)算機(jī)的狀態(tài)和配置信息,以便讓技術(shù)支持公司能夠通過遠(yuǎn)程就解決了一些小問題,又或者讓他們能對(duì)復(fù)雜問題能提前有些了解:
[root@template tmp]# sosreport
sosreport (version 3.2)
This command will collect diagnostic and configuration information from
this CentOS Linux system and installed applications.
An archive containing the collected information will be generated in
/var/tmp and may be provided to a CentOS support representative.
Any information provided to CentOS will be treated in accordance with
the published support policies at:
https://www.centos.org/
The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.
No changes will be made to system configuration.
Press ENTER to continue, or CTRL-C to quit. #此處敲擊回車來確認(rèn)收集信息
Please enter your first initial and last name [template]: #此處敲擊回車,來確認(rèn)主機(jī)名稱
Please enter the case id that you are generating this report for []: #此處敲擊回車,生成報(bào)告
Setting up archive 。。。
Setting up plugins 。。。
Running plugins. Please wait 。。。
Running 77/77: yum.。。
Creating compressed archive.。。
Your sosreport has been generated and saved in:
/var/tmp/sosreport-template-20170416043251.tar.xz
The checksum is: 9f5d08f6373e35985213ab8001f7a078
Please send this file to your support representative.
#此壓縮包文件和這段校驗(yàn)值就是要發(fā)送給對(duì)方的內(nèi)容。
#查看生成的報(bào)告
?。踨oot@template tmp]# ll /var/tmp/
-rw-------。 1 root root 5543652 Apr 16 04:34 sosreport-template-20170416043251.tar.xz
九、free命令
作用:顯示當(dāng)前系統(tǒng)中內(nèi)存的使用量信息
?。踨oot@linux~]# free -h
總計(jì)內(nèi)存量已用量可用量進(jìn)程共享的內(nèi)存量磁盤緩存的內(nèi)存量緩存的內(nèi)存量
totalusedfreesharedbufferscached
Mem:1.8G1.3G542M9.8M1.6M413M
-/+ buffers/cache: 869M957M
Swap:2.0G0B2.0G
十、w和who命令
作用:查看當(dāng)前登入主機(jī)的用戶信息
[root@template tmp]# w
04:40:12 up 1:04, 2 users, load average: 0.00, 0.12, 0.12
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 03:36 55:00 0.15s 0.15s -bash
root pts/0 192.168.30.1 03:46 4.00s 0.67s 0.02s w
?。踨oot@template tmp]# who
root tty1 2017-04-16 03:36
root pts/0 2017-04-16 03:46 (192.168.30.1)
十一、uptime命令
作用:用于查看系統(tǒng)的負(fù)載信息,
格式為:“uptime”。
這個(gè)命令真的很棒,它可以為您顯示當(dāng)前系統(tǒng)時(shí)間、系統(tǒng)已運(yùn)行時(shí)間、當(dāng)前在線用戶以及平均負(fù)載值等信息數(shù)據(jù)。平均負(fù)載值指的是最近1分鐘、5分鐘、15分鐘的系統(tǒng)壓力情況,負(fù)載值越低越好,盡量不要長(zhǎng)期超過1。另外您還可以結(jié)合搭配用“watch -n 1 uptime”命令來每秒刷新一次來獲得當(dāng)前的系統(tǒng)負(fù)載情況。
[root@linux~]# uptime
22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18
十二、查看系統(tǒng)詳細(xì)版本和內(nèi)核版本
[root@template tmp]# uname -a
Linux template 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@template tmp]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
十三、pidof命令
作用:查看指定服務(wù)的進(jìn)程pid值
[root@template tmp]# pidof sshd
2956 1538
十四、top命令
作用:用于動(dòng)態(tài)的監(jiān)視進(jìn)程活動(dòng)與系統(tǒng)負(fù)載等信息
功能類似于windows系統(tǒng)中的任務(wù)管理器
前面的五行為系統(tǒng)整體的統(tǒng)計(jì)信息,下面咱們來逐行的講解:
第1行:系統(tǒng)時(shí)間,運(yùn)行時(shí)間,登錄用戶數(shù),系統(tǒng)負(fù)載(分別為1分鐘、5分鐘、15分鐘的平均值)。第2行:進(jìn)程總數(shù),運(yùn)行中的,睡眠中的,停止的,僵死的。第3行:用戶占用資源,系統(tǒng)內(nèi)核占用資源,改變過優(yōu)先級(jí)的進(jìn)程,空閑的資源,等待輸入輸出的時(shí)間。此行數(shù)據(jù)均為CPU數(shù)據(jù)并以百分比格式顯示,例如“99.2 id”意味著有99.2%的CPU資源正在空閑中。第4行:物理內(nèi)存總量,使用量,空閑量,作為內(nèi)核緩存的內(nèi)存量。第5行:虛擬內(nèi)存總量,使用量,空閑量,已被提前加載的內(nèi)存數(shù)據(jù)。
十五、ps命令
作用:用于查看系統(tǒng)中的進(jìn)程狀態(tài)
參數(shù)作用
-a顯示所有的進(jìn)程(包括其他用戶的)
-u用戶以及其他詳細(xì)信息
-x顯示沒有控制終端的進(jìn)程
Linux系統(tǒng)中時(shí)刻運(yùn)行著許許多多的進(jìn)程,如果能夠合理的管理它們,絕對(duì)有益于系統(tǒng)的性能優(yōu)化,Linux系統(tǒng)中進(jìn)程最常見的5種不同的狀態(tài)是運(yùn)行、中斷、不可中斷、僵死與停止,它們的特性分別是:
R(運(yùn)行):正在運(yùn)行或在運(yùn)行隊(duì)列中等待。S(中斷):休眠中, 在等待某個(gè)條件的形成或接收到信號(hào)。D(不可中斷):收到信號(hào)不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中斷發(fā)生。Z:(僵死):進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放。T:(停止):進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號(hào)后停止運(yùn)行。
當(dāng)執(zhí)行“ps aux”命令后通常會(huì)看到下面格式的進(jìn)程狀態(tài),表格中只是列舉了部分輸出值,而且正常的輸出值中不包括中文注釋部分:
十六、date命令
date命令用于顯示及設(shè)置系統(tǒng)的時(shí)間或日期,格式為:“date [選項(xiàng)] [+指定的格式]”。
強(qiáng)大的date命令只需鍵入以“+”號(hào)開頭的參數(shù)即可按照指定格式來輸出系統(tǒng)的時(shí)間或日期,這樣日常工作時(shí)咱們便可以將打包數(shù)據(jù)的備份命令與指定格式輸出的時(shí)間信息結(jié)合到一起,使得咱們可以更加便捷的區(qū)分每個(gè)文件的備份時(shí)間啦,date命令常見的格式如下:
十七、dd命令
作用:用于指定大小的拷貝文件或指定轉(zhuǎn)換文件
dd命令:是個(gè)比較重要且具有特色的一個(gè)命令,它能夠讓用戶指定數(shù)據(jù)塊的大小和個(gè)數(shù)來復(fù)制一個(gè)文件的內(nèi)容,當(dāng)然如果您愿意的話還可以在復(fù)制過程中轉(zhuǎn)換其中的數(shù)據(jù)。Linux系統(tǒng)中有一個(gè)叫做/dev/zero的設(shè)備文件,每次講課解釋起來都感覺有點(diǎn)哲學(xué)理論的色彩,因?yàn)樗粫?huì)占用您的系統(tǒng)存儲(chǔ)空間,但里面卻可以保存有無窮無盡的數(shù)據(jù),一般用來搭配dd命令來生成出來一個(gè)指定大小的文件是再好不過的了。
參數(shù)作用
if輸入的文件名稱。
of輸出的文件名稱。
bs設(shè)置每個(gè)“塊”的大小。
count設(shè)置要拷貝“塊”的個(gè)數(shù)。
?。踨oot@linux ~]# dd if=/dev/zero of=560_file count=1 bs=560M
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
#從光驅(qū)中復(fù)制iso鏡像文件到服務(wù)器指定目錄(注意:光驅(qū)插入Centos7.2.iso文件)
#從/dev/cdrom 中復(fù)制鏡像文件到/opt目錄中
[root@template opt]# dd if=/dev/cdrom of=/opt/CentOS-7.2.iso
記錄了8456192+0 的讀入
記錄了8456192+0 的寫出
4329570304字節(jié)(4.3 GB)已復(fù)制,155.866 秒,27.8 MB/秒
十八、生產(chǎn)常用命令
1.刪除0字節(jié)文件
find -type f -size 0 -exec rm -rf {} \;
2.查看進(jìn)程
按內(nèi)存從大到小排列
ps -e -o “%C : %p : %z : %a”|sort -k5 -nr
3.按cpu利用率從大到小排列
ps -e -o “%C : %p : %z : %a”|sort -nr
4.打印說cache里的URL
grep -r -a jpg /data/cache/* | strings | grep “http:” | awk -F’http:’ ‘{print “http:”$2;}’
5.查看http的并發(fā)請(qǐng)求數(shù)及其TCP連接狀態(tài):
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
6.
sed -i ‘/Root/s/no/yes/’ /etc/ssh/sshd_config sed在這個(gè)文里Root的一行,匹配Root一行,將no替換成yes.
7.1.如何殺掉mysql進(jìn)程:
ps aux|grep mysql|grep -v grep|awk ‘{print $2}’|xargs kill -9
?。◤闹辛私獾絘wk的用途)
pgrep mysql |xargs kill -9
killall -TERM mysqld
kill -9 `cat /usr/local/apache2/logs/httpd.pid`
試試查殺進(jìn)程PID
8.顯示運(yùn)行3級(jí)別開啟的服務(wù):
ls /etc/rc3.d/S* |cut -c 15-
(從中了解到cut的用途,截取數(shù)據(jù))
9.如何在編寫SHELL顯示多個(gè)信息,用EOF
cat 《《 EOF +--------------------------------------------------------------+ | === Welcome to Tunoff services === | +--------------------------------------------------------------+ EOF
10. for 的巧用(如給mysql建軟鏈接)
cd /usr/local/mysql/bin for i in * do ln /usr/local/mysql/bin/$i /usr/bin/$i done
11. 取IP地址:
ifconfig eth0|sed -n ‘2p’|awk ‘{print $2}’|cut -c 6-30 或者: ifconfig eth0 |grep “inet addr:” |awk ‘{print $2}’|cut -c 6- 或者 ifconfig | grep ‘inet addr:’| grep -v ‘127.0.0.1’ | cut -d: -f2 | awk ‘{ print $1}’ 或者: ifconfig eth0 | sed -n ‘/inet /{s/.*addr://;s/ .*//;p}’
Perl實(shí)現(xiàn)獲取IP的方法:
ifconfig -a | perl -ne ‘if ( m/^\s*inet (?:addr:)?([\d.]+).*?cast/ ) { print qq($1\n); exit 0; }’
12.內(nèi)存的大?。?free -m |grep “Mem” | awk ‘{print $2}’
13. netstat -an -t | grep “:80” | grep ESTABLISHED | awk ‘{printf “%s %s\n”,$5,$6}’ | sort
14.查看Apache的并發(fā)請(qǐng)求數(shù)及其TCP連接狀態(tài): netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
15.因?yàn)橥乱y(tǒng)計(jì)一下服務(wù)器下面所有的jpg的文件的大小,寫了個(gè)shell給他來統(tǒng)計(jì)。原來用xargs實(shí)現(xiàn),但他一次處理一部分,搞的有多個(gè)總和。。。。,下面的命令就能解決啦。
find / -name *.jpg -exec wc -c {} \;|awk ‘{print $1}’|awk ‘{a+=$1}END{print a}’
CPU的數(shù)量(多核算多個(gè)CPU, cat /proc/cpuinfo |grep -c processor )越多,系統(tǒng)負(fù)載越低,每秒能處理的請(qǐng)求數(shù)也越多。
--------------------------------------------------------------------------------------------------------------------
16. CPU負(fù)載 # cat /proc/loadavg 檢查前三個(gè)輸出值是否超過了系統(tǒng)邏輯CPU的4倍。
18. CPU負(fù)載 #mpstat 1 1 檢查%idle是否過低(比如小于5%)
19. 內(nèi)存空間 # free 檢查free值是否過低 也可以用 # cat /proc/meminfo
20. swap空間 # free 檢查swap used值是否過高 如果swap used值過高,進(jìn)一步檢查swap動(dòng)作是否頻繁: # vmstat 1 5 觀察si和so值是否較大
21. 磁盤空間 # df -h 檢查是否有分區(qū)使用率(Use%)過高(比如超過90%) 如發(fā)現(xiàn)某個(gè)分區(qū)空間接近用盡,可以進(jìn)入該分區(qū)的掛載點(diǎn),用以下命令找出占用空間最多的文件或目錄: # du -cks * | sort -rn | head -n 10
22. 磁盤I/O負(fù)載 # iostat -x 1 2 檢查I/O使用率(%util)是否超過100%
23. 網(wǎng)絡(luò)負(fù)載 # sar -n DEV 檢查網(wǎng)絡(luò)流量(rxbyt/s, txbyt/s)是否過高
24. 網(wǎng)絡(luò)錯(cuò)誤 # netstat -i 檢查是否有網(wǎng)絡(luò)錯(cuò)誤(drop fifo colls carrier) 也可以用命令:# cat /proc/net/dev
25. 網(wǎng)絡(luò)連接數(shù)目 # netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n
26. 進(jìn)程總數(shù) # ps aux | wc -l 檢查進(jìn)程個(gè)數(shù)是否正常 (比如超過250)
27. 可運(yùn)行進(jìn)程數(shù)目 # vmwtat 1 5 列給出的是可運(yùn)行進(jìn)程的數(shù)目,檢查其是否超過系統(tǒng)邏輯CPU的4倍
28. 進(jìn)程 # top -id 1 觀察是否有異常進(jìn)程出現(xiàn)
29. 網(wǎng)絡(luò)狀態(tài) 檢查DNS, 網(wǎng)關(guān)等是否可以正常連通
ping traceroute nslookup dig
30. 用戶 # who | wc -l 檢查登錄用戶是否過多 (比如超過50個(gè)) 也可以用命令:# uptime
31. 系統(tǒng)日志 # cat /var/log/rflogview/*errors
檢查是否有異常錯(cuò)誤記錄 也可以搜尋一些異常關(guān)鍵字,例如:
# grep -i error /var/log/messages # grep -i fail /var/log/messages
# egrep -i ‘error|warn’ /var/log/messages 查看系統(tǒng)異常 32 核心日志
# dmesg 檢查是否有異常錯(cuò)誤記錄
33. 系統(tǒng)時(shí)間 # date 檢查系統(tǒng)時(shí)間是否正確
當(dāng)前時(shí)間: date +“%Y-%m-%d %H:%M:%S”
34. 打開文件數(shù)目 # lsof | wc -l 檢查打開文件總數(shù)是否過多
35. 日志 # logwatch ?print 配置/etc/log.d/logwatch.conf,將 Mailto 設(shè)置為自己的email 地址,啟動(dòng)mail服務(wù) (sendmail或者postfix),這樣就可以每天收到日志報(bào)告了。
缺省logwatch只報(bào)告昨天的日志,可以用# logwatch ?print ?range all 獲得所有的日志分析結(jié)果。
可以用# logwatch ?print ?detail high 獲得更具體的日志分析結(jié)果(而不僅僅是出錯(cuò)日志)。
36.殺掉80端口相關(guān)的進(jìn)程 lsof -i :80|grep -v “PID”|awk ‘{print “kill -9”,$2}’|sh
37.清除僵死進(jìn)程。 ps -eal | awk ‘{ if ($2 == “Z”) {print $4}}’ | kill -9
38.tcpdump 抓包 ,用來防止80端口被人攻擊時(shí)可以分析數(shù)據(jù)
# tcpdump -c 10000 -i eth0 -n dst port 80 》 /root/pkts
39.然后檢查IP的重復(fù)數(shù) 并從小到大排序 注意 “-t\ +0″ 中間是兩個(gè)空格
# less pkts | awk {‘printf $3“\n”’} | cut -d. -f 1-4 | sort | uniq -c | awk {‘printf $1“ ”$2“\n”’} | sort -n -t\ +0
40.查看有多少個(gè)活動(dòng)的php-cgi進(jìn)程
netstat -anp | grep php-cgi | grep ^tcp | wc -l
41.利用iptables對(duì)應(yīng)簡(jiǎn)單攻擊
netstat -an | grep -v LISTEN | awk ‘{print $5}’ |grep -v 127.0.0.1|grep -v 本機(jī)ip|sed “s/::ffff://g”|awk ‘BEGIN { FS=”:” } { Num[$1]++ } END { for(i in Num) if(Num》8) { print i} }’ |grep ‘[0-9]\{1,3\}\。[0-9]\{1,3\}\。[0-9]\{1,3\}\。[0-9]\{1,3\}’| xargs -i[] iptables -I INPUT -s [] -j DROP
Num》8部分設(shè)定值為閥值,這條句子會(huì)自動(dòng)將netstat -an 中查到的來自同一IP的超過一定量的連接的列入禁止范圍。 基中本機(jī)ip改成你的服務(wù)器的ip地址
42. 怎樣知道某個(gè)進(jìn)程在哪個(gè)CPU上運(yùn)行?
# ps -eo pid,args,psr
43. 查看硬件制造商
dmidecode -s system-product-name
44.perl如何編譯成字節(jié)碼,這樣在處理復(fù)雜項(xiàng)目的時(shí)候會(huì)更快一點(diǎn)?
perlcc -B -o webseek webseek.pl
45. 統(tǒng)計(jì)var目錄下文件以M為大小,以列表形式列出來。
find /var -type f | xargs ls -s | sort -rn | awk ‘{size=$1/1024; printf(“%dMb %s\n”, size,$2);}’ | head
查找var目錄下文件大于100M的文件,并統(tǒng)計(jì)文件的個(gè)數(shù)
find /var -size +100M -type f | tee file_list | wc -l
46. sed 查找并替換內(nèi)容
sed -i “s/varnish/LTCache/g” `grep “Via” -rl /usr/local/src/varnish-2.0.4`
sed -i “s/X-Varnish/X-LTCache/g” `grep “X-Varnish” -rl /usr/local/src/varnish-2.0.4`
47. 查看服務(wù)器制造商
dmidecode -s system-product-name
48. wget 模擬user-agent抓取網(wǎng)頁(yè)
wget -m -e robots=off -U “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6” http://www.example.com/
50. 統(tǒng)計(jì)目錄下文件的大?。ò碝打印顯示)
du $1 –max-depth=1 | sort -n|awk ‘{printf “%7.2fM —-》 %s\n”,$1/1024,$2}’|sed ‘s:/.*/\([^/]\{1,\}\)$:\1:g’
51.關(guān)于CND實(shí)施幾個(gè)相關(guān)的統(tǒng)計(jì)
統(tǒng)計(jì)一個(gè)目錄中的目錄個(gè)數(shù)
ls -l | awk ‘/^d/’ | wc -l
統(tǒng)計(jì)一個(gè)目錄中的文件個(gè)數(shù)
ls -l | awk ‘/^-/’ | wc -l
統(tǒng)計(jì)一個(gè)目錄中的全部文件數(shù)
find 。/ -type f -print | wc -l
統(tǒng)計(jì)一個(gè)目錄中的全部子目錄數(shù)
find 。/ -type d -print | wc -l
統(tǒng)計(jì)某類文件的大?。?/p>
find 。/ -name “*.jpg” -exec wc -c {} \;|awk ‘{print $1}’|awk ‘{a+=$1}END{print a}’
53. 查找占用磁盤IO最多的進(jìn)程
wget -c http://linux.web.psi.ch/dist/scientific/5/gfa/all/dstat-0.6.7-1.rf.noarch.rpm
dstat -M topio -d -M topbio
54. 去掉第一列(如行號(hào)代碼)
awk ‘{for(i=2;i《=NF;i++) if(i!=NF){printf $i“ ”}else{print $i} }‘ list
55.輸出256中色彩
for i in {0..255}; do echo -e “\e[38;05;${i}m${i}”; done | column -c 80 -s ’ ‘; echo -e “\e[m”
56.查看機(jī)器支持內(nèi)存 機(jī)器插內(nèi)存情況: dmidecode |grep -P “Maximum\s+Capacity”
機(jī)器最大支持內(nèi)存: dmidecode |grep -P “Maximum\s+Capacity”
57.查看PHP-CGI占用的內(nèi)存總數(shù):
total=0; for i in `ps -C php-cgi -o rss=`; do total=$(($total+$i)); done; echo “PHP-CGI Memory usage: $total kb”
1、find用法
?。踨oot@template tmp]# find / -type f -name “text.txt”
/tmp/text.txt
/root/text.txt#找到文件后,交給管道刪除[root@template tmp]# find / -type f -name “text.txt” | xargs rm -f
面試題:刪除一個(gè)目錄下的所有文件,但保留一個(gè)指定文件(保留file10)
[root@template tmp]# touch file{1..10}
?。踨oot@template tmp]# ll
總用量 0
-rw-r--r-- 1 root root 0 5月 20 10:15 file1
-rw-r--r-- 1 root root 0 5月 20 10:11 file10
-rw-r--r-- 1 root root 0 5月 20 10:15 file2
-rw-r--r-- 1 root root 0 5月 20 10:15 file3
-rw-r--r-- 1 root root 0 5月 20 10:15 file4
-rw-r--r-- 1 root root 0 5月 20 10:15 file5
-rw-r--r-- 1 root root 0 5月 20 10:15 file6
-rw-r--r-- 1 root root 0 5月 20 10:15 file7
-rw-r--r-- 1 root root 0 5月 20 10:15 file8
-rw-r--r-- 1 root root 0 5月 20 10:15 file9
#方法一:
[root@template tmp]# find /tmp -type f ! -name “file10”|xargs rm -f
方法二:
[root@template tmp]# find /tmp -type f ! -name “file10” -exec rm -f {} \;#find找到的內(nèi)容,-exec是參數(shù),{}:要查找的目標(biāo),一般可以不寫 \ :反斜杠轉(zhuǎn)義字符 !作用就是:取反
2、rm remove 刪除文件或者目錄
-f 強(qiáng)制
-r 刪除目錄
注意:生產(chǎn)場(chǎng)景盡量不要使用rm,如果非要用,一定要先cp備份
?。踨oot@template tmp]# ll
總用量 0
-rw-r--r-- 1 root root 0 5月 20 10:06 text.txt
?。踨oot@template tmp]# rm -f text.txt
?。踨oot@template tmp]# ll
總用量 0
3、echo用法
打印輸出內(nèi)容,配合“》或》》” 可以為文件覆蓋及追加內(nèi)容
“》” 意思是重定向,會(huì)清除文件里所有以前數(shù)據(jù)
“》》” 為追加內(nèi)容
4、cat 查看文件內(nèi)容
特殊用法:增加多行內(nèi)容
?。踨oot@template tmp]# cat 》》/tmp/nulige.txt 《《EOF
》 I am studying linux.
》 EOF
[root@template tmp]# ll
總用量 4
-rw-r--r-- 1 root root 0 5月 20 10:11 file10
-rw-r--r-- 1 root root 21 5月 20 10:33 nulige.txt
?。踨oot@template tmp]# cat nulige.txt
I am studying linux.
cat高級(jí)用法示例:
1、過濾出除liya的字母
?。踨oot@template tmp]# cat text.txt
test
limen
liya
方法一:
[root@template tmp]# cat text.txt|grep -v “l(fā)iya” text.txt
test
limen
方法二:
?。踨oot@template tmp]# head -2 text.txt
test
limen
6、sed命令
作用:過濾:sed -n ’/過濾的內(nèi)容/處理的命令‘ 文件
-n 取消sed 的默認(rèn)輸出
-p print打印
-d delete刪除
-i 改變文件內(nèi)容
1、過濾出除liya的字母
[root@template tmp]# cat text.txt
test
limen
liya
方法一:[root@template tmp]# grep -v “l(fā)iya” text.txt
test
limen方法二:
?。踨oot@template tmp]# sed -e /^tmp/d text.txt
test
limen
liya
方法三:
[root@template tmp]# sed -e /^liya/d text.txt
test
limen
方法四:
?。踨oot@template tmp]# sed /liya/d text.txt
test
limen
5、cp 命令
語法:
cp 源文件 目錄文件(cp 的得要參數(shù)apr)
參數(shù):
-a :相當(dāng)于-pdr
-d :若源文件為鏈接文件(link file),則復(fù)制鏈接文件屬性而非檔案本身
-f :強(qiáng)制,右目錄檔案已經(jīng)存在且無法開啟,則移除后再嘗試
-i: 若目標(biāo)文件已經(jīng)存在時(shí),覆蓋時(shí)會(huì)先詢問
-p:連同檔案的屬性一起復(fù)制過去,而非使用默認(rèn)屬性
-r:遞歸,用于復(fù)制目錄
-u:若目標(biāo)文件存在,則目標(biāo)文件比源文件舊時(shí)才復(fù)制
提示:如果源文件是多個(gè),那么目標(biāo)文件在最后,且是目錄
6、date----顯示、修改系統(tǒng)時(shí)間
date [options][+format][date]
$ date -s 06/09/2004 修改日期(按月日年格式)
$ date -s 13:56:00 修改時(shí)間(按時(shí)分秒格式)
$ date -r test 顯示test文件最后一次的修改時(shí)間
$ date +’%Y-%m-%d‘ 以yyyy-mm-dd格式顯示日期,其它格式請(qǐng)參考幫助
$ clock -r 查詢BIOS時(shí)間
$ clock -w 把修改后的時(shí)間寫回BIOS
評(píng)論
查看更多