• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

Linux 基础知识

Data: 2019-09-26 13:40:23Form: JournalClick: 7

# Linux 基础知识

  • 为了方便管理文件和目录,Linux 系统将它们组织成一个以根目录 / 开始的倒置的树状结构。
  • Linux 中的目录,和 Windows 系统中的文件夹类似,不同之处在于,Linux 系统中的目录也被当做文件看待。

# 一、Linux 系统一级目录结构

  • 为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准
  • FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件
  • 文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录
    • 所有目录都是由根目录衍生出来的
    • 根目录与系统的开机、修复、还原密切相关

linux6

# 1、根目录(/)里的文件

编号名称完整路径描述(作用)
1bin -> usr/bin/bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
2boot/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
3dev/dev/设备文件保存位置
4etc/etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
5home/home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
6lib -> usr/lib/lib/系统调用的函数库保存位置
7lib64 -> usr/lib64/lib64/64 位系统调用的函数库保存位置
8lost+found/lost+found/当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录
9media/media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
10mnt/mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
11misc/misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。
12opt/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中
13proc/proc/虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的
14root/root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
15run/run/是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run
16sbin -> usr/sbin/sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
17srv/srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
18sys/sys/虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息
19tmp/tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空
20usr/usr/这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
21var/var/目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等

# 2、usr 目录(/usr/) 里的文件

  • usr(注意不是 user),此目录用于存储系统软件资源。
  • Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体
编号名称完整路径描述(作用)
1bin/usr/bin/存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
2etc/usr/etc/一个极少用到的配置文件存放地
3games/usr/games/曾经包含游戏等文件,现在很少用到
4include/usr/include各种头文件,编译文件等时需要使用
5lib/usr/lib/应用程序调用的函数库保存位置
6lib64/usr/lib64/64 位应用程序调用的函数库保存位置
7libexec/usr/libexec/不常用的执行文件或脚本
8local/usr/local/手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
9sbin/usr/sbin/存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。
10share/usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
11src/usr/src/源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里
12tmp -> ../var/tmp/var/tmp/一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
13XllR6/usr/XllR6/系统的二进制文件,库文件,文档,字体等

# 3、var 目录(/var/)里的文件

  • var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等
编号名称完整路径描述(作用)
1adm/var/adm/软件包安装信息、日志、管理信息等就存放在该目录下
2lib/var/lib/程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
3local/var/local/本地系统管理员软件安装目录(安装系统级的应用)
4lock -> ../run/lock/run/lock/
5log/var/log/登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
6mail -> spool/mail/var/spool/mail/存放新收到的邮件
7nis/var/nis/NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息
8opt/var/opt/额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把 tomcat 等都安装到这里。
9preserve/var/preserve/存放的是非正常结束的 vi 会话的信息
10run -> ../run/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置
11spool/var/spool/里面主要都是一些临时存放,随时会被用户所调用的数据
12tmp/var/tmp一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
13yp/var/yplinux 的 nis 服务的日志文件存放的目录

# 二、命令

  • Linux 命令按照来源方式,可分为两种,分别是 Shell 内置命令和外部命令
    • Shell 内置命令,就是 Shell 自带的命令,这些命令是没有执行文件的
    • 外部命令就是由程序员单独开发的,所以会有命令的执行文件

# 1、ls 显示当前目录下的内容

语法:ls [-al] 目录名

编号选项说明
1-a显示所有文件及目录 (ls 内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
2-l除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
# 查看当前目录
ls
# 查看根目录
ls /
# 查看usr目录
ls /usr
# 查看根目录详细
ls -l /
# 查看根目录详细,包括隐藏文件
ls -la /

# 2、cd 切换目录

语法:cd 目录名

# 进入usr目录
cd /usr
# 进入根目录
cd /
# 进入上级目录
cd ..
# 进入上上级目录
cd ../..
# 进入家目录
cd ~

# 三、补充知识

# 1、命令提示符

[root@localhost ~]#

  • [ ]:这是提示符的分隔符号,没有特殊含义。
  • root:显示的是当前的登录用户,现在使用的是 root 用户登录。
  • @:分隔符号,没有特殊含义。
  • localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
  • ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
  • #:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $。

# 2、特殊符号

编号特殊符号描述(作用)
1~代表当前登录用户的主目录
2~用户名表示切换至指定用户的主目录
3-代表上次所在目录
4.代表当前目录
5..代表上级目录

# 3、隐藏文件

  • 文件名或目录名称开头为"."的为隐藏

# 4、路径

  • 路径为独立知识,跟命令没关系,它按照自己的写法

绝对路径:

  • 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录

相对路径:

  • 路径的写法,不是由 / 写起,例如由 /var/lib/rpm 要到 /var/lib/yum 底下时,可以写成: cd ../yum, 根据当前目录的路径,就是相对路径

# 5、命令基础格式

[root@localhost ~]# 命令 [选项][参数]

  • 命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,也能执行
  • 参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作
  • 有些命令参数是多个

# 6、路径自动补齐

  • 对初学者来说,输入完整的文件名感觉很麻烦,尤其面临文件名(目录名)特别长的时候
  • Shell(Bash)提供了一种称为“命令行自动补全”的功能,在输入文件名的时候,只需要输入该文件名的前几个字符,然后按 Tab 键,Shell 就可以自动将文件名补全

# 7、文件的详细信息

图片

编号特殊符号描述(作用)
1drwxr-xr-x.规定了不同的用户对文件所拥有的权限
2100引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录
3root所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
4root所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
54096大小,默认单位是字节。-h 参数:人性化显示,可以改变单位 KB、MB
6Jul 11 2019文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间
7var文件名或目录名

字节单位:

图片

月份对照

编号英文中文
1Jan一月
2Oct二月
3Nov三月
4Dec四月
5Feb五月
6Mar六月
7Apr七月
8May八月
9Jun九月
10Jul十月
11Aug十一月
12Sep十二月
  • 一个文件有三个时间:
    • 修改时间:文件内容最后一次修改的时间,我们经常用的 ls -l 命令显示出来的文件时间就是这个时间
    • 访问时间:对文件进行一次读操作,它的访问时间就会改变
    • 状态时间:当文件的状态被改变的时候,状态时间就会随之改变

# 8、ls 命令

编号选项说明
1-a显示所有文件及目录 (ls 内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
2-l除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出,修改时间(mtime)
3-lc除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出,状态时间(ctime)
4-lu除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出,访问时间(atime)
5--full-time以完整时间模式 (包含年、月、日、时、分)输出
# 修改时间
ls -l
# 状态时间
ls -lc
# 访问时间
ls -lu
# 完整时间
ls --full-time
Name:
<提交>