课外延伸:
正则表达式
VIM配置:
Linux下设置.vimrc实现vim自动补全括号等功能
Vim的终极配置方案,完美的写代码界面! ——.vimrc
一、BASH
1、bash shell提示符:
检查下系统的shell
cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/bin/zsh
/usr/bin/zsh
shell下默认模式bash
[用户名@主机名 目录名]角色
如果太长想要更改主机名 : ~/etc 自行百度 ubutun18.04 更改主机名
步骤:# sudo vim /etc/hostname #sudo reboot
二、文件基本管理
1、有关文件的操作 命令行
查看文件类型方法:
state xxx.c //查看文件详细的类型+内容
history
光标上下键
history命令 | 作用 |
---|---|
Ctrl+r | 搜索历史命令(输入一段某条命令的关键字:必须是连续的) |
!220 | 执行历史命令中第220条命令· |
!字符串 | 搜索历史命令中最近一个以xxxx字符开头的命令,例如!ser |
!$ | 引用上一个命令的最后一个参数 |
!! | 执行上一条命令 |
ls:查看文件/目录信息
用法:ls [选项]… [文件]…
ls 选项 | 作用 |
---|---|
-l | 显示不被隐藏的所有文件与文件夹的详细信息,并成列表显示 |
-a | 显示当前目录下的所有文件及文件夹,其中包括所有被隐藏的文件和文件夹 |
-al | 显示的所有文件与文件夹的详细信息,包括所有被隐藏的文件和文件夹,并成列表显示 |
ll |
cp:复制
用法:cp [选项]… [-T] 源文件 目标文件
或:cp [选项]… 源文件… 目录
或:cp [选项]… -t 目录 源文件…
cp 选项 | 作用 |
---|---|
-R | 递归复制目录及其子目录内的所有内容 |
rm :删除
用法:rm [选项]… [文件]…
rm [文件]…
rm 选项 | 作用 |
---|---|
-rf | 递归删除、可以删除有文件的文件夹 |
-f | 忽略不存在的文件和参数,永远不会提示 |
-d | 删除空目录 |
-i | 每次移除前提示 |
rm FILENAME | 直接删除文件 |
touch:创建文件
touch [选项]… 文件…
touch 文件
touch 选项 | 作用 |
---|---|
-d | 使用指定字符串表示时间而非当前时间 |
diff:逐行比较<文件们>
用法:diff [选项]… 文件们
diff 选项 | 作用 |
---|---|
无 | 以正常的 diff 方式输出 (默认) |
-s | 当两个一样时仍然显示结果 |
-q | 只有在文件不同时报告 |
mv:为每个已存在的目标文件创建备份/改名
用法:mv [选项]… [-T] 源文件 目标文件
或:mv [选项]… 源文件… 目录
或:mv [选项]… -t 目录 源文件… 或:mv 文件 文件
mv 选项 | 作用 |
---|---|
无 | 为每个已存在的目标文件创建备份 |
-i | 覆盖前询问 |
-f | 覆盖前不询问 |
file
ps axf //查看后台进程
2、有关目录的操作
mkdir
rmdir
3、查看文本文件内容:
cat less more head tail grep
cat:在文件不打开的情况下查看文件内容
cat PATHNAME
cat -n PATHNAME //查看行号查看文件内容
cat -b PATHNAME //只现实文件的有效行
more:查看文件 能显示当前文件观看进度
more prime.c
enter一页一页查看
空格键一页一页查看 不可以用上下见键盘
head:打印每一个文件的前十行
head -n 3 PATHNAME //打印文件的前三行
tail:默认打印后十行
tail -n 3 PATHNAM
grep:在文件不打开的情况下检索文件关键字
用法: grep [选项]… PATTERN [FILE]…
grep '^root' /etc/passwd //^以什么开头
grep 'bash$' /etc/passwd //$以什么结尾
grep '^$' /etc/abc.txt //查找文件中的空行
grep -v '^$' /etc/abc.txt //删除文件中的空行
ls -l 目录 | grep xxx //查看该目录下关于xxx的目录项
wc:打印字符 字节 以及行数
用法:wc [选项]… [文件]…
或:wc [选项]… --files0-from=F
选项 | 作用 |
---|---|
-c | 打印字节计数 |
-m | 打印字符计数 |
-l | 打印打印换行计数字符计数(行数) |
-w | 打印单词计数 |
4、别名
三、VIM编辑器
1、VIM编辑器配置:
ls /etc/vimrc //配置文件 => cp /etc/vim/vimrc ~/.vimrc 配置优先选择自己创建的vimrc
/etc/vimrc 影响所有系统用户(不要修改这个文件)
~/.vimrc 影响某一个用户(当前用户下以自己创建的vimrc主题为主)
set nu 显示行号
set ic 不区分大小写
set ai 自动缩进
set list 查看控制字符,拍错时候会用到,查看有没有错误的换行和空格
set nonu 取消行号
set noic 区分大小写
set noai
set tabstop=4 原有tab空格数也改动(set ts=4)
set softtabstop=4 原有tab空格数不改动 新内容改变
[https://blog.csdn.net/amoscykl/article/details/80616688]:
2、命令模式:先Esc退出到查看模式
a. 光标定位:
hjkl 左下上右
0 行首
$ 行尾
gg 首行(1G)
G 末行
nG 进入第n行
查找-快速定位:
/str 正向查找(从上往下找) n 找下一个 N 回到上一个
/^d 查找匹配以d开头的行
/txt$ 查找匹配以txt为结尾的行
3、文本编辑:
复制 yy 3yy ygg(从首行复制到当前行) yG(从当前行复制到末行) (以行为单位)
删除|剪切 dd 3dd dgg dG dw(一个单词) (以行为单位)
粘贴 p P
删除光标所在的字符 x
从光标处删除到行尾 D 等同d$
撤销 u
重做 Ctrl+r 撤销撤回
替换一个字符 r
4、进入其它模式:
a 进入插入模式 光标所在位置的下一个字符进入插入模式
i/I 进入插入模式 光标当前位置进入插入模式 I-从行首开始编辑
o/O 进入插入模式 光标所在行下一行进入插入模式 O-在光标位置上一行进行编辑
A 进入插入模式 在光标所在行的行尾进入插入模式
: 进入末行模式
^v 进入可视块模式
R 进入替换模式
5、末行模式
a. 保存退出
:10 进入第10行
:w 保存 另存为
:q 退出
:wq 保存并退出
:w! 强制保存
:q! 不保存并退出
:wq! 强制保存退出
:x 保存并退出(等同wq)
:wqa 保存全部退出
:qa! 不保存全部退出
6、查找替换
:范围 s/old/new/选项
:1,5 s/Note/yyy/ | 从1-5行的Note 替换为yyy |
---|---|
:5,$ s/Note/yyy/ | $表示最后一行 |
:1,$ s/to/uplooking/g | 等同于 :% s/to/uplooking/g %表示全文 g表示全局 |
:4,9 s/^#/ | 4-9行的以#开头的替换为空 |
:% s/^/#/ | 给所有行加上#注释掉 |
:% s#/dev/sda#/var/ccc#g | 为了避免混乱,结构中的/换成一个字符#或者是*都是可以的 |
:,8 s/to/uplooking/ | 从当前行到第8行 |
7、读入文件/写文件
:w | 另存为 |
---|---|
:w /aaa.txt | 另存为aaa.txt |
:1,3 w/2.txt | 将第一个第三行另存为根下的2.txt文件 |
:r /etc/hosts | 在光标所在行的下一行读入一个文件 |
:5 r /etc/hosts | 读入文件到第5行后 |
:e /etc/hosts | 不退出vi,编辑另外一个文件 |
同时打开多个文件
vim -O /etc/hosts /etc/grub.conf ^w 按两次切换 O是垂直分割 o是水平分割 切换的方式一样
vimdiff grub.conf /etc/grub.conf 对比文件,^w 按两次切换
vim -p /etc/hosts /etc/grub.conf ^PgUp, ^PgDn 以文件夹的形式展开
Ctrl + ww 切换文件编辑
VIM 快捷键
命令 | 作用 |
---|---|
Ctrl+c | 终止前台运行的程序 |
Ctrl+z | 将前台的程序挂起到后台 |
Ctrl+d | 退出,等价于exit |
Ctrl+l | 清屏(clear) |
Ctrl+a | 光标移到命令行的最前端 |
Ctrl+e | 光标移到命令行的后端 |
Ctrl+u | 删除光标前所有字符 |
Alt+. (Esc .) | 引用上一个命令的最后一个参数,等价于!$ |
alt+‘1-9’ | 切换标签 |
reset | 屏幕乱码,重置屏幕 |
Alt+Tab | 任务窗口切换 |
Ctrl+空格 | 切换输入法 |