Linux 系统启动过程
linux启动时我们会看到许多启动信息。Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:
- 内核的引导。
- 运行 init。
- 系统初始化。
- 建立终端 。
- 用户登录系统。
图形模式与文字模式的切换方式
Linux预设提供了六个命令窗口终端机让我们来登录。
默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。
如果你安装了图形界面,默认情况下是进入图形界面的,此时你就可以按Ctrl + Alt + F1 ~ F6来进入其中一个命令窗口界面。
当你进入命令窗口界面后再返回图形界面只要按下Ctrl + Alt + F7 就回来了。
如果你用的vmware 虚拟机,命令窗口切换的快捷键为 Alt + Space + F1~F6. 如果你在图形界面下请按Alt + Shift + Ctrl + F1~F6 切换至命令窗口。
不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
关机的命令有 shutdown –h now halt poweroff 和 init 0 , 重启系统的命令有 shutdown –r now reboot init 6。
Linux 系统目录结构
- /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
- /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
- /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中
指令集合:
- /bin:存放着最常用的程序和指令
- /sbin:只有系统管理员能使用的程序和指令。
外部文件管理:
- /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
- /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
- /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件:
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
- /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
- /tmp:这个目录是用来存放一些临时文件的。
账户:
- /root:系统管理员的用户主目录。
- /home:用户的主目录,以用户的账号命名的。
- /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin:系统用户使用的应用程序与指令。
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
运行过程中要用:
- /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
- /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。
扩展用的:
- /opt:默认是空的,我们安装额外软件可以放在这个里面。
- /srv:存放服务启动后需要提取的数据(不用服务器就是空)
Linux 文件基本属性
每个文件的属性由左边第一部分的10个字符(如上的“dr-xr-xr-x”)来确定。我们把十个字符拆开看:
- 10位字符表示:
- 0位:确定文件类型
- 1-3位:确定该文件的所有者对文件的权限 owner
- 4-6位:确定所有者的同组用户拥有该文件的权限 group
- 7-9位:确定其他用户拥有该文件的权限 others
- 第一个字符:代表这个文件的类型,是目录、文件,还是一个链接等等
- [ d ] 目录
- [ - ] 文件
- [ l ] 链接文档(link file)
- [ b ] 可供储存的接口设备(可随机存取装置)
- [ c ] 串行端口设备,例如键盘、鼠标(一次性读取装置)
- 接下来的字符:以三个一组分成三组,用 r、w、x 三个参数的组合表示,位置不会改变
- [ r ] 代表可读(read)
- [ w ] 代表可写(write)
- [ x ] 代表可执行(execute)
- [ - ] 没有权限
更改文件属性
1、chgrp:更改文件属组
语法:
chgrp [-R] 属组名 文件名
2、chown:更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名 chown [-R] 属主名:属组名 文件名
3、chmod:更改文件9个属性
- r:4
- w:2
- x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
chmod [-R] xyz 文件或目录
Linux 文件与目录管理
ls (列出目录)
语法:
[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称 [root@www ~]# ls [--color={never,auto,always}] 目录名称 [root@www ~]# ls [--full-time] 目录名称
选项与参数:
- -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
pwd (显示目前所在的目录)
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
[root@www ~]# pwd [-P]
选项与参数:
- -P :显示出确实的路径,而非使用连结 (link) 路径。
mkdir (创建新目录)
如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。
语法:
mkdir [-mp] 目录名称
选项与参数:
- -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
- -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
cp (复制文件或目录)
cp 即拷贝文件和目录。
语法:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination) [root@www ~]# cp [options] source1 source2 source3 .... directory
选项与参数:
-
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-
-r:递归持续复制,用於目录的复制行为;(常用)
-
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-
-u:若 destination 比 source 旧才升级 destination !
rm (移除文件或目录)
语法:
rm [-fir] 文件或目录
选项与参数:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
mv (移动文件与目录,或修改名称)
语法:
[root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 source3 .... directory
选项与参数:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
Linux 磁盘管理
Linux磁盘管理好坏直接关系到整个系统的性能问题。
Linux磁盘管理常用三个命令为df、du和fdisk。
- df:列出文件系统的整体磁盘使用量
- du:检查磁盘空间使用量
- fdisk:用于磁盘分区
磁盘挂载与卸除
Linux 的磁盘挂载使用 mount
命令,卸载使用 umount
命令。
磁盘挂载语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
Linux vi/vim
Linux YUM
配置本地Yum仓库
实现此案例需要按照如下步骤进行。
步骤一:搭建一个本地Yum,将RHEL6光盘手动挂载到/media
命令操作如下所示:
[root@localhost ~]# mount /dev/cdrom /media/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# mount | tail -1 /dev/sr0 on /media type iso9660 (ro)
步骤二:将本地设置为客户端,进行Yum验证
Yum客户端需编辑配置文件,命令操作如下所示:
[root@localhost ~]# cd /etc/yum.repos.d/ //必须在这个路径下 [root@localhost yum.repos.d]# ls //此路径下事先有配置文件的模板 rhel-source.repo [root@localhost yum.repos.d]# cp rhel-source.repo rhel6.repo //配置文件必须以.repo结尾 [root@localhost yum.repos.d]# vim rhel6.repo [rhel-6] //中括号里内容要求唯一,但不要出现特殊字符 name=Red Hat Enterprise Linux 6 //此为描述信息,可以看情况填写 baseurl=file:///media/ //此项为yum软件仓库位置,指向光盘挂载点 enabled=1 //此项为是否开启,1为开启0为不开启 gpgcheck=1 //此项为是否检查签名,1为监测0为不检测 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //签名认证信息的路径 [root@localhost /]# yum repolist Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. rhel-6 | 3.9 kB 00:00 ... rhel-6/primary_db | 3.1 MB 00:00 ... repo id repo name status rhel-6 Red Hat Enterprise Linux 6 3,690 repolist: 3,690