# 1、Linux系统简介与服务器的硬件组成
## Linux系统
Linux 是一种自由的开源的类Unix系统。有许多版本,但都使用了同一个内核。Linux可以安装在各种计算机硬件设备中,
从手机、平板电脑、路由器和游戏控制台到台式计算机、大型计算机和超级计算机等。
## Linux系统的分支
redhat 有技术支持
centos 与redhat差不多,centos免费,redhat收费的,
fedora 快速 稳定 强大,redhat的桌面版
ubuntu 开发 linux入门 桌面级操作系统
kai linux 做渗透测试的
## Linux系统的特点
window 系统 简单,合适大部分人群,适合办公
unix 银行用的比较多
linux 服务器比较多
特点:
模块化,
源码公开,
广泛的硬件支持,各种平台,几乎可以运行在各种主流处理器
安全性和可靠性
优秀的开发工具
网络支持文件支持
可以与unix完全兼容
## Linux服务器的硬件组成
服务器的组成:
中央处理器cpu 有台式机cpu和服务器的cpu
服务器cpu常年连续工作,一个服务器可以有多个cpu,台式机cpu是72小时工作,不能支持多个cpu
内存
芯片组 北桥芯片和南桥芯片 北桥芯片 是对cpu类型,主频内存 pcie和显卡的管理,南桥芯片是
是对键盘控制器、rtc实时时钟控制器等的管理。
I/O总线
I/O设备
电源
机箱
相关软件
## Linux的安装和部署
Linux中分区,没有cde盘,都是文件
简单的命令
uname -r 看内核
uname -a 看所有信息
3.10.0-693.11.1.el7.x86_64 #1 SMP
主次 修 企业 对称多处理器
# 2、Linux控制台的使用和shell命令的执行
## Linux控制台的使用
桌面控制台
x-window
字符控制台
默认有6个字符控制,独立运行,互不影响,多用户,多任务
二者的相互切换 ctrl+alt+f1进入字符界面 字符切换到图形界面是alt+f1
tty终端默认开启6个,可以有更多。
pty终端 叫虚拟终端
pts终端 ptmx终端 是pty的实现的方式
ctrl+shift+T 开启多个终端,这个叫伪终端 通过alt+数字键切换
who am i 命令可以查看哪个用户在什么时候登录了哪个终端
dev 目录下存放的是硬件的设备,硬盘 软盘 光驱 cpu u盘 等设备文件
## Linux shell命令的执行
什么是shell
shell 不只是命令语言,也是程序设计语言,可以交互式的解析用户输入的命令
[root@localhost ~]# root 是用户名 localhost 是来源地址 主机名称,
查看主机名称可以直接打hostname ~ 代表root目录 #代表root管理员 $是普通管理员
执行方式有两种:
交互式:解释执行用户的命令,用户输入一条,shell执行一条
批处理:用户事先写一个shell脚本,有很多条命令,让shell一次执行完毕。
shell是脚本语言,需要解释器,常用的解释器有 bash sh ash csh ksh
常用的shell解释器 cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin 禁止登录
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
shell命令的格式
命令字 【选项】 【参数】
具体执行的命令 匹配的条件 命令处理的对象
pwd 查看当前的位置
cd 切换目录
ls 显示信息 -l 显示详细信息 -a显示隐藏文件 以 .为开头 -d 查看目录
cat 查看文件
# 3、Linux系统维护管理命令
## date和clear 命令
只用root用户才能显示和设置时间 ,普通用户只能显示时间
date 直接使用 可以查看时间 忘了 可以 用date --help
date "+now time is:%Y-%m-%d:%H:%M:%S"
date -s 2017-12-02
clear 清屏
## who命令
who -【选项】用户
-r 所处运行级别
-buT 用户名 所连接的终端
## w命令
显示登录系统的用户信息
## man命令
man ls 显示帮助信息
## uname命令
uname -a 当前系统信息 -n 主机名 -r 操作系统内核
## uptime命令
用户输出系统任务队列的信息
## last命令
列出过去登录过系统的所有用户信息
## dmsg命令
显示开机信息
## free命令
显示内存信息
swap 虚拟分区,当系统内存不够的时候 swap会拿出一部分空间,防止系统崩溃
# 4、Linux的文本编辑器
vi编辑器, 是unix和类unix下的通用全屏幕纯文本编辑器
Linux下的vi编辑器叫做vim 是vi的增强版
有两种模式,一种是编辑模式 一种是命令模式 编辑模式可以完成对文本的编辑,命令模式可以完成对文件的操作命令
默认情况打开vi是进入的命令模式,从编辑到命令模式的切换可以使用esc 从命令到编辑可以使用
命令模式:输入快捷的命令,删除 复制 粘贴等
编辑模式:a i o 等等进去编辑模式
命令行模式:":"进入命令行模式对文件排序 操作 或者读取另外一些文件
~~~
vim /etc/text.txt
命令行模式 w保存 wq 保存并退出
快捷键和基本的操作
进入编辑模式 a A i I o
a 在光标之后插入 A 在行尾插入
i 在光标之前插入 I 在行首插入
o 下一行插入 O 在上一行进行插入
x 删除 X向前删除
u 撤销
行操作:
home或^进入行首
end或$ 进入行尾
删除行 dd 删除当前行
2dd 删除当前行和下一行 数字为需要删除的行数
d+G 删除后边所有文件
复制行 yy 复制当前行 p 是粘贴
2yy 复制当前行和下一行 数字为需要复制的行数
v模式 命令模式下ctrl+v 进入 批量对每行进行操作
按上下选择行,按I进入编辑模式,在首行添加后,每行都会添加
同上,删除时候,选中 按d进行删除
命令行模式
:w保存
:q不修改退出
:q!修改了,不保存强退
:wq 保存退出
:wq!强制保存退出
:!ifconfig 调用系统命令
:!+命令
替换
% 代表所有内容 s 代表替换 旧的内容 新的内容
默认是每一行第一个符合要求的单词 全部替换是 /g
定位
gg定位到行首 G最后行的行首
快速定位 3G 5G 3gg
# 5、Linux的远程连接
SecureCRT 上传文件rz 下载文件 sz
# 6、Linux的硬件资源管理和外设的使用
## Linux硬件的资源管理和信息
PCI设备 显卡 网卡 声卡
网卡命令相当重要
lspci命令 显示所有pci设备信息
dmesg |grep vga 管道过滤命令 前边的输出是后边的输入 只显示vga相关的
lspci | grep -i eth 查看网卡命令
cpu的信息
用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。
ls /proc/
cat /proc/cpuinfo查看cpu信息
cat /proc/cpuinfo |grep "physical id"
内存
cat /proc/meminfo
free -m
磁盘分区信息
fdisk
fdisk -l
df -h 查看
dev 目录下放的是设备文件
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 4812799 2098176 82 Linux swap / Solaris
/dev/sda3 4812800 104857599 50022400 83 Linux
sd 是硬盘 a是第一块硬盘 1是第一块主分区
## Linux外设设备的使用
在Linux系统中,硬件设备都以文件形式存在 不同的硬件设备具有不同的文件类型
设备文件在 /dev下 主设备号+次设备号的形式存在
外设设备,软盘 u盘 光驱,都需要挂载才能使用
设备与文件对应表
设备名称 文件类型 文件
u盘 scsi sdax x代表第几个分区
光驱 ide hdx
光驱 scsi srx
磁带 scsi stx
常见的文件系统
文件系统类型 备注
msdos dos 文件系统类型 windows
vfat 长文件名dos系统 u盘
iso9660 光盘格式系统文件类型
etx2/etx3/etx4 Linux 主流系统文件类型
xfs Linux 高性能日志文件系统类型
## 文件挂载
单一文件不应该重复挂载到不同的挂载点
一个挂载点不应该挂载多个设备
挂载点目录理论上应该是一个空目录
挂载命令是 mount命令挂载硬件设备
挂载步骤,将设备连接到服务器,用命令挂载,用df验证
mount /dev/sr0 /mnt
挂载需要一个目录
卸载
umount /mnt umount /sr0
# 7、Linux的运行机制
## 系统的运行级别 以及级别的切换方式
查看运行级别 ls /etc/rc*
一共有6个运行级别 0是关机 1是但用户 2是无网络多用户 3是有网络多用户 4保留,未使用
5是有网络支持 有x-window支持的多用户模式 6重启
切换运行级别 init 查看运行级别 runlevel
ulti-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
systemctl get-default 查看默认运行级别
systemctl set-default TARGET.target 设置默认运行级别
systemctl isolate runleve3 切换运行级别
关机命令
shutdown 可以安全关闭系统
# 7、Linux的用户管理
## 用户账号分类
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户账号一方面可以帮助管理员对使用系统的用户进行跟踪,并控制他们对于资源系统的访问;另一方面也可以帮助用户组织文件,并提供安全保护。
每个账号都有各自唯一的用户名和口令。
输入正确的用户名和口令后就可以进入自己的系统和自己的主目录。
超级用户 root
本地用户 由管理员创建,权限受到一定限制,在自己的宿主目录权限是完整的
系统用户 一般是不会登录系统的,用于维护系统的运行
每个用户都有一个相对应的密码文件 账号和密码放在不同的文件中 账号放在 etc/passwd 密码放在 etc/shadow
用户的添加
useradd study 用户名
-d 目录 用户创建时候的主目录
-M 选项 不创建用户的宿主目录 伪用户
-g 用户组 指定用户所属的用户组 创建完一个用户后 会有一个和用户名一样的基本组
-G 用户组 用户组指定用户所属的附加组
-s shell文件 指定用户登录的shell
-u 用户号 指定用户登录的用户号
字段说明
study:x:1001:1001::/home/study:/bin/bash
用户名:占位符:uid:gid:用户描述:用户主目录(登录后默认所处的目录):登录后使用的shell
uid系统的标识号 每个用户都有uid 通常是0-65535 0是超级用户 1-99系统保留
gid是组id
添加一个用户 主目录是opt/sam shell是bin下的sh
useradd -d /opt/sam -s /bin/sh sam
查看是否添加成功
tail -1 /etc/passwd
伪用户 nobody
是虚拟用户 不能登录系统,他们的存在主要是方便系统管理。
id 用户名 可以看用户 uid
id sam
uid=1002(sam) gid=1002(sam) groups=1002(sam)
添加一个用户 uid 2010 初始组root 附加组ftp
useradd -u 2010 -g root -G ftp test
useradd -g root -M -d /var/www/html -s /sbin/nologin caiwu
echo 1234 | passwd --stdin caiwu 创建一个财务,属于root组,不创建宿主目录,指定目录未/www/html 不能登录系统
用户的删除
userdel 常用选项-r 把宿主目录一起删除,不加的话只删除账号
删除文件 rm -fr 文件名
修改用户信息
usermod 常用选项与useradd中一样的
usermod -u 2020 -s sbin/nologin study 修改uid shell
usermod -d /opt/sam study 修改宿主目录
## 用户密码的管理
passwd 给用户设置密码 passwd study 就是给study用户设置密码
改变一个目录的属主和属组 chown study:study sam/ 前边是属主后边是属组 最后是目录
将用户模板拷贝到这个目录
用户模板 在etc/skel下 隐藏
拷贝文件 cp /etc/skel/.bash* ./
拷贝目录 cp -rf /etc/skel/.mozilla* ./
无交互方式设置密码
echo 123456 | passwd --stdin echo是输出一个数据
## 用户批量添加
不用脚本的方式
根据etc下的passwd 复制一行,然后创建一个文件addusers.txt
haoyp:x:1000:1000:haoyp:/home/haoyp:/bin/bash
按照格式写入多个用户 每个用户uid不能一样,宿主目录不能一样
然后执行 newusers <addusers.txt
设置密码
先取消shadow passwd功能 pwunconv
写一个密码文件 如用户一样passwd.txt
chpasswd<passwd.txt
pwconv