Linux常用命令
1. 文件相关
-
查看文件属性
ls -l 或 ll
示例
-rw-------. 1 root root 0 Oct 10 10:27 test.sh
-
文件权限
r
读(read)w
写(write)x
执行(execute)
rwx
对应421,可缩写为7
示例r--:4 -w-:2 --x:1 rw-:6 r-x:5 -wx:3 rwx:7
-
顺序属性
0d
代表目录-
代表文件
1-91-3
文件所有者(user)4-6
同组用户(group)7-8
其他用户(others)示例
test为目录,所属用户root权限为rwx,用户组、其他用户没有权限。 d rwx --- ---. 2 root root 4096 Oct 10 12:08 test 0 123 456 789
-
创建文件
touch file
示例
host-192-168-7-123: # touch a.sh host-192-168-7-123: # ll total 0 -rw-------. 1 root root 0 Oct 10 07:19 a.sh
-
创建文件夹
m
配置权限p
创建文件夹路径mkdir [-mp] dir
示例
host-192-168-7-123: # mkdir -m 111 -p d1/d2 host-192-168-7-123: # cd d1/ host-192-168-7-123:/d1 # ll d--x--x--x. 2 root root 4096 Oct 11 03:09 d2
-
删除文件
r
递归删除f
忽略不存在的文件,不会出现告警rm [-rf] file
示例
host-192-168-7-123: # rm -rf test.sh
-
复制文件
i
若文件已存在,则先询问r
递归复制文件目录cp [-ir]
示例
host-192-168-7-123: # cp test.sh d1/d2/ host-192-168-7-123: # cd d1/d2/ host-192-168-7-123:/d1/d2 # ll -rwx------. 1 root root 837 Oct 11 03:16 test.sh
-
移动文件
i
若文件存在,先询问f
直接覆盖移动mv [-fi] source tagetdir
示例
host-192-168-7-123: # mv -f test.sh d1/d2/ host-192-168-7-123: # cd d1/d2/ host-192-168-7-123:/d1/d2 # ll -rwx------. 1 root root 837 Oct 11 03:16 test.sh
-
改变文件属主(user)
change owner
-R 改变文件夹下所有文件的属主chown [-R] 属主名 文件名
示例
host-192-168-7-123: # ll -rw-------. 1 root root 0 Oct 10 13:05 test.sh host-192-168-7-123: # chown yc test.sh host-192-168-7-123: # ll -rw-------. 1 yc root 0 Oct 10 13:05 test.sh
-
改变文件属组(group)
change group
-R 改变文件夹下所有文件的属组chgrp [-R] 属组名 文件名
示例
host-192-168-7-123: # ll -rw-------. 1 root root 0 Oct 10 13:05 test.sh host-192-168-7-123: # chgrp ycg test.sh host-192-168-7-123: # ll -rw-------. 1 root ycg 0 Oct 10 13:05 test.sh
-
改变文件权限
change mode
-R 改变文件夹下所有文件的权限chmod [-R] 属主名 文件名
示例
1. 指定属名(较麻烦) chmod u=rwx,g=r,o=x, file host-192-168-7-123: # ll -rw-------. 1 root root 0 Oct 10 13:15 test.sh host-192-168-7-123: # chmod u=rwx,g=r,o=x test.sh host-192-168-7-123: # ll -rwxr----x. 1 root root 0 Oct 10 13:15 test.sh
2. 使用数字(较简单) 添加权限 + chmod +666 file host-192-168-7-123: # ll ---x--x--x. 1 root root 0 Oct 10 13:18 test.sh host-192-168-7-123: # chmod +666 test.sh host-192-168-7-123: # ll -rwxrwxrwx. 1 root root 0 Oct 10 13:18 test.sh 移除权限 - chmod -333 file host-192-168-7-123: # ll -rwxrwxrwx. 1 root root 0 Oct 10 13:18 test.sh host-192-168-7-123: # chmod -333 test.sh host-192-168-7-123: # ll -r--r--r--. 1 root root 0 Oct 10 13:18 test.sh 指定权限 = chmod =111 file host-192-168-7-123: # ll -r--r--r--. 1 root root 0 Oct 10 13:18 test.sh host-192-168-7-123: # chmod =111 test.sh host-192-168-7-123: # ll ---x--x--x. 1 root root 0 Oct 10 13:18 test.sh
-
查看文件内容
cat
由第一行开始显示文件内容
-a: 列出一些特殊字符 -n: 列出行号,包括空白行cat [-an] resource
用来查看内容不多的文件less
一页一页的显示文件内容less resource
用来查看文件内容较多,但不会变化的文件head
只看头几行
-n: 显示几行head [-n] resource
tail
只看尾巴几行
-n: 显示几行 -f: 持续更新显示内容,按Ctrl + c结束tail [-nf] resource
tail -f xx.log
2. vim的使用
-
vim与vi的关系
vim是vi的加强版,优势主要有语法高亮,多级撤销,兼容vi等。有些地方用不了vim,如docker容器 -
vim
vim resource
i
切换到 输入模式Home/End
移动光标到行首/行尾PgUp/PgDn
上/下翻页
ESC
退出输入模式,切换到 命令模式gg
移动到文档第一行G/nG
移动到文档最后一行/移动到第n行u
撤销修改,支持多级撤销
:
切换到 底线命令模式q
退出呈现,假如修改了文件,则提示
E37: No write since last change (add ! to override)*q!
强制退出,修改不生效wq
保存并退出set number
显示行号
搜索替换
/word
向光标之下搜索word的字符串?word
向光标之上搜索word的字符串n
跳转到下一个匹配word的位置N
跳转到上一个匹配word的位置:n1,n2s/word1/word2/g
将n1-n2行之间的word1替换成word2
3. 文件查找
- find | grep xxx
将当前目录下(包含子目录)文件名
包含xxx的文件过滤出来 - find | xargs grep xxx
将当前目录下(包括子目录)的文件内容
中含有xxx的行过滤出来 - ll | grep xxx
将当前目录下文件名
包含xxx的文件过滤出来