Linux-基础
参考文献
- 鸟哥的Linux私房菜基础学习篇(第四版)
基础命令
-
显示日志与时间:
date
-
显示日历:
cal
-
计算器:
bc
-
注销:
logout
-
帮助命令:
-
man <command>
:DATE(1)
代号 说明 1 用户在 Shell
环境中可以操作的命令或者可执行文件2 系统内核可调用的函数与工具等 3 一些常用的函数(function)与函数库(library),大部分为C的函数库(libc) 4 设备文件的说明,通常在/dev下的文件 5 配置文件或是某些文件的格式 6 游戏(games) 7 惯例与协议等.例如Linux文件系统,网络协议,ASCII代码等的说明 8 系统管理员可使用的管理命令 9 跟内核有关的文件 -
<command> --help
-
info <command>
-
说明文档路径:
/usr/share/doc/
-
-
获取终端支持的语系数据库:
-
echo $LANG
-
locale
1
2
3
4
5
6
7
8
9
10
11
12
13
14LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
-
-
在后台运行程序
-
使用
&
或者bg
命令1
updatedb &
-
前台运行程序
fg
-
在退出后让程序继续运行
nohup
命令1
nohup java -jar your_jar_file.jar > jar.log 2>&1 &
-
正确的关机方法
-
观察系统的使用状态
- 如果要看目前有谁在线,可以执行
who
命令; - 如果要看网络的联机状态,可以执行
netstat -a
命令; - 如果要看后台执行的程序,可以执行
ps -aux
命令;
- 如果要看目前有谁在线,可以执行
-
正确的关机命令的使用
-
将数据同步到硬盘:
sync
-
常用的关机命令:
shutdown
-
关机只有root才有权限使用;
-
shutdown
可以完成以下的工作- 可以自由选择关机模式: 是要关机或重启均可;
- 可以设置关机时间: 可以设置成现在立刻关机,也可以设置某个特定的时间才关机
- 可以设置自定关机信息: 在关机之前,可以将自己设置的信息发送给在线用户;
- 可以仅发出告警信息
-
/sbin/shutdown [-krhc] [时间] [告警信息]
参数 说明 -k 不要真的关机,只是发送告警信息出去 -r 在将系统的服务停掉之后就重新启动 -h 将系统的服务停掉后,立即关机 -c 取消已经在进行的 shutdown
命令内容时间 指定系统关机的时间 -
示例
- 立即关机:
shutdown -h now
- 指定时间点进行关机:
shutdown -h 20:25
- 系统再过10分钟关机:
shutdown -h +10
- 立即重启:
shutdown -r now
- 立即关机:
-
-
重启,关机:
reboot
,halt
,poweroff
sync;sync;sync;reboot
halt
: 系统停止,屏幕可能会保留系统已停止的信息;poweroff
: 系统关机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 关闭系统(1)
shutdown -h now
# 关闭系统(2)
init 0
# 关闭系统(3)
telinit 0
# 按预定时间关闭系统
shutdown -h hours:minutes &
# 取消按预定时间关闭系统
shutdown -c
# 重启(1)
shutdown -r now
# 重启(2)
reboot
# 注销
logout -
systemd
和System V init
的区别和作用
System V init 运行级别 | systemd目标名称 | 作用 |
---|---|---|
0 | runlevel0.target.poweroff.target |
关机 |
1 | runlevel1.target.rescue.target |
单用户模式 |
2 | runlevel2.target.multi-user.target |
等同于级别3 |
3 | runlevel3.target.multi-user.target |
多用户的文本界面 |
4 | runlevel4.target.multi-user.target |
等同于级别3 |
5 | runlevel5.target.graphical.target |
多用的图形界面 |
6 | runlevel6.target.reboot.target |
重启 |
emergency | emergency.target |
紧急Shell |
-
sudo systemctl set-default multi-user.target
-
将系统切换为"多用户,无图形"模式,可直接用
ln
命令把多用户模式目标文件链接到/etc/systemd/system
目录1
ln -sf /lib/systemd/multi-user.target /etc/systemd/system/default.target
systemctl管理服务的启动,重启,停止等常用命令
System V init命令(RHEL 6系统) | systemctl 命令(RHEL 7系统) | 作用 |
---|---|---|
service foo start |
systemctl start foo.service |
启动服务 |
service foo restart |
systemctl restart foo.service |
重启服务 |
service foo stop |
systemctl stop foo.service |
停止服务 |
service foo reload |
systemctl reload foo.service |
重新加载配置文件(不终止服务) |
service foo status |
systemctl status foo.service |
查看服务状态 |
chkconfig foo on |
systemctl enable foo.service |
开机启动 |
chkconfig foo off |
systemctl disable foo.service |
开机不启动 |
chkconfig foo |
systemctl is-enabled foo.service |
查看特定服务是否为开机自启动 |
chkconfig foo --list |
systemctl list-unit-files --type=service |
查看各个级别下服务的启动和禁用情况 |
VM虚拟机三种网络模式
-
桥接模式
相当于在物理主机与虚拟机网卡之间架设一座桥梁,从而可以通过物理主机的网卡访问外网.
-
NAT模式
Network Address Translation 意即网络地址转换
让VM虚拟机的网络服务发挥路由的作用,使得通过虚拟机软件模拟的主机可以通过物理主机可以通过物理主机访问外网,在真机中NAT虚拟机网卡的物理网卡是VMnet8
-
仅主机模式
仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机模式对应的物理网卡是VMnet1
Linux开机流程
-
加载
BIOS
硬件信息:- 当计算机启动时,首先执行基本输入/输出系统(BIOS),它负责初始化和检查硬件设备,并确定第一个可引导设备.
-
读取第一个开机装置的
MBR
:- BIOS找到并加载主引导记录(MBR),这是存储在引导设备的第一个扇区中的小程序.MBR包含引导加载程序(boot loader)的信息.
-
加载
Boot Loader
:Boot loader
(如GRUB,LILO,Syslinux
等)被加载,它负责引导操作系统.Boot loader
提供了一个菜单,让用户选择要加载的操作系统或内核.
-
加载
Kernel
:Boot loader
加载Linux
内核(kernel
)并传递控制权给内核.内核开始解压缩,初始化系统硬件,并尝试加载必需的驱动程序以支持硬件设备.
-
执行
init
程序并获取run-level
信息:- 内核引导后,执行的第一个用户空间程序是
init``.init
是系统初始化的父进程,负责启动和管理系统中的各个进程.init
从配置文件(通常是/etc/inittab
)中读取默认运行级别(run-level
)信息.
- 内核引导后,执行的第一个用户空间程序是
-
执行
/etc/rc.d/rc/sysinit
档案:init
执行系统初始化脚本,通常是/etc/rc.d/rc.sysinit
,这个脚本用于初始化系统的基本参数和环境.
-
启动核心的外挂模块
/etc/modprobe.conf
:- 系统启动时,会加载一些核心模块以支持硬件设备.这些模块的信息通常存储在
/etc/modprobe.conf
文件中.
- 系统启动时,会加载一些核心模块以支持硬件设备.这些模块的信息通常存储在
-
执行
run-level
的各个批次档(Scripts):- 根据运行级别,init执行相应运行级别的脚本,这些脚本位于
/etc/rc.d/
目录中.这些脚本用于启动和停止系统服务.
- 根据运行级别,init执行相应运行级别的脚本,这些脚本位于
-
执行
/etc/rc.d/rc.local
档案:- 在运行级别脚本执行完之后,系统会执行
/etc/rc.d/rc.local
文件,这是一个用户自定义的脚本,可以在其中添加额外的自定义初始化操作.
- 在运行级别脚本执行完之后,系统会执行
-
执行
/bin/login
程序并等待用户登录:- 最后,init启动
/bin/login
程序,该程序显示登录提示符,等待用户登录.用户成功登录后,系统提供一个Shell用于交互式命令行.
- 最后,init启动
-
登录后以Shell管理主机:
- 一旦用户登录并系统启动完毕,用户可以通过Shell与系统进行交互,运行命令,管理文件系统,启动进程等.