[TOC]
文件结构
目录 | 作用 |
---|---|
/bin/ | 存放系统命令,普通用户和root用户都可以执行。放在/bin下的命令在单用户模式下也可以执行 |
/boot/ | 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等 |
/dev/ | 设备文件保存位置 |
/etc/ | 配置文件保存位置。系统内所有采用默认安装方式(rpm安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用的服务配置文件等 |
/home/ | 普通用户的主目录,也称为家目录。在创建用户时,每个用户要有一个默认登陆和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在/home/下建立一个和用户名相同的目录 |
/lib/ | 系统调用的函数库保存位置 |
/media/ | 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 |
/mnt/ | 挂载目录。早期Linux只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如U盘、系统硬盘和其他操作系统的分区 |
/misc/ | 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘 |
/opt/ | 第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装在这个目录中。其次/usr/local/目录也可以用来安装软件 |
/root/ | root的主目录。普通用户主目录在/home/下,root主目录直接挂载在"/"下 |
/sbin/ | 保存与系统环境设置相关的命令,只有root可以使用这些命令进行系统环境设置,但也有命令可以允许普通用户查看 |
/srv/ | 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据 |
/tmp/ | 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入 |
文件管理
1:当前绝对路径
pwd
2:文件说明
ls -l
-rwxrw-r--. 1 root root 376 6月 26 17:37 hello.txt.gz
# 10个字符
# - rwx rw- r--
# 第一个字符代表文件类型:- l d c b
# - 普通文件
# d 目录,相当于windows的文件夹
# c 硬件,字符设备文件,鼠标,键盘
# b 块设备, 如硬盘
# l 快捷方式
# p 管道文件
# s
# 字符 含义 代表数字
# r 可读 4
# w 可写 2
# x 可执行 1
3:创建 (mkdir、touch、vim)
# 目录
mkdir /home/dog # 在/home目录下创建/dog
mkdir -p /home/dog # 在/home目录下创建/dog
-p # 创建多级目录
# 文件
touch /home/a.txt # 在/home下创建文件 a.txt
vim /home/a.txt # 在/home下创建文件 a.txt
vi /home/a.txt # 在/home下创建文件 a.txt
# 利用覆盖,追加创建文件
cal > /home/a.txt # 将当前月份日历覆盖/home/a.txt文件内容
cal >> /home/a.txt # 将当前月份日历追加到/home/a.txt
4:移动 (剪切 mv)
# 将/home目录下的a.txt剪切移动到/home/b下
mv /home/a.txt /home/b
# 将/home目录下的a.txt剪切移动到/home/b下,并重命名为c.txt
mv /home/a.txt /home/b/c.txt
# 将/home下的/a目录剪切到/home/b下
# 如果没有/home/b目录就将/a重命名为/b剪切移动到/home下
mv /home/a /home/b
5:复制 (cp)
将/home
下的a.txt
复制到/home/b
cp /home/a.txt /home/b/
将/home
下的/a
及子文件复制到/home/b
cp -r /home/a /home/b
6:重命名 (mv)
# 将目录下的a.txt重命名为b.txt
mv a.txt b.txt
# 将/home目录下的a.txt剪切移动到/home/b下,并重命名为c.txt
mv /home/a.txt /home/b/c.txt
7:快捷方式 (ln)
# ln [参数][源文件或目录][目标文件或目录]
# 创建/etc/aaa的快捷方式放到/home下,快捷方式名称为xxx
ln -s /etc/aaa /home/xxx
# 参数
--backup[=CONTROL] 备份已存在的目标文件
-b 类似 --backup ,但不接受参数
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
8:删除 (rm)
rmdir /home/dog # 删除/dog空目录,非空不可删
rm -rf /home/dog # 删除/dog及子级所有的文件,慎重使用!!!
-r # 递归删除
-f # 强制删除不提醒
-rf # 递归强制删除不提醒
9:查看文件
9.1:cat 指令
只能查看,不能修改
cat /home/a.txt # 查看/home下的a.txt文件
cat -n /home/a.txt # 查看/home下的a.txt文件,并且显示行号
-n # 显示行号
9.2:more 指令
more指令是一个基于vi编辑器的文本过滤器,它可以全屏的方式按页显示文本文件内容,more指令中内置了若干快捷键,详见说明
# more [要查看的文件]
more /home/a.txt
操作 | 说明 |
---|---|
space(空格键) | 向下翻页 |
Enter | 向下翻 一行 |
q | 立刻离开,不在显示该文件 |
Ctrl + F | 向下滚动一屏 |
Ctrl + B | 向上滚动一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
9.3:less指令
功能与more指令类似,根据显示需要加载相关内容,对于大型文件具有较高的效率
# less [参数] 要查看的文件
less /home/a.txt
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
操作 | 说明 |
---|---|
space(空格键) | 向下翻页 |
ctrl + D | 向下滚动半屏 |
ctrl + U | 向上滚动半屏 |
Ctrl + F | 向下滚动一屏 |
Ctrl + B | 向上滚动一屏 |
/字符串 | 向下搜索『字符串』n:向下查找,N:向上查找 |
?字符串 | 向下搜索『字符串』n:向下查找,N:向上查找 |
q | 离开less |
9.4:echo指令
# echo输出内容到控制台
# echo [选项] [输出内容]
# 输入出环境变量
echo $PATH
9.5:head 指令
# 显示文件的开头部分内容
# 默认情况下head指令显示文件的前10行内容
# 语法:
# head 文件
head /home/a.txt
# 文件头5行内容,5可以是任意数字
head -n 5 /home/a.txt
9.6:tail 指令
# 输出文件中尾部的内容
# 默认情况下tail指令显示文件的前后10行内容
# 语法:
# tail 文件
tail /home/a.txt
# 查看文件尾5行内容,5可以是任意数字
tail -n 5 /home/a.txt
# 实时追踪文档的所有更新
tail -f /home/a.txt
10:压缩解压文件
10.1:tar 解压指令
将/aaa目录或文件以bbb.tar.gz压缩到/home下
# 将/aaa目录或文件以bbb.tar.gz压缩到/home下
tar -zcvf /home/bbb.tar.gz /aaa
# 将/home下的bbb.tar.gz解压到/home/aaa下
tar -zxvf /home/bbb.tar.gz -C /home/aaa
-z # 解压.tar文件
-c # 产生.tar打包文件
-x # 解压.tar文件
-v # 显示详细信息
-f # 指定压缩名称
10.2:gzip和gunzip指令
# 压缩,只能将文件压缩*.gz
gizp 文件
# 解压缩文件命令
gunzip 文件.gz
10.3:zip/unzip指令
# 压缩文件和目录
zip [选项] XXX.zip 将要压缩的内容
# 解压缩文件
nzip [选项] XXX.zip(功能描述:解压缩文件)
zip常用选项
-r # 递归
unzip的常用
-d # 指定解压后的文件存放目录
11:指令 和 >> 指令
输出重定向 和 >>追加
基本语法:
ls -l > 文件 # 列表的内容写入文件a.txt中(覆盖)
ls -al >> 文件 # 列表的内容追加到文件aa.txt的末尾
cat 文件1 > 文件2 # 将文件1的内容覆盖到文件2中
echo "内容" >> 文件 # 将echo的内容追加到文件中
12:文件权限
-
文件所有者
谁创建了该文件,谁就自然成为了该文件的所有者
12.1:查看文件的所有者
ls -al
12.2:修改文件权限 (chmod)
chmod
指令可以修改文件
或目录
的权限
用户类型 | 说明 |
---|---|
u | 文件所有者 |
g | 文件所在组 |
o | 其他人 |
a | 所有人 |
字符 | 含义 | 数字代表 |
---|---|---|
r | 可读 | 4 |
w | 可写 | 2 |
x | 可执行 | 1 |
方式1 (chomd u=rwx,g=rw,o=x)
文件权限修改为所有者拥有rwx权限,组成员拥有rw权限,其他人只有x权限
# chomd u=rwx,g=rw,o=x 文件/目录
chomd u=rwx,g=rw,o=x /home/xxx
chomd u=rwx,g=rw,o=x /home/xxx/a.txt
方式2 (chomd u+rwx,g+rw,o-w)
文件权限修改为所有者添加rwx权限,组成员添加rw权限,其他人减去w权限
# 文件/目录 所有者加 rwx 权限,组成员加 rw 权限,其他人减去 w 权限
chomd u+rwx,g+rw,o-w 文件/目录
# 给所有人去掉 x(执行) 的权限
chomd a-x 文件/目录
方式3 (chomd 777)
文件权限修改为所有者拥有 rwx 权限,组成员拥有 rw 权限,其他人只有 r 权限
chomd 764 文件/目录
# 等价于
chomd u=rwx,g=rw,o=r 文件/目录
聚合(方式1/方式2/方式3_
# 方式1:
# chomd u=rwx,g=rw,o=x 文件/目录
chomd u=rwx,g=rw,o=x /home/xxx
chomd u=rwx,g=rw,o=x /home/xxx/a.txt
# 方式2:
# 文件/目录u加rwx权限,g加rw权限,o减w权限
chomd u+rwx,g+rw,o-w 文件/目录
# 给所有人去掉执行的权限
chomd a-x 文件/目录
# 方式3:
chomd 764 文件/目录
# 等价于
chomd u=rwx,g=rw,o=r 文件/目录
# u : 文件所有者
# g : 文件所在组
# o : 其他人
# a : 所有人
# 字符 含义 代表数字
# r 可读 4
# w 可写 2
# x 可执行 1
12.3:修改文件的所有者 (chown)
# chown 用户名 文件
chown hzg /home/a.txt
12.4:修改文件所在组 (chgrp)
# chgrp 组名 文件名
chgrp hzg /home/a.txt