Linux目录结构
倒挂的树形结构
Linux 基金会发布了 FHS (Filesystem Hierarchy Standard 文件系统层次化标准),规定了主要文件夹的用途。
一级目录 | 功能(作用) |
---|---|
/bin/ | 存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行 |
/boot/ | 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等 |
/dev/ | 设备文件保存位置 |
/etc/ | 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等 |
/home/ | 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming |
/lib/ | 系统调用的函数库保存位置 |
/media/ | 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 |
/mnt/ | 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区 |
/misc/ | 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的 |
/opt/ | 第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件 |
/root/ | root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下 |
/sbin/ | 保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看 |
/srv/ | 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据 |
/tmp/ | 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清理 |
FHS 针对根目录中包含的子目录仅限于上表,除此之外,Linux 系统根目录下通常还包含下面几个一级目录。
一级目录 | 功能(作用) |
---|---|
/lost+found/ | 当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录 |
/proc/ | 虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的… |
/sys/ | 虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息 |
Linux多块磁盘表示方法
/dev:存放设备(键盘、鼠标、光驱、硬盘……)相关的数据
常见的硬盘接口类型:IDE与SCSI
例如:
/dev/sda,表示SCSI接口的硬盘,第一块
/dev/sdb,表示SCSI接口的硬盘,第二块
/dev/sdc,表示SCSI接口的硬盘,第三块
Linux命令行提示符
[root@localhost ~]#
[当前登录的用户@主机名 当前所在的目录]
以#结尾表示当前登录的身份为root,以$结尾表示当前登录的身份为普通用户
Linux基本操作
查看及切换目录
pwd —— Print Working Directory
用途:显示当前所在位置
cd —— Change Directory
用途:切换工作目录
格式:cd [目标文件夹位置]
ls —— List
格式:ls [目录或文件名]…
[root@localhost ~]# pwd #显示当前所在的位置
[root@localhost ~]# cd / #切换到根目录下
[root@localhost /]# pwd
[root@localhost /]# ls #显示当前目录下内容
[root@localhost /]# cd /boot
[root@localhost boot]# ls
[root@localhost boot]# cd /
[root@localhost /]# ls
[root@localhost /]# cd /home
[root@localhost boot]# ls
[root@localhost home]# cd /root
[root@localhost ~]# ls
[root@localhost ~]# cd /etc #进入到指定目录
[root@localhost etc]# pwd #显示当前所在位置
[root@localhost etc]# ls /root #查看指定目录内容
[root@localhost etc]# ls /
[root@localhost etc]# ls /home
[root@localhost etc]# ls /opt
[root@localhost etc]# ls /boot
绝对路径和相对路径
绝对路径:以根开始的路径
相对路径:以当前为参照的路径
]# cd /opt #绝对路径,与当前所在位置无关
]# pwd
]# ls
]# cd rh #相对路径,与当前所在位置有关
]# pwd
# ..表示上一层目录(父目录)
[root@localhost CA]# cd .. #后退
注:目录后面可以有个/也可以没有,但文件的后面不能有/
查看文本文件全部内容
cat查看文本文件内容,适合查看内容较少文件
less查看文本文件内容,适合查看内容较多文件
1)按上、下键进行滚动
2)全文查找bin关键字(/bin),按n进行匹配项跳转,按N进行匹配项跳转
3)按q键进行退出
查看文本文件部分信息(head、tail命令)
grep命令过滤文本文件内容
作用:输出包含指定字符串的行
查看/修改主机名
临时主机名
永久主机名
hostnamectl set-hostname zhangsan.lisi.wangwu
查看命令对应的程序
查看CPU和内存
lscpu
cat /proc/meminfo
查看网卡的IP地址
临时设置IP
创建文档(目录+文件)
mkdir创建目录
• mkdir — Make Directory
– 格式:mkdir [/路径/]目录名…
[-p]:连同父目录一并创建
[root@A ~]# mkdir /opt/test
[root@A ~]# ls /opt/
[root@A ~]# mkdir /root/nsd01
[root@A ~]# ls /root/
touch创建文本文件
[root@A opt]# touch /opt/1.txt
[root@A opt]# ls /opt/
[root@A opt]# touch /opt/2.txt
[root@A opt]# ls /opt/
注:Linux不看扩展名,只要是mkdir创建的都是目录。
vim文本编辑器
vim当文件不存在时,会自动创建此文件;
vim不能创建目录;
路径不存在,vim没有能力创建文件。
三个模式:命令模式、插入模式、末行模式
[root@A /]# vim /opt/haha.txt
命--- i键 或者 o键--》插入模式(Esc回到命令模式)
令
模
式--- 英文的冒号:---》末行模式(Esc回到命令模式)
末行模式 :wq #保存并退出
末行模式 :q! #强制不保存并退出
i是当前行,o是新开一行。
关机与重启
关机poweroff
重启reboot
uname查看操作系统信息
uname -a
whoami命令 显示当前用户
shutdown命令 关闭操作系统
shutdown now 立即关机
shutdown -h 0 立即关机
shutdown -h 60 延时关机,60分钟
shutdown -r 0 立即重启
shutdown -r 60 延时重启,60分钟
type命令 查看内部命令
Linux命令行基础
解释器
命令的执行依赖于解释器(默认解释器/bin/bash)
用户—>解释器—>内核—>硬件
绿色:可以执行的程序
青色:快捷方式
Linux命令
快速编辑技巧
两个tab将匹配到的都显示出来,一个tab自动补全。
常用命令
获取命令帮助
方式一:命令 --help
[root@localhost ~]# cat --help
方式二:man 命令
[root@localhost ~]# man cat #按q退出
[root@localhost ~]# man passwd #显示passwd命令帮助
[root@localhost ~]# man 5 passwd
数字5表示帮助的类型,表示配置文件类型
历史命令
管理/调用曾经执行过的命令
– history:查看历史命令列表
– history -c:清空历史命令
– !n:执行命令历史中的第n条命令
– !str:执行最近一次以str开头的历史命令
统计文件的占用空间
du,统计文件的占用空间
– du [选项]... [目录或文件]...
– -s:只统计每个参数所占用的总空间大小
– -h:提供易读容量单位(K、M等)
[root@localhost ~]# du -sh /root
[root@localhost ~]# du -sh /etc
[root@localhost ~]# du -sh /boot
[root@localhost ~]# du -sh /
查看/调整系统日期时间
date,查看/调整系统日期时间
– date +%F、date +%R
– date +"%Y-%m-%d %H:%M:%S"
– date -s "yyyy-mm-dd HH:MM:SS"
]# date
]# date -s "2008-9-6 11:11:11" #修改系统时间
]# date
]# date -s "2021-8-5 16:28:00" #修改系统时间
]# date
[root@localhost ~]# date +%Y #显示年
[root@localhost ~]# date +%m #显示月
[root@localhost ~]# date +%d #显示日期
[root@localhost ~]# date +%H #显示时
[root@localhost ~]# date +%M #显示分
[root@localhost ~]# date +%S #显示秒
[root@localhost ~]# date +%F #显示年-月-日
[root@localhost ~]# date +%R #显示时:分
制作链接文件
软链接
格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软链接
]# ln -s /etc/sysconfig/network-scripts/ /ns
]# ls /
]# ls -l /ns #查看快捷方式的信息,结尾不要有/
]# touch /ns/haha.txt
]# touch /ns/maohehaozi.txt
]# touch /ns/shukehebeita.txt
]# ls /etc/sysconfig/network-scripts/
软链接优势:可以针对目录与文件制作快捷方式,支持跨分区
软链接缺点:源数据消失,快捷方式失效
不加/认为是查看文件,加了/认为查看的是目录
硬链接
格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
硬链接优势:源数据消失,快捷方式仍然有效
硬链接缺点:只能针对文件制作快捷方式,不支持目录和跨分区
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# echo 123 > /opt/A.txt
[root@localhost ~]# ln -s /opt/A.txt /opt/B.txt #软链接
[root@localhost ~]# ls /opt/
[root@localhost ~]# ln /opt/A.txt /opt/C.txt #硬链接
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt
[root@localhost ~]# cat /opt/C.txt
[root@localhost ~]# rm -rf /opt/A.txt
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt #软链接失效
cat: /opt/B.txt: 没有那个文件或目录
[root@localhost ~]# cat /opt/C.txt #硬链接仍然有效