重定向,管道和通配符:
重定向:把命令的执行结果写入到文件中
cmd > filename 如果文件存在则清空后写入,文件做不存在则创建后写入
cmd > > fliename 如果文件存在则追加写入,文件不存在则创建写入
管道:相当于一根管子连通两个命令,一个命令的执行结果当做另一个命令的数据源
find / | grep “key” 查询所有文件命令中包含key的文件
通配符:可以进行模糊执行命令
? : 代表任意的一个字符
* : 代表任意的多个字符 【rm -rf /*】
终端的配置文件:
打开终端配置文件 gedit ~/.bashrc,在末尾另起一行添加
#精简命令提示符
PS1=’\u@\w$ ’
# 新建目录并进入
mk()
{
mkdir $1 && cd $1
}
保存退出,命令输入
source ~/.bashrc 重新加载配置文件,使修改生效
简单的脚本:
脚本:由系统命令组成的带执行权限内的文本文件,执行脚本文件时会被命令解释器读取并执行
新建脚本文件 .sh结尾
chmod +x filename
./filename
打开练习打字软件:
typespeed
sudo apt-get install typespeed
注意:窗口必须至少80*24
vim文本编辑器:
可在终端下采用纯键盘操作的一款文本编辑器,号称编辑器之神,可以升级(二次开发),可以扩展(安装插件)。
基本用法:
进入vim:vim filename 文件存在则打开,不存在则创建
输入i : 进入编辑模式,编辑代码
保存退出 : 按Esc键退出编辑模式,输入ZZ保存退出
vim三大模式:
正常模式:一半般用来阅读文件,或者使用快捷键快速地修改文件
插入模式: 一般用于编辑文件,输入内容
行底模式:一般用于对vim进行配置,或者执行一些高级操作
切换模式:
正常 输入i -> 插入
插入 Esc -> 正常
正常 输入: -> 行底
行底 Esc -> 正常
正常模式下的常用操作:
光标移动:
h左,j下,k上,l右
gg光标跳转到第一行
G光标跳转到最后一行
n数字 加回车 光标向下跳转n行
n数字 - 光标向上跳转n行
nG 光标跳转到第N行
vim filename +n 直接进入该文件得第几行
home 光标跳转到行首
end 光标跳转到行尾
PgUp 向上翻一页
PgDn 向下翻页
删除代码:
x 删除一个字符
nx 删除n个字符
dw/de 删除一个连续得字符串,区别是删不删空格
d$ 从当前光标处删除到行尾
d^ 从当前光标处删除到行首
dd 删除光标所在处一行
ndd 删除n行
dG 从当前光标处删除到末尾
dgg/d1G 从当前光标处删除到开头
复制代码:
yy 复制一行
nyy 复制n行
p(小写) 黏贴在光标的下面
P(大写) 黏贴在光标的上面
移动代码:
删除的内容还储存在缓冲区,可以使用p\P粘贴,实现移动代码的效果
替换代码:
r 替换一个字符
cw 替换一个单词
R 进入替换模式
xp 实现调换两个字符的顺序
撤销操作:
u(小写) 撤销上一次操作
U(大写) 撤销一行的所有操作
Ctrl+r 取消撤销操作
插入模式:
i(小写) 在当前光标前进入插入模式
I(大写) 光标跳转到行首,进入插入模式
a 在当前光标后进入插入模式
A
Ctrl+p 自动补全命令,取变量名、函数名时尽量开头不同
Ctrl+i 自动缩进,相当于Tab键功能
Ctrl+j/m 相当于回车功能
Ctrl+c 相当于Esc功能
自定义模式:
Ctrl+z 保存退出任何模式都能进行
Ctrl+x 保存并编译代码,然后输出结果
行底模式下操作:
w 写入
q 退出
wq 保存退出
q! 强制退出
x 保存退出
x 加密,set key= (空格) , 删除密码,注意:wq保存退出才生效
!cmd 执行系统命令
/key 查询命令,n往下查询,N往上查询
%s/旧的内容/新的内容 把旧的内容全部替换成新的内容
set nu 显示行号
set nonu 不显示行号
>n n行代码向右缩进
<n n行代码向左缩进
注意:在行底模式下对vim的设置只是临时有效,如果想要长期有效,需要把这些设置语
句写入配置文件(~/.vimrc)
对vim的配置:vim ~/.vimrc
对vim的学习:
1.适可而止
2.需要适应一段时间,大概两周
3、Ubuntu 系统自带的vim教程 vimtutor
虚拟机配置环境:
" 显示行号
set number
" 设置Tab键的宽度
set tabstop=4
" 设置自动缩进
set autoindent
" 设置智能缩进
set smartindent
" 设置不备份
set nobackup
" 设置不产生临时文件
set noswapfile
" 在插入模式下快速地返回正常模式
imap jj
" 定义保存退出函数
func! SaveExit()
exec “wq”
endfunc
" 映射Ctrl+z键调用保存退出函数
map :call SaveExit()
imap :call SaveExit()
vmap :call SaveExit()
" 定义保存编译并执行代码函数
func! ComplieCode()
exec “w”
if &filetype == “c”
exec “!gcc % && ./a.out”
endif
endfunc
" 映射Ctrl+x键调用编译并执行函数
map :call ComplieCode()
imap :call ComplieCode()
vmap :call ComplieCode()
" 定义添加头文件和Main函数
func! InsertMain()
if &filetype == “c”
call setline(1,"#include <stdio.h>")
call setline(2,"")
call setline(3,“int main(int argc,const char* argv[])”)
call setline(4,"{")
call setline(5,"\t")
call setline(6,"}")
exec “5”
endif
endfunc
map :call InsertMain()