Linux(三):系统启动、目录结构与文件属性

目录

系统启动

内核引导

运行 init

运行级别

系统初始化

建立终端

图形模式与文字模式

系统目录结构

运行

指令集合

外部文件管理

系统启动

扩展

临时文件

账户

文件基本属性

更改属性

chgrp 更改属组

chown 更改属主、属组

chmod 更改 9 个属性

符号类型更改


系统启动

  • 内核引导;

  • 运行 init;

  • 系统初始化;

  • 建立终端;

  • 用户登录系统。

内核引导

当计算机打开后,首先是 BIOS 开机自检,按照 BIOS 中设置的启动设备(通常是硬盘)来启动。

操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。

运行 init

init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。

init 程序首先是需要读取配置文件 /etc/inittab。

运行级别

许多程序在 Windows 叫做"服务"(service),在 Linux 就叫做"守护进程"(daemon)。

init 进程的一大任务,就是运行这些开机启动的程序。但不同场合需要启动不同程序,比如用作服务器时,需要启动 Apache。

Linux 允许为不同的场合分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。

Linux 系统有 7 个运行级别(runlevel):

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

  • 运行级别1:单用户工作状态,root 权限,用于系统维护,禁止远程登录

  • 运行级别2:多用户状态(没有NFS)

  • 运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式

  • 运行级别4:系统未使用,保留

  • 运行级别5:X11 控制台,登录后进入图形 GUI 模式

  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

系统初始化

  • 在 init 的配置文件中: si::sysinit:/etc/rc.d/rc.sysinit,它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit 是一个 bash shell 脚本,主要是完成一些系统初始化工作,rc.sysinit 是每一个运行级别都要首先运行的重要脚本。

主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务

l5:5:wait:/etc/rc.d/rc 5

以 5 为参数运行 /etc/rc.d/rc,一个 Shell 脚本,接受 5 为参数,去执行 /etc/rc.d/rc5.d/ 目录下所有 rc 启动脚本,真正的rc启动脚本实际上是在 /etc/rc.d/init.d/ 目录下,一般能接受start、stop、restart、status 等参数。

  • /etc/rc.d/rc5.d/ 中的 rc 启动脚本通常是 K 或 S 开头的连接文件,对于以 S 开头的启动脚本,将以start参数来运行。若存在相应脚本存在 K 打头的连接,而且已处于运行态(以 /var/lock/subsys/ 的文件作为标志),则将首先以 stop 为参数停止已经启动的守护进程,然后再重新运行,这样做是为了保证是当init改变运行级别时,所有相关的守护进程都将重启。

建立终端

rc 执行完毕后,init 会打开 6 个终端,以便用户登录系统不是 root,且存在 /etc/nologin 文件,login 将输出 nologin 文件的内容,然后退出。

只有/etc/securetty中登记了的终端才允许 root 用户登录,如果不存在这个文件,则 root 用户可以在任何终端上登录。

图形模式与文字模式

默认我们登录的就是第一个窗口 tty1,这六个窗口分别为 tty1, tty2 … tty6,按下 Ctrl + Alt + F1 ~ F6 进行切换,当进入命令窗口界面后再返回图形界面,只要按下 Ctrl + Alt + F7 。

系统目录结构

ls /

运行

  • /proc :Processes(进程) ,一种伪文件系统(虚拟文件系统),存储当前内核运行状态的一系列特殊文件,是一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息。

    这个目录的内容不在硬盘上而是在内存里,可以直接修改里面的某些文件,

    比如可以通过下面的命令来屏蔽主机的 ping 命令,使别人无法 ping 你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /var :variable(变量) ,存放着在不断扩充着的东西,包括各种日志文件。

指令集合

  • /sbin :Superuser Binaries (超级用户的二进制文件) ,存放系统管理员使用的系统管理程序。

  • /bin : Binaries (二进制文件) , 存放着最经常使用的命令。

外部文件管理

  • /dev : Device(设备) , 存放 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /media :Linux 会自动识别一些设备,如U盘、光驱等,识别的设备挂载到这个目录下。

  • /mnt :为了让用户临时挂载别的文件系统,可以将光驱挂载在 /mnt/ 上,进入该目录就可以查看光驱里的内容了。

系统启动

  • /boot : 存放启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /etc : Etcetera(等等) , 存放所有的系统管理所需要的配置文件和子目录。

  • /lib : Library(库),存放系统最基本的动态连接共享库。/selinux :Redhat/CentOS 特有目录,是一个安全机制,类似于 windows 的防火墙,存放 selinux 相关的文件。

  • /sys :Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了 3 种文件系统的信息:

    针对进程信息的 proc 文件系统、

    针对设备的 devfs 文件系统、

    针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

扩展

  • /srv :存放一些服务启动之后需要提取的数据。

  • /opt :optional(可选) ,给主机额外安装软件所摆放的目录。默认是空的。

临时文件

  • /tmp :temporary(临时) 存放一些临时文件的。

  • /run :临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

  • /lost+found :一般是空的,当系统非法关机后,就存放了一些文件。

账户

  • /usr :unix shared resources(共享资源) ,用户很多应用程序和文件都在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin : 系统用户使用的应用程序。

  • /usr/sbin : 超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src : 内核源代码默认的放置目录。

  • /home :用户的主目录,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如 alice、bob 和 eve。

  • /root :系统管理员,也称超级权限者的用户主目录。

文件基本属性

Linux 属于一种多用户系统,不同用户有不同的权限,为了保护系统的安全性,系统对不同用户访问同一文件的权限做了不同的规定:

  • chown (change owner) : 修改所属用户与组(授权用户)。

  • chmod (change mode) : 修改用户的权限(设置权限)。

使用 ll 或者  ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 ttt
dr-xr-xr-x   4 bin  bin  4096 Apr 19  2012 boot 
0123456789   ...

第一个属性:

    文件类型 0 / 属主权限 1-3 / 属组权限 4-6 / 其他用户权限 7-9

文件类型:

d : 目录,- : 文件,l : 链接文档,

b : 装置文件里面的可供储存的接口设备(可随机存取装置),

c : 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

权限( 3 个为一组):

r : 可读(1、4、7)

w : 可写(2、5、8)

x : 可执行(3、6、9)

- : 没有对应的权限

更改属性

chgrp 更改属组

chgrp [-R] 属组名 文件名

-R:递归更改,
    在更改某个目录文件的属组时,如果加上 -R ,那么该目录下的所有文件的属组都会更改。

chown 更改属主、属组

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名 

[root@www ~]# chown bin install.log
[root@www ~]# ls -l 
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

chmod 更改 9 个属性

chmod [-R] xyz 文件或目录

-rwxrwx--- : -770

[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc
  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

符号类型更改

九个权限分别是:

  • user(u):用户
  • group(g):组
  • others(o):其他
  • all(a):所有
# chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值