首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【linux】自主shell编写

01.输出命令行 完成对一个shell 的编写,首先我们需要输出一个自己的命令行 我们可以通过getenv来获取环境变量 const char * GetSserName() { const...cwd = getenv("PWD"); if(cwd == NULL ) return "None"; return cwd; } 后面我们再对路径进行截取 现在完成对命令行输出的编写...检验结果: 04.执行命令 执行命令,我们创建子进程进行程序替换 我们将上面的代码放入一个新函数中,并让上面的过程持续进行: 05.细节修改 我们发现现在,执行cd命令是没有反应的 自定义 shell...putenv(cwd); } 还需要更改的是,系统的shell...只会显示当前路径,而我们自定义的shell会显示绝对路径 #define SkipPath(p) do{ p+= strlen(p)-1; while(*p!

9110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    编写Linux Shell脚本的最佳实践

    命名有标准 所谓命名规范,基本包含下面这几点: 文件名规范,以.sh结尾,方便识别 变量名字要有含义,不要拼错 统一命名风格,写shell一般用小写字母加下划线 编码要统一 在写脚本的时候尽量使用UTF...默认情况下windows判断utf-8格式是通过在文件开头加上三个EF BB BF字节来判断的,但是在Linux中默认是无BOM的。...否则,在Linux下运行的时候就会识别到开头的三个字符,从而报一些无法识别命令的错。 权限记得加 这一点虽然很小,但是我个人却经常忘记,不加执行权限会导致无法直接执行,有点讨厌。。。...比如下面的两个sed命令: 他们的作用一样,都是获取文件的第一行。但是第一条命令会读取整个文件,而第二条命令只读取第一行。当文件很大的时候,仅仅是这样一条命令不一样就会造成巨大的效率差异。...利用/dev/null过滤不友好的输出信息 会利用命令的返回值判断命令的执行情况 使用文件前要判断文件是否存在,否则做好异常处理 不要处理ls后的数据(比如ls -l | awk '{ print $8

    76920

    编写Linux Shell脚本的最佳实践

    命名有标准 所谓命名规范,基本包含下面这几点: 文件名规范,以.sh结尾,方便识别 变量名字要有含义,不要拼错 统一命名风格,写shell一般用小写字母加下划线 编码要统一 在写脚本的时候尽量使用UTF...默认情况下windows判断utf-8格式是通过在文件开头加上三个EF BB BF字节来判断的,但是在Linux中默认是无BOM的。...否则,在Linux下运行的时候就会识别到开头的三个字符,从而报一些无法识别命令的错。 权限记得加 这一点虽然很小,但是我个人却经常忘记,不加执行权限会导致无法直接执行,有点讨厌。。。...比如下面的两个sed命令: 他们的作用一样,都是获取文件的第一行。但是第一条命令会读取整个文件,而第二条命令只读取第一行。当文件很大的时候,仅仅是这样一条命令不一样就会造成巨大的效率差异。...利用/dev/null过滤不友好的输出信息 会利用命令的返回值判断命令的执行情况 使用文件前要判断文件是否存在,否则做好异常处理 不要处理ls后的数据(比如ls -l | awk '{ print $8

    1.1K90

    企业Linux运维SHELL编写规范 原

    路径规定 为了方便维护人员维护,需要规定两个正式脚本的发布路径和维护人员的测试路径,不要将脚本放到规定路径以外,例如: 1.1 维护人员的测试路径: /opt/tmn/user 该路径用于维护人员编写脚本是的测试路径...编写一个脚本 每套脚本之间路径不要有交叉,将所有用到的脚本全部放在定义目录下 代码尽量简洁,不要啰嗦,注释得当 例如:编写一个给外系统传输网管传送接口数据的脚本 2.1 脚本名称定义 有意义,英文名...(注意,为了脚本的易读性,尽量减少配置文件的使用,不建议将数据库用户信息等放到配置文件中读取) 2.3 执行文件编写 每套脚本中用到的shell脚本尽量不要太多,通常每个shell脚本内容100行左右,...###################################################### ##                         给传输网管传送接口数据 ## ## 编写...定时备份 编写好的脚本,要加入定时备份,通常备份的文件存储到另外一台服务器上 4. 待续……

    95560

    Linux Shell查找文件

    /bin/bash # 查找当前目录中所有大于1mb的文件,把文件名写到文本文件中,统计个数 # # find命令,参数:路径地址,命令参数,-size n (查找长度为n的文件) -type f (...查找某类型文件,f普通文件) # tee命令 参数:文件名 (把输入数据保存成文件) # | 管道符号 把第一个命令的执行结果传给第二个命令 # wc统计命令,参数:-l (统计行数) find.../bin/bash # 目的:查找/目录下,文件名以abc开头的文件100个,保存到文件中 # # for in循环 # shell的命令替换,反引号,将命令执行结果保存到变量中 # find查找命令...参数:-name "xxx" (查找文件名,里面可以用通配符*) # head开头命令 参数:-n (显示多少行) # 输出重定向>> 两个>>代表追加 for filename in `find /

    5.2K20

    Linux系统Shell编程——脚本编写思路与过程

    Linux系统Shell编程——脚本编写思路与过程 “ 前段时间有小伙伴问我一些问题,涉及到shell脚本的编写问题,事后,我深入思考了下,实际生产环境的确也会经常用到,因此如何写这个脚本?...” 问题一: 编写脚本自动统计访问网站失败的IP地址 问题二: 编写脚本自动统计十分钟内访问网站的IP地址 征对这两个问题,我的解决思路如下: 第一个问题: 1)怎么才算访问网站失败?...编写脚本 自动统计访问网站失败的IP地址 vi fail_connect_ip.sh ########################################## #this scripts is.../bin/sh egerp "400|403|404|500" /wwwlogs/access.log |awk '{print $1}' |sort -nr |uniq -c 最好将结果追加到一个文件...,然后查看文件,因为有可能输出太多,前面的统计结果无法看到,当然实际生产环境中访问失败的状态码不止这几个 最终执行结果如下 [root@ ~]# sh fail_connect_ip.sh

    47020

    【Linux】文件服务OpenSSH(Secure Shell)

    Linux操作系统通过各种文件服务提供了强大的文件管理和共享功能。...以下是一些常见的Linux文件服务: OpenSSH(Open Secure Shell)是一套用于提供安全网络通信的开源实现,主要包含SSH(Secure Shell)协议的实现。...SSH是一种加密的网络协议,用于在不安全的网络中安全地进行远程登录、文件传输和命令执行。OpenSSH提供了SSH客户端和服务器,是Linux和其他类Unix操作系统中常见的工具之一。...,用于通过加密的通道安全地传输文件。...OpenSSH是许多Linux发行版的标配,并且在许多其他操作系统上也可用。它在互联网上广泛使用,成为安全远程管理和文件传输的标准工具。

    22310

    初识Linux · 自主Shell编写

    前言: 本文介绍是自主Shell编写,对于shell,即外壳解释程序,我们目前接触到的命令行解释器,有bash,还有SSH,对于今天模拟实现的Shell编写,我们模拟的是bash,以及需要的预备知识前文已经介绍了...,进程的多方面的知识,在自主Shell编写里面比较重要的是进程程序替换,进程终止,进程等待,进程状态什么的,都是自主Shell编写里面的辅助知识罢了。...那么,话不多说,我们直接进入到Shell编写部分。...我们知道scanf是通过空格或者换行符来获取的,此时ls -l -n -a,就只能获取到ls,所以我们应该换个函数,这里推荐fgets,其实gets也是可以的,但是因为后面有文件的IO操作,所以我们使用...此时自主shell编写就差不多了。 感谢阅读!

    9510

    Linux 编写Shell脚本

    1.Shell脚本命令的工作方式: 交互式:用户每输入一条命令就立即执行。...批处理:用户事先编好一个完整的Shell脚本,Shell会一次性执行脚本中的诸多命令 2.接收用户参数 $#总共几个参数,$*所有位置的参数值,$1,$2...第几个参数值 3.判断用户的参数 条件测试语句的执行格式...:[条件表达式] 测试语句4种: 文件测试语句 逻辑测试语句 整数值比较语句 字符串比较语句 文件测试即使用指定条件来判断文件是否存在或权限是否满足等情况运算符...文件测试所用参数: 运算符 作用 -d 测试文件是否为目录类型 -e 测试文件是否存在 -f 判断是否为一般文件 -w 测试当前用户是否有权限写入 -x 测试当前用户是否有权限执行 -r 测试当前用户是否有权限读取

    2.7K10

    编写Linux Shell脚本的最佳实践

    代码有注释 注释,显然是一个常识,不过这里还是要再强调一下,这个在shell脚本里尤为重要。因为很多单行的shell命令不是那么浅显易懂,没有注释的话在维护起来会让人尤其的头大。...命名有标准 所谓命名规范,基本包含下面这几点: 文件名规范,以.sh结尾,方便识别 变量名字要有含义,不要拼错 统一命名风格,写shell一般用小写字母加下划线 编码要统一 在写脚本的时候尽量使用UTF...默认情况下windows判断utf-8格式是通过在文件开头加上三个EF BB BF字节来判断的,但是在Linux中默认是无BOM的。...否则,在Linux下运行的时候就会识别到开头的三个字符,从而报一些无法识别命令的错。 当然,对于跨平台写脚本还有一个比较常见的问题就是换行符不同。windows默认是 而unix下是 。...在shell中,我们也有类似的小技巧: #!

    1.1K30

    linux shell脚本编写实例_常用的shell脚本

    LINUX Shell脚本编程实例详解(一)上 ping命令测试网段内主机的2例详解 使用linux已经有10来年了但是一直止于各种服务器的搭建和环境的调优,能力不能得到提升,今天突然下定决心学习Shell...脚本编程,因此以网上广为流传的《Shell脚本100例》为基础学习、实验和笔记。...使用vim shell100-scanip-1.sh命令创建脚本文件 #!.../bin/bash 在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本。 目前研发送测的shell脚本中主要有以下两种方式: (1) #!/bin/sh (2) #!...&>/dev/null :表示将标准输出stdout和标准错误输出stderr重定向到null的设备中,也就是说不打印到屏幕上了,而且也不保存文件(放到名叫null的设备中——无底洞永远消失)。

    3.3K30

    Linux中编写Shell脚本

    Linux中编写Shell脚本 目录 Shell Shell脚本的执行 Shell脚本编写规范 Shell 中的变量 变量的算术运算 双小括号 (()) 数值运算命令的用法 let 运算命令的用法 expr...Shell脚本语言很适合用于处理纯文本型的数据,而Linux系统中几乎所有的配置文件、日志文件,以及绝大对数的启动文件都是纯文本类型的文件。...Shell 脚本的类型 Shell脚本语言是弱类型语言(无须定义变量的类型即可使用),在Unix/Linux中主要有两大类shell: 一类是 Bourne shell ,另一类是 C shell Bourne...Shell脚本编写规范 Shell脚本的开发规范及习惯非常重要,虽然这些规范不是必须要遵守的,但有了好的规范和习惯,可以大大提升开发效率,并能在后期降低对脚本的维护成本。.../bin/bash cd /opt/project/ scrapy crawl xx python3 test.py 相关文章: Linux中sed工具的使用 Linux中grep工具的使用 Linux

    7.2K10

    shell脚本简介+编写

    0 [root@VM-0-9-centos ~]# 3、文件类型判断 -e:文件存在(existence) -f:文件存在并且是一个常规的文件(file) -d:文件存在并且是一个目录(directory...]# sh case.sh 1 变量一 [root@VM-0-9-centos shell]# sh case.sh 2 变量二 [root@VM-0-9-centos shell]# sh case.sh...从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分) [root@VM-0-9-centos ~]# dirname /data/test/my.txt /data...5 [root@VM-0-9-centos shell]# 七、匹配正则 在Linux中,grep,sed,awk等命令都支持通过正则表达式进行模式匹配。...Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示: 0——标准输入(stdin) 1——标准输出(stdout) 2——标准错误(stderr)

    39140
    领券
    首页
    学习
    活动
    专区
    圈层
    工具