linux操作系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Tb71kcr-1580739766146)(/Users/tongfei/Library/Application Support/typora-user-images/image-20191219100614226.png)]
基本命令
常用
control+L 清屏
history !+数字 执行历史使用过的命令
init 0 关机 init 6 重启
shell命令
-
文件管理命令
ls -l 显示文件详细信息
-a显示所有文件
-h 查看文件大小
“.” +文件名 隐藏文件
--help 查看命令使用方法
-
通配符的使用
“?” 匹配文件名下的一个字符
“*”匹配文件名下任意个字符
-
新建文件
mkdir +文件名
mkdir -p a/b/c 新建目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJmOfG7N-1580739766148)(/Users/tongfei/Library/Application Support/typora-user-images/image-20191219110606511.png)]
mkdir - m 755 +文件名 创建文件并设置权限
chmod +权限值 +文件名 修改权限
chmod a 所有用户
u 所有者
g属组
o 其他用户
-
删除文件
rmdir 文件名 删除文件(空文件)
rmdir -p 目录 连续删除空目录
rm 文件 删除文件
rm -r 删除目录
rm -rf 删除目录并不提示
-
复制文件和目录
cp +源文件路径 + 目标文件路径
-
移动文件或目录
mv
-
新建文件
touch
查看文件
cat more less head
查找命令
-
find (查找范围)(查找条件表达式)
-
grep命令:查找文件内容
在某个文件中找我们需要的某部分内容
-
man 查看命令帮助手册
-
输入输出重定向
标准输入 0 --键盘 >
标准输出 1 --屏幕 >>
错误输出 2 --屏幕 2>
-
管道符
| 将左边命令的执行结果作为右边的对象
-
修改权限
chown 所有者 文件名
chown :所属组 文件名
chown 所有者 :所属组 文件名
![image-20191219145250929](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191219145250929.png)
![image-20191219145616017](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191219145616017.png)
删除一条规则
![image-20191219150200600](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191219150200600.png)
setfacl -m
getfacl 文件名
setfacl -b 删除所有规则
setfacl -x 删除一条规则
gpasswd -d 用户名 属组 从属组删除用户
gpasswd -a 用户名 属组 添加用户到属组
vim编辑
![image-20191219200603302](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191219200603302.png)
![image-20191219201708503](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191219201708503.png)
用户与用户组
-
用户
超级用户:拥有对系统的最高管理权限,默认是root
普通用户:只能对自己目录下的文件进行修改,具有登录系统的权限
虚拟用户:不能登录系统。。
主组 附属组
-
用户配置文件
a. /etc/passwd 用户的基本信息 用户名、口令、用户标识号…
b./etc/shadow 用户密码信息
用户组 /etc/group /etc/gshadow
-
用户管理
-
磁盘分区
步骤一:向Linux服务器添加一块硬盘,并重启系统。
步骤二:使用命令查看系统当中的硬盘及其分区信息
ls /dev/sd* 查看/dev目录下的硬盘文件
fdisk -l 查看硬盘分区的信息
步骤三:对磁盘进行分区
fdisk 磁盘文件名
fdisk /dev/sdb 对sdb这块硬盘进行分区 n 新建分区 p主分区 e 扩展分区 l逻辑分区 t修改类型 l查看了类型
步骤四:格式化磁盘分区
mkfs -t 分区格式 分区名称
mkfs -t ext4 /dev/sdb1
步骤五:挂载分区
mount -t 分区格式 设备名称 空目录名称
mount -t ext4 /dev/sdb1 /mnt/sdb1
mount -t ext4 -o rw /dev/sdb1 /mnt/sdb1
检查是否挂载成功:mount
取消挂载:umount 挂载目录的名称 (不能在挂载目录下进行)
查看已挂载分区的信息:df -hT /mnt/sdb1
使用mount命令挂载的文件系统,只是临时的,如果系统重启则需要重新挂载。
步骤六:可以使用/etc/fstab文件对文件系统进行永久挂载。
步骤七:挂载光盘(光盘的设备文件名为:/dev/sr0,文件系统的类型为:iso9660)
mount -t iso9660 /dev/sr0 /mnt/cdrom
步骤八:挂载U盘
查看命令
whereis + 命令名
安全机制
Getenforec 查看 Enforcing 保护状态 Permissive 关闭状态
setenforce 0 关闭安全机制 (临时的 重启失效)
![image-20191223092928056](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191223092928056.png)
quota磁盘配额管理
-
首先要通过修改配置文件“/etc/fstab”的方式启用 quota 磁盘配额。 [root@localhost var]# vim /etc/fstab
/dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 0将该文件系统重新挂载
[root@localhost ~]# mount -o remount /data执行 mount 命令查看已经挂载的文件系统,检查是否已经启用了 usrquota 和 grpquota 功能
[root@localhost ~]# mount | grep sdb1
/dev/sdb1 on /data type ext4 (rw,usrquota,grpquota) -
quotacheck 命令可以对文件系统进行磁盘配额检测,发现哪些文件系统启用了 磁盘配额功能,并在这些文件系统中生成配额文件 aquota.user 和 aquota.group。 [root@localhost ~]# quotacheck -cvug /data
相关选项的作用:
-c,创建配额文件。
-v,显示详细信息。 -u,检查用户配额信息,创建 aquota.user 文件。 -g,检查组配额信息,创建 aquota.group 文件。 -
Edquota -u -g 配置配额
Edquota -t 修改时间
-
Quotaon -ugv /data 激活data文件系统配置配额
-
检查
[root@localhost ~]# dd if=/dev/zero of=/mnt/data bs=1KB count=120
- quota -u -g 查看用户互分区配额使用情况
![image-20191224091454531](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191224091454531.png)
![image-20191224092622096](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191224092622096.png)
![image-20191224092808361](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191224092808361.png)
![image-20191224093144011](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191224093144011.png)
软件安装与包管理工具
-
软件安装方法:
a RPM包安装
Systemctl start/status/stop +服务名称 开启/状态/停止 服务
rpm -pa 查看
rpm -ivh 安装
rpm -evh 卸载
b YUM源安装
默认的yum源文件存在的位置 /etc/yum.repos.d/
本地源:file:// 网络源http:// 服务器 ftp://
Yum list 列出仓库中所有可用软件包
c 源代码安装
-
服务与进程管理
linux系统启动过程
-
加电自检
-
BIOS设置
进入bios的方式:开机按del f2 f12 ……
引导 程序
内核
运行级别
linux系统的运行级别
![image-20191224100103810](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191224100103810.png)
target文件保存在 /lib/systemd/system
使用systemctl管理服务
Systemctl is-enable +服务名称 查看是否开机启动
systemctl enable 服务名称
systemctl disable 关闭服务
进程的延迟与周期调度
-
进程的概念
ps 查看
ps aux 查看进程 (静态)
Top 查看动态进程
Kill 终止进程 kill -9 +pid号 强制终止
tty 显示当前连接的设备
-
进程的调度
-
延迟性调试命令 at -f 文件 -m 时间
功能:指定时间运行指定的程序 格式:at [-f 文件] [-m ] 时间
-f : 指定存放计划执行命令的文件
-m: 作业结束后发送邮件给执行 at 命令的用户 时间:任务执行的时间,可采用相对和绝对两种方法
绝对表示法: MMDDYY 或 MM/DD/YYYY, today 或 tomorrow 来表示今天或明天 相对表示法:now+num+时间单位,其中的时间间隔可以是 minutes, hours, days, weeks -
周期性调度命令 crontab
功能:计划调度服务
crontab –u user {-e | -l | -r} -u:为指定的用户设置计划任务 -e:编辑计划任务列表 -l:查看指定用户的计划任务列表,默认为当前用户 -r:删除用户的计划任务列表
crontab –u user file (其中 file 代表任务列表文件) 任务列表文件的格式:minute hour day month day-of-the-week run_command
crontab -u 用户名 -l
做好的任务存放在 /var/spool/cron/ 目录下
删除任务列表 crontab -r -u 用户名
-
![image-20191225092158750](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191225092158750.png)
samba服务器
文件共享 samba nts
![image-20191224145821469](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191224145821469.png)
vim /etc/selinux/config
![image-20191224205121337](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191224205121337.png)
samba服务器配置步骤
-
yum install -y samba samba-client 安装samba服务
-
systemctl start smb.service nmb.service 启动服务
-
mkdir /home/company建立共享目录
-
useradd -s /sbin/nologin xzusr useradd -s /sbin/nologin gcusr useradd -s /sbin/nologin xsusr #smbpasswd -a xzusr
#smbpasswd -a gcusr
#smbpasswd -a xsusr
smbpasswd 选项说明:-a 添加 smb 帐号;-x 删除 smb 帐号;-d 禁用 smb 帐号;-e 启用 smb 帐号
创建访问账号
-
修改配置文件/etc/samba/smb.conf
[company] //共享名称为 company comment = company share//共享注释
path = /home/company browseable = yes guest ok = no writeable = yes
[company]
comment = company share
path = /home/company
guest ok = no
valid users=xzusr,gcusr,xsusr //允许访问的用户列表write list=xzusr //允许写入的用户列表
修改后需要重启服务
-
测试
在 linux 客户端访问测试:smbclient -U smbuser //192.168.75.128/company 查看服务器的共享文件有哪些:smbclient -L 192.168.75.128
查看 smbuser 用户可以访问的共享文件:smbclient -L 192.168.75.128 -U smbuser测试配置文件
testparm 当配置文件的语法出错时会给出提示,修改再次运行 testparm 测试。 -
在 Linux 下访问 Windows 共享目录的配置方法
(1)在 Windows xp 上设置一个共享目录:d:\myfiles
(2)在 Linux 下安装 samba-client 客户端
# yum install samba-client
(3)安装 cifs-utils 软件包
# yum install cifs-utils
(4)在 Linux 下创建一个挂载点
# mkdir /mnt/Windows(5)挂载 Windows 上的共享目录 d:\myfiles 到 Linux 下的/mnt/Windows 目录下
# mount -t cifs -o username=Administrator //192.168.0.3/mytest /mnt/Windows Enter password: ********(6)如果挂载成功,则可以进入/mnt/Windows 下进行相应操作。
(7)在/etc/fstab 文件中,加入该共享目录的挂载信息
//192.168.1.123/redhat_disk /mnt/Windows cifs username=tommy,password=111111 0 0
(8)到此为止,Windows 上的共享目录//192.168.1.123/redhat_disk 就被成功挂载到了 Linux
上面了,并且 Linux 重启后,会自动挂载该目录到/mnt/Windows 目录下
TFP服务器
- 用户:系统用户、虚拟用户、匿名用户
- ftp安装 yum install vsftp ftp
- systemctl start vsftp
- systemctl enable vsftp.sever
-
匿名用户 访问的路径是 /var/ftp
-
ftp的配置文件是/etc/vsftp/vsftpd.conf 修改用户访问权限
(1)默认允许匿名用户与系统用户访问ftp,访问的默认目录是:/var/ftp
访问测试(用户名:anonymous 密码为空)
(2)ftp的配置文件是:/etc/vsftpd/vsftpd.conf
设置匿名用户访问ftp:
anonymous_enable=YES
(3)设置匿名用户登录ftp时不输入密码:
no_anon_password=YES
ftpd_banner= welcome to our home! //设置提示内容
(4)设置匿名用户上传、新建、删除文件:
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=yes
(5)设置文件权限
chmod 777 pub 不推荐使用
setfacl -m u:ftp:rwx pub 推荐使用
(6)设置匿名用户上传或新建文件的权限
如果使用vsftp的是本地用户,则要修改配置文件中的 local_umask 的值;
如果使用vsftp的是虚拟用户,则要修改配置文件中的 *anon_umask* 的值。umask = 022 时,新建的目录 权限是755,文件的权限是 644;
umask = 077 时,新建的目录 权限是700,文件的权限时 600。(7)设置不允许系统用户登录,只能匿名用户登录:
anonymous_enable=YES
local_enable=no
(8)设置匿名用户访问ftp的默认目录
anon_root=/var/ftp
anon_root=/var/public
注意:要修改vsftp服务器匿名用户默认目录时,不可以将anon_root设置为一个其他账号已有的家目录,否则不能实现匿名用户访问ftp服务器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qlWFPsAB-1580739766149)(/Users/tongfei/Library/Application Support/typora-user-images/image-20191225172035063.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Th3VRQMi-1580739766149)(/Users/tongfei/Library/Application Support/typora-user-images/image-20191225172035063.png)]
-
系统用户
-
虚拟用户
配置虚拟用户访问FTP****
1、安装Vsftpd虚拟用户需要用到的软件及认证模块
#yum install pam* libdb-utils libdb* --skip-broken -y
2、创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt,用户名密码格式如下:
techftp
123456
netftp
123456
admftp
123456
markftp
123456
3、生成Vsftpd虚拟用户数据库认证文件,设置权限为600
#db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftp_login.db
#chmod 600 /etc/vsftpd/vsftp_login.db
4、配置PAM认证文件:vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vsftp_login
account required pam_userdb.so db=/etc/vsftpd/vsftp_login
5、创建一个系统用户,用于虚拟用户映射
#useradd -s /sbin/nologin ftpuser
6、修改配置文件:#vim /etc/vsftpd/vsftpd.conf
#pam_service_name=vsftpd
pam_service_name=vsftpd.vu
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
7、分别为虚拟用户创建私有的虚拟目录与独立的配置文件
#mkdir /home/ftpuser/techftp
#mkdir /etc/vsftpd/vsftpd_user_conf
#vim techftp
local_root=/home/ftpuser/techftp
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#mkdir /home/ftpuser/netftp
#vim netftp
local_root=/home/ftpuser/netftp
write_enable=YES
virtual_use_local_privs=NO #不具有可登录用户的权限 anon_world_readable_only=YES #可浏览目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
![image-20191225164048740](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191225164048740.png)
![image-20191225165359920](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191225165359920.png)
DHCP
配置文件路径/etc/sysconfig/network-scripts
![image-20191226095455543](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191226095455543.png)
修改网络配置 ifcfg-eht
启用网卡:ifup ens33
禁用网卡:ifdown ens33
![image-20191226104546541](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191226104546541.png)
![image-20191226174437504](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191226174437504.png)
![image-20191227092200061](/Users/tongfei/Library/Application%20Support/typora-user-images/image-20191227092200061.png)
apache服务
- 配置文件
- 服务
- 日志
DNS服务
dns的查询方式:递归查询、迭代查询
正向解析:将域名解析成IP地址,A记录 CNAME记录 MX记录
反向解析:将IP地址解析成域名,PTR指针
区域类型:hint 根区域 master 主要区域 salve 辅助区域
配置dns服务器:以配置www.zlt.com为例
- 打开: /etc/named.rfc1912.zones
- 到var/named目录下配置区域配置文件
- 修改区域配置文件的所属组为named
- 启动服务(重启)
- 设置dns地址
- 测试dns:nslookup
辅助dns服务器
- 安装bind
- 启动bind
Nginx
远程访问与控制
puttygen 生成秘钥对
防火墙
netfilter/iptables
7.0以前叫做iptables (包过滤防火墙)
7.0以后叫做firewalld
iptables
-
四张表
- raw
- mangle
- nat
- fileter
-
五个规则链
- input
- output
- forWord
- Postruting
- Perrouting
-
匹配顺序
- 规则表的顺序
-
iptables 语法规则
如果没有指定,默认在fileter表
iptables 【-t 表名】管理选项 【链名】【条件匹配】【-j 目标动作】
-
规则匹配条件
shell脚本
awk 字符提取 -f 分隔符+ 符号 {print $1,$7} $+数字 代表第几个字段
> /dev/null 忽略信息
shell脚本变量
-
定义新的变量
变量名=变量值 ps:= 号旁边没有空格
名称需要以字母或者下划线开头,不能包含特殊字符
当变量名称容易和紧跟其后其他字符相混淆时,需要添加”{}”将其括起来,否则将无法确定正确的变量名称。对未定义的变量,将显示空值
$()可以嵌套命令 单个的可以用"`"符号
-
read命令
-
变量的作用范围
-
数值变量的运算
-
特殊的变量
环境变量、全局变量
-
预定义变量
$# 表示命令行中的参数的个数
$#表示所有位置参数的内容
测试
-
test 条件表达式 \ 【条件表达式】
-
文件测试
-
数值比较
-eq a等于b
-ne a不等于b
-gt a大于b
-lt a小于b
-le a小于或等于b
-ge a大于或等于b
-
字符串比较
case分支语句
for循环语句
shell函数应用
shell脚本测试
-
echo命令
-
bash命令
sh [-nvx]
正则表达式
\ 转义符 ^ 开头 $ 结尾
sed工具
-
语法 sed -e ‘编辑指令’ 文件1 文件2.。。。
sed -n -e ‘编辑命令’ 文件1 文件2.。。。
sed -i -e ‘编辑命令’ 文件1 文件2.。。。