Linux命令行與shell腳本(2)--常用命令

常用命令

  1. ls命令

    • ls -a #輸出包括.開頭的隱藏文件
    • ls -F #給條目追加文件類型標識符,若是目錄,會有目錄名/
    • ls -R #遞歸地列出子目錄內容
    • ls -l #按長列表輸出格式顯示
    • ls -i #顯示每個文件的索引值
    • ls -s #輸出每個文件的塊大小
    • 顯示指定文件 myprog

      ls -l myprog

    • 顯示指定文件 mypro? (問號代表一個字符)

      ls -l mypro?

    • 顯示指定文件 mypro* (星號代表零個或多個字符)

      ls -l mypro*

  2. touch命令

    • touch test1 #創建文件test1
  3. cp命令

    • cp test1 test2 # test1複製到test2,test2有新的創建時間和修改時間
    • cp -p test1 test2 # 保留原文件的訪問時間和修改時間
    • cp -R dir1 dir2 #遞歸複製整個目錄
    • cp -f test1 test2 #強制複製,不提示用戶
  4. mv命令

    • mv test1 test2 # test1重命名(移動)爲test2
    • 移動有軟鏈接指向的文件時,軟鏈接可能會失效。
  5. rm命令
    • rm -i test1 #交互式刪除test1
    • rm -f test1 #強制刪除test1
  6. mkdir命令
    • mkdir dir1 #創建目錄
  7. rmdir命令
    • rmdir dir1 #刪除目錄,默認只能刪除空目錄
    • rmdir --ignore-fail-on-non-empty #強制刪除
  8. cat命令
    • cat test1 #顯示test1中的內容
    • cat -n test1 #顯示test1中的內容時加上行號
    • cat -b test1 #顯示行號但忽略空白行
    • cat -s test1 #多個空白行壓縮到單個空白行
  9. more命令
    • more命令會顯示文本文件的內容,但會在顯示每頁數據之後停下來
  10. less命令
    • less命令實爲more命令的升級版,可顯示文件的內容,而不用讀取整個文件
  11. tail命令
    • tail命令會顯示文件末尾部分的內容
    • tail -f test1 #實時監測test1的內容
  12. head命令
    • head命令會顯示文件開頭部分的內容

2. 更多的bash shell命令

監測程序

  1. ps命令
    • 默認情況下,ps命令只會顯示運行在當前控制檯下的屬於當前用戶的進程
    • ps -ef #查看系統上運行的所有進程
    • ps -efH #查看系統上運行的所有進程,組織成一個層級格式
  2. top命令
    • top命令用於實時監測進程
  3. kill命令
    • 默認情況下,kill命令會發送一個TERM(儘可能終止)信號,但可能會被進程忽略
    • kill命令只能通過PID而不能通過進程名來停止進程
    • kill -s HUP 3940 #掛起pid爲3940的進程
  4. killall命令
    - killall命令可以使用進程名停止進程
    • killall http* #停止所有http開頭的進程

監測磁盤空間

  1. mount命令

    • 默認情況下,mount命令會輸出當前系統上掛在的設備列表
    • 媒體設備掛在到了虛擬目錄後,root用戶就有了對該設備的所有訪問權限
    • mount -t vfat /dev/sdb1 /media/disk #將設備/dev/sdb1掛在到/media/disk,設備的文件類型爲vfat
    • mount命令可以將CD鏡像.iso文件當作真實CD來掛載,用戶就能訪問該.iso的文件系統了
    mkdir mnt
    su
    mount -t iso9660 -o loop MEPIS_KDE4-LIVE-DVD_32.iso mnt
    ls -l mnt
    cd mnt/boot
    ls -l
  2. umount命令
    • 從Linux系統上移除一個可移動設備時,不能直接從系統上移除,而應該先卸載它。
    • umount命令支持通過設備文件或是掛載點來指定要卸載的設備
    • umount /home/rich/mnt
  3. df命令
    • df #用來查看所有已掛載磁盤的使用情況
    • df -h #以人類可讀的形式顯示
  4. du命令
    • 默認情況下,du命令會顯示當前目錄下所有文件、目錄和子目錄的磁盤使用情況。
    • du Desktop/pythonworkspace/ #顯示Desktop/pythonworkspace磁盤使用情況
    • du -c Desktop/pythonworkspace/ #顯示所以已列出文件總的大小
    • du -h Desktop/pythonworkspace/ #按人類可度的形式顯示
    • du -s Desktop/pythonworkspace/ #只顯示輸出參數的總計

處理數據文件

  1. sort命令
    • sort file1 #按字符排序file1文件中的內容並打印
    • sort -n file1 #按數值排序
    • sort -M file1 #按月份排序,sort可以識別三個字符的月份
    • sort -t':' -k 3 -n /etc/passwd #-t指定字段分隔符,-k指定排序的字段
    • du -sh * | sort -nr #將系統文件按磁盤使用大小排序,-r爲降序
  2. grep命令
    • grep命令會到輸入中或你指定的文件中查找包含匹配製定模式的字符的行
    • grep t file1 #file1中查找包含字符t的行
    • grep -v t file1 #在file1中反向查找
    • grep -n t file1 #顯示匹配的行號
    • grep -c t file1 #統計有多少行匹配
    • grep -e t -e f file1 #指定多個模式,匹配任意一個即可
    • grep [tf] file1 #正則匹配,t或f中的任意一個匹配
  3. bzip2命令
    • bzip2 myprog #bzip2命令嘗試壓縮myprog文件,並用壓縮文件替換原始文件
    • bunzip2 myprog.bz2 #bunzip2解壓文件
  4. gzip命令
    • gzip myprog # gzip壓縮myprog文件
    • gzip my* #通配符會壓縮目錄中匹配的每個文件,每個文件都產生一個單獨的壓縮文件
  5. zip命令
    • zip的強大之處在於能夠將整個目錄下的文件都壓縮進單個文件
    • zip -r testzip test #創建testzip.zip,並遞歸test的每個目錄和文件,都壓縮加進該zip文件
  6. tar命令
    • tar -cvf test.tar test/ test2/ #創建一個含有test和test2目錄內容的叫test.tar的歸檔文件
    • tar -tf test.tar # 列出test.tar的內容,但不解壓
    • tar -xvf test.tar #解壓test.tar

問題

  1. zip , gzip的區別

gzip是一種文件壓縮工具(或該壓縮工具產生的壓縮文件格式),它的設計目標是處理單個的文件。gzip在壓縮文件中的數據時使用的就是zlib。我們在UNIX/Linux上經常看到的壓縮包後綴都是.tar.gz或.tgz,也就是先用tar把多個文件打包成單個文件,再用gzip壓縮的結果。

zip只是一種數據結構,跟rar同類型。zip是適用於壓縮多個文件的格式(相應的工具有PkZip和WinZip等),因此,zip文件還要進一步包含文件目錄結構的信息,比gzip的頭信息更多。但需要注意,zip格式可採用多種壓縮算法,我們常見的zip文件大多不是用zlib的算法壓縮的,其壓縮數據的格式與gzip大不一樣。

發佈了195 篇原創文章 · 獲贊 122 · 訪問量 72萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章