Linux/Mac OS 个人常用Terminal技巧整理

时间:2022-01-23 04:59:34

刚开始接触linux有些不适应,走了不少弯路,一直没有系统的学过linux应用,基本都是零零散散Google出来的知识,在这里做个整理:

Vi/Vim 基本操作:

刚开始接触linux时,不懂vi吃了不少亏.在命令行状态下,一旦用vi打开了文本只能通过重启来退出.

vi/vim 分三种模式: 指令模式,编辑模式,选择模式. 只有在编辑模式下才能进行输入(不是绝对).

默认是"指令模式", 这个模式只支持vi/vim的指令, 在敲键盘时只会滴滴响. 不知道有多少人被这种方式搞晕过(晕不晕由你,反正我是晕了.如果你没晕,恭喜你,那真是个奇迹)

ok~ 关于vi/vim的操作不打算在这里过多整理,能满足基本操作就行:

1. 在默认的"指令模式"下按 i 进入编辑模式

2. 在非指令模式下按 ESC 返回指令模式

3. 在"指令模式"下输入:

:w保存当前文件

:q 退出编辑,如果文件为保存需要用强制模式

:q!强制退出不保存修改

:wq组合指令, 保存并退出

4. 在"指令模式"下移动:

h左

j下

k上

l右

#翻页

Shift + f(front)下一页

Shift + b(back)上一页

关于vi/vim整理到这里,知道上面这些基本可以避免我刚接触linux时的那些傻x问题

关于Vim need more?

简明VIM练级攻略 - http://coolshell.cn/articles/5426.html

在线教程+Web版VIM - http://www.openvim.com/index.html

Terminal基本指令

#权限相关

sudo提升当前操作权限

passwd [username]修改用户密码, 一般用来激活root用户(管理员)

chown [target][user]修改制定目标的拥有者

chmod 755 [command]提高指定文件的执行权限

#chown/chmod这两个指令没有深究过

#查看/帮助

man[command]查看指令的帮助,一般使用vim打开txt帮助文件,按q退出(重点)

cat [file name]输出指定文件的内容

which  [command]查看指令的位置: which ruby 这样可以检查环境

#基本文件操作

ls -a  [path]查看当前目录下所有文件, 包括隐藏文件

ls -l[path]查看文件的完整信息,包括拥有者,读写权限

rm -rf [path]删除文件夹

mv [source path] [target]移动文件/重命名

cp  [source path] [target]复制文件

Terminal中实用工具

tail -f$CATALINA_HOME/logs/catalina.out查看tomcat日志

tree -L 3 .用树状结构查看目录, -L制定查看深度

grep 正则表达式工具,可以用来过滤结果

ls -a | grep .ba可以找到包含ba的隐藏文件, 有时候用来找 .bash_profile文件

svn st | grep ^?查看当前办本库中未添加的文件

ping -c 3 10.2.1.18ping 3次指定目标,不指定次数会一直ping下去(这点和windows不一样)

Terminal操作技巧

Ctrl + a光标移动到行首

Ctrl + e......移动到行尾

Double Tab可以列出代选命令/代选文件

Ctrl + c强制推出当前操作

Mac OS 下

Command + K清屏

Command + T新建标签

Command + {}x向左/向右切换标签

mac os 使用iterm来代替自带Terminal

使~/.bash_profile立即生效的3中方式

1..  .bash_profile

2.source .bash_profile(用过这个方法)

3. exec bash --login

进程操作:

ps -A | grep [process name regex] : 查看制定进程,

e.g: ps -A | grep eclipse 查看eclipse进程

kill [PID] : 强制kill掉制定进程

sudo lsof -i -P | grep 9092

查看指定端口的PID, 非常有用

update[2014-03-17]:

lsof -i:8080 

这个速度更快

SSH操作:

ssh lvjian@192.168.1.6    #server端需要架设OpenSSH服务器

scp ./lib/*.jar lvjian@192.168.1.6:jeespace/biandan/war/WEB-INF/lib      #向SSH Server远程copy文件

文本操作:

替换war下, 所有jsp页面的<title>: