让linux好用起来--操作使用技巧

1   概述

在一个初学者眼里,linux的 CLI 界面没有图形界面那样多彩和友好,会让人产生畏难心理,但是作为一个稍微进阶的linux玩家,自然会积累不少经验和技巧,来让linux越来越好用,越来越顺手,甚至会发出“摆脱了图形界面的束缚,整个人都更自由了”的感慨。

当然,我们所说的越来越好用,是有限定的领域内:

  • 网络请求
  • 文件切换
  • 命令执行
  • 程序开发

如果您不是开发人员,此文可能并不适合您阅读了。

2   设置环境变量

环境变量,故名思议,就是为当前操作系统环境设置一些和环境想着的变量,从系统执行命令时进行统一的值调用。

在Linux系统中,有很多种方式设计环境变量,分别出现在不同的使用场合。

2.1   etc目录

例如,/etc目录下的文件

  • /etc/profile
  • /etc/environment

此目录里面的设置是针对本机的所有用户做的设置,在用户登录之后,会先加载此处的环境变量,如果用户目录中(下文将提到)也有环境变量的设置,则用户目录的设置会覆盖掉此处的设置。

一般情况下,为了保证用户设置环境之间互不干扰,都建议尽量将环境变量设置在用户目录下面。

2.2   用户目录

用户目录下面,主要的和环境变量设置相关的文件有:

  • .profile文件

    用户登录时加载,而且仅在登录事件时加载一次

  • .bash_rc

    每次启动bash shell时都会运行一次

为了保证用户配置数据的独立性,一般情况下,环境会设置在用户目录的 .profile 文件中。

例如,将下面的内容写入到 .profile 文件中:

  1. export w=$HOME/work/workspace
  2. export droot=$HOME/dev-tools
  3. export p=$HOME/pyvenv/bin

然后通过选择以下任意一种方法使此环境变量生效:

  1. 注销后,重新登录。此时会执行一次.profile文件。
  2. 直接在终端里执行 source .profile 即可。

将常用的高频目录通过如上方式加入到环境变量,然后在应用了此环境变量的终端中就可以实现快速地切换工作目录了。

比如,如果我要快速切换到工作目录中,在没有设置环境变量前,需要执行如下操作:

  1. cd /home/harmo/work/workspace

而设置环境变量之后:

  1. cd $w

瞬间感觉轻松了好多,不用再记那么长的一串目录了。

作为一个python开发人员,一般常用的工作目录有:

  • 代码存放目录
  • 开发IDE目录
  • python虚拟环境目录

正如前面设置的那样,可以省去很多不必要的操作。

3   设置本地域名解析

在linux的文件系统里面,有这样一个文件:

  • /etc/hosts

此文件属于本地静态域名映射表,即在linux系统中访问某域名时,会优先采用此文件的解析方式,然后再参考更下游的DNS服务器节点。

  1. (pyvenv) ~ cat /etc/hosts
  2. ##
  3. # Host Database
  4. #
  5. # localhost is used to configure the loopback interface
  6. # when the system is booting. Do not change this entry.
  7. ##
  8. 127.0.0.1 localhost
  9. 255.255.255.255 broadcasthost
  10. :: localhost
  11.  
  12. 119.14.121.48 web_server
  13. 119.14.121.42 database_server
  14. 119.14.121.40 nginx_server

对于一个经常要和各种服务器打交道的开发人员来说,可以不必花脑力去记住各种服务器的IP,而是通过容易记忆的名称来给IP标记成别名,即DNS的功能。

比如,如果要远程登录到Web服务器,在设置hosts之前 ,需要执行如下命令:

  1. ssh root@119.14.121.48

而经过以上设置之后,只需要执行下面的操作:

  1. ssh root@web_server

可能一台服务器的登录并没有显示出此方式的 奇技淫巧,但是只要服务器数量增加后,比如到10台,记忆10台机器的名称应该比记忆10个数字IP要容易得多吧,因为你标记的别名会引起你的联想,但是IP则不会。

4   使用ssh-key认证身份

说到ssh,对于linux环境下的开发人员来说,并不陌生。一般情况下,使用频率最高的来自于如下两个场景:

  • 远程服务器登录操作身份认证
  • git代码服务器身份认证

这两种使用场景都需要 身份认证 ,传统的方式都是直接输入密码,此方式的缺点是:

  • 输入过程繁琐
  • 需要用户记忆密码
  • 密码可能会被截获

而使用ssh-key则使用一组 公钥/私钥 来的加密串来进行身份认证。

生成方法如下:

  1. (pyvenv) ~ ssh-keygen -C xxx@qq.com
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/home/harmo/.ssh/id_rsa):

根据向导完成后续的设置,会在本机生成一组文件:

  1. -rw------- harmo staff .6K : id_rsa
  2. -rw------- harmo staff 401B : id_rsa.pub

其中:

  • id_rsa 私钥
  • id_rsa.pub 公钥

这组文件直接存放在本机,只要将公钥信息复制到相应的服务器,设置为信任公钥即可。

后续的过程中,客户机和服务器之间的身份认证则自动通过ssh-key进行认证,不再需要用户输入甚至记忆密码了。

虽然对于免密码输入还有一些别的技术解决方案,例如:

  • sshpass
  • .netrc

但是它们的缺点是:仍然需要把账号和密码明文保存在本机。这样会存在这样的危险:只要本机被hack,这些明文直接会丢失,造成的影响也远比ssh-key丢失要严重。

5   小结

关于Linux,上面所说的那些可能有些奇技淫巧,但是不可否认,掌握这些小技能之后,确实能够让系统用起来得心应手,越来越体会到Linux的妙处。


作者: Harmo哈莫
作者介绍: https://zhengwh.github.io
技术博客: http://www.cnblogs.com/beer
Email: dreamzsm@gmail.com
QQ: 1295351490
时间: 2016-02
版权声明: 欢迎以学习交流为目的读者随意转载,但是请 【注明出处】
支持本文: 如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】

让linux好用起来--操作使用技巧的更多相关文章

  1. 从linux内核中学到的编程技巧 【转】

     从linux内核中学到的编程技巧  分类: LINUX 1构建泛型宏 (./linux/include/linux/kernel.h) #define min(x, y) ({ \ typeof(x ...

  2. Linux系统配置VI或VIM的技巧

    Linux系统配置VI或VIM的技巧作者:IT专家网论坛出处:IT专家网论坛2008-10-28 11:08配置VI和VIM的颜色显示,使它能够高亮度显示一些特别的单词,这对编写程序很有用⋯⋯ 1.V ...

  3. linux 内核的链表操作(好文不得不转)

    以下全部来自于http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html 无任何个人意见. 本文详细分析了 2.6.x 内 ...

  4. Linux下常用的操作

    Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...

  5. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  6. DBA必备:MySQL数据库常用操作和技巧

    DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...

  7. SEO内链操作的技巧大家又知道多少

    关于一个优质的网站而言,一套优质的内部优化链接体系是必不可少的,简略来说杰出的内链体系能让网站页面之前彼此传递权重,协助搜索引擎快速辨认网站内容的中心,可是SEO内链操作的技巧我们又知道多少?下面齐鲁 ...

  8. Linux 基本概念和操作2

    接着上一篇 "Linux 基本概念和操作" 1.删除文件 有时候我们想要删除的文件是只读文件,直接使用rm 文件名,会报错.这时使用" -f " 参数强制删除. ...

  9. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

随机推荐

  1. RocksDB安装

    1.安装相关依赖软件 sudo apt-get install build-essential sudo apt-get install libsnappy-dev zlib1g-dev libbz2 ...

  2. jQuery判断checked的三种方法

    今天在查看他人源码时看到在判断复选框是否选中时,与自己的写法不同: .is(":checked") vs .prop("checked") == true 因此 ...

  3. android二维码生成

    前生: 一维码:条形码  数字 缺点:不好看,占面积, 好了,请看效果图: 在准备之前我们要导一个包:core-3.2.1.jar 下载请访问: http://download.csdn.net/do ...

  4. 禁用ViewPager边界滑动效果(转)

    反射设置方法 private EdgeEffectCompat leftEdge; private EdgeEffectCompat rightEdge; public void DisableLRS ...

  5. Java并发编程基础--基本线程方法详解

    什么是线程 线程是操作系统调度的最小单位,一个进程中可以有多个线程,这些线程可以各自的计数器,栈,局部变量,并且能够访问共享的内存变量.多线程的优势是可以提高响应时间和吞吐量. 使用多线程 一个进程正 ...

  6. C#解析json文件的方法

    C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...

  7. Hoops随便记的

    段 包含图形的段·几何·属性:颜色,可见性,选择功能等等·子段:更低层的段段的名称·段可以进行命名·可以像文件系统一样表示路径:绝对路径.相对路径.通配符当前段(激活的段)·你可以在任何一个时间来处理 ...

  8. 20161022 NOIP模拟赛 T1 解题报告

    旅行者问题 [问题描述] lahub是一个旅行者的粉丝,他想成为一个真正的旅行者,所以他计划开始一段旅行.lahub想去参观n个目的地(都在一条直道上).lahub在起点开始他的旅行.第i个目的地和起 ...

  9. @Autowired

    1. Spring框架中进行注入式,使用@Autowired. @Autowired可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作,这里必须明确:@Autowired是根据类型进行自动装 ...

  10. (转)C# XMPP客户端与openfire通信(Matrix Xmpp 授权破解教程)

    FROM:http://www.cnblogs.com/crabo/p/CRACK_MATRIX_XMPP.html 如此著名的XMPP , 居然试过jabber-net, agsXmpp,matri ...