搜尋特定類型的檔案: find
1.找檔案最常遇到的情況是根據檔案名稱搜尋, 例如要在 /var/www/test 中找 filename.txt 檔案。
$ find /var/www/test/ -name filename.txt;
$ find . -name filename.txt;
(當前目錄下搜尋)
2.另一個常見的搜尋例子是, 找要出指定副檔名的檔案, 例如要找出所有 “.log” 結尾的檔案。
$ find /var/www/test/ -name "*.log";
3.find 指令其中一個十分有用的參數是 -type, 加入了-type 參數後, 可以指令要找的檔案類型, 一般常見的檔案類型會以下字符指定:
f -> 檔案
d -> 目錄
l -> 連結檔
c -> character devices
b -> block devices
ex: 找出所有 /var/www/html/ 的連結檔, 用以下指令。
$ find /var/www/html/ -type l;
4.find 另一個常用的功能是 -size 參數, 這樣便可以找出指定大小的檔案, 例如要找出所有大過 100MB 的檔案, 便可以用以下語法。
$ find /var/www/html/ -size +100MB;
Linux 查看檔案最末端: tail
1.列出laravel.log最後面10列內容
$ tail laravel.log;
2.列出副檔案為.log的所有檔案最後面5列內容
$ tail -n 5 *.log;
3.列出副檔案為.log的所有檔案最前面5列內容
$ tail -n +5 *.log;
4.列出laravel.log最面200Bytes內容
$ tail -c 200 laravel.log;
5.以系統管理者身份,監控持續成長的紀錄檔/var/log/message
$ tail -f /var/log/message;
Linux 匹配文字: grep
- 搜尋關鍵字
$ grep keyword filename.txt;
$ ls /etc/ | grep network;
2.不分大小寫(-i)
$ grep -i Keyword filename.txt;
3.標示行號參考資料(-n)
$ grep -n Ubuntu /etc/os-release;
4.遞迴搜尋檔案(-r)
$ grep -r Ubuntu /etc/;
5.正規表示法(精準篩選出 test
這個單字)
$ ls | grep "\<test\>"
參考資料:
https://blog.gtwang.org/linux/linux-grep-command-tutorial-examples/
模擬 FTP 的檔案傳輸方式: sftp
如果你只是想要從遠端伺服器下載或上傳檔案就必須要使用 sftp 或 scp。
$ sftp username@host
- lpwd → 看sftp對應的local端位置
- lls → 列出目前local端所在目錄下的檔名
- lcd → 變換目錄到local端的 PATH 當中
- pwd → 看sftp對應的位置
- ls → 列出目前遠端所在目錄下的檔名
- get -r * → 下載所有資料夾及檔案
參考資料:
Linux 打包備份目錄、壓縮與解壓縮指令: tar
1.指令參數 -c
、-t
、-x
不能同時出現在指令中。
2.指令參數 -z
、-j
、-J
都是壓縮功能,不能同時出現在指令中。
3.指令格式:
$ tar -常用參數 -f 檔案名稱 -C 要打包的目錄
4.壓縮範例:打包順便壓縮 vagrant 這個目錄。
$ tar -zcv -f vagrant.tar.gz -C vargrant
含有 z
壓縮、c
打包、v
看過程檔名以及 f
指定檔案名稱共四個參數。
5.解壓縮範例:從其它主機上的 nginx 設定備份檔解壓縮至 /etc/nginx
。
$ tar -xv -f sites-enabled.tar.gz -C /etc/nginx
Linux 遠端檔案同步與備份: rsync
rsync
在第一次複製檔案時,會複製完整的檔案內容,而之後再次複製檔案時,就會以 delta transfer 演算法檢查新舊檔案之間的差異,只傳送有變動的部份,可加快備份速度。
1.指令格式:
$ rsync -常用參數 來源檔案 目的檔案
2.本地端備份範例
$ rsync -avh /home/myfile.gz /home/pi/tmp
將 /home/myfile.gz
複製到 /home/pi/tmp/
目錄
3.遠端備份範例
$ rsync -avzh /home/myfile.gz pi@192.168.1.10:/mybackup/
將本地端的 myfile.gz
備份至 pi@192.168.1.12
的 /mybackup/
目錄中。以下指令就會將本地端的 myfile.gz
備份至 pi@192.168.1.12
的 /mybackup/
目錄中,而rsync
預設會以 ssh 的方式登入遠端的機器,所以在執行這行備份指令之後,必須要接著輸入pi@192.168.1.12
的密碼。
4.自訂 SSH 連接埠的遠端備份範例
$ rsync -avzh -e "ssh -p 20" /home/myfile.gz pi@192.168.1.10:/mybackup/
5.同步刪除檔案
rsync
預設只會將來源端現存的檔案同步更新至目的端(同步所有新增或修改的檔案)。
如果想要讓 rsync
也同步將不存在於來源端的檔案刪除的話,可以加上 --delete
參數。
$ rsync -avh --delete myfolder/ mybackup/
6.備份特定檔案
$ rsync -avh --exclude '*.txt' --exclude '*.py' myfolder/ mybackup/
rsync
在備份檔案時,排除所有 *.txt
和*.py
的檔案
很潮的編輯器: vim
我們可以將vim區分為下圖這三個模式:
一般指令模式:
- 大寫V是游標經過一行就選擇一行
- 小寫v是游標經過的位置就選擇起來
- 小寫y是複製選擇起來的文字區塊
- 小寫d是刪除選擇起來的文字區塊
- 小寫p是貼上剛才複製好的文字
- 小寫u是復原上一步驟
指令列命令模式:
- 在一般模式下輸入”/”是搜尋字串,並在斜線後方鍵入要搜尋的字串,並按下Enter。當找到一個符合的字串後,若要繼續往下搜尋,可以鍵入小寫n。