Linux 常见使用操作

服务器上跑代码,熟练掌握以下命令行,能高效提高编程效率。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Tmux终端复用器

服务器跑代码时候,经常遇到两个常见的问题:1.当前窗口执行程序被占用时,我想再查看一些信息、运行别的代码。 2.当我ssh登陆远程服务器时,打开远程窗口执行程序,当我电脑息屏时进程就会停止,会报错“broken pipe”。
Tmux 是一个终端复用器(terminal multiplexer), 不仅可以给终端开多个分屏,方便进行debug调试;还能将会话和窗口分离,也就是说,即使我窗口关闭了或者断网了,我在服务器上跑的程序还在运行(会话仍然存在),我可以去干别的事情,等需要的时候再重新接入窗口查看。
类似的,在macOS上也可下载iterm2,里面包含了tmux的功能,感兴趣的读者可以查阅。
比如说你在terminal运行一个程序时,你先在运行过程中查看一些信息,但又无法退出程序,此时就可以在tmux另开一个窗口进行查看。
大部分指令是先“ctrl + b”,松开后结合别的键[key]使用。

各个部分关系

执行程序就是开启一次会话,显示的一个命令行界面就是一个窗口,会话和窗口可以分离,也就是退出窗口,如果不杀死,里面的会话依然进行。
可以在多个会话间切换,一个会话里可以开多个窗口【c】,多个窗口通过【p】/【n】切换;一个窗口可以拆分成多个窗格【%】/【"】,通过【zu】【】

常用指令

# 新建一个tmux 会话,叫<session-name>
tmux new -s <session-name>
例子:tmux new -s hello_world
# 杀死一个会话
tmux kill-session -t <session-name>
# 查看当前所有tmux 会话
tmux ls
# 进入已经创建过的窗口
tmux attach -t <session-name>
tmux a # 进入默认的第一个窗口

# 划分左右两个窗格
ctrl b %
# 划分上下两个窗格
ctrl b "
#在几个pane间跳转
ctrl b 左箭头/右箭头
#关闭当前的pane。执行后会二次确认要删除的pane,注意pane从0开始计数。
ctrl b x

# 创建一个新窗口
ctrl b c #c-create
# 切换到前/后一个窗口
ctrl b p/n # p-previous;n-next

# 查看历史输出日志
ctrl B [ 【进入visual mode】
上下键翻页
退出 d/esc

# 其他可学可不学的
#切换窗格位置
Ctrl b Alt
Ctrl o 
#切换会话
tmux switch -t <s-n>

参考教程: Tmux 使用教程, 阮一峰.

一个流程

1.ssh登陆远程服务器:ssh sua@222.29.99.888 -p7777 #[账号名]@[服务器ip地址] -p端口号
2.新建tmux会话: tmux new -s hello_world # tmux new -s [my_session]
3.模拟跑一个程序,查看是否正常在运行。这行代码表示每1s刷新一次系统时间,ctrl d退出运行的程序。分离会话即 ctrl b + d,退出当前窗口,但程序还在跑。

watch -n 1 date
快捷键 [ctrl d]
watch -n 1 date
快捷键 [ctrl b + d]

4.下次使用,重新接入会话: tmux attach -t [my_session]


二、服务器和本地的数据传输

1.开端口查看图片

在服务器上,要看图片的目录下,运行

python3 -m http.server 3000

打开3000端口,在本地浏览器用ip和端口直接访问文件

http://localhost:3000/xxx.xxx.xxx.xxx:3000

xxx.xxx.xxx.xxx为你的服务器的ip地址。

2.scp远程传输

在shell上输入:

# 把服务器上Path1下的文件全都传到本地Path2下,Port为服务器的端口
# -r 传整个文件夹要加上,传一个文件则不加也行
scp -P [Port] -r [HostName]:[Path1] [Path2] 
scp -P 7777 -r 222.23.33.33:~/hello_world/ Desktop/test/

3.VS Code自带插件(慢,不推荐)

VS code会带有相应插件,查看pdf,jpg等文件,但响应速度不及时。

4.GUI图形化界面(慢,不推荐)

针对所用的语言,可以下载对应的GUI界面进行操作。在服务器上跑代码就像在本地一样。但通常会导致速度很慢。比如使用matlab,最好还是使用shell更好。


三、shell常用指令

Shell指令

ctrl u #删除当前行
ctrl w #删除当前行的一个word

man command #查看函数的用法
htop #查看资源占用情况
grep [text] [file] #在当前文件夹下的file中找包含text的字符串
#程序
程序暂停:ctrl+z;
继续:fg

htop可以查看当前资源部署情况。
上半部分表示cpu占用情况,可见几乎所有核cpu都跑满。
下半部分显示的是所有线程资源占用情况,点击CPU排序,可见大部分CPU被root用户占用,这可能导致你本身的代码跑的慢,此时可以咨询服务器管理员,给你留几个核。
htop界面

压缩和解压

Linux使用tar进行压缩和解压,该命令可以调用别的程序去解压对应后缀的压缩包。
基本语法是 tar [-zjZvO cxtru f] 压缩包名字.后缀 [待压缩的东西]

  1. -f 后接压缩包的名字,必须放在最后,且必须有
  2. -c 创建;-x 解压;-t:查看内容;-r 向压缩包追加文件;-u 更新原压缩包中的文件。一个命令中,这5个参数有且只有1个
  3. -zjZvO 表示调用的压缩/解压软件,不添加则默认压缩/解压为.tar压缩包。-z 调用gzip,对.tar.gz或.tgz属性;-j:调用bzip2,对.bz2属性; -Z 调用compress,对.Z属性;-v 显示所有过程;-O 将文件解开到标准输出
  4. 针对.zip结尾的压缩包,用unzip [filename].zip 解压即可;同理,.rar用unrar。
  5. 最常用指令:
tar -zxvf helloWorld.tgz #解压.tgz或.tar.gz结尾的压缩包。zxvf分别表示调用【gzip】【解压】【文件名为】helloWorld.tgz的压缩包,并【显示所有过程】
tar -zcvf helloWorld.tar.gz *.jpg #将所有.jpg的文件用gzip压缩成.tar.gz为后缀的压缩包

跑matlab代码

不打开图形化界面,在shell中执行matlab的experiment.m文件。
注意文件不需要加后缀".m"。

#双引号里提供了一个交互化环境,包含要运行的所有命令,用分号隔开
matlab -nodesktop -nosplash (-nodisplay) -r "x=1;y=2;experiment;exit"
#调用一个函数
matlab -nodesktop -nosplash (-nodisplay) -r "sqrt(4);exit"

跑python代码

source activate hello_world #打开
python hello_world.py

# python虚拟环境
conda create -n env_name(你的环境的名称) python=3.7 #新建虚拟环境
conda activate envs_name #激活命令
conda env list #查看已有环境


总结

总结使用服务器常用指令和操作,熟练掌握可以提高debug效率!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值