精华内容
下载资源
问答
  • 2020-12-17 09:13:09

    shell脚本是运维工程师必不可少的一项技能,现在大多数企业招聘都需要掌握shell、python、PHP等其中一项或两项,对于运维工程师,shell无疑是最好的选择,因为shell有上千个Linux命令做支撑。对于一些常规业务应用,使用shell脚本更符合Linux运维简单、易用、高效的三大基本原则。

    shell脚本的执行方式有三种利用bash或sh执行(或cat 脚本路径|bash,实质是一样的)[root@shell shell]# cat first.sh#!/bin/bash#date:2019-06-11cd /var/log/pwdls -l messages[root@shell shell]# bash first.sh/var/log-rw-------. 1 root root 915415 6月 12 04:01 messages

    2.利用绝对路径或相对路径执行,需要执行权限(chmod +x 脚本路径)[root@shell shell]# chmod +x first.sh[root@shell shell]# ll first.sh-rwxr-xr-x 1 root root 61 6月 12 04:32 first.sh[root@shell shell]# ./first.sh/var/log-rw-------. 1 root root 915542 6月 12 05:01 messages

    3.source或“.”执行,在当前shell下执行,相当于在命令行执行命令[root@shell shell]# source first.sh/var/log-rw-------. 1 root root 915542 6月 12 05:01 messages[root@shell log]#

    总结:方式1和3执行脚本时,是不需要加执行权限的;方式1和2执行脚本时,是打开一个新的子shell执行,执行完脚本退回到父shell,同时脚本执行的结果返回给父shell,但是脚本中产生的变量随着子shell的退出而消失。

    通常执行自己写的脚本时使用方式1和2比较多,方式3的使用有两种情况:一是加载环境变量(比如 source /etc/profile);二是在一个脚本中调用另外一个脚本时。

    如果你理解了shell脚本三种执行方式的不同,那么来猜一猜下面两个脚本执行后打印变量A的值分别会是什么?[root@shell shell]# cat first.sh#!/bin/bash#date:2019-06-11cd /var/log/A=$(pwd)ls -l messages[root@shell shell]# bash first.sh-rw-------. 1 root root 915542 6月  12 05:01 messages[root@shell shell]# echo $A[root@shell shell]# cat first.sh#!/bin/bash#date:2019-06-11cd /var/log/A=$(pwd)ls -l mes

    更多相关内容
  • shellpython的优劣对比到底用哪个

    千次阅读 2020-11-20 18:31:57
    Python相对于shell的优点:(1)Python不需要记忆太多的命令,语法简单,有C基础的人起来非常容易上手,易于使用。而shell的命令太多了,但常用的命令不是太多。(2)Python可移植性好,它的标准是统一的,,...

    d5917eee-9b3f-42dc-8b72-ca166dbebbb6.jpg

    Python相对于shell的优点:

    (1)Python不需要记忆太多的命令,语法简单,有C基础的人学起来非常容易上手,易于使用。而shell要学的命令太多了,但常用的命令不是太多。

    (2)Python可移植性好,它的标准是统一的,,跨平台(比如:Windows和Linux),严谨,不会出现因为平台的不同运行结果不同,但shell的命令在各个平台上还有些不一样。

    (3)Python要更加强大,shell是一种命令语言,同时也可以看成是一个命令解释器,用于接收诸如awk、sed的命令调用等完成相关的功能。而Python则是一种编程语言,Python提供给程序员更大的自由度和灵活性,以完成shell所不能完成或者难于完成的编码任务,如实现面向对象的模块化设计、操作服务器数据库等等。

    (4)Python支持面向对象、支持可扩展性和可嵌入性,同时提供了功能丰富的库。

    (5)性能方面:很明显地,Python的执行效率要高于shell,有一个很充分的理由就是shell本身的各种进程间IPC通信要造成相当大的开销。而Python底层是用C实现的,其性能可以接近于C,但具体相同功能的Python代码量却要比C短上很多倍!因此,按照性能排序:C > Python > shell,按照开发效率排序:shell > Python > C。

    shell的相对python优点:

    (1)简单,开发迅速,专注系统(比如:Linux)管理领域。

    (2)Shell脚本语言的优势在于处理偏操作系统底层的业务。

    Python的缺点:

    (1)速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。

    (2)代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。

    (3)线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。

    语言的选择没有一定之规,主要还要看你的应用,和你熟悉语言,如果你熟悉shell且已经满足工作了,就没有必要放弃而改用python,相反,如果对shell不熟,又懂python,那么如果你用python可以完成,又何必纠结于shell呢?如果是跨平台,用python显得更加方便。其实在实际工作中由于,工作本身的限制,选择用哪个是没有那么纠结的。如果是学习,那么多学一点总是好的。

    展开全文
  • 学shell就是学linux命令。perl有强大的正则表e69da5e6ba903231313335323631343130323136353331333433633966达式支持,对于文本处理非常强悍,玩linux不得不学。python作用一种面向对象的,能作为linux脚本...

    展开全部

    perl、shell、python三种脚本语言的区别:

    1、适用不同:shell是操作linux的基本,是必须学的。学shell就是学linux命令。perl有强大的正则表e69da5e6ba903231313335323631343130323136353331333433633966达式支持,对于文本处理非常强悍,玩linux不得不学。python作用一种面向对象的,能作为linux脚本的语言,学好之后能帮你很好地完成工作。

    2、特点不同:Perl是一种能完成任务的语言。从一开始,Perl就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。它可以很容易操作数字,文本,文件和目录,计算机和网络,特别是程序的语言。

    这种语言应该很容易运行外部的程序并且扫描这些程序的输出获取感兴趣的东西。而且它还应该很容易能把这些你感兴趣的东西交给其它程序做特殊的处理。当然,这种语言还应该很容易在任何现代的操作系统上可以移植地编译和运行。

    shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shellscript(非交互)方式执行。

    shellscript是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shellscript是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器,类似于DOS下的command.com。

    它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourneshell(sh)和Cshell(csh)。

    Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格,Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。

    3、优点不同:perl,用作文本处理比较好,可以作为系统的辅助工具。shell,用作系统维护、操作等方面。python,功能强大,模块多、跨平台能力好,完全面向对象,尤其适用做大型脚本程序的开发和快速开发。

    扩展资料:

    erl比shell+sed+awk更强大,但学习两者并不冲突,通常是学习shell做为脚本编程的入门基础。而Python在应用领域则与前两者有很大的差别,无太大的可比性。面向不同的任务,可以只需用到其中的一种,也可能三种都要用到,所以究竟该学谁不学谁,需要由面对的任务来决定。

    总之,shell是基础,其他是进阶辅助。

    Shell脚本通常都是以.sh为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它一定会是一个shell脚本了。

    test.sh中第一行一定是“#!/bin/bash”它代表的意思是,该文件使用的是bash语法。如果不设置该行,那么你的shell脚本就不能被执行。’#’表示注释。后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等等。

    展开全文
  • 好好学习天天向上! :shell学习 :python学习 :golang学习 :程序学习 :网络学习 :系统学习
  • Linux运维对比:Shell运维 VS Python运维

    千次阅读 2020-07-04 17:21:33
    通过简单的例子去找出Linux运维中使用shell与使用python的一些不同,分析两者的主要知识点 二、实例 2.1、需求 查询当前主机是否支持超线程 查询当前内存使用情况 2.2、通过Shell实现 既然是在Linux,那么...

    目录

     

    一、目的所在

    二、实例

    2.1、需求

    2.2、通过Shell实现

    2.3、通过Python实现

    2.4、扩展

    Shell

    Python

    主要区别:

    实现功能:

    跨平台性:


    一、目的所在

    通过简单的例子去找出Linux运维中使用shell与使用python的一些不同,分析两者的主要特点

    二、实例

    2.1、需求

    1. 查询当前主机是否支持超线程

    2. 查询当前内存使用情况

    2.2、通过Shell实现

    既然是在Linux,那么肯定要先使用Linux自身的工具,实现脚本内容如下:

    g='\e[1;32m'
    e='\e[0m'
    prin(){
            echo -e "$1"
    }
    cpu_red(){
            #内核数[即线程]
            cpu_processor=`grep processor /proc/cpuinfo | wc -l`
            #CPU数量[即多路]
            cpu_number=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
            #CPU物理内核
            cpu_core=`cat /proc/cpuinfo | grep "cpu cores" | sed -n '1p' | awk '{print $4}'`
            #CPU型号
            cpu_info=`cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c`
    }
    mem_red(){
            #总内存[单位MB]
            total=`free -m | grep -v "Swap" | awk '{print $2}' | sed -n "2p"`
            used=`free -m | grep -v "Swap" | sed -n '2p' | awk '{print $3}'`
            free=`free -m | grep -v "Swap" | sed -n '2p'| awk '{print $4}'`
            shared=`free -m | grep -v "Swap" | sed -n '2p' | awk '{print $5}'`
            cache=`free -m | grep -v "Swap" | sed -n '2p' | awk '{print $6}'`
    }
    print_cpu(){
            cpu_red
            echo -e "CPU物理数:${g}${cpu_number}${e}\nCPU内核数:${g}${cpu_core}${e}\nCPU型号:${g}${cpu_info}${e}"
            if [[ ${cpu_core} == ${cpu_processor} ]];then
                    echo -e "超线程:${g}支持${e}"
            else
                    echo -e "超线程:${g}不支持${e}"
            fi
    }
    print_mem(){
            mem_red
            d="当前主机内存信息 总内存:${g}${total}MB${e} 当前已用:${g}${used}MB${e} 当前可用:${g}${free}MB${e} 共享占用:${g}${shared}MB${e} 缓存占用:${g}${cache}MB${e}"
            for i in $d;do
                    prin "$i"
            done
    }
    print_cpu
    print_mem
    

    执行结果如下:

     

    2.3、通过Python实现

    源码如下:

    import psutil
    def cpu():
        info = psutil.cpu_times()
        luoji = psutil.cpu_count()
        wuli = psutil.cpu_count(logical=False)
        if luoji == wuli:
            print("主机CPU不支持超线程")
        else:
            i = int(luoji/2)
            if wuli == i:
                print("主机CPU支持超线程")
    def mem():
        mems = psutil.virtual_memory()
        print('当前主机总内存:', int(mems.total/1024/1024), 'MB')
        print('当前已使用:', int(mems.used/1024/1024), 'MB')
    cpu()
    mem()
    

    执行结果如下:

    2.4、扩展

    下面附上Windows端的执行结果

    Shell

    Python

    主要区别:

    实现功能:

    • Shell需要通过相关命令进行特定的筛选,灵活性比较高,但是比较复杂

    • Python只需要调用别人写好的模块即可实现相关功能,且不需要熟悉Linux命令,但是能够实现的功能相对来说不够灵活,总体就是简单

    跨平台性:

    • Shell可以在任意Linux平台上运行

    • Python可以在任意平台上运行,所以Python的跨平台性更强

     

    展开全文
  • 总之一句话:先学shell,再学python!!!!!! py很强大,我承认。但在运维方面,py不但不强大,还有硬伤。正因为有下述硬伤,所以我们运维,还是用shell多,用py极少。 ------只从shell角度,详细对比...
  • Python学习:执行系统shell命令

    千次阅读 2021-08-22 17:34:21
    python可以作为shell替代,代码比较直观,易于维护。 python支持调用外部shell命令。不过,这个问题没有看上去简单,要完美的解决此问题,比较复杂,就连标准库也不见得处理得很好。 2.方案 2.1.方案一 首先最简单的...
  • python shell

    2018-06-30 15:05:47
    解压密码:www.snowfox.wang python shell 自动化运维与部署,学好这个才能从根本上对开发有深入了解,python的学习兴趣会大大增加
  • 主要介绍了Python pexpect模块及shell脚本except原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Python Shell解释器

    2020-12-21 07:35:02
    什么是解释器:简单来说,写Python代码用的是Python语言,而计算机用的是计算机语言(计算机只能读取0和1),解释器就是充当这两者之间的翻译官。 Python解释器种类 1.CPython,C语言开发的解释器[官方],应用广泛的...
  • 主要介绍了python执行shell脚本创建用户及相关操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • python shell中运行python文件的实现

    千次阅读 2020-12-21 16:50:00
    python shell中运行python文件的实现最近在学习flask开发,写好程序后需要在python shell中运行测试功能。专门抽时间研究了下,总结以防止以后遗忘。这是测试文件的结构,python_example主文件夹,下面有example....
  • 在工作中,我们会碰到使用shell脚本调用python脚本,那么如何使用? 1.shell单纯的调用python脚本,不传递参数 shell: file_path="/home/chen_lib" python_name="test.py" python $file_path/$python_name 对...
  • 主要介绍了Python调用shell命令常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • python3执行shell命令

    千次阅读 2021-04-26 21:22:10
    python执行shell命令?Python执行Linux系统命令,即在Python脚本中调用Shell命令,具体有以下四种方法:os.system //仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息system(command) -> exit_...
  • python脚本与shell脚本的区别比较

    千次阅读 2020-12-19 12:05:02
    python脚本与shell脚本的区别比较shell脚本特性shell 应该属于宏语言,顾名思义是系统的壳,方便与系统交互的。shell 简单,开发迅速,专注系统(比如:Linux)管理领域。shell就是和系统结合得比较紧密,其内部数据...
  • python中的shell是什么

    千次阅读 2021-04-27 01:16:32
    我们在给系统下达命令时,可以通过shell的方法来实现,也就是我们常说的命令行。比较特殊的是,它接受的是键盘输入的命令。本篇在对shell进行介绍的同时,还带来了...2、执行方法(1)commands模块commands对Python的...
  • 在一般运行分子动力时候,我都采用这样一个python脚本,运行方式是xxx.py -p xx.pdb -l xx.pdb -n nember, p:蛋白文件路径 l:配体文件路径 n:使用的CPU数量.但当配体数量一多起来,显然会存在一个耗时耗力的情况,因此...
  • python编写shell脚本详细讲解

    千次阅读 2021-02-04 09:50:15
    今天同事叫我编写一个shell脚本。话说,虽然我受*nix的影响甚深,但是对于*nix 里随处可见的sh脚本却是讨厌之极。为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随写随扔的程序,完全没有任何美感可言。...
  • ShellPython学习教程总结

    千次阅读 2018-08-24 15:55:22
    因此,为了更好的帮助大家学习运维技术,特地针对ShellPython脚本语言总结了文档,此文档会不定期修改或增加知识点。 下载地址:百度云盘 希望我们能一起学习,一起进步,一起走上人生巅峰!哈哈~   ...
  • 相信有同学也遇到类似的经历和困惑,值得庆幸的是今天能有机会看这篇文章的朋友,也许你已经犹豫了好久,甚至基本决定要学Python了,请继续往下读这一篇文章吧~!!!   正文 1、近年编程语言发展趋势 2、为...
  • 在本篇文章里小编给各位整理的是关于使用IDLE的Python shell窗口实例详解内容,有兴趣的朋友们学习下。
  • 主要介绍了Python3.7.0 Shell添加清屏快捷键的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • python3中的shell是什么?怎么用?

    千次阅读 2021-03-04 09:23:18
    大家有时候在写代码时候,会不会觉得那么多的代码串特别繁琐,像小编,最开始接触的时候,感觉那一个一个代码堆积越多,感觉自己更厉害,事实上,堆积越多,有...Python ShellPython Shell 即原生的 Python 交互环境...
  • Linux Bash Shell Scripts For Ops, some python scripts here also. 这是一个怎样的项目 此项目是对在Linux运维工作所能用到的Shell脚本和Python脚本的归纳和总结。 大部分源码均出自生产系统并经过比较严谨的测试...
  • python3.4 shell

    2020-11-29 16:03:11
    了解 python 的特性 学习下载和安装 python 学习执行 python ......(2) 了解 python 的特性 (3) 学习下载和安装 python (4) 学习执行 python 命令和脚本文件的方法 (5) 学习 python 语音的基本语法 (6)...
  • 如何调用python中的shell脚本?

    千次阅读 2021-01-30 08:29:42
    相信大家对于这块了解应该...最起码大家心里应该知道怎么去调用一些脚本了吧,那大家根据自己的想像,在看下下文小编给的内容,结合起来,优化下吧~1.python调用shell方法os.system()#!/usr/local/bin/python3.7imp...
  • 大数据java还是Python? 大数据开发既要学习Python,也要学习java。 学习大数据开发,java语言是基础,主流的大数据软件基本都是java实现的,所以java是必的, python也是重要的爬取数据的工具,也是大数据后续...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,779
精华内容 43,911
关键字:

学shell还是python