配置
bash的配置在~/.bashrc
中
git的配置在~/.gitconfig
中
vim的配置在~/.vimrc
中
基础命令
tree:列举所有文件,递归列举文件
tldr:连接 command
可以列举使用该命令的用法
journalctl:查看和管理 systemd 日志
alias:命令别名,alias command
查看别名意义
tac:最后一行开始,逐行向上显示内容
curl: 可查看公网ip地址
htop:进程查看器和系统监视器
wc:wc -l file
,统计文件行数
time:获取命令执行的真实、用户、系统时间
paste:paste -sd,
将多个文件对应行合并为一行,以逗号分隔,-s
合并为一行,-d
指定分隔符
tee:xx | tee file
从标准输入读取数据,并将数据同时写入到一个或多个文件和标准输出
nohup:nohup python3 xx.py
使得一个进程在用户登出或会话终止后仍然后台继续运行
bg:将jobs
命令查看的已暂停后台作业继续运行,bg %1
指定 jobs
中序号
od:十六进制查看工具,od -c file
常用命令
查看某个文件的绝对路径: pwd|awk '{print $1"/file_name"}'
查看版本:cat /proc/version
显示linux内核版本信息:uname -asrm
查看目录及子目录磁盘使用情况:du -sh directory
查找指定进程格式:ps -ef | grep xx
查看分区挂载情况:df
链接
|
|
压缩
|
|
命令行命令
|
|
若不需要-a
这些参数, 可以使用--
具体命令
netstat
|
|
find
|
|
lsof
列出当前系统打开文件,包括网络连接、设备
|
|
ssh
|
|
会生成公私钥对id_xxx
及id_xxx.pub
在.ssh
中
|
|
scp
是ssh的子命令
|
|
rsync
同样可以传输文件
|
|
strace
|
|
awk
|
|
grep
|
|
sed
流编辑器,用于处理文本,引号内为正则表达式
|
|
shell
可以用shellcheck
命令检查shell脚本错误
基础例子
|
|
函数
|
|
基础变量
|
|
循环
|
|
条件
|
|
匹配
|
|
vim
格式设置
|
|
打开两个文件:Vim file1 file2 -O
寄存器
- 使用
"
指定寄存器,包括`a-z`` - ``“bdd
删除当前行到寄存器b中,
:reg a`查看寄存器a内容 - 复制专用寄存器
"0
宏
用于批处理,录制:q{register}
开始录制到寄存器,q
结束录制
回放:@{register}
回放命令
在命令模式下::normal @a
全选文本内容后执行a寄存器中命令
Normal
字符前插入:i
;字符后插入:a
行首插入:I
;行末插入:A
换行插入:o
;行上另起一行插入:O
移动:hjkl
左下上右,w
移动到下一个单词开头,b
回到上一个单词开头
撤消:u
,取消撤消:ctrl + R
快速回跳到原位:ctrl+o
删除:x
删除后一个字符,daw
删除一个单词,d
和x
可搭配数字执行多次:3x
or 3daw
查找:/
或?
进行前向或反向搜索,n/N
跳转到下一个或上一个匹配,*
或#
进行当前单词前向和后向匹配
复制:y
,yy
复制一行,y2w
复制2个单词,剪切:x
,粘贴:p
水平移动:0
移动到行首第一个字符,$
移动到行尾
垂直移动:()
句子间移动,{}
段落间移动
修改:r
替换一个字符,s
替换并进入Insert模式,c搭配:ct"
删除""
内的内容
行间搜索移动:f{char}
移动到char字符上,用;
和,
搜索下一个和上一个,t{char}
移动到char前一个字符,F{char}
反过来搜前面的char字符
页面移动:gg/G
移动到文件开头/结尾,H/M/L
跳转到屏幕开头/中间/结尾;ctrl+u
, ctrl+f
上下翻页;zz
把屏幕置为中间
使用
ci
加上一个'
或<
或"
或《
都可以删除以此符号包含的文本并进行替换输入
重复之前的操作:.
光标设置
m{a-z}
文件内标记,文件内跳转,设置标记名为a到z中一个m{A-Z}
标记文件,不同文件间跳转
光标跳转
- ``{mark}` 跳转到标记位置
'{mark}
跳转到标记位置所在行的首字母
文本对象操作
|
|
- number次数
- command命令,
d
删除,c
替换,y
复制 - text object文本对象,
w
单词,s
句子,p
段落
可以用a
或i
加上字符`(, <, {, [, “, ``等选择包括中的内容
Command
显示行号::set nu
全局替换::% s/被替换单词/替换为的单词/g
替换命令::[range]s[ubstitute]/{pattern}/{string}/[flags]
- range:范围,
:10,20
表示10-20行,%
表示全部 - pattern:要替换的模式,string替换后文本
/
为空 - flags:
g
全局,c
确认(替换前会进行确认),n
报告匹配到的次数而不替换
回到上一个命令:: + Ctrl + P
显示当前文件名::r! echo %
显示当前全局路径::r! echo %:p
|
|
跳转到第n行::n
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
:选中当前单词及后空格
代码左右移:V & Shift + < >
Insert
删除上一个字符:ctrl+h
删除上一个单词:ctrl+w
删除当前行光标前内容:ctrl+u
跳转到最后一次编辑的地方并进入Insert模式:gi
补全:ctrl + n
和 ctrl + p
补全单词,ctrl + n
和ctrl + p
上下移动选择
Makefile
格式
\
用于将一行分解为多行
|
|
模式规则
|
|
自动变量
|
|
|
|
预定义变量
|
|
伪目标
|
|
清理:使用make clean
|
|
函数
|
|
GDB
|
|