如何遠端連線Linux伺服器:SSH連線
方法一:使用金鑰
ssh -i '/…/keyfilename.pem' username@ip
個人遇到過的問題紀錄
- 使用root進行登入,被AWS deny → 改用ec2-user
- 金鑰文件權限太過開放(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連接。
- scp
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伺服器看有沒有回應