基本指令
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開始普及使用後,在系統管理非常有幫助,建議大家可以多多利用