命令行py脚本——Linux下方便快捷地运行*.py脚本

命令行参数传递,shell批指令和命令别名。


(笔记模板由python脚本于2024年10月08日 12:25:54创建,本篇笔记适合喜欢python和Linux的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


命令行参数传递
命令行py脚本
(shell批指令和命令别名)


本文质量分:

96 96 96

本文地址: https://blog.csdn.net/m0_57158496/

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 命令行py脚本(Linux便快捷操作)
    • 1、效果截屏展示
    • 2、参数传递
      • 2.1 Linux命令行参数传递
      • 2.2 Linux脚本*.sh
      • 2.3 Linux指令变量引用
    • 3、nano文本编辑
      • 3.1 基本用法
      • 3.2 本篇笔记的应用
    • 4、命令别名
    • 5、指令实操
    • 6、总结


◆ 命令行py脚本(Linux便快捷操作)


1、效果截屏展示


  • 命令行py *.py实操截屏图片
    在这里插入图片描述
      截屏中可以看到,我用cat命令显示了py.sh文件的一行命令内容,用ls -l指令列显了我所运行的*.py脚本的存储信息,以揭示py *.py指令操作的透明真实。

模板生成指令及屏幕打印文本(学习笔记中介绍的“工程”“实地使用”效果,截取屏幕😎)


~ $ cat ./py.sh
python /sdcard/Documents/csdn/$1.py
~ $ ls -l /sdcard/Documents/csdn/csdn_newblog.py
-rw-rw---- 1 root everybody 4250 Sep 25 23:21 /sdcard/Documents/csdn/csdn_newblog.py
~ $ py csdn_newblog

本文读者:喜欢python和Linux

标题:命令行py脚本——Linux下方便快捷地运行*.py脚本 命令行参数传递 shell批指令和命令别名

Summary format:

“算法解析”几个次级目录?_0


~~~~~~~~~~~~ 文件保存成功!~~~~~~~~~~~~~

~ $


  本“工程”用到的点是:命令行参数传递Linux文本编辑命令别名。这三个简单知识点组合就可以达成在命令行直接py *.py的幸福操作。


接下来,我将逐一透析。😋



回页目录


2、参数传递


2.1 Linux命令行参数传递

  在Linux中,命令行参数传递通常指的是在执行命令时跟随在命令后面的参数。这些参数可以改变命令的行为或者指定命令操作的对象。


以下是一些基本的命令行参数传递的规则和示例:

基本规则

  1. 命令:要执行的程序或脚本的名称。
  2. 选项:通常以单个减号(-)开头,例如 ls -l 中的 -l
  3. 参数:通常是命令作用的对象,比如文件名或目录名。
  4. 长选项:有些命令支持长格式选项,通常以两个减号(--)开头,例如 ls --all

传递参数的示例

  1. 基本参数传递

    
    command arg1 arg2 arg3
    
    

    这里 arg1 arg2 arg3 是传递给 command 的参数。

  2. 使用选项

    
    ls -l /home/user
    
    

    在这个例子中,-l 是一个选项,表示以详细列表形式显示 /home/user 目录的内容。

  3. 传递多个选项

    
    cp -r -v source_dir destination_dir
    
    

    这里 -r-v 都是传递给 cp 命令的选项,分别表示递归复制和显示详细过程。

  4. 使用长选项

    
    rm --recursive --force directory
    
    

    在这个例子中,--recursive--force 是长格式选项,用于递归删除目录并忽略不存在的文件。

  5. 参数和选项混合使用

    
    find /home/user -name "*.txt" -type f -exec grep "keyword" {} \;
    
    

    这里 /home/userfind 命令的参数,-name "*.txt"-type f 是选项,而 -exec grep "keyword" {} \; 是一个执行动作。

  6. 引用特殊字符
    如果参数包含空格、特殊字符或者与shell关键字冲突,通常需要用引号(单引号或双引号)将参数括起来:

    
    echo "Hello World"
    
    
  7. 使用变量
    可以使用变量来传递参数:

    
    filename="example.txt"
    cp $filename /new/location/
    
    

  了解这些基本规则后,就可以根据具体的命令和需求来传递参数。每个命令都有自己的参数和选项,可以通过查看命令的帮助文档(通常是使用 command --helpman command来获取详细信息。



回页目录


2.2 Linux脚本*.sh


  在Linux和类Unix系统中,*.sh 是一个文件扩展名,通常用于表示shell脚本文件。


以下是一些关于.sh文件的基本信息:

  • 什么是Shell脚本?
      Shell脚本是一种包含一系列命令的文本文件,这些命令可以被shell(通常是Bash或其他shell)解释执行。Shell脚本允许用户自动化常见的任务,比如文件操作、程序启动、系统配置等。

  • *.sh 文件的作用
    • 自动化任务:通过将多个命令组合成一个脚本,可以自动化复杂的任务。
    • 批处理:可以对大量数据进行批量处理,例如,批量重命名文件或处理日志。
    • 配置管理:用于配置和管理系统设置。
    • 编程:虽然shell脚本通常不是用来编写复杂应用程序的,但它提供了一种简单的编程方式来处理常见的任务。

  • 创建和使用 .sh 文件
  1. 编写脚本
    使用文本编辑器(如 vi, nano, 或者 gedit)创建一个包含shell命令的文件。例如,创建一个名为 hello_world.sh 的文件:

    #!/bin/bash
    echo "Hello, World!"
    
    

    第一行是一个特殊的注释,称为“shebang”,它告诉系统这个脚本应该使用哪个解释器来执行(在这个例子中是 /bin/bash)。

  2. 使脚本可执行
    使用 chmod 命令来赋予脚本执行权限:

    
    chmod +x hello_world.sh
    
    
  3. 运行脚本
    在终端中,可以通过以下方式运行脚本:

    
    ./hello_world.sh
    
    

    注意,如果你没有在 PATH 环境变量中包含脚本的目录,你需要使用相对路径(如 ./)或绝对路径来运行脚本。


示例 *.sh 脚本

#!/bin/bash
# 这是一个简单的示例脚本

# 打印当前工作目录
pwd

# 列出当前目录下的所有文件和目录
ls -l

# 使用for循环打印参数
for arg in "$@"
do
    echo "参数: $arg"
done

  这个脚本在执行时会打印当前的工作目录,列出当前目录下的所有文件和目录,并遍历传递给脚本的每个参数,打印它们。

  在使用 *.sh 文件时,务必注意脚本的执行权限和内容的安全性,避免执行未知的或未经检查的脚本,因为它们可能会执行危险的系统命令。



回页目录


2.3 Linux指令变量引用


  在Shell脚本中,你可以通过特定的变量来引用命令行参数。以下是常用的变量,它们用于访问传递给脚本的参数:

  • $0 - 脚本名称
  • $1 - 第一个参数
  • $2 - 第二个参数
  • $3 - 第三个参数
  • $9 - 第九个参数
  • $# - 传递给脚本的参数个数
  • $* - 所有的位置参数(作为单个单词)
  • $@ - 所有的位置参数(作为多个单词)
  • $? - 最后一条命令的退出状态
  • $$ - 当前Shell进程ID(PID)
  • $ !- 最后一个后台命令的进程ID

以下是如何在脚本中使用这些变量的示例:

#!/bin/bash

# 打印脚本名称
echo "脚本名称: $0"

# 打印第一个参数
echo "第一个参数: $1"

# 打印第二个参数
echo "第二个参数: $2"

# 打印所有参数
echo "所有参数: $*"

# 打印参数个数
echo "参数个数: $#"

# 使用for循环遍历所有参数
for arg in "$@"
do
    echo "参数: $arg"
done

假设这个脚本保存为 args.sh 并且具有执行权限,你可以这样运行它:


./args.sh 参数1 参数2 参数3

输出将会是:

脚本名称: ./args.sh
第一个参数: 参数1
第二个参数: 参数2
所有参数: 参数1 参数2 参数3
参数个数: 3
参数: 参数1
参数: 参数2
参数: 参数3


  注意: 当参数中包含空格时,你应该将参数用引号引起来(例如 "参数 1",以确保它们被视为单个参数。在脚本内部处理参数时,也应该使用引号(例如 "${1}",以避免参数值中的空格或其他特殊字符导致的问题。



回页目录


3、nano文本编辑


  nano 是一个简单的文本编辑器,它通常在类Unix系统中可用,包括Linux和macOS。nano 是一个字符界面(也称为命令行界面)的程序,它的设计目标是易用性,特别是对于新用户来说,nano 的界面比其他一些文本编辑器(如 viemacs要直观得多。


  我认为她优雅而轻盈,对于“简单纯文本”的编辑任务,感觉特别舒爽,有裸睡的舒适感😎😎。

  所以,有必要向您推介!😋


3.1 基本用法


以下是nano的一些基本用法:

  • 打开一个文件进行编辑
    如果文件不存在,nano 将创建一个新文件。
    
    nano 文件名.txt
    
    

  • 保存和退出
    • 要保存文件,按 Ctrl + O(写入文件,WriteOut),然后按 Enter 确认文件名。
    • 要退出 nano,按 Ctrl + X

  • 常用的快捷键
    • Ctrl + G:获取帮助(Help)。
    • Ctrl + O:写入文件(WriteOut)。
    • Ctrl + X:退出 nano
    • Ctrl + R:读取文件到当前缓冲区(用于插入文件内容)。
    • Ctrl + K:剪切光标到行尾的内容。
    • Ctrl + U:粘贴剪切的内容。
    • Ctrl + C:显示光标位置。
    • Ctrl + _:撤销最后一次更改(在较新版本的 nano 中)。
    • Alt + M:鼠标支持(在终端支持的情况下)。

  • 使用 nano 的示例
    打开一个名为 example.txt 的文件:
    
    nano example.txt
    
    

  在打开的 nano 编辑器中,你可以开始编辑文件。当编辑完成后,按 Ctrl + O 保存文件,然后按 Ctrl + X 退出编辑器。

  nano 是一个轻量级的编辑器,适合快速编辑配置文件或在服务器上执行简单的文本编辑任务。尽管它不如 viemacs 功能全面,但它的简单性使它成为许多用户的首选。



回页目录


3.2 本篇笔记的应用


  • 应用截屏图片
    编辑 p y . s h py.sh py.sh
    在这里插入图片描述



回页目录


4、命令别名


  在Linux中,命令别名(aliases)是一种方便的方式来为常用的命令或命令序列创建简短的名称。别名可以节省时间,减少输入错误,并使复杂的命令更容易记忆。以下是设置和使用命令别名的一些基本方法:


  • 创建别名
    • 别名可以通过以下命令在shell中创建:

      
      alias 别名='实际命令'
      
      
    • 例如,如果你经常使用 ls -l 命令来查看详细的目录列表,你可以为其创建一个别名,当你输入 ll 时,它将执行 ls -l。:

      
      alias ll='ls -l'
      
      

  • 使别名持久化
    别名只在当前的shell会话中有效。如果你想要别名在每次启动新会话时都有效,你需要将其添加到你的shell的配置文件中。对于Bash shell,这通常是 ~/.bashrc~/.bash_aliases(如果你创建了后者)。对于Zsh,则是 ~/.zshrc

    在配置文件中添加别名:
    
    nano ~/.bashrc
    
    # 在文件中添加以下行
    alias ll='ls -l'
    alias rm='rm -i'  # 安全的rm,在删除前会提示确认
    
    

  • 保存并关闭文件后,你需要运行以下命令来使更改生效,或者简单地关闭终端并重新打开它。
    
    source ~/.bashrc
    
    

  • 列出所有别名
    要查看当前会话中定义的所有别名,可以使用以下命令:
    
    alias
    
    

  • 删除别名
    如果你想删除一个别名,可以使用 unalias 命令,这将从当前会话中删除 ll 别名。
    
    unalias ll
    
    

  • 注意事项
    • 别名不会影响内置的shell命令,只影响外部命令。
    • 如果别名与某个命令或函数同名,则别名将覆盖原有的命令或函数。
    • 使用别名时,如果别名包含特殊字符或空格,通常需要用引号将别名包围起来。

  使用别名是定制你的Linux环境并提高工作效率的好方法。不过,也要注意不要过度使用别名,以免在共享脚本或教程时造成混淆。



回页目录


5、指令实操


  • 实操截屏图片

    nano编辑器启动
    在这里插入图片描述
    编辑配置文件
    在这里插入图片描述
    使别名生效(亦可关闭Linux后重开)
    在这里插入图片描述
    py *.py
    在这里插入图片描述



回页目录


6、总结


  学习到的知识点,只是在“实战”中演练,在演练中迭代,才可以更好的内化、沉积,最后才能自由自在地输出。这就是厚积薄发!💪💪💪



回页首


上一篇:  python中确定对象类型的优雅方式(isinstance函数最是优雅,type、issubclass等函数也可以,但终究“曲折”)
下一篇: 



我的HOT博:

  本次共计收集 311 篇博文笔记信息,总阅读量43.82w。数据于2024年03月22日 00:50:22完成采集,用时6分2.71秒。阅读量不小于6.00k的有 7 7 7篇。

  • 001
    标题:让QQ群昵称色变的神奇代码
    (浏览阅读 5.9w )
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:25 收藏:86 评论:17
    摘要:让QQ昵称色变的神奇代码。
    首发:2022-01-18 19:15:08
    最后编辑:2022-01-20 07:56:47

  • 002
    标题:Python列表(list)反序(降序)的7种实现方式
    (浏览阅读 1.1w )
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:8 收藏:35 评论:8
    摘要:Python列表(list)反序(降序)的实现方式:原址反序,list.reverse()、list.sort();遍历,全数组遍历、1/2数组遍历;新生成列表,resersed()、sorted()、负步长切片[::-1]。
    首发:2022-12-11 23:54:15
    最后编辑:2023-03-20 18:13:55

  • 003
    标题:pandas 数据类型之 DataFrame
    (浏览阅读 9.7k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:7 收藏:36 
    摘要:pandas 数据类型之 DataFrame_panda dataframe。
    首发:2022-05-01 13:20:17
    最后编辑:2022-05-08 08:46:13

  • 004
    标题:个人信息提取(字符串)
    (浏览阅读 8.2k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:2 收藏:15 
    摘要:个人信息提取(字符串)_个人信息提取python。
    首发:2022-04-18 11:07:12
    最后编辑:2022-04-20 13:17:54

  • 005
    标题:Python字符串居中显示
    (浏览阅读 7.6k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    评论:1

  • 006
    标题:罗马数字转换器|罗马数字生成器
    (浏览阅读 7.5k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    摘要:罗马数字转换器|生成器。
    首发:2022-01-19 23:26:42
    最后编辑:2022-01-21 18:37:46

  • 007
    标题:回车符、换行符和回车换行符
    (浏览阅读 6.0k )
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:2 收藏:3 
    摘要:回车符、换行符和回车换行符_命令行回车符。
    首发:2022-02-24 13:10:02
    最后编辑:2022-02-25 20:07:40


推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/888424.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker:快速部署

docker安装: ​‌​‬​⁠​‍‬​‍‬‬‌​‬‬‬​⁠​‍​​‌‬‌​​​​​​‌​​​​⁠​‍⁠‌安装Docker - 飞书云文档 (feishu.cn) docker命令解读 docker run -d \ > --name mysql \ > -p 33…

【bug】finalshell向远程主机拖动windows快捷方式导致卡死

finalshell向远程主机拖动windows快捷方式导致卡死 问题描述 如题,作死把桌面的快捷方式拖到了finalshell连接的服务器面板中,导致finalshell没有响应(小概率事件,有时会触发) 解决 打开任务管理器查看finalshell进…

SpringBoot Jar 包加密防止反编译

今天看到了一个说明jar包加密的实现方式,特意试了下效果,并下载了插件源码及实现源码查看了下子,感兴趣的可以在最后得到gitee地址。 SpringBoot 程序 Jar 包加密的方式,通过代码加密可以实现无法反编译。应用场景就是当需要把公司…

RK3568笔记六十四:SG90驱动测试

若该文为原创文章,转载请注明原文出处。 前面有测试过PWM驱动,现在使用两种方式来产生PWM驱动SG90,实现舵机旋转任意角度 方法一:使用硬件PWM 方法二:使用高精度定时器,GPIO模拟PWM. 一、PWM子系统框架 二、SG90控制方法 舵机的控制需要MCU产生一个周期为20ms的脉冲信号…

(Linux驱动学习 - 8).信号异步通知

一.异步通知简介 1.信号简介 信号类似于我们硬件上使用的“中断”,只不过信号是软件层次上的。算是在软件层次上对中断的一种模拟,驱动可以通过主动向应用程序发送信号的方式来报告自己可以访问了,应用程序获取到信号以后就可以从驱动设备中…

【JavaEE】【多线程】Thread类讲解

目录 Thread构造方法Thread 的常见属性创建一个线程获取当前线程引用终止一个线程使用标志位使用自带的标志位 等待一个线程线程休眠线程状态线程安全线程不安全原因总结解决由先前线程不安全问题例子 Thread构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用…

Web3 游戏周报(9.22 - 9.28)

回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【9.22-9.28】Web3 游戏行业动态: Axie Infinity 将 Fortune Slips 的冷却时间缩短至 24 小时,从而提高玩家的收入。 Web3 游戏开发商 Darkbright Studios…

使用sponge+dtm快速搭建一个高性能的电商系统,秒杀抢购和订单架构的设计与实现

本文将展示如何使用 Sponge 框架快速创建一个简易版高性能电商系统,主要实现秒杀抢购和订单功能,并通过分布式事务管理器 DTM 来确保数据一致性。电商系统的架构图如下: 这是源码示例eshop,目录下包括了两个一样的代码示例&#x…

kafka-windows集群部署

kafka-windows集群部署目录 文章目录 kafka-windows集群部署目录前言一、复制出来四个kafka文件夹二、修改集群每个kafka的配置文件四、启动zookeeper,kafka集群 前言 部署本文步骤可以先阅读这一篇博客,这篇是关于单机kafka部署测试的。本文用到的文件…

Android 电源管理各个版本的变动和限制

由于Android设备的电池容量有限,而用户在使用过程中会进行各种高耗电操作,如网络连接、屏幕亮度调节、后台程序运行等,因此需要通过各种省电措施来优化电池使用‌,延长电池续航时间,提高用户体验,并减少因电…

基于LORA的一主多从监测系统_AHT20温湿度传感器

1)AHT20温湿度传感器 这个传感器,网上能找到的资料还是比较多的,我们使用的是HAL硬件i2c,相比于模拟i2c,我们不需要过于关注时序问题,我们只需要关心如何获取数据以及数据如何处理,下面以数据手…

Prometheus之Pushgateway使用

Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…

MATLAB APPdesigner中的日期选择器怎样实时显示时间

文章目录 1.问题描述2.代码设置代码示例解释 1.问题描述 我们在做MATLAB的时候,一般需要在APP界面中加上时间显示,像下图中的右上角,在组件中有日期选择器,但是这个并不是实时显示的,我们还需要自己进行设置。 2.代码…

(11)MATLAB莱斯(Rician)衰落信道仿真2

文章目录 前言一、莱斯衰落信道仿真模型二、仿真代码与结果1.仿真代码2.仿真结果画图 三、后续:四、参考文献: 前言 首先给出莱斯衰落信道仿真模型,该模型由直射路径分量和反射路径分量组成,其中反射路径分量由瑞利衰落信道模型构…

力扣之603.连续空余座位

文章目录 1. 603.连续空余座位1.1 题干1.2 准备数据1.3 思路分析1.4 解法1.5 结果截图 1. 603.连续空余座位 1.1 题干 表: Cinema ----------------- | Column Name | Type | ----------------- | seat_id | int | | free | bool | ----------------- Seat_id 是该表的自动递…

宏队列和微队列

1、javascript是一个单线程语言。 javascript 语言的目的(待补充) 2、主线程执行完成之后,再执行微队列,微队列执行完成后再执行宏队列 3、promise的构造函数传入的回调函数是同步执行 4、promise的then函数会直接加入微队列&…

zookeeper选举kafka集群的controller

zookeeper选举kafka集群的controller目录 文章目录 zookeeper选举kafka集群的controller目录前言一、实操体验controller的选举二、模拟controller选举四、删除controller节点 前言 kafka集群的controller是kafka集群中一个有特殊作用的broker,负责整个kafka集群的…

用java编写飞机大战

游戏界面使用JFrame和JPanel构建。背景图通过BG类绘制。英雄机和敌机在界面上显示并移动。子弹从英雄机发射并在屏幕上移动。游戏有四种状态:READY、RUNNING、PAUSE、GAMEOVER。状态通过鼠标点击进行切换:点击开始游戏(从READY变为RUNNING&am…

Nginx06-静态资源部署

零、文章目录 Nginx06-静态资源部署 1、静态资源概述 静态资源:是在Web开发中不经常改变的文件,比如图片、CSS样式表、JavaScript脚本文件等。这些资源通常是预先编译好的,不需要服务器端的动态处理。动态资源:是在Web开发中需…

前端编程艺术(3)---JavaScript

目录 1.JavaScript 1.输出 2.变量和数据类型 3.运算符 4.数组 5.函数 6.面向对象 7.ES6面向对象 2.BOM 1.document对象 3.DOM 4.JSON 1.JavaScript JavaScript是一种脚本编程语言,通常用于为网页增加交互性和动态效果。它是一种高级语言&#xff…