加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux 编程快速入门

发布时间:2022-09-23 16:00:51 所属栏目:Linux 来源:
导读:  编程工具

  冒着与 Vi 爱好者展开激烈战争的风险,我是无条件的 Emacs 粉丝。对我来说,Emacs 是进行任何类型的编程工作的理想编辑器。Emacs 有几个附加组件可以让您的生活更轻松。其中之一是 Espen Skogl
  编程工具
 
  冒着与 Vi 爱好者展开激烈战争的风险,我是无条件的 Emacs 粉丝。对我来说,Emacs 是进行任何类型的编程工作的理想编辑器。Emacs 有几个附加组件可以让您的生活更轻松。其中之一是 Espen Skoglund 的 auto-header.el。这将为您的代码文件创建一个标题,Emacs 将自动填充必要的信息。每次您进行更改时,它也会更新标题。这对我来说真的很方便。
 
  我的主目录中有一个子目录,用于存放 emacs 零碎物品。我只是将 auto-header.el 放在这个目录中,然后像这样修改了我的 .emacs 文件:
 
  代码:
 
  (add-to-list 'load-path "~/elisp/")
  (require 'auto-header)
  auto-header.el 文件的一部分定义了用于不同编程语言的注释区域的字符。该文件的标题需要位于源代码文件开头的注释区域内。该文件包含 20 种不同的编程语言,但我经常使用的 PHP 却不见了。所以我只是在Perl和 Postscript之间为它添加了一个条目:
 
  代码:
 
  (perl-mode      . ("#"    ""    "##"  "#"))
  (php-mode . ("/*" "*/" " *" "*"))
  (postscript-mode . ("%" "" "%%" "%"))
  现在,我的文件以一个不错的自动更新标题开头,如下所示:
 
  代码:
 
  /*********************************************************************
  * Filename:      listing.php
  * Description:  Script to list stuff
  * Author:        Michael Jordan
  * Created at:    Tue Nov 29 20:13:14 2005
  * Modified by:  Michael Jordan
  * Modified at:  Tue Nov 29 22:58:56 2005
  ********************************************************************/
  实际上,您可以在此标头中添加更多信息。只需查阅 auto-header.el 文件本身中的注释以获取更多信息。
 
  编程语言和 Linux
 
  是可用于 Linux 的编程语言编译器的虚拟大杂烩。只有著名的gcc 编译器本身将为C++、Fortran 和 ADA 编写的代码以及解释 Java 代码创建二进制文件。对于其他流行的编程语言,如 Pascal、COBOL 和 Lisplinux编译器,有免费可用的编译器。正如你所看到的,真的太多了,无法深入了解所有这些。此外,无论如何,这位作家无法在绝大多数情况下进行编程。但在本课中,我们将研究一些在 Linux 下运行的最常见的脚本语言。
 
  使用 BASH 编程
 
  听起来可能是这样,但 BASH 并不是蝙蝠侠和罗宾在 60 年代旧电视节目中与坏人战斗时出现的字幕之一(连同 Ooff!和 Biff!)。BASH 实际上代表 Bourne Again Shell。这个名字的原因可以追溯到为 Unix 编写原始 Bourne Shell 的 Steve Bourne。当 GNU 创建一个等效的自由软件时,他们以史蒂夫的外壳命名它,并在他的姓氏上加了一个双关语。
 
  如果您是系统管理员,那么制作 BASH 脚本将是其中一项强制性工作。但远不是一件苦差事,你会发现它会让你的工作和生活变得更轻松。
 
  我们的第一个 BASH脚本
 
  BASH 脚本需要的第一件事就是众所周知的“shebang”。这是两个字符:
 
  在此之后,您应该包含 BASH 解释器的路径。所以你的脚本的第一行应该是这样的:
 
  如果您的默认 shell 是 BASH,则该行:
 
  做同样的事情。它只是到 /bin/bash 的符号链接。但是如果你的默认 shell 不是 BASH,那么如果你用第一行编写一个shell 脚本,你就不会调用 /bin/bash 。因为在 Linux 系统上,BASH 通常是默认的 shell,你会看到大多数 BASH 脚本以
 
  从那里开始,您可以自由地做外壳允许的事情。为管理目的而创建的 Shell 脚本(大多数脚本)由调用其他命令的行组成。让我们看一个简单的例子。假设您的系统上有电子邮件用户,但您没有配额。尽管如此,您仍想监控邮箱的大小,以确保人们不会占用过多的空间。这个脚本,从 crontab 运行,可以很好地解决问题:
 
  除了 shebang,注释行以 # 开头
 
  代码:
 
  #!/bin/sh
  
  # show us the size of email spools email spools
  
  # date in YYYY-MM-DD format
  today=`date +%Y-%m-`;
  
  # subject and recipient variables
  subject="Mailcheck";
  sendto="admin@linux.ork";
  
  cd /var/spool/mail
  
  ls -lSh | awk '{print $5, $9}' | grep "(G|M)" | mail -s $subject-$today $sendto
  
  # end script
  首先,您会看到我们已经声明了一些变量。这些变量在声明时不以任何字符为前缀,但在使用时以美元符号 ($) 为前缀。您还注意到变量可以是其他命令,如本例中的 date 命令。当您将命令用作变量时,它必须放在反引号 (` `) 内。
 
  首先,脚本更改为邮件假脱机所在的目录。脚本执行带有选项的“ls”,并显示一个列表,其中最大的线轴首先显示,其大小以人类可读的格式显示。这通过管道传送到 awk,后者对大小和用户名进行排序。awk 输出为那些以兆字节和千兆字节为单位的假脱机。然后将其通过管道传送到“邮件”命令并发送到管理员帐户,其中包含主题以及我们在这些变量中声明的日期。然后,管理员将在 /var/spool/mail 中得到一个使用最多空间的排序列表。
 
  内置变量
 
  虽然我们在前面的示例中创建了自己的变量,但 BASH 还附带了所谓的内置不变量。
 
  代码:
 
  #!/bin/sh
  
  echo "You are user $UID on $HOSTNAME"
  echo "Your home directory is: $HOME"
  echo "$HOSTNAME is running $OSTYPE"
  此脚本的输出应产生类似于以下内容:
 
  代码:
 
  You are user 500 on penguin.linux.ork
  Your home directory is: /home/mike
  penguin.linux.ork is running linux-gnu
  如您所见,我们不必事先声明任何这些。这就是为什么它们被称为内置变量。它们的使用将为您节省大量编写脚本的时间。您可以在GNU BASH 参考手册
 
  交互式脚本中
 
  找到完整的内置变量列表
 
  虽然我们提到 BASH 脚本的主要用途是自动执行管理任务,但有时您可能需要用户与脚本进行交互。如果你想让用户输入信息,你需要使用变量read。让我们看一下下面的例子:
 
  代码:
 
  #!/bin/sh
  
  echo -n "Enter the name of a city: "
  read CITY
  echo -n "$CITY is "
  case $CITY in
  London | Paris | Berlin | Rome) echo -n "in Europe";;
  'New York' | Chicago | Washington) echo -n "in The USA";;
  Tokyo | Bejing | Bangalore) echo -n "in Asia";;
  *) echo -n "some place - but I don't know where";;
  esac
  如您所见,我们已经声明了一个变量,该变量将取决于用户在被提示输入城市名称时输入的内容。之后,我们为每种情况提供了几种选择。如果用户输入我们在这里设想的城市名称,他/她将收到关于城市在哪里的消息。如果不是,脚本将显示一条消息,它不知道城市在哪里。任何答案都由星号 (*) 表示
 
  确保您拥有所需
 
  的内容 如果您必须操作文件的内容,最好先检查该文件是否存在。这是一个使用 if 命令执行此操作的简单 BASH 例程:
 
  代码:
 
  #!/bin/sh
  
  if test -f /var/log/mail.log; then
  
  printf "The file existsn";
  
  fi
  这是一个好主意,因为如果您将脚本设置为操作不存在的文件,它将使您的脚本无用。
 
  If Loops: A Practical Example
 
  我做了 12 年的全职英语外语教师,所以我忍不住给你这个使用 BASH 脚本的多项选择测试的例子。
 
  代码:
 
  #!/bin/sh
  
  PS3="Choose the number of the correct word to fill in the blank: "
  echo "The emergency brake let go and car rolled ______ the hill"
  
  select SENT1 in up down along beside
  
  do
  
      if [ "$SENT1" == "" ];  then
          echo -e "You need to enter somethingn"
            continue
     
  
      elif [ "$SENT1" != down ];  then
          echo -e "Sorry. Incorrectn"
          echo "1. Incorrect" >> eoiexam.dat
  
      elif [ "$SENT1" == down ];  then
          echo -e "Great!n"
          echo "No. 1 - Correct" >> eoiexam.dat
          break
  
  fi
  
  done
  该脚本使用“elif”例程来整理不正确的答案。您还会注意到它会将结果(无论是否正确)写入文件。
 
  如果您从事教学行业,则可以对此进行扩展,为您的学生提供快速测验。
 

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!