Linux从基础入门到部署服务脚本编辑实例(学习笔记)

本篇笔记包括的内容为
语法基础操作+配置文件+网络配置+设备管理+软件安装yum+部署服务+脚本编译语法及实例

根目录 / 是linux中所有文件的存放顶点

基础操作命令

1.列出目录中的文件列表

ls    目录路径

2.切换工作目录

cd   目录路径

3.查看当前工作目录

pwd

4.创建文件

touch   文件路径

5.创建目录

mkdir   目录路径

6.复制文件

cp   原文件路径    目的路径

7.复制目录

cp  -r  原目录路径    目的路径

8.移动文件或者目录

mv   原路径    目的路径

9.删除(不建议使用,因为没有回收站机制)

rm    文件路径
rm  -rf   目录路径

用户管理

用户的配置文件

/etc/passwd
该文件以行为单位,每行一个用户
以冒号隔开为一列,每列代表该用户的不同配置
第一列:用户名
第二列:原本用于存放用户的密码,目前停用,目前用户的密码存放于文件/etc/shadow
第三列:用户的编号,UID
第四列:组编号,GID
第五列:描述,用于描述用户的作用,可以不写
第六列:用户的家目录,该目录用于存放用户在使用中产生的各类数据,以及用户的个人文件
第七列:用户的shell
shell:外壳,一种命令解释器,用于将人类识别的高级语言翻译为机器识别的机械语言,或将机器的机械语言翻译为高级语言的一种程序。shell经常被人们称作人与计算机之前的翻译官
常见shell
/bin/sh最原始的shell
/bin/bash目前使用范围最广的shell
/sbin/nologin用于设置用户禁止交互式登录系统使用的shell

用户组的配置文件

/etc/group
第一列:用户组名称
第二列:曾经用于存放用户组的密码
第三列:用户组的编号
第四列:组内用户列表,该组为该列表中用户的副组。

用户组的分类:
与用户的关系不同可以分为2类:
1.主组,又名首选组,主要的组
是用户配置文件/etc/passwd中GID所记录的组
主组的作用:是用户在系统中执行任务的组身份代表。
2.副组,又名从属组,额外的组
用户除了其首选组以外,还可以加入若干个用户组里,这些额外加入的用户组,被成为用户的副组
副组的作用:用于变更用户在系统中的访问范围

当系统创建一个用户的时候,系统会自动创建一个与用户同名、同id的用户组,并将该组设置为用户的首选组

创建用户

useradd   用户名

创建用户并设置其用户编号

useradd   -u  编号   用户名

创建用户并设置其主组

useradd   -g   组名或者GID    用户名

创建用户并设置其副组

useradd   -G  组名,组名,组名   用户名

创建用户并禁止其交互式登录

useradd   -s  /sbin/nologin   用户名

修改用户设定

usermod   选项   用户名

修改用户编号

usermod   -u  编号   用户名

修改用户主组

usermod   -g   组名或者GID    用户名

替换用户的副组

usermod   -G  组名,组名,组名   用户名

增加用户的副组

usermod   -G  组名,组名,组名   -a   用户名

禁止用户交互式登录

usermod   -s  /sbin/nologin   用户名

删除用户并删除其家目录

userdel   -r   用户名

创建用户组

groupadd   组名

创建用户组并指定其组编号

groupadd   -g  编号  组名

修改用户组的编号

groupmod   -g   编号   组名

删除用户组

groupdel    组名

注意:被删除的组,不能作为任何一个用户的主组使用

修改用户的密码

passwd    用户名

切换当前工作用户

su  -  用户名
exit  退出用户

查看用户的相关信息

id   用户名 

以管理员身份执行命令(提权)

sudo    命令

如何让用户能够使用sudo命令?
将该用户加入到用户组wheel中即可(副组加入)

查看网络配置的命令

ifconfig

测试网络联通性的

ping 域名或者ip地址(关闭时ctrl  c)
ping  -c   次数   域名或者ip地址

网络追踪

tracepath    域名或者ip地址
traceroute  -n  -I -q 5  域名或者ip地址

方法一:
配置网卡的命令

nmcli

用于查看网卡配置文件的状态

nmcli connection show

用于查看网卡的硬件状态

nmcli device status

用于修改网卡的ip地址及其网关

nmcli connection modify eno16777736 ipv4.addresses '192.168.191.50/24 192.168.191.2'

配置网卡使用的dns地址

nmcli connection modify eno16777736 ipv4.dns 114.114.114.114

用于修改网卡的地址获取模式为手动(静态地址)

nmcli connection modify eno16777736 ipv4.method manual

停用配置文件

nmcli connection down eno16777736 

启动配置文件

nmcli connection up eno16777736

方法二:
直接修改网卡的配置文件

/etc/sysconfig/network-scripts/ifcfg-eno16777736

需要修改行:

HWADDR=值来自于命令ifconfig
BOOTPROTO="none"	
ONBOOT="yes"
IPADDR0=192.168.191.150
PREFIX0=24
GATEWAY0=192.168.191.2
DNS1=114.114.114.114

保存配置后,重启网络(针对于克隆的主机)

systemctl restart network

硬盘管理三步操作

第一步:分区
查看当前系统的分区状态

lsblk

分区的命令

fdisk   硬盘的路径(例如:/dev/sdb)
p	显示当前分区状态
n	分区(p主分区 e扩展分区 l逻辑分区)
d	删除分区
w	保存并退出
q	不保存退出

专业英语单词:partition 分区
sector 扇区
扇区:是硬盘容量的最基本单位,默认情况下1扇区=512字节

第二步:制作文件系统(格式化)
查看分区的格式化状态

blkid

制作文件系统

mkfs.文件系统类型(tab补齐)    分区路径

常见类型
xfs RHEL7操作系统的默认文件系统
ext4 多数linux的默认文件系统
vfat 兼容性较好的文件系统,一般用于U盘
ntfs windows的默认文件系统

第三步:挂载(指定驱动器号)
查看当前系统的硬盘挂载状态

df  -Th

挂载的操作
第一步:创建一个挂载点(目录)

mkdir  目录路径 (例如 /mnt/parta)

第二步:进行挂载的操作
编辑文件**/etc/fstab**,在尾部追加如下内容
示例:

/dev/sdb1   /mnt/parta   ext4  defaults  0  0

第三步:生效

mount   -a

软件安装

版本 软件包扩展名 安装的命令 自动解决软件依赖性关系

redhat	.rpm		rpm		yum(RHEL8:dnf)
debian	.deb		dpkg		apt-get

rpm命令的使用
1.安装软件

rpm  -ivh   软件包路径

2.查看一个软件是否安装

rpm   -qa   软件名

3.卸载软件

rpm   -e  软件名

yum命令的使用
yum软件仓库的配置(又名**yum源**)
仓库的作用就是告诉yum命令应该在系统的哪一个目录下进行软件包的搜索工作
仓库配置文件的路径为:

repo id用于区别不同的仓库
/etc/yum.repos.d/任意命名.repo
repo name用于描述仓库的来历等等,可以不写
name=redhat linux 7 iso
是否启动该仓库
enabled=1
仓库的访问路径
baseurl=file:///run/media/root/RHEL-7.0\ Server.x86_64
是否开启软件校验功能
gpgcheck=0

yum命令的常用指令

1.查看当前软件仓库的状态

yum   repolist

2.安装软件

yum  install  软件名

3.查看当前软件仓库中的软件列表

yum  list all  |  grep  模糊软件名

4.查看软件是否安装成功

yum  list installed | grep 模糊软件名

5.卸载软件

yum  remove  软件名

部署服务之前需要检查的内容

1.网络连接
2.防火墙

systemctl   status   firewalld

关闭防火墙

systemctl  stop  firewalld
systemctl  disable  firewalld

3.SELinux
getenforce
关闭selinux

setenforce    0

编辑文件**vim /etc/selinux/config** 将其中SELINUX=的值修改为permissive或者disabled

部署ftp服务器
第一步:安装服务器程序

yum   install  vsftpd

第二步:启动ftp服务器

systemctl   enable   vsftpd
systemctl   start  vsftpd

第三步:根据需求调整ftp的配置文件
ftp的主配置文件路径为**/etc/vsftpd/vsftpd.conf**

anonymous_enable=YES			启动匿名用户
local_enable=YES				启动本地用户

对于匿名用户而言,客户端访问时所对应的目录为**/var/ftp**
对于普通用户而言,客户端访问时所对应的目录为该用户的家目录

权限管理部分知识在教材的P56

其他常用选项:

write_enable=YES				允许写操作
anon_upload_enable=YES			允许匿名用户上传文件
anon_mkdir_write_enable=YES		允许匿名用户创建目录
ftp_username=ftp				用于设置匿名用户在系统中的映射用户
anon_root=/var/ftp				用于设置匿名用户访问的默认目录
userlist_enable=yes			启动用户限制机制
userlist_deny=yes				值为yes,userlist为黑名单
					            值为no,userlist为白名单
userlist_file=/etc/vsftpd/user_list		用户列表
	
查看配置文件的帮助手册的命令
man  vsftpd.conf

注意:修改过ftp的配置文件,需要重启服务才能生效

systemctl   restart   vsftpd

脚本编辑语法和实例

for循环语句的语法结构

linux原版的for循环

for   字符串(大写)   in   字符串1  字符串2  字符串3 ......   ;   do
命令1
命令2
命令3
......
done

c语言结构的for循环

for  ((i=1;;i<=5;i++)) ; do
命令1
命令2
。。。。。。
done

Linux命令嵌套

$(命令) 

Linux命令if条件语句的语法结构

结构1if   [  条件  ]  ;   then
命令1
命令2
........
fi

结构2if   [  条件  ]  ;   then
命令1
命令2
........
else
命令1
命令2
........
fi

结构3if   [  条件1  ]  ;   then
命令1
命令2
........
elif   [  条件2  ]  ;  then
命令1
命令2
........
elif   [  条件3  ]  ;  then
命令1
命令2
........
else
命令1
命令2
........
fi

Linux命令参数赋值法

$1   表示运行脚本时跟随在脚本后面的第一个参数

if的常用条件设置
第一种:等值判断
[  字符串   =   字符串  ]
第二种:数字判断
[   数字  符号  数字  ]
符号:-eq	   等于   -ge  大于等于  -gt  大于  -le 小于等于 -lt 小于
第三种:文件判断
[  符号  文件或者目录路径  ]
符号:
-f		存在且是文件
-d		存在且是目录
-e		存在
-s		存在且大小为0(用于判断一个文件是否为空)
-r		当前用户是否允许读取该文件
-w		当前用户是否允许写入该文件
-x		当前用户是否允许运行该文件
第四种:逻辑判断
[ 条件1 ]&&[ 条件2 ]	与判断
[ 条件1 ]||[ 条件2 ]		或判断

[ 601 -ge $(date)  ]&&[ 1200 -le $(date)  ]

Linux命令case判断语句
语法结构如下:

case  字符串  in
字符串1)
命令1
命令2
;;
字符串2)
命令1
命令2
;;
字符串3)
命令1
命令2
;;
......
*)
命令1
命令2
;;
esac

1.hello world样例

vim example.sh
#!/bin/bash
echo 'hello world!'
chmod a+x example.sh
ls
./example.sh

2.输出1+1 求$[]算术运算 仅支持整型运算

echo "$[1+1]"

#!/bin/bash
for NUM in [1..5];do
echo "$[$NUM**2]"
done
#!/bin/bash
for UN  in $(cat /home/namelist); do
useradd -s  /sbin/nologin  $UN
echo "the name $UN create successful"
done

chomd a+x ./2.sh
./2.sh
tail -n 6 /ect/passwd
cat 2.sh

提取时间转化成四个数字 date ‘+%H%M’

[601 -ge $[date '+%H%M']]&&[1200 -le $[date '+%H%M']]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值