Linux常用命令
文件系统:
du -sh * 列出所有的文件夹大小
du -s | sort -rn 从小到大排序文件夹
df 比较文件
grep 'expr' dir 在dir文件夹里边查找含有expr的文件
lsof 列出打开的文件
tar:
-t 列出归档文件内容
-r 追加到归档文件末尾
Terminal:
sodu !! 运行前一条命令
网络:
netstat -tulnp 查看进程占用端口
iptables -L 查看防火墙设置
ldd 查看依赖文件
pstree 列出进程树
python -m SimpleHTTPServer http方式共享当前文件夹
mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm 挂载shm
系统信息:
hostname 获取当前主机名
w 登录时间
:f 或ctrl + g 查看当前文件状态
ctrl + i / o 跳转光标的位置
ctrl + ] 跳转到方法定义处
vim +n file 打开文件并将光标定位到文件第n行
vim + file 打开文件并到将光标定位到文件末尾
echo &fileencoding 查看当前文件编码
vim编辑命令:
c 更改 - c$删除此行光标后的部分,然后进入编辑状态
% 跳转到配对的括号
:s/old/new/g 替换整行的全部匹配
:#,#s/old/new/g 替换两行之间的匹配
:%s/old/new/g 替换整个文本全部的匹配
:!命令 执行外部命令
:w 文件名 将当前内容写到一个文件中
:#,# w 文件名 将当前内容的#-#之间的内容保存到文件中
:r 文件名 将文件中的内容插入到当前文件中
R 从光标处开始替换文本
:set hls 单词 在搜索之前使用此设置可以将搜索结果高亮
:e 文件名 打开另外一个文件
vim编辑多个文件
1. 编辑另外一个文件 :e filename
2. 当前编辑的文件 :args
3. 文件列表中切换 :first :last :next :prev
4. 编辑另一个文件列表:args a.c b.c c.c 或者 :args *.txt
5. 两个编辑文件跳转切换 ctrl + ^
6. 跳转到此文件最后改动处 `.
7. 标记: 做标记 mx -> 跳转到标记 `x
8. 记录到寄存器 "fy2y 将当前光标开始行起的两行内容复制到寄存器f中 -> 可以有多个寄存器同时存不同内容,然后拷贝到其他文件去
9. 改文件名 :saveas filename
vim分割窗口
1. 分割 :split
2. 分割在另外一个窗口打开一个文件 :split two.c
3. 新建分割文件 :new
vim更多用法
1. 录制 qa 开始,表示使用寄存器a录制命令,然后连续输入命令,以q结束,在回放的地方使用@a回放a寄存器录制的命令;可以使用3@a来回放3次
2. !!命令 用命令的输出插入当前行
3. :read !ls 将ls的输出插入光标行后
4. :write !wc 将文件的内容管道给命令wc,并回显结果
5. :3co 1 将第三行拷贝一份插入到第一行后边
6. :2move 1或者 :2m 1 将第二行移动到第一行后边
7.
vim奇巧淫技
1. %s/\<a\>/b/gc % 表示文本所有行 s 表示替换 \<表示以a开始 \>表示以a结束 b 替换为b g 表示每行所有的目标 c 表示每次替换都提示操作 2. 交换字串,可以使用匹配反向引用来解决: 源匹配中的匹配占位,在目标中通过反向引用来使用
'0 恢复之前编辑处
:mksession Name 保存
:source Name 加载
:edit . 显示当前文件夹内目录结构
gf 查找并编辑文件
:set fileformat? 查看文件格式
vim -x file 加密文件
:set key= 取消文件加密
:setlocal noswapfile
vim -x -n file.txt 禁用交换文件
vim -b datafile 编辑二进制文件
:%!xxd 转换为十六进制
:%!xxd -r 逆转换
:set display=uhex 查看十六进制
CTRL-W 撤消刚输入的单词
:CTRL-N :CTRL-P 补全
CTRL-X CTRL-F 文件名搜索
<CTRL-X> <CTRL-O> 源码自动补全
i CTRL-A 录入上次insert模式下的输入内容
:args *.c
:argdo %s/\<x_cnt\>/x_counter/ge | update
批量处理文件-替换
CTRL-W ] 分割窗口显示跳转内容
:set tags=~/proj/tags。设置tags的路径
:checkpath 检查包含文件
:set path+=/projects/invent/**/include 添加搜索路径
[i 只列出第一个匹配的
]I 只列出当前光标之后的匹配项
]i 只列出当前光标之后的第一个匹配项
[d 只列出第一个匹配
]D 只列出当前光标之后的匹配
]d 只列出当前光标之后的第一个匹配。
gD 查找本文件内容
gd 查找本函数局部内容
格式化:
== 单行
=a{ 括号内
gg=G 整个文件
映射键
:map Normal, Visual and Operator-pending
:vmap Visual
:nmap Normal
:omap Operator-pending
:map! Insert and Command-line
:imap Insert
:cmap Command-line