歡迎您光臨本站 註冊首頁

掌握Linux的Bash命令

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

按照自己目前的水平所整理,以備日後杯具時查閱(需定時更新)

首先打開終端,最初要使用的命令: 啟用root用戶,使用sudo passwd命令 禁用root用戶,使用passwd -l ls [-alht]:列出當前目錄下的非隱藏文件 -a 顯示所有文件 -l 以列表形式顯示詳細信息 -h 帶度量單位顯示 -t 按最新修改時間顯示 cd PATH:改變當前操作目錄路徑到PATH cd .. 返回上一層 cd - 返回上一次使用的目錄 cd 返回用戶主目錄,等同於cd ~ pwd 顯示當前路徑
現在介紹一個高級的路徑變更命令: pushd PATH:建立目錄棧,在多個目錄間切換.切換到PATH的目錄,並把原目錄和PATH目錄壓入到一個虛擬的堆棧中;如果不指定PATH,則會回到前一個目錄,並把堆棧中最近的兩個目錄作交換. -n 不改變當前目錄,將目錄加入棧 N N表示數字,從0開始,切換到該目錄 dirs: 列出當前堆棧中保存的目錄列表. -v 棧式顯示目錄 -c 清空堆棧 popd:彈出堆棧中0號目錄. -n 不改變當前目錄 N N表數字,彈出該目錄
mkdir NAME:在當前路徑下創建文件夾NAME touch NAME:在當前路徑下創建普通文件NAME mknod NAME:用來新建P、B、C型NAME文件 cat [-nb] NAME:顯示NAME文件的內容在終端中 -n 帶行號 -b 對空白行不編號

mv NAME1 NAME2:將NAME1重命名為NAME2 rm file:刪除file而不需要確認 -d Dir1 刪除Dir1目錄而不需要確認(相當於DOS中的deltree). -i file1(提示用戶確認之後刪除file1) -f file2(如果file2已經存在,則這個命令覆蓋其內容時不需要確認) -r * 遞歸刪除文件,如果當前目錄還有子目錄,則也刪除其中的文件和目錄 -rf xx 刪除xx目錄
Linux文件許可權 chmod 751 test.java:結果test.java的許可權是-rwxr-x--x,7表示user的3個許可權都有,既111,且正好是十進位的7;5換成二進位是101,同理1是other位置的許可權,是x執行. 還可以使用字母表示,u、g、o分別表示3個組, 表示賦予,-表示撤銷 目錄有執行許可權才能打開,但前提是該目錄的上次目錄要有粘滯位,否則會繼承上級的執行許可權. 高級許可權: drwxrwxrwt t表示粘滯位,作用是讓用戶只能刪除屬於自己的文件 假如本來在該位上有x, 則這些特別標誌 (suid, sgid, sticky) 顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T) chmod a t x.X 特殊標誌位 Suid:set user id Sgid:set group id sTicky:sticky bit 特殊標誌也是由3個二進位位abc表示,c表示T,b表示Sgid,a表示Suid eg:101表示設置了該文件的Suid和sTicky位,也就是八進位的5 特殊標誌位放在許可權位的前面 eg:一個文件test類型標識為-rwxr-xrwx chmod 7747 test 結果為-rwsr-Srwt 7747等於111 111 100 111
改變文件的組和所有者命令
chown [-cfhvR] user[:group] file...
-c若文件擁有者確實已更改,才顯示其更改動作


-f若無法更改,也不要顯示錯誤信息
-h只對link文件進行更改,而非該link真正指向的檔案
-v顯示擁有者變更的詳細資料
-R對目錄下所有文件文件夾遞歸更改
user:[group]指的是更改為group組中的user用戶
eg:chown -R fenix:root *
表示將當前目錄下所有文件和文件夾改為root組的使用者fenix
顯示進程命令 ps [-Aw][-aux]:當前bash中運行的進程 -A列出所有進程
-w顯示較多信息
-au顯示詳細信息
-aux顯示所有包含其他使用者的進程 pstree:樹狀顯示進程 -a顯示該進程的完整指令和參數
-c如有重覆的進程名, 則分開列出 renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]:重新指定一個或多個進程的優先序
將行程 id 為987及32的行程與行程擁有者為daemon 及root 的優先序號碼加1.eg:renice 1 987 -u daemon root -p 32 pkill NAME:快速殺掉進程.egpkill firefox skill [signal to send] [options]:選擇程序的規則
選擇程序的規則可以是, 終端機代號,使用者名稱,程序代號,命令名稱
-t 終端機代號 ( tty 或 pty )
-u 使用者名稱
-p 程序代號 ( pid )
-c 命令名稱
eg:停止三個使用者 user1,user2,user3. skill -STOP user1 user2 user3

kill [-s signal|-p] [-a] PID:終止進程命令 kill -l:查看所有信號量
  1. 0 - normal
  2. 1 - signal SIGHUP, Hangup.
  3. 2 - signal SIGINT, Interrupt
  4. 3 - signal SIGQUIT, Quit
  5. 4 - signal SIGILL, Illegal instruction
  6. 5 - signal SIGTRAP, Trace/breakpoint trap
  7. 6 - signal SIGABRT, Aborted
  8. 7 - signal SIGEMT, Emulation trap
  9. 8 - signal SIGFPE, Arithmetic exception
  10. 9 - signal SIGKILL, Killed
  11. 10 - signal SIGBUS, Bus error
  12. 11 - signal SIGSEGV, Segmentation fault
  13. 12 - signal SIGSYS, Bad system call
  14. 13 - signal SIGPIPE, Broken pipe
  15. 14 - signal SIGTERM, Terminated
  16. 15 - signal SIGSTOP, Stopped (signal)
  17. 16 - signal SIGTSTP, Stopped (user)
  18. 17 - signal SIGCONT, Continued
  19. 18 - signal SIGTTIN, Stopped (tty input)
  20. 19 - signal SIGTTOU, Stopped (tty output)
  21. 20 - signal SIGXCPU, CPU time limit exceeded
  22. 21 - signal SIGXFSZ, File size limit exceeded

top命令

:動態顯示當前運行進程 up 後面表示系統運行了多長時間 load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度. 三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值 Cpu(s): 0.3% us 用戶空間佔用CPU百分比,1.0% sy 內核空間佔用CPU百分比,0.0% ni 用戶進程空間內改變過優先順序的進程佔用CPU百分比,98.7% id 空閑CPU百分比,0.0% wa 等待輸入輸出的CPU時間百分比 PR 優先順序 NI nice值,負值表示高優先順序 VIRT 進程使用的虛擬內存總量 RES 進程使用的,未被換出的物理內存大小,kb單位 SHR 共享內存大小,kb單位 S 進程狀態 s睡眠,r運行,t跟蹤或停止,z殭屍,d不可中斷的睡眠 %CPU 上次更新到現在的CPU時間佔用百分比 %MEM 進程使用的物理內存百分比 TIME 進程使用的CPU時間總計,1/100秒單位 COMMAND 命令行 按f鍵可以選擇顯示列,按o可以改變列的顯示順序,按R鍵可以將當前排序倒轉
類debian發行版的linux使用的apt軟體管理命令: apt-get [-qy] [-c config_file] [options] software...
q 在後台環境執行
y 自動進行回答y的響應
c 後接配置文件
options
update,install,remove,purge,clean,dist-upgrade
apt-cache [搜索項目]
搜索項目
search,show,
showpkg 列出所接軟體的依賴屬性及功能
dump 列出所有軟體標頭及相關的依賴屬性軟體
pkgnames 列出本系統所有軟體名稱 軟體管理的高級命令 dpkg [-ilLSC] <package> -i <package> 安裝軟體包 -l <package> 查看軟體包是否安裝 -L <package> 查看軟體包中包含哪些文件 -S /path/to/file 查看系統中某文件是由哪個軟體包提供的 -C 查看哪些軟體包未完成安裝


網路命令類: ifup eth0 打開eth0,ifdown eth1 關閉eth1
ifconfig [interface] [options],設置網路設備的命令
interface介面名,如eth0
options,功能選項
up & down
mtu
netmask
broadcast
eg:ifconfig eth0 192.168.1.1 netmask 255.255.0.0 mtu 8000
route [-nee]
n直接使用ip
ee更詳細的信息
ping [-bcstnM] IP
b 接broadcast的ip,對整個網段ping
c 後接次數
n 不進行ip和主機名的反查
s 擴增的icmp包
M 設置MTU tcpdump -i eth0 -nn :偵測網路瀏覽的命令,網卡變為混雜模式,root許可權 -i 後接網路介面,如eth0 -nn 以ip和port顯示,而不是hostname tcpdump -i eth0 -nn port 21 port 21 監聽特定的21port -X 可列出十六進位以及ascii的內容 ip address show:顯示當前ip地址詳細信息 arp -n:顯示arp表的內容,包括網段內機器物理地址MAC
其他命令 ctrl z:暫時掛起當前終端進程 jobs:查看當前終端掛起的進程 fg number:將number號掛起進程激活在前台運行 bg number:將number號掛起進程激活在後台執行 uname -a:查看內核 cat /etc/issue:查看ubuntu版本 cat /proc/cpuinfo lshw:查看當前硬體信息 free -l:查看當前的內存使用 gnome-control-center:控制中心 gnome-system-monitor:系統管理 find [路徑] [-參數] [需求]

eg: find /etc -name *.d find . -perm 664 find /usr/share/doc -mtime 0 locate 文件名 whereis:是來尋找命令的二進位文件,同時也會找到其幫助文件 which 和where 相似,只是我們所設置的環境變數中設置好的路徑中尋找 who:查看當前在線上的用戶情況 w命令是who命令的一個增強版 uptime:顯示系統運行時間 last:顯示系統開機以來或是從每月登入者的訊息
tail:從參數制定點開始將文件內容寫到標準輸出 格式 tail [-fr] [-cnmbk Number] [file] Number 變數指定將多少單元寫入標準輸出.Number變數的值可以是正的或負的整數, 表示從開頭,-表示從結尾 -f表示動態的顯示文件的內容 -r表示從文件末尾以逆序方式顯示 -c從Number表示的位元組位開始讀 -n從Number表示的行位開始讀 -m從Number表示的多位元組字元位置開始讀 -b從Number表示的 512 位元組塊位置開始讀 -k從Number表示的 1KB 塊位置開始讀
改變文件的高級屬性 chattr [-RV] [- =AacDdijsSu] [-v version] files... R:遞歸處理所有的文件及子目錄
V:周詳顯示修改內容,並列印輸出
-:失效屬性.
+:激活屬性.
= :指定屬性.
A:Atime,告訴系統不要修改對這個文件的訪問時間.
S:Sync,一旦應用程式對這個文件執行了寫操作,使系統即時把修改的結果寫到磁碟.
a:Append Only,系統只允許在這個文件之後追加數據,不允許所有進程覆蓋或截斷這個文件.如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除所有文件.


i:Immutable,系統不允許對這個文件進行所有的修改.如果目錄具有這個屬性,那麼所有的進程只能修改目錄之下的文件,不允許建立和刪除文件.
D:檢查壓縮文件中的錯誤.
d:No dump,在進行文件系統備份時,dump程式將忽略這個文件.
C:Compress,系統以透明的方式壓縮這個文件.從這個文件讀取時,返回的是解壓之後的數據;而向這個文件中寫入數據時,數據首先被壓縮之後才寫入磁碟.
S:Secure Delete,讓系統在刪除這個文件時,使用0填充文件所在的區域.
u:Undelete,當一個應用程式請求刪除這個文件,系統會保留其數據塊以便以後能夠恢復刪除這個文件.
lsattr [-adRvV] files... 查看文件的高級屬性
a全部文件和目錄
d顯示目錄名稱
R遞歸
v文件,目錄版本
V版本信息 整理的有點亂……

本文出自 「春種一粒粟」 博客,請務必保留此出處http://spazzzz.blog.51cto.com/2707720/499923


[火星人 ] 掌握Linux的Bash命令已經有691次圍觀

http://coctec.com/docs/linux/show-post-49212.html