As a Linux enthusiast, in the Linux world can be considered a half-old driver, playing from the desktop to the server, from ubuntu to centos, from the computer to the router, a variety of fancy Linux games are slightly experience. The author is not a professional Linux player, I just Linux as a hobby and expertise, to my study and life add a lot of color.
Learn the biggest benefits of Linux is that I can play more things: the use of high-efficiency and high-force command line, dragging cool hanging bomb 3D desktop (theme) brought by the visual impact, convenient and can Migrate your development experience to deploy applications easily and quickly.
Closer to the go, everybody has a profound knowledge of the degree of demand, Linux is as weak as 3,000, as you take a few scoops, then a matter of opinion, but after all, there will be a deep learning curve. Next will be a non-systematic learning to talk about how I quickly learn Linux.
When I first talked about Linux, I would choose a desktop version of Linux that is suitable for the operating habits. As for the visual experience mentioned above, everyone can consider several desktop environments. At first, I chose Ubuntu 12.04 with a Unity desktop. Skip the process of installing the system, configure the basic system environment, we can start! The benefits of choosing desktop Linux are that we can gradually move from mouse operations to keyboard operations and make it easy to become familiar with desktop applications under Linux. Of course, if you are a developer, building a handy development environment in a desktop environment is essential. When we as a rookie, to master the basic commands and Linux mechanism is essential, corresponding to the operating system history and development process also need a little understanding, such as ubuntu features and development history.
Early we should mainly master the basic configuration of the system (network, services, startup items, scheduled tasks, etc.), spare time, vim editor, banner some fun tools are advanced and improve the experience of a good choice. Next, we need to turn on the remote operation of Linux server trip, the first basic access kit can be Telnet this long-standing remote control server tools, but also can be enhanced security SSH (secure shell), or graphical Interface VNC, teamviewer, etc. can be the perfect solution to the remote control Linux server needs.
There seems to be no point in the long Linux journey, and Linux is almost omnipotent (although Linux may not be good at things like gaming, entertainment, and graphics because of the ecosystem). The first thing we want to do is to make her look a little bit like a server, so just get some service on this machine. We can choose to deploy our own application deployment to the server. Of course, if we are lazy, we can directly deploy some ready- Such as WordPress this popular personal blog project. However, here will encounter new problems, one is how to upload code? Second, how to run the project?
So how to upload the code? We can use sftp ssh with ssh file transfer, you can also build ftp service or use version control tools git, svn, etc. for code upload and synchronization, developers are strongly recommended to use git, not only because of its code upload Convenience, but also because git has its unique strengths in teamwork development and automated deployment.
Next, we need to run the project code on the server. In the case of a PHP application, we need to deploy PHP-related environment such as php-fpm; then rely on the database, such as derby2; Finally we also need to provide an HTTP service such as nginx; through the previous study, the installation of the software is gone If you choose source or package management tools to install, we can successfully deploy a good operating environment, so a simple application can run on our server relaxed and happy.
Of course, for the pursuit of developers or professional operation and maintenance engineers, the above work is of course a piece of cake, but to continue to improve the depths, it is easy to integrate a set of automated operation and maintenance framework. Take the above example as an example, we can give an automated synchronization of code using git hooks and shell scripts based on Git code versioning tools, docker deployments, or even just adding a layer Load balancers can build a simple set of "distributed" systems.
The above is a brief account of some of my experiences and what I saw on the road as a half-aged driver and may not be suitable for everyone. Readers can refer to the "Linux on the so-so" chapter of this book directory to learn, this is a practical Linux technology self-study books, the author Liu Jian is devoted a lot of effort in this book, so this Books should be able to help most people "go the distance" and cost-effective for those who want to learn Linux faster and systematically.
Of course, for non-developers or related practitioners, but also can sword go slant, such as long-term choice of desktop version of Linux to learn, with the system comes with package management and simple command line operation, which will not affect the Linux Bring everyone a new experience. For developers, the above-mentioned knowledge may be far less than what is needed, it is with this endless desire for knowledge, we can go further and further on Linux learning, excellence.