命令行参数传递,shell批指令和命令别名。
(笔记模板由python脚本于2024年10月08日 12:25:54创建,本篇笔记适合喜欢python和Linux的coder翻阅)
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
本文质量分:
本文地址: 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中,命令行参数传递通常指的是在执行命令时跟随在命令后面的参数。这些参数可以改变命令的行为或者指定命令操作的对象。
以下是一些基本的命令行参数传递的规则和示例:
基本规则
- 命令:要执行的程序或脚本的名称。
- 选项:通常以单个减号(
-
)开头,例如ls -l
中的-l
。 - 参数:通常是命令作用的对象,比如文件名或目录名。
- 长选项:有些命令支持长格式选项,通常以两个减号(
--
)开头,例如ls --all
。
传递参数的示例
-
基本参数传递:
command arg1 arg2 arg3
这里
arg1 arg2 arg3
是传递给command
的参数。 -
使用选项:
ls -l /home/user
在这个例子中,
-l
是一个选项,表示以详细列表形式显示/home/user
目录的内容。 -
传递多个选项:
cp -r -v source_dir destination_dir
这里
-r
和-v
都是传递给cp
命令的选项,分别表示递归复制和显示详细过程。 -
使用长选项:
rm --recursive --force directory
在这个例子中,
--recursive
和--force
是长格式选项,用于递归删除目录并忽略不存在的文件。 -
参数和选项混合使用:
find /home/user -name "*.txt" -type f -exec grep "keyword" {} \;
这里
/home/user
是find
命令的参数,-name "*.txt"
和-type f
是选项,而-exec grep "keyword" {} \;
是一个执行动作。 -
引用特殊字符:
如果参数包含空格、特殊字符或者与shell关键字冲突,通常需要用引号(单引号或双引号)将参数括起来:echo "Hello World"
-
使用变量:
可以使用变量来传递参数:filename="example.txt" cp $filename /new/location/
了解这些基本规则后,就可以根据具体的命令和需求来传递参数。每个命令都有自己的参数和选项,可以通过查看命令的帮助文档(通常是使用 command --help
或 man command
)来获取详细信息。
2.2 Linux脚本*.sh
在Linux和类Unix系统中,*.sh
是一个文件扩展名,通常用于表示shell脚本文件。
以下是一些关于
.sh 文件的基本信息:
- 什么是Shell脚本?
Shell脚本是一种包含一系列命令的文本文件,这些命令可以被shell(通常是Bash或其他shell)解释执行。Shell脚本允许用户自动化常见的任务,比如文件操作、程序启动、系统配置等。
*.sh
文件的作用- 自动化任务:通过将多个命令组合成一个脚本,可以自动化复杂的任务。
- 批处理:可以对大量数据进行批量处理,例如,批量重命名文件或处理日志。
- 配置管理:用于配置和管理系统设置。
- 编程:虽然shell脚本通常不是用来编写复杂应用程序的,但它提供了一种简单的编程方式来处理常见的任务。
- 创建和使用
.sh
文件
-
编写脚本:
使用文本编辑器(如vi
,nano
, 或者gedit
)创建一个包含shell命令的文件。例如,创建一个名为hello_world.sh
的文件:#!/bin/bash echo "Hello, World!"
第一行是一个特殊的注释,称为“shebang”,它告诉系统这个脚本应该使用哪个解释器来执行(在这个例子中是
/bin/bash
)。 -
使脚本可执行:
使用chmod
命令来赋予脚本执行权限:chmod +x hello_world.sh
-
运行脚本:
在终端中,可以通过以下方式运行脚本:./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
的界面比其他一些文本编辑器(如 vi
或 emacs
)要直观得多。
我认为她优雅而轻盈,对于“简单纯文本”的编辑任务,感觉特别舒爽,有裸睡的舒适感😎😎。
所以,有必要向您推介!😋
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
是一个轻量级的编辑器,适合快速编辑配置文件或在服务器上执行简单的文本编辑任务。尽管它不如 vi
或 emacs
功能全面,但它的简单性使它成为许多用户的首选。
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
截屏图片
(此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)
精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
- 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
- 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
- 靠谱程序员的好习惯
- 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归
CSDN实用技巧博文: