tip 經常使用Linux命令
內容主要包括:查看IP地址、ssh相關操做、scp相關操做、進程相關操做、端口相關操做、凍結終端、釋放/獲取IP地址、密匙相關操做、使用密匙進行免密登錄、不經過配置文件實現免密登錄、config配置文件拓展算法
查看 IP 地址能夠使用 ip 命令或 ifconfig 命令,推薦使用 ip 命令:服務器
1)使用 ip 命令查看 IP 地址:ssh
ip addr
或tcp
ip addr | grep inet(展現更爲簡單)
2)使用 ifconfig 查看 IP 地址:加密
ifconfig
或code
ifconfig | grep inet(展現更爲簡單)
SSH 協議可讓咱們登錄遠程服務器,在使用 SSH 協議以前,須要確保:server
客戶機和服務器都安裝了 SSH 協議
服務器的 SSH 處於開啓狀態
1)安裝 SSH 協議
Ubuntu 上默認是沒有安裝 SSH 服務的,須要咱們進行手動安裝:進程
sudo apt-get install openssh-client openssh-server
2)查看 SSH 服務是否處於開啓狀態
安裝好 SSH 服務後會就會默認開啓,咱們也能夠經過 systemctl 命令進行查看:ip
systemctl status sshd
若是服務沒有開啓,能夠手動開啓:資源
systemctl start sshd
有時候 SSH 服務多是禁用的,須要先解除禁用:
systemctl enable sshd
解除禁用後就能夠使用 systemctl start sshd 開啓 SSH 服務了。
也能夠中止 SSH 服務:
systemctl stop sshd
當咱們安裝並開啓 SSH 服務後,就能夠使用 ssh 命令進行遠程登陸了,該命令的使用方式爲:
ssh user@address
如:
ssh charley@192.168.47.133
SCP 是基於 SSH 的協議,能夠用來上傳資源至服務器或者從服務器下載資源。
1)上傳文件
scp path user@address:path
上面第一個 path 是本地要上傳到服務器的文件路徑,第二個 path 是要上傳到服務器的目標地址。注意不要遺忘服務器 IP 地址和目標路徑之間的冒號。
如:
scp ./test.txt charley@192.168.47.133:/home/charley
也能夠上傳目錄:
scp -r ./mysite charley@192.168.47.133:/home/charley
2)下載文件
scp charley@192.168.47.133:/home/charley/helloworld.js .
也能夠下載目錄:
scp -r charley@192.168.47.133:/home/charley/mysite2 .
總結一下,scp 命令前面的參數是上傳或下載的源地址,後面的參數是上傳或下載的目標地址,若是須要上傳或下載目錄,須要在 scp 命令後加上短參數 -r。
1)查看當前的進程
ps aux
或
ps aux | greo xxx(查看某一個進程)
2)殺死進程
kill PID(進程號)
3)強制殺死進程
kill -9 PID
使用 netstat 命令能夠查看端口信息:
netstat
或
netstat [-anp]
或
netstat [-anp] | grep PORT(端口)
也能夠使用 lsof 命令查看端口信息:
lsof -i tcp:8080
在終端按下 Ctrl + S 組合鍵,終端就會被凍結。若是想解凍的話,按下 Ctrl + Q 組合鍵便可。
dhclient 命令能夠釋放或者獲取本機的 IP 地址。
1)釋放操做
dhclient -r
2)獲取操做
dhclient
當局域網的 IP 地址衝突時,能夠用此方法解決。
能夠使用 ssh-keygen (Key Generator)生成公鑰和私鑰,須要先安裝 SSH 服務。
ssh-keygen 的使用:
用法以下:
ssh-keygen -t rsa -C "Charley" -f "charley_rsa"
命令執行完成後,會在執行命令的目錄中生成一個 charley_rsa 和 charley_rsa.pub 文件,其中前一個是私鑰,後一個是公鑰。切記私鑰必定不要泄露。
有了公鑰和私鑰後,就能夠在服務器進行免密登錄了。首先,須要將咱們的公鑰傳遞到服務器用戶主目錄的 .ssh 目錄下。如 /home/charley/.ssh 或 /root/.ssh,傳到前一個目錄就能夠免密登錄到 charley 這個用戶,傳到後一個目錄就能夠免密登錄到 ROOT 用戶,以此類推。
服務器接受到公鑰文件後,須要將公鑰文件的內容追加到 authorized_keys 文件中,若是服務器尚未該文件,須要先建立一個。
cat charley_rsa.pub >> authorized_keys
建議在生成密鑰時須要將私鑰放在用戶主目錄的 .ssh 文件夾下以方便管理,而且須要確認私鑰的操做權限爲 600,即只能私鑰的全部者進行操做,其餘用戶不能操做私鑰。
接下來,咱們須要在客戶機配置一個 config 文件,以實現免密登錄,若是客戶機上尚未該文件,須要先建立一個。
config 文件配置的模板以下:
User charley
Host charley-server
HostName 192.168.1.109
Port 22
StrictHostKeyChecking no
IdentityFile ~/.ssh/charley_rsa
IdentitiesOnly yes
Protocol 2 Compression yes ServerAliveInterval 60 ServerAliveCountMax 20 LogLevel INFO
寫好配置文件後,咱們輸入 ssh charley-server 就能夠實現免密登錄了。
前面是介紹了經過 config 配置文件的方式實現免密登錄,但在某些狀況下咱們可能沒有權限操做配置文件,這就要手動指定祕鑰進行登錄了。手動指定祕鑰進行登錄也很簡單:
ssh -i charley_rsa charley@192.168.1.109
經過 -i 短參數指定了客戶機的私鑰地址,一樣能夠實現服務器的免密登錄。
在 config 配置文件中,不只能夠配置單臺主機的免密登錄,還能夠配置多臺主機的免密登錄,同時還能夠對多臺主機共用一個公鑰或不一樣的公鑰進行配置。如下提供一個簡單的配置模板。
1)多臺主機共用一個公鑰
Host charley-first-server HostName xxx Port 22
Host charley-second-server HostName xxx Port 22 Host *-server User charley IdentityFile ~/.ssh/charley_rsa Protocol 2 Compression yes ServerAliveInterval 60 ServerAliveCountMax 20 LogLevel INFO
2)多臺主機使用不一樣的公鑰
User charley Host charley-first-server HostName xxx Port 22 StrictHostKeyChecking no IdentityFile ~/.ssh/charley_first_rsa IdentitiesOnly yes Protocol 2 Compression yes ServerAliveInterval 60 ServerAliveCountMax 20 LogLevel INFO
User charley Host charley-second-server HostName xxx Port 22 StrictHostKeyChecking no IdentityFile ~/.ssh/charley_second_rsa IdentitiesOnly yes Protocol 2 Compression yes ServerAliveInterval 60 ServerAliveCountMax 20 LogLevel INFO
本文介紹了一些和 Linux 遠程操做相關的命令,這些命令都是基於 SSH 協議的,包括用來遠程登錄的 ssh 命令和用來上傳或下載文件的 scp 命令。文章的後半部分,介紹瞭如何使用 ssh-keygen 命令生成密鑰文件,以及經過配置文件和手動指定密鑰文件兩種實現免密登錄的方式。須要注意的是,要實現免密登錄,須要在服務器上保存客戶機的公鑰文件,同時須要將該公鑰文件的內容追加到 authorized_keys 文件中。