Python(二十)Linux的shell介绍
csdh11 2025-01-15 12:08 28 浏览
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
相关推荐
- 探索Java项目中日志系统最佳实践:从入门到精通
-
探索Java项目中日志系统最佳实践:从入门到精通在现代软件开发中,日志系统如同一位默默无闻却至关重要的管家,它记录了程序运行中的各种事件,为我们排查问题、监控性能和优化系统提供了宝贵的依据。在Java...
- 用了这么多年的java日志框架,你真的弄懂了吗?
-
在项目开发过程中,有一个必不可少的环节就是记录日志,相信只要是个程序员都用过,可是咱们自问下,用了这么多年的日志框架,你确定自己真弄懂了日志框架的来龙去脉嘛?下面笔者就详细聊聊java中常用日志框架的...
- 物理老师教你学Java语言(中篇)(物理专业学编程)
-
第四章物质的基本结构——类与对象...
- 一文搞定!Spring Boot3 定时任务操作全攻略
-
各位互联网大厂的后端开发小伙伴们,在使用SpringBoot3开发项目时,你是否遇到过定时任务实现的难题呢?比如任务调度时间不准确,代码报错却找不到方向,是不是特别头疼?如今,随着互联网业务规模...
- 你还不懂java的日志系统吗 ?(java的日志类)
-
一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...
- 谈谈枚举的新用法--java(java枚举的作用与好处)
-
问题的由来前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了!事情是这样的,做过游戏的都知道,buff,需要分类型,且...
- 你还不懂java的日志系统吗(javaw 日志)
-
一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...
- Java 8之后的那些新特性(三):Java System Logger
-
去年12月份log4j日志框架的一个漏洞,给Java整个行业造成了非常大的影响。这个事情也顺带把log4j这个日志框架推到了争议的最前线。在Java领域,log4j可能相对比较流行。而在log4j之外...
- Java开发中的日志管理:让程序“开口说话”
-
Java开发中的日志管理:让程序“开口说话”日志是程序员的朋友,也是程序的“嘴巴”。它能让程序在运行过程中“开口说话”,告诉我们它的状态、行为以及遇到的问题。在Java开发中,良好的日志管理不仅能帮助...
- OS X 效率启动器 Alfred 详解与使用技巧
-
问:为什么要在Mac上使用效率启动器类应用?答:在非特殊专业用户的环境下,(每天)用户一般可以在系统中进行上百次操作,可以是点击,也可以是拖拽,但这些只是过程,而我们的真正目的是想获得结果,也就是...
- Java中 高级的异常处理(java中异常处理的两种方式)
-
介绍异常处理是软件开发的一个关键方面,尤其是在Java中,这种语言以其稳健性和平台独立性而闻名。正确的异常处理不仅可以防止应用程序崩溃,还有助于调试并向用户提供有意义的反馈。...
- 【性能调优】全方位教你定位慢SQL,方法介绍下!
-
1.使用数据库自带工具...
- 全面了解mysql锁机制(InnoDB)与问题排查
-
MySQL/InnoDB的加锁,一直是一个常见的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?下面是不同锁等级的区别表级锁:开销小,加锁快;不会出现死锁;锁定粒度...
- 看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法
-
一、什么是死锁加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获...
- 一周热门
- 最近发表
- 标签列表
-
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- parsevideo (33)
- 个人网站源码 (37)
- centos7.4下载 (33)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- jdk1.8.0_191下载 (33)
- axure9注册码 (33)
- pts/1 (33)
- spire.pdf 破解版 (35)
- shiro jwt (35)
- sklearn中文手册pdf (35)
- itextsharp使用手册 (33)
- 凯立德2012夏季版懒人包 (34)
- 反恐24小时电话铃声 (33)
- 冒险岛代码查询器 (34)
- 128*128png图片 (34)
- jdk1.8.0_131下载 (34)