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

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


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


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


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


等风来,不如追风去……


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


本文质量分:

97 97 97

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

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


目 录


◆ 命令行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篇。


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

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



回页首


老齐漫画头像

精品文章:

来源:老齐教室


Python 入门指南【Python 3.6.3】


好文力荐:


CSDN实用技巧博文:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值