对于学习计算机网络/网络安全,学习linux是必不可少的,所有我写了一篇一万字的linux教程,这对于初学者有着重大的帮助,对于学过但不熟练的宝子们,也是很有帮助的,这篇内容基本都是重点,而且比较常用,而且很简略,对于新手,前面命令没详细的参数,可以通过man (命令)来查找。
如果帮助到你就点个赞吧
常见基础命令概述:
ping测试连通性
ifconfig查看网卡信息
ls查看当前目录下的文件
mkdir创建目录
touch创建文件·
cd切换目录
tail只显示尾部分
more可以分页显示
less,more的加强版ctrl+U,向上翻页
head查看头部分
cat查看问价
vi编辑器
vim编辑器
pwd查看当前用户
wc统计并输入文件行数
cp复制文件及目录
mv移动文件或目录
rm 删除文件及目录
rmdir 删除一个空目录
ps查看系统静态进程
top查看系统动态进程
kill杀死进程
jobs查看被放入后台的工作
bc进入命令bc交互模式
find查找文件
grep文本搜索
ln -s 创建软链接(跟windows快捷方式类似)
shutdown关机 -r重启
reload/reboot重启
man [要找的命令]命令可以查找命令的命令参数及用法(所以以上没有给出参数的使用方式)
重定向与管道符:
输入重定向”>“
输出重定向“>>”
管道符 “|”
linux文件结构及解释:
/
bin boot dev etc home root run sbin tmp usr var
| | tmp
alice bob eve bin local sbin tmp
目录名 说明
/ 跟目录
/bin bin是binary的缩写,存储最常使用的命令
/boot 内核及加载内核所需的文件
/dev dev是device(设备)的缩写,在Linux下以文件存在,如磁盘,MODEM等
/etc 启动文件及配置文件
/home 用户主目录
/lib c语言编译器的库和部分c语言编辑器
/loat+found 一般为空,当系统非法关机时,该文件就会产生文件
/media 常用来分区挂载,如双系统时的windows分区,u盘,cd/dvd等会自动挂载并在此目录下自动产生一个目录
/misc 该目录默认为空,存储杂项文件或目录
/mnt 与media的功能相同,提供存储介质的临时挂载点,如光驱,U盘
/net 伪文件系统,存储网卡信息
/opt 存储第三方软件包,特别时测试版软件
/proc 伪文件系统,所有正在运行进程的映像,还有当前内存中的kernel文件,管理员不需要操作
/root 超级用户主目录
/sbin 引导,修复或恢复系统
/selinux selinux相关文件,当selinux被禁用时,该目录为空
/srv 一些服务启动后,这些服务所需要访问数据目录
/sys 将内核的一些信息映射,可供应用程序使用
/tmp 临时文件夹
/usr 用户相关的应用程序和库文件,用户自行安装的软件一般在此目录
/var 存储着在不断扩充,变化的内容,包括各种日志文件,E-mail,网站等
————用户和权限管理
-用户配置文件
password 密码
user 用户
UID 用户id
GID 组id
0 当UID的值为0,是系统管理员账户,默认是root
1-999 这个部分数字留给了系统用户使用,通常,这个部分用户又被分为两大类
1-200:系统自行创建的系统账号
201-999:如果用户有系统账号的需求,则可以使用这个部分数字
1000-65536 给普通用户使用。admin UID是1000
组id的含义
与用户id类似
0 root
1-999 系统用户的GID 除非在创建普通用户时指定,否则系统默认创建一个同名,同id号的组
——————————————————————————————————————————————————————
-用户配置文件
/etc/passwd 记录了文件的基本信息
/etc/shadow文件 文件记录了用户密码相关信息 普通用户无法打开
-用户组配置文件
/etc/group 文件每一行表示一个用户组,使用:分开,分为4个字段,从左到右依次是,组名,组密码,GID,组成员列表
/etc/gshadow 文件记录了用户组的密码
用户的初始是指只要用户登录系统,就自动拥有这个组的权限
——————————————————————————————————————————————————————
-添加用户和用户组
- 用户管理:
useradd [选项] [用户名] 作用:添加一个用户
参数 :
-d指定主目录,必须是绝对路径
-e指定账户失效时间,格式为YYYY-MM-DD
-u指定用户的UID
-g指定用户所属的主组,后接GID或组名
-G指定用户的附加组,后接GID或组名
-N不创建用户同名的基本用户组
-s指定登录的shell
passwd [选项] [用户名] 作用:对用户密码 创建,修改,删除,锁定
-d 删除用户密码,用户登录系统不需要密码,只有root 可执行
-l 锁定用户,禁止登陆系统,除了root用户
-u 解锁被锁定的用户账户,只有root可以执行
-S 查询用户密码相关信息,即查询/etc/shadow文件内容
-n mindays 修改密码后mindays天内不能再次修改,即/etc/shadow文件中第四个字段的内容
-x maxdays 密码有效期,即/etc/shadow中第5个字段
-w warndays 密码过期前的警告天数,即/etc/shadow文件中第6段
-i inactivedays 密码失效日期,即/etc/shadow文件中的第7字段内容
usermod [选项] 用户名 作用:设置和管理用户的各项属性,包括用名,主目录,用户组,登录shell等
参数:
-a将用户添加到指定的附加组,该选项只能和-G一起使用
-c修改用户注释的值
-d-m -m与-d连用,可以重新指定用户的主目录并自动把旧数据转移过去
-e指定账户失效时间,格式为YYYY-MM-DD
-f指定密码
-g修改用户的主组。指定用户组必须存在。在用户主目录,属于原来的主组的文件将被转给新组的所有。主目录之外的文件所属的组必须进行手动修改
-G指定用户的附加组。多个用户之间使用逗号隔开
-l修改用户名
-L锁定账号,禁止其登录系统
-U解锁账号,允许其登录系统
-s修改用户的默认shell
-u指定用户新的用户标识号
userdel [-r] 用户名 作用:删除指定用户
参数:
-r 在删除该用户的同时,删除该用户对应的主目录及目录中的所有文件
-f强制删除用户,用户对应的主目录及目录中的所有文件
——————————————————————————————————————————————————————
-用户组管理:
groupadd [选项] 用户组名 作用:添加一个用户组
参数:
-g 指定新的用户组的组标识号
-r 创建系统用户组
groupmod [选项] 用户组名 作用:修改用户组的相关属性包括,名称,GID等。
参数:
-g修改指定用户的GID
-n修改指定用户组的名称
groupdel 用户名 作用:删除指定用户组,删除之前保证该用户不是任何用户的主组,否则要先删除以该组为主组的用户,才能删除这个用户组
gpasswd [选项] 用户名 用户组名 作用:将用户添加指定组或,或将用户移出用户组
参数:
-a 将用户添加到用户组
-d 将用户从用户组中移除
-A设置有管理权限的用户列表
-M设置组成员列表
-r 删除密码
-R限制用户登录组,只有组中的成员才可以使用newgrp命令加入该组
id [选项] 用户名 作用:查看用户的UID,GID和附加组信息
参数:
-g 仅显示有效的组标识号
-G 显示所有的标识标号
-n显示名称,而不是数字
- 显示有效的用户标识号
groupmems命令 作用:把一个用户添加到附加组中,也可以从一个组中移除一个用户
参数:
-a username 把指定用户添加到组中
-d username 从组中移除指定用户
-g gtpname 目标用户组
-l 显示组成员列表
-p 删除组中的所有用户
chage [选项] 用户名 作用:显示用户的密码信息
参数
-d 指定密码最后修改日期
-E 指定密码过期日期,过期后,此账号将不可用;1表示马上过期,-1表示永不过期
-h 显示帮助信息并退出系统
-I(i) 指定用户及密码的有效期
-l显示用户及密码的有效期
-m 指定密码可更改的最小天数,0表示任何时候都可以更改密码
-M 指定密码保持有效的最大天数
-W指定密码过期之前,提前收到警告天数
用户管理在linux安全管理机制中是非常重要的,linux中的每个功能模块都与用户和权限有着密不可分的关系
在linux中,每个用户都有唯一的UID和GID
——————————————————————————————————————————————————————
-管理文件权限
linux把用户的身份分为3类,所有者(user),所属组(group),其他人(others)
r读 数字表示1
w写 数字表示2
x执行 数字表示4
rwx rwx rwx=777
所属者 所属组 其他人
chmod -R 作用:修改文件权限 R表示递归
符号类型格式
chmod -R(递归) user/group/others/all +(添加)-(移除)=(设置) r w x 文件或目录
也可以使用数字表示
chmod 775 file(文件)、
——————————————————————————————————————————————————————
-更改文件的所有者和所属组
chgrp -R 组名 文件或目录 作用:更改文件的所属组
chown [-R] 用户名 文件或目录 作用:更改文件的所有者
chown [-R] 用户名:属组名 文件或目录 作用:同时更改文件的用户名和所属组,把用户名和用户组用:分开 这个命令可替代chgrp,只要在用户组前面添加一个.或者:即可
——————————————————————————————————————————————————————
-修改文件默认权限
umask 012 作用:单独使用命令是查看文件默认权限,在后面加上代表权限的数字则修改默认权限(这个过滤)
到这里用户和权限管理差不多就结束了!
————————磁盘管理
顺序,主分区,扩展分区,逻辑分区
先将硬盘划分主分区和扩展分区,任何再在扩展分区里面创建若干个逻辑分区
主分区的编码为1-4,逻辑分区从5开始
Linux分区命名
名称 说明
/dev/hda IDE1口的主硬盘
/dev/hda1 IDE1口的主硬盘的第1个分区
/dev/hda2 IDE1口的主硬盘的第2个分区
/dev/hda5 IDE1口的主硬盘的第一个逻辑分区
/dev/hdb IDE1口的从硬盘
/dev/hdb1 IDE1口的从硬盘的第一个分区
/dev/sda ID号为0的SCSI硬盘
/dev/sda1 ID号为0的SCSI硬盘的第1个分区
/dev/sda3 ID号为0的SCSI硬盘的第2个分区
/dev/sda5 ID号为0的SCSI硬盘的第1个逻辑分区
文件系统简介
数据块(Data Block):用于保存文件的实际内容,如果文件过多,则可能会占用多个数据块‘
inode:一个文件对应一个inode,记录了文件的属性信息及文件占用的数据块编号,但是不包含文件名
超级数据块(Super Block):记录了和文件系统有关的信息,如inode和数据块的数量,使用情况,文件系统的格式及其他信息。
linux的常见文件系统
文件系统 说明
ext linux最早的文件系统,过时
ext2 ext的升级版,支持最大16TB的分区和最大2TB文件
ext3 ext2的升级版,增加了日志功能,提高了可靠性
ext4 ext3的升级版,功能增加了很多
swap swap文件系统用于linux的交换分区,交换分区一般为系统物理内存的两倍,类似于windows的虚拟内存
xfs centos7版本之后的默认文件系统,用于大容量和处理巨型文件,几乎具有ext4的所有功能
ISO9660 光盘的标准文件系统,支持对光盘的读写和刻录
proc linux中基于内存的虚拟文件,用于存储有关内核运行的特定文件,提供了访问内核的特殊接口,挂载到。/proc目录下
——————————————————————————————————————————————————————
配置磁盘分区与文件系统
fdisk -l 作用:查看磁盘信息
fdisk /dev/sdb 作用:创建磁盘分区(/dev/sdb磁盘的目录)这个命令执行后可以使用m查看参数
参数:
d (delete a partition)删除一个分区
l (list known partitioni types)列出已知分区类型
m (print this menu)获取fdisk分区帮助
n (add a new partition)添加新的分区 n主分区,e逻辑分区,1扩展分区
p 查看分区结果
w 保存分区写入到磁盘
格式化分区:
mkfs -t xfs /dev/sdb1
分区挂载:
mount [-t 文件系统类型]分区名 目录名
mount -t iso 9660 /dev/cdrom /mnt
umount 卸载分区
umount /dev/cdrom //使用分区名卸载分区
umount /mnt //使用挂载点卸载分区
lsblk -p /dev/cdrom //检查分区挂载点
分区自动挂载:
/etc/fstab
挂载方式,在/etc/fstab文件最下面添加
/dev/sdb1 /data1 xfs defaults 0 0
——————————————————————————————————————————————————————
查看文件与磁盘空间的使用情况
df [选项] [目录或文件名] 作用:从超级数据块中读取信息,显示整个文件系统的磁盘空间使用情况
-a(all) 显示所有文件系统,包括/proc,/sysfs 等特有文件系统
-m(mb) 以MB为单位显示文件系统空间
-k 以kb为单位显示文件系统空间
-h 使用人们习惯的KB,MG,GB单位显示文件系统空间
-H 指定容量的换算以1000进位,即1kb=1000b,1mb=1000KB
-i 使用inode数量代替磁盘容量显示磁盘使用情况
-t 只显示特定类型的文件系统
du [选项] [目录或文件名] 作用:计算文件目录所占的磁盘空间大小
参数
-a 显示所有目录和文件的容量(默认只显示目录容量)
-k 以KB显示目录或文件容量
-m 以MB显示目录或文件容量
-h 使用人们习惯的KB,MG,GB单位显示文件系统空间
-s 仅显示目录总容量,不显示子目录或子文件容量
-S 显示目录容量,不包括子目录容量
lsblk -p 作用:以树状结构图显示系统系统中的所有磁盘及磁盘分区
——————————————————————————————————————————————————————
管理软RAID
认识RAID:
RAID(Redundant Arrays of Independent Disks,独立冗余磁盘阵列) 作用:用于将多个廉价的小型磁盘驱动合并成一个磁盘阵列
RAID目前有6个等级0,1,2,3,4,5,常用的是0,1,3,5这4个等级
常用的RAID技术及其特点
RAID技术 特点
RAID 0 存取速度最快,没有容错功能(带区卷)
RAID 1 完全容错,成本高,硬盘使用率低(镜像卷)
RAID 3 写入性能好,没有多任务功能
RAID 4 具备多任务及容错功能,但奇偶检验磁盘驱动器会造成性能瓶颈
RAID 5 具备多任务及容错功能,写入时有额外开销overhead
RAID 01/RAID 10 速度块,完全容错,成本高
配置软RAID:
mdadm [模式] RIAD设备 [选项] 成员设备名称 作用:管理linux中的软RAID
参数:
-a 检测设备名称
-n 指定设备数量
-l 指定RAID等级
-C 创建RAID
-v 显示进程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID
——————————————————————————————————————————————————————
—————————资源包管理
管理rpm包,归档,和压缩
rpm(RedHat Package Manager,RetHat包管理器)
rpm命令,安装,卸载,升级,查询,验证
rpm包格式:name-version.type.rpm
name软件的名称,version软件的版本号,type包的类型,rpm文件扩展名
rpm [选项] 软件包名称 作用:安装,卸载,升级,查询,验证安装包
-a 查询/验证所有的软件包
-c 列出所有配置文件
-d 列出所有的程序文档
-e 清除(卸载)软件包
-f 查询/验证文件所属的软件包
-h 当套件安装时列出标记
-i 安装软件包
-l 列出软件包中的文件
-s 显示列出文件的状态
-U 升级软件包
-v 提供更多版本信息
-vv 详细显示文件执行信息
--test 安装测试,不实际安装
--nodeps 忽略软件包的依赖关系,强制安装
--force 忽略软件包及文件的冲突
tar [选项] 目标文件路径及名称 源目录路径及文件名
参数:
-c 创建打包文件
-r 将文件追加到打包文件的结尾
-A 合并两个打包文件
-f 指定打包文件名
-v 显示正在处理的文件名
-x 展开打包文件
-t 产看打包文件包含哪个文件或目录
-C 指定在特定目录展开打包文件
-j 只用bzip2命令压缩/解压文件,如用压缩时使用,解压时也必须添加此参数
-z 使用gzip命令压缩/解压缩文件,用法同-j
压缩一般是:tar -cvf /etc/adc -C /var
解压一般是:tar -zxvf /etc.tar.gz -C/var
gzip命令 gzip和bzip2都可以直接加文件进行解/压缩
使用gzip压缩后,a.tar文件会变为a.tar.gz
解压就用gunzip, a.tar.gz文件会变为a.tar
bzip2命令 压缩程度比gzip压缩程度高,用时比较久
使用bzip2压缩后,a.txt文件会变为a.bz2 压缩时源文件默认删除,可以使用-k保留源文件
解压就用bunzip, a.bz2文件会变为a.txt
xz命令的压缩程度很高,解压缩也很快
使用xz压缩文件的后缀时xz
unxz解压文件
————————————————————————————————————————————————————————
————————yum管理软件 想要使用yum命令得先配置yum源,自己百度
yum(Yellow dog Updater Modified)是一个在RedHat(含Fedora和CentOS)及SUSE中的Shell前端软件包管理器。
yum [选项] 操作 [软件包或软件包组名称]
-q不显示安装进程
-y不回复,直接安装
常见的yum命令及其说明
命令 说明
yum repolist all 列出所有仓库
yum list all 列出仓库中的所有软件包
yum info 查看软件包信息
yum install 安装软件包
yum reinstall 重新安装软件包
yum update 升级软件包
yum remove 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 安装指定的软件包组
yum groupremove 移除指定的软件包组
yum groupinfo 查询指定的软件包组信息
————————————————————————————————————————————————————————
nmcli 命令 作用:配置网络
介绍:Linux通过NetworkManager守护进程管理和监控网络设置,而nmcli命令可以控制NetworkManager守护进程
参数:nmcli [选项] {conection | device | object} [命令] [参数]
命令及说明
命令 说明
nmcli connection show 显示所有连接
nmcli connection show --active 显示所有活动的连接状态
nmcli connection show ens33 显示网络连接配置
nmcli device status 显示设备状态
nmcli device show ens33 显示网口连接属性
nmcli connection add help 查看帮助
nmcli connection reload 重新加载配置
nmcli connection down ens33 禁用ens33配置文件
nmcli connection up ens 33 启动ens33配置文件
nmcli device disconnect ens33 禁用ens33网卡
nmcli device connect ens33 启动ens33网卡
网卡配置文件参数和nmcli命令参数的对应关系
网卡配置文件参数 nmcli命令参数 说明
TYPE=Ethernet connection.type 802-3-ethernet 网卡类型
BOOTRROTO=none ipv4.method manual 手动配置IP地址信息
ROOTRROTO=dhcp ipv4.method auto 自动配置IP地址信息
IPADDR=192.168.10.2 PREFIX=24 ipv4.addresses 192.168.10.2/24 IP地址和子网掩码
GATEWAY=192.168.10.1 ipv4.gateway 192.168.10.1 网关地址
DNS1=192.168.10.2 ipv4.dns 192.168.10.2 DNS服务器地址
DOMAIN=yiteng.com ipv4.dns-search yiteng.com 域名
ONBOOT=yes connection.autoconnect yes 是否开机启动网络
DEVICE=ens33 connection.interface-name ens33 网络接口名称
nmtui 作用:打开NetworkManager TUI界面配置网络
————————————————————————————————————————————————————————
linux常用网络服务器软件名称与守护进程(服务)名称
服务类型 软件名称 守护进程(服务)名称
SSH服务 Openssh sshd.service
DHCP Dhcp dhcpd.service
SAMBA服务 Samba smbd.service
NFS服务 Nfs nfs.service
DNS服务 Bind named.service
Wed服务 Httpd httpd.service
FTP服务 Vsftpd vsftpd.service
MAIL服务 Sendmail,Postfix sendmail.service,postfix.service
数据库服务 Mariadb mariadb.service
防火墙服务 Firewalld firewalld.service
centos6与centos7操作系统中的System V init和systemctl命令对比(管理服务)
centos6(system V init) centos7(systemctl) 说明
service sshd start systemctl start sshd.service 启动服务
service sshd restart systemctl restart sshd.service 重启服务
service sshd stop systemctl stop sshd.service 停止服务
service sshd reload systemctl reload sshd.serivce 重新加载配置文件(不终止服务)