今天學習了2個小時左右的linux shell命令,書上介紹的比較全,很多平時都不知道的,才發現原來可以這麼方便。
整理了一下,貼出來。
Linux shell的基本格式:
Command [options] [arguments]
一般情況下 man 一下,就能看到常用的一些參數了;
系統管理命令:
1) ls
最常用的,-l,-t,還有的系統上是有ll這個命令的,和ls -l一樣;
2) pwd
3) cd
4) date
這個平時用的比較少,date -s 可以設定日期時間,date '+%Y-%m-%d %T'就可以顯示當天的時間和日期了;
5) passwd
修改密碼,其實也可以修改/etc/passwd檔案,一樣的;
6) su
改變當前用,'-'可以載入相應使用者下的環境變數;
7) clear
8) man
9) who
查看登陸到系統的使用者,who -r 查看當前系統運行層級;who -buT就可以查看每個使用者的登陸詳情和登陸狀態;
10) w
跟who有點類似
11) uname
顯示作業系統相關的資訊,uname -a查看作業系統全部資訊;
12) uptime
顯示當前系統時間,系統開機到現在的時間,使用者,平均負載等;
13) last
顯示目前和過去登入系統的使用者相關,查看/var/log/wtmp檔案也能同樣查看;
14) dmesg
顯示系統開機資訊
15) free
查看記憶體資訊,例如free -m -s 3,每隔3s顯示記憶體狀態,以mb為單位;
16) ps
查看系統進程,ps -x 或者 ps -ef 或者 ps -aux
17) top
比較重要的一個命令,即時監控處理器狀態;
進入top資訊後:
m可以切換顯示記憶體資訊;
t切換進程和cpu狀態;
l切換顯示平均負載和啟動時間資訊;
P根據cpu使用多少進行排序;
q退出;
Top資訊的含義:
VIRT代表了進程使用的虛擬記憶體,單位為kb,VIRT=SWAP+RES;
RES代表了進程使用的,沒有被換出的實體記憶體大小,單位也為kb,RES=CODE+DATA;
SHR代表了共用記憶體大小,單位kB;
進程狀態,D表示不可中斷睡眠,R運行,S睡眠,T跟蹤/停止,Z僵死進程;
檔案管理命令:
1) mkdir
mkdir -p可以為不存在的路徑自動建立檔案夾;
2) more
逐屏顯示;
3) cat
列印到終端,也可以利用 > 管道合并檔案,如cat a b > c;cat -b可以顯示行號(非空行);
4) diff
比較檔案,diff -c 顯示全部內容,並標出不同之處;diff -r 比較目錄;
5) grep
比較有用的一個文本過濾工具,主要和其他命令配合使用;grep -i忽略大小寫,grep -n顯示行號;
6) rm
刪除,rm -r刪除目錄,rm -f忽略不存在的問題;
7) touch
修改檔案的訪問時間和修改時間,touch -a改變檔案的訪問時間為當前系統時間,touch -m改變檔案的修改時間為當前系統時間;直接touch相當於建立檔案;touch -r表示參考其他的檔案的時間做修改,類似於refer;
8) ln
連結,直接ln src dest為永久連結,ln -s為軟連結,類似windows下的捷徑;
9) file
顯示檔案類型;
10) cp
拷貝, cp src dest;cp -a保留檔案所有屬性,cp -r目錄下遞迴拷貝;
11) find
很強大的尋找命令,格式為find path [options] [-print -exec -ok 命令{} /;]
參數格式:
-name ' ' :檔案名稱匹配過濾;
-path ' ':路徑名匹配過濾;
-mtime +n/-n:按時間過濾,+n表示n天前的,-n表示n天后的;
-print:搜尋結果輸出到標準輸出;
-exec:搜尋出的結果執行給出的linux命令,注意給出的命令要以 “{} /;”結束;
-ok:表示exec執行linux命令是需要互動;
12) split
分割文檔,split -b按大小分割,split -n按檔案長度分割,split -d分割產生的檔案序列以數字形式命名,預設按a、b、c等等命名;例如split -b 2M -d a.log a.log.bak,則會產生a.log.bak01, a.log.bak02等等;
13) mv
移動檔案或者目錄
壓縮與解壓縮
1) tar
最常見的打包解包命令,常用的tar -zxvf打包,tar -zcvf打包。
參數含義:
-c:建立新的檔案
-x:解包
-z:用gzip命令進行壓縮或者解壓縮
-j:用bzip2命令進行壓縮或者解壓縮
-f:指定檔案名稱,必須是最後一個參數
-v:在打包或者解包時,顯示檔案名稱
2) dd
轉換或者拷貝檔案命令,可以用來備份裝置。
dd if="input_file" of="output_file" bs="block_size" count="number of bs"
磁碟管理與維護
1)df
檢查磁碟空間情況
常見的df -hT,可以查看當前檔案系統類型和分區情況;df -i可以顯示檔案系統分區的inodes資訊;
2)du
顯示目錄或者檔案佔用的磁碟空間;
一般du -sh 就可以了;
3)fsck
檢查檔案系統並嘗試修複錯誤,慎用;
參數 -r 採取互動的修複模式,-T顯示執行過程,推薦;
其實fsck是調用了/sbin/fsck.ext3命令
4)sync
將記憶體中的資料寫回磁碟,無需參數
5)eject
彈出裝置,-c光碟機,-d預設裝置,-f磁碟片,-q磁碟,-r光碟片,-n指定路徑(推薦);
6)mount/unmount
掛載和卸載檔案系統,常用的命令之一;
mount [-o 選項] [-t 檔案系統類型] [裝置名稱] [掛載點];
檔案類型包括有ext2, ext3, msdos(FAT), vfat, nfs, iso9660, nfs等等;
-o選項一般預設就可以了;
網路設定與維護
1) ifconfig
配置網路或者顯示當前網路的狀況;
-a,顯示所有
常用的如下:
ifconfig 不帶參數,顯示網卡狀態;
ifconfig eth0 up/down 禁用或者啟用網卡eth0;
ifconfig eth0 hw ether **:**:**:**:**:** 修改網卡eth0的mac地址;
ifconfig eth0 192.168.1.12 netmask 255.255.255.254 修改網卡eth0的ip和地址和子網路遮罩;
2) scp
非常是用的一個遠程copy命令
與cp不一樣的是,遠端檔案名稱需要格式:使用者名稱@ip地址#連接埠:路徑檔案名稱;
3) netstat
顯示本機網路連接,運行連接埠和路由表等資訊;
-a 顯示所有的串連和監聽;
-t 顯示所有的tcp串連情況;
-u 顯示所有的udp串連情況
-r 顯示路由表資訊
-n 以網路ip的形式顯示當前建立的串連和連接埠
常用:
netstat -rn 顯示路由資訊;
netstat -an 顯示所有有效tcp串連;
netstat -tlnpu 顯示已經啟動的網路連接和對應的連接埠資訊;
netstat -atunp 顯示目前系統上處於串連狀態的資源資訊;
4) traceroute
顯示網路資料包傳輸的路徑資訊
Traceroute [選項] [遠程ip或者主機名稱] [資料包大小]
常用選項:
-i:指定網卡
-n:使用ip
-w:設定逾時時間,以秒為單位;
-s:來源ip,本機發送資料包的ip;
例如 traceroute -i eth0 -s 192.168.1.12 -w 10 www.baidu.com 100,可以顯示從本地192.168.1.12發送到www.baidu.com的100bytes的包中間經過了多少路由轉寄;
5) telnet
一般就用來看看到對方的網路連接埠能不能通,其他基本用不上;
6) wget
下載命令,後面直接加網址就可以了