一、Linux目录结构
登录系统后,输入如下命令
ls /
结果如下图所示:
树状目录结构:
常见的子目录及其作用:
/root | 管理员的宿主(家)目录 |
/home | 除root用户之外的普通用户的家目录 |
/bin | 存放二进制文件,所有用户可执行,实际上是个软链接,链接到/usr/bin |
/sbin | 存放二进制文件,只有管理员可执行,实际上是个软链接,链接到/usr/sbin |
/boot | 系统内核、启动文件目录 |
/dev | 存放设备文件(光驱、硬盘等) |
/etc | 存放系统程序和大部分应用程序的配置文件 |
/var | 存放可以变化的文件,包括各种日志文件 |
/usr | 存放系统用户工具和程序 |
/opt | 第三方应用程序安装所存放的目录 |
/proc | 包含虚幻的文件,他们实际上并不存在于磁盘上,也不占用任何空间(虽然用 ls -l 可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访间系统。 |
二、查看文件内容
cat命令
作用:直接显示出整个文件的内容
格式:cat 【选项】文件名
常用选项:
-n(对每一行的内容进行行号标记)
-b(只对非空行做行号标记,对空行内容不做行号标记)
-s(多个空行压缩成一个空行)
示例:
[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
rh
[root@localhost opt]# echo abc > abc.txt //创建abc.txt文件并写入内容为abc
[root@localhost opt]# echo 123 > 123.txt //创建123.txt文件并写入内容为123
[root@localhost opt]# ls
123.txt abc.txt rh
[root@localhost opt]# cat 123.txt //查看123.txt文件的全部内容
123
[root@localhost opt]# cat abc.txt //查看abc.txt文件的全部内容
abc
[root@localhost opt]# cat 123.txt abc.txt //同时查看两个文件的全部内容
123
abc
[root@localhost opt]# cat 123.txt abc.txt > abc123.txt //将两个文件的全部内容合并且写入新文件中
[root@localhost opt]# cat abc123.txt
123
abc
more命令
作用:全屏方式分页显示文件内容
格式:more 【选项】文件名
交互操作方法:
- 按Enter键向下逐行滚动
- 按空格键向下翻一屏
- 按b键向上翻一屏
- 按q键退出
- 下翻到最后一页自动退出
- 结合管道操作,格式为:cat 文件 | more(无法向上翻页)
less命令
作用:与more命令相同,但扩展功能更多
交互操作方法:
- Page Up 向上翻页,Page Down 向下翻页
- 按“/”键查找内容,“n”下一个内容,“N”上一个内容
- 通过方向键可以实现上下逐行滚动
- 其他功能与more 命令基本类似
- 下翻到最后一页不会自动退出
- 结合管道操作使用时可以向上翻页
head、tail命令
作用:head用于查看文件开头一部分内容(默认十行)
tail用于查看文件结尾的一部分内容(默认十行)
格式:head -n 文件名 (n为行数)
tail -n 文件名 (n为行数)
tail -f 文件名 //跟踪文件尾部内容的动态跟新
head与tail的用法:
head -n k 与head -n +k 表示显示前k行内容;head -n -k 表示显示除末尾向上的k行内容以外的所有内容。
tail -n k 与tail -n -k 表示显示末尾k行内容;tail -n +k 表示显示从第k行开始的所有内容。
示例:
[root@localhost /]# vi text.txt
[root@localhost /]# head -3 text.txt //输出前三行
1
2
3
[root@localhost /]# tail -3 text.txt //输出后三行
8
9
10
[root@localhost /]# head -n -7 text.txt //输出除末尾七行之外的所有行
1
2
3
[root@localhost /]# tail -n +7 text.txt //输出从第七行开始的所有行内容
7
8
9
10
三、统计文件内容wc命令
作用:统计文件中单词数量等信息
格式:命令字 【选项】...【目标文件】...
常用命令选项:
-l:统计行数
-w:统计单词个数
-c:统计字节数
注:不带任何选项的wc命令,默认同时使用-lwc三个选项
示例:
[root@localhost /]# cat text1.txt
abc de
fg h
i g k
lm
[root@localhost /]# wc -l text1.txt //统计行数
4 text1.txt
[root@localhost /]# wc -w text1.txt //统计单词个数
8 text1.txt
[root@localhost /]# vi text2.txt
[root@localhost /]# cat text2.txt
woshinidie
[root@localhost /]# wc -c text2.txt //统计字节数(一个英文字符为一个字节)
11 text2.txt //在内容末尾有个隐藏的换行符,所以字节数不是10而是11
[root@localhost /]# echo -n woshinidie > text3.txt //不换行写入
[root@localhost /]# wc -c text3.txt
10 text3.txt //字节数为10,没有换行符
四、检索和过滤文件内容grep命令
作用:在文件中查找并显示包含指定字符串的行
格式:grep [选项]... 查找条件 目标文件
常用选项:
- -i:查找时不区分大小写
- -v:显示不包含匹配文本的所有行(反向查询,反向匹配)
- -c:只输出匹配到的总行数(不是匹配到的次数)
- -n:显示匹配行及行号
- -e:实现多个查找条件的匹配,逻辑or关系
- -E:支持使用扩展正则表达式,相当于使用egrep命令
- -o:精确匹配,即“仅匹配”之意。
- -A n:显示匹配行和它后面的n行。
- -B n:显示匹配行和它前面的n行。
- -C n:匹配行和它前后各n行。
- -l:列出文件内容符合指定的样式的文件名称
- -w:只显示全字符合的列。
查找条件设置: "^...." 表示以...开头
"....$" 表示以....结尾
"^$" 表示空行
"[....]"表示任意字符
示例:
直接过滤查询:
不区分大小写过滤查询:
不区分大小写且反向查询:
显示匹配行数,效果与grep -i centos CentOS-Base.repo | wc -l 一样
显示匹配行号:
实现多个查找条件的匹配,-e 充当或的作用:
精确匹配,即“仅匹配”之意:
显示匹配行以及后5行的内容,用-A n的形式,如图:
显示匹配行以及前5行的内容,用-B n的形式,如图:
显示匹配行和它前后各5行。,用-C n的形式,如图:
五、压缩文件命令
gzip、bzip2
制作压缩文件:
gzip [-9] 文件名...
bzip2 [-9] 文件名...
解开压缩文件:
gzip -d gz格式的压缩文件
bzip2 -d .bz2格式的压缩文件
注:
gzip 制作的压缩文件默认的扩展名为“.gz”,原始文件不再保留
bzip2 制作的压缩文件默认的扩展名为“.bz2”,原始文件不再保留
格式:
压缩:
gzip [-9] 文件.... 压缩比可以是 -1(压缩速度最快,性能消耗最小,压缩比最低) 到 -9(压缩速度最慢,性能消耗最大,压缩比最高)
bzip2 [-9] 文件....
zip XXX.zip 被压缩的文件/目录....
tar -zcvf XXX.tar.gz 被压缩的文件/目录.... z(gzip) j(bzip2) J(xz)
解压缩:
gzip -d XXX.gz gunzip XXX.gz
bzip2 -d XXX.bz2 bunzip2 XXX.bz2
unzip XXX.zip [-d 目录]
tar xf XXX.tar.gz [-C 目录] -C指定目录解压缩tar tf XXX.tar.gz 查看压缩包文件内容
示例:
[root@localhost opt]# ls
123.txt abc123.txt abc.txt rh
[root@localhost opt]# gzip *.txt //压缩所有以.txt结尾的文件
[root@localhost opt]# ls
123.txt.gz abc123.txt.gz abc.txt.gz rh
[root@localhost opt]# gzip -d *.gz //解压缩
[root@localhost opt]# ls
123.txt abc123.txt abc.txt rh
gunzip、bunzip2
gunzip 等价于gzip -d
bzip2和bunzip2命令的用法与gzip、gunzip命令基本相同
示例:
对以repo结尾的文件进行压缩和解压缩,如下图所示:
文件归档
制作归档文件:
tar [选项] 归档文件名 源文件或目录
释放归档文件:
tar [选项] 归档文件名 [-C 目标目录]
tar的常用选项:
- -c:创建.tar 格式的包文件。
- -x:解开.tar 格式的包文件。
- -C:解压时指定释放的目标文件夹。
- -f:表示使用归档文件。(使用tar命令必须使用该选项)
- -p:打包时保留文件及目录的权限。
- -P:打包时保留文件及目录的绝对路径。
- -t:列表查看包内的文件。
- -v:输出详细信息(Verbose)。
- -j:调用 bzip2 程序进行压缩或解压。
- -z:调用 gzip 程序进行压缩或解压。
示例:
[root@localhost opt]# tar -czvf txt.tar.gz *.txt //创建tar格式文件且用gzip程序进行压缩并显示详细信息,将以.txt结尾的文件进行压缩
123.txt
abc123.txt
abc.txt
[root@localhost opt]# ls
123.txt abc123.txt abc.txt rh txt.tar.gz //通过tar压缩文件时,会保留源文件
[root@localhost opt]# tar tf txt.tar.gz //查看压缩包内的文件
123.txt
abc123.txt
abc.txt[root@localhost opt]# mv txt.tar.gz /root/ //将压缩文件移动到/root/
[root@localhost opt]# ls
123.txt abc123.txt abc.txt rh
[root@localhost opt]# cd /root/
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg txt.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg txt.tar.gz
[root@localhost ~]# tar zxvf txt.tar.gz //将文件解压缩
123.txt
abc123.txt
abc.txt
[root@localhost ~]# ls
123.txt abc123.txt abc.txt anaconda-ks.cfg initial-setup-ks.cfg txt.tar.gz //解压缩后并不会删除压缩包
[root@localhost ~]# tar xf txt.tar.gz -C /tmp/ //将压缩包解压缩到/tmp/目录下(tar在解压缩时会自动识别压缩程序进行解压缩)
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# ls
123.txt
abc123.txt
abc.txt
anaconda.log
六、vi编辑器
三种工作模式:命令模式、输入模式、末行模式
命令模式常用操作:
G 切换到最后一行
1G gg 切换到第一行
#G 切换到第 # 行dd 删除光标处所在的行
#dd 删除光标处开始的 # 行
#dd + p/P 剪切 + 粘贴,p在光标行下面粘贴,P在光标行上面粘贴yy 复制光标处所在的行
#yy 复制光标处开始的 # 行
#yy + p/P 复制 + 粘贴u 撤销上一步操作
ctrl + r键 恢复上一步撤销的操作
U 撤销光标处所在行的所有操作x del键 删除光标处所在的字符
/字符串 ?字符串 查找字符串,n(/字符串 是从上往下找,?字符串 反之),N(/字符串是从下往上找,?字符串 反之)
末行模式常用操作:
:wq :wq! :x ZZ 保存并退出
:q! 不保存退出:set nu 显示行号
:set nonu 不显示行号:s/OLD/NEW/g 将光标处所在行的所有OLD字符串替换成NEW字符串
:% s/OLD/NEW/g 将所有行的所有OLD字符串替换成NEW字符串
:N,M s/OLD/NEW/g 将第 N 行到第 M 行的所有OLD字符串替换成NEW字符串:r 文件路径 在光标处所在行下面插入指定的文件内容
:N,M co # 将第 N 行到第 M 行的内容复制到第 # 行下面
:N,M m # 将第 N 行到第 M 行的内容剪切到第 # 行下面