Linux個人操作手冊

如何遠端連線Linux伺服器:SSH連線

方法一:使用金鑰

ssh -i '/…/keyfilename.pem' username@ip

個人遇到過的問題紀錄

  1. 使用root進行登入,被AWS deny → 改用ec2-user
  2. 金鑰文件權限太過開放(Permissions 0644 for “金鑰” are too open.) → chmod 0600 金鑰文件

方法二:使用密碼

ssh username@‌ip

enter後會跳出輸入密碼,輸入完後即成功連線至伺服器

Linux基本操作

移動路徑

指令說明
cd /var前往/var路徑
cd ..前往上一個路徑
ls羅列當前路徑所有檔案
ls -a羅列當前路徑所有檔案,包含隱藏檔案
cd /var/ 然後按tab可以查看該路徑有什麼檔案或資料夾,路徑名或檔名輸入到一半也可以直接按tab系統輔助幫你輸入完成

刪除或修改檔案/資料夾

指令說明
touch filename創建新空檔案
echo “Hello, World!” > filename創建並寫入新檔案
rm filename刪除檔案
mkdir foldername創建資料夾
rmdir foldername刪除資料夾
rmdir -r foldername刪除資料夾包含裡面檔案(慎用)

權限相關

指令說明
sudo + 原指令sudo可以將操作權限提升到最大
ls -l + 檔案可以查詢該檔案的權限設定
chmod 設定值 filename可以重設該檔案的權限

如何下載相關

指令說明
「wget https://example.com/file.zip」從網絡上下載文件
「curl -O https://example.com/file.zip」從網絡上下載文件
scp username@remote_server_ip:/path/to/remote/file /path/to/local/directory用於從本地計算機將文件複製到遠程計算機,如上傳程式碼到伺服器
sudo apt install package_name安裝指定名稱的軟件包

查看文件(不打開)

指令說明
cat + 文件名可以羅列檔案所有內容
tail -n 10 + 文件可以羅列最後十五條內容,檔案內容太多很好用

編輯文件

有兩種nano(快速簡易編輯)和vim(強大但複雜),我用習慣vim了,我就只介紹vim

  • 開啟
    • vim filename
    • sudo vim filename
  • 編輯操作
    • 使用 dd 刪除整行
    • 撤銷和重做:
      • 使用 u 撤銷上一個操作。
      • 使用 Ctrl + r 重做上一個被撤銷的操作。
  • 切換模式
    • 編輯模式:正常模式按下i
    • 搜尋模式:正常模式按下/
    • 切回正常模式:按下esc
  • 搜尋操作
    • 然後輸入要搜索的文本,按下 Enter 開始搜索。使用 n(下一個匹配)和 N(上一個匹配)瀏覽搜索結果。
    • 要替換文本,可以使用 :s/old_text/new_text/g,其中 old_text 是要替換的文本,new_text 是新文本,g 表示全局替換。
  • 退出文件
    • 不儲存退出 :q
    • 不儲存並強制退出 :q!
    • 儲存退出 :wq
    • 儲存並強制退出 :wq!
  • 如何從外部傳送檔案進去
    • scp
      • scp username@remote_server_ip:/path/to/remote/file /path/to/local/directory
    • sftp
      • sftp username@remote_server_ip
      • put local_file /remote/directory/
      • 使用 exit 或 quit 命令退出SFTP連接。

Linux伺服器的標準目錄結構說明

  • /etc: 此目錄包含系統配置文件和腳本,用於設置和管理系統的各種參數和選項。
  • /home: 這個目錄包含用戶的個人文件和目錄,每個用戶都有一個專用的子目錄。
  • /tmp: 這個目錄用於臨時文件的存儲,這些文件在系統重新啟動後通常會被刪除。
  • /usr: 這個目錄包含大多數用戶和系統程序,如應用軟體、庫文件和文檔。
  • /var: 此目錄包含變動的數據文件,如日誌文件、郵件文件和緩存。

…其他我沒在用的我就不寫了

Linux伺服器常用實務應用 (以Nginx為例)

查詢伺服器Log相關

cd /var/log
tail -n 20 /var/log/nginx/access.log
tail -n 20 /var/log/nginx/error.log

說明

  • 基本上所有Log都會放在/var/log這個路徑裡
  • /var/log/nginx/access.log 紀錄所有訪問者資料及訪問結果
  • /var/log/nginx/error.log 這是Nginx伺服器的錯誤日誌。它記錄了伺服器遇到的任何錯誤或問題,例如配置錯誤、無法訪問文件、HTTP 錯誤等。檢查這個日誌可以幫助您追蹤和解決伺服器運行時的錯誤

伺服器設定相關

vim /etc/nginx/nginx.conf
cd /etc/nginx/conf.d/
sudo systemctl restart nginx
sudo systemctl reload nginx
netstat -tuln | grep 8080

說明

  • vim /etc/nginx/nginx.conf 編輯nginx設定
  • cd /etc/nginx/conf.d/ 有時候一些特殊設定會另外寫在這個路徑中
  • sudo systemctl restart nginx → 重啟伺服器
  • sudo systemctl reload nginx → 重讀伺服器
  • netstat -tuln | grep 8080 → 查詢監聽8080port

其他可能會用到

說明

  • 「curl http://nginx_server_ip」 → 打伺服器看有沒有回應
  • 「ping java_server_ip」 → ping伺服器看有沒有回應