linux如何执行python脚本

说实话,在Linux下跑Python脚本这事儿吧,我当年刚开始捣鼓的时候也踩了不少坑,特别是版本和依赖那块儿。
给你捋捋我自己的经验,可能有点偏激,但绝对真实。

先说最基础的,直接用python your_script.py。
这招简单粗暴,但问题立马就来了——你猜怎么着?系统可能装了Python2 和Python3 ,万一你脚本里用了个语法在Python3 里才对,结果跑着跑着就崩了。
我记得有一次帮隔壁组同学排错,就因为这直接用了系统自带的Python2 ,导致一堆print语句出问题,那场面...啧啧。

所以后来我就习惯用绝对路径指定版本,比如/usr/bin/python3 your_script.py。
这招确实稳,至少知道用哪个解释器,但每次敲绝对路径也挺烦人的,特别是你服务器上路径可能还不一样的时候。

有意思的是,Shebang行简直是懒人福音。
在脚本第一行加个!/usr/bin/env python3 ,然后chmod +x your_script.py,直接./your_script.py就能跑。
这原理其实挺有意思,env是个小工具,它会去环境变量里找python3 ,比硬编码路径灵活多了。
我有个项目就是靠这个,换了几个Linux环境都没出过问题。

说到环境,虚拟环境绝对是必学的。
当年我刚开始接触virtualenv,搞了半天还跟pip冲突。
后来发现venv是Python3 自带的标准库了,用python3 -m venv myenv创建个环境,source myenv/bin/activate进去,再pip install requests,立马就能用。
这招特别适合团队开发,避免互相污染全局环境。
我记得我们团队有个哥们儿,用了虚拟环境还忘了deactivate,结果装了好多个人库,最后运维小哥找我要root密码的时候,我真是想抽自己。

性能这块儿,多进程和多线程各有各的坑。
CPU密集型任务我一般用multiprocessing,比如上次有个图像处理脚本,直接用Pool(4 )分4 个进程跑,CPU利用率瞬间飙到1 00%,效果立竿见影。
但IO密集型就别瞎用多线程了,Python有GIL全局解释器锁,多线程跑网络请求反而可能更慢。
我有个项目就是被这坑过,最后改用asyncio才搞定。

错误处理和日志这块,我绝对是狂热粉。
现在写脚本必带try-except,哪怕是ZeroDivisionError这种蠢错误也要捕获。
日志更是必备,上次有个脚本半夜崩溃,多亏了日志文件才知道是哪个API请求超时了。
我用logging模块,把所有INFO、WARNING、ERROR都单独文件存,查问题简直不要太方便。

最后说点实践心得。
版本控制你得用python --version确认下当前解释器,别傻乎乎地假设所有服务器都是Python3 依赖管理我习惯用pip freeze > requirements.txt生成文件,新人跑起来就pip install -r requirements.txt,绝对方便。
安全这块儿,我绝对不赞成把密码硬编码在脚本里,上次有个同学这么做,结果服务器直接被暴力破解,那教训太深刻了——非必要敏感信息,要么环境变量,要么配置文件。

说白了,Linux下跑Python脚本,关键就是版本要明确、环境要隔离、性能要调优、错误要能看。
每一步都得走对,才能让你的脚本在Linux世界里活得滋润。

Linux SecureCRT如何自定义脚本执行

上周,我在LinuxSecureCRT中自定义脚本执行,步骤如下:
1 . 脚本创建与权限设置:创建脚本文件my_script.sh,内容示例:!/bin/bash示例脚本echo "脚本已成功执行!",然后通过终端命令chmod+xmy_script.sh赋予执行权限。

2 . 脚本上传至服务器:使用SecureCRT的SFTP功能,上传脚本文件到服务器指定路径。

3 . SecureCRT会话配置:打开会话配置界面,配置自动登录与脚本执行,输入脚本的绝对路径。

4 . 自动执行与验证:重新连接会话,SecureCRT将在登录完成后自动运行指定脚本,验证执行结果。

2 02 3 年,我还发现了一些补充说明:

脚本路径处理:建议使用绝对路径,避免因环境变量问题导致执行失败。


多脚本执行:可以按顺序输入命令或通过主脚本调用其他脚本。


错误处理:在脚本中添加错误检查逻辑,避免因单条命令失败导致整个流程中断。


常见问题解决:权限不足、路径错误、依赖缺失等问题需要提前解决。

我那个朋友说,这样操作确实能提升运维效率,特别是批量任务和环境初始化。
你看着办,也可以试试看。