一 、文件及目录作用说明
1、/ 作用: Linux 目录从根开始是一个倒树形结构,所有的目录都是从根开始
2、/etc 作用:用来存放系统的配置文件,及启动程序文件
网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 |ens33
用户登录信息的配置文件 /etc/passwd
用户密码存放位置 /etc/shadow
DNS 地址配置文件临时生效重启失效,但可以查看 /etc/resolv.conf
Centos 7 主机名配置文件 /etc/hostname
Centos 6主机名配置文件 /etc/sysconfig/network
配置开机设备自动挂载的文件 /etc/fstab
存放开机自启动程序命令的文件 /etc/rc.local
系统启动设置运行级别的文件 /etc/inittab
配置用户环境变量/别名等文件 /etc/profile及 /etc/bashrc
系统环境变量 /etc/environment
用户登录后执行的脚本所在的目录 /etc/profile.d
配置用户登录系统终端之前显示信息文件 /etc/issue 和issue.net
配置用户登录系统之后显示的内容及信息 /etc/motd
声明RedHat版本号和名称信息 /etc/redhat-release
Linux 内核参数设置文件 /etc/sysctl.cof
修改系统语言的文件 /etc/locale.conf
软件启动的程序所在的目录(centos 6) /etc/init.d
centos 7 软件启动的程序所在的目录在/usr目录中
本地域名和IP地址的绑定 /etc/hosts
3、/home 普通用户的家目录
4、/lib 启动系统和命令运行所需要的库文件
5、/mnt 临时挂载文件
6、/opt 额外的应用包
7、/proc 作用:用来存放内存信息、虚拟目录、进程信息和内核信息
系统负载、可查看系统的繁忙程度 /proc/loadavg
系统的内存信息 /proc/meminfo
系统的CPU信息 /proc/cpuinfo
系统的挂载信息 /proc/mounts
8、 /root root用户的家目录
9、bin 和 /usr/bin 一样都是存放 二进制命令,普通命令
10 、sbin 和/usr/sbin 一样都是 超级管理员所用的命令
11、/var 用来存放经常变化的内容,如:日志 等...
记录系统及软件运行信息文件所在的目录 /var/log
记录系统级别日志 /var/messages
系统登录信息日志文件 /var/log/secure
记录硬件信息加载情况的日志文件 /var/log/dmesg
12、/tmp 临时文件目录,可以当回收站来用
13、/usr 用户和系统软件应用程序目录
软件启动程序所在目录 (centos 7 ) /usr/lib/systemd/system
14、lost+found 系统修复
15、/boot 系统引导文件所在的目录
16、/dev 设备存放文件 如:光盘 U盘 硬盘个分区...
————————————————————————————————
二、LINUX 常用的快捷键及基础命令
1、快捷键
ctrl +c 取消当前操作
ctrl +l 清屏相当于clear
ctrl+a 移动到行首
ctrl+e 移动到行尾
ctrl+u 删除/剪切光标到行首的内容
ctrl +k 删除/剪切光标到行尾的内容
ctrl+y 粘贴
ESC +. 取上一个命令的最后一个参数
2、关机、重启类命令
shutdown -r now //立即重启
shutdown -r 15 //15分钟后重启
init6 //立即重启
reboot //立即重启
halt //关机
poweroff //立即关机
shutdown -h now //立即关机
shutdown -h 15 //15分钟后关机
init0 //立即关机
3、更换或进入目录
cd path 进入指定的路径下
cd 或cd ~ //返回当前登录终端用户的家目录
[root@oldboy sysconfig]# cd ~
[root@oldboy ~]#
cd ../ //返回上一级目录
[root@oldboy /]# cd /etc/sysconfig/network-scripts/
[root@oldboy network-scripts]# cd ../
[root@oldboy sysconfig]#
cd / //进入根目录
[root@oldboy network-scripts]# cd /
[root@oldboy /]#
cd - //返回上一次所在的目录
[root@oldboy /]# cd /etc/sysconfig/network-scripts/
[root@oldboy network-scripts]# cd -
/
[root@oldboy /]#
4、查看目录及文件的命令
ls 查看当前目录下的内容
参数 | 注释 |
---|---|
ls -l == ll | 显示目录下的文件及目录的详细信息 |
-a | 查看当前目录下的所有内容,包括隐藏文件 |
-i | 显示当前目录下的文件及目录的ID |
-d | 查看当前目录 |
--full-time | 以完整的实际模式显示(包含年月日时分) |
-h | 人性化显示目录及文件的大小(KB、MB、GB) |
-t | 以修改时间排序 |
-S | 文件从大到小排序 |
-R | 递归查询(表示一层一层的查询) |
ls 查看当前目录下的内容
[root@oldboy /]# ls
alex boot data etc lib media oldboy proc run shell sys usr
bin cache dev home lib64 mnt opt root sbin srv tmp var
ls -a 查看当前目录下的所有内容,包括隐藏文件(.开头的全部为隐藏文)
[root@oldboy ~]# ls -a
. .bash_history .bashrc oldboy01 oldboy04 .ssh .viminfo.tmp
.. .bash_logout .cshrc oldboy02 oldboy05 .tcshrc .viminfz.tmp
anaconda-ks.cfg .bash_profile .lesshst oldboy03 .rnd .viminfo
ls -i 显示当前目录下的文件及目录的ID
[root@oldboy ~]# ls -i
33574991 anaconda-ks.cfg 17544638 oldboy02 50332817 oldboy04
580094 oldboy01 33595269 oldboy03 591888 oldboy05
ls -d 查看当前目录
[root@oldboy ~]# ll -d
dr-xr-x---. 8 root root 4096 4月 6 11:37 .
--full-time 以完整的实际模式显示(包含年月日时分)
[root@oldboy ~]# ls --full-time -h
总用量 4.0K
-rw-------. 1 root root 1.3K 2018-10-02 00:44:02.420021477 +0800 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy01
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy02
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy03
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy04
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy05
ll -h 人性化显示目录及文件的大小(KB、MB、GB)
[root@oldboy ~]# ll -h
总用量 4.0K
-rw-------. 1 root root 1.3K 10月 2 2018 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 3月 23 18:02 oldboy01
drwxr-xr-x. 2 root root 6 3月 23 18:02 oldboy02
drwxr-xr-x. 2 root root 6 3月 23 18:02 oldboy03
drwxr-xr-x. 2 root root 6 3月 23 18:02 oldboy04
drwxr-xr-x. 2 root root 6 3月 23 18:02 oldboy05
ll -t 以修改时间排序
[root@oldboy ~]# ls --full-time -h
总用量 4.0K
-rw-------. 1 root root 1.3K 2018-10-02 00:44:02.420021477 +0800 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy01
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy02
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy03
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy04
drwxr-xr-x. 2 root root 6 2019-03-23 18:02:47.583357208 +0800 oldboy05
ll -S 文件从大到小排序
[root@oldboy tmp]# ll -S
总用量 12
-rw-------. 1 root root 240 3月 23 17:23 yum_save_tx.2019-03-23.17-23.5IJ_Iw.yumtx
-rw-------. 1 root root 240 3月 23 17:24 yum_save_tx.2019-03-23.17-24.Miv_Qv.yumtx
-rw-------. 1 root root 236 3月 23 19:01 yum_save_tx.2019-03-23.19-01.3Z282m.yumtx
drwx------. 3 root root 17 4月 2 13:40 systemd-private-6f59ed8af0254e69836af2fc13613c55-chronyd.service-uVSfrc
drwx------. 3 root root 17 4月 2 13:40 systemd-private-6f59ed8af0254e69836af2fc13613c55-vgauthd.service-hwFYro
drwx------. 3 root root 17 4月 2 13:40 systemd-private-6f59ed8af0254e69836af2fc13613c55-vmtoolsd.service-PsKioi
ll -R 递归查询(表示一层一层的查询)
[root@oldboy mnt]# ls -R /mnt/
/mnt/:
a
/mnt/a:
b
/mnt/a/b:
c
/mnt/a/b/c:
d
/mnt/a/b/c/d:
5、文件的创建
touch 创建文件
命令 | 参数 |
---|---|
touch file | 创建文名为file 的文件 |
touch a b c | 批量创建文件a、b、c |
touch .x | 创建隐藏文件x |
touch -c a | 测试创建(实际并不存在文件a) |
touch -d 20181001 file //将file的访问时间和修改时间改为2018-10-01
[root@oldboy mnt]# touch file
[root@oldboy mnt]# touch -d 20181001 file
[root@oldboy mnt]# ll file
-rw-r--r--. 1 root root 0 10月 1 2018 file
touch -m -t 200010011830 file 将文件的修改时间改为2000年10月01日18时30分
[root@oldboy mnt]# stat file1
文件:"file1"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:4374 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2019-04-06 15:11:45.693892886 +0800
最近更改:2019-04-06 15:11:45.693892886 +0800
最近改动:2019-04-06 15:11:45.693892886 +0800
创建时间:-
[root@oldboy mnt]# touch -m -t 200010011830 file1
[root@oldboy mnt]# stat file1
文件:"file1"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:4374 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2019-04-06 15:11:45.693892886 +0800
最近更改:2000-10-01 18:30:00.000000000 +0800
最近改动:2019-04-06 15:12:23.631320157 +0800
touch -r file file2 将file2 的时间戳改为file的时间戳
[root@oldboy mnt]# stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:83 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2001-10-01 00:00:00.000000000 +0800
最近更改:2001-10-01 00:00:00.000000000 +0800
最近改动:2019-04-06 15:41:20.534054658 +0800
创建时间:-
[root@oldboy mnt]# stat file2
文件:"file2"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:4373 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2019-04-06 15:41:32.160190437 +0800
最近更改:2019-04-06 15:41:32.160190437 +0800
最近改动:2019-04-06 15:41:32.160190437 +0800
创建时间:-
[root@oldboy mnt]# touch -r file file2
[root@oldboy mnt]# stat file2
文件:"file2"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:4373 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2001-10-01 00:00:00.000000000 +0800
最近更改:2001-10-01 00:00:00.000000000 +0800
最近改动:2019-04-06 15:42:09.867630819 +0800
创建时间:-
6、目录的创建
mkdir 创建目录
命令 | 说明 |
---|---|
mkdir one | 创建名为one的目录 |
mkdir -p a b c | 批量创建目录a b c |
7、文件、目录的复制
cp 复制文件及目录
参数 | 注释 |
---|---|
-r | 递归复制 复制目录和目录的内容 |
-p | 复制的时候保持属性不变 |
-d | 软连接相关 |
-a | 相当于-pdr |
8、文件、目录的移动(剪切)
mv 移动文件及目录
9、文件、目录的删除
rm 删除目录及文件,默认只能删除文件
参数 | 注释 |
---|---|
-r | 删除目录及目录里边的内容 |
-f | 强制删除 |
10、分屏显示命令
more 以分屏方法显示文件内容
交互操作方法:more file
按enter键向下逐行滚动
按空格键向下翻一屏,b键向上翻一屏
按q键退出
less 以分屏方法显示文件内容
交互操作方法:less file
按空格/f 键 像下翻一屏
按b 键 向上翻一屏
按 G 键 翻至文件最后一页
按q键退出
参数 | 注释 |
---|---|
-b | <缓冲区大小> 设置缓冲区的大小 |
-e | 当文件显示结束后,自动离开 |
-f | 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 |
-g | 只标志最后搜索的关键词 |
-i | 忽略搜索时的大小写 |
-m | 显示类似more命令的百分比 |
-N | 显示每行的行号 |
-o | <文件名> 将less 输出的内容在指定文件中保存起来 |
-s | 显示连续空行为一行 |
-S | 行过长时间将超出部分舍弃 |
————————————————————————————————
三、系统的启动流程
1、Centos 6 启动流程
Centos 6 系统启动过程
Centos 6 系统启动过程
自检之前:服务器按下电源键开始,微控制器下达复位命令 ,各寄存器复位,然后下达指令使硬件读取ROM里的BIOS程序,之后的硬件控制权交到BIOS手里。
1、BIOS自检
BIOS程序加载CMOS信息(COMS是一个可读写的RAM芯片,保存BIOS设置硬件参数的数据),读取到主机各硬件信息,BIOS开始加电自检,检测主机各硬件信息,若发现硬件错误则报错。若正常,BIOS对各硬件进行初始化,BIOS将自身复制到物里内存中继续执行,开始引导存储设备,决定硬盘的启动顺序,接下来读取磁盘里的内容,要读取文件就需要文件系统,BIOS没有挂载文件系统的功能,因此需要一个不依赖文件系统的方法使得BIOS读取磁盘里的内容,这就是MBR(扇区主引导记录),BIOS读取第一个可引导设备的MBR中的BOOT loader ,BIOS将MBR中的内容载入到内存中,然后BIOS将控制权交给MBR(boot loader), 然后MBR接管任务开始执行。
简单的说就是:BIOS加载COMS信息来判断硬件状况,BIOS将自己复制到内存中继续执行,BIOS找到第一个可引导的磁盘,读取MBR信息,将MBR 加载到内存中,控制权交给MBR(boot loader ) ,MBR接管任务开始执行
2、MBR引导
MBR接管之后,boot loader 就要读取磁盘所在的操作系统的核心文件(及内核),一块磁盘可以安装多个系统,想要让boot loader 引导的就是用户想要的操作系统,就必须要有一个相对应得的程序来处理各自对应的操作系统的核心文件,这个程序就是操作系统的loader ,这样一来boot loader 只要将控制权交给 操作系统的loader ,让它去负责启动操作系统就可衣以了。
一个硬盘只有的每个分区的第一个扇区叫boot sector(引导扇区),这个扇区存放的就是操作系统的loader,所以这就是为为什么一个分区只能安装一个操作系统,MBR的boot loader 有三个功能,提供选择菜单,读取内核文件,将控制权转交给其他的系统loader。
3、grub 引导
grub 是boot loader 的一种,就grub来说,为了打破MBR中只有446Bytes 用于存放boot loader这一个限制,所以grub 通过三个阶段来实现。
stage1 :存放于MBR当中,用来加载stage1.5阶段,
stage1.5:存放在MBR之后的扇区,用来加载stage2所在分区的文件系统,stage1.5就是用来加载文件系统的。
stage2:存放于磁盘分区之上,具体放在/boot/grub目录之下 主要用来加载内核文件(vmlinuz-version-release)以及临时根文件系统(initramfs-version-release.img )。
4、加载内核
内核得到控制权之后,首先要进行自身的初始化,目的是,探测可识别到的所有硬件设备,并加载硬件的驱动程序。
5、启动init进程(守护进程)
grub 中默认指定了init=/sbin/init ,在内核文件中,规定了init启动顺序
即 /sbin/init-->/etc/init/-->/bin/init-->/bin/sh ,若修改了grub.cfg中kernel行自定义执行程序init=/bin/bash,此时可以直接进入bash界面。
6、读取/etc/inittab文件
初始运行级别(run level)
7、执行/etc/rc.d/rc.sysinit 程序
完成系统初始化
8、根据运行级别启动启动 rc数字.d下的开机启动脚本
可以在 /etc/rc.d/rc.local文件中自定义开机启动命令
9、执行/bin/login
/bin/login 执行完成后,就到了login 界面了。到此整个开机过程完成
2、Centos 7 启动流程
centos 7 与Centos 6 启动流程差不多,从加载第一个进程开始,才有区别的,看看下边的比较图就明白了。