使用服務器時常用的linux命令
最近常常用服務器跑一些程序,有一些命令經常需要用到,就隨手做個記錄。
1. 連接服務器
ssh user@ip
eg: ssh [email protected] #fzl是服務器上我的賬號,10.13.20.221是服務器的ip地址,之後輸入密碼就好了。
在使用ssh連接服務器之前,需要確認已經安裝了ssh服務。如果沒有的話,需要先安裝。具體命令如下:
如果是redhat,fedora,centos等linux系統,使用如下命令安裝
sudo yum install sshd
sudo yum install openssh-server
如果你使用的是debian,ubuntu,就使用如下命令安裝
sudo apt-get install sshd
sudo apt-get install openssh-server
#重啓服務,就安裝好了
service sshd start
2. 將服務器的jupyter notebook在本地端口打開
一般都會使用ssh命令遠程連接服務器。在服務器上編輯python腳本比較麻煩,而使用jupyter notebook編輯器比較方便。
一般本地的jupyter notebook 默認使用端口號 8888。
#連接上服務器後,在服務器上輸入以下命令
jupyter notebook --port=8889 #將服務器的jupyter notebok 的端口指定爲8889
#將服務器的8889端口指定使用本地8890端口打開
ssh -f -N -L 8890:localhost:8889 user@ip
#然後在 本地的瀏覽器上輸入 : localhost8890 ,輸入密碼,就可以愉快的code了
3. 傳輸文件
可以使用 winscp軟件進行win和linux之間的文件傳輸。
也可以使用如下命令:
#src_file爲你要傳到服務器上的文件夾的絕對路徑,dst_file爲你服務器上的保存絕對路徑
scp -r src_file user@ip:dst_file
#舉個例子
eg: scp -r /home/fzl/haha [email protected] /home/zhoujielun
4. 使用screen後臺運行程序(必備)
一般在有很多程序需要跑時,如果用jupyter notebook跑,容易不太穩定,比如,斷網、時間一長就自動卡了。直接使用終端(terminal)跑程序也可以,但一個終端只能跑一個程序,程序多,就需要不斷打開新的終端,很是麻煩。這個時候就需要用screen了
使用screen可以在一個終端下,開闢多個session,且每個session互不干擾,且非常穩定,即使ssh連接斷開,即斷電斷網,都可以保證程序在服務器後臺上平穩運行,你說氣不氣人。
具體使用命令如下:
- 新建
screen -S name #新建一個進程,eg : screen -S text
一般新建了session後,就會自動進入到這個sessio裏,會發現和在terminal一樣,所有命令都一樣。這個時候,你就可以 python aaa.py ,使得你的程序run起來。
- 檢查輸出
當程序在跑時,如果不斷有輸出打印到屏幕上,一會屏幕就被填滿了,如果想查看剛剛的之前的輸出信息,
Ctrl+a+[ #即在電腦上,同時按住這三個鍵,之後,就可以使用 上下鍵移動查看之前的輸出信息了。
#查看結束後,按 Esc 退出查看模式,
- 退出session
當前程序在運行,你還想進行其他操作,就要退出當前session.
Ctrl a+d #按住ctrl,同時依次按a 和d 。
退出這個新建的session後,同時保持後臺程序在運行
- 查看和進入sesson
screen -ls #查看所有session的名字(name)和標號(會給每個session分配一個id號)
會列出所有的session的名字和id號。
如果想進入某個session
screen -r name(or id) #eg: screen -r test
- 殺死指定session
當某個session任務完成後,可以把他清除掉
screen -X -S name(or id) quit #eg: screen -X -S test quit
https://blog.csdn.net/thumbcs/article/details/81072961
5. 查看電腦cpu信息及其運行情況
cat /proc/cpuinfo #查看cpu信息
grep -c 'model name' /proc/cpuinfo #直接返回cpu的總核心數(表示可以開幾個進程)
top #直接查看當前電腦的cpu使用情況,也可以看到各個進程情況
6. 殺死進程
ps -ef | grep node | awk '{print $1}' | xargs kill -9 #殺死進程
ps -ef #顯示當前所有進程
grep node #濾出"node"進程
awk '{print $1}' #輸出第一列,一般是僅存的UID號,也就是進程所有者的名字
xargs kill -9 殺掉上面過濾出來的所有進程
參考鏈接
https://blog.csdn.net/liupeifeng3514/article/details/81044115