linux基本常用命令勿忘筆記 常用的linux基本命令 這些天在鼓搗linux時,一些基本的命令長久時間沒有使用,忘記了,有些基本命令場用印象到時深刻,但是有些偶爾會用到,時間久了難免會忘記,然後又是花時間去尋找,這樣浪費時間挺不值的,現記錄下一些自己平時用到而且容易忘記的命令,以便日後查詢使用 1.pwd 顯示目前的目錄路徑 2.mkdir dir 建立目錄 3.cd dir 進入目錄 cd .. 回到上級目錄 cd / 回到根目錄 cd ~/cd 回到目前使用者的home目錄下 4.ls 顯示目錄檔案,一般情況下用到這個就可以 ls -a 列出目錄下的所有檔案,包括以 . 開頭的隱含檔案 ls -t 以時間排序 ls -h 產生的結果有利於瀏覽 ls -l 列出檔案的詳細資料 ………… 例如: ubuntu@ip-10-250-31-239:~$ ls -lhta total 12M drwx------ 2 ubuntu ubuntu 4.0K Apr 11 00:41 .ssh -rw-r--r-- 1 root root 12M Dec 12 2012 node-v0.8.16.tar.gz …… …… …… 第1欄位: 檔案屬性欄位 檔案屬性欄位總共有10個字母組成,第一個字母表示檔案類型,如果這個字母是一個減號”-”,則說明該檔案是一個普通檔案.字母”d”表示該檔案是一個目錄,字母”d”,是dirtectory(目錄)的縮寫. 第2欄位:檔案永久連結數或目錄子目錄數 第3欄位:檔案擁有者 第4欄位:檔案擁有者所在的組 第5欄位:檔案檔案大小(以位元組為單位) 第6欄位:檔案建立月份 第7欄位:檔案建立日期 第8欄位:檔案建立時間 第9欄位:檔案名稱 (如果是一個符號連結,那麼會有一個 “->” 箭頭符號,後面跟一個它指向的檔案) 5.du 顯示所有目錄和檔案大小 du -m 以1m為單位顯示 6.cp 複製檔案 將檔案filename1 複製後為 檔案 filename2 cp filename1 filename2 cp config/cache_store.yml.example config/cache_store.yml cp -f file1 file2 將檔案file1複製成file2,因為目的檔案已經存在,所以指定使用強制複 制的模式 cp -R file1 file2 將目錄dir1複製成目錄dir2 7. mv 移動或更名現有的檔案或目錄。 mv file1 file2 將file1的名字改為file2 mv file1 /opt 將file1移動opt目錄下,沒有改名 mv file1 /opt/file2 將file1移到opt下並將file1名字改為file2 mv file1/* /opt/file2 將file1下所有檔案移動file2下面 8.rm 刪除檔案及目錄 參數: -i 刪除前逐一詢問確認 -f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認 -r 將目錄及以下之檔案亦逐一刪除 rm filename 刪除檔案 rm -rf filename 刪除目錄,使用這個要相當謹慎, 刪除某個重要檔案之前最好能夠備份一下 如果不小心刪除某個檔案,請試著使用系統內建還工具debugfs來修複,參考地址: http://jingyan.baidu.com/article/2f9b480d6c2bcd41cb6cc223.html?qq-pf-to=pcqq.c2c http://loamy.iteye.com/blog/422462 9.tar 備份檔案 tar czvf backupfilename.tar filename 解壓備份 tar zxvf backfilename.tar 10.find 參數: -name filename #尋找名為filename的檔案 -perm #按執行許可權來尋找 -user username #按檔案屬主來尋找 -group groupname #按組來尋找 -mtime -n +n #按檔案更改時間來尋找檔案,-n指n天以內,+n指n天以前 -atime -n +n #按檔案訪問時間來查GIN: 0px"> -ctime -n +n #按檔案建立時間來尋找檔案,-n指n天以內,+n指n天以前 -nogroup #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在 -nouser #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存 -newer f1 !f2 找檔案,-n指n天以內,+n指n天以前 -ctime -n +n #按檔案建立時間來尋找檔案,-n指n天以內,+n指n天以前 -nogroup #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在 -nouser #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存 -newer f1 !f2 #查更改時間比f1新但比f2舊的檔案 -type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符號連結、普通檔案 -size n[c] #查長度為n塊[或n位元組]的檔案 -depth #使尋找在進入子目錄前先行尋找完本目錄 -fstype #查更改時間比f1新但比f2舊的檔案 -type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符號連結、普通檔案 -size n[c] #查長度為n塊[或n位元組]的檔案 -depth #使尋找在進入子目錄前先行尋找完本目錄 -fstype #查位於某一類型檔案系統中的檔案,這些檔案系統類型通常可 在/etc/fstab中找到 -mount #查檔案時不跨越檔案系統mount點 -follow #如果遇到符號連結檔案,就跟蹤連結所指的檔案 -cpio %; #查位於某一類型檔案系統中的檔案,這些檔案系統類型通常可 在/etc/fstab中找到 -mount #查檔案時不跨越檔案系統mount點 -follow #如果遇到符號連結檔案,就跟蹤連結所指的檔案 -cpio #對匹配的檔案使用cpio命令,將他們備份到磁帶裝置中 -prune #忽略某個目錄 例如: ubuntu@ip-10-250-31-239:/$ sudo find -name apache2 ./etc/init.d/apache2 ./etc/logrotate.d/apache2 ./etc/cron.daily/apache2 ./etc/apache2 ./etc/default/apache2 ./usr/sbin/apache2 ………… 11. grep 一種強大的文本搜尋工具,它能使用Regex搜尋文本,並把匹配的行列印出來.要用好grep這個工具,其實就是要寫好Regex $ ls -l | grep '^a' 通過管道過濾ls -l輸出的內容,只顯示以a開頭的行 $ grep 'test' d* 有以d開頭的檔案中包含test的行 $ grep 'test' aa bb cc 顯示在aa,bb,cc檔案的行 拓展命令 egrep 命令,搜尋檔案獲得模式。 12.man Linux提供了豐富的協助手冊,當你需要查看某個命令的參數時不必到處上網尋找,只要man一下即可。 例如: ubuntu@ip-10-250-31-239:/$ man ls 顯示出ls的用法和參數 Manual page ls(1) line 1 (press h for help or q to quit)最好輸入q退出 13.ps ps命令給出正在啟動並執行某個進程的狀態,每個進程有特定的id成為PID 參數: -A :所有的 process 均顯示出來,與 -e 具有同樣的效用; -a :不與 terminal 有關的所有 process ; -u :有效使用者 (effective user) 相關的 process ; x :通常與 a 這個參數一起使用,可列出較完整資訊。 輸出格式規劃: l :較長、較詳細的將該 PID 的的資訊列出; j :工作的格式 (jobs format) -f :做一個更為完整的輸出。 ps aux 列出目前所有的正在記憶體當中的程式 ps -l 將目前屬於您自己這次登入的 PID 與相關資訊列示出來 常與grep並用 14.kill 用來殺死已經無關緊要或者沒有響應的進程 殺死一個進程需要知道進程的PID. ps -ef 查看目前使用者下所有的進程 ps -ef|grep httpd/ ps -A | grep -i apache2 查看httpd的pid 然後 kill -pid 結束進程 *killall命令 killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。 # killall httpd # kill -HUP PID 該命令讓Linux和緩的執行進程關閉,然後立即重啟。在配置應用程式的時候,這個命令很方便,在對設定檔修改後需要重啟進程時就可以執行此命令。 15.whereis whereis命令用來尋找命令的位置,包括執行檔案、原始碼和手冊頁檔案(locate the binary, source, and manual page files for a command)。如果要尋找任意檔案的所在位置,可以使用locate或者find等命令 whereis [ -s ] [ -b ] [ -m ] [ -u ] [ { { -S | -B | -M } Directory ... }... -f ] 要找的檔案名稱 -b 搜尋檔案的二進位部分。 -m 搜尋檔案的手冊部分。 -s 搜尋檔案的源部分。 -u 沒有說明文檔的檔案 例如 ubuntu@ip-10-250-31-239:~$ whereis postgresql postgresql: /etc/postgresql /usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql 16.service 命令控制服務的啟動、停止和重啟,它讓你能夠不重啟整個系統就可以讓配置生效以開啟、停止或者重啟某個服務 例如 service apache2 start service apache2 restart service apache2 stop 17. alias 是一個系統自建的shell命令,允許你為名字比較長的或者經常使用的命令指定別名 例如: ubuntu@ip-10-250-31-239:~$ alias l='ls -l' ubuntu@ip-10-250-31-239:~$ l total 11632 drwxr-xr-x 14 root root 4096 Apr 18 02:10 canvas drwxr-xr-x 10 24561 staff 4096 Apr 18 04:12 node-v0.8.16 -rw-r--r-- 1 root root 11899509 Dec 12 2012 node-v0.8.16.tar.gz 去掉’l'別名,要使用unalias命令 例如: ubuntu@ip-10-250-31-239:~$ unalias l ubuntu@ip-10-250-31-239:~$ l l: command not found ubuntu@ip-10-250-31-239:~$ 18.df 報告系統的磁碟使用方式。在跟蹤磁碟使用方式方面對於普通使用者和系統管理員都很有用。 ‘df‘ 通過檢查目錄大小工作,但這一數值僅當檔案關閉時才得到更新 ubuntu@ip-10-250-31-239:~$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 8256952 2690192 5147332 35% / udev 294136 12 294124 1% /dev tmpfs 120872 200 120672 1% /run none 5120 0 5120 0% /run/lock none 302180 0 302180 0% /run/shm ubuntu@ip-10-250-31-239:~$ 19.echo 顯示文字 ubuntu@ip-10-250-31-239:~$ echo "dian di yun" dian di yun ubuntu@ip-10-250-31-239:~$ 20.wget 是用於非互動式(例如後台)下載檔案的免費工具.支援HTTP, HTTPS, FTP協議和 HTTP 代 理 例如: wget url 21.free 顯示記憶體狀態 free命令詳解: 功能說明:顯示記憶體狀態。 語 法: free [-bkmotV][-s ] 補充說明:free指令會顯示記憶體的使用方式,包括實體記憶體,虛擬交換文檔記憶體,共用記憶體區段,連同系統核心使用的緩衝區等。 參 數: -b 以Byte為單位顯示記憶體使用量情況。 -k 以KB為單位顯示記憶體使用量情況。 -m 以MB為單位顯示記憶體使用量情況。 -o 不顯示緩衝區調節列。 -s 持續觀察記憶體使用量狀況。 -t 顯示記憶體總和列。 -V 顯示版本資訊。 例如: ubuntu@ip-10-250-31-239:~$ free -m total used free shared buffers cached Mem: 590 572 17 0 130 256 -/+ buffers/cache: 185 405 Swap: 0 0 0 22. ifconfig 用於顯示或配置網路裝置(網路介面卡)的命令 ubuntu@ip-10-250-31-239:~$ ifconfig eth0 Link encap:Ethernet HWaddr 22:00:0a:fa:1f:ef inet addr:10.250.31.239 Bcast:10.250.31.255 Mask:255.255.255.192 inet6 addr: fe80::2000:aff:fefa:1fef/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3481075 errors:0 dropped:0 overruns:0 frame:0 TX packets:1382616 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3836200331 (3.8 GB) TX bytes:194867450 (194.8 MB) Interrupt:25 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:3294499 errors:0 dropped:0 overruns:0 frame:0 TX packets:3294499 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1025117298 (1.0 GB) TX bytes:1025117298 (1.0 GB) 23.netstat 用於顯示各種網路相關資訊,如網路連接,路由表,介面狀態 (Interface Statistics),masquerade 串連,多播成員 (Multicast Memberships) 等等 參數: -a (all)顯示所有選項,預設不顯示LISTEN相關 -t (tcp)僅顯示tcp相關選項 -u (udp)僅顯示udp相關選項 -n 拒絕顯示別名,能顯示數位全部轉化成數字。 -l 僅列出有在 Listen (監聽) 的服務狀態 -p 顯示建立相關連結的程式名 -r 顯示路由資訊,路由表 -e 顯示擴充資訊,例如uid等 -s 按各個協議進行統計 -c 每隔一個固定時間,執行該netstat命令。 提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到 列出所有連接埠 netstat -a 列出所有 tcp 連接埠 netstat -at 列出所有 udp 連接埠 netstat -au