linux文件管理
冰冻三尺非一日之寒,滴水穿石非一日之功
常用快捷键
#编辑命令: Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + u :从光标处删除至命令行首 Ctrl + k :从光标处删除至命令行尾 Ctrl + d :删除光标处的字符 Ctrl + h :删除光标前的字符 #重新执行命令: ESC + .:打印之前执行过的命令的最后一部分 以空格为分隔符 #控制命令: Ctrl + l:清屏 Ctrl + c:终止命令 #Tab键: 自动补全 #命令 --help:查看该命令的帮助文档 #上下箭头或者history,都能查看历史命令。
1、Linux目录结构
在linux系统中一切皆文件
1.1 WINDOWS/LINUX 对比
Windows: 以多根的方式组织文件 C:\ D:\ E:\
Linux: 以单根的方式组织文件"/"
1.2 简介
/目录结构:
FSH (Filesystem Hierarchy Standard):标准的目录结构
[root@linux-server ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
1.3 图示
1.4 目录功能
bin 普通用户使用的命令 /bin/ls, /bin/date
sbin 管理员使用的命令 /sbin/service
案例:
[root@linux-server ~]# which ls
/usr/bin/ls
[root@linux-server ~]# which useradd
/usr/sbin/useradd
目录介绍:
/root #root用户的家目录
/home #普通用户的家目录,存放用户文件
/usr(unix shared resources)# 存放共享的系统资源
/usr/local #软件安装的目录,相当于C:\Program
/usr/bin #普通用户使用的应用程序
/usr/sbin #管理员使用的应用程序
/usr/lib 库文件Glibc 32bit
/usr/lib64 库文件Glibc 64bit
/boot #存放用于系统启动或引导时使用的各种文件
/etc(etcetera)# 配置文件目录
/tmp(temporary)# 存放临时文件
/opt(optional)# 存放主机额外安装的软件,默认为空
/media #用于挂载u盘,光驱等自动识别的设备
/srv #存放一些服务启动之后需要提取的数据
/var(variable) #存放一些经常变化的文件和目录
/proc(process) #虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
==设备(主要指存储设备)挂载目录==
/mnt(mount)# 系统提供这个目录是让用户临时挂载其他的文件系统
1.5 路径详解
所谓路径即目录组成结构
一个linux路径由"/"和目录(文件)名称两部分组成
比如:/etc/passwd/
如果"/"出现在路径开头,则其表示根目录,在路径中间出现"/",其含义是某一个目录下,那么上面所示路径的意思就是"根目录下的etc目录下的passwd文件"
如果路径最后出现"/",则表示这是一个目录
1.6 路径分类(重点概念)
绝对路径:从根开始的路径是绝对路径。案例:/home/alice/file1 /etc/grub.conf
相对路径:凡是非根开始的路径 比如:etc var/ftp/pub ./test.sh
(相对路径是以当前目录为起始)
使用pwd命令查看当前所在的绝对路径:
[root@linux-server etc]# pwd
/etc
1.6.1 绝对路径实例
[root@linux-server ~]# touch /opt/file1
1.6.2 相对路径示例
[root@linux-server ~]# pwd
/root
[root@linux-server ~]# mkdir abc #创建目录
[root@linux-server ~]# touch abc/file3
1.7 查看历史命令
[root@linux-server ~]# history #也可以使用上下按键
[root@linux-server ~]# clear #清屏,快捷键:ctrl+l
2、文件管理命令
2.1 切换目录—cd
# . 表示当前目录
# cd .. 回到上一级目录等同于相对路径
# cd 或者 cd ~ 直接回到家目录
# cd /home/alice 切换目录=绝对路径
# cd - 回到原来目录
2.2 创建文件
[root@linux-server ~]# touch file1.txt #无则创建,如果存在修改时间
[root@linux-server ~]# touch /home/file10.txt
[root@linux-server ~]# touch /home/{zhuzhu,gougou} #创建{}集合中的所有文件
[root@linux-server ~]# touch /home/file{1..20} #批量创建20个文件
2.3 创建目录
语法:mkdir -v 详细 -p 递归 目录
# mkdir dir1
# mkdir /home/dir2 /home/dir3 #用空格隔开
# mkdir /home/{dir4,dir5} #用大括号{}
# mkdir /home/dir{6..10} #批量创建5个
# mkdir /home/dir{1..10}.txt #后缀为.txt,以dir开头
# mkdir -p /home/dir8/111/222 #-p 创建连级目录,一级一级的创建
# mkdir -p {01..12}/{01..30} #批量创建多级目录
# mkdir `date +%F_%T` #创建以当前时间为名的目录
2.4.复制
复制 cp -r 目录 -v 详细 -f 强制 -n 静默
Usage: cp [OPTION]… [-T] SOURCE DEST
# cp file1.txt /home/oyy/file2.txt #复制并改文件名
# cp -r /etc /opt/dir1 #-r 拷贝目录使用,连同目录里面的文件一块拷贝
# cp /root/anaconda-ks.cfg{,.bak} #原地备份,文件名为原名称+.bak后缀
语法: cp -r 源文件1 源文件2 源文件N 目标目录 #将多个文件拷贝到同一个目录
# cp /etc/sysconfig /etc/passwd /etc/hosts .
2.5 移动
1.创建一个新文件file1
[root@linux-server ~]# touch /root/file1
2.把file1文件移动到/tmp目录中。
[root@linux-server ~]# mv /root/file1 /tmp/
[root@linux-server ~]# ls /tmp/file1
/tmp/file1
3.把file1文件更名为file2
[root@linux-server ~]# mv /tmp/file1 /tmp/file2
4.观察file1文件已经更名为file2
[root@linux-server ~]# cd /tmp/
[root@linux-server tmp]# ls
file2
2.6 删除
语法:rm -r 递归删除目录 -f force强制 -v 详细过程 *通配符
实例1:删除/home/dir1
# cd /home/
# rm -rf dir1/
示例2:
[root@linux-server ~]# mkdir /home/dir10
[root@linux-server ~]# touch /home/dir10/{file2,file3,.file4}
[root@linux-server ~]# rm -rf /home/dir10/* #不包括隐藏文件
[root@linux-server ~]# ls /home/dir10/ -a
. .. .file4
示例3:
[root@linux-server ~]# touch {1..10}.txt
[root@linux-server ~]# touch file{1..20}.txt #创建file1-10的txt文件
[root@linux-server ~]# rm -rf file1*
2.7 查看文件内容
cat:查看一个文件的全部内容。
cat还可以用于编辑文件内容,这种用法相比vi/vim要快捷一些。
[root@CentOS7 ~]# cat /etc/passwd
[root@CentOS7 ~]# cat >>/oyy/yy.txt<<eof #文件无则创建,>>是追加内容到末尾
> abc
> cba
> eof #eof是end of file的缩写,在这里充当内容起止符,其它任意字符也有相同效果