一.Linux系统目录结构
目录
1.查看目录结果命令
tree;目标目录
2.目录结构操作使用方法
(1).绝对路径
表示从根路径开始,进入指定的路径中或子目录中,获取指定的数据资源信息;
(2).相对路径
表示从当前路径开始,进入指定的路径中或子目录中,获取指定的数据资源信息;
3.目录结构中重要文件数据
(1).网卡地址信息配置文件
(2).网络域名服务配置文件
(3).网络本地解析配置文件
(4).开机自动运行脚本或命令文件
(5).系统运行状况日志文件
二.文件与目录操作命令
1.打印工作目录命令
pwd;
-p:显示出实际路径而非使用连接;
2.目录切换目录
cd:返回当前登录用户的家目录;
cd ..:返回上级目录;
cd ~:返回当前登录用户的家目录;
cd -:返回上次跳转到当前目录的目录;
cd/path:切换到指定目录;
3.目录内容查看命令
ls;
-a:显示所有文件(包括以.开头的隐藏文件);
-l:使用详细列表格式显示文件或目录的详细信息;
-h:使用人类可读的格式显示文件大小;
-r:以相反的顺序列出文件;
-t:按照修改时间(最新的文件在前)排序;
-s:按照文件大小排序;
-d:显示目录本身,而非目录下的文件列表;
-i:显示每个文件的inode号;
--color:自动根据文件类型显示不同颜色;
-R:递归列出目录及其子目录中的文件
4.文件查看命令
(1).cat命令
cat;
-n:显示行号;
-v:显示不可打印的字符;
-e:在输出的行尾添加制表符和换行符;
-b:在输出的行尾添加空格而不是制表符和换行符;
-A:类似于-v和-e,但只显示不可打印的字符和行尾的空格;
-t:只显示每行的第一个非空格字符;
-f:按行分割文件,并将每一行分别发送到标准输出;
-l:只显示当前行的行号;
-r:在输出的行尾添加回车符或换行符;
-s:在连续的空白字符中输出一个空格;
(2).more命令
more;
空格:向下翻动一页;
Enter键:向下翻动一行;
q:退出more命令;
/pattern:在文件中搜索指定的模式(pattern);
(3).less命令
less;
空格键或 page Down;向下滚动一屏;
pageUP或b:向上滚动一屏;
/pattern:在文件中搜索指定模式(pattern);
n:找到下一个匹配的搜索结果;
N:找到上一个匹配的搜索结果;
g:跳转到文件的起始处;
G:跳转到文件的末尾;
q:退出less命令;
(4).head命令
head;
-q:隐藏文件名;
-v:显示文件名;
-c《字节》:显示字节数;
-n《行数》:显示的行数;
(5).tail命令
tail;
-f:循环读取,实时监控文件的变化;
-q:不显示处理信息;
-v:显示详细的处理信息;
-c《数目》:显示的字节数;
-n《行数》:显示行数;
(6).nl命令
nl;
-b:指定要将行号添加到的行;
-b a:添加行号到非空行;
-b t:添加行号到所有行;
-b n:不添加行号到所有行;
-n:设置行号的开始值;
-w:指定行号字段的宽度;
-s:设置行号与文本之间的分隔符;
5.创建目录命令
mkder;
-p:递归创建目录,父目录不存在也会创建;
-m:设置新目录的权限;
-v:显示详细信息,包括正在创建的目录和已使用的文件系统类型;
6.创建文件命令
(1).touch命令
touch;
-a:如果文件不存在,创建一个新文件,同时更新访问时间和修改列表;
-m:仅更新文件的修改时间;
-t:使用指定的日期和时间更改文件的访问和修改时间;
(2).echo命令
echo;
-n:在输出内容后不换行;
-e:启用转义字符的解析,\:转义符号;
\n:换行;
\r:回车;
\t:水平制表符(tab);
7.文件或目录复制命令
cp;
-i:如果在目标位置存在一个文件且该文件会 被覆盖时,cp命令会询问用户是否继续;
-n:在目标位置存在文件时,不会覆盖该文件,即不会进行复制操作;
-r或R:用于复制目录以及目录内所有子目录和文件;
-p:复制文件的同时保留原文件的属性如权限和时间;
-v:显示详细的复制过程信息;
8.文件或目录移动命令
mv;
-i:如果移动或重命名目标位置已存在且会覆盖时,mv 命令会询问用户是否继续;
-n:在目标位置存在文件时,不会覆盖该文件,即不会进行移动或重命名操作;
-v:显示详细的移动或重命名过程信息;
9.文件或目录删除命令
rm;
-i:在删除之前,显示每个文件是否确认删除;
-f:强制删除,即使文件正在被使用,或者存在打开的文件描述符;
-r:递归地删除目录及其内容;
-v:详细模式,显示删除的每个文件;
10.别名命令
alias;
-p:显示当前目录下的所有已定义的别名列表;
11.文件属性查看命令
stsat;
-c:指定输出信息的格式;
-f:显示文件系统的级别;
-t:以更紧凑的方式显示输出信息;
-a或--all:显示所有可用的信息;
--dereference:跟随符号链接;
12.目录结构查看命令
tree;
-L:指定要显示的层级深度;
-d:只显示目录,不显示文件;
-f:显示完整路径;
-a:显示所有文件和目录,包括隐藏的;
-l:排除符号模式的文件或目录;
13.dd命令
dd;
1.生成块文件;
2.复制文件内容;
3.测试io性能;
if:制定输入文件;
of:指定输出文件:
bs:制定块大小;
count:指定要复制的块数;
14.链接命令
ln;
-s:创建符号链接而不是硬链接;
-f:如果目标文件已存在,则覆盖它;
-i:在覆盖目标文件之前询问用户;
-p:保留原文件的属性,如权限和时间戳;
15.file命令
file;
-b:以二进制形式输出文件类型信息;
-f:仅显示文件类型,不显示其他信息;
-i:以人类可读的格式显示文件类型;
-L:对符号链接进行特殊处理,查看链接指向的真实文件;
三.VIM编辑器
1.VIM操作模式
(1).命令模式
G:跳转到文件名末尾;
gg:返回文件的首行;
home键或者^:跳到首字符;
end建或者$:跳到尾字符;
yy:单行复制;
nyy:n行复制;
p:将光标移动到想要粘贴位置的上一行;
p(大写): 将光标移动到想要粘贴位置的下一行;
u :撤销操作,注意:进行保存且退出后无效;
dd : 单行删除;
ndd : n行删除;
D或者d$: 从所在行的光标处删除到末尾;
d^: 从所在行的光标处删除到行首;
r : 需要替换某一个字符时;
del键: 光标所在字符的后一个字符;
del.键 :输出上一步命令的指令;
/关键字 : 根据关键字查找,n:上翻;N:下翻;
ZZ 或wq: 保存且退出;
(2).插入模式(进行文件内容编辑)
a :进入插入模式,在当前光标的后一个字符插入需要插入的内容;
A :在光标所在行的尾字符后插入;
o :在当前光标的下一行插入;
O(大写):在当前光标的上一行插入;
i: 在当前光标所在字符插入,返回命令模式时会将光标迁移一个字符;
I(大写i): 在光标所在行的首字符插入;
ESC(按键) : 返回命令模式;
(3).末行模式(保存、退出及字符串替换)
:w :保存;
:q :不保存退出;
:wq或:x : 保存退出;
! :强制;
:X->输入密码->:wq :设置密码并保存退出;
:X->回车两次->:wq 或者 :set key=""->:wq :取消密码 ;
:set nu : 设置行号;
:set nonu :取消行号;
:nohl : 取消高亮;
:行号 :跳转到指定行;
:%s/keyword/neword/ : 全文替换,首个匹配替换,当包含路径时,#替换/作为匹配符号;
:%s/keyword/neword/g : 全文替换,所有匹配替换,当包含路径时,#替换/作为匹配符号;
:指定行号s/keyword/neword/ : 指定行替换,首个匹配替换,当包含路径时,#替换/作为匹配符号;
:指定行号s/keyword/neword/g : 指定行替换,所有匹配替换,当包含路径时,#替换/作为匹配符号;
:起始行号,结束行号s/keyword/neword/ : 范围替换,首个匹配替换,当包含路径时,#替换/作为匹配符号;
:起始行号,结束行号s/keyword/neword/g : 范围替换,所有匹配替换,当包含路径时,#替换/作为匹配符号;
(4).视图模式
v:进行行选中;
(5).视图快模式
ctrl + v : 进行列选中;
选中要删除的“#”,按del : 批量删除注释 ;
选中要添加的列,输入 大写i ,输入#,按两次ESC: 批量增加注释;
2.VIM高级用法
:r!command : 将命令结果插入文件,command命令的结果插入光标下一行 ;
:nr! command :将命令结果插入文件,command命令的结果插入n行后 ;
:m,n! command : 使用页面内容作为输入,command以m,n之间的行作为标准输入, 标准输出会代替m,n之间的行. 注意这个操作似乎是不可用ctrl+r撤销的。要谨慎使 用。;
:! /bin/bash : 暂时离开vim来执行命令,使用完sh后exit又可以返回vim;
第二部分:Linux系统文件与目录内容检索
一、文件和目录内容检索处理命令
1、grep筛选
grep [选项] file
选项 | 作用 |
---|---|
-i | 忽略大小写 |
-v | 翻转匹配 |
-c | 计数,只输出匹配行的数量 |
-n | 显示匹配行及其行号。 |
-l(小写L) | 只输出包含匹配字符串的文件名。 |
-L | 只输出不包含匹配字符串的文件名。 |
-q(暂时不用) | 静默模式,不输出任何匹配信息。 |
-E | **使用扩展正则表达式 |
-o | 只输出匹配到的部分,而不是整行内容。 |
-A [NUM] | 打印匹配行和之后的[NUM]行。 |
-B [NUM] | 打印匹配行和之前的[NUM]行。 |
-C [NUM] 或 --context=[NUM] | 打印匹配行及其前后的[NUM]行。 |
-P | 使用Perl正则表达式。 |
-r 或 --recursive | 递归搜索目录中的文件。 |
-R 或 --text | 将二进制文件当作文本文件处理。 |
-s 或 --no-messages | 不显示错误信息。 |
2、find查找
find - 递归地在层次目录中处理文件
选项 | 作用 |
---|---|
-name | 根据关键字查找,支持通配符* |
-type | 根据文件类型查找 |
-size | 根据文件大小查找 |
-maxdepth | 指定查找时的路径深度 |
-exec | 将find命令查找到的内容交给-exec后面的命令再次处理 |
-user | 根据文件的属主进行查找 |
-perm | 根据文件的权限进行查找 |
3、sort排序
以行对文件进行排序
选项 | 作用 |
---|---|
-f | 忽略大小写,会将小写字母都转换为大写字母来进行比较 |
-b | 忽略每行前面的空格 |
-n | 按照数值进行排序 |
-r | 反向排序 |
-u | 等同于uniq,表示相同的数据仅显示一行 |
-t | 指定字段分隔符,默认使用[Tab]键分隔 |
-k | 指定排序字段 |
-o<输出文件> | 将排序后的结果转存至指定文件 |
-h | 友好显示 |
4、uniq去重
uniq 是 Unix 和类 Unix 系统中的命令,用于从排序的文本数据中去除重复行,仅保留唯一的行。它通常与 sort 命令结合使用,因为 uniq 只能删除相邻的重复行。
选项 | 作用 |
---|---|
-c | 进行计数,并删除文件中重复出现的行 |
-d | 仅显示连续的重复行 |
-u | 仅显示出现一次的行 |
-i | 忽略大小写 |
删除输入文件中的重复行:sort input.txt | uniq 仅显示重复的行:sort input.txt | uniq -d 忽略大小写进行比较:sort -i input.txt | uniq -i
5、tr转换
选项 | 作用 |
---|---|
-c | 保留字符集1的字符,其他的字符用(包括换行符\n)字符集2替换 |
-d | 删除所有属于字符集1(-d 后面的参数)的字符 |
-s | 将重复出现的字符串压缩为一个字符串;用字符集2 替换 字符集1 |
-t | 字符集2 替换 字符集1,不加选项同结果 |
将文本中的大写字母转换为小写字母:echo "HELLO" | tr 'A-Z' 'a-z'
删除文本中的空格:echo "hello world" | tr -d ' '
将文本中的特定字符替换为另一个字符:echo "abc-" | tr 'a-z' 'X-Y'
压缩重复字符:echo "foo bar" | tr -s ' '
去掉空白符:echo "hello\tworld" | tr -d '[:space:]'
6、cut切割
选项 | 作用 |
---|---|
-f | 通过指定哪一个字段进行提取。cut命令使用“TAB”作为默认的字段分割符 |
-d | TAB”是默认的分隔符,使用此选项可更改为其他的分隔符 |
-c | 以字符为单位进行分割 |
- -complement | 用于排除所指定的字段 |
- -output-delimiter | 更改输出内容的分隔符 |
-s | 跳过空白字段 |
-b, -B | 仅打印非空白的字段。 |
提取指定范围内的字段:(连续)cut -d ':' -f 1-3 file.txt
使用制表符作为分隔符提取字段:cut -d $'\t' -f 1 file.txt
提取指定文件中的所有字段:cut -d ':' -f * file.txt
仅提取非空白字段:cut -b 3 file.txt
使用通配符提取多个字段:(可以不连续)cut -d':' -f 1,2,3 file.txt
统计messages(系统)日志每个时间点产生日志的条目数量:cut -d' ' -f 4 messages | cut -d ':' -f 1 | uniq -c
统计web站点访问用户数:[root@c2407 nginx]# cat access.log | cut -d " " -f 1 | uniq -c
7、which命令
选项 | 作用 |
---|---|
-a或--all | 打印所有匹配的命令路径,而不仅仅是第一个匹配的 |
-p或--print-path | 除了命令名称外,还打印出完整的路径。 |
-v或--version | 打印 which 命令的版本信息 |
8、whereis命令
选项 | 作用 |
---|---|
-b 或 --binary | 只查找二进制文件 |
-m 或 --manual | 只查找手册页。 |
-s 或 --source | 只查找源代码文件。 |
-u 或 --usage | 打印使用说明 |
-f 或 --follow | 跟随符号链接。 |
-h 或 --help | 打印帮助信息 |
L 或 --logical | 搜索逻辑路径,不包含物理符号链接。 |
-M 或 --physical | 搜索物理路径,不包含逻辑符号链接 |
-S 或 --size | 只查找指定大小的文件 |
9、diff命令
选项 | 作用 |
---|---|
-q 或 --quiet | 只输出文件差异的文件名,不显示详细差异。 |
-c 或 --context | 以语境方式显示差异,默认显示3个字符的上下文。 |
-u 或 --unified | 以统一的方式显示差异,这是默认模式,显示共同的祖先与当前文件之间的差异。 |
-a 或 --text | 比较文本文件,忽略文件的格式差异。 |
-b 或 --ignore-space-change | 忽略空白的差异(空格、制表符等)。 |
-B 或 --ignore-space-at-eol | 忽略每行末尾的空白差异。 |
-i 或 --ignore-case | 忽略大小写差异。 |
-D 或 --horizontal-split | 以水平分割的方式显示差异。 |
-E 或 --sideby-side | 以并排的方式显示差异。 |
-l 或 --from-file | 只显示文件2相对于文件1的差异。 |
-r 或 --recursive | 递归地比较目录。 |
-N 或 --new-file | 当文件2是文件1不存在的文件时,只显示文件2的内容。 |
-x 或 --exclude | 跳过指定模式的文件。 |
-X 或 --exclude-from | 从指定的文件中读取排除模式。 |
--from-file=FILE | 同 -l,指定比较的基准文件。 |
--horizontalsplit | 同 -D,以水平分割的方式显示差异。 |
--left-column | 只显示左侧列的差异。 |
--no-dereference | 不解析符号链接。 |
--old-file | 当文件1是文件2不存在的文件时,只显示文件1的内容。 |
--recursive | 同 -r,递归地比较目录。 |
--right-column | 只显示右侧列的差异。 |
--speed-large-files | 用于大文件,减少内存使用。 |
二、文件与目录归档压缩命令
1、tar
选项 | 作用 |
---|---|
-z,--gzip | 用 gzip 对存档压缩 |
-c, --create | 建立新的存档 |
-v, --verbose | 详细显示处理的文件 |
-f, --file | 指定存档文件路径及名称 |
-j, --bzip2 | 通过 bzip2 过滤归档 |
-x, --extract, --get | 从归档中解出文件 |
-C | 指定解压后的存储路径 |
tvf | 仅查看归档包中的文件内容 |
--same-owner | 保留文件所有者(需root权限) |
-J | 使用xz压缩 |
tar -czvf archive.tar.gz /path # 使用gzip压缩 tar -cjvf archive.tar.bz2 /path # 使用bzip2压缩 tar -cJvf archive.tar.xz /path # 使用xz压缩
tar -xvf archive.tar -C /target/path # 解压到指定目录
2、zip/unzip
zip 压缩后的文件名 需要压缩的文件
unzip 压缩文件名
3、gzip / gunzip
gzip 需要压缩的文件 gzip -k filename # 保留原文件
gunzip 压缩文件 gunzip -k 压缩文件 #不保留原文件
4、bzip2 / bunzip2
压缩后源文件消失,压缩率最高
bzip2 需要压缩的文件
解压后源文件消失 bunzip2 压缩文件
5、xz / unxz
压缩文件:xz filename # 生成filename.xz
解压文件:unxz filename.xz
工具/格式 | 压缩率 | 速度 | 典型扩展名 | 特点 |
---|---|---|---|---|
gzip | 中 | 快 | .gz | 通用,适合文本文件 |
bzip2 | 高 | 慢 | .bz2 | 高压缩率,适合大文件 |
xz | 极高 | 最慢 | .xz | 最高压缩率,资源消耗大 |
zip | 中 | 中 | .zip | 跨平台(Windows兼容) |
tar | 无 | 快 | .tar | 仅归档,需配合压缩工具使用 |