网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月29日漏签0天
powershell吧 关注:1,171贴子:1,798
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 2回复贴,共1页
<<返回powershell吧
>0< 加载中...

用vscode+powershell,远程调试linux中的ps1脚本

  • 只看楼主
  • 收藏

  • 回复
  • pck6636
  • 贡士
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
《单步、断点、图形界面调试,鼠标选中n行右键执行,powershell极大提升了linux脚本生产力》
---linux中调试ps脚本的注意事项文章修改版,写于2019-06-20
---------【第一章 在linux中用shell脚本,有啥坏处?】---------
shell脚本单步,断点难。尤其有些是awk子语句,sed子语句,甚至还有python。
这根本就是相当于进入了另一种计算机语言。
甚至调试1个shell脚本耗费的时间精力,顶调试20个ps脚本。shell的if,awk的if,sed的if,python的if,4种if。
这就好像你脚上套了4层鞋一样,很酸爽。请看:
===========【shell脚本单步,断点难的例子】===========
sed -e 'p;s,.V,,;n;h_' \
-e s|.»|.|* \
-e .*/,f;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/* | \
sed 'N;N;N;sf\n, ,g' | \
$(AWK) 'BEGIN { files[".M] = dirs[".M] = 1 } \
{ d=$$3; if (dirstd] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) filestd] = files[d] M H $$1; \
else { print "fM, $$3 V" $$4, $$1; } } \
END { for (d in files) print "f", df filestd] }'
===========【shell脚本单步,断点难的例子】===========
这也是为啥要用linux版powershell的原因。
---------【第二章 在linux中用powershell脚本,有啥好处?】---------
好处之一是可以用vscode调试。
这样就有了和win同等的待遇:
1 在vscode图形界面查看变量名,变量值。
2 单步。
3 断点。
4 在vscode图形界面中,鼠标选中n行脚本,右键,执行。
5 完全支持中文脚本名、参数名、变量名、函数名、的运行和调试。请看图:
---------【为啥要在linux上调试ps脚本】---------
问:啥时候用linux版vscode,单步、断点调试linux版ps脚本?
答:
当ps1脚本中,含有linux命令的时候。
当win中无法100%重现,linux环境,linux命令时,那么你就需要在linux中调试。
---------【第三章 linux中调试ps脚本的注意事项】---------
应该尽量少用linux外部命令。
或者把linux外部命令,用bash包裹起来,存放入ps变量值。
=====================
$bashcmd =
@'
echo '我是bash命令'
echo '命令中可以有单引号'
echo "命令中可以有双引号"
echo '如需解析变量,则用这种括号,注意头尾必须换行'
echo '@\"'
echo '$a'
echo '\"@'
'@
$powershell变量 = /usr/bin/bash -c $bashcmd
#需要转义,有点不好
=====================
或
$powershell变量 =
@'
echo '我是bash命令'
echo '命令中可以有单引号'
echo "命令中可以有双引号"
echo '如需解析变量,则用这种括号,注意头尾必须换行'
echo '@"'
echo '$a'
echo '"@'
'@ | /usr/bin/bash
#不需要转义,推荐
=====================
问:为啥用bash把命令包裹起来?
答:
世界上没有片100%相同的叶子,也没有100%相同的脚本解释器。sh和bash甚至解释都不同。
ps解释linux外部命令,和bash主要在【转义】,有细小差别。
为了100%兼容bash旧命令和返回的结果,就要用bash包裹。
从win到linux远程,用vscode+powershell,远程调试linux中的ps1脚本的例子。
=====================
#第一行代码。
#在下面这行代码上,下断点。
$powershell变量 =
@'
ls -l /tmp |awk '{print $9}'
'@ | /usr/bin/bash
#第n行代码。=====================
---------【第四章 在win中用vscode,远程调试linux中的ps1,的步骤】---------
1 在win上安装最新版vscode,最低为1.35.1。
2 安装vscode插件:remote-ssh,remote-ssh-explorer
3 定义ssh配置文件路径:
编辑c:\Users\你的用户名\AppData\Roaming\Code\User\settings.json
加上一行:
"remote.SSH.configFile": "d:\\vscode\\remote.txt"
4 编写ssh配置文件内容:
d:\vscode\remote.txt ,bom头+utf8格式。支持多个服务器,支持中文。Host 吃鸡ps62
User root
HostName 192.168.111.62
IdentityFile ~/.ssh/id_rsa
5 下载ssh:
去github上的/PowerShell/Win32-OpenSSH/releases
用ssh-keygen.exe,生成秘钥对。
6 使用我编写的ssh-copy-id6.ps1即可部署本机公钥,到各个linux服务器。
脚本最新版下载地址:
盘。百度点com/s/1n3ahVhYTyrGIm9n4N1SPRw
提取码:i55m
7 测试:
ssh.exe root@192.168.111.62 'date'
8 点击左下角,点【吃鸡ps62】。发现打开了一个【新ssh的子vscode窗口】。
这个窗口其实就是linux中安装的,linux版vscode。
本地vscode,把远程vscode,偷偷安装在了 ~/.vscode-server
可以在这个【新ssh的子vscode窗口】 ——》 插件里面,安装中文插件。
可以在这个【新ssh的子vscode窗口】 ——》 插件里面,安装xxx语言插件。
有了这个插件,即可代码高亮补全和调试,跟本地vscode一样。
若跟本地vscode不一样,或者调试不灵,那么就是测试版的bug。
9 在这个【新ssh的子vscode窗口】中,安装【powershell-preview】扩展。
注意:
【powershell】扩展,目前还不支持远程调试。
你需要安装【powershell-preview】扩展。
remote-ssh这是一个新功能,需要下一个稳定版本的powershell扩展才支持。
10 打开a.ps1,在某一行下断点,然后按f5。
11 点菜单---》终端---》新建终端。
即可打开【那台linux】的命令行,即bash。
12 看看左下角,就知道你连接到了哪台linux机子。
结论:
remote-ssh扩展,给powershell带来了,打开远程文件。
remote-ssh-explorer扩展,给powershell带来了,浏览远程目录,文件。
powershell-preview扩展,帮powershell带来了,远程调试。
远程调试,是最主要的功能。你还可以在linux机子上,安装c#扩展,py扩展,java扩展等。调试工具。


  • 喻平华
  • 榜眼
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
能整理一下吗?觉得应该分开来写比较好


2025-06-29 04:49:41
广告
  • pck6636
  • 贡士
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在2020年3月以前,只有preview版的vscode powershell模块,才支持ssh+remote调试。
但是,2020年3月开始,preview合并到了stable版。
也就是说,vscode的powershell模块的2020年3月版,开始正式支持ssh+remote调试了!!!
从win打开vscode,然后经ssh+remote,和powershell模块,远程开发,远程调试linux上的ps1脚本。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回powershell吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示