linux shell 學習摘記(3)

onephone發表於2016-10-02

《linux shell 指令碼程式設計攻略 (第2版)》 第三章 “以檔案之名” 筆記

常用命令:comm, chmod/chown, chattr, touch, 列出目錄的相關命令, readlink, file, <<<, dd, 有關光碟的各類命令,mkfs.ext4, mkisofs, isohybrid, mount/umount, fdisk, loseup, sync, cdrecord, eject, diff, patch, seq, tail, dmesg, pidof, pushd/popd, wc, tree

  • comm A.txt B.txt -2 -3 刪除第二列和第三列,保留只在A.txt中出現的行

  • 檔案許可權

    1. chmod u=rwx g=rw o=r filename, 即chmod 764 filename
    2. chown USER.GROUP filename 修改使用者名稱和組
    3. chmod a+t directoryname 給目錄設定粘滯位(只有目錄的所有者才能刪除目錄中的檔案)
    4. chmod +s executablefile 允許其他使用者以檔案所有者的身份來執行檔案(setuid),只能應用於Linux ELF格式二進位制檔案上
    5. chattr +i file將檔案設定為不可修改, chattr -i file移除不可修改屬性
  • touch -d "2016-09-22" filename 也用-c -m引數,表示更改檔案訪問時間和內容修改時間

  • ls -s target symboliclinkname, ls -l | grep "^1", find . -type l -print

  • readlink symboliclinkname

  • file -b filename

  • <<<可以將字串作為輸入檔案 此處有程式碼

  • loopback(環迴檔案)是指那些在檔案中而非物理裝置中建立的檔案系統,可以將這些檔案掛載到掛載點上(在物理磁碟中建立邏輯磁碟。

    1. dd if=/dev/zero of=loopbackfile.img bs=1G count=1
    2. mkfs.ext4 loopbackfile.img
    3. mount -o loop loopbackfile.img /mnt/loopback 掛載環迴檔案系統(連線到名為/dev/loop1或loop2上)或者手動losetup /dev/loop1 loopbackfile.img && mount /dev/loop1 /mnt/loopback
    4. umout /mnt/loopbackumount /dev/loop1
  • 在環回映象中建立分割槽(並掛在其中一個分割槽)

    1. losetup /dev/loop1 loopback.img
    2. fdisk /dev/loop1 建立分割槽
    3. losetup -o 32256 /dev/loop2 loopback.img 掛載第一個分割槽
  • ISO檔案作為環迴檔案掛載

    1. mount -o loop linux.iso /mnt/iso
    2. sync
  • 生成ISO檔案,dd if=/dev/cdrom of=image.iso (建立iso映象)或者 mkisofs -V "Label" -o image.iso sourcedir (建立ISO檔案系統)

  • 將可引導的ISO檔案寫入USB裝置來換成混合ISO

    1. isohybrid image.iso 獲得混合image.iso
    2. dd if=image.iso of=/dev/sdb1 或者 cat image.iso /dev/sdb1
  • 燒錄ISOcdrecord -v dev=/dev/cdrom image.iso, 加引數-speed 8表示燒錄速度為8x; 多區段燒錄cdrecord -v dev=/dev/cdrom image.iso -multi

  • eject, eject -t 命令列開啟/關閉光碟機

  • diff -u file1.txt file2.txt > version.path, patch -p1 file1.txt < version.path(對已修補過的檔案進行修補將會撤銷修改) diff -Naur -a 將所有檔案視為文字檔案, -u 生成一體化輸出, -r 遍歷目錄下的所有檔案, -N 將所有確實檔案視為空檔案

  • seq 100 | tail -n 5, tail -n +M 列印第M行及之後的行, dmesg | tail -f -s 2 dmesg檢視核心的環形緩衝區訊息,每隔2秒, PID=$(pidof Foo) && tail -f file --pid $PID程式技術後tail也會結束

  • 列出目錄ls -d */, ls -F | grep "/$", ls -l | grep "^d", find. -type d -maxdepth 1 -print

  • 多個目錄間來回切換pushd /var/www, pushd /usr/scr(壓入並切換路徑), pushd +3 切換路徑(從0開始), popd刪除最後新增的路徑並切換至該目錄, popd +3移除特定的路徑並切換

  • wc file(列印出檔案行數,單詞書,字元數)

  • 列印目錄樹 tree . -P "*.md"顯示出匹配某種樣式的檔案, tree . -I "*.md~"顯示不匹配某種樣式的檔案, tree . -h 列印出檔案和目錄大小, tree . -H http://localhost -o out.html

相關文章