Python(二十)Linux的shell介绍(python操作linux命令行)
mhr18 2024-10-20 06:38 23 浏览 0 评论
Editor:Lonelyroots
Linux的shell介绍:
1. 文本传输:
1.1. 管道:
| :前面命令的输出作为后面命令的输入,可使用管道符 | 来建立一个管道行。
find -name '*.txt':在ls文件夹中寻找后缀名为.txt的文件。
find -name '*.txt' | args grep hello:查找带有hello,后缀名为.txt的文件。
1.2. 输入重定向:
输入重定向是指把命令或可执行程序的标准输入重定向到指定的文件中,也就是输入可以不来自键盘而是来自一个指定的文件。输入重定向主要用于改变一个命令的输入源,输入重定向的一般形式为“命令 < 文件名”。
wc -l test.txt:查看test.txt文件的内容行数,运行结果需返回文件名。
wc -l < test.txt:输入重定向:将输入重定向到test.txt中,查看test.txt文件的内容行数,运行结果无需返回文件名。
1.3. 输出重定向:
输出重定向是指把命令或可执行程序的标准输出或标准错误输出重定向到指定的文件中,命令中的输出不显示在屏幕上,而是写入到指定的文件中,以便完成以后的问题定位或其他的用途。输出重定向的一般形式为“命令 > 文件名”,>是覆盖,>>是追加,标准输出echo。
cat test.txt:查看test.txt文件内容
echo:相当于Python语法里的print
echo nihao test > test1.txt:将nihao test输入到test1.txt文件中,查看文件后如下图,清空test1.txt里所有内容,添加nihao test,相当于Python文件处理中的'w'方法。
echo hello >> test1.txt:将hello输入到test1.txt文件中,查看文件后如下图,无需清空test1.txt里所有内容,直接添加nihao test,相当于Python文件处理中的'a'方法。
1.4. 输出到终端:
tty:查看当前终端信息,即挂载路径,先开的终端为0,后开的为1,以此类推。
who即who am i:可以查看当前用户登录的详细信息。
echo hello >> /dev/pts/1:终端0输入hello,终端1输出hello。当然了,终端1也可以输出给终端0。
2. 文件传输:
2.1. alias文件别名:
使用格式:alias 新的命令='原命令 选项/参数'
当需要跳转多个文件路径,如cd py_case/test,可以采用取别名的方式alias cpcc='cd py_case/test'
可以使用alias cpcc:来查看cpcc的别名,如下图所示:但是这个别名,每当退出终端以后,别名就失效了。所以要想永久生效,按如下方式操作:
vim .bashrc:.bashrc是一个专门做别名处理的文件,预永久添加别名,需进入文件中配置。
alias cpcc='cd py_case/test':cpcc别名作用:切换到py_case/test文件夹中。
退出界面,再次输入cpcc,会发现报错,所以需要重启终端,才可以使用该别名。
【注】重点:最好不要建立以下四个别名:
alias cd='rm -rfv':切换改成了删除。
alias sudo='sudo halt':提权改成了关机。
alias cp='mv':文件拷贝变成移动
alias vim='vim+q':无法使用vim配置文件,进去就退出
2.2. 文件打包:
三种压缩包格式:tar,gzip,bzip2,
tar -cvf chenhong.tar a.py cx.py xc.py:将三个文件打包至chenhong.tar压缩包中,其中-cvf中的f必须为最后一个。
ls -l:以列表形式查看文件内容,可以看到压缩包的占用内存为10240千字节(KB),没有起到压缩的作用。所以我们需要使用到另外两种压缩包格式。
tar -zvcf chen.gz a.py cx.py xc.py:将三个文件打包至chen.gz压缩包中,其中-zcvf中的f必须为最后一个。
tar -jvcf chen.bz a.py cx.py xc.py:将三个文件打包至chen.bz压缩包中,其中-jcvf中的f必须为最后一个。
进入到MobaXterm,可以清楚地看到创建的压缩包:
也可以将文件,压缩至上一级目录:../
2.3. 文件压缩与解压:
mkdir chen:在bd用户下方的py_case文件夹中新建一个文件夹chen
tar -zxf chen.gz -C chen:将chen.gz解压到chen的下一级。
tar -jxf chen.bz -C chen:将chen.bz解压到chen的下一级。
2.4. 综合使用:
备份文件并压缩:即find查找、输出重定向和压缩综合使用。
find -name '*.txt' >> a.list:备份文件至文件夹a.list。
tar -T a.list -zcvf ch.gz:-T备份文件的意思,一定要加,a.list是备份文件夹名,压缩文件夹命名为ch.gz。
2.5. 文件链接:
软链接:就相当于快捷方式,用vim修改原文件,软链接文件也修改了。
硬链接:相当于备份了一个文件,用vim修改原文件,硬链接文件也修改了。原文件删除,备份文件依旧在。
ln -s test.txt t.soft:软链接:给test.txt创建一个软链接t.soft
ln test.txt p.hard:硬链接:备份test.txt文件,命名为p.hard
3. 进程管理:
3.1. 进程概念和监视:
静态进程:不会动
ps命令:
终端的各个属性:
ps -aux:静态进程:查看所有进程。
动态进程:会动
top命令:
top -d 2:动态进程:每2秒钟刷新一次,按q退出。
vim b.py:新建一个b.py文件,写入:
while True:
pass
python b.py:运行b.py文件。
ps -aux | grep python:查询所有python运行的进程
3.2. 进程暂停和杀死:
kill -9 1867:在MobaXterm中杀死b.py进程:回车确定以后,Linux中出现如下界面,即进程已杀死:
4. shell简介:
4.1. shell介绍:
Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理,shell是一个命令解释器,是一个工具箱, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。
Shell不只是一种解释器,还是一种编程工具,称为脚本语言。
4.2. shell发展:
想深入了解,可以自行去查看网上的资料。
4.3. shell脚本:
vim test.sh创建一个shell脚本,
可以发现,虽然创建了这个test.sh的文件,但是bd没有执行该文件的权限:
可以进行如下两种操作(二选一即可):
①:chmod u+x test.sh:给test.sh文件增加执行文件的权限。cat test.sh:查看test.sh文件。
②:bash test.sh:直接查看test.sh文件
文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去,一起加油!
Editor:Lonelyroots
相关推荐
- 【预警通报】关于WebLogic存在远程代码执行高危漏洞的预警通报
-
近日,Oracle官方发布了2021年1月关键补丁更新公告CPU(CriticalPatchUpdate),共修复了包括CVE-2021-2109(WeblogicServer远程代码执行漏洞)...
- 医院信息系统突发应急演练记录(医院信息化应急演练)
-
信息系统突发事件应急预案演练记录演练内容信息系统突发事件应急预案演练参与人员信息科参与科室:全院各部门日期xxxx-xx-xx时间20:00至24:00地点信息科记录:xxx1、...
- 一文掌握怎么利用Shell+Python实现完美版的多数据源备份程序
-
简介:在当今数字化时代,无论是企业还是个人,数据的安全性和业务的连续性都是至关重要的。数据一旦丢失,可能会造成无法估量的损失。因此,如何有效地对分布在不同位置的数据进行备份,尤其是异地备份,成为了一个...
- docker搭建系统环境(docker搭建centos)
-
Docker安装(CentOS7)1.卸载旧版Docker#检查已安装版本yumlistinstalled|grepdocker#卸载旧版本yumremove-ydocker.x...
- 基础篇:数据库 SQL 入门教程(sql数据库入门书籍推荐)
-
SQL介绍什么是SQLSQL指结构化查询语言,是用于访问和处理数据库的标准的计算机语言。它使我们有能力访问数据库,可与多种数据库程序协同工作,如MSAccess、DB2、Informix、M...
- Java21杀手级新特性!3行代码性能翻倍
-
导语某券商系统用这招,交易延迟从12ms降到0.8ms!本文揭秘Oracle官方未公开的Record模式匹配+虚拟线程深度优化+向量API神操作,代码量直降70%!一、Record模式匹配(代码量↓8...
- 一文读懂JDK21的虚拟线程(java虚拟线程)
-
概述JDK21已于2023年9月19日发布,作为Oracle标准Java实现的一个LTS版本发布,发布了15想新特性,其中虚拟线程呼声较高。虚拟线程是JDK21中引入的一项重要特性,它是一种轻量级的...
- 效率!MacOS下超级好用的Linux虚拟工具:Lima
-
对于MacOS用户来说,搭建Linux虚拟环境一直是件让人头疼的事。无论是VirtualBox还是商业的VMware,都显得过于笨重且配置复杂。今天,我们要介绍一个轻巧方便的纯命令行Linux虚拟工具...
- 所谓SaaS(所谓三维目标一般都应包括)
-
2010年前后,一个科技媒体的主编写一些关于云计算的概念性问题,就可以作为头版头条了。那时候的云计算,更多的还停留在一些概念性的问题上。而基于云计算而生的SaaS更是“养在深闺人未识”,一度成为被IT...
- ORA-00600 「25027」 「x」报错(报错0xc0000001)
-
问题现象:在用到LOB大对象的业务中,进行数据的插入,失败了,在报警文件中报错:ORA-00600:内部错误代码,参数:[25027],[10],[0],[],[],[],[],[...
- 安卓7源码编译(安卓源码编译环境lunch失败,uname命令找不到)
-
前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...
- 编译安卓源码(编译安卓源码 电脑配置)
-
前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...
- 360 Vulcan Team首战告捷 以17.5万美金强势领跑2019“天府杯“
-
2019年11月16日,由360集团、百度、腾讯、阿里巴巴、清华大学与中科院等多家企业和研究机构在成都联合主办了2019“天府杯”国际网络安全大赛暨2019天府国际网络安全高峰论坛。而开幕当日最激荡人...
- Syslog 日志分析与异常检测技巧(syslog发送日志配置)
-
系统日志包含有助于分析网络设备整体运行状况的重要信息。然而,理解并从中提取有效数据往往颇具挑战。本文将详解从基础命令行工具到专业日志管理软件的全流程分析技巧,助你高效挖掘Syslog日志价值。Gr...
- 从Oracle演进看数据库技术的发展(从oracle演进看数据库技术的发展的过程)
-
数据库技术发展本质上是应用需求驱动与基础架构演进的双向奔赴,如何分析其技术发展的脉络和方向?考虑到oracle数据库仍然是这个领域的王者,以其为例,管中窥豹,对其从Oracle8i到23ai版本的核...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle基目录 (50)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (53)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)