跳到主內容

基本指令

ls

列出當前目錄的內容

ls -la

列出當前目錄的內容包含隱藏目錄

Linux隱藏目錄或檔案的作法,是在檔名前面加 .

ls ~/

列出自己的家目錄

一般使用者的家目錄位於 /home/ ; 最高權限管理者家目錄位於 /root/


mkdir test

建立目錄

mkdir -p test/a

於目錄下建立目錄


cp a.php b.php

複製檔案

一般最常用在當我需要再新增網站,copy nginx 設定檔 cp /etc/nginx/sites-enabled/site1 /etc/nginx/sites-enabled/site2

cp -r ~/abc /var/www/

移動目錄,把家目錄中的abc 移到 /var/www/

分享一個小技巧,按鍵盤的tab,可以幫你索引檔案或目錄,例如輸入 /var/w 按鍵盤tab 就會自動跑出 /var/www/


rm xxx.txt

刪除檔案

rm -r xxx

刪除目錄

在管理linux檔案管理有一件非常重要的事情要交待,linux沒有資源回收桶,檔案刪了就沒了

如果你不小心下了這個指令,整個系統就GG了 rm -rf /


mv ~/abc /var/www/

搬動檔案,相當於剪下貼上


tar zcf abc.tar.gz abc

壓縮檔案,把目錄abc壓縮成 abc.tar.gz

tar zxvf abc.tar.gz

解壓縮檔案,把 abc.tar.gz 解開

unzip abc.zip

如果要解開zip就用這個指令


cat /var/log/nginx/access.log

在螢幕列印出檔案的內容,一般也蠻常會運用在查詢log檔

cat /var/log/nginx/access.log | more

如果內容太多,可以在最後加上 | more,就可以由上到下查看,查看模示按空白鍵會一直往下,按Ctrl + C,可退出

cat /var/log/nginx/access.log | less

與加上more能達到大同小異的功能

zcat /var/log/nginx/access.log.10.gz

在查詢log檔時,會蠻有機會用到zcat去查看已被壓縮.gz的文件


htop

查看主機的資訊,CPU、記憶體、程式運作情形


vi xxx.txt
nano xxx.txt

編輯檔案,我是習慣用vi,nano比較易學


ssh name@ip

透過ssh連線到主機

scp -r /var/www/ name@ip:/var/www/

透過ssh複製檔案至另一台主機

rsync -av --delete /var/www/wp/wp-content/uploads/ root@ip:/var/www/wp/zfun/wp-content/uploads/
rsync -av --delete /var/www/wp/wp-content/plugins/ root@ip:/var/www/wp/zfun/wp-content/plugins/

透過rsync同步檔案

免密碼登入遠端主機的方式如下
本機端執行  ssh-keygen -t rsa
cat .ssh/id_rsa.pub
連線遠端主機 .ssh/authorized_keys 貼上cat複製的內容
退出再重登一次,如果不用密碼即成功


crontab -e

設定排程,一般會用作在指定的時間幫你執行特定的程式


/etc/init.d/nginx reload

重新讀取nginx設定檔,正常情況,當我有新增或修改conf檔時,會先用 nginx -t 查看看有沒有問題

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

出現上情的內容確認沒問題後,再執行reload

/etc/init.d/nginx restart

重新啟用服務

伺服器的服務管理,通常會針對他執行 reload, restart, stop, start 進行維護及管理
Nginx: /etc/init.d/nginx
PHP: /etc/init.d/php7.4-fpm
MySQL: /etc/init.d/mysql
我會在網站的離峰時間用cron執行restart,以確保服務能順暢


一些shell script筆記

以上最基本的指令及觀念務必要學會,其他的話2023年AI開始普及使用後,在系統管理非常有幫助,建議大家可以多多利用