使用服务器时常用的linux命令
最近常常用服务器跑一些程序,有一些命令经常需要用到,就随手做个记录。
1. 连接服务器
ssh user@ip
eg: ssh fzl@10.13.20.221 #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 fzl@10.13.20.221 /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