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

embedded/2024/10/9 4:07:25/

命令行参数传递,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 "$@"
doecho "参数: $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 "$@"
doecho "参数: $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.ppmy.cn/embedded/124876.html

相关文章

【数据结构】【顺序表算法】 删除特定值

题目&#xff1a;对长度为n的顺序表L&#xff0c;编写一个时间复杂度为O(n)&#xff0c;空间复杂度为O(1)的算法&#xff0c;该算法删除顺序表中所有值为x的数据元素 方法1 void del_x_1(SqList &L,ElemType x){int k0,i;for(i0;i<L.length;i){if(L.data[i]!x){L.data…

大数据新视界 --大数据大厂之 Alluxio:解析数据缓存系统的分层架构

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Ajax ( 是什么、URL、axios、HTTP、快速收集表单 )Day01

AJAX 一、Ajax是什么1.1名词解释1.1.1 服务器1.1.2 同步与异步1. 同步&#xff08;Synchronous&#xff09;2. 异步&#xff08;Asynchronous&#xff09;3. 异步 vs 同步 场景4. 异步在 Web 开发中的常见应用&#xff1a; 1.2 URL 统一资源定位符1.2.1 URL - 查询参数1.2.2 ax…

软件测试学习笔记

1、软件测试 软件&#xff1a;控制计算机硬件工作的工具 软件测试&#xff1a;使用技术手段验证软件是否满足使用需求 软件测试的目的&#xff1a;减少软件缺陷&#xff0c;保障软件质量 2、测试主流技术 功能测试 自动化测试 接口测试 性能测试 3、测试分类 按照测试…

蓝桥杯【物联网】零基础到国奖之路:十八. 扩展模块之光敏和AS312

蓝桥杯【物联网】零基础到国奖之路:十八.扩展模块之光敏和AS312 第一节 硬件解读第二节 CubeMX配置第二节 代码 第一节 硬件解读 光敏和AS312如下图&#xff1a; 光敏电阻接到了扩展模块的5号引脚&#xff0c;5号引脚接了2个电阻&#xff0c;R8和光敏电阻。我们通过ADC读取这…

STM32-HAL库 驱动DS18B20温度传感器 -- 2024.10.8

目录 一、教程简介 二、驱动理论讲解 三、CubeMX生成底层代码 四、Keil5编写代码 五、实验结果 一、教程简介 本教程面向初学者&#xff0c;只介绍DS18B20的常用功能&#xff0c;但也能满足大部分的运用需求。跟着本教程操作&#xff0c;可在10分钟内解决DS18b20通信难题。…

【数据结构】---图

图 前言 本篇作为图的基础概念篇&#xff0c; 了解图的离散数学定义&#xff0c; 图的分类&#xff0c; 图模型解决的问题&#xff08;图的应用&#xff09;&#xff0c; 图的相关算法&#xff08;仅仅介绍&#xff0c;具体不在此篇展开&#xff09;。 学习基本路线&#xff…

pycharm中使用anaconda创建多环境,无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

问题描述 用的IDE是&#xff1a; 使用anaconda创建了一个Python 3.9的环境 结果使用pip命令的时候&#xff0c;报错 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案 为了不再增加系统变量&#xff0c;我们直接将变量添加在当前项目中你的Ter…