linux tk shell tr命令

大家好,关于linux tk很多朋友都还不太明白,今天小编就来为大家分享关于shell tr命令的知识,希望对各位有所帮助!

tk的技能介绍

TK目前可能有两种不同的意思,如下分别介绍:1. TK(Team Killing)团队杀害,通常是指在多人在线游戏中,在队友之间误伤甚至恶意杀害队友。2. TK(Tool Kit)工具箱,通常是指在计算机领域中一组电子工具或软件,可以用来完成某些系统或软件调试、修改、维护、测试等任务。其中主要包括以下技能:-系统调试:使用一些工具来查看系统的性能、资源使用情况,排除系统的问题,如Windows系统调试器、Linux系统调试器等;-程序调试:使用一些工具来查看程序执行过程中的信息,查找程序的异常问题,如Visual Studio的调试工具、Eclipse的调试工具等;-程序编写:使用一些编程,编写网络应用、系统工具等;-网络管理:使用一些工具,管理计算机网络,如协议分析器、端口扫描器等;-数据库管理:使用一些工具,管理数据库,如SQL Server Management Studio、MySQL Workbench等;-安全测试:使用一些工具,测试系统或应用程序的安全性,如漏洞扫描器、渗透测试工具等。

linux系统常用操作命令

linux系统常用操作命令如下:

ls:全拼list,功能是列出目录的内容及其内容属性信息。

cd:全拼change directory,功能是从当前工作目录切换到指定的工作目录。

cp:全拼copy,其功能为复制文件或目录。

find:查找的意思,用于查找目录及目录下的文件。

mkdir:全拼make directories,其功能是创建目录。

mv:全拼move,其功能是移动或重命名文件。

pwd:全拼print working directory,其功能是显示当前工作目录的绝对路径。

rename:用于重命名文件。

rm:全拼remove,其功能是删除一个或多个文件或目录。

linux系统的优势

由于Linux的内核大部分是用 C语言编写的,并采用了可移植的Unix标准应用程序接口,所以它支持如i386、Alpha、AMD和Sparc等系统平台,以及从个人电脑到大型主机,甚至包括嵌入式系统在内的各种硬件设备。

与其他的操作系统不同的是,安装了Linux系统后,用户常用的一些办公软件、图形处理工具、多媒体播放软件和网络工具等都已无需安装。而对于程序开发人员来说,Linux更是一个很好的操作平台,在Linux的软件包中,包含了多种程序语言与开发工具,如gcc、cc、C++、Tcl/Tk、Perl、Fortran77等。

通过这个简单的游戏学习 Tcl/Tk 和 Wish | Linux 中国

以下是一个简单的编程项目,能够帮助你开始学习 Tcl/Tk。

我写这篇文章的初衷源于我想更深入地利用基于 Tcl的 Expect。这让我写下了以下两篇文章:通过编写一个简单的游戏学习 Tcl和通过编写一个简单的游戏学习 Expect。

我进行了一些 Ansible自动化工作,逐渐积累了一些本地脚本。有些脚本我频繁使用,以至于以下循环操作变得有些烦人:

我日常使用的是 macOS。实际上我更希望有一个菜单项或者一个图标,能够弹出一个简单的界面接受参数并执行我需要的操作,就像在 Linux的 KDE中一样。

经典的 Tcl类书籍都包含了关于流行的 Tk扩展的文档。既然我已经深入研究了这个主题,我尝试着对其(即wish)进行编程。

虽然我并非一名 GUI或者前端开发者,但我发现 Tcl/Tk脚本编写的方式相当直接易懂。我很高兴能重新审视这个 UNIX历史的古老且稳定的部分,这种技术在现代平台上依然有用且可用。

对于 Linux系统,你可以按照下面的方式安装:

而在 macOS上,你可以通过 Homebrew来安装最新版的 Tcl/Tk:

编程理念

许多编写游戏的教程都会介绍到典型的编程语言结构,如循环、条件判断、变量、函数和过程等等。

在此篇文章中,我想要介绍的是事件驱动编程。当你的程序使用事件驱动编程,它会进入一个特殊的内置循环,等待特定的事件发生。当这个特定的事件发生时,相应的代码就会被触发,产生预期的结果。

这些事件可以包括键盘输入、鼠标移动、点击按钮、定时器触发,甚至是任何你的电脑硬件能够识别的事件(可能来自特殊的设备)。你的程序中的代码决定了用户看到了什么,以及程序需要监听什么输入,当这些输入被接收后程序会怎么做,然后进入事件循环等待输入。

文章理念并没有脱离我之前的 Tcl文章太远。这里最大的不同在于用 GUI设置和用于处理用户输入的事件循环替代了循环结构。其他的不同则是 GUI开发需要采取的各种方式来制作一个可用的用户界面。在采用 Tk GUI开发的时候,你需要了解两个基础的概念:部件(widget)和几何管理器(geometry manager)。

部件是构成可视化元素的 UI元素,通过这些元素用户可以与程序进行交互。这其中包括了按钮、文本区域、标签和文本输入框。部件还包括了一些选项选择,如菜单、复选框、单选按钮等。最后,部件也包括了其他的可视化元素,如边框和线性分隔符。

几何管理器在放置部件在显示窗口中的位置上扮演着至关重要的角色。有一些不同的几何管理器可以供你使用。在这篇文章中,我主要使用了 grid几何来让部件在整齐的行中进行布局。我会在这篇文章的结尾地方解释一些几何管理器的不同之处。

用 wish进行猜数字游戏

这个示例游戏代码与我其他文章中的示例有所不同,我将它分解为若干部分以方便解释。

首先创建一个基本的可执行脚本 numgame.wish:

使用你喜欢的文本编辑器打开此文件,输入下列代码的第一部分:

第一行定义了该脚本将通过wish执行。接下来,创建了几个全局变量。这里我使用全部大写字母定义全局变量,这些变量将绑定到跟踪这些值的窗口小部件(LOW、HIGH等等)。

全局变量 num是游戏玩家要猜测的随机数值,这个值是通过Tcl的命令执行得到并保存到变量中的:

这是一个验证用户输入的特殊函数,它只接受整数并拒绝其他所有类型的输入:

这是主要的猜数逻辑循环。global语句让我们能够修改在文件开头创建的全局变量(关于此主题后面将会有更多解释)。这个条件判断寻找入力范围在 1至 100之外以及已经被用户猜过的值。有效的猜测和随机值进行比较。LOW和 HIGH的猜测会被追踪,作为 UI中的全局变量进行报告。在每一步,全局 STATUS变量都会被更新,这个状态信息会自动在 UI中显示。

对于正确的猜测,destroy语句会移除“Guess”按钮以及输入窗口,并重新绑定回车键,以激活“Quit”按钮。

最后的语句set GUESS""用于在下一个猜测之前清空输入窗口。

这是设置用户界面的部分。前六个标签语句在你的UI上创建了不同的文本展示元素,-textvariable选项监控给定的变量,并自动更新标签的值,这展示了全局变量 LOW、HIGH、STATUS的绑定。

button行创建了“Guess”和“Quit”按钮,-command选项设定了当按钮被按下时要执行的操作。按下“Guess”按钮执行了上面的check_guess函数以检查用户输入的值。

entry部件更有趣。它创建了一个三字符宽的输入框,并将输入绑定到GUESS全局变量。它还通过-validatecommand选项设置了验证,阻止输入部件接收除数字以外的任何内容。

focus命令是用户界面的一项改进,使程序启动时输入部件处于激活状态。没有此命令,你需要先点击输入部件才可以输入。

bind命令允许你在按下回车键时自动点击“Guess”按钮。如果你记得check_guess中的内容,猜测正确之后会重新绑定回车键到“Quit”按钮。

最后,这部分设定了图形用户界面的布局:

grid几何管理器被逐步调用,以逐渐构建出预期的用户体验。它主要设置了五行部件。前三行是显示不同值的标签,第四行是“Guess”按钮和entry部件,最后是“Quit”按钮。

程序到此已经初始化完毕,wish shell进入事件循环,等待用户输入整数并按下按钮。基于其在被监视的全局变量中找到的变化,它会更新标签。

注意,输入光标开始就在输入框中,而且按下回车键将调用适当且可用的按钮。

这只是一个初级的例子,Tcl/Tk有许多可以让间隔、字体、颜色和其他用户界面方面更具有吸引力的选项,这超出了本文中简单UI的示例。

运行这个应用,你可能会注意到这些部件看起来并不很精致或现代。这是因为我正在使用原始的经典部件集,它们让人回忆起X Windows Motif的时代。不过,还有一些默认的部件扩展,被称为主题部件,它们可以让你的应用程序有更现代、更精致的外观和感觉。

启动游戏!

保存文件之后,在终端中运行它:

在这种情况下,我无法给出控制台的输出,因此这里有一个动画GIF来展示如何玩这个游戏:

进一步了解Tcl

Tcl支持命名空间的概念,所以在这里使用的变量并不必须是全局的。你可以把绑定的部件变量组织进不同的命名空间。对于像这样的简单程序,可能并不太需要这么做。但对于更大规模的项目,你可能会考虑这种方法。

proc check_guess函数体内有一行global代码我之前没有解释。在Tcl中,所有变量都按值传递,函数体内引用的变量的范围是局部的。在这个情况下,我希望修改的是全局变量,而不是局部范围的版本。Tcl提供了许多方法来引用变量,在执行堆栈的更高级别执行代码。在一些情况下,像这样的简单引用可能带来一些复杂性和错误,但是调用堆栈的操作非常有力,允许Tcl实现那些在其他语言中实现起来可能较为复杂的新的条件和循环结构。

最后,在这篇文章中,我没有提到几何管理器,它们用于以特定的顺序展示部件。只有被某种几何管理器管理的部件才能显示在屏幕上。grid管理器相当简洁,它按照从左到右的方式放置部件。我使用了五个grid定义来创建了五行。另外还有两个几何管理器:place和pack。pack管理器将部件围绕窗口边缘排列,而place管理器允许固定部件的位置。除这些几何管理器外,还有一些特殊的部件,如canvas,text和panedwindow,它们可以容纳并管理其他部件。你可以在经典的Tcl/Tk参考指南,以及Tk命令文档页上找到这些部件的全面描述。

继续学习编程

Tcl和Tk提供了一个简单有效的方法来构建图形用户界面和事件驱动应用程序。这个简单的猜数游戏只是你能用这些工具做到的事情的起点。通过继续学习和探索Tcl和Tk,你可以打开构建强大且用户友好的应用程序的无数可能性。继续尝试,继续学习,看看你新习得的Tcl和Tk技能能带你到哪里。

阅读剩余
THE END