文件与目录管理

77 阅读4分钟

1、常用命令

. 代表当前目录
.. 代表当前所在目录的上一级目录
table 自动补齐

# 切换目录 语法: cd 路径
# 进入/目录
[root@bogon ~]# cd /
[root@bogon /]# pwd
/

# 返回上一次所在的目录
[root@bogon /]# cd - 
[root@bogon ~]# pwd
/root

# 查看当前目录下的文件
[root@bogon /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# 显示当前目录下文件的详细信息
[root@bogon ~]# ls -l
total 12
-rw-------. 1 root root 1295 Oct 17 19:58 anaconda-ks.cfg
-rw-r--r--. 1 root root  404 Mar 14 14:08 ifcfg-ens33
-rw-r--r--. 1 root root  834 Mar 14 14:10 passwd


# 查看当前所在目录
[root@bogon /]# pwd
/

# 创建目录
[root@bogon /]# mkdir china

# 创建普通文件
[root@bogon /]# touch file.txt

2、绝对路径与相对路径

路径详解

所谓路径即目录组成结构
一个linux路径由"/"和目录(文件)名称两部分组成
比如:/etc/passwd
    如果"/"出现在路径开头,则其表示根目录,在路径中间出现"/",其含义是某一个目录下,那么上面所示路径的意思就是"根目录下的etc目录下的passwd文件"
    如果路径最后出现"/",则表示这是一个目录

路径分类

绝对路径:从根开始的路径是绝对路径。案例:/home/alice/file1  /etc/grub.conf
相对路径:凡是非根开始的路径 比如:etc  var/ftp/pub ./test.sh

3、 目录结构

# 查看当前目录下的文件
[root@bogon /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 以树的形式显示根目录下的文件
[root@bogon /]# tree -L 1 /
/
├── bin -> usr/bin  
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var


目录介绍(了解):
/root  #root用户的家目录
/home  #存储普通用户家目录 
lost+found 这个目录平时是空的,存储系统非正常关机而留下“无家可归”的文件
/usr         		#系统文件,相当于C:\Windows
/usr/local   		#软件默认安装的目录,相当于C:\Program
/usr/bin  	 		#普通用户使用的应用程序
/usr/sbin 	 		#管理员使用的应用程序
/usr/lib       		#库文件Glibc 32bit
/usr/lib64    		#库文件Glibc 64bit
/boot        		#存放的系统启动相关的文件,例如kernel
/etc         		#配置文件(系统相关如网络/etc/sysconfig/network)
/tmp         		#临时文件(系统:程序产生的临时文件)
/opt		 		#空目录
/media     			#用于挂载u盘,光驱等自动识别的设备
/srv       			#存放服务启动后产生的数据目录
/var  				#存放的是一些变化文件,比如数据库,日志,邮件....
/proc  				#虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
/mnt   				#系统提供这个目录是让用户临时挂载其他的文件系统

4、文件拷贝

# 语法
# cp 源文件 目标位置

# 拷贝网卡配置文件到root目录
[root@bogon /]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /root/
[root@bogon ~]# ls /root/
anaconda-ks.cfg  ifcfg-ens33

# 拷贝文件到当前目录
[root@bogon ~]#  cp /etc/passwd .
[root@bogon ~]# ls 
anaconda-ks.cfg  ifcfg-ens33  passwd



# -r 递归拷贝
# 拷贝etc目录到root目录下面
[root@bogon ~]# cp -r /etc/ /root/

5、文件移动

# 语法
# mv 源文件 目标位置

# 移动/root目录下面的passwd文件至/opt目录中
[root@bogon /]# mv /root/passwd /opt
[root@bogon ~]# ls 
anaconda-ks.cfg  ifcfg-ens33
[root@bogon /]# ls /opt/
passwd 

# 重命名
[root@bogon /]# mv /opt/passwd /opt/cloud
[root@bogon /]# ls /opt/
cloud

# 移动目录
[root@bogon /]# mv /root/etc/ /opt/
[root@bogon /]# ls /opt/
cloud etc

6、文件删除

# 语法
# rm 目标文件

# 创建文件 file.txt
[root@bogon ~]# touch file.txt
[root@bogon ~]# ls
anaconda-ks.cfg  file.txt  ifcfg-ens33

# 需要输入 y 进行交互确认删除文件
[root@bogon ~]# rm file.txt 
rm: remove regular empty file ‘file.txt’? y
[root@bogon ~]# ls
anaconda-ks.cfg  ifcfg-ens33

# -f 强制删除文件 file1.txt
[root@bogon ~]# touch file1.txt
[root@bogon ~]# ls
anaconda-ks.cfg  file1.txt  ifcfg-ens33
[root@bogon ~]# rm -f file1.txt 
[root@bogon ~]# 

# 删除目录 -r, 进行交互,需手动确定
[root@bogon ~]# mkdir dir1/dir2/dir3/ -p
[root@bogon ~]# rm -r dir1/
rm: descend into directory ‘dir1/’? y
rm: descend into directory ‘dir1/dir2’? y
rm: remove directory ‘dir1/dir2/dir3’? y
rm: remove directory ‘dir1/dir2’? y
rm: remove directory ‘dir1/’? y

# 非交互,无需手动确定 -rf
[root@bogon ~]# mkdir /dir1/dir2/dir3/ -p
[root@bogon ~]# rm -rf /dir1/

7、拓展

7.1 小火车

[root@bogon ~]# yum install -y epel-release
[root@bogon ~]# yum install -y sl
[root@bogon ~]# sl
[root@bogon ~]# sl -aFle 
[root@bogon ~]# sl -h -l

7.2 代码雨

[root@bogon ~]# yum install -y ncurses-devel wget gcc gcc-c++ make 
[root@bogon ~]# wget https://www.asty.org/cmatrix2/dist/cmatrix-1.2a.tar.gz
[root@bogon ~]# tar xvf cmatrix-1.2a.tar.gz
[root@bogon ~]# cd cmatrix-1.2a
[root@bogon cmatrix-1.2a]# ./configure && make && make install
[root@bogon cmatrix-1.2a]# cmatrix
q 键退出