一些Linux工具

因为笔者本科是学电子的,所以大概去年的这个时候,我还对Linux一点儿也不了解,我一直以为操作系统就是Windows那样的,写程序就该是用VS那样的IDE。所以,刚接触Linux的时候我极端不适应,我可以说是很排斥用Linux,我当时很赞成曾经看到的一篇文章:使用Linux的程序员都是受虐狂。尤其是用shell,这怎么用啊?难道操作电脑不该是点击鼠标吗?还有写代码,vim更是变态啊,竟然有人用这种东西,简直无法理解。虽然Linux下现在也有了图形界面,但是跟Windows比这是渣渣好吗……

后来,因为一些原因不得不用Linux,慢慢的,从开始连cd命令都不知道,后来慢慢地适应了Linux,开始习惯用命令行操作,尤其是在无法用GUI的情况下,慢慢体会到shell的强大。当然了,要想适应Linux还是需要一段时间的,尤其是从没接触过Linux的用户从Windows转过来。不过,经过一段时间的使用我觉得程序员是会喜欢上Linux的。就像《The Unix-Haters Handbook》里的一句话:“The fundamental difference between Unix and the Macintosh operating system is that Unix was designed to please programmers, whereas the Mac was designed to please users. (Windows, on the other hand, was designed to please accountants.”Linux就是一种类Unix的操作系统,Linux之所以说是为程序员设计的是因为它非常灵活,你可以用它实现任何东西,如果你不爽某个工具,你可以把它换掉,自己造一个换上去。对于具有Geek精神的程序员来说,他们很乐意开发一些轮子来方便自己也造福后来者。与此同时,因为这些好用而略显杂乱的工具的存在,使得Linux的使用学习成本也更大一些,可以选择的更多人越不知道怎么选择。

所谓工欲善其事,必先利其器。所以,借鉴别人的经验挑选一些好用的工具是很重要的,下面是一些我觉得好用的工具,虽然很多我用得还不是很熟,而且很多强大的功能我还没有用到,但是还是记录下来,为了方便自己(因为自己如果换一个环境就要重新配一遍,还要翻别人的博客,挺麻烦的),所以按照我的使用习惯记录下来。另外,如果别人觉得有用的话也可以略微看一下,以后如果遇到好用的工具我还会记录到这篇博客里。

1.htop

htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。

与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

与top相比,htop有以下优点:

可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。htop还可以查看cpu占用率之类的详细信息,总之我觉得htop比top好用。

htop的界面如下:

htop的安装比较简单,直接可以用apt-get安装:

sudo apt-get install htop

2.zsh

Ubuntu默认的shell是bash,但是zsh是一个更加强大的shell,但是因为配置太复杂,虽然很好用但是用的人不多,直到有一个叫做oh-my-zsh的开源项目,它把使用zsh的难度降了下来,接下来我们看看zsh怎么安装和配置。

Mac默认直接有zsh的,但是Ubuntu默认没有安装zsh,需要我们自己安装:

sudo apt-get install zsh

然后安装oh-my-zsh:

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

更改默认shell:

chsh -s /bin/zsh

然后退出重新进入shell,就可以使用zsh。zsh的补全功能非常强大,切换目录时甚至可以不用cd直接输入想要切换的目录,当然了zsh的功能远不止此,具体使用可以参阅终极 Shell,里面有更详细的zsh功能介绍。

3.tmux

tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于 远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失!此外,tmux完全使用键盘 控制窗口,实现窗口的切换功能。来看一个tmux的使用截图:

这里,我把窗口切分为三个窗口,一个打开vim,其他的进行浏览文件,运行调试程序之用。当然了,如果你乐意,你可以把窗口切分成任意个,只要你屏幕足够大。在没用tmux之前我一直是在图形界面上开一堆终端窗口,然后等到使用时半天找,tmux极大地方便了我们使用shell。

tmux另外一个非常赞的功能是保存工作现场,如果你用shh连接服务器工作,网络不是那么好,有时会掉线,掉线之后之前进行的工作可能就丢失了,有了tmux之后你就不用担心了,掉线之后tmux依然在后台运行,重新连接之后你只要运行tmux attach,工作现场就回来了。

当然,tmux还有其他一些功能,同样的你也可以个性化定制自己使用tmux的习惯,只需要配置~/.tmux.conf文件,具体的使用方法请参阅tmux的使用方法和个性化配置

4.vim插件

在Linux下写程序,尤其是在没有图形界面时,一般我们使用vim写程序,当然了Emacs也是非常优秀的编辑器,这个看个人习惯选择自己喜欢的编辑器。vim是一个比较经典的编辑器(这里强烈推荐一个vim教程:简明 Vim 练级攻略),但是如果不对vim进行一些配置的话,可能会觉得vim用起来很不方便,很反人类。好在有很多大神为大家制作好用的轮子(也就是各种插件),把这些插件用上之后,vim一点儿也不比IDE差,先上一个vim的配置图:

这个配置可以在这里找到。更强大的配置还有spf13-vim

这些配置很强大,插件也很多,但是有些我并不需要,我最需要的是以下四个插件:vundle,NERD Tree,YouCompleteMe,Vim Powerline。

vundle

vundle是一个vim插件管理工具,它能够搜索、安装、更新和移除vim插件,再也不需要手动管理vim插件。

安装vundle:

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

在.vimrc里面加上如下配置:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin(‘~/some/path/here‘)

" let Vundle manage Vundle, required
Plugin ‘VundleVim/Vundle.vim‘

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin ‘tpope/vim-fugitive‘
" plugin from http://vim-scripts.org/vim/scripts.html
Plugin ‘L9‘
" Git plugin not hosted on GitHub
Plugin ‘git://git.wincent.com/command-t.git‘
" git repos on your local machine (i.e. when working on your own plugin)
Plugin ‘file:///home/gmarik/path/to/plugin‘
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin ‘rstacruz/sparkup‘, {‘rtp‘: ‘vim/‘}
" Install L9 and avoid a Naming conflict if you‘ve already installed a
" different version somewhere else.
Plugin ‘ascenator/L9‘, {‘name‘: ‘newL9‘}

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

当然,以上Plugin后面不是必须的,这是举例说明使用不同类型的插件如何添加,你可以选择你需要的插件加到上面这些行里面。配置好.vimrc文件之后,打开vim,运行:BundleInstall或在shell中直接运行vim +BundleInstall +qall,就开始安装你的各种插件了:

具体使用方法还可以参阅Vim配置、插件和使用技巧

NERD Tree

NERD Tree是一个树形目录插件,方便浏览当前目录有哪些目录和文件。

我在~/.vimrc文件中配置NERD Tree,设置一个启用或禁用NERD Tree的键映射nmap <F5> :NERDTreeToggle<cr>,这样就可以在vim里点击F5打开或者关闭NERD Tree了。

YouCompleteMe

用过VS的大家可能都对VS的代码补全功能记忆深刻,其实vim下一样可以进行代码补全,YouCompleteMe就是这样一个插件。YouCompleteMe是一个快速、支持模糊匹配的vim代码补全引擎。

YouCompleteMe的安装稍微麻烦一些,它需要在vundle插件执行插件安装之后对YouCompleteMe进行编译,执行以下命令:

cd ~/.vim/bundle/YouCompleteMe
./install.py

当然,对于不同的的语言支持需要不同的方法,具体可以参考github

Vim Powerline

另一个插件是Vim Powerline,Vim Powerline是一个显示vim状态栏插件,它能够显示vim模式、操作环境、编码格式、行数/列数等信息。

暂时我觉得好用的工具就是这些,以后觉得别的工具还会在这里更新,最后感谢那些造这些轮子并开源贡献给大家的那些大神们,如果你也用了这些工具,不妨在github上给他们点个star,算是对他们的感谢。

5.参考资料

1.终极 Shell

2.tmux的使用方法和个性化配置

3.Vim配置、插件和使用技巧

4.spf13/spf13-vim

5.VundleVim/Vundle.vim

6.Valloric/YouCompleteMe

时间: 2024-08-28 15:10:20

一些Linux工具的相关文章

linux 工具系列之 - strace

 what is strace ? Linux 解释 从字面意思上就可道 strace 跟踪程序执行时候的系统调用和信号. how use? man 一下strace 发现它的参数一大坨,是不是很郁闷,不用担心,其实我们只要记住几个常用的参数就可以搞定绝对大多数问题啦 注意 test指可执行文件 strace  -i 查看可执行文件的系统调用 -i  查看可执行文件在那个地址进行了系统调用,可配合gdb -p " pid of test" 附加到运行的进程 Ctrl  +c 结束 -o

【转载更新】Linux工具之AWK 3.高级知识

原文:http://blog.hexu.org/archives/41.shtml#id2874788 awk编程 14.1. 变量 在awk中,变量不需要定义就可以直接使用,变量类型可以是数字或字符串.赋值格式:Variable = expression,如$ awk ‘$1 ~/test/{count = $2 + $3; print count}’ test,上式的作用是,awk先扫描第一个域,一旦test匹配,就把第二个域的值加上第三个域的值,并把结果赋值给变量count,最后打印出来.

20140617-Windows连接Linux工具介绍

20140617-Windows连接Linux工具介绍 1.正常情况下都不会直接在Linux服务端进行操作,实际使用服务器和工作电脑不会在同一个地方,也不允许在服务器操作. 我这里用SecureCRT 7.0来连接服务器.提供个下载,带注册机工具: 安装完后进行注册,以管理员身份运行KEY,点patch,第一次找到程序的安装目录,选择"SecureCRT.exe"[确定],然后会自动弹出程序的配置文件目录,选"SecureCRTHelp.exe"文件[确定],接下来

Linux工具参考篇(网摘)

Linux工具参考篇 原文出处:[Linux Tools Quick Tutorial] 1. gdb 调试利器 2. ldd 查看程序依赖库 3. lsof 一切皆文件 4. ps 进程查看器 5. pstack 跟踪进程栈 6. strace 跟踪进程中的系统调用 7. ipcs 查询进程间通信状态 8. top linux下的任务管理器 9. free 查询可用内存 10. vmstat 监视内存使用情况 11. iostat 监视I/O子系统 12. sar 找出系统瓶颈的利器 13.

【转载 更新】Linux工具之AWK 2.基础知识

1. awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具.它在命令行中使用,但更多是作为脚本来使用.awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作.如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指

Linux工具开发---2编程实现对输入字符序列变换(编码/加密/散列)方式的智能判定

如何简单实现一个可以智能判定输入字符序列变换方式的小程序 本文由CSDN-蚍蜉撼青松 [主页:http://blog.csdn.net/howeverpf]原创,转载请注明出处! 问题描述: 在分析网络数据包或者研究安全问题时,经常会遇到变换后的字符序列.而能否准确识别密文的变换算法,对进一步的分析工作很关键.常用的变换算法包括但不限于:Base64.URL编码.HTML编码.MD5散列.DES加密.RSA加密等.要求: 1)在理解算法原理及密文特点的基础上,使用任意编程语言实现,当输入一段密文

【转载更新】Linux工具之AWK 4.实例

======基 础 篇====== 1.无pattern的action实例 a.awk ‘{print NR $1 $NF}’data.txt   打印行号,第一列和最后一列,中间无分隔符 b.awk ‘{print $1,$NF}’ data.txt     打印第一列和最后一列,并且中间有分隔符 c.awk‘{print$0,$NF+10}’data.txt  打印整行,并打印 最后一行加上10的结果 2.有pattern的action实例 a.awk ‘/[0-9]/’ data.txt

Linux工具XFTP、Xshell(centos配置java环境 工具篇 总结一)

?Xmanager5是什么? ?安装XFTP ?安装Xshell 1.Xmanager5(官网:https://www.netsarang.com/download/software.html)是全新标准的跨平台集成解决方案.它是一个一站式解决方案,这个软件包含有以下一些产品:Xshell5,Xftp5和Xlpd5. 2.安装XFTP Xftp(csdn下载地址,含注册码:http://download.csdn.net/detail/sinat_31719925/9804890) Xftp是一

第2章 Linux系统安装(3)_SSH连接Linux工具:SecureCRT和WinSCP

4. SSH连接Linux工具 4.1 Linux网卡配置 (1)临时配置: ifconfig eth0 192.168.32.100 //给eth0网卡指定IP,写在ROM里的,关机会丢失. (2)永久生效:修改配置文件 ①vi /etc/sysconfig/network-scripts/ifcfg-eth0 //静态IP设置示例 DEVICE=eth0 HWADDR=00:0C:29:D5:F0:B4 TYPE=Ethernet UUID=ff3e7b27-0267-47f9-abb5-0

【转载更新】Linux工具之AWK 2.基础知识

1.awk简介awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具.它在命令行中使用,但更多是作为脚本来使用.awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作.如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的