bash 命令

http://spazzzz.blog.51cto.com/2707720/4×××3
按照本身目前的水平所整理,以備往後杯具時查閱(需定時更新)
首先打開終端,最初要使用的 命令
 
啓用root用戶,使用sudo passwd 命令
禁用root用戶,使用passwd -l
 
ls [-adlsht]:列出當前目錄下的非隱藏文件
  -a 顯示全部文件
  -d 顯示目錄自己
  -l 以列表形式顯示詳細信息
  -s 顯示文件大小,單位塊
  -h 帶度量單位顯示
  -t 按最新修改時間顯示
Linux中3種時間屬性
atime access 讀取或執行時變化
ctime change 變動權限,屬主,連接數時變化
mtime modify 修改內容時變化
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
umask number 修改建立時的默認權限
 系統規定目錄的建立能夠包含執行權限,因此最高是777;而文件不能默認包含執行,因此最高是666。
umask就是默認權限的反碼
 eg:umask=022時,建立的目錄權限是755,文件權限是644。
    umask=002時,目錄權限是775,文件權限是664
 經常使用的umask:
022:755 644
027:750 640
002:775 664
006:771 660
007:770 660

groups username  顯示username所在的全部組
改變文件的組和全部者 命令chown
chown [-cfhvR] user[:group] file...
 -c若文件擁有者確實已更改,才顯示其更改動做
 -f若沒法更改,也不要顯示錯誤信息
 -h只對link文件進行更改,而非該link真正指向的檔案
 -v顯示擁有者變動的詳細資料
  -R對目錄下全部文件文件夾遞歸更改
 user:[group]指的是更改成group組中的user用戶
 eg:chown -R fenix:root *
  表示將當前目錄下全部文件和文件夾改成root組的使用者fenix
chgrp [-hR] groupname filename 將文件的屬組變動
 -h將符號連接變動
 -R遞歸變動
id username 顯示username的uid,gid和自身id

顯示進程 命令
ps [-Aw][aux]:當前 bash中運行的進程
  -A列出全部進程
  -w顯示較多信息
  -au顯示詳細信息
  -aux顯示全部包含其餘使用者的進程
    eg: ps aux | grep nautilus 顯示nautilus進程
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 :快速殺掉進程。 eg pkill 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  #中斷,ctrl+c
  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 SIGSTOP, Stopped (signal)   
  16. 15 - signal SIGTERM, Terminated #溫和的結束
  17. 16 - signal SIGXCPU, CPU time limit exceeded  
  18. 17 - signal SIGTTIN, Stopped (tty input)  
  19. 18 - signal SIGCONT, Continued #恢復,fg、bg
  20. 19 - signal SIGTTOU, Stopped (tty output)  
  21. 20 - signal SIGTSTP, Stopped (user) #暫停運行,ctrl+z  
  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
netstat [-tulnp]
  -t tcp協議
  -u udp協議
  -l 監聽中的
  -n 不解析主機
  -p pid
    eg:netstat -anp |grep 8080  8080端口占用狀況

其餘 命令
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/4×××3
相關文章
相關標籤/搜索