命令行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、效果截屏展示
    • 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指令操作的透明真实。

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

bash 复制代码
~ $ 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. 基本参数传递

    bash 复制代码
    command arg1 arg2 arg3

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

  2. 使用选项

    bash 复制代码
    ls -l /home/user

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

  3. 传递多个选项

    bash 复制代码
    cp -r -v source_dir destination_dir

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

  4. 使用长选项

    bash 复制代码
    rm --recursive --force directory

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

  5. 参数和选项混合使用

    bash 复制代码
    find /home/user -name "*.txt" -type f -exec grep "keyword" {} \;

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

  6. 引用特殊字符

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

    bash 复制代码
    echo "Hello World"
  7. 使用变量

    可以使用变量来传递参数:

    bash 复制代码
    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 的文件:

    bash 复制代码
    #!/bin/bash
    echo "Hello, World!"

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

  2. 使脚本可执行

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

    bash 复制代码
    chmod +x hello_world.sh
  3. 运行脚本

    在终端中,可以通过以下方式运行脚本:

    bash 复制代码
    ./hello_world.sh

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

示例 *.sh 脚本

bash 复制代码
#!/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

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

bash 复制代码
#!/bin/bash

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

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

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

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

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

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

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

bash 复制代码
./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 将创建一个新文件。

    bash 复制代码
    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 的文件:

    bash 复制代码
    nano example.txt

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

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


回页目录


3.2 本篇笔记的应用


回页目录


4、命令别名

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

  • 创建别名

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

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

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

    在配置文件中添加别名:

    bash 复制代码
    nano ~/.bashrc
    
    # 在文件中添加以下行
    alias ll='ls -l'
    alias rm='rm -i'  # 安全的rm,在删除前会提示确认
  • 保存并关闭文件后,你需要运行以下命令来使更改生效,或者简单地关闭终端并重新打开它。

    bash 复制代码
    source ~/.bashrc
  • 列出所有别名
    要查看当前会话中定义的所有别名,可以使用以下命令:

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

    bash 复制代码
    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实用技巧博文:


相关推荐
秀儿还能再秀1 小时前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
keep__go1 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求1 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay9851 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
大熊程序猿1 小时前
ubuntu 安装kafka-eagle
linux·ubuntu·kafka
阿_旭2 小时前
如何使用OpenCV和Python进行相机校准
python·opencv·相机校准·畸变校准
幸运的星竹2 小时前
使用pytest+openpyxl做接口自动化遇到的问题
python·自动化·pytest
kali-Myon3 小时前
ctfshow-web入门-SSTI(web361-web368)上
前端·python·学习·安全·web安全·web
B站计算机毕业设计超人3 小时前
计算机毕业设计Python+大模型农产品价格预测 ARIMA自回归模型 农产品可视化 农产品爬虫 机器学习 深度学习 大数据毕业设计 Django Flask
大数据·爬虫·python·深度学习·机器学习·课程设计·数据可视化