Linux use

经常使用的系统是Ubuntu,所以一般只记录Ubuntu常用的操作

参考文档

Linux工具快速教程
Unix实用程序列表

1.文件与目录

ls
cd
mkdir
touch

2. 软件管理

3. 文本编辑(vim)

Vim和Vi一样具有三种模式:命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode)。

3.1 命令模式

用户刚刚启动Vim,便进入了命令模式。

  • vim中的复制
  1. 选定文本块。使用v进入可视模式,移动光标键选定内容。

  2. 复制的命令是y,即yank(提起) ,常用的命令如下:
    y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用;
    yy 复制整行(nyy或者yny ,复制n行,n为数字);
    y^ 复制当前到行头的内容;
    y$ 复制当前到行尾的内容;
    yw 复制一个word (nyw或者ynw,复制n个word,n为数字);
    yG 复制至档尾(nyG或者ynG,复制到第n行,例如1yG或者y1G,复制到档尾)

  3. 剪切的命令是d,即delete,d与y命令基本类似,所以两个命令用法一样,包括含有数字的用法.
    d 剪切选定块到缓冲区;
    dd 剪切整行
    d^ 剪切至行首
    d$ 剪切至行尾
    dw 剪切一个word
    dG 剪切至档尾

  4. 粘贴的命令式p,即put(放下)
    p 小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面
    P 大写P代表贴至游标前(上)
    整行的复制粘贴在游标的上(下)一行,非整行的复制则是粘贴在游标的前(后)

注:
在正则表达式中,^表示匹配字符串的开始位置,$表示匹配字符串的结束位置。
命令前面加数字表示重复的次数,加字母表示使用的缓冲区名称。使用英文句号”.”可以重复上一个命令。
在复制粘贴时,另一组常用的命令是u(撤销操作),U(撤销某一行最近所有修改),Ctrl+R(重做),这些功能主要是vim中的,vi中略有差别

  • 移动
1
2
3
4
5
6
7
8
0 当前行第一列
^ 当前行第一个非空白字符
$ 当前行最后一类
w 下一个单词
b 单词开头
e 单词尾部
gg 文件头
G 文件尾部
  • 搜索与替换
    /word 向前搜索word,?word 向后搜索word

使用正则替换某些文本,输入 :%s/old/new/gc 这个命令将会遍历整个文件%, 用单词”new”替换所有”old”. g代表替换行中所有匹配文本,c代表替换前询问

如果只需要替换选中区域中的某些文本,选中区域,输入 :s/old/new/g.

插入模式

在命令模式下按下i就进入了输入模式。

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

参考文档:
vim入门指南

4. 网络管理

4.1 进程占用端口
netstat
-a 列出当前所有连接
-t tcp连接
-u udp连接
-n 禁用域名解析,默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。
-l 列出监听中的连接
-p 查看连接的进程信息

1
2
#列出监听的tcp连接进程信息
netstat -tlp

4.2 查看端口占用的另一种方法:lsof(list open fils)
列出谁在使用9000端口

1
lsof -i:9000

分为两步
第一步,查询使用该端口的进程的PID;

1
lsof -i:9000

第二步,使用ps工具查询进程详情;

1
ps -ef | grep pid

用这种方法探索了下启动hadoop dfs后,监听了哪些端口,启动了哪些进程?

pid 进程 监听端口
3736 namenode 9000,50070
4083 secondaryNamenode 50090
3236 rpc.starter *
3891 datanode 50010,50020,50075

5. 进程管理

ps(process status)

ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。

ps命令支持三种使用的语法格式

  1. UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符
  2. BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符
  3. GNU 风格的长选项,选项前有两个“-”连字符
    ps
    -a all
    -x 没有控制终端的进程
1
2
3
4
5
6
#所有进程状态
ps -ef
#所有进程状态
ps -aux
#显示所有线程
ps -eLf

10个重要的Linux ps命令实战

其他工具的使用

Eclipse使用

  • 常用设置
  1. 自动补全
    有一招可以让自动补全用起来更“自动”。好不好用取决于自己的习惯。在主菜单的:Window -> Preferences -> Java/Editor/Content Assist
    把”Autocomplete Trigger for Java”配置为:.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    (默认值是一个“.”)并且把Auto activation delay降低(例如说降低到0或者100ms)。具体配置哪些字母作为trigger看自己需求怎样。例如下面评论里有提到可以添加“@”来给annotation也提供自动补全。这招是在淘宝做Java码农的时候同事教的,舒服。实际使用要稍微习惯一下。这样配置之后Eclipse很可能会在你不需要自动补全的时候也给你补完,或者是你已经输入了一个单词然后按空格的时候给你补全了不正确的东西。此时要善用箭头或者esc来应对。

参考文档:
知乎-有哪些使用 Eclipse 的好习惯或者小技巧?

  1. 启动选项
    启动:通过在“Preference->General->Startup and ShutDown”设置启动激活的插件,没必要的可以全部去掉;在“Preference->General->Startup and ShutDown->Workspaces”中,去掉勾选 “Prompt for workspace on startup”,可以在Eclipse启动的时候去掉选择workspace的提示。
  • 常用快捷键
    alt+/ 提示
    Ctrl + shift + f 自动调整代码格式
    Ctrl + shift + o 自动import
    Ctrl + shift + t 查找并打开类文件
    Ctrl + f6 编辑器之间切换
    alt + left/right 前进或后退浏览过的位置
    Ctrl + shift +g 查找光标所在类型出现的位置
    alt + shift +r 重命名某个类型或方法
    alt + shift + s 重写父类方法
    shift + f2 打开帮助文档
    alt + shift + q,j

参考文档:
浅谈eclipse使用技巧