1. Linux下用vim打開配置文件亂碼,在終端輸入:“LANG=”即可。
2. 查看端口是否被占用:
3. netstat -anp | grep port
? ? netstat -ltn
4. lsof -i:port
5. Shell腳本命令列表:
$# 是傳給腳本的參數(shù)個(gè)數(shù)
$0 是腳本本身的名字
$1 是傳遞給該shell腳本的第一個(gè)參數(shù)
$2 是傳遞給該shell腳本的第二個(gè)參數(shù)
$@ 是傳給腳本的所有參數(shù)的列表
$* 是以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù),與位置變量不同,參數(shù)可超過個(gè)
$$ 是腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào)
$? 是顯示最后命令的退出狀態(tài),0表示沒有錯(cuò)誤,其他表示有錯(cuò)誤
6. find . -type f -name "*.sh" -type 查找某一類型的文件,諸如:b - 塊設(shè)備文件。d - 目錄。c - 字符設(shè)備文件。p - 管道文件。l - 符號(hào)鏈接文件。f - 普通文件。
7. :n,$s/vivian/sky/ 替換第 n 行開始到最后一行中每一行的第一個(gè) vivian 為 sky
:n,$s/vivian/sky/g 替換第 n 行開始到最后一行中每一行所有 vivian 為 sky
8. chown 用戶名 文件路徑
9. chmod 777 test
10. adduser password
11. 在PC機(jī)器上不能進(jìn)行點(diǎn)播操作(只是針對(duì)沒有添加域名解析的PC機(jī)器),但是在別的電腦上可以,那么就需要把別人的C:\Windows\System32\drivers\etc\hosts 覆蓋自己的這個(gè)目錄下的hosts文件。
12. 12.C++中經(jīng)常有代碼后面加了”\” 表示換行,說明下面一句和上面是同一行的。
13. du –sh 查看文件大小。
14. shell 2>&1: & 1 更準(zhǔn)確的說應(yīng)該是文件描述符1, 而1一般代表的就是STDOUT_FILENO,實(shí)際上這個(gè)操作就是一個(gè)dup2(2)調(diào)用.他標(biāo)準(zhǔn)輸出到all_result,然后復(fù)制標(biāo)準(zhǔn)輸出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一個(gè)文件表項(xiàng),也可以說錯(cuò)誤的輸出被合并了.其中0表示鍵盤輸入 1表示屏幕輸出2表示錯(cuò)誤輸出.把標(biāo)準(zhǔn)出錯(cuò)重定向到標(biāo)準(zhǔn)輸出,然后扔到/DEV/NULL下面去。通俗的說,就是把所有標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)出錯(cuò)都扔到垃圾桶里面。
15. try_file
try_files $uri $uri/ /index.php?q=$uri&$args;
按順序檢查文件是否存在,返回第一個(gè)找到的文件。結(jié)尾的斜線表示為文件夾 -$uri/。如果所有的文件都找不到,會(huì)進(jìn)行一個(gè)內(nèi)部重定向到最后一個(gè)參數(shù)。
16. date +%s 可以顯示UTC的大整數(shù)時(shí)間相當(dāng)于OS:Millionseconds()。
17. date -d @1411266453 可以將時(shí)間轉(zhuǎn)換成當(dāng)前的年月日格式。
18. date -d "1970-01-01 UTC 1411261790 seconds" 將一個(gè)隨意的UTC時(shí)間轉(zhuǎn)換為當(dāng)前時(shí)間。
19. ulimit -c unlimited 可以使系統(tǒng)產(chǎn)生core文件
20. “grep -v \#” 獲取不包含#號(hào)的所有行,其中“\”是轉(zhuǎn)譯字符,
21. cut -d: -f1 獲取的文本以“:”為分隔符,并且獲取第一區(qū)域的值。
22. grep返回值:
成功,返回0;
失敗,文件存在,模板字符串不存在,返回1;
失敗,文件不存在,返回2;
23. try_file
try_files $uri $uri/ /index.php?q=$uri&$args;
按順序檢查文件是否存在,返回第一個(gè)找到的文件。結(jié)尾的斜線表示為文件夾 -$uri/。如果所有的文件都找不到,會(huì)進(jìn)行一個(gè)內(nèi)部重定向到最后一個(gè)參數(shù)。
24. umout .tmp可以解決因?yàn)樵诠こ掏χ登皠h除文件,造成的原有文件夾不能刪除的問題。
25. stat()
相關(guān)函數(shù):fstat, lstat, chmod, chown, readlink, utime
頭文件:#include <sys/stat.h> #include <unistd.h>
定義函數(shù):int stat(const char * file_name, struct stat *buf);
用來將參數(shù)file_name 所指的文件狀態(tài), 復(fù)制到參數(shù)buf 所指的結(jié)構(gòu)中,函數(shù)的返回值可以用于判斷文件是否存在。
26. inotify,可以用于監(jiān)聽文件路徑或者文件。
int fd = inotify_init ();
int wd = inotify_add_watch (fd, path, mask);
int ret = inotify_rm_watch (fd, wd);
27. 同步、異步、阻塞、非阻塞IO模型
最后,再舉幾個(gè)不是很恰當(dāng)?shù)睦觼碚f明這四個(gè)IO Model:
有A(同步阻塞),B(同步非阻塞),C(異步阻塞),D(異步非阻塞)四個(gè)人在釣魚:
A用的是最老式的魚竿,所以呢,得一直守著,等到魚上鉤了再拉桿;
B的魚竿有個(gè)功能,能夠顯示是否有魚上鉤,所以呢,B就和旁邊的MM聊天,隔會(huì)再看看有沒有魚上鉤,有的話就迅速拉桿;
C用的魚竿和B差不多,但他想了一個(gè)好辦法,就是同時(shí)放好幾根魚竿,然后守在旁邊,一旦有顯示說魚上鉤了,它就將對(duì)應(yīng)的魚竿拉起來;
D是個(gè)有錢人,干脆雇了一個(gè)人幫他釣魚,一旦那個(gè)人把魚釣上來了,就給D發(fā)個(gè)短信。
28. popen()函數(shù)用創(chuàng)建管道的方式啟動(dòng)一個(gè)進(jìn)程,并調(diào)用shell.因?yàn)楣艿朗潜欢x成單向的,所以type參數(shù)只能定義成只讀或者只寫,不能是兩者同時(shí),結(jié)果流也相應(yīng)的是只讀或者只寫.
command參數(shù)是一個(gè)字符串指針,指向的是一個(gè)以null結(jié)束符結(jié)尾的字符串,這個(gè)字符串包含一個(gè)shell命令.這個(gè)命令被送到/bin/sh以-c參數(shù)執(zhí)行,即由shell來執(zhí)行.type參數(shù)也是一個(gè)指向以null結(jié)束符結(jié)尾的字符串的指針,這個(gè)字符串必須是'r'或者'w’來指明是讀還是寫.
popen()函數(shù)的返回值是一個(gè)普通的標(biāo)準(zhǔn)I/O流,它只能用pclose()函數(shù)來關(guān)閉,而不是fclose().函數(shù).向這個(gè)流的寫入被轉(zhuǎn)化為對(duì)command命令的標(biāo)準(zhǔn)輸入;而command命令的標(biāo)準(zhǔn)輸出則是和調(diào)用popen(),函數(shù)的進(jìn)程相同,除非這個(gè)被command命令自己改變.相反的,讀取一個(gè)“被popen了的”流,就相當(dāng)于讀取command命令的標(biāo)準(zhǔn)輸出,而command的標(biāo)準(zhǔn)輸入則是和調(diào)用popen,函數(shù)的進(jìn)程相同.
注意,popen函數(shù)的輸出流默認(rèn)是被全緩沖的.
pclose函數(shù)等待相關(guān)的進(jìn)程結(jié)束并返回一個(gè)command命令的退出狀態(tài),就像wait4函數(shù)一樣方
可以用來在程序中返回命令結(jié)果:popen( "ls -l", "r" );可以返回文件列表;
popen( "du -sk", "r" )可以用來返回剩余空間。
29. libaio的工作流程
libaio工作流程:
io_prep_pread()/io_prep_pwrite() 設(shè)置讀寫操作參數(shù)
io_submit() 提交
io_getevents() 檢查結(jié)果
30. uname –a 查看系統(tǒng)所有信息,-r查看所有,如果是紅帽子,可以用cat /etc/issue
31. 匹配所有空行:^[ \t]*$[\n\r]
32. 解壓命令 tar -zvxf ***
33. 通過ulimit -n,我們可以得到一個(gè)進(jìn)程所能夠打開的fd的最大數(shù).
34. pwdx pid用來查看正在運(yùn)行的線程所在的目錄
35. stun服務(wù)器的啟動(dòng)方法:./server -v -b -h 121.14.85.205 -a 121.14.85.206
36. pstack可以用來查看Linux程序運(yùn)行過程中的堆棧。
37. rpm -qa|grep -i mysql用來檢查是否已經(jīng)安裝了mysql
38. rm -f /etc/my.cnf 刪除mysql其他路徑下的配置和數(shù)據(jù)文件
39. rm -rf /var/lib/mysql刪除mysql其他路徑下的配置和數(shù)據(jù)文件
40. mysql> set GLOBAL max_connections=300;設(shè)置mysql的最大連接數(shù)
41. mysqladmin -uroot -pcoship variables檢查mysql的最大連接數(shù)。
42. tar -xzvf Redis_2.4.7.tar.gz解壓縮包。
43. getenforce 檢查seLinux的狀態(tài)
44. vi /etc/selinux/config在配置中關(guān)閉seLinux
45. setenforce 0使上面的配置生效。
46. service iptables status檢查防火墻狀態(tài)
47. chkconfig iptables off關(guān)閉防火墻,重啟后生效
48. service iptables stop 關(guān)閉防火墻及時(shí)生效 iptables –F也可以生效
49. rpm -ivh vsftpd-2.0.5-16.el5_4.1.x86_64.rpm強(qiáng)制安裝vsftp
50. /sbin/chkconfig --list vsftpd檢查ftp的啟動(dòng)狀態(tài)
51. /sbin/chkconfig --level 2345 vsftpd on開啟或者關(guān)閉ftp的某個(gè)狀態(tài)
52. adduser -g ftp -s /sbin/nologin -d /mpeg cdnftper添加ftp用戶
53. chkconfig --list mysql檢查mysql是否隨機(jī)啟動(dòng)
54. chkconfig --add mysql讓mysql隨機(jī)啟動(dòng)。
55. tcpdump -i eth0 -t tcp -s 60000 -w diaoxian.cap 抓包
56. tcpdump –I eth0 tcp port 554 –w test.cap
查看電腦配置
57. cat /proc/cpuinfo 查看cpu
free -m 查看內(nèi)存
fdisk -l查看硬盤分區(qū)
df -h 查看掛載目錄
ifconfig查看網(wǎng)卡信息
ethtool eth0查看詳西的網(wǎng)卡工作模式
lspic列出所有芯片信息,比如聲卡,顯卡,網(wǎng)卡等。
58. cat /etc/issue 查看當(dāng)前系統(tǒng)的發(fā)布版本
59. uname –a查看當(dāng)前系統(tǒng)的內(nèi)核信息
60. rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64強(qiáng)制卸載mysql
61. select table_name,table_rows from tables where TABLE_SCHEMA = 'olaj' order by table_rows desc;
62. netstat –tnl | grep 3306
63. %s/((http|ftp|https)://)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\&%_\./-~-]*)?/\ / 匹配鏈接。
64. grep -r -n '.*_LOG.*[LoadXML|parse]' ./ grep的用法,-n表示行號(hào), -i表示忽略大小寫。
65. 清空系統(tǒng)日志,騰出空間
rm -rf /var/log/*.gz
rm -rf /var/log/*.1
echo "" > /var/log/dmesg
echo "" > /var/log/kern.log
echo "" > /var/log/messages
echo "" > /var/log/syslog
66. 查找當(dāng)前目錄所有文件所占的磁盤空間
du -lh --max-depth=1
67. g++ hello.cpp -save-temps 可以保存編譯時(shí)產(chǎn)生的臨時(shí)文件。
68. 添加網(wǎng)絡(luò)鄰居:netsh -c "i i" add neighbors 13 "172.30.25.246" "b8-ca-3a-f2-f4-c8"
69. 查看當(dāng)前網(wǎng)絡(luò)的發(fā)送接收:dstat
70. du -h --max-depth=1 work/testing/*可以查看目錄下的所有文件的占用磁盤情況
71-73 略
74. openssl engine –t查看是否有ssl硬件加速設(shè)備
75.pgrep redis-server | wc –l查看啟動(dòng)某個(gè)線程的數(shù)目。
76.rsync -avlP --exclude="log" 把除去log的其他東西備份
77.echo –e 允許后面的內(nèi)容進(jìn)行轉(zhuǎn)譯
78.echo -e "\e[32;40;1;4m are success\e[0m"輸出的字體是帶顏色的
79.#cat /proc/cpuinfo |grep "cores"|uniq 查看cpu核數(shù)
80.getconf PAGESIZE 查詢nginx中fastcgi_buffer_size應(yīng)該配置多少。
81.怎樣遍歷一些字段
startorder="redisserver,cpm,cls,cl,cg,rtcl,cdnadapter,ci"
for module in $(echo $startorder | tr ',' '\n')
do
done
82.轉(zhuǎn)碼命令
./ffmpeg -i ./bjqn/DragonTV.Beijing.Youth.Ep02.HDTV.720p.x264-CHDTV.mkv -fpre vod -acodec copy -y ./bjqn02.mp4
83.find ../download/ -maxdepth 1 -type f -mmin +120 | grep -v heartbeat.xml | xargs -n 1 rm -f
84.sort -k3nr file
K3指按第三個(gè)域去排序
n 指定分類是域上的數(shù)字分類。
r 就是降序的意思
85.1>/dev/null表示將命令的標(biāo)準(zhǔn)輸出重定向到/dev/null
2>/dev/null表示將命令的錯(cuò)誤輸出重定向到/dev/null
86.find . -name "*.c" | xargs grep main
87.du –sk查看當(dāng)前目錄已用空間。
88.tar –jxvf tar-bz2的解壓命令?
89.stat -c %Y filename 檢查某文件的最后修改時(shí)間。
90.mysql -uroot -pcoship dbname < dbname.sql mysql直接導(dǎo)入數(shù)據(jù)
91.SELECT table_name,column_name,column_type from information_schema.COLUMNS where TABLE_SCHEMA="ott_r002_portalms" and data_type in ('int','bigint','decimal')防止ID越界。
92.SELECT TABLE_SCHEMA,TABLE_NAME,round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,2) as mb from information_schema.TABLES HAVING mb>500數(shù)據(jù)庫空間不夠,查看詳細(xì)。
93.awk -F'[&,=,.,/]' 'NR==6{print $3}' tmpfile awk鎖定第幾行
94.ps -A|awk '/進(jìn)程名/{print $1}'查出某進(jìn)程號(hào)。
95.nohup ping www.ibm.com & 在后臺(tái)運(yùn)行程序
96.setsid ping www.ibm.com 在后臺(tái)運(yùn)行程序
97.(ping www.ibm.com &) 在后臺(tái)運(yùn)行程序
98.screen、disown也可以實(shí)現(xiàn)響應(yīng)的功能。
99.!! 執(zhí)行上一次執(zhí)行過的命令。
100.!s 執(zhí)行歷史中以s開頭的命令
101.watch -d ls –l 讓某一命令持續(xù)執(zhí)行默認(rèn)兩秒一次
102.pgrep ssh 查找出與ssh相關(guān)的進(jìn)程的pid
103.CTRL+d 快速推出登錄終端,CTRL+U刪除一整行(vim插入 模式有效)
104.cd – 返回你上一次所在的目錄
105.touch -c -t 0801010800 filename.c修改文件的時(shí)間
106.$_上一個(gè)命令的最后一個(gè)參數(shù)
107.ss –t –a 顯示tcp連接
108.cat /proc/46720/environ 獲得當(dāng)前進(jìn)程依賴的環(huán)境變量.
109./proc/net/dev存儲(chǔ)了網(wǎng)卡信息;
110.grep eth /proc/net/dev|awk -F : '{print $2}'|awk '{print $1, $9}' 查看網(wǎng)卡帶寬
111./etc/passwd /etc/shadow存放Linux系統(tǒng)的用戶和密碼
112. grep "http://202.105.136.35:18080/" -rl ./ 顯示含此條目的文件名
113.awk 'END{print NR}' tmp;統(tǒng)計(jì)一個(gè)文本的行數(shù)。
114.ps auxw|head -1;ps auxw|sort -rn -k3|head -10查看最耗cpu的10-個(gè)程序;
115.治療動(dòng)態(tài)庫找不到:ln -s /usr/lib64/libcrypto.so libcrypto.so.6
116.ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' 查找僵尸進(jìn)程
117.ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9 查找并kill掉僵尸進(jìn)程
118.數(shù)據(jù)庫查詢實(shí)現(xiàn)笛卡爾積:select x+y+1 ,x+y+1 from (select 0 as x from dual union select 1 from dual union select 2 from dual) a,(select 0 as y from dual union select 1 from dual union select 2 from dual) b;
批綁定:FORALL i IN 1 .. 10000000
INSERT a …
119../ffmpeg -i /mpeg/ad1.ts 2>&1 | grep 'Duration' | cut -d ' ' -f 4,8 | sed s/,//獲取文件的碼率
120.thread apply all bt gdb –c core.1111后,可用此命令查看所有線程。
121.netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]} 統(tǒng)計(jì)所有TCP鏈接的狀態(tài)數(shù)
122. df –h [目錄名]可查詢當(dāng)前目錄屬于哪個(gè)分區(qū)
123.iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 22122 -j ACCEPT打開防火墻的某個(gè)端口/etc/init.d/iptables save將防火墻設(shè)置保存。netstat -unltp | grep fdfs
124.vim /etc/rc.d/rc.local設(shè)置開機(jī)啟動(dòng)
125.CenterOS 設(shè)置防火墻firewall-cmd --zone=public --add-port=5000/tcp --permanent?
firewall-cmd –reload
126. wget -S http://httpd.apache.org/images/httpd_logo_wide_new.png 2>&1 | grep ‘Accept-Ranges’?
Accept-Ranges: bytes 測試服務(wù)器是否支持?jǐn)帱c(diǎn)續(xù)傳功能
127.curl –range 0-99 http://images/billboard_iphone_hero.jpg測試服務(wù)器是否支持?jǐn)帱c(diǎn)續(xù)傳
128.后臺(tái)服務(wù)器是否支持長連接:netstat –n | grep TIME_WAIT,如果不支持長連接那么就會(huì)有很多TIME_WAIT狀態(tài)。