linux常用命令

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)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 進(jìn)入帶空格的文件或者文件夾 Linux文件權(quán)限詳解 文件和目錄權(quán)限概述 在linux中的每一個(gè)文件或目錄都包含有訪...
    annkee閱讀 2,792評(píng)論 0 4
  • 1、文件和目錄: # cd /home 進(jìn)入 '/home' 目錄 # cd .. ...
    XDgbh閱讀 2,144評(píng)論 0 1
  • 查詢命令 find * find [指定查找目錄] [查找規(guī)則] [查找完后執(zhí)行的action]* find ~/...
    chapa閱讀 786評(píng)論 0 5
  • Linux常用命令大全(非常全?。。。┰逆溄樱篽ttp://www.cnblogs.com/yjd_hycf_s...
    JokerJin閱讀 691評(píng)論 0 3
  • 系統(tǒng)信息cat /etc/os-release 查看系統(tǒng)詳細(xì)信息(只在centos和redhat上試過生效)arc...
    MicoCube閱讀 795評(píng)論 0 0

友情鏈接更多精彩內(nèi)容