目录结构和命令
目 录
Linux目录结构
安装tree
tree:目录树;
yum install –y tree
[root@oldboy ~]# yum install -y tree
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
软件包 tree-1.6.0-10.el7.x86_64 已安装并且是最新版本
tree L 1 / (显示/目录下的所有1级目录和文件)
[root@oldboy ~]# 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
19 directories, 0 files
/bin
/bin目录:所有用户可用的基本命令程序文件;相当于windows下面的C:\Windows\system32
/sbin:供系统管理使用的工具程序;
注意:在Linux7中,/bin ;/sbin;/lib;lib64都以软链接到/usr/目录下;
如:
lrwxrwxrwx. 1 root root 7 8月 2 20:07 bin -> usr/bin
lrwxrwxrwx. 1 root root 7 8月 2 20:07 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 8月 2 20:07 lib64 -> usr/lib64
/boot
/boot目录:引导加载器必须用到的个静态文件,主要有kernel、initramfs(initrd)、grub等;
开机启动顺序:电源>>>BIOS做硬件自检>>>磁盘>>>MBR(主引导记录)>>>分区表(PT)
注意:windows中win+r>>>msconfig(进入开机起动机配置界面)
/dev
/dev目录:存储设备文件的目录
df –-h命令:查看磁盘状态
[root@oldboy ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 17G 1.2G 16G 7% /
devtmpfs 225M 0 225M 0% /dev
tmpfs 236M 0 236M 0% /dev/shm
tmpfs 236M 5.6M 230M 3% /run
tmpfs 236M 0 236M 0% /sys/fs/cgroup
/dev/sda1 1014M 124M 891M 13% /boot
tmpfs 48M 0 48M 0% /run/user/0
/dev/sda3 17G 1.2G 16G 7% /
其中sd:磁盘的类型,特殊磁盘类型vd(KVM)
a:磁盘顺序
3:分区编号(1-4:为主分区;5以后:为逻辑分区)
分区方案
MBR:最多4个主分区,如果需要更多分区,需要将一个主分区变为扩展分区,然后才能在扩展分区基础上创建逻辑分区,操作系统只能安装在主分区上;
GPT:主分区数量没有限制
/etc
/etc目录:系统程序的配置文件,只能为静态文件;
- 不能将磁盘挂在到此目录下
- 不能用删除及rm –rf 这个目录
- 修改此目录下的配置文件,必须先做备份
/home
/home目录:所有普通用户的家目录都集中在这个目录下面,一般每个普通用户的家目录默认为此目录下与用户名同名的目录;
/root
/root目录:管理员的家目录,相当于windows下的C:\user\用户名目录
宿主目录,家目录
pwd命令:查看当前所在位置的路径
[root@oldboy ~]# pwd
/root
useradd user1:创建名为user的普通用户
root@oldboy ~]# useradd user1
[root@oldboy ~]# ll /home/
drwx------ 2 user1 user1 62 8月 6 19:57 user1
su – user1:切换用户,不需要
[root@oldboy ~]# su - user1
[user1@oldboy ~]$
从user切换root,需要输入密码
[user1@oldboy ~]$ su - root
密码:
上一次登录:一 8月 6 17:57:27 CST 2018pts/0 上
[root@oldboy ~]#
/lib
/lib目录:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块;
libc.so.*:动态连接的C库
ld*:云心事链接器/加载器;
modules:用于存储内核模块的目录;
/lib64
/lib64:64位系统特有的存放64位共享库的路径;
/media
/media目录:便携式设备挂载点,cdrom,floppy,u盘等
/mnt
mnt目录:其他文件系统的临时挂载点;
/mount
mount目录 :mount/dev/cdrom/mnt
/opt
opt目录:附加应用程序的安装位置,可选路径;
/srv
/srv目录:当前主机为服务提供的数据,主机特有的;
/tmp
/tmp目录:为那些会产临时文件的程序提供的用于存储零时文件的目录,可供所用用户执行写入操作,有图书权限,默认情况下,只有管理员可以对所有文件及目录具有读写权限,其他用户是没有写权限的;
/usr
/usr目录:全局共享只读数据,重要性仅次于根目录;
等同于windows的"program file"
bin,sbin,lib,lib64
include:C程序头文件;
share:命令手册页和自带文档等架构特有的文件的存储位置;
local:另一个层级目录,让系统管理员安装本地应用程序,也通常用于安装第三方程序;
X11R6:X-Window程序的安装位置;
src:程序源码文件的存储位置;
/var
/var目录:存储常发生变化的数据的位置;
/proc
proc目录:基于内存的虚拟文件系统,用于实现为内核及进程存储器相关信息,他们多为内核参数,
例如:net.inv4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys/,因此其完整路径为/proc/sys/net/ipv4/ip_forward;
/sys
/sys目录:sysfs文件系统的挂载点,为虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径,主要作用在于为管理Linux设备提供一种统一模型的接口。
基础命令
特殊目录
.:当前目录
..:上一级目录
[root@oldboy ~]# pwd
/root
[root@oldboy ~]# cd .
[root@oldboy ~]# pwd
/root
[root@oldboy ~]# cd ..
[root@oldboy /]# pwd
/
[root@oldboy /]#
相对路径和绝对路径
相对路径:根据当前环境
绝对路径:从根开始唯一的路径
命令提示符
[root@oldboy ~]#
root:当前用户登录名
oldboy:当前主机的名称
~:当前所在的目录
#:表示管理员;$:表示普通用户
ls命令
1、-a:显示全部文件包括隐藏文件
[root@oldboy ~]# ls -a
. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc
2、-l:长格式显示文件详细信息
[root@oldboy ~]# ls -l
总用量 4
-rw-------. 1 root root 1442 8月 2 20:11 anaconda-ks.cfg
[root@oldboy ~]#
cd命令
cd命令:切换目录
. 表示用户所在的当前目录
.. 表示伤及目录
~ 表示当前用户的家目录
cd - :#切换上次所在的目录
cd . :#表示当前目录,一般在拷贝,移动的情况下使用
cd .. :#表示切换到上级目录
cd ~ :#切换到当前用户的家目录和cd后面不接参数功能相同
mkdir命令
mkdir:创建目录
-p:为递归创建目录,存在不做提示,不存在创建
[root@oldboy ~]# mkdir -p 1/2/3/4
[root@oldboy ~]# tree 1/
1/
└── 2
└── 3
└── 4
- directories, 0 files
一次创建多个连续的目录mkdir a{1..5}
touch
touch命令:创建文件命令
-a:只更改存取时间
-t<日期时间>:修改时间,不是现在的时间
创建多个文件
touch 文件1 文件2 文件3
[root@oldboy ~]# touch 1 2 3 4 5 6
[root@oldboy ~]# ll
总用量 4
drwxr-xr-x 3 root root 15 8月 6 21:51 1
-rw-r--r-- 1 root root 0 8月 6 21:51 2
-rw-r--r-- 1 root root 0 8月 6 21:51 3
-rw-r--r-- 1 root root 0 8月 6 21:51 4
-rw-r--r-- 1 root root 0 8月 6 21:51 5
-rw-r--r-- 1 root root 0 8月 6 21:51 6
注意:创建多个名称排列的文件touch a{1..5}.txt
cp
cp:复制命令
-f:强制复制文件,不管目标文件存在与否;
-p:保留源文件或者目录的属性;
-b:覆盖之前先做备份
mv
mv:
mv:移动文件或者文件夹;重命名
-f:直接覆盖文件夹或者目录
-b:文件存在,覆盖前先做备份(覆盖前会提示是否覆盖,覆盖前备份再进行覆盖)
[root@oldboy ~]# mv -b text/text1.txt Music/
mv:是否覆盖"Music/text1.txt"? y
[root@oldboy ~]# ll Music/
总用量 0
-rw-r--r-- 1 root root 0 8月 7 09:06 text1.txt
-rw-r--r-- 1 root root 0 8月 7 09:08 text1.txt~
-i:互交模式,询问用户是否覆盖,输入y覆盖,输入n不覆盖,回车不覆盖
-S<后缀>:为备份文件指定后缀,不使用默认后缀
rm
rm:删除命令
-r:递归删除
-f:强制删除
-rf:不显示任何信息,直接删除文件或者文件夹
-v:显示过程
[root@oldboy ~]# rm -rv a/
rm:是否进入目录"a/"? y
rm:是否删除普通空文件 "a/text1.txt"?y
已删除"a/text1.txt"
rm:是否删除普通空文件 "a/text2.txt"?y
已删除"a/text2.txt"
rm:是否删除普通空文件 "a/text3.txt"?y
已删除"a/text3.txt"
rm:是否进入目录"a/b"? y
rm:是否进入目录"a/b/c"? y
rm:是否进入目录"a/b/c/d"? y
rm:是否进入目录"a/b/c/d/e"? y
rm:是否删除目录 "a/b/c/d/e/f"?y
已删除目录:"a/b/c/d/e/f"
rm:是否删除目录 "a/b/c/d/e"?y
已删除目录:"a/b/c/d/e"
rm:是否删除目录 "a/b/c/d"?y
已删除目录:"a/b/c/d"
rm:是否删除目录 "a/b/c"?y
已删除目录:"a/b/c"
rm:是否删除目录 "a/b"?y
已删除目录:"a/b"
rm:是否删除目录 "a/"?y
已删除目录:"a/"
总结cp、mv、rm命令选项区别
命令 | -f | -r | -i | -b |
cp | 强制复制文件或目录 | 若源文件是目录,复制所有目录和文件 | 交互,覆盖是询问 | 目标存在,先备份,在询问是否覆盖 |
mv | 直接覆盖文件或目录 | 无 | 目标存在,互交,询问 | 标存在,先备份,在询问是否覆盖 |
rm | 强制删除 | 递归删除 | 无 |