From 885daf886f4281ef88d5668241cc80683dc7ec35 Mon Sep 17 00:00:00 2001 From: darksun Date: Sat, 24 Feb 2018 14:10:26 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E9=80=89=E9=A2=98:=20How=20slowing=20dow?= =?UTF-8?q?n=20made=20me=20a=20better=20leader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow slowing down made me a better leader.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sources/talk/20180220 How slowing down made me a better leader.md diff --git a/sources/talk/20180220 How slowing down made me a better leader.md b/sources/talk/20180220 How slowing down made me a better leader.md new file mode 100644 index 0000000000..bd1b9c0749 --- /dev/null +++ b/sources/talk/20180220 How slowing down made me a better leader.md @@ -0,0 +1,53 @@ +How slowing down made me a better leader +====== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BUSINESS_leadership_brand.png?itok=YW1Syk4S) + +Early in my career, I thought the most important thing I could do was act. If my boss said jump, my reply was "how high?" + +But as I've grown as a leader and manager, I've realized that the most important traits I can offer are [patience][1] and listening. This patience and listening means I'm focusing on what's really important. I'm decisive, so I do not hesitate to act. Yet I've learned that my actions are more impactful when I consider input from multiple sources and offer advice on what we should be doing—not simply reacting to an immediate request. + +Practicing open leadership involves cultivating the patience and listening skills I need to collaborate on the [best plan of action, not just the quickest one][2]. It also gives me the tools I need to explain [why I'm saying "no"][3] (or, perhaps, "not now") to someone, so I can lead with transparency and confidence. + +If you're in software development and practice scrum, then the following argument might resonate with you: The patience and listening a manager displays are as important as her skills in sprint planning and running the sprint demo. Forget about them, and you'll lessen the impact you're able to have. + +### A focus on patience + +Focus and patience do not always come easily. Often, I find myself sitting in meetings and filling my notebook with action items. My default action can be to think: "We can simply do x and y will improve!" Then I remember that things are not so linear. + +I need to think about the other factors that can influence a situation. Pausing to take in data from multiple people and resources helps me flesh out a strategy that our organization needs for long-term success. It also helps me identify those shorter-term milestones that should lead us to deliver the business results I'm responsible for producing. + +Here's a great example from a time when patience wasn't something I valued as I should have—and how that hurt my performance. When I was based on North Carolina, I worked with someone based in Arizona. We didn't use video conferencing technologies, so I didn't get to observe her body language when we talked. While I was responsible for delivering the results for the project I led, she was one of the two people tasked with making sure I had adequate support. + +For whatever reason, when I talked with this person, when she asked me to do something, I did it. She would be providing input on my performance evaluation, so I wanted to make sure she was happy. At the time, I didn't possess the maturity to know I didn't need to make her happy; my focus should have been on other performance indicators. I should have spent more time listening and collaborating with her instead of picking up the first "action item" and working on it while she was still talking. + +After six months on the job, this person gave me some tough feedback. I was angry and sad. Didn't I do everything she'd asked? I had worked long hours, nearly seven days a week for six months. How dare she criticize my performance? + +Then, after I had my moment of anger followed by sadness, I thought about what she said. Her feedback was on point. + +The patience and listening a manager displays are as important as her skills in sprint planning and running the sprint demo. + +She had concerns about the project, and she held me accountable because I was responsible. We worked through the issues, and I learned that vital lesson about how to lead: Leadership does not mean "get it done right now." Leadership means putting together a strategy, then communicating and implementing plans in support of the strategy. It also means making mistakes and learning from these hiccups. + +### Lesson learned + +In hindsight, I realize I could have asked more questions to better understand the intent of her feedback. I also could have pushed back if the guidance from her did not align with other input I was receiving. By having the patience to listen to the various sources giving me input about the project, synthesizing what I learned, and creating a coherent plan for action, I would have been a better leader. I also would have had more purpose driving the work I was doing. Instead of reacting to a single data point, I would have been implementing a strategic plan. I also would have had a better performance evaluation. + +I eventually had some feedback for her. Next time we worked together, I didn't want to hear the feedback after six months. I wanted to hear the feedback earlier and more often so I could learn from the mistakes sooner. An ongoing discussion about the work is what should happen on any team. + +As I mature as a manager and leader, I hold myself to the same standards I ask my team to meet: Plan, work the plan, and reflect. Repeat. Don't let a fire drill created by an external force distract you from the plan you need to implement. Breaking work into small increments builds in space for reflections and adjustments to the plan. As Daniel Goleman writes, "Directing attention toward where it needs to go is a primal task of leadership." Don't be afraid of meeting this challenge. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/18/2/open-leadership-patience-listening + +作者:[Angela Robertson][a] +译者:[译者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/arobertson98 +[1]:https://opensource.com/open-organization/16/3/my-most-difficult-leadership-lesson +[2]:https://opensource.com/open-organization/16/3/fastest-result-isnt-always-best-result +[3]:https://opensource.com/open-organization/17/5/saying-no-open-organization From 3938b3b830d570e08a396c635fd8ec74d10ec3fc Mon Sep 17 00:00:00 2001 From: darksun Date: Sat, 24 Feb 2018 14:12:18 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E9=80=89=E9=A2=98:=204=20considerations?= =?UTF-8?q?=20when=20naming=20software=20development=20projects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...en naming software development projects.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/talk/20180220 4 considerations when naming software development projects.md diff --git a/sources/talk/20180220 4 considerations when naming software development projects.md b/sources/talk/20180220 4 considerations when naming software development projects.md new file mode 100644 index 0000000000..1e1add0b68 --- /dev/null +++ b/sources/talk/20180220 4 considerations when naming software development projects.md @@ -0,0 +1,91 @@ +4 considerations when naming software development projects +====== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/hello-name-sticker-badge-tag.png?itok=fAgbMgBb) + +Working on a new open source project, you're focused on the code—getting that great new idea released so you can share it with the world. And you'll want to attract new contributors, so you need a terrific **name** for your project. + +We've all read guides for creating names, but how do you go about choosing the right one? Keeping that cool science fiction reference you're using internally might feel fun, but it won't mean much to new users you're trying to attract. A better approach is to choose a name that's memorable to new users and developers searching for your project. + +Names set expectations. Your project's name should showcase its functionality in the ecosystem and explain to users what your story is. In the crowded open source software world, it's important not to get entangled with other projects out there. Taking a little extra time now, before sending out that big announcement, will pay off later. + +Here are four factors to keep in mind when choosing a name for your project. + +### What does your project's code do? + +Start with your project: What does it do? You know the code intimately—but can you explain what it does to a new developer? Can you explain it to a CTO or non-developer at another company? What kinds of problems does your project solve for users? + +Your project's name needs to reflect what it does in a way that makes sense to newcomers who want to use or contribute to your project. That means considering the ecosystem for your technology and understanding if there are any naming styles or conventions used for similar kinds of projects. Imagine that you're trying to evaluate someone else's project: Would the name be appealing to you? + +Any distribution channels you push to are also part of the ecosystem. If your code will be in a Linux distribution, [npm][1], [CPAN][2], [Maven][3], or in a Ruby Gem, you need to review any naming standards or common practices for that package manager. Review any similar existing names in that distribution channel, and get a feel for naming styles of other programs there. + +### Who are the users and developers you want to attract? + +The hardest aspect of choosing a new name is putting yourself in the shoes of new users. You built this project; you already know how powerful it is, so while your cool name may sound great, it might not draw in new people. You need a name that is interesting to someone new, and that tells the world what problems your project solves. + +Great names depend on what kind of users you want to attract. Are you building an [Eclipse][4] plugin or npm module that's focused on developers? Or an analytics toolkit that brings visualizations to the average user? Understanding your user base and the kinds of open source contributors you want to attract is critical. + +Great names depend on what kind of users you want to attract. + +Take the time to think this through. Who does your project most appeal to, and how can it help them do their job? What kinds of problems does your code solve for end users? Understanding the target user helps you focus on what users need, and what kind of names or brands they respond to. + +Take the time to think this through. Who does your project most appeal to, and how can it help them do their job? What kinds of problems does your code solve for end users? Understanding the target user helps you focus on what users need, and what kind of names or brands they respond to. + +When you're open source, this equation changes a bit—your target is not just users; it's also developers who will want to contribute code back to your project. You're probably a developer, too: What kinds of names and brands excite you, and what images would entice you to try out someone else's new project? + +Once you have a better feel of what users and potential contributors expect, use that knowledge to refine your names. Remember, you need to step outside your project and think about how the name would appeal to someone who doesn't know how amazing your code is—yet. Once someone gets to your website, does the name synchronize with what your product does? If so, move to the next step. + +### Who else is using similar names for software? + +Now that you've tried on a user's shoes to evaluate potential names, what's next? Figuring out if anyone else is already using a similar name. It sometimes feels like all the best names are taken—but if you search carefully, you'll find that's not true. + +The first step is to do a few web searches using your proposed name. Search for the name, plus "software", "open source", and a few keywords for the functionality that your code provides. Look through several pages of results for each search to see what's out there in the software world. + +The first step is to do a few web searches using your proposed name. + +Unless you're using a completely made-up word, you'll likely get a lot of hits. The trick is understanding which search results might be a problem. Again, put on the shoes of a new user to your project. If you were searching for this great new product and saw the other search results along with your project's homepage, would you confuse them? Are the other search results even software products? If your product solves a similar problem to other search results, that's a problem: Users may gravitate to an existing product instead of a new one. + +Unless you're using a completely made-up word, you'll likely get a lot of hits. The trick is understanding which search results might be a problem. Again, put on the shoes of a new user to your project. If you were searching for this great new product and saw the other search results along with your project's homepage, would you confuse them? Are the other search results even software products? If your product solves a similar problem to other search results, that's a problem: Users may gravitate to an existing product instead of a new one. + +Similar non-software product names are rarely an issue unless they are famous trademarks—like Nike or Red Bull, for example—where the companies behind them won't look kindly on anyone using a similar name. Using the same name as a less famous non-software product might be OK, depending on how big your project gets. + +### How big do you plan to grow your project? + +Are you building a new node module or command-line utility, but not planning a career around it? Is your new project a million-dollar business idea, and you're thinking startup? Or is it something in between? + +If your project is a basic developer utility—something useful that developers will integrate into their workflow—then you have enough data to choose a name. Think through the ecosystem and how a new user would see your potential names, and pick one. You don't need perfection, just a name you're happy with that seems right for your project. + +If you're planning to build a business around your project, use these tips to develop a shortlist of names, but do more vetting before announcing the winner. Use for a business or major project requires some level of registered trademark search, which is usually performed by a law firm. + +### Common pitfalls + +Finally, when choosing a name, avoid these common pitfalls: + + * Using an esoteric acronym. If new users don't understand the name, they'll have a hard time finding you. + + * Using current pop-culture references. If you want your project's appeal to last, pick a name that will last. + + * Failing to consider non-English speakers. Does the name have a specific meaning in another language that might be confusing? + + * Using off-color jokes or potentially unsavory references. Even if it seems funny to developers, it may fall flat for newcomers and turn away contributors. + + + + +Good luck—and remember to take the time to step out of your shoes and consider how a newcomer to your project will think of the name. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/18/2/choosing-project-names-four-key-considerations + +作者:[Shane Curcuru][a] +译者:[译者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/shane-curcuru +[1]:https://www.npmjs.com/ +[2]:https://www.cpan.org/ +[3]:https://maven.apache.org/ +[4]:https://www.eclipse.org/ From 9bba890ede08d46f938e81ce8063618af3b2c06b Mon Sep 17 00:00:00 2001 From: darksun Date: Sat, 24 Feb 2018 14:13:43 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E9=80=89=E9=A2=98:=20How=20to=20format?= =?UTF-8?q?=20academic=20papers=20on=20Linux=20with=20groff=20-me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...academic papers on Linux with groff -me.md | 265 ++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 sources/tech/20180220 How to format academic papers on Linux with groff -me.md diff --git a/sources/tech/20180220 How to format academic papers on Linux with groff -me.md b/sources/tech/20180220 How to format academic papers on Linux with groff -me.md new file mode 100644 index 0000000000..5131cad7f5 --- /dev/null +++ b/sources/tech/20180220 How to format academic papers on Linux with groff -me.md @@ -0,0 +1,265 @@ +How to format academic papers on Linux with groff -me +====== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/life_paperclips.png?itok=j48op49T) + +I was an undergraduate student when I discovered Linux in 1993. I was so excited to have the power of a Unix system right in my dorm room, but despite its many capabilities, Linux lacked applications. Word processors like LibreOffice and OpenOffice were years away. If you wanted to use a word processor, you likely booted your system into MS-DOS and used WordPerfect, the shareware GalaxyWrite, or a similar program. + +`nroff` and `troff`. They are different interfaces to the same system: `nroff` generates plaintext output, suitable for screens or line printers, and `troff` generates very pretty output, usually for printing on a laser printer. + +That was my method, since I needed to write papers for my classes, but I preferred staying in Linux. I knew from our "big Unix" campus computer lab that Unix systems provided a set of text-formatting programs calledand. They are different interfaces to the same system:generates plaintext output, suitable for screens or line printers, andgenerates very pretty output, usually for printing on a laser printer. + +On Linux, `nroff` and `troff` are combined as GNU troff, more commonly known as [groff][1]. I was happy to see a version of groff included in my early Linux distribution, so I set out to learn how to use it to write class papers. The first macro set I learned was the `-me` macro package, a straightforward, easy to learn macro set. + +The first thing to know about `groff` is that it processes and formats text according to a set of macros. A macro is usually a two-character command, set on a line by itself, with a leading dot. A macro might carry one or more options. When `groff` encounters one of these macros while processing a document, it will automatically format the text appropriately. + +Below, I'll share the basics of using `groff -me` to write simple documents like class papers. I won't go deep into the details, like how to create nested lists, keeps and displays, tables, and figures. + +### Paragraphs + +Let's start with an easy example you see in almost every type of document: paragraphs. Paragraphs can be formatted with the first line either indented or not (i.e., flush against the left margin). Many printed documents, including academic papers, magazines, journals, and books, use a combination of the two types, with the first (leading) paragraph in a document or chapter flush left and all other (regular) paragraphs indented. In `groff -me`, you can use both paragraph types: leading paragraphs (`.lp`) and regular paragraphs (`.pp`). +``` +.lp + +This is the first paragraph. + +.pp + +This is a standard paragraph. + +``` + +### Text formatting + +The macro to format text in bold is `.b` and to format in italics is `.i`. If you put `.b` or `.i` on a line by itself, then all text that comes after it will be in bold or italics. But it's more likely you just want to put one or a few words in bold or italics. To make one word bold or italics, put that word on the same line as `.b` or `.i`, as an option. To format multiple words in **bold** or italics, enclose your text in quotes. +``` +.pp + +You can do basic formatting such as + +.i italics + +or + +.b "bold text." + +``` + +In the above example, the period at the end of **bold text** will also be in bold type. In most cases, that's not what you want. It's more correct to only have the words **bold text** in bold, but not the trailing period. To get the effect you want, you can add a second argument to `.b` or `.i` to indicate any text that should trail the bolded or italicized text, but in normal type. For example, you might do this to ensure that the trailing period doesn't show up in bold type. +``` +.pp + +You can do basic formatting such as + +.i italics + +or + +.b "bold text" . + +``` + +### Lists + +With `groff -me`, you can create two types of lists: bullet lists (`.bu`) and numbered lists (`.np`). +``` +.pp + +Bullet lists are easy to make: + +.bu + +Apple + +.bu + +Banana + +.bu + +Pineapple + +.pp + +Numbered lists are as easy as: + +.np + +One + +.np + +Two + +.np + +Three + +.pp + +Note that numbered lists will reset at the next pp or lp. + +``` + +### Subheads + +If you're writing a long paper, you might want to divide your content into sections. With `groff -me`, you can create numbered headings (`.sh`) and unnumbered headings (`.uh`). In either, enclose the section title in quotes as an argument. For numbered headings, you also need to provide the heading level: `1` will give a first-level heading (e.g., 1.). Similarly, `2` and `3` will give second and third level headings, such as 2.1 or 3.1.1. +``` +.uh Introduction + +.pp + +Provide one or two paragraphs to describe the work + +and why it is important. + +.sh 1 "Method and Tools" + +.pp + +Provide a few paragraphs to describe how you + +did the research, including what equipment you used + +``` + +### Smart quotes and block quotes + +It's standard in any academic paper to cite other people's work as evidence. If you're citing a brief quote to highlight a key message, you can just type quotes around your text. But groff won't automatically convert your quotes into the "smart" or "curly" quotes used by modern word processing systems. To create them in `groff -me`, insert an inline macro to create the left quote (`\*(lq`) and right quote mark (`\*(rq`). +``` +.pp + +Christine Peterson coined the phrase \*(lqopen source.\*(rq + +``` + +There's also a shortcut in `groff -me` to create these quotes (`.q`) that I find easier to use. +``` +.pp + +Christine Peterson coined the phrase + +.q "open source." + +``` + +If you're citing a longer quote that spans several lines, you'll want to use a block quote. To do this, insert the blockquote macro (`.(q`) at the beginning and end of the quote. +``` +.pp + +Christine Peterson recently wrote about open source: + +.(q + +On April 7, 1998, Tim O'Reilly held a meeting of key + +leaders in the field. Announced in advance as the first + +.q "Freeware Summit," + +by April 14 it was referred to as the first + +.q "Open Source Summit." + +.)q + +``` + +### Footnotes + +To insert a footnote, include the footnote macro (`.(f`) before and after the footnote text, and use an inline macro (`\**`) to add the footnote mark. The footnote mark should appear both in the text and in the footnote itself. +``` +.pp + +Christine Peterson recently wrote about open source:\** + +.(f + +\**Christine Peterson. + +.q "How I coined the term open source." + +.i "OpenSource.com." + +1 Feb 2018. + +.)f + +.(q + +On April 7, 1998, Tim O'Reilly held a meeting of key + +leaders in the field. Announced in advance as the first + +.q "Freeware Summit," + +by April 14 it was referred to as the first + +.q "Open Source Summit." + +.)q + +``` + +### Cover page + +Most class papers require a cover page containing the paper's title, your name, and the date. Creating a cover page in `groff -me` requires some assembly. I find the easiest way is to use centered blocks of text and add extra lines between the title, name, and date. (I prefer to use two blank lines between each.) At the top of your paper, start with the title page (`.tp`) macro, insert five blank lines (`.sp 5` ), then add the centered text (`.(c`), and extra blank lines (`.sp 2`). +``` +.tp + +.sp 5 + +.(c + +.b "Writing Class Papers with groff -me" + +.)c + +.sp 2 + +.(c + +Jim Hall + +.)c + +.sp 2 + +.(c + +February XX, 2018 + +.)c + +.bp + +``` + +The last macro (`.bp`) tells groff to add a page break after the title page. + +### Learning more + +Those are the essentials of writing professional-looking a paper in `groff -me` with leading and indented paragraphs, bold and italics text, bullet and numbered lists, numbered and unnumbered section headings, block quotes, and footnotes. + +I've included a sample groff file to demonstrate all of this formatting. Save the `lorem-ipsum.me` file to your system and run it through groff. The `-Tps` option sets the output type to PostScript so you can send the document to a printer or convert it to a PDF file using the `ps2pdf` program. +``` +groff -Tps -me lorem-ipsum.me > lorem-ipsum.me.ps + +ps2pdf lorem-ipsum.me.ps lorem-ipsum.me.pdf + +``` + +If you'd like to use more advanced functions in `groff -me`, refer to Eric Allman's "Writing Papers with Groff using `−me`," which you should find on your system as `meintro.me` in groff's `doc` directory. It's a great reference document that explains other ways to format papers using the `groff -me` macros. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/18/2/how-format-academic-papers-linux-groff-me + +作者:[Jim Hall][a] +译者:[译者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/jim-hall +[1]:https://www.gnu.org/software/groff/ From a1e57f69aa80d964095a584e9d930f7a9ada16e2 Mon Sep 17 00:00:00 2001 From: darksun Date: Sat, 24 Feb 2018 14:22:30 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E9=80=89=E9=A2=98:=20The=20List=20Of=20U?= =?UTF-8?q?seful=20Bash=20Keyboard=20Shortcuts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... List Of Useful Bash Keyboard Shortcuts.md | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 sources/tech/20180217 The List Of Useful Bash Keyboard Shortcuts.md diff --git a/sources/tech/20180217 The List Of Useful Bash Keyboard Shortcuts.md b/sources/tech/20180217 The List Of Useful Bash Keyboard Shortcuts.md new file mode 100644 index 0000000000..beba179fee --- /dev/null +++ b/sources/tech/20180217 The List Of Useful Bash Keyboard Shortcuts.md @@ -0,0 +1,161 @@ +The List Of Useful Bash Keyboard Shortcuts +====== +![](https://www.ostechnix.com/wp-content/uploads/2018/02/Bash-720x340.jpg) + +Nowadays, I spend more time in Terminal, trying to accomplish more in CLI than GUI. I learned many BASH tricks over time. And, here is the list of useful of BASH shortcuts that every Linux users should know to get things done faster in their BASH shell. I won’t claim that this list is a complete list of BASH shortcuts, but just enough to move around your BASH shell faster than before. Learning how to navigate faster in BASH Shell not only saves some time, but also makes you proud of yourself for learning something worth. Well, let’s get started. + +### List Of Useful Bash Keyboard Shortcuts + +#### ALT key shortcuts + +1\. **ALT+A** – Go to the beginning of a line. + +2\. **ALT+B** – Move one character before the cursor. + +3\. **ALT+C** – Suspends the running command/process. Same as CTRL+C + +4\. **ALT+D** – Closes the empty Terminal (I.e it closes the Terminal when there is nothing typed). Also deletes all chracters after the cursor. + +5\. **ALT+F** – Move forward one character. + +6\. **ALT+T** – Swaps the last two words. + +7\. **ALT+U** – Capitalize all characters in a word after the cursor. + +8\. **ALT+L** – Uncaptalize all characters in a word after the cursor. + +9\. **ALT+R** – Undo any changes to a command that you have brought from the history if you’ve edited it. + +As you see in the above output, I have pulled a command using reverse search and changed the last characters in that command and revert the changes using **ALT+R**. + +10\. **ALT+.** (note the dot at the end) – Use the last word of the previous command. + +If you want to use the same options for multiple commands, you can use this shortcut to bring back the last word of previous command. For instance, I need to short the contents of a directory using “ls -r” command. Also, I want to view my Kernel version using “uname -r”. In both commands, the common word is “-r”. This is where ALT+. shortcut comes in handy. First run, ls -r command to do reverse shorting and use the last word “-r” in the nex command i.e uname. + +#### CTRL key shortcuts + +1\. **CTRL+A** – Quickly move to the beginning of line. + +Let us say you’re typing a command something like below. While you’re at the N’th line, you noticed there is a typo in the first character +``` +$ gind . -mtime -1 -type + +``` + +Did you notice? I typed “gind” instead of “find” in the above command. You can correct this error by pressing the left arrow all the way to the first letter and replace “g” with “f”. Alternatively, just hit the **CTRL+A** or **Home** key to instantly go to the beginning of the line and replace the misspelled character. This will save you a few seconds. + +2\. **CTRL+B** – To move backward one character. + +This shortcut key can move the cursor backward one character i.e one character before the cursor. Alternatively, you can use LEFT arrow to move backward one character. + +3\. **CTRL+C** – Stop the currently running command + +If a command takes too long to complete or if you mistakenly run it, you can forcibly stop or quit the command by using **CTRL+C**. + +4\. **CTRL+D** – Delete one character backward. + +If you have a system where the BACKSPACE key isn’t working, you can use **CTRL+D** to delete one character backward. This shortcut also lets you logs out of the current session, similar to exit. + +5\. **CTRL+E** – Move to the end of line + +After you corrected any misspelled word in the start of a command or line, just hit **CTRL+E** to quickly move to the end of the line. Alternatively, you can use END key in your keyboard. + +6\. **CTRL+F** – Move forward one character + +If you want to move the cursor forward one character after another, just press **CTRL+F** instead of RIGHT arrow key. + +7\. **CTRL+G** – Leave the history searching mode without running the command. + +As you see in the above screenshot, I did the reverse search, but didn’t execute the command and left the history searching mode. + +8\. **CTRL+H** – Delete the characters before the cursor, same as BASKSPACE. + +9\. **CTRL+J** – Same as ENTER/RETURN key. + +ENTER key is not working? No problem! **CTRL+J** or **CTRL+M** can be used as an alternative to ENTER key. + +10\. **CTRL+K** – Delete all characters after the cursor. + +You don’t have to keep hitting the DELETE key to delete the characters after the cursor. Just press **CTRL+K** to delete all characters after the cursor. + +11\. **CTRL+L** – Clears the screen and redisplay the line. + +Don’t type “clear” to clear the screen. Just press CTRL+L to clear and redisplay the currently typed line. + +12\. **CTRL+M** – Same as CTRL+J or RETURN. + +13\. **CTRL+N** – Display next line in command history. + +You can also use DOWN arrow. + +14\. **CTRL+O** – Run the command that you found using reverse search i.e CTRL+R. + +15\. **CTRL+P** – Displays the previous line in command history. + +You can also use UP arrow. + +16\. **CTRL+R** – Searches the history backward (Reverse search). + +17\. **CTRL+S** – Searches the history forward. + +18\. **CTRL+T** – Swaps the last two characters. + +This is one of my favorite shortcut. Let us say you typed “sl” instead of “ls”. No problem! This shortcut will transposes the characters as in the below screenshot. + +![][2] + +19\. **CTRL+U** – Delete all characters before the cursor (Kills backward from point to the beginning of line). + +This shortcut will delete all typed characters backward at once. + +20\. **CTRL+V** – Makes the next character typed verbatim + +21\. **CTRL+W** – Delete the words before the cursor. + +Don’t confuse it with CTRL+U. CTRL+W won’t delete everything behind a cursor, but a single word. + +![][3] + +22\. **CTRL+X** – Lists the possible filename completions of the current word. + +23\. **CTRL+XX** – Move between start of command line and current cursor position (and back again). + +24\. **CTRL+Y** – Retrieves last item that you deleted or cut. + +Remember, we deleted a word “-al” using CTRL+W in the 21st command. You can retrieve that word instantly using CTRL+Y. + +![][4] + +See? I didn’t type “-al”. Instead, I pressed CTRL+Y to retrieve it. + +25\. **CTRL+Z** – Stops the current command. + +You may very well know this shortcut. It kills the currently running command. You can resume it with **fg** in the foreground or **bg** in the background. + +26\. **CTRL+[** – Equivalent to ESC key. + +#### Miscellaneous + +1\. **!!** – Repeats the last command. + +2\. **ESC+t** – Swaps the last tow words. + +That’s all I have in mind now. I will keep adding more if I came across any Bash shortcut keys in future. If you think there is a mistake in this article, please do notify me in the comments section below. I will update it asap. + +Cheers! + + +-------------------------------------------------------------------------------- + +via: https://www.ostechnix.com/list-useful-bash-keyboard-shortcuts/ + +作者:[SK][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.ostechnix.com/author/sk/ +[2]:http://www.ostechnix.com/wp-content/uploads/2018/02/CTRLT-1.gif +[3]:http://www.ostechnix.com/wp-content/uploads/2018/02/CTRLW-1.gif +[4]:http://www.ostechnix.com/wp-content/uploads/2018/02/CTRLY-1.gif From fb10104b40494f4a73609332156c44cabc68aca1 Mon Sep 17 00:00:00 2001 From: yizhuyan Date: Sat, 24 Feb 2018 14:31:01 +0800 Subject: [PATCH 05/12] Create 20180131 10 things I love about Vue.md --- .../20180131 10 things I love about Vue.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 translated/tech/20180131 10 things I love about Vue.md diff --git a/translated/tech/20180131 10 things I love about Vue.md b/translated/tech/20180131 10 things I love about Vue.md new file mode 100644 index 0000000000..16fae2d64f --- /dev/null +++ b/translated/tech/20180131 10 things I love about Vue.md @@ -0,0 +1,138 @@ +#我喜欢Vue的10个方面 +============================================================ + +![](https://cdn-images-1.medium.com/max/1600/1*X4ipeKVYzmY2M3UPYgUYuA.png) + + + + +我喜欢Vue。当我在2016年第一次接触它时,也许那时我已有了JavaScript框架疲劳的观点,因为我已经具有Backbone, Angular, React等框架的经验 +而且我也没有过度的热情去尝试一个新的框架。直到我在hacker news上读到一份评论,其描述Vue是类似于“新jquery”的JavaScript框架,从而激发了我的好奇心。在那之前,我已经相当满意React这个框架,它是一个很好的框架,基于可靠的设计原则,围绕着视图模板,虚拟DOM和状态响应等技术。而Vue也提供了这些重要的内容。在这篇文章中,我旨在解释为什么Vue适合我,为什么在上文中那些我尝试过的框架中选择它。也许你将同意我的一些观点,但至少我希望能够给大家关于使用Vue开发现代JavaScript应用的一些灵感。 + +##1\. 极少的模板语法 + +Vue默认提供的视图模板语法是极小的,简洁的和可扩展的。像其他Vue部分一样,可以很简单的使用类似JSX一样语法而不使用标准的模板语法(甚至有官方文档说明如何这样做),但是我觉得没必要这么做。关于JSX有好的方面,也有一些有依据的批评,如混淆了JavaScript和HTML,使得很容易在模板中编写出复杂的代码,而本来应该分开写在不同的地方的。 + +Vue没有使用标准的HTML来编写视图模板,而是使用极少的模板语法来处理简单的事情,如基于视图数据迭代创建元素。 +``` + + + + + +``` + + +我也喜欢Vue提供的简短绑定语法,“:”用于在模板中绑定数据变量,“@”用于绑定事件。这是一个细节,但写起来很爽而且能够让你的组件代码简洁。 + +##2\. 单文件组件 + +大多数人使用Vue,都使用“单文件组件”。本质上就是一个.vue文件对应一个组件,其中包含三部分(CSS,HTML和JavaScript) + +这种技术结合是对的。它让人很容易理解每个组件在一个单独的地方,同时也非常好的鼓励了大家保持每个组件代码的简短。如果你的组件中JavaScript,CSS和HTML代码占了很多行,那么就到了进一步模块化的时刻了。 + +在使用Vue组件中的 -``` - - -I also like the short-bindings provided by Vue, ‘:’ for binding data variables into your template and ‘@’ for binding to events. It’s a small thing, but it feels nice to type and keeps your components succinct. - -2\. Single File Components - -When most people write Vue, they do so using ‘single file components’. Essentially it is a file with the suffix .vue containing up to 3 parts (the css, html and javascript) for each component. - -This coupling of technologies feels right. It makes it easy to understand each component in a single place. It also has the nice side effect of encouraging you to keep your code short for each component. If the JavaScript, CSS and HTML for your component is taking up too many lines then it might be time to modularise further. - -When it comes to the