Linux常用命令速查
# vim 命令模式快捷键,区分大小写
快捷键 | 含义 |
---|---|
/abc | 向下查找 |
?abc | 向上查找 |
n | 下一个结果 |
yy | 复制 |
4yy | 向下复制四行 |
p | 粘贴 |
u | 撤销上一步操作 |
0 | 到行首 |
$ | 到行尾 |
g | 到文本开头 |
G | 到文本结尾 |
H | 到屏幕顶部 |
M | 到屏幕中间 |
L | 到屏幕结尾 |
dd | 删除光标所在行 |
D | 删除光标到行尾的文字 |
ctrl + v | 可视块模式. 可视块中上下左右选择文本, d键进行删除,大写I进入编辑模式, 两下ESC生成多行代码 |
vim的swp文件可以用vim -r 将swp文件中的内容恢复到原文件中
# 重定符号
符号 | 含义 |
---|---|
> | 覆盖输出 |
>> | 追加输出 |
< | 输入, 把内容传入某个命令。 cat < text |
<< | cat > test.txt << EOF ; cat > test.txt负责创建文件, << EOF负责开启输入 |
# cat 参数
cat -n abc.go
1
tac 命令可以逆序查看
# uniq 去重复
cat test.txt | uniq -c #统计去重复后每行出现的次数
1
# WC 统计文件
wc -l test.txt # 统计文件行数
1
# ln 软连接
# cut 分割命令
参数 | 含义 |
---|---|
-c | cut -c abc.txt |
-d | Cut -d ":" -f 2-5 abc.txt |
# find
参数 | 含义 |
---|---|
-ok rm {} | 找到文件后执行ok后面的命令,{}代表找到的文件 |
-type | 指定搜索的文件类型 |
-maxdepth 3 | 指定搜索的文件夹层级 |
-atime 2 | 指定访问时间范围。还有modifytime。updatetime |
-size | 指定文件大小 |
# xargs 管道命令
xargs命令是给其他命令传递参数参数的一个过滤器, 也是组合多个命令的一个工具。
他把一个数据流分割成一组数据,以方便过滤器和命令进行处理。
简单说就是吧其他命令给他的参数传递给后边的命令。
参数 | 含义 |
---|---|
-d | 为输入的数据指定一个分割符,默认分割符是空格 |
-i | -i {} 用{}代替传递过来的数据 find . -name "*.txt" | xargs -i mv {} ./temp/ ;这个命令是指讲find找到的txt文件通过xargs传递给mv命令 |
-I | -I 可以用一个变量名接受传递过来的数据 find . -name "*.txt" | xargs -I strfile mv strfile ./ ;这个命令是将find找到的文件通过strfile变量接受, 然后交给mv命令执行 |
# tar 打包命令
参数 | 含义 |
---|---|
-z | 使用gzip, 不使用gzip只会打包不会压缩 |
-c | 打包。tar -cf test.tar /opt/abc/ |
-x | 解包 |
-v | 显示过程 |
-f | 指定文件 |
-t | 显示tar中内容 |
# shred 彻底删除文件,不可恢复
shred -u abc.go # 向文件中覆盖写入随机数据
1
2
2
# 用户管理
命令 | 描述 |
---|---|
useradd --help | 新建用户 |
passwd | 修改密码 |
groupadd | |
id |
不要su切换用户, 他不会切换环境变量,要使用su - 切换
# sudo 越权执行命令
普通用户要使用sudo还需要root用户通过visudo给普通用户增加sudo权限
# chown 修改文件所属
chown uname abc.go
chown :gname abc.go
chown uname:gname abc.go
chown -R #递归修改
1
2
3
4
2
3
4
# umask 文件权限掩码
linux中默认新建文件的最大权限是666,新建文件夹的权限是777。
umask用来防止文件、文件夹创建时权限过大。
新文件创建时,最初的权限有文件权限掩码决定。
umask 命令查看当前权限掩码
新建文件的默认权限计算公式:
最大权限 - umask = 新文件权限
666
-022
644
1
2
3
4
2
3
4
umask可以在/etc/profile中修改
# chattr 修改文件读写权限
chattr用于修改文件的扩展属性,比chmod的rwx权限更底层。
chattr +a /tmp/abc.txt
chattr -a /tmp/abc.txt
- a:只能向文件中添加数据,不能删除
- A:不允许修改最后访问时间
- i: 文件不能被删除,重命名,修改内容。
lsattr命令查看文件的扩展属性
# 通配符
符号 | 字符 |
---|---|
* | 0-n个字符 |
? | 匹配有且只有一个字符 |
[abcd] | 匹配abcd中任意一个字符 |
[a-z] | 匹配a-z之间任意一个字符,可以写a-z,A-Z,1-9 |
[!abcd]或【^abcd】 | 取反 |
# 特殊引号
符号 | 含义 |
---|---|
单引号 | 引号中文字不经处理直接输出 |
双引号 | 引号中如果有特殊符号,变量表达式会被执行解析后再输出 |
没有引号 | 如果双引号中内容连续就可以省略双引号, 但如果有特殊字符,空格,变量还是需要加上引号 |
反引号 | 用于引用命令的结果。等同于$(命令),如echo date |
# 输入输出
- 标准输入符 < 或 << ;文件描述符是 0
- 标准输出符 > 或 >> ;文件描述符是 1
- 错误输出符 > 或 >> ;文件描述符是 2 2> 2>>
特殊重定向与合并重定向
java -jar app.jar > /dev/null 2>&1 # 把命令的标准输出和错误输出都写入到/dev/null中
1
# 正则
正则表达式作用于每一行数据。
# 普通正则
符号 | 含义 |
---|---|
^ | 用在最左侧,^body: 表示以某个单词开头 |
$ | 用在最右侧,head$. 表示以某个单词结尾 |
. | 匹配有且只有一个字符, (或者说任意字符) |
\ | 转义字符 |
* | 匹配前一个字符连续出现0次或多次 |
.* | 组合符,匹配所有内容 |
^.* | 组合符,匹配任意多个字符开头的内容 |
.*$ | 组合符,匹配任意多个字符结尾的内容 |
[abc] | 匹配集合内任意一个字符。 [a-z] |
[^ abc] | [abc]的取反 |
# 扩展正则
符号 | 含义 |
---|---|
+ | 前一个字符出现 1 次或多次 |
[./]+ | 括号内字符出现 1 次或多次 |
? | 前一个字符出现 0 次或 1 次 |
| | 逻辑运算。 或 |
() | 分组,括号内的表达式为一个整体 () | () grep -E "g(oo|la)d" grep -E "(l..e).*\1" |
a{n,m} | 前一个字符出现最少n 次,最多 m 次。a {n,}. a{,m}. a{n} |