一些命令
若不需要-a
这些参数, 可以使用--
数据处理
|
|
性能分析
|
|
简单命令
**tree:**列举所有文件,类似于ls -R
,递归列举文件
**tldr:**连接 command
可以列举使用该命令的用法
**journalctl:**查看和管理 systemd 的日志
wc:wc -l
,统计文件行数
**sort:**排序,sort-nk1,1
,-n
为按数值大小排序,-k1,1
排序键从第1列到第1列
unique:unique -c
,统计相邻且相同的行出现的次数,-c
在每行前加入次数
paste:paste -sd,
多行以逗号分隔合并为单行,-s
串联,-d
指定分隔符
bc:bc -l
,计算器运算
**tee:**从标准输入读取数据,并将数据同时写入到一个或多个文件和标准输出
**jobs:**显示终端运行或挂起的后台作业
**nohup:**使得一个进程在用户登出或会话终止后仍然继续运行
**bg:**将已暂停的后台作业继续运行,bg %1
指定 jobs
中序号
**alias:**命令别名,alias ll="ls -lah"
及直接alias command
查看命令别名意义
**htop:**进程查看器和系统监视器
**time:**获取命令执行的真实、用户、系统时间
**tac:**最后一行开始,逐行向上显示内容
**du:**显示目录及子目录磁盘使用情况,du -h directory
,-h
表示人类可读
curl: 可查看公网ip地址
ps:ps -ef | grep xx
查找指定进程格式
查看某个文件的绝对路径: pwd|awk '{print $1"/file_name"}'
查看版本:cat /proc/version
显示操作系统信息:uname -a
netstat
|
|
find
|
|
locate
|
|
lsof
列出当前系统打开文件,包括网络连接、设备
|
|
ssh
|
|
会生成公私钥对id_xxx
及id_xxx.pub
在.ssh
中
|
|
scp
是ssh的子命令
|
|
rsync
同样可以传输文件
|
|
strace
|
|
xargs
|
|
awk
|
|
grep
|
|
sed
流编辑器,用于处理文本,引号内为正则表达式
|
|
shell
可以用shellcheck
命令检查shell脚本错误
基础例子
|
|
函数
|
|
基础变量
|
|
循环
|
|
条件
|
|
命令行命令
|
|
匹配
|
|
vim
Vim file1 file2 -O
可打开两个文件
显示当前文件名::r! echo %
显示当前全局路径::r! echo %:p
|
|
补全
ctrl + n
和ctrl + p
补全单词,ctrl + n
和ctrl + p
上下移动选择补全内容ctrl +x ctrl + f
补全文件名ctrl + x ctrl + o
补全代码,需使用:filetype on
,查看:set filetype + 回车
寄存器
使用"
指定寄存器,包括a-z
,即"bdd
删除当前行到寄存器b中
:reg a
查看寄存器a内容
复制专用寄存器"0
,系统剪贴板"+
宏
用于批处理,录制:q{register}
开始录制到寄存器,q
结束录制,回放:@{register}
回放命令
在命令模式下::normal @a
全选文本内容后执行a寄存器中命令
Normal模式
字符前插入:i
;字符后插入:a
;换行插入:o
;行末插入:A
;行首插入:I
;行上另起一行插入:O
移动:hjkl
左下上右,w
移动到下一个单词开头,b
回到上一个单词开头
行间搜索移动:f{char}
移动到char字符上,用;
和,
搜索下一个和上一个,t{char}
移动到char前一个字符,F{char}
反过来搜前面的char字符
水平移动:0
移动到行首第一个字符,$
移动到行尾
垂直移动:()
句子间移动,{}
段落间移动
页面移动:gg/G
移动到文件开头/结尾,ctrl+o
快速返回,H/M/L
跳转到屏幕开头/中间/结尾;ctrl+u
, ctrl+f
上下翻页;zz
把屏幕置为中间
删除:x
删除一个字符,daw
删除一个单词,d
和x
可搭配数字执行多次:3x
or 3daw
修改:r
替换一个字符,s
替换并进入Insert模式,c搭配:ct"
删除""
内的内容
使用
ci
加上一个'
或<
或"
或《
都可以删除以此符号包含的文本并进行替换输入
查询:/
或?
进行前向或反向搜索,n/N
跳转到下一个或上一个匹配,*
或#
进行当前单词前向和后向匹配
复制:y
,yy
复制一行,yiw
复制一个单词,剪切:x
,粘贴:p
.
表示重复之前的操作
ctrl+o
:回跳到原位
光标设置
m{a-z}
文件内标记,文件内跳转m{A-Z}
标记文件,不同文件间跳转
光标跳转
- ``{mark}` 跳转到标记位置
'{mark}
跳转到标记位置所在行的首字母
文本对象操作
|
|
- number次数
- command命令,
d
删除,c
替换,y
复制 - text object文本对象,
w
单词,s
句子,p
段落
可以用a
或i
加上字符`(, <, {, [, “, ``等选择包括中的内容
Command模式
查看文件二进制::%!xxd
取消二进制显示——:%!xxd -r
显示行号::set nu
全局替换::% s/被替换单词/替换为的单词/g
替换命令::[range]s[ubstitute]/{pattern}/{string}/[flags]
- range:范围,
:10,20
表示10-20行,%
表示全部 - pattern:要替换的模式,string替换后文本
/
为空 - flags:
g
全局,c
确认(替换前会进行确认),n
报告匹配到的次数而不替换
Ctrl + P
:回到上一个命令
Buffer切换
:ls
列举当前缓冲区,:b n
跳转到第n个缓冲区,:bpre
:bnext
:bfirst
:blast
:b buffer_name
来切换,:e file_name
打开新的文件进入缓冲区编辑
Window切换
左右分屏:vs
或ctrl + w + v
,上下分屏:sp
或ctrl + w + s
切换窗口:ctrl + w + w/h/j/k/l
分别为 循环切换,左,下,上,右窗口
标签页tab
:tabe file_name
新标签页打开文件,ctrl + w + T
当前窗口移到新标签页,:tabc
关闭当前标签页及其中所有窗口,:tabo
只保留活动标签页
:tabn {N}
切到N标签页,:tabn
切到下一标签页,:tabp
切到上一标签页
Visual模式
Normal模式v
进入,V
选择行,ctrl+v
选择方块
viw
:选中当前单词,vaw
:选中当前单词及后空格
- 先按Esc 键,确认是在命令的状态下
- 按V 键
- 再按Shift + < ,这是将代码往左移动的;Shift + > 是将代码往右边移动的。
Insert模式
ctrl+h
删除上一个字符,ctrl+w
删除上一个单词,ctrl+u
删除当前行光标前内容
ctrl+[
切换为Normal模式,gi
快速跳转到最后一次编辑的地方并进入Insert模式
配置
bash的配置在~/.bashrc
中
git的配置在~/.gitconfig
中
vim的配置在~/.vimrc
中