From 28048299e4e3179e59c659c224dd95b332db4ed8 Mon Sep 17 00:00:00 2001 From: darksun Date: Mon, 3 Dec 2018 18:34:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=89=E9=A2=98:=20Boxing=20yourself=20in=20?= =?UTF-8?q?on=20the=20Linux=20command=20line?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g yourself in on the Linux command line.md | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 sources/tech/20181201 Boxing yourself in on the Linux command line.md diff --git a/sources/tech/20181201 Boxing yourself in on the Linux command line.md b/sources/tech/20181201 Boxing yourself in on the Linux command line.md new file mode 100644 index 0000000000..a61ff6f2a4 --- /dev/null +++ b/sources/tech/20181201 Boxing yourself in on the Linux command line.md @@ -0,0 +1,125 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: subject: (Boxing yourself in on the Linux command line) +[#]: via: (https://opensource.com/article/18/12/linux-toy-boxes) +[#]: author: (Jason Baker https://opensource.com/users/jason-baker) +[#]: url: ( ) + +Boxing yourself in on the Linux command line +====== +Learn how to use the boxes utility to draw shapes with characters at the Linux terminal and make your words stand out. +![](https://opensource.com/sites/default/files/styles/image-full-size/public/uploads/linux-toy-boxes.png?itok=Rii6nT5P) + +It's the holiday season, and every Linux terminal user deserves a little gift. It doesn't matter whether you celebrate Christmas, another holiday, or nothing at all. So I'm gathering together a collection of 24 Linux command-line toys over the next few weeks for you to enjoy and share with your friends. Let's have a little fun and add a little joy to a month that, at least here in the northern hemisphere, can be a little bit cold and dreary. + +Chances are, there will be a few that you've heard of before. But, hopefully, we'll all have a chance to learn something new. (I know I did when doing some research to make sure I could make it to 24.) + +The first of our 24 Linux terminal toys is a program called boxes. Why start with boxes? Because it's going to be hard to wrap up all of our other command-line presents to you without it! + +On my Fedora machine, boxes wasn't installed by default, but it was in my normal repositories, so installing it was as simple as + +``` +$ sudo dnf install boxes -y +``` + +If you're on a different distribution, there's a good chance you'll find it in your default repositories as well. + +Boxes a utility I really wish I had in my high school and college computer science courses, where well-intentioned teachers insisted I provide very specific looking comment at the beginning of every source file, function, code block, etc. + +``` +/***************/ +/* Hello World */ +/***************/ +``` + +It turns out, once you add a few lines of text inside, formatting them can get, well, tedious. Enter boxes. Boxes is a simple utility for surrounding a block of text with an ASCII art-style box. It comes with defaults for source code commenting, as well as other options. + +It's really easy to use. Using pipes, I can push a short greeting into a box. + +``` +$ cat greeting.txt | boxes -d diamonds -a c +``` + +Which will give us the output as follows: + +``` +       /\          /\          /\ +    /\//\\/\    /\//\\/\    /\//\\/\ + /\//\\\///\\/\//\\\///\\/\//\\\///\\/\ +//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\ +\\//\/                            \/\\// + \/                                  \/ + /\      I'm wishing you all a       /\ +//\\     joyous holiday season      //\\ +\\//     and a Happy Gnu Year!      \\// + \/                                  \/ + /\                                  /\ +//\\/\                            /\//\\ +\\///\\/\//\\\///\\/\//\\\///\\/\//\\\// + \/\\///\\\//\/\\///\\\//\/\\///\\\//\/ +    \/\\//\/    \/\\//\/    \/\\//\/ +       \/          \/          \/ +``` + +Or perhaps something more fun, like: + +``` +echo "I am a dog" | boxes -d dog -a c +``` + +Which will, unsurprisingly, give you the following: + +``` +          __   _,--="=--,_   __ +         /  \."    .-.    "./  \ +        /  ,/  _   : :   _  \/` \ +        \  `| /o\  :_:  /o\ |\__/ +         `-'| :="~` _ `~"=: | +            \`     (_)     `/ +     .-"-.   \      |      /   .-"-. +.---{     }--|  /,.-'-.,\  |--{     }---. + )  (_)_)_)  \_/`~-===-~`\_/  (_(_(_)  ( +(              I am a dog               ) + )                                     ( +'---------------------------------------' +``` + +Boxes comes with [lots of options][1] for padding, position, and even processing regular expressions. You can learn more about boxes on the [project's homepage][2], or head over to [GitHub][3] to download the source code or contribute your own box. In fact, if you're looking for an idea to submit, I've got an idea for you: why not a holiday present? + +``` +         _  _ +        /_\/_\ + _______\_\/_/_______ +|       ///\\\       | +|      ///  \\\      | +|                    | +|     "Happy pull    | +|       request!"    | +|____________________| +``` + +Boxes is open source under a GPLv2 license. + +Do you have a favorite command-line toy that you think I ought to profile? The calendar for this series is mostly filled out but I've got a few spots left. Let me know in the comments below, and I'll check it out. If there's space, I'll try to include it. If not, but I get some good submissions, I'll do a round-up of honorable mentions at the end. + +Or check out tomorrow's command-line toy, [Drive a locomotive through your Linux terminal][4]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/18/12/linux-toy-boxes + +作者:[Jason Baker][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jason-baker +[b]: https://github.com/lujun9972 +[1]: http://boxes.thomasjensen.com/examples.html +[2]: https://boxes.thomasjensen.com/ +[3]: https://github.com/ascii-boxes/boxes +[4]: https://opensource.com/article/18/12/linux-toy-sl