vim常用快捷键
进入编辑
o 移动到下一行,并处于编辑状态
O 当前光标上一行,并处于编辑模式
i 当前光标下处于编辑模式
A 当前行结尾处于编辑模式
按行操作
shift + g 到文件结尾
gg 到文件开头
ngg 移动到第n行
n+回车 从当前行算起,向下移动n行
行内操作
$ 行尾 end键
0 开头 home键 ^
复制粘贴删除
yy:复制当前行
nyy:复制当前行起复制几行
p:粘贴
yyp:复制当前行并粘贴
dd:删除当前行
ndd:当前行为起点,删除n行
u:撤销
行号
:set nu 显示行号
:set nonu 取消行号
搜索
/ 搜索
n 继续向下搜索,N反向搜索
?80 问号回车向上查找
替换
:%s/A/B/g 把A换成B 批量替换
:%s/dd/ff/g
终端下常用的快捷键
TAB键:自动补全,连续按3下
Ctrl+a 光标切到命令行开头
Ctrl+e 光标切到命令行结尾
Ctrl+u 剪切光标前的内容
Ctrl+k 剪切光标后的内容
Ctrl+y 粘贴剪切的内容
Ctrl+Insert 复制
shift+insert 粘贴
Ctrl+c 终断当前行
Ctrl+l 清屏(clear)
Ctrl+d 退出当前窗口
打包、压缩、解压
tar 格式:tar 选项 包名 目录/文件名(压缩)
-z 压缩
-c 创建
-v 输出过程信息
-f 指定文件
-tf 查看包里的内容
-h 打包软连接对应的文件
--exclude 排除文件 --exclude=被排除文件
-p 打包的时候保持属性 类似于(cp -p)
-j 以bzip格式打包
-X 把要排除的文件放到文件列表里 包名称后面直接跟要排除的文件名
tar 解压
-x 解压
zxvf 解压 简写xf
用户、用户组、权限
useradd 添加用户
groupadd 添加用户组
userdel+用户名 删除用户
groupdel+组名 删除组
id + 用户名:查看用户ID及组ID
passwd+用户名 设置用户密码
chown root:root + 文件名 修改文件所属的用户用户组
chmod 修改文件权限
+x 添加执行权限 +好表示添加
- 去掉某个权限
r 读 对应数字4
w 写 对应数字2
x 执行 execute 对应数字1
chmod -R 递归
用户,用户组,其他用户
u 用户
g 用户组
o 其他用户
yum、rpm
yum
yum install + 名称 安装软件
yum update 升级系统
yum upgrade 升级系统
yum search + 名称 查找包
yum grouplist 查看包组
yum groupinstall 安装组包
rpm
-qa 查询软件是否安装 query 查询的意思,a就是all
-ql 显示软件包的内容 list列表
-ivh
-e 删除软件包
-qf+绝对路径 显示命令或软件属于哪个软件包
通配符、特殊字符、正则
通配符
* 代表所有,标示所有
? 表示任意单个字符
[abcd ] 表示括号里的任意单个字符
[!abcd ] 表示不匹配括号里任意字符,取反
[^abcd ] 表示不匹配括号里任意字符,取反
特殊字符
‘ ’单引号 所见即所得 引用的内容不会发生变化
“ ”双引号 最经常使用的,可以对命令和变量进行解析(需要用反引号引起来,或者使用 $())
` ` 反引号 引用的命令会被解析,一般用来引能知行的命令,命令要解析,就用反引号
不加引号一般是指不加单引号和双引号,等同于双引号。适合于连续的数字。
; 表示一个命令的结束。也是命令间的分隔符
# 注释内容
$ 去变量的值,也是正则的结尾符
{ } 生成序列
| 表示管道,管道符
重定向
1 标准输出
2 标准错误输出
0 标准输入
> 标准输出重定向 把后面接的文件内容清空后,然后放入自己的内容
>> 追加重定向 不清空内容,在文件尾部追加内容
2> 错误输出重定向,只放入命令报错的信息
2>>错误追加重定向
0<或 < 标准输入
0<< 或 << 追加标准输入
2>&1 正确的和错误的都放在同一个文件里面
& 正确的和错误的都放在同一个文件里面
&& 命令行 前面的执行成功才会执行后面的
正则表达式
^oldboy 表示以oldboy开头,^表示以什么开头
oldboy$ 表示以oldboy结尾,oldboy可以换任意单词
^$ 表示空行 以结尾开头,那就是空行
* 重复前一个字符0到多次,注意与通配符区别
. 代表『一定有一个任意字节』的意思,有一个任意的字符
\ 转义字符,让有意义的字符没有意义(只表示本身)
.* 代表所有,任意字符重复0或0次以上,那就是匹配所有了
^.* 以所有字符开头,匹配所有内容
[ ] 匹配[ ]集合内的任意一个字符
[^abc] 匹配不包含^后的任意字符
扩展正则(应用场景grep -E;egrep;grep +)
+ 匹配前一个字符1次或1次以上
[ :/ ]+ 匹配括号内的 : 或 / 字符1次或者1次以上
? 匹配前一个字符0或1次
| 表示或者,机同时过滤多个字符串
() 后向引用,前面用小括号括起来的内容,后面用 \1 再取出来
a{n,} 匹配前一个字符最少n次
a{n} 匹配前一个字符正好n次
a{,m} 匹配前一个字符最多m次
三剑客grep、sed、awk
grep grep 文本过滤工具,将过滤内容的整行输出
-v 把不想要的排除
-i 不区分大小写过滤
-n 对搜索到的内容显示行号,显示原文件的行号
-o 只输出匹配的内容
--color 对所匹配的内容显示颜色,默认是红色
-w 按照单词过滤
-E 过滤多个字符串
-A 匹配过滤内容之后的N行
-B 匹配过滤内容之前的N行
-C 匹配过滤内容前后的N行
Sed 命令 Stream Editor (字符流编辑器)
选项
-n 取消默认输出,常与sed内置命令p连用
-i 直接修改文件内容,而不输出到终端,不用-i是输出修改,不修改文件
-e 允许多次编辑
内置命令
a 全拼append,表示追加文本 >> ,在指定的行后添加一行或多行文本
d 全拼delete,删除匹配文本的行
i 全拼insert,修改源文件
p 全拼print,打印输出匹配行的内容
替换:'s#oldboy#oldgirl#g'
过滤:sed -n '/oldboy/p' oldboyedu.txt
删除:sed '/oldboy/d' oldboyedu.txt
替换多个字符串:sed -e 's#oldboy#oldgirl#g' -e 's#49000448#228877690#g' oldboyedu.txt
第二行后追加:sed '2a I am likaiyu \nI like oldgirl' oldboyedu.txt
awk 对复杂的内容取列
-F 指定分隔符,如果不加分隔符,默认是空格
$1表示第一列 $2表示第二列 $NF取最后一列 $(NF-1)倒数第二列
NR==数字 表示取第几行
NR有多种形式 NR==1,NR==2 第一行和第二行
NR>=1&&NR<=5 取第一行到第五行的内容
awk过滤功能
格式:awk ‘/要过滤的内容/ ’文件
取IP地址
ifconfig |sed -n '2p' | awk -F ":" '{print $2}'|awk '{print $1}'
ifconfig eth0 | awk -F "[: ]+" 'NR==2{print $4}'
ifconfig eth0 | sed -n '2p' | awk -F ":" '{print $2}'|awk -F " " '{print $1}'
某些高大上命令
tr按字符替换
tr "被替换内容" "要替换内容" < 文件
find 查找文件或目录(find 路径 参数 选项)
find . -type(按文件类型查找)
f 文件
d 目录
c
b
l
s
find . -name(按文件名称查找)
-o 或者
!取反
find 按时间查找
-mtime 按修改时间查找
-atime 安访问时间查找
-ctime 按改变时间查找
+7 7天前
7 7天
-7 最近7天
-exec 对找到的内容进一步处理
{ }中放前面查到的内容,结束的时候用 ; 结尾
wc 查看文件行数 单词 字节
-l --lines 一个文件有多少行
-c --bytes 字节
-m --字符 chars
-w --words 单词
-L --max-line-length 最长行的长度
cut 切割 简单的按列取内容
-d 指定分割符 把前面内容和后面内容分割开来的
-f 显示哪一列
-c char 取字符
xargs 从标准输入建立和执行命令 分组处理
-n 分几行输出
lsattr 查看文件隐藏属性
chattr 修改文件隐藏属性
+a append 只能追加
+i immutable 无敌
crontab
-l 显示当前用户的定时任务
-e 编辑当前用户的定时任务
* 每 的意思
/n n数字 */10 * * * * 每隔/10分钟 /隔
- 从哪里来到哪里去,连贯,连续时间
, 分割,不连贯的,没联系的用逗号
信息属性查看显示
uname 显示linux系统信息
-n 查看主机名
-r 查看内核版本信息
-m 系统是32位还是64位
-a 查看全部信息
hostname 查看修改主机名
file 查看文件属性
stat 查看文件目录详细属性
df 查看分区信息
-h 以人类可读方式查看
-i 查看inodes大小
du 查看文件大小
-h 人类可读
-s 概括
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
ps -ef 显示正在运行的进程信息
chkcongfig 检查是否开机自启动
uptime 查看系统负载
date 查看当前时间
-s 修改时间
+%F 显示日期
还有一大堆显示看man手册吧,太特么多了
hwclock -w 修改时间后写入硬件
3W各种查各种看
whoami 查看当前用户
whereis + 命令 查看执行命令所在路径
-b 查二进制
which +命令 查看命令绝对路径
运行级别查看及切换
runlevel 查看当前运行级别
init 切换运行级别
0 停机
1 单用户模式
2 没有NFS的多用户模式带
3 完全多用户模式
4 保留
5 X11桌面模式
0 重启
查看IP,子网掩码,重启网络
ifconfig 查看网卡配置信息 后面加端口名称 ifconfig eth0
ip a (ip address)查看IP地址 可以加端口名称
route -n 查看子网掩码
/etc/init.d/network restart 重新启动网络
service network restart 重新启动网络
关机重启命令
shutdown -h now 立即关机
shutdown -r now 立即重启
reboot 重启
init 0 立即关机
init 6 立即重启
poweroff 关机
halt 关机
exit 退出
logout 注销
基础操作命令
ls 列出目录内容
-l 以长格式列出目录内容
-a 列出目录中所有内容
-h 以人类可读方式列出
-d 列出目录
--color=auto 对列出内容增加颜色(默认红色)
-i 显示文件索引号
-p 在文件夹后面加 / 表示目录
--time-style=long-iso 改变详细信息中的时间格式
-F 在列出的文件末尾加字符说明文件类型,@符号链接,/目录,| fifos ,=套接字
cd 切换目录
~ 用户家目录
. 当前目录
.. 上级目录
- 上一次所在目录
mkdir 创建文件夹
-p 递归创建文件夹
touch 创建文件
cp 拷贝复制
-r 递归拷贝
-a 包含所有属性拷贝(-pdr)
-p 含文件属性拷贝
mv 移动或重命名
rm 删除 (慎用)
-f 强制删除不提示
-r 删除文件夹
echo 显示输出
-n 不换行输出
-e 激活转义字符
\n 换行
\t 相当于tab键
cat 查看文件内容
-n 显示行号
-A显示文件属性
more 分页显示文件
less 分页显示文件
head 查看文件头部内容
-n 查看几行
tail 查看文件尾部内容
-n 查看几行
-f 动态显示
pwd 查看当前路径
tree 树状结构显示目录
-L 显示几层
-d 只显示目录
别名
alias 添加别名
unalias 取消别名
dos2unix 将Windows下编辑的文件转换成linux格式
ln
ln 创建硬链接
ln -s 创建软链接
updatedb更新mlocate.db 数据库
locate 通过名字查找文件
ntpdate ntp1.aliyun.com
向服务器同步时间
参考资料